@shepai/cli 1.110.1 → 1.110.2

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 (127) hide show
  1. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts +1 -1
  2. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.d.ts.map +1 -1
  3. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/node-helpers.js +3 -2
  4. package/dist/tsconfig.build.tsbuildinfo +1 -1
  5. package/package.json +1 -1
  6. package/web/.next/BUILD_ID +1 -1
  7. package/web/.next/build-manifest.json +2 -2
  8. package/web/.next/fallback-build-manifest.json +2 -2
  9. package/web/.next/prerender-manifest.json +3 -3
  10. package/web/.next/required-server-files.js +2 -2
  11. package/web/.next/required-server-files.json +2 -2
  12. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +20 -20
  13. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  14. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  15. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +26 -26
  16. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  17. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  18. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +26 -26
  19. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  20. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  21. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +18 -18
  22. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  23. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  24. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +20 -20
  25. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  26. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  27. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +26 -26
  28. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  29. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  30. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +26 -26
  31. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  32. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  33. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +18 -18
  34. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  35. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  36. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +18 -18
  37. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  38. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  39. package/web/.next/server/app/_global-error.html +2 -2
  40. package/web/.next/server/app/_global-error.rsc +1 -1
  41. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  42. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  43. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  44. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  45. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  46. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  47. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  48. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  49. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  50. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  51. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  52. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  53. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  54. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  55. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  56. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  57. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  58. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  59. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  60. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_a1104008.js +1 -1
  61. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_a1104008.js.map +1 -1
  62. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_92642200.js +1 -1
  63. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_92642200.js.map +1 -1
  64. package/web/.next/server/chunks/ssr/[root-of-the-server]__039967e3._.js +1 -1
  65. package/web/.next/server/chunks/ssr/[root-of-the-server]__039967e3._.js.map +1 -1
  66. package/web/.next/server/chunks/ssr/[root-of-the-server]__07a39ff2._.js +1 -1
  67. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  68. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  69. package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js +2 -2
  70. package/web/.next/server/chunks/ssr/[root-of-the-server]__2773312c._.js +1 -1
  71. package/web/.next/server/chunks/ssr/[root-of-the-server]__2773312c._.js.map +1 -1
  72. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  73. package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js +1 -1
  74. package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js.map +1 -1
  75. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js +2 -2
  76. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  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]__cbd8062c._.js +1 -1
  79. package/web/.next/server/chunks/ssr/[root-of-the-server]__cbd8062c._.js.map +1 -1
  80. package/web/.next/server/chunks/ssr/[root-of-the-server]__e70c5627._.js +1 -1
  81. package/web/.next/server/chunks/ssr/[root-of-the-server]__e70c5627._.js.map +1 -1
  82. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  83. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  84. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  85. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  86. package/web/.next/server/chunks/ssr/{_ccec5866._.js → _36e6c63e._.js} +2 -2
  87. package/web/.next/server/chunks/ssr/{_ccec5866._.js.map → _36e6c63e._.js.map} +1 -1
  88. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  89. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  90. package/web/.next/server/chunks/ssr/{_f3c9f75e._.js → _c3e94166._.js} +2 -2
  91. package/web/.next/server/chunks/ssr/{_f3c9f75e._.js.map → _c3e94166._.js.map} +1 -1
  92. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  93. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  94. package/web/.next/server/chunks/ssr/{_d4d44f39._.js → _d30d1666._.js} +2 -2
  95. package/web/.next/server/chunks/ssr/{_d4d44f39._.js.map → _d30d1666._.js.map} +1 -1
  96. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  97. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  98. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_888633e1.js +1 -1
  99. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_888633e1.js.map +1 -1
  100. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  101. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  102. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  103. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  104. package/web/.next/server/chunks/ssr/src_presentation_web_ce7cbc3c._.js +2 -2
  105. package/web/.next/server/chunks/ssr/src_presentation_web_ce7cbc3c._.js.map +1 -1
  106. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  107. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  108. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  109. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  110. package/web/.next/server/chunks/ssr/src_presentation_web_e2604413._.js +2 -2
  111. package/web/.next/server/chunks/ssr/src_presentation_web_e2604413._.js.map +1 -1
  112. package/web/.next/server/pages/500.html +2 -2
  113. package/web/.next/server/server-reference-manifest.js +1 -1
  114. package/web/.next/server/server-reference-manifest.json +31 -31
  115. package/web/.next/static/chunks/{fd69e290a23f42db.js → 0a0240036fd5c60f.js} +1 -1
  116. package/web/.next/static/chunks/{ff30b8acb47c382f.js → 14341a985824ea0e.js} +1 -1
  117. package/web/.next/static/chunks/{1b53abdc3e0915fa.js → 2bee1b4e1ac5f8fe.js} +1 -1
  118. package/web/.next/static/chunks/{d7fa87cf3302ec81.js → 4c9d5c620e73a238.js} +1 -1
  119. package/web/.next/static/chunks/{4e97c46640657f42.js → 510b0e18fd6a6bb1.js} +1 -1
  120. package/web/.next/static/chunks/{c5d0ea070fd28a5f.js → 6326ac057b3cf1ec.js} +1 -1
  121. package/web/.next/static/chunks/{0abe4c1aa4868d43.js → 93e7d25e3f7691d6.js} +1 -1
  122. package/web/.next/static/chunks/{d2696b56eaa27811.js → aea99c2ead055dd7.js} +1 -1
  123. package/web/.next/static/chunks/{d14c7aec739301f8.js → dcd1f42edffddd69.js} +2 -2
  124. package/web/.next/static/chunks/{d332c5a1d5b931b6.js → ed1a1346ef1548a5.js} +2 -2
  125. /package/web/.next/static/{OhzCWJVe_Ly9xvRRY6B0s → tEzQMnQ_hniXYIiigpsSj}/_buildManifest.js +0 -0
  126. /package/web/.next/static/{OhzCWJVe_Ly9xvRRY6B0s → tEzQMnQ_hniXYIiigpsSj}/_clientMiddlewareManifest.json +0 -0
  127. /package/web/.next/static/{OhzCWJVe_Ly9xvRRY6B0s → tEzQMnQ_hniXYIiigpsSj}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[79020,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(83886),e=a.i(25700);let f=(0,e.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var g=a.i(72016),h=a.i(34644),i=a.i(63698),j=a.i(53170);let k=(0,e.default)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]),l=(0,e.default)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]),m=(0,e.default)("flag",[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]),n=(0,e.default)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);var o=a.i(96853),o=o,p=a.i(67837),q=a.i(71238);let r=(0,e.default)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);var s=a.i(52313),t=a.i(85536),u=a.i(58860),v=a.i(90920),w=a.i(18948),x=a.i(96867),y=a.i(82934),z=a.i(55690),A=a.i(48972),B=a.i(59653),C=a.i(63496),D=a.i(6175),E=a.i(7420),F=a.i(48939),G=a.i(58761),H=a.i(51473),I=a.i(59675),J=a.i(5472),K=a.i(75988),L=a.i(80930),M=a.i(66873),N=a.i(90986),O=a.i(79406),P=a.i(17329),Q=a.i(61476),R=a.i(64005),S=a.i(50049),T=a.i(16164),U=a.i(45291),V=[" ","Enter","ArrowUp","ArrowDown"],W=[" ","Enter"],X="Select",[Y,Z,$]=(0,C.createCollection)(X),[_,aa]=(0,E.createContextScope)(X,[$,K.createPopperScope]),ab=(0,K.createPopperScope)(),[ac,ad]=_(X),[ae,af]=_(X),ag=a=>{let{__scopeSelect:d,children:e,open:f,defaultOpen:g,onOpenChange:h,value:i,defaultValue:j,onValueChange:k,dir:l,name:m,autoComplete:n,disabled:o,required:p,form:q}=a,r=ab(d),[s,t]=c.useState(null),[u,v]=c.useState(null),[w,x]=c.useState(!1),y=(0,F.useDirection)(l),[z,A]=(0,P.useControllableState)({prop:f,defaultProp:g??!1,onChange:h,caller:X}),[B,C]=(0,P.useControllableState)({prop:i,defaultProp:j,onChange:k,caller:X}),D=c.useRef(null),E=!s||q||!!s.closest("form"),[G,H]=c.useState(new Set),I=Array.from(G).map(a=>a.props.value).join(";");return(0,b.jsx)(K.Root,{...r,children:(0,b.jsxs)(ac,{required:p,scope:d,trigger:s,onTriggerChange:t,valueNode:u,onValueNodeChange:v,valueNodeHasChildren:w,onValueNodeHasChildrenChange:x,contentId:(0,J.useId)(),value:B,onValueChange:C,open:z,onOpenChange:A,dir:y,triggerPointerDownPosRef:D,disabled:o,children:[(0,b.jsx)(Y.Provider,{scope:d,children:(0,b.jsx)(ae,{scope:a.__scopeSelect,onNativeOptionAdd:c.useCallback(a=>{H(b=>new Set(b).add(a))},[]),onNativeOptionRemove:c.useCallback(a=>{H(b=>{let c=new Set(b);return c.delete(a),c})},[]),children:e})}),E?(0,b.jsxs)(aV,{"aria-hidden":!0,required:p,tabIndex:-1,name:m,autoComplete:n,value:B,onChange:a=>C(a.target.value),disabled:o,form:q,children:[void 0===B?(0,b.jsx)("option",{value:""}):null,Array.from(G)]},I):null]})})};ag.displayName=X;var ah="SelectTrigger",ai=c.forwardRef((a,d)=>{let{__scopeSelect:e,disabled:f=!1,...g}=a,h=ab(e),i=ad(ah,e),j=i.disabled||f,k=(0,D.useComposedRefs)(d,i.onTriggerChange),l=Z(e),m=c.useRef("touch"),[n,o,p]=aX(a=>{let b=l().filter(a=>!a.disabled),c=b.find(a=>a.value===i.value),d=aY(b,a,c);void 0!==d&&i.onValueChange(d.value)}),q=a=>{j||(i.onOpenChange(!0),p()),a&&(i.triggerPointerDownPosRef.current={x:Math.round(a.pageX),y:Math.round(a.pageY)})};return(0,b.jsx)(K.Anchor,{asChild:!0,...h,children:(0,b.jsx)(M.Primitive.button,{type:"button",role:"combobox","aria-controls":i.contentId,"aria-expanded":i.open,"aria-required":i.required,"aria-autocomplete":"none",dir:i.dir,"data-state":i.open?"open":"closed",disabled:j,"data-disabled":j?"":void 0,"data-placeholder":aW(i.value)?"":void 0,...g,ref:k,onClick:(0,B.composeEventHandlers)(g.onClick,a=>{a.currentTarget.focus(),"mouse"!==m.current&&q(a)}),onPointerDown:(0,B.composeEventHandlers)(g.onPointerDown,a=>{m.current=a.pointerType;let b=a.target;b.hasPointerCapture(a.pointerId)&&b.releasePointerCapture(a.pointerId),0===a.button&&!1===a.ctrlKey&&"mouse"===a.pointerType&&(q(a),a.preventDefault())}),onKeyDown:(0,B.composeEventHandlers)(g.onKeyDown,a=>{let b=""!==n.current;a.ctrlKey||a.altKey||a.metaKey||1!==a.key.length||o(a.key),(!b||" "!==a.key)&&V.includes(a.key)&&(q(),a.preventDefault())})})})});ai.displayName=ah;var aj="SelectValue",ak=c.forwardRef((a,c)=>{let{__scopeSelect:d,className:e,style:f,children:g,placeholder:h="",...i}=a,j=ad(aj,d),{onValueNodeHasChildrenChange:k}=j,l=void 0!==g,m=(0,D.useComposedRefs)(c,j.onValueNodeChange);return(0,Q.useLayoutEffect)(()=>{k(l)},[k,l]),(0,b.jsx)(M.Primitive.span,{...i,ref:m,style:{pointerEvents:"none"},children:aW(j.value)?(0,b.jsx)(b.Fragment,{children:h}):g})});ak.displayName=aj;var al=c.forwardRef((a,c)=>{let{__scopeSelect:d,children:e,...f}=a;return(0,b.jsx)(M.Primitive.span,{"aria-hidden":!0,...f,ref:c,children:e||"▼"})});al.displayName="SelectIcon";var am=a=>(0,b.jsx)(L.Portal,{asChild:!0,...a});am.displayName="SelectPortal";var an="SelectContent",ao=c.forwardRef((a,d)=>{let e=ad(an,a.__scopeSelect),[f,g]=c.useState();return((0,Q.useLayoutEffect)(()=>{g(new DocumentFragment)},[]),e.open)?(0,b.jsx)(as,{...a,ref:d}):f?z.createPortal((0,b.jsx)(ap,{scope:a.__scopeSelect,children:(0,b.jsx)(Y.Slot,{scope:a.__scopeSelect,children:(0,b.jsx)("div",{children:a.children})})}),f):null});ao.displayName=an;var[ap,aq]=_(an),ar=(0,N.createSlot)("SelectContent.RemoveScroll"),as=c.forwardRef((a,d)=>{let{__scopeSelect:e,position:f="item-aligned",onCloseAutoFocus:g,onEscapeKeyDown:h,onPointerDownOutside:i,side:j,sideOffset:k,align:l,alignOffset:m,arrowPadding:n,collisionBoundary:o,collisionPadding:p,sticky:q,hideWhenDetached:r,avoidCollisions:s,...t}=a,u=ad(an,e),[v,w]=c.useState(null),[x,y]=c.useState(null),z=(0,D.useComposedRefs)(d,a=>w(a)),[A,C]=c.useState(null),[E,F]=c.useState(null),J=Z(e),[K,L]=c.useState(!1),M=c.useRef(!1);c.useEffect(()=>{if(v)return(0,T.hideOthers)(v)},[v]),(0,H.useFocusGuards)();let N=c.useCallback(a=>{let[b,...c]=J().map(a=>a.ref.current),[d]=c.slice(-1),e=document.activeElement;for(let c of a)if(c===e||(c?.scrollIntoView({block:"nearest"}),c===b&&x&&(x.scrollTop=0),c===d&&x&&(x.scrollTop=x.scrollHeight),c?.focus(),document.activeElement!==e))return},[J,x]),O=c.useCallback(()=>N([A,v]),[N,A,v]);c.useEffect(()=>{K&&O()},[K,O]);let{onOpenChange:P,triggerPointerDownPosRef:Q}=u;c.useEffect(()=>{if(v){let a={x:0,y:0},b=b=>{a={x:Math.abs(Math.round(b.pageX)-(Q.current?.x??0)),y:Math.abs(Math.round(b.pageY)-(Q.current?.y??0))}},c=c=>{a.x<=10&&a.y<=10?c.preventDefault():v.contains(c.target)||P(!1),document.removeEventListener("pointermove",b),Q.current=null};return null!==Q.current&&(document.addEventListener("pointermove",b),document.addEventListener("pointerup",c,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",b),document.removeEventListener("pointerup",c,{capture:!0})}}},[v,P,Q]),c.useEffect(()=>{let a=()=>P(!1);return window.addEventListener("blur",a),window.addEventListener("resize",a),()=>{window.removeEventListener("blur",a),window.removeEventListener("resize",a)}},[P]);let[R,S]=aX(a=>{let b=J().filter(a=>!a.disabled),c=b.find(a=>a.ref.current===document.activeElement),d=aY(b,a,c);d&&setTimeout(()=>d.ref.current.focus())}),V=c.useCallback((a,b,c)=>{let d=!M.current&&!c;(void 0!==u.value&&u.value===b||d)&&(C(a),d&&(M.current=!0))},[u.value]),W=c.useCallback(()=>v?.focus(),[v]),X=c.useCallback((a,b,c)=>{let d=!M.current&&!c;(void 0!==u.value&&u.value===b||d)&&F(a)},[u.value]),Y="popper"===f?au:at,$=Y===au?{side:j,sideOffset:k,align:l,alignOffset:m,arrowPadding:n,collisionBoundary:o,collisionPadding:p,sticky:q,hideWhenDetached:r,avoidCollisions:s}:{};return(0,b.jsx)(ap,{scope:e,content:v,viewport:x,onViewportChange:y,itemRefCallback:V,selectedItem:A,onItemLeave:W,itemTextRefCallback:X,focusSelectedItem:O,selectedItemText:E,position:f,isPositioned:K,searchRef:R,children:(0,b.jsx)(U.RemoveScroll,{as:ar,allowPinchZoom:!0,children:(0,b.jsx)(I.FocusScope,{asChild:!0,trapped:u.open,onMountAutoFocus:a=>{a.preventDefault()},onUnmountAutoFocus:(0,B.composeEventHandlers)(g,a=>{u.trigger?.focus({preventScroll:!0}),a.preventDefault()}),children:(0,b.jsx)(G.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:h,onPointerDownOutside:i,onFocusOutside:a=>a.preventDefault(),onDismiss:()=>u.onOpenChange(!1),children:(0,b.jsx)(Y,{role:"listbox",id:u.contentId,"data-state":u.open?"open":"closed",dir:u.dir,onContextMenu:a=>a.preventDefault(),...t,...$,onPlaced:()=>L(!0),ref:z,style:{display:"flex",flexDirection:"column",outline:"none",...t.style},onKeyDown:(0,B.composeEventHandlers)(t.onKeyDown,a=>{let b=a.ctrlKey||a.altKey||a.metaKey;if("Tab"===a.key&&a.preventDefault(),b||1!==a.key.length||S(a.key),["ArrowUp","ArrowDown","Home","End"].includes(a.key)){let b=J().filter(a=>!a.disabled).map(a=>a.ref.current);if(["ArrowUp","End"].includes(a.key)&&(b=b.slice().reverse()),["ArrowUp","ArrowDown"].includes(a.key)){let c=a.target,d=b.indexOf(c);b=b.slice(d+1)}setTimeout(()=>N(b)),a.preventDefault()}})})})})})})});as.displayName="SelectContentImpl";var at=c.forwardRef((a,d)=>{let{__scopeSelect:e,onPlaced:f,...g}=a,h=ad(an,e),i=aq(an,e),[j,k]=c.useState(null),[l,m]=c.useState(null),n=(0,D.useComposedRefs)(d,a=>m(a)),o=Z(e),p=c.useRef(!1),q=c.useRef(!0),{viewport:r,selectedItem:s,selectedItemText:t,focusSelectedItem:u}=i,v=c.useCallback(()=>{if(h.trigger&&h.valueNode&&j&&l&&r&&s&&t){let a=h.trigger.getBoundingClientRect(),b=l.getBoundingClientRect(),c=h.valueNode.getBoundingClientRect(),d=t.getBoundingClientRect();if("rtl"!==h.dir){let e=d.left-b.left,f=c.left-e,g=a.left-f,h=a.width+g,i=Math.max(h,b.width),k=window.innerWidth-10,l=(0,A.clamp)(f,[10,Math.max(10,k-i)]);j.style.minWidth=h+"px",j.style.left=l+"px"}else{let e=b.right-d.right,f=window.innerWidth-c.right-e,g=window.innerWidth-a.right-f,h=a.width+g,i=Math.max(h,b.width),k=window.innerWidth-10,l=(0,A.clamp)(f,[10,Math.max(10,k-i)]);j.style.minWidth=h+"px",j.style.right=l+"px"}let e=o(),g=window.innerHeight-20,i=r.scrollHeight,k=window.getComputedStyle(l),m=parseInt(k.borderTopWidth,10),n=parseInt(k.paddingTop,10),q=parseInt(k.borderBottomWidth,10),u=m+n+i+parseInt(k.paddingBottom,10)+q,v=Math.min(5*s.offsetHeight,u),w=window.getComputedStyle(r),x=parseInt(w.paddingTop,10),y=parseInt(w.paddingBottom,10),z=a.top+a.height/2-10,B=s.offsetHeight/2,C=m+n+(s.offsetTop+B);if(C<=z){let a=e.length>0&&s===e[e.length-1].ref.current;j.style.bottom="0px";let b=Math.max(g-z,B+(a?y:0)+(l.clientHeight-r.offsetTop-r.offsetHeight)+q);j.style.height=C+b+"px"}else{let a=e.length>0&&s===e[0].ref.current;j.style.top="0px";let b=Math.max(z,m+r.offsetTop+(a?x:0)+B);j.style.height=b+(u-C)+"px",r.scrollTop=C-z+r.offsetTop}j.style.margin="10px 0",j.style.minHeight=v+"px",j.style.maxHeight=g+"px",f?.(),requestAnimationFrame(()=>p.current=!0)}},[o,h.trigger,h.valueNode,j,l,r,s,t,h.dir,f]);(0,Q.useLayoutEffect)(()=>v(),[v]);let[w,x]=c.useState();(0,Q.useLayoutEffect)(()=>{l&&x(window.getComputedStyle(l).zIndex)},[l]);let y=c.useCallback(a=>{a&&!0===q.current&&(v(),u?.(),q.current=!1)},[v,u]);return(0,b.jsx)(av,{scope:e,contentWrapper:j,shouldExpandOnScrollRef:p,onScrollButtonChange:y,children:(0,b.jsx)("div",{ref:k,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:w},children:(0,b.jsx)(M.Primitive.div,{...g,ref:n,style:{boxSizing:"border-box",maxHeight:"100%",...g.style}})})})});at.displayName="SelectItemAlignedPosition";var au=c.forwardRef((a,c)=>{let{__scopeSelect:d,align:e="start",collisionPadding:f=10,...g}=a,h=ab(d);return(0,b.jsx)(K.Content,{...h,...g,ref:c,align:e,collisionPadding:f,style:{boxSizing:"border-box",...g.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});au.displayName="SelectPopperPosition";var[av,aw]=_(an,{}),ax="SelectViewport",ay=c.forwardRef((a,d)=>{let{__scopeSelect:e,nonce:f,...g}=a,h=aq(ax,e),i=aw(ax,e),j=(0,D.useComposedRefs)(d,h.onViewportChange),k=c.useRef(0);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:f}),(0,b.jsx)(Y.Slot,{scope:e,children:(0,b.jsx)(M.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...g,ref:j,style:{position:"relative",flex:1,overflow:"hidden auto",...g.style},onScroll:(0,B.composeEventHandlers)(g.onScroll,a=>{let b=a.currentTarget,{contentWrapper:c,shouldExpandOnScrollRef:d}=i;if(d?.current&&c){let a=Math.abs(k.current-b.scrollTop);if(a>0){let d=window.innerHeight-20,e=Math.max(parseFloat(c.style.minHeight),parseFloat(c.style.height));if(e<d){let f=e+a,g=Math.min(d,f),h=f-g;c.style.height=g+"px","0px"===c.style.bottom&&(b.scrollTop=h>0?h:0,c.style.justifyContent="flex-end")}}}k.current=b.scrollTop})})})]})});ay.displayName=ax;var az="SelectGroup",[aA,aB]=_(az),aC=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a,f=(0,J.useId)();return(0,b.jsx)(aA,{scope:d,id:f,children:(0,b.jsx)(M.Primitive.div,{role:"group","aria-labelledby":f,...e,ref:c})})});aC.displayName=az;var aD="SelectLabel",aE=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a,f=aB(aD,d);return(0,b.jsx)(M.Primitive.div,{id:f.id,...e,ref:c})});aE.displayName=aD;var aF="SelectItem",[aG,aH]=_(aF),aI=c.forwardRef((a,d)=>{let{__scopeSelect:e,value:f,disabled:g=!1,textValue:h,...i}=a,j=ad(aF,e),k=aq(aF,e),l=j.value===f,[m,n]=c.useState(h??""),[o,p]=c.useState(!1),q=(0,D.useComposedRefs)(d,a=>k.itemRefCallback?.(a,f,g)),r=(0,J.useId)(),s=c.useRef("touch"),t=()=>{g||(j.onValueChange(f),j.onOpenChange(!1))};if(""===f)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,b.jsx)(aG,{scope:e,value:f,disabled:g,textId:r,isSelected:l,onItemTextChange:c.useCallback(a=>{n(b=>b||(a?.textContent??"").trim())},[]),children:(0,b.jsx)(Y.ItemSlot,{scope:e,value:f,disabled:g,textValue:m,children:(0,b.jsx)(M.Primitive.div,{role:"option","aria-labelledby":r,"data-highlighted":o?"":void 0,"aria-selected":l&&o,"data-state":l?"checked":"unchecked","aria-disabled":g||void 0,"data-disabled":g?"":void 0,tabIndex:g?void 0:-1,...i,ref:q,onFocus:(0,B.composeEventHandlers)(i.onFocus,()=>p(!0)),onBlur:(0,B.composeEventHandlers)(i.onBlur,()=>p(!1)),onClick:(0,B.composeEventHandlers)(i.onClick,()=>{"mouse"!==s.current&&t()}),onPointerUp:(0,B.composeEventHandlers)(i.onPointerUp,()=>{"mouse"===s.current&&t()}),onPointerDown:(0,B.composeEventHandlers)(i.onPointerDown,a=>{s.current=a.pointerType}),onPointerMove:(0,B.composeEventHandlers)(i.onPointerMove,a=>{s.current=a.pointerType,g?k.onItemLeave?.():"mouse"===s.current&&a.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,B.composeEventHandlers)(i.onPointerLeave,a=>{a.currentTarget===document.activeElement&&k.onItemLeave?.()}),onKeyDown:(0,B.composeEventHandlers)(i.onKeyDown,a=>{(k.searchRef?.current===""||" "!==a.key)&&(W.includes(a.key)&&t()," "===a.key&&a.preventDefault())})})})})});aI.displayName=aF;var aJ="SelectItemText",aK=c.forwardRef((a,d)=>{let{__scopeSelect:e,className:f,style:g,...h}=a,i=ad(aJ,e),j=aq(aJ,e),k=aH(aJ,e),l=af(aJ,e),[m,n]=c.useState(null),o=(0,D.useComposedRefs)(d,a=>n(a),k.onItemTextChange,a=>j.itemTextRefCallback?.(a,k.value,k.disabled)),p=m?.textContent,q=c.useMemo(()=>(0,b.jsx)("option",{value:k.value,disabled:k.disabled,children:p},k.value),[k.disabled,k.value,p]),{onNativeOptionAdd:r,onNativeOptionRemove:s}=l;return(0,Q.useLayoutEffect)(()=>(r(q),()=>s(q)),[r,s,q]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(M.Primitive.span,{id:k.textId,...h,ref:o}),k.isSelected&&i.valueNode&&!i.valueNodeHasChildren?z.createPortal(h.children,i.valueNode):null]})});aK.displayName=aJ;var aL="SelectItemIndicator",aM=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a;return aH(aL,d).isSelected?(0,b.jsx)(M.Primitive.span,{"aria-hidden":!0,...e,ref:c}):null});aM.displayName=aL;var aN="SelectScrollUpButton",aO=c.forwardRef((a,d)=>{let e=aq(aN,a.__scopeSelect),f=aw(aN,a.__scopeSelect),[g,h]=c.useState(!1),i=(0,D.useComposedRefs)(d,f.onScrollButtonChange);return(0,Q.useLayoutEffect)(()=>{if(e.viewport&&e.isPositioned){let a=function(){h(b.scrollTop>0)},b=e.viewport;return a(),b.addEventListener("scroll",a),()=>b.removeEventListener("scroll",a)}},[e.viewport,e.isPositioned]),g?(0,b.jsx)(aR,{...a,ref:i,onAutoScroll:()=>{let{viewport:a,selectedItem:b}=e;a&&b&&(a.scrollTop=a.scrollTop-b.offsetHeight)}}):null});aO.displayName=aN;var aP="SelectScrollDownButton",aQ=c.forwardRef((a,d)=>{let e=aq(aP,a.__scopeSelect),f=aw(aP,a.__scopeSelect),[g,h]=c.useState(!1),i=(0,D.useComposedRefs)(d,f.onScrollButtonChange);return(0,Q.useLayoutEffect)(()=>{if(e.viewport&&e.isPositioned){let a=function(){let a=b.scrollHeight-b.clientHeight;h(Math.ceil(b.scrollTop)<a)},b=e.viewport;return a(),b.addEventListener("scroll",a),()=>b.removeEventListener("scroll",a)}},[e.viewport,e.isPositioned]),g?(0,b.jsx)(aR,{...a,ref:i,onAutoScroll:()=>{let{viewport:a,selectedItem:b}=e;a&&b&&(a.scrollTop=a.scrollTop+b.offsetHeight)}}):null});aQ.displayName=aP;var aR=c.forwardRef((a,d)=>{let{__scopeSelect:e,onAutoScroll:f,...g}=a,h=aq("SelectScrollButton",e),i=c.useRef(null),j=Z(e),k=c.useCallback(()=>{null!==i.current&&(window.clearInterval(i.current),i.current=null)},[]);return c.useEffect(()=>()=>k(),[k]),(0,Q.useLayoutEffect)(()=>{let a=j().find(a=>a.ref.current===document.activeElement);a?.ref.current?.scrollIntoView({block:"nearest"})},[j]),(0,b.jsx)(M.Primitive.div,{"aria-hidden":!0,...g,ref:d,style:{flexShrink:0,...g.style},onPointerDown:(0,B.composeEventHandlers)(g.onPointerDown,()=>{null===i.current&&(i.current=window.setInterval(f,50))}),onPointerMove:(0,B.composeEventHandlers)(g.onPointerMove,()=>{h.onItemLeave?.(),null===i.current&&(i.current=window.setInterval(f,50))}),onPointerLeave:(0,B.composeEventHandlers)(g.onPointerLeave,()=>{k()})})}),aS=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a;return(0,b.jsx)(M.Primitive.div,{"aria-hidden":!0,...e,ref:c})});aS.displayName="SelectSeparator";var aT="SelectArrow",aU=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a,f=ab(d),g=ad(aT,d),h=aq(aT,d);return g.open&&"popper"===h.position?(0,b.jsx)(K.Arrow,{...f,...e,ref:c}):null});aU.displayName=aT;var aV=c.forwardRef(({__scopeSelect:a,value:d,...e},f)=>{let g=c.useRef(null),h=(0,D.useComposedRefs)(f,g),i=(0,R.usePrevious)(d);return c.useEffect(()=>{let a=g.current;if(!a)return;let b=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(i!==d&&b){let c=new Event("change",{bubbles:!0});b.call(a,d),a.dispatchEvent(c)}},[i,d]),(0,b.jsx)(M.Primitive.select,{...e,style:{...S.VISUALLY_HIDDEN_STYLES,...e.style},ref:h,defaultValue:d})});function aW(a){return""===a||void 0===a}function aX(a){let b=(0,O.useCallbackRef)(a),d=c.useRef(""),e=c.useRef(0),f=c.useCallback(a=>{let c=d.current+a;b(c),function a(b){d.current=b,window.clearTimeout(e.current),""!==b&&(e.current=window.setTimeout(()=>a(""),1e3))}(c)},[b]),g=c.useCallback(()=>{d.current="",window.clearTimeout(e.current)},[]);return c.useEffect(()=>()=>window.clearTimeout(e.current),[]),[d,f,g]}function aY(a,b,c){var d,e;let f=b.length>1&&Array.from(b).every(a=>a===b[0])?b[0]:b,g=c?a.indexOf(c):-1,h=(d=a,e=Math.max(g,0),d.map((a,b)=>d[(e+b)%d.length]));1===f.length&&(h=h.filter(a=>a!==c));let i=h.find(a=>a.textValue.toLowerCase().startsWith(f.toLowerCase()));return i!==c?i:void 0}aV.displayName="SelectBubbleInput",a.s(["Arrow",()=>aU,"Content",()=>ao,"Group",()=>aC,"Icon",()=>al,"Item",()=>aI,"ItemIndicator",()=>aM,"ItemText",()=>aK,"Label",()=>aE,"Portal",()=>am,"Root",()=>ag,"ScrollDownButton",()=>aQ,"ScrollUpButton",()=>aO,"Select",()=>ag,"SelectArrow",()=>aU,"SelectContent",()=>ao,"SelectGroup",()=>aC,"SelectIcon",()=>al,"SelectItem",()=>aI,"SelectItemIndicator",()=>aM,"SelectItemText",()=>aK,"SelectLabel",()=>aE,"SelectPortal",()=>am,"SelectScrollDownButton",()=>aQ,"SelectScrollUpButton",()=>aO,"SelectSeparator",()=>aS,"SelectTrigger",()=>ai,"SelectValue",()=>ak,"SelectViewport",()=>ay,"Separator",()=>aS,"Trigger",()=>ai,"Value",()=>ak,"Viewport",()=>ay,"createSelectScope",()=>aa],16252);var aZ=a.i(16252),aZ=aZ,a$=a.i(71716);let a_=(0,e.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),a0=aZ.Root;aZ.Group;let a1=aZ.Value,a2=c.forwardRef(({className:a,children:c,...d},e)=>(0,b.jsxs)(aZ.Trigger,{ref:e,className:(0,t.cn)("border-input ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",a),...d,children:[c,(0,b.jsx)(aZ.Icon,{asChild:!0,children:(0,b.jsx)(a$.ChevronDown,{className:"h-4 w-4 opacity-50"})})]}));a2.displayName=aZ.Trigger.displayName;let a3=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(aZ.ScrollUpButton,{ref:d,className:(0,t.cn)("flex cursor-default items-center justify-center py-1",a),...c,children:(0,b.jsx)(a_,{className:"h-4 w-4"})}));a3.displayName=aZ.ScrollUpButton.displayName;let a4=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(aZ.ScrollDownButton,{ref:d,className:(0,t.cn)("flex cursor-default items-center justify-center py-1",a),...c,children:(0,b.jsx)(a$.ChevronDown,{className:"h-4 w-4"})}));a4.displayName=aZ.ScrollDownButton.displayName;let a5=c.forwardRef(({className:a,children:c,position:d="popper",...e},f)=>(0,b.jsx)(aZ.Portal,{children:(0,b.jsxs)(aZ.Content,{ref:f,className:(0,t.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 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md","popper"===d&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:d,...e,children:[(0,b.jsx)(a3,{}),(0,b.jsx)(aZ.Viewport,{className:(0,t.cn)("p-1","popper"===d&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:c}),(0,b.jsx)(a4,{})]})}));a5.displayName=aZ.Content.displayName,c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(aZ.Label,{ref:d,className:(0,t.cn)("px-2 py-1.5 text-sm font-semibold",a),...c})).displayName=aZ.Label.displayName;let a6=c.forwardRef(({className:a,children:c,...d},e)=>(0,b.jsxs)(aZ.Item,{ref:e,className:(0,t.cn)("focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...d,children:[(0,b.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,b.jsx)(aZ.ItemIndicator,{children:(0,b.jsx)(g.Check,{className:"h-4 w-4"})})}),(0,b.jsx)(aZ.ItemText,{children:c})]}));a6.displayName=aZ.Item.displayName,c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(aZ.Separator,{ref:d,className:(0,t.cn)("bg-muted -mx-1 my-1 h-px",a),...c})).displayName=aZ.Separator.displayName;var a7=a.i(25674);let a8=(0,a7.createServerReference)("402be6b9afe9e9e02692e8226ff7936a0f74b57cf5",a7.callServer,void 0,a7.findSourceMapURL,"updateSettingsAction");var a9=a.i(46847),ba=a.i(61640),bb=a.i(40617),bb=bb,bc=a.i(87926);function bd(a){return(0,b.jsx)(bb.default,{className:(0,t.cn)("h-4 w-4",a.className),...a})}function be({className:a}){return(0,b.jsx)(ba.default,{src:"/icons/editors/vscode.svg",alt:"VS Code",width:24,height:24,className:(0,t.cn)("rounded-sm object-contain",a)})}function bf({className:a}){return(0,b.jsx)(ba.default,{src:"/icons/agents/cursor.jpeg",alt:"Cursor",width:24,height:24,className:(0,t.cn)("rounded-sm object-contain",a)})}function bg({className:a}){return(0,b.jsx)(ba.default,{src:"/icons/editors/windsurf.svg",alt:"Windsurf",width:24,height:24,className:(0,t.cn)("rounded-sm object-contain",a)})}function bh({className:a}){return(0,b.jsx)(ba.default,{src:"/icons/editors/zed.svg",alt:"Zed",width:24,height:24,className:(0,t.cn)("rounded-sm object-contain",a)})}function bi({className:a,...c}){return(0,b.jsx)(bc.Rocket,{className:(0,t.cn)("h-4 w-4",a),...c})}be.displayName="VsCodeIcon",bf.displayName="CursorEditorIcon",bg.displayName="WindsurfIcon",bh.displayName="ZedIcon",bi.displayName="AntigravityIcon";let bj={vscode:be,cursor:bf,windsurf:bg,zed:bh,antigravity:bi};var bk=a.i(61781);let bl=[{value:a9.AgentAuthMethod.Session,label:"Session"},{value:a9.AgentAuthMethod.Token,label:"Token"}],bm=[{value:a9.EditorType.VsCode,label:"VS Code"},{value:a9.EditorType.Cursor,label:"Cursor"},{value:a9.EditorType.Windsurf,label:"Windsurf"},{value:a9.EditorType.Zed,label:"Zed"},{value:a9.EditorType.Antigravity,label:"Antigravity"}],bn=[{id:"agent",label:"Agent",icon:h.Bot},{id:"environment",label:"Environment",icon:i.Terminal},{id:"workflow",label:"Workflow",icon:j.GitBranch},{id:"ci",label:"CI",icon:k},{id:"notifications",label:"Notifications",icon:l},{id:"feature-flags",label:"Flags",icon:m},{id:"database",label:"Database",icon:n}];function bo({label:a,description:c,htmlFor:d,children:e}){return(0,b.jsxs)("div",{className:"flex items-center justify-between gap-4 border-b py-2.5 last:border-b-0",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)(u.Label,{htmlFor:d,className:"cursor-pointer text-sm font-normal whitespace-nowrap",children:a}),c?(0,b.jsx)("p",{className:"text-muted-foreground text-[11px] leading-tight",children:c}):null]}),(0,b.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:e})]})}function bp({label:a,description:c,id:d,testId:e,checked:f,onChange:g,disabled:h}){return(0,b.jsx)(bo,{label:a,description:c,htmlFor:d,children:(0,b.jsx)(x.Switch,{id:d,"data-testid":e,checked:f,onCheckedChange:g,disabled:h,className:(0,t.cn)("cursor-pointer",h&&"cursor-not-allowed opacity-50")})})}function bq({icon:a,title:c,description:d,badge:e,testId:f,children:g}){return(0,b.jsxs)("div",{className:"bg-background rounded-lg border","data-testid":f,children:[(0,b.jsxs)("div",{className:"bg-muted/30 border-b px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(a,{className:"text-muted-foreground h-3.5 w-3.5"}),(0,b.jsx)("h2",{className:"text-sm font-semibold",children:c}),e?(0,b.jsx)("span",{className:"bg-muted text-muted-foreground rounded px-1.5 py-0.5 text-[9px] font-medium tracking-wider uppercase",children:e}):null]}),(0,b.jsx)("p",{className:"text-muted-foreground mt-0.5 text-[11px]",children:d})]}),(0,b.jsx)("div",{className:"px-4",children:g})]})}function br({id:a,testId:c,value:d,onChange:e,onBlur:f,placeholder:g,min:h=1,max:i,step:j=1,suffix:k}){let l=""===d?void 0:parseInt(d,10);return(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center overflow-hidden rounded-md border",children:[(0,b.jsx)("button",{type:"button",onClick:()=>{e(String(Math.max(h,(l??parseInt(g,10))-j)))},onMouseUp:f,className:"text-muted-foreground hover:bg-muted hover:text-foreground flex h-8 w-7 cursor-pointer items-center justify-center border-r transition-colors","aria-label":"Decrease",children:(0,b.jsx)(o.default,{className:"h-3 w-3"})}),(0,b.jsx)("input",{id:a,"data-testid":c,type:"text",inputMode:"numeric",pattern:"[0-9]*",value:d,placeholder:g,onChange:a=>{e(a.target.value.replace(/[^0-9]/g,""))},onBlur:f,className:"h-8 w-14 bg-transparent text-center text-xs outline-none"}),(0,b.jsx)("button",{type:"button",onClick:()=>{let a;a=l??parseInt(g,10),e(String(null!=i?Math.min(i,a+j):a+j))},onMouseUp:f,className:"text-muted-foreground hover:bg-muted hover:text-foreground flex h-8 w-7 cursor-pointer items-center justify-center border-l transition-colors","aria-label":"Increase",children:(0,b.jsx)(p.Plus,{className:"h-3 w-3"})})]}),k?(0,b.jsx)("span",{className:"text-muted-foreground text-[11px]",children:k}):null]})}function bs({children:a}){return(0,b.jsx)("div",{className:"border-b pt-3 pb-1",children:(0,b.jsx)("span",{className:"text-muted-foreground text-[10px] font-semibold tracking-wider uppercase",children:a})})}function bt({children:a,links:c}){return(0,b.jsxs)("div",{className:"hidden pt-2 lg:block",children:[(0,b.jsx)("p",{className:"text-muted-foreground/70 text-[11px] leading-relaxed",children:a}),null!=c&&c.length>0?(0,b.jsx)("div",{className:"mt-2 flex flex-col gap-1",children:c.map(a=>(0,b.jsxs)("a",{href:a.href,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:text-foreground inline-flex items-center gap-1 text-[10px] transition-colors",children:[(0,b.jsx)(q.ExternalLink,{className:"h-2.5 w-2.5"}),a.label]},a.href))}):null]})}function bu({settings:a,shepHome:e,dbFileSize:o}){let{showSaving:p,showSaved:q,save:u}=function(){let[a,b]=(0,c.useTransition)(),[d,e]=(0,c.useState)(!1),[f,g]=(0,c.useState)(!1),h=(0,c.useRef)(null),i=(0,c.useRef)(!1);return(0,c.useEffect)(()=>{a&&!d&&(e(!0),i.current=!1,h.current=setTimeout(()=>{h.current=null,i.current&&(e(!1),g(!0),setTimeout(()=>g(!1),2e3))},350)),!a&&d&&(i.current=!0,h.current||(e(!1),g(!0),setTimeout(()=>g(!1),2e3)))},[a,d]),{showSaving:d,showSaved:f,save:(0,c.useCallback)(a=>{b(async()=>{let b=await a8(a);b.success||s.toast.error(b.error??"Failed to save settings")})},[b])}}(),x=a.featureFlags??{skills:!1,envDeploy:!1,debug:!1},[z,A]=(0,c.useState)(a.agent.type),B=a.agent.authMethod,[C,D]=(0,c.useState)(a.agent.token??""),[E,F]=(0,c.useState)(!1),[G,H]=(0,c.useState)(a.environment.defaultEditor),I=a.environment.shellPreference,[J,K]=(0,c.useState)(a.workflow.openPrOnImplementationComplete),[L,M]=(0,c.useState)(a.workflow.approvalGateDefaults.pushOnImplementationComplete),[N,O]=(0,c.useState)(a.workflow.approvalGateDefaults.allowPrd),[P,Q]=(0,c.useState)(a.workflow.approvalGateDefaults.allowPlan),[R,S]=(0,c.useState)(a.workflow.approvalGateDefaults.allowMerge),[T,U]=(0,c.useState)(a.workflow.enableEvidence),[V,W]=(0,c.useState)(a.workflow.commitEvidence),[X,Y]=(0,c.useState)(null!=a.workflow.ciMaxFixAttempts?String(a.workflow.ciMaxFixAttempts):""),[Z,$]=(0,c.useState)(null!=a.workflow.ciWatchTimeoutMs?String(Math.round(a.workflow.ciWatchTimeoutMs/1e3)):""),[_,aa]=(0,c.useState)(null!=a.workflow.ciLogMaxChars?String(a.workflow.ciLogMaxChars):""),[ab,ac]=(0,c.useState)(a.notifications.inApp.enabled),[ad,ae]=(0,c.useState)(a.notifications.browser.enabled),[af,ag]=(0,c.useState)(a.notifications.desktop.enabled),[ah,ai]=(0,c.useState)({...a.notifications.events}),[aj,ak]=(0,c.useState)({...x}),al=null!=a.workflow.ciMaxFixAttempts?String(a.workflow.ciMaxFixAttempts):"",am=null!=a.workflow.ciWatchTimeoutMs?String(Math.round(a.workflow.ciWatchTimeoutMs/1e3)):"",an=null!=a.workflow.ciLogMaxChars?String(a.workflow.ciLogMaxChars):"";function ao(a){if(""===a)return;let b=parseInt(a,10);return Number.isNaN(b)||b<=0?void 0:b}function ap(a={}){let b=ao(a.ciTimeout??Z);return{workflow:{openPrOnImplementationComplete:a.openPr??J,approvalGateDefaults:{pushOnImplementationComplete:a.pushOnComplete??L,allowPrd:a.allowPrd??N,allowPlan:a.allowPlan??P,allowMerge:a.allowMerge??R},enableEvidence:a.enableEvidence??T,commitEvidence:a.commitEvidence??V,ciMaxFixAttempts:ao(a.ciMaxFix??X),ciWatchTimeoutMs:null!=b?1e3*b:void 0,ciLogMaxChars:ao(a.ciLogMax??_)}}}function aq(a={}){return{notifications:{inApp:{enabled:a.inApp??ab},browser:{enabled:a.browser??ad},desktop:{enabled:a.desktop??af},events:a.events??ah}}}let[ar,as]=(0,c.useState)("agent");(0,c.useEffect)(()=>{let a=bn.map(a=>document.getElementById(`section-${a.id}`)).filter(Boolean);if(0===a.length)return;let b=new IntersectionObserver(a=>{for(let b of a)b.isIntersecting&&as(b.target.id.replace("section-",""))},{rootMargin:"-65px 0px -60% 0px",threshold:0});for(let c of a)b.observe(c);return()=>b.disconnect()},[]);let at=(0,c.useCallback)(a=>{let b=document.getElementById(`section-${a}`);b&&(b.scrollIntoView({behavior:"smooth",block:"start"}),b.style.animation="none",b.offsetHeight,b.style.animation="section-flash 1s ease-out")},[]);return(0,b.jsxs)("div",{"data-testid":"settings-page-client",className:"max-w-5xl",children:[(0,b.jsx)("div",{className:"bg-background/95 supports-backdrop-filter:bg-background/80 sticky top-0 z-10 grid grid-cols-1 gap-x-5 pt-6 pb-4 backdrop-blur lg:grid-cols-[1fr_280px]",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(r,{className:"text-muted-foreground h-4 w-4"}),(0,b.jsx)("h1",{className:"text-sm font-bold tracking-tight",children:"Settings"}),(0,b.jsxs)("span",{className:"relative h-4 w-16",children:[(0,b.jsx)("span",{className:(0,t.cn)("text-muted-foreground absolute inset-0 flex items-center text-xs transition-opacity duration-300",p?"opacity-100":"opacity-0"),children:"Saving..."}),(0,b.jsxs)("span",{className:(0,t.cn)("absolute inset-0 flex items-center gap-1 text-xs text-green-600 transition-opacity duration-300",q&&!p?"opacity-100":"opacity-0"),children:[(0,b.jsx)(g.Check,{className:"h-3 w-3"}),"Saved"]})]}),(0,b.jsx)("nav",{className:"ml-auto flex items-center gap-0.5",children:bn.map(a=>{let c=a.icon,d=ar===a.id;return(0,b.jsxs)("button",{type:"button",onClick:()=>at(a.id),className:(0,t.cn)("flex cursor-pointer items-center gap-1 rounded-md px-1.5 py-1 text-[11px] transition-all",d?"bg-accent text-foreground font-medium":"text-muted-foreground/60 hover:text-foreground hover:bg-accent/50"),children:[(0,b.jsx)(c,{className:"h-3 w-3"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:a.label})]},a.id)})})]})}),(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)("div",{id:"section-agent",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsxs)(bq,{icon:h.Bot,title:"Agent",description:"AI coding agent and authentication",testId:"agent-settings-section",children:[(0,b.jsx)(bo,{label:"Agent & Model",description:"Provider and model for all operations",htmlFor:"agent-model-picker",children:(0,b.jsx)(bk.AgentModelPicker,{initialAgentType:z,initialModel:a.models.default,mode:"settings",onAgentModelChange:a=>A(a),className:"w-55"})}),(0,b.jsx)(bo,{label:"Authentication",description:"How the agent authenticates",htmlFor:"auth-method",children:(0,b.jsx)(y.TooltipProvider,{children:(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsxs)(a0,{value:B,disabled:!0,children:[(0,b.jsx)(a2,{id:"auth-method","data-testid":"auth-method-select",className:"w-55 cursor-not-allowed text-xs opacity-60",children:(0,b.jsx)(a1,{})}),(0,b.jsx)(a5,{children:bl.map(a=>(0,b.jsx)(a6,{value:a.value,children:a.label},a.value))})]})})}),(0,b.jsx)(y.TooltipContent,{children:"Coming soon"})]})})}),B===a9.AgentAuthMethod.Token&&(0,b.jsx)(bo,{label:"API Token",htmlFor:"agent-token",children:(0,b.jsxs)("div",{className:"relative w-45",children:[(0,b.jsx)(v.Input,{id:"agent-token","data-testid":"agent-token-input",type:E?"text":"password",value:C,onChange:a=>D(a.target.value),onBlur:()=>{C!==(a.agent.token??"")&&u(function(a={}){let b={type:z,authMethod:B,...a},c={type:b.type,authMethod:b.authMethod};return b.authMethod===a9.AgentAuthMethod.Token&&(c.token=a.token??C),{agent:c}}({token:C}))},placeholder:"Enter token",className:"pr-8"}),(0,b.jsx)(w.Button,{type:"button",variant:"ghost",size:"sm",className:"absolute top-0 right-0 h-full px-2 hover:bg-transparent",onClick:()=>F(!E),"data-testid":"toggle-token-visibility","aria-label":E?"Hide token":"Show token",children:E?(0,b.jsx)(f,{className:"h-3 w-3"}):(0,b.jsx)(d.Eye,{className:"h-3 w-3"})})]})})]}),(0,b.jsx)(bt,{links:[{label:"Agent system",href:"https://github.com/shep-ai/cli/blob/main/docs/architecture/agent-system.md"},{label:"Adding agents",href:"https://github.com/shep-ai/cli/blob/main/docs/development/adding-agents.md"},{label:"Configuration guide",href:"https://github.com/shep-ai/cli/blob/main/docs/guides/configuration.md"}],children:"Choose which AI coding agent powers your features. Each agent supports different models and capabilities. Authentication is resolved automatically via your active session."})]}),(0,b.jsxs)("div",{id:"section-environment",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsx)(bq,{icon:i.Terminal,title:"Environment",description:"Editor and shell preferences",testId:"environment-settings-section",children:(0,b.jsx)(bo,{label:"Default Editor",description:"Editor launched for file operations",htmlFor:"default-editor",children:(0,b.jsxs)(a0,{value:G,onValueChange:a=>{H(a),u({environment:{defaultEditor:a,shellPreference:I}})},children:[(0,b.jsx)(a2,{id:"default-editor","data-testid":"editor-select",className:"w-55 cursor-pointer text-xs",children:(0,b.jsx)(a1,{})}),(0,b.jsx)(a5,{children:bm.map(a=>{var c;let d=(c=a.value)&&c in bj?bj[c]:bd;return(0,b.jsx)(a6,{value:a.value,children:(0,b.jsxs)("span",{className:"flex items-center gap-2 text-xs",children:[(0,b.jsx)(d,{className:"h-4 w-4 shrink-0"}),a.label]})},a.value)})})]})})}),(0,b.jsx)(bt,{links:[{label:"Configuration guide",href:"https://github.com/shep-ai/cli/blob/main/docs/guides/configuration.md"}],children:"Your preferred editor is used when opening files for review or editing during the development workflow."})]}),(0,b.jsxs)("div",{id:"section-workflow",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsxs)(bq,{icon:j.GitBranch,title:"Workflow",description:"Automation behavior after implementation",testId:"workflow-settings-section",children:[(0,b.jsx)(bs,{children:"Approve"}),(0,b.jsx)(bp,{label:"Auto-approve PRD",description:"Skip manual review of requirements",id:"allow-prd",testId:"switch-allow-prd",checked:N,onChange:a=>{O(a),u(ap({allowPrd:a}))}}),(0,b.jsx)(bp,{label:"Auto-approve Plan",description:"Skip manual review of implementation plan",id:"allow-plan",testId:"switch-allow-plan",checked:P,onChange:a=>{Q(a),u(ap({allowPlan:a}))}}),(0,b.jsx)(bp,{label:"Auto-approve Merge",description:"Merge without manual review",id:"allow-merge",testId:"switch-allow-merge",checked:R,onChange:a=>{S(a),u(ap({allowMerge:a}))}}),(0,b.jsx)(bs,{children:"Evidence"}),(0,b.jsx)(bp,{label:"Collect evidence",description:"Capture screenshots and artifacts after implementation",id:"enable-evidence",testId:"switch-enable-evidence",checked:T,onChange:a=>{U(a),a?u(ap({enableEvidence:a})):(W(!1),u(ap({enableEvidence:a,commitEvidence:!1})))}}),(0,b.jsx)(bp,{label:"Add evidence to PR",description:"Include evidence in the pull request body",id:"commit-evidence",testId:"switch-commit-evidence",checked:V,disabled:!T||!J,onChange:a=>{W(a),u(ap({commitEvidence:a}))}}),(0,b.jsx)(bs,{children:"Git"}),(0,b.jsx)(bp,{label:"Push on complete",description:"Push to remote when implementation finishes",id:"push-on-complete",testId:"switch-push-on-complete",checked:L,onChange:a=>{M(a),u(ap({pushOnComplete:a}))}}),(0,b.jsx)(bp,{label:"Open PR on complete",description:"Create a pull request when done",id:"open-pr",testId:"switch-open-pr",checked:J,onChange:a=>{K(a),a?u(ap({openPr:a})):(W(!1),u(ap({openPr:a,commitEvidence:!1})))}})]}),(0,b.jsx)(bt,{links:[{label:"Approval gates",href:"https://github.com/shep-ai/cli/blob/main/specs/016-hitl-approval-gates/spec.yaml"},{label:"Push & PR flags",href:"https://github.com/shep-ai/cli/blob/main/specs/037-feature-pr-push-flags/spec.yaml"}],children:"Control how autonomous each feature run is. Auto-approve skips the human review pause at each phase. Push and PR options control what happens after successful implementation."})]}),(0,b.jsxs)("div",{id:"section-ci",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsxs)(bq,{icon:k,title:"Continuous Integration",description:"Limits and timeouts for CI monitoring",testId:"ci-settings-section",children:[(0,b.jsx)(bo,{label:"Max fix attempts",description:"Agent retries on failing CI",htmlFor:"ci-max-fix",children:(0,b.jsx)(br,{id:"ci-max-fix",testId:"ci-max-fix-input",placeholder:"3",value:X,onChange:Y,onBlur:()=>{X!==al&&u(ap({ciMaxFix:X}))},min:1,max:10})}),(0,b.jsx)(bo,{label:"Watch timeout",description:"Max wait for CI completion",htmlFor:"ci-timeout",children:(0,b.jsx)(br,{id:"ci-timeout",testId:"ci-timeout-input",placeholder:"300",value:Z,onChange:$,onBlur:()=>{Z!==am&&u(ap({ciTimeout:Z}))},min:30,step:30,suffix:"sec"})}),(0,b.jsx)(bo,{label:"Max log size",description:"Truncate CI logs beyond this limit",htmlFor:"ci-log-max",children:(0,b.jsx)(br,{id:"ci-log-max",testId:"ci-log-max-input",placeholder:"50000",value:_,onChange:aa,onBlur:()=>{_!==an&&u(ap({ciLogMax:_}))},min:1e3,step:5e3,suffix:"chars"})})]}),(0,b.jsx)(bt,{links:[{label:"CI/CD pipeline",href:"https://github.com/shep-ai/cli/blob/main/docs/development/cicd.md"},{label:"CI security gates",href:"https://github.com/shep-ai/cli/blob/main/specs/003-cicd-security-gates/spec.md"}],children:"When a feature completes, the agent can watch CI and auto-fix failures. These limits prevent runaway retries and control how much log output is sent to the agent for analysis."})]}),(0,b.jsxs)("div",{id:"section-notifications",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsxs)(bq,{icon:l,title:"Notifications",description:"How and when you get notified",testId:"notification-settings-section",children:[(0,b.jsx)(bs,{children:"Channels"}),(0,b.jsx)(bp,{label:"In-app",description:"Notifications inside the Shep UI",id:"notif-in-app",testId:"switch-in-app",checked:ab,onChange:a=>{ac(a),u(aq({inApp:a}))}}),(0,b.jsx)(bp,{label:"Browser",description:"Push notifications via the browser",id:"notif-browser",testId:"switch-browser",checked:ad,onChange:a=>{ae(a),u(aq({browser:a}))}}),(0,b.jsx)(bp,{label:"Desktop",description:"Native OS notifications",id:"notif-desktop",testId:"switch-desktop",checked:af,onChange:a=>{ag(a),u(aq({desktop:a}))}}),(0,b.jsx)(bs,{children:"Agent Events"}),(0,b.jsx)(bp,{label:"Agent started",id:"notif-event-agentStarted",testId:"switch-event-agentStarted",checked:ah.agentStarted,onChange:a=>{let b={...ah,agentStarted:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bp,{label:"Phase completed",id:"notif-event-phaseCompleted",testId:"switch-event-phaseCompleted",checked:ah.phaseCompleted,onChange:a=>{let b={...ah,phaseCompleted:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bp,{label:"Waiting approval",id:"notif-event-waitingApproval",testId:"switch-event-waitingApproval",checked:ah.waitingApproval,onChange:a=>{let b={...ah,waitingApproval:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bp,{label:"Agent completed",id:"notif-event-agentCompleted",testId:"switch-event-agentCompleted",checked:ah.agentCompleted,onChange:a=>{let b={...ah,agentCompleted:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bp,{label:"Agent failed",id:"notif-event-agentFailed",testId:"switch-event-agentFailed",checked:ah.agentFailed,onChange:a=>{let b={...ah,agentFailed:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bs,{children:"Pull Request Events"}),(0,b.jsx)(bp,{label:"PR merged",id:"notif-event-prMerged",testId:"switch-event-prMerged",checked:ah.prMerged,onChange:a=>{let b={...ah,prMerged:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bp,{label:"PR closed",id:"notif-event-prClosed",testId:"switch-event-prClosed",checked:ah.prClosed,onChange:a=>{let b={...ah,prClosed:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bp,{label:"PR checks passed",id:"notif-event-prChecksPassed",testId:"switch-event-prChecksPassed",checked:ah.prChecksPassed,onChange:a=>{let b={...ah,prChecksPassed:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bp,{label:"PR checks failed",id:"notif-event-prChecksFailed",testId:"switch-event-prChecksFailed",checked:ah.prChecksFailed,onChange:a=>{let b={...ah,prChecksFailed:a};ai(b),u(aq({events:b}))}})]}),(0,b.jsx)(bt,{links:[{label:"Notification system",href:"https://github.com/shep-ai/cli/blob/main/specs/021-agent-notifications/spec.yaml"}],children:"Three notification channels keep you in the loop: in-app toasts, browser push notifications, and native desktop alerts. Fine-tune which agent lifecycle events trigger a notification."})]}),(0,b.jsxs)("div",{id:"section-feature-flags",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsxs)(bq,{icon:m,title:"Feature Flags",description:"Enable or disable experimental features",badge:"Experimental",testId:"feature-flags-settings-section",children:[(0,b.jsx)(bp,{label:"Skills",description:"Enable the skills system for agent capabilities",id:"flag-skills",testId:"switch-flag-skills",checked:aj.skills,onChange:a=>{let b={...aj,skills:a};ak(b),u({featureFlags:b})}}),(0,b.jsx)(bp,{label:"Deployments",description:"Enable environment deployment workflows",id:"flag-envDeploy",testId:"switch-flag-envDeploy",checked:aj.envDeploy,onChange:a=>{let b={...aj,envDeploy:a};ak(b),u({featureFlags:b})}}),(0,b.jsx)(bp,{label:"Debug",description:"Show debug panels and verbose logging",id:"flag-debug",testId:"switch-flag-debug",checked:aj.debug,onChange:a=>{let b={...aj,debug:a};ak(b),u({featureFlags:b})}})]}),(0,b.jsx)(bt,{children:"Experimental features that are still under development. Enable at your own risk — they may change or be removed in future versions. Debug mode adds verbose logging useful for troubleshooting."})]}),(0,b.jsxs)("div",{id:"section-database",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsxs)(bq,{icon:n,title:"Database",description:"Local storage information",testId:"database-settings-section",children:[(0,b.jsx)(bo,{label:"Location",description:"Path to the local SQLite database",children:(0,b.jsx)("span",{className:"text-muted-foreground max-w-50 truncate font-mono text-xs","data-testid":"shep-home-path",children:e})}),(0,b.jsx)(bo,{label:"Size",children:(0,b.jsx)("span",{className:"text-muted-foreground text-xs","data-testid":"db-file-size",children:o})})]}),(0,b.jsx)(bt,{links:[{label:"Settings service",href:"https://github.com/shep-ai/cli/blob/main/docs/architecture/settings-service.md"},{label:"Settings spec",href:"https://github.com/shep-ai/cli/blob/main/specs/005-global-settings-service/spec.md"}],children:"All settings are stored in a local SQLite database at ~/.shep/data. The database uses a singleton record pattern with automatic migrations on startup."})]})]})]})}a.s(["SettingsPageClient",()=>bu],79020)}];
1
+ module.exports=[79020,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(83886),e=a.i(25700);let f=(0,e.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var g=a.i(72016),h=a.i(34644),i=a.i(63698),j=a.i(53170);let k=(0,e.default)("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]),l=(0,e.default)("bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]),m=(0,e.default)("flag",[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]),n=(0,e.default)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);var o=a.i(96853),o=o,p=a.i(67837),q=a.i(71238);let r=(0,e.default)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);var s=a.i(52313),t=a.i(85536),u=a.i(58860),v=a.i(90920),w=a.i(18948),x=a.i(96867),y=a.i(82934),z=a.i(55690),A=a.i(48972),B=a.i(59653),C=a.i(63496),D=a.i(6175),E=a.i(7420),F=a.i(48939),G=a.i(58761),H=a.i(51473),I=a.i(59675),J=a.i(5472),K=a.i(75988),L=a.i(80930),M=a.i(66873),N=a.i(90986),O=a.i(79406),P=a.i(17329),Q=a.i(61476),R=a.i(64005),S=a.i(50049),T=a.i(16164),U=a.i(45291),V=[" ","Enter","ArrowUp","ArrowDown"],W=[" ","Enter"],X="Select",[Y,Z,$]=(0,C.createCollection)(X),[_,aa]=(0,E.createContextScope)(X,[$,K.createPopperScope]),ab=(0,K.createPopperScope)(),[ac,ad]=_(X),[ae,af]=_(X),ag=a=>{let{__scopeSelect:d,children:e,open:f,defaultOpen:g,onOpenChange:h,value:i,defaultValue:j,onValueChange:k,dir:l,name:m,autoComplete:n,disabled:o,required:p,form:q}=a,r=ab(d),[s,t]=c.useState(null),[u,v]=c.useState(null),[w,x]=c.useState(!1),y=(0,F.useDirection)(l),[z,A]=(0,P.useControllableState)({prop:f,defaultProp:g??!1,onChange:h,caller:X}),[B,C]=(0,P.useControllableState)({prop:i,defaultProp:j,onChange:k,caller:X}),D=c.useRef(null),E=!s||q||!!s.closest("form"),[G,H]=c.useState(new Set),I=Array.from(G).map(a=>a.props.value).join(";");return(0,b.jsx)(K.Root,{...r,children:(0,b.jsxs)(ac,{required:p,scope:d,trigger:s,onTriggerChange:t,valueNode:u,onValueNodeChange:v,valueNodeHasChildren:w,onValueNodeHasChildrenChange:x,contentId:(0,J.useId)(),value:B,onValueChange:C,open:z,onOpenChange:A,dir:y,triggerPointerDownPosRef:D,disabled:o,children:[(0,b.jsx)(Y.Provider,{scope:d,children:(0,b.jsx)(ae,{scope:a.__scopeSelect,onNativeOptionAdd:c.useCallback(a=>{H(b=>new Set(b).add(a))},[]),onNativeOptionRemove:c.useCallback(a=>{H(b=>{let c=new Set(b);return c.delete(a),c})},[]),children:e})}),E?(0,b.jsxs)(aV,{"aria-hidden":!0,required:p,tabIndex:-1,name:m,autoComplete:n,value:B,onChange:a=>C(a.target.value),disabled:o,form:q,children:[void 0===B?(0,b.jsx)("option",{value:""}):null,Array.from(G)]},I):null]})})};ag.displayName=X;var ah="SelectTrigger",ai=c.forwardRef((a,d)=>{let{__scopeSelect:e,disabled:f=!1,...g}=a,h=ab(e),i=ad(ah,e),j=i.disabled||f,k=(0,D.useComposedRefs)(d,i.onTriggerChange),l=Z(e),m=c.useRef("touch"),[n,o,p]=aX(a=>{let b=l().filter(a=>!a.disabled),c=b.find(a=>a.value===i.value),d=aY(b,a,c);void 0!==d&&i.onValueChange(d.value)}),q=a=>{j||(i.onOpenChange(!0),p()),a&&(i.triggerPointerDownPosRef.current={x:Math.round(a.pageX),y:Math.round(a.pageY)})};return(0,b.jsx)(K.Anchor,{asChild:!0,...h,children:(0,b.jsx)(M.Primitive.button,{type:"button",role:"combobox","aria-controls":i.contentId,"aria-expanded":i.open,"aria-required":i.required,"aria-autocomplete":"none",dir:i.dir,"data-state":i.open?"open":"closed",disabled:j,"data-disabled":j?"":void 0,"data-placeholder":aW(i.value)?"":void 0,...g,ref:k,onClick:(0,B.composeEventHandlers)(g.onClick,a=>{a.currentTarget.focus(),"mouse"!==m.current&&q(a)}),onPointerDown:(0,B.composeEventHandlers)(g.onPointerDown,a=>{m.current=a.pointerType;let b=a.target;b.hasPointerCapture(a.pointerId)&&b.releasePointerCapture(a.pointerId),0===a.button&&!1===a.ctrlKey&&"mouse"===a.pointerType&&(q(a),a.preventDefault())}),onKeyDown:(0,B.composeEventHandlers)(g.onKeyDown,a=>{let b=""!==n.current;a.ctrlKey||a.altKey||a.metaKey||1!==a.key.length||o(a.key),(!b||" "!==a.key)&&V.includes(a.key)&&(q(),a.preventDefault())})})})});ai.displayName=ah;var aj="SelectValue",ak=c.forwardRef((a,c)=>{let{__scopeSelect:d,className:e,style:f,children:g,placeholder:h="",...i}=a,j=ad(aj,d),{onValueNodeHasChildrenChange:k}=j,l=void 0!==g,m=(0,D.useComposedRefs)(c,j.onValueNodeChange);return(0,Q.useLayoutEffect)(()=>{k(l)},[k,l]),(0,b.jsx)(M.Primitive.span,{...i,ref:m,style:{pointerEvents:"none"},children:aW(j.value)?(0,b.jsx)(b.Fragment,{children:h}):g})});ak.displayName=aj;var al=c.forwardRef((a,c)=>{let{__scopeSelect:d,children:e,...f}=a;return(0,b.jsx)(M.Primitive.span,{"aria-hidden":!0,...f,ref:c,children:e||"▼"})});al.displayName="SelectIcon";var am=a=>(0,b.jsx)(L.Portal,{asChild:!0,...a});am.displayName="SelectPortal";var an="SelectContent",ao=c.forwardRef((a,d)=>{let e=ad(an,a.__scopeSelect),[f,g]=c.useState();return((0,Q.useLayoutEffect)(()=>{g(new DocumentFragment)},[]),e.open)?(0,b.jsx)(as,{...a,ref:d}):f?z.createPortal((0,b.jsx)(ap,{scope:a.__scopeSelect,children:(0,b.jsx)(Y.Slot,{scope:a.__scopeSelect,children:(0,b.jsx)("div",{children:a.children})})}),f):null});ao.displayName=an;var[ap,aq]=_(an),ar=(0,N.createSlot)("SelectContent.RemoveScroll"),as=c.forwardRef((a,d)=>{let{__scopeSelect:e,position:f="item-aligned",onCloseAutoFocus:g,onEscapeKeyDown:h,onPointerDownOutside:i,side:j,sideOffset:k,align:l,alignOffset:m,arrowPadding:n,collisionBoundary:o,collisionPadding:p,sticky:q,hideWhenDetached:r,avoidCollisions:s,...t}=a,u=ad(an,e),[v,w]=c.useState(null),[x,y]=c.useState(null),z=(0,D.useComposedRefs)(d,a=>w(a)),[A,C]=c.useState(null),[E,F]=c.useState(null),J=Z(e),[K,L]=c.useState(!1),M=c.useRef(!1);c.useEffect(()=>{if(v)return(0,T.hideOthers)(v)},[v]),(0,H.useFocusGuards)();let N=c.useCallback(a=>{let[b,...c]=J().map(a=>a.ref.current),[d]=c.slice(-1),e=document.activeElement;for(let c of a)if(c===e||(c?.scrollIntoView({block:"nearest"}),c===b&&x&&(x.scrollTop=0),c===d&&x&&(x.scrollTop=x.scrollHeight),c?.focus(),document.activeElement!==e))return},[J,x]),O=c.useCallback(()=>N([A,v]),[N,A,v]);c.useEffect(()=>{K&&O()},[K,O]);let{onOpenChange:P,triggerPointerDownPosRef:Q}=u;c.useEffect(()=>{if(v){let a={x:0,y:0},b=b=>{a={x:Math.abs(Math.round(b.pageX)-(Q.current?.x??0)),y:Math.abs(Math.round(b.pageY)-(Q.current?.y??0))}},c=c=>{a.x<=10&&a.y<=10?c.preventDefault():v.contains(c.target)||P(!1),document.removeEventListener("pointermove",b),Q.current=null};return null!==Q.current&&(document.addEventListener("pointermove",b),document.addEventListener("pointerup",c,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",b),document.removeEventListener("pointerup",c,{capture:!0})}}},[v,P,Q]),c.useEffect(()=>{let a=()=>P(!1);return window.addEventListener("blur",a),window.addEventListener("resize",a),()=>{window.removeEventListener("blur",a),window.removeEventListener("resize",a)}},[P]);let[R,S]=aX(a=>{let b=J().filter(a=>!a.disabled),c=b.find(a=>a.ref.current===document.activeElement),d=aY(b,a,c);d&&setTimeout(()=>d.ref.current.focus())}),V=c.useCallback((a,b,c)=>{let d=!M.current&&!c;(void 0!==u.value&&u.value===b||d)&&(C(a),d&&(M.current=!0))},[u.value]),W=c.useCallback(()=>v?.focus(),[v]),X=c.useCallback((a,b,c)=>{let d=!M.current&&!c;(void 0!==u.value&&u.value===b||d)&&F(a)},[u.value]),Y="popper"===f?au:at,$=Y===au?{side:j,sideOffset:k,align:l,alignOffset:m,arrowPadding:n,collisionBoundary:o,collisionPadding:p,sticky:q,hideWhenDetached:r,avoidCollisions:s}:{};return(0,b.jsx)(ap,{scope:e,content:v,viewport:x,onViewportChange:y,itemRefCallback:V,selectedItem:A,onItemLeave:W,itemTextRefCallback:X,focusSelectedItem:O,selectedItemText:E,position:f,isPositioned:K,searchRef:R,children:(0,b.jsx)(U.RemoveScroll,{as:ar,allowPinchZoom:!0,children:(0,b.jsx)(I.FocusScope,{asChild:!0,trapped:u.open,onMountAutoFocus:a=>{a.preventDefault()},onUnmountAutoFocus:(0,B.composeEventHandlers)(g,a=>{u.trigger?.focus({preventScroll:!0}),a.preventDefault()}),children:(0,b.jsx)(G.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:h,onPointerDownOutside:i,onFocusOutside:a=>a.preventDefault(),onDismiss:()=>u.onOpenChange(!1),children:(0,b.jsx)(Y,{role:"listbox",id:u.contentId,"data-state":u.open?"open":"closed",dir:u.dir,onContextMenu:a=>a.preventDefault(),...t,...$,onPlaced:()=>L(!0),ref:z,style:{display:"flex",flexDirection:"column",outline:"none",...t.style},onKeyDown:(0,B.composeEventHandlers)(t.onKeyDown,a=>{let b=a.ctrlKey||a.altKey||a.metaKey;if("Tab"===a.key&&a.preventDefault(),b||1!==a.key.length||S(a.key),["ArrowUp","ArrowDown","Home","End"].includes(a.key)){let b=J().filter(a=>!a.disabled).map(a=>a.ref.current);if(["ArrowUp","End"].includes(a.key)&&(b=b.slice().reverse()),["ArrowUp","ArrowDown"].includes(a.key)){let c=a.target,d=b.indexOf(c);b=b.slice(d+1)}setTimeout(()=>N(b)),a.preventDefault()}})})})})})})});as.displayName="SelectContentImpl";var at=c.forwardRef((a,d)=>{let{__scopeSelect:e,onPlaced:f,...g}=a,h=ad(an,e),i=aq(an,e),[j,k]=c.useState(null),[l,m]=c.useState(null),n=(0,D.useComposedRefs)(d,a=>m(a)),o=Z(e),p=c.useRef(!1),q=c.useRef(!0),{viewport:r,selectedItem:s,selectedItemText:t,focusSelectedItem:u}=i,v=c.useCallback(()=>{if(h.trigger&&h.valueNode&&j&&l&&r&&s&&t){let a=h.trigger.getBoundingClientRect(),b=l.getBoundingClientRect(),c=h.valueNode.getBoundingClientRect(),d=t.getBoundingClientRect();if("rtl"!==h.dir){let e=d.left-b.left,f=c.left-e,g=a.left-f,h=a.width+g,i=Math.max(h,b.width),k=window.innerWidth-10,l=(0,A.clamp)(f,[10,Math.max(10,k-i)]);j.style.minWidth=h+"px",j.style.left=l+"px"}else{let e=b.right-d.right,f=window.innerWidth-c.right-e,g=window.innerWidth-a.right-f,h=a.width+g,i=Math.max(h,b.width),k=window.innerWidth-10,l=(0,A.clamp)(f,[10,Math.max(10,k-i)]);j.style.minWidth=h+"px",j.style.right=l+"px"}let e=o(),g=window.innerHeight-20,i=r.scrollHeight,k=window.getComputedStyle(l),m=parseInt(k.borderTopWidth,10),n=parseInt(k.paddingTop,10),q=parseInt(k.borderBottomWidth,10),u=m+n+i+parseInt(k.paddingBottom,10)+q,v=Math.min(5*s.offsetHeight,u),w=window.getComputedStyle(r),x=parseInt(w.paddingTop,10),y=parseInt(w.paddingBottom,10),z=a.top+a.height/2-10,B=s.offsetHeight/2,C=m+n+(s.offsetTop+B);if(C<=z){let a=e.length>0&&s===e[e.length-1].ref.current;j.style.bottom="0px";let b=Math.max(g-z,B+(a?y:0)+(l.clientHeight-r.offsetTop-r.offsetHeight)+q);j.style.height=C+b+"px"}else{let a=e.length>0&&s===e[0].ref.current;j.style.top="0px";let b=Math.max(z,m+r.offsetTop+(a?x:0)+B);j.style.height=b+(u-C)+"px",r.scrollTop=C-z+r.offsetTop}j.style.margin="10px 0",j.style.minHeight=v+"px",j.style.maxHeight=g+"px",f?.(),requestAnimationFrame(()=>p.current=!0)}},[o,h.trigger,h.valueNode,j,l,r,s,t,h.dir,f]);(0,Q.useLayoutEffect)(()=>v(),[v]);let[w,x]=c.useState();(0,Q.useLayoutEffect)(()=>{l&&x(window.getComputedStyle(l).zIndex)},[l]);let y=c.useCallback(a=>{a&&!0===q.current&&(v(),u?.(),q.current=!1)},[v,u]);return(0,b.jsx)(av,{scope:e,contentWrapper:j,shouldExpandOnScrollRef:p,onScrollButtonChange:y,children:(0,b.jsx)("div",{ref:k,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:w},children:(0,b.jsx)(M.Primitive.div,{...g,ref:n,style:{boxSizing:"border-box",maxHeight:"100%",...g.style}})})})});at.displayName="SelectItemAlignedPosition";var au=c.forwardRef((a,c)=>{let{__scopeSelect:d,align:e="start",collisionPadding:f=10,...g}=a,h=ab(d);return(0,b.jsx)(K.Content,{...h,...g,ref:c,align:e,collisionPadding:f,style:{boxSizing:"border-box",...g.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});au.displayName="SelectPopperPosition";var[av,aw]=_(an,{}),ax="SelectViewport",ay=c.forwardRef((a,d)=>{let{__scopeSelect:e,nonce:f,...g}=a,h=aq(ax,e),i=aw(ax,e),j=(0,D.useComposedRefs)(d,h.onViewportChange),k=c.useRef(0);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:f}),(0,b.jsx)(Y.Slot,{scope:e,children:(0,b.jsx)(M.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...g,ref:j,style:{position:"relative",flex:1,overflow:"hidden auto",...g.style},onScroll:(0,B.composeEventHandlers)(g.onScroll,a=>{let b=a.currentTarget,{contentWrapper:c,shouldExpandOnScrollRef:d}=i;if(d?.current&&c){let a=Math.abs(k.current-b.scrollTop);if(a>0){let d=window.innerHeight-20,e=Math.max(parseFloat(c.style.minHeight),parseFloat(c.style.height));if(e<d){let f=e+a,g=Math.min(d,f),h=f-g;c.style.height=g+"px","0px"===c.style.bottom&&(b.scrollTop=h>0?h:0,c.style.justifyContent="flex-end")}}}k.current=b.scrollTop})})})]})});ay.displayName=ax;var az="SelectGroup",[aA,aB]=_(az),aC=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a,f=(0,J.useId)();return(0,b.jsx)(aA,{scope:d,id:f,children:(0,b.jsx)(M.Primitive.div,{role:"group","aria-labelledby":f,...e,ref:c})})});aC.displayName=az;var aD="SelectLabel",aE=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a,f=aB(aD,d);return(0,b.jsx)(M.Primitive.div,{id:f.id,...e,ref:c})});aE.displayName=aD;var aF="SelectItem",[aG,aH]=_(aF),aI=c.forwardRef((a,d)=>{let{__scopeSelect:e,value:f,disabled:g=!1,textValue:h,...i}=a,j=ad(aF,e),k=aq(aF,e),l=j.value===f,[m,n]=c.useState(h??""),[o,p]=c.useState(!1),q=(0,D.useComposedRefs)(d,a=>k.itemRefCallback?.(a,f,g)),r=(0,J.useId)(),s=c.useRef("touch"),t=()=>{g||(j.onValueChange(f),j.onOpenChange(!1))};if(""===f)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,b.jsx)(aG,{scope:e,value:f,disabled:g,textId:r,isSelected:l,onItemTextChange:c.useCallback(a=>{n(b=>b||(a?.textContent??"").trim())},[]),children:(0,b.jsx)(Y.ItemSlot,{scope:e,value:f,disabled:g,textValue:m,children:(0,b.jsx)(M.Primitive.div,{role:"option","aria-labelledby":r,"data-highlighted":o?"":void 0,"aria-selected":l&&o,"data-state":l?"checked":"unchecked","aria-disabled":g||void 0,"data-disabled":g?"":void 0,tabIndex:g?void 0:-1,...i,ref:q,onFocus:(0,B.composeEventHandlers)(i.onFocus,()=>p(!0)),onBlur:(0,B.composeEventHandlers)(i.onBlur,()=>p(!1)),onClick:(0,B.composeEventHandlers)(i.onClick,()=>{"mouse"!==s.current&&t()}),onPointerUp:(0,B.composeEventHandlers)(i.onPointerUp,()=>{"mouse"===s.current&&t()}),onPointerDown:(0,B.composeEventHandlers)(i.onPointerDown,a=>{s.current=a.pointerType}),onPointerMove:(0,B.composeEventHandlers)(i.onPointerMove,a=>{s.current=a.pointerType,g?k.onItemLeave?.():"mouse"===s.current&&a.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,B.composeEventHandlers)(i.onPointerLeave,a=>{a.currentTarget===document.activeElement&&k.onItemLeave?.()}),onKeyDown:(0,B.composeEventHandlers)(i.onKeyDown,a=>{(k.searchRef?.current===""||" "!==a.key)&&(W.includes(a.key)&&t()," "===a.key&&a.preventDefault())})})})})});aI.displayName=aF;var aJ="SelectItemText",aK=c.forwardRef((a,d)=>{let{__scopeSelect:e,className:f,style:g,...h}=a,i=ad(aJ,e),j=aq(aJ,e),k=aH(aJ,e),l=af(aJ,e),[m,n]=c.useState(null),o=(0,D.useComposedRefs)(d,a=>n(a),k.onItemTextChange,a=>j.itemTextRefCallback?.(a,k.value,k.disabled)),p=m?.textContent,q=c.useMemo(()=>(0,b.jsx)("option",{value:k.value,disabled:k.disabled,children:p},k.value),[k.disabled,k.value,p]),{onNativeOptionAdd:r,onNativeOptionRemove:s}=l;return(0,Q.useLayoutEffect)(()=>(r(q),()=>s(q)),[r,s,q]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(M.Primitive.span,{id:k.textId,...h,ref:o}),k.isSelected&&i.valueNode&&!i.valueNodeHasChildren?z.createPortal(h.children,i.valueNode):null]})});aK.displayName=aJ;var aL="SelectItemIndicator",aM=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a;return aH(aL,d).isSelected?(0,b.jsx)(M.Primitive.span,{"aria-hidden":!0,...e,ref:c}):null});aM.displayName=aL;var aN="SelectScrollUpButton",aO=c.forwardRef((a,d)=>{let e=aq(aN,a.__scopeSelect),f=aw(aN,a.__scopeSelect),[g,h]=c.useState(!1),i=(0,D.useComposedRefs)(d,f.onScrollButtonChange);return(0,Q.useLayoutEffect)(()=>{if(e.viewport&&e.isPositioned){let a=function(){h(b.scrollTop>0)},b=e.viewport;return a(),b.addEventListener("scroll",a),()=>b.removeEventListener("scroll",a)}},[e.viewport,e.isPositioned]),g?(0,b.jsx)(aR,{...a,ref:i,onAutoScroll:()=>{let{viewport:a,selectedItem:b}=e;a&&b&&(a.scrollTop=a.scrollTop-b.offsetHeight)}}):null});aO.displayName=aN;var aP="SelectScrollDownButton",aQ=c.forwardRef((a,d)=>{let e=aq(aP,a.__scopeSelect),f=aw(aP,a.__scopeSelect),[g,h]=c.useState(!1),i=(0,D.useComposedRefs)(d,f.onScrollButtonChange);return(0,Q.useLayoutEffect)(()=>{if(e.viewport&&e.isPositioned){let a=function(){let a=b.scrollHeight-b.clientHeight;h(Math.ceil(b.scrollTop)<a)},b=e.viewport;return a(),b.addEventListener("scroll",a),()=>b.removeEventListener("scroll",a)}},[e.viewport,e.isPositioned]),g?(0,b.jsx)(aR,{...a,ref:i,onAutoScroll:()=>{let{viewport:a,selectedItem:b}=e;a&&b&&(a.scrollTop=a.scrollTop+b.offsetHeight)}}):null});aQ.displayName=aP;var aR=c.forwardRef((a,d)=>{let{__scopeSelect:e,onAutoScroll:f,...g}=a,h=aq("SelectScrollButton",e),i=c.useRef(null),j=Z(e),k=c.useCallback(()=>{null!==i.current&&(window.clearInterval(i.current),i.current=null)},[]);return c.useEffect(()=>()=>k(),[k]),(0,Q.useLayoutEffect)(()=>{let a=j().find(a=>a.ref.current===document.activeElement);a?.ref.current?.scrollIntoView({block:"nearest"})},[j]),(0,b.jsx)(M.Primitive.div,{"aria-hidden":!0,...g,ref:d,style:{flexShrink:0,...g.style},onPointerDown:(0,B.composeEventHandlers)(g.onPointerDown,()=>{null===i.current&&(i.current=window.setInterval(f,50))}),onPointerMove:(0,B.composeEventHandlers)(g.onPointerMove,()=>{h.onItemLeave?.(),null===i.current&&(i.current=window.setInterval(f,50))}),onPointerLeave:(0,B.composeEventHandlers)(g.onPointerLeave,()=>{k()})})}),aS=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a;return(0,b.jsx)(M.Primitive.div,{"aria-hidden":!0,...e,ref:c})});aS.displayName="SelectSeparator";var aT="SelectArrow",aU=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a,f=ab(d),g=ad(aT,d),h=aq(aT,d);return g.open&&"popper"===h.position?(0,b.jsx)(K.Arrow,{...f,...e,ref:c}):null});aU.displayName=aT;var aV=c.forwardRef(({__scopeSelect:a,value:d,...e},f)=>{let g=c.useRef(null),h=(0,D.useComposedRefs)(f,g),i=(0,R.usePrevious)(d);return c.useEffect(()=>{let a=g.current;if(!a)return;let b=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(i!==d&&b){let c=new Event("change",{bubbles:!0});b.call(a,d),a.dispatchEvent(c)}},[i,d]),(0,b.jsx)(M.Primitive.select,{...e,style:{...S.VISUALLY_HIDDEN_STYLES,...e.style},ref:h,defaultValue:d})});function aW(a){return""===a||void 0===a}function aX(a){let b=(0,O.useCallbackRef)(a),d=c.useRef(""),e=c.useRef(0),f=c.useCallback(a=>{let c=d.current+a;b(c),function a(b){d.current=b,window.clearTimeout(e.current),""!==b&&(e.current=window.setTimeout(()=>a(""),1e3))}(c)},[b]),g=c.useCallback(()=>{d.current="",window.clearTimeout(e.current)},[]);return c.useEffect(()=>()=>window.clearTimeout(e.current),[]),[d,f,g]}function aY(a,b,c){var d,e;let f=b.length>1&&Array.from(b).every(a=>a===b[0])?b[0]:b,g=c?a.indexOf(c):-1,h=(d=a,e=Math.max(g,0),d.map((a,b)=>d[(e+b)%d.length]));1===f.length&&(h=h.filter(a=>a!==c));let i=h.find(a=>a.textValue.toLowerCase().startsWith(f.toLowerCase()));return i!==c?i:void 0}aV.displayName="SelectBubbleInput",a.s(["Arrow",()=>aU,"Content",()=>ao,"Group",()=>aC,"Icon",()=>al,"Item",()=>aI,"ItemIndicator",()=>aM,"ItemText",()=>aK,"Label",()=>aE,"Portal",()=>am,"Root",()=>ag,"ScrollDownButton",()=>aQ,"ScrollUpButton",()=>aO,"Select",()=>ag,"SelectArrow",()=>aU,"SelectContent",()=>ao,"SelectGroup",()=>aC,"SelectIcon",()=>al,"SelectItem",()=>aI,"SelectItemIndicator",()=>aM,"SelectItemText",()=>aK,"SelectLabel",()=>aE,"SelectPortal",()=>am,"SelectScrollDownButton",()=>aQ,"SelectScrollUpButton",()=>aO,"SelectSeparator",()=>aS,"SelectTrigger",()=>ai,"SelectValue",()=>ak,"SelectViewport",()=>ay,"Separator",()=>aS,"Trigger",()=>ai,"Value",()=>ak,"Viewport",()=>ay,"createSelectScope",()=>aa],16252);var aZ=a.i(16252),aZ=aZ,a$=a.i(71716);let a_=(0,e.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),a0=aZ.Root;aZ.Group;let a1=aZ.Value,a2=c.forwardRef(({className:a,children:c,...d},e)=>(0,b.jsxs)(aZ.Trigger,{ref:e,className:(0,t.cn)("border-input ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",a),...d,children:[c,(0,b.jsx)(aZ.Icon,{asChild:!0,children:(0,b.jsx)(a$.ChevronDown,{className:"h-4 w-4 opacity-50"})})]}));a2.displayName=aZ.Trigger.displayName;let a3=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(aZ.ScrollUpButton,{ref:d,className:(0,t.cn)("flex cursor-default items-center justify-center py-1",a),...c,children:(0,b.jsx)(a_,{className:"h-4 w-4"})}));a3.displayName=aZ.ScrollUpButton.displayName;let a4=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(aZ.ScrollDownButton,{ref:d,className:(0,t.cn)("flex cursor-default items-center justify-center py-1",a),...c,children:(0,b.jsx)(a$.ChevronDown,{className:"h-4 w-4"})}));a4.displayName=aZ.ScrollDownButton.displayName;let a5=c.forwardRef(({className:a,children:c,position:d="popper",...e},f)=>(0,b.jsx)(aZ.Portal,{children:(0,b.jsxs)(aZ.Content,{ref:f,className:(0,t.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 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md","popper"===d&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",a),position:d,...e,children:[(0,b.jsx)(a3,{}),(0,b.jsx)(aZ.Viewport,{className:(0,t.cn)("p-1","popper"===d&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:c}),(0,b.jsx)(a4,{})]})}));a5.displayName=aZ.Content.displayName,c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(aZ.Label,{ref:d,className:(0,t.cn)("px-2 py-1.5 text-sm font-semibold",a),...c})).displayName=aZ.Label.displayName;let a6=c.forwardRef(({className:a,children:c,...d},e)=>(0,b.jsxs)(aZ.Item,{ref:e,className:(0,t.cn)("focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...d,children:[(0,b.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,b.jsx)(aZ.ItemIndicator,{children:(0,b.jsx)(g.Check,{className:"h-4 w-4"})})}),(0,b.jsx)(aZ.ItemText,{children:c})]}));a6.displayName=aZ.Item.displayName,c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(aZ.Separator,{ref:d,className:(0,t.cn)("bg-muted -mx-1 my-1 h-px",a),...c})).displayName=aZ.Separator.displayName;var a7=a.i(25674);let a8=(0,a7.createServerReference)("4091d206bc8e297449d714da14b2f8f48f4d6bef10",a7.callServer,void 0,a7.findSourceMapURL,"updateSettingsAction");var a9=a.i(46847),ba=a.i(61640),bb=a.i(40617),bb=bb,bc=a.i(87926);function bd(a){return(0,b.jsx)(bb.default,{className:(0,t.cn)("h-4 w-4",a.className),...a})}function be({className:a}){return(0,b.jsx)(ba.default,{src:"/icons/editors/vscode.svg",alt:"VS Code",width:24,height:24,className:(0,t.cn)("rounded-sm object-contain",a)})}function bf({className:a}){return(0,b.jsx)(ba.default,{src:"/icons/agents/cursor.jpeg",alt:"Cursor",width:24,height:24,className:(0,t.cn)("rounded-sm object-contain",a)})}function bg({className:a}){return(0,b.jsx)(ba.default,{src:"/icons/editors/windsurf.svg",alt:"Windsurf",width:24,height:24,className:(0,t.cn)("rounded-sm object-contain",a)})}function bh({className:a}){return(0,b.jsx)(ba.default,{src:"/icons/editors/zed.svg",alt:"Zed",width:24,height:24,className:(0,t.cn)("rounded-sm object-contain",a)})}function bi({className:a,...c}){return(0,b.jsx)(bc.Rocket,{className:(0,t.cn)("h-4 w-4",a),...c})}be.displayName="VsCodeIcon",bf.displayName="CursorEditorIcon",bg.displayName="WindsurfIcon",bh.displayName="ZedIcon",bi.displayName="AntigravityIcon";let bj={vscode:be,cursor:bf,windsurf:bg,zed:bh,antigravity:bi};var bk=a.i(61781);let bl=[{value:a9.AgentAuthMethod.Session,label:"Session"},{value:a9.AgentAuthMethod.Token,label:"Token"}],bm=[{value:a9.EditorType.VsCode,label:"VS Code"},{value:a9.EditorType.Cursor,label:"Cursor"},{value:a9.EditorType.Windsurf,label:"Windsurf"},{value:a9.EditorType.Zed,label:"Zed"},{value:a9.EditorType.Antigravity,label:"Antigravity"}],bn=[{id:"agent",label:"Agent",icon:h.Bot},{id:"environment",label:"Environment",icon:i.Terminal},{id:"workflow",label:"Workflow",icon:j.GitBranch},{id:"ci",label:"CI",icon:k},{id:"notifications",label:"Notifications",icon:l},{id:"feature-flags",label:"Flags",icon:m},{id:"database",label:"Database",icon:n}];function bo({label:a,description:c,htmlFor:d,children:e}){return(0,b.jsxs)("div",{className:"flex items-center justify-between gap-4 border-b py-2.5 last:border-b-0",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)(u.Label,{htmlFor:d,className:"cursor-pointer text-sm font-normal whitespace-nowrap",children:a}),c?(0,b.jsx)("p",{className:"text-muted-foreground text-[11px] leading-tight",children:c}):null]}),(0,b.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:e})]})}function bp({label:a,description:c,id:d,testId:e,checked:f,onChange:g,disabled:h}){return(0,b.jsx)(bo,{label:a,description:c,htmlFor:d,children:(0,b.jsx)(x.Switch,{id:d,"data-testid":e,checked:f,onCheckedChange:g,disabled:h,className:(0,t.cn)("cursor-pointer",h&&"cursor-not-allowed opacity-50")})})}function bq({icon:a,title:c,description:d,badge:e,testId:f,children:g}){return(0,b.jsxs)("div",{className:"bg-background rounded-lg border","data-testid":f,children:[(0,b.jsxs)("div",{className:"bg-muted/30 border-b px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(a,{className:"text-muted-foreground h-3.5 w-3.5"}),(0,b.jsx)("h2",{className:"text-sm font-semibold",children:c}),e?(0,b.jsx)("span",{className:"bg-muted text-muted-foreground rounded px-1.5 py-0.5 text-[9px] font-medium tracking-wider uppercase",children:e}):null]}),(0,b.jsx)("p",{className:"text-muted-foreground mt-0.5 text-[11px]",children:d})]}),(0,b.jsx)("div",{className:"px-4",children:g})]})}function br({id:a,testId:c,value:d,onChange:e,onBlur:f,placeholder:g,min:h=1,max:i,step:j=1,suffix:k}){let l=""===d?void 0:parseInt(d,10);return(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center overflow-hidden rounded-md border",children:[(0,b.jsx)("button",{type:"button",onClick:()=>{e(String(Math.max(h,(l??parseInt(g,10))-j)))},onMouseUp:f,className:"text-muted-foreground hover:bg-muted hover:text-foreground flex h-8 w-7 cursor-pointer items-center justify-center border-r transition-colors","aria-label":"Decrease",children:(0,b.jsx)(o.default,{className:"h-3 w-3"})}),(0,b.jsx)("input",{id:a,"data-testid":c,type:"text",inputMode:"numeric",pattern:"[0-9]*",value:d,placeholder:g,onChange:a=>{e(a.target.value.replace(/[^0-9]/g,""))},onBlur:f,className:"h-8 w-14 bg-transparent text-center text-xs outline-none"}),(0,b.jsx)("button",{type:"button",onClick:()=>{let a;a=l??parseInt(g,10),e(String(null!=i?Math.min(i,a+j):a+j))},onMouseUp:f,className:"text-muted-foreground hover:bg-muted hover:text-foreground flex h-8 w-7 cursor-pointer items-center justify-center border-l transition-colors","aria-label":"Increase",children:(0,b.jsx)(p.Plus,{className:"h-3 w-3"})})]}),k?(0,b.jsx)("span",{className:"text-muted-foreground text-[11px]",children:k}):null]})}function bs({children:a}){return(0,b.jsx)("div",{className:"border-b pt-3 pb-1",children:(0,b.jsx)("span",{className:"text-muted-foreground text-[10px] font-semibold tracking-wider uppercase",children:a})})}function bt({children:a,links:c}){return(0,b.jsxs)("div",{className:"hidden pt-2 lg:block",children:[(0,b.jsx)("p",{className:"text-muted-foreground/70 text-[11px] leading-relaxed",children:a}),null!=c&&c.length>0?(0,b.jsx)("div",{className:"mt-2 flex flex-col gap-1",children:c.map(a=>(0,b.jsxs)("a",{href:a.href,target:"_blank",rel:"noopener noreferrer",className:"text-muted-foreground hover:text-foreground inline-flex items-center gap-1 text-[10px] transition-colors",children:[(0,b.jsx)(q.ExternalLink,{className:"h-2.5 w-2.5"}),a.label]},a.href))}):null]})}function bu({settings:a,shepHome:e,dbFileSize:o}){let{showSaving:p,showSaved:q,save:u}=function(){let[a,b]=(0,c.useTransition)(),[d,e]=(0,c.useState)(!1),[f,g]=(0,c.useState)(!1),h=(0,c.useRef)(null),i=(0,c.useRef)(!1);return(0,c.useEffect)(()=>{a&&!d&&(e(!0),i.current=!1,h.current=setTimeout(()=>{h.current=null,i.current&&(e(!1),g(!0),setTimeout(()=>g(!1),2e3))},350)),!a&&d&&(i.current=!0,h.current||(e(!1),g(!0),setTimeout(()=>g(!1),2e3)))},[a,d]),{showSaving:d,showSaved:f,save:(0,c.useCallback)(a=>{b(async()=>{let b=await a8(a);b.success||s.toast.error(b.error??"Failed to save settings")})},[b])}}(),x=a.featureFlags??{skills:!1,envDeploy:!1,debug:!1},[z,A]=(0,c.useState)(a.agent.type),B=a.agent.authMethod,[C,D]=(0,c.useState)(a.agent.token??""),[E,F]=(0,c.useState)(!1),[G,H]=(0,c.useState)(a.environment.defaultEditor),I=a.environment.shellPreference,[J,K]=(0,c.useState)(a.workflow.openPrOnImplementationComplete),[L,M]=(0,c.useState)(a.workflow.approvalGateDefaults.pushOnImplementationComplete),[N,O]=(0,c.useState)(a.workflow.approvalGateDefaults.allowPrd),[P,Q]=(0,c.useState)(a.workflow.approvalGateDefaults.allowPlan),[R,S]=(0,c.useState)(a.workflow.approvalGateDefaults.allowMerge),[T,U]=(0,c.useState)(a.workflow.enableEvidence),[V,W]=(0,c.useState)(a.workflow.commitEvidence),[X,Y]=(0,c.useState)(null!=a.workflow.ciMaxFixAttempts?String(a.workflow.ciMaxFixAttempts):""),[Z,$]=(0,c.useState)(null!=a.workflow.ciWatchTimeoutMs?String(Math.round(a.workflow.ciWatchTimeoutMs/1e3)):""),[_,aa]=(0,c.useState)(null!=a.workflow.ciLogMaxChars?String(a.workflow.ciLogMaxChars):""),[ab,ac]=(0,c.useState)(a.notifications.inApp.enabled),[ad,ae]=(0,c.useState)(a.notifications.browser.enabled),[af,ag]=(0,c.useState)(a.notifications.desktop.enabled),[ah,ai]=(0,c.useState)({...a.notifications.events}),[aj,ak]=(0,c.useState)({...x}),al=null!=a.workflow.ciMaxFixAttempts?String(a.workflow.ciMaxFixAttempts):"",am=null!=a.workflow.ciWatchTimeoutMs?String(Math.round(a.workflow.ciWatchTimeoutMs/1e3)):"",an=null!=a.workflow.ciLogMaxChars?String(a.workflow.ciLogMaxChars):"";function ao(a){if(""===a)return;let b=parseInt(a,10);return Number.isNaN(b)||b<=0?void 0:b}function ap(a={}){let b=ao(a.ciTimeout??Z);return{workflow:{openPrOnImplementationComplete:a.openPr??J,approvalGateDefaults:{pushOnImplementationComplete:a.pushOnComplete??L,allowPrd:a.allowPrd??N,allowPlan:a.allowPlan??P,allowMerge:a.allowMerge??R},enableEvidence:a.enableEvidence??T,commitEvidence:a.commitEvidence??V,ciMaxFixAttempts:ao(a.ciMaxFix??X),ciWatchTimeoutMs:null!=b?1e3*b:void 0,ciLogMaxChars:ao(a.ciLogMax??_)}}}function aq(a={}){return{notifications:{inApp:{enabled:a.inApp??ab},browser:{enabled:a.browser??ad},desktop:{enabled:a.desktop??af},events:a.events??ah}}}let[ar,as]=(0,c.useState)("agent");(0,c.useEffect)(()=>{let a=bn.map(a=>document.getElementById(`section-${a.id}`)).filter(Boolean);if(0===a.length)return;let b=new IntersectionObserver(a=>{for(let b of a)b.isIntersecting&&as(b.target.id.replace("section-",""))},{rootMargin:"-65px 0px -60% 0px",threshold:0});for(let c of a)b.observe(c);return()=>b.disconnect()},[]);let at=(0,c.useCallback)(a=>{let b=document.getElementById(`section-${a}`);b&&(b.scrollIntoView({behavior:"smooth",block:"start"}),b.style.animation="none",b.offsetHeight,b.style.animation="section-flash 1s ease-out")},[]);return(0,b.jsxs)("div",{"data-testid":"settings-page-client",className:"max-w-5xl",children:[(0,b.jsx)("div",{className:"bg-background/95 supports-backdrop-filter:bg-background/80 sticky top-0 z-10 grid grid-cols-1 gap-x-5 pt-6 pb-4 backdrop-blur lg:grid-cols-[1fr_280px]",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(r,{className:"text-muted-foreground h-4 w-4"}),(0,b.jsx)("h1",{className:"text-sm font-bold tracking-tight",children:"Settings"}),(0,b.jsxs)("span",{className:"relative h-4 w-16",children:[(0,b.jsx)("span",{className:(0,t.cn)("text-muted-foreground absolute inset-0 flex items-center text-xs transition-opacity duration-300",p?"opacity-100":"opacity-0"),children:"Saving..."}),(0,b.jsxs)("span",{className:(0,t.cn)("absolute inset-0 flex items-center gap-1 text-xs text-green-600 transition-opacity duration-300",q&&!p?"opacity-100":"opacity-0"),children:[(0,b.jsx)(g.Check,{className:"h-3 w-3"}),"Saved"]})]}),(0,b.jsx)("nav",{className:"ml-auto flex items-center gap-0.5",children:bn.map(a=>{let c=a.icon,d=ar===a.id;return(0,b.jsxs)("button",{type:"button",onClick:()=>at(a.id),className:(0,t.cn)("flex cursor-pointer items-center gap-1 rounded-md px-1.5 py-1 text-[11px] transition-all",d?"bg-accent text-foreground font-medium":"text-muted-foreground/60 hover:text-foreground hover:bg-accent/50"),children:[(0,b.jsx)(c,{className:"h-3 w-3"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:a.label})]},a.id)})})]})}),(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)("div",{id:"section-agent",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsxs)(bq,{icon:h.Bot,title:"Agent",description:"AI coding agent and authentication",testId:"agent-settings-section",children:[(0,b.jsx)(bo,{label:"Agent & Model",description:"Provider and model for all operations",htmlFor:"agent-model-picker",children:(0,b.jsx)(bk.AgentModelPicker,{initialAgentType:z,initialModel:a.models.default,mode:"settings",onAgentModelChange:a=>A(a),className:"w-55"})}),(0,b.jsx)(bo,{label:"Authentication",description:"How the agent authenticates",htmlFor:"auth-method",children:(0,b.jsx)(y.TooltipProvider,{children:(0,b.jsxs)(y.Tooltip,{children:[(0,b.jsx)(y.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsxs)(a0,{value:B,disabled:!0,children:[(0,b.jsx)(a2,{id:"auth-method","data-testid":"auth-method-select",className:"w-55 cursor-not-allowed text-xs opacity-60",children:(0,b.jsx)(a1,{})}),(0,b.jsx)(a5,{children:bl.map(a=>(0,b.jsx)(a6,{value:a.value,children:a.label},a.value))})]})})}),(0,b.jsx)(y.TooltipContent,{children:"Coming soon"})]})})}),B===a9.AgentAuthMethod.Token&&(0,b.jsx)(bo,{label:"API Token",htmlFor:"agent-token",children:(0,b.jsxs)("div",{className:"relative w-45",children:[(0,b.jsx)(v.Input,{id:"agent-token","data-testid":"agent-token-input",type:E?"text":"password",value:C,onChange:a=>D(a.target.value),onBlur:()=>{C!==(a.agent.token??"")&&u(function(a={}){let b={type:z,authMethod:B,...a},c={type:b.type,authMethod:b.authMethod};return b.authMethod===a9.AgentAuthMethod.Token&&(c.token=a.token??C),{agent:c}}({token:C}))},placeholder:"Enter token",className:"pr-8"}),(0,b.jsx)(w.Button,{type:"button",variant:"ghost",size:"sm",className:"absolute top-0 right-0 h-full px-2 hover:bg-transparent",onClick:()=>F(!E),"data-testid":"toggle-token-visibility","aria-label":E?"Hide token":"Show token",children:E?(0,b.jsx)(f,{className:"h-3 w-3"}):(0,b.jsx)(d.Eye,{className:"h-3 w-3"})})]})})]}),(0,b.jsx)(bt,{links:[{label:"Agent system",href:"https://github.com/shep-ai/cli/blob/main/docs/architecture/agent-system.md"},{label:"Adding agents",href:"https://github.com/shep-ai/cli/blob/main/docs/development/adding-agents.md"},{label:"Configuration guide",href:"https://github.com/shep-ai/cli/blob/main/docs/guides/configuration.md"}],children:"Choose which AI coding agent powers your features. Each agent supports different models and capabilities. Authentication is resolved automatically via your active session."})]}),(0,b.jsxs)("div",{id:"section-environment",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsx)(bq,{icon:i.Terminal,title:"Environment",description:"Editor and shell preferences",testId:"environment-settings-section",children:(0,b.jsx)(bo,{label:"Default Editor",description:"Editor launched for file operations",htmlFor:"default-editor",children:(0,b.jsxs)(a0,{value:G,onValueChange:a=>{H(a),u({environment:{defaultEditor:a,shellPreference:I}})},children:[(0,b.jsx)(a2,{id:"default-editor","data-testid":"editor-select",className:"w-55 cursor-pointer text-xs",children:(0,b.jsx)(a1,{})}),(0,b.jsx)(a5,{children:bm.map(a=>{var c;let d=(c=a.value)&&c in bj?bj[c]:bd;return(0,b.jsx)(a6,{value:a.value,children:(0,b.jsxs)("span",{className:"flex items-center gap-2 text-xs",children:[(0,b.jsx)(d,{className:"h-4 w-4 shrink-0"}),a.label]})},a.value)})})]})})}),(0,b.jsx)(bt,{links:[{label:"Configuration guide",href:"https://github.com/shep-ai/cli/blob/main/docs/guides/configuration.md"}],children:"Your preferred editor is used when opening files for review or editing during the development workflow."})]}),(0,b.jsxs)("div",{id:"section-workflow",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsxs)(bq,{icon:j.GitBranch,title:"Workflow",description:"Automation behavior after implementation",testId:"workflow-settings-section",children:[(0,b.jsx)(bs,{children:"Approve"}),(0,b.jsx)(bp,{label:"Auto-approve PRD",description:"Skip manual review of requirements",id:"allow-prd",testId:"switch-allow-prd",checked:N,onChange:a=>{O(a),u(ap({allowPrd:a}))}}),(0,b.jsx)(bp,{label:"Auto-approve Plan",description:"Skip manual review of implementation plan",id:"allow-plan",testId:"switch-allow-plan",checked:P,onChange:a=>{Q(a),u(ap({allowPlan:a}))}}),(0,b.jsx)(bp,{label:"Auto-approve Merge",description:"Merge without manual review",id:"allow-merge",testId:"switch-allow-merge",checked:R,onChange:a=>{S(a),u(ap({allowMerge:a}))}}),(0,b.jsx)(bs,{children:"Evidence"}),(0,b.jsx)(bp,{label:"Collect evidence",description:"Capture screenshots and artifacts after implementation",id:"enable-evidence",testId:"switch-enable-evidence",checked:T,onChange:a=>{U(a),a?u(ap({enableEvidence:a})):(W(!1),u(ap({enableEvidence:a,commitEvidence:!1})))}}),(0,b.jsx)(bp,{label:"Add evidence to PR",description:"Include evidence in the pull request body",id:"commit-evidence",testId:"switch-commit-evidence",checked:V,disabled:!T||!J,onChange:a=>{W(a),u(ap({commitEvidence:a}))}}),(0,b.jsx)(bs,{children:"Git"}),(0,b.jsx)(bp,{label:"Push on complete",description:"Push to remote when implementation finishes",id:"push-on-complete",testId:"switch-push-on-complete",checked:L,onChange:a=>{M(a),u(ap({pushOnComplete:a}))}}),(0,b.jsx)(bp,{label:"Open PR on complete",description:"Create a pull request when done",id:"open-pr",testId:"switch-open-pr",checked:J,onChange:a=>{K(a),a?u(ap({openPr:a})):(W(!1),u(ap({openPr:a,commitEvidence:!1})))}})]}),(0,b.jsx)(bt,{links:[{label:"Approval gates",href:"https://github.com/shep-ai/cli/blob/main/specs/016-hitl-approval-gates/spec.yaml"},{label:"Push & PR flags",href:"https://github.com/shep-ai/cli/blob/main/specs/037-feature-pr-push-flags/spec.yaml"}],children:"Control how autonomous each feature run is. Auto-approve skips the human review pause at each phase. Push and PR options control what happens after successful implementation."})]}),(0,b.jsxs)("div",{id:"section-ci",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsxs)(bq,{icon:k,title:"Continuous Integration",description:"Limits and timeouts for CI monitoring",testId:"ci-settings-section",children:[(0,b.jsx)(bo,{label:"Max fix attempts",description:"Agent retries on failing CI",htmlFor:"ci-max-fix",children:(0,b.jsx)(br,{id:"ci-max-fix",testId:"ci-max-fix-input",placeholder:"3",value:X,onChange:Y,onBlur:()=>{X!==al&&u(ap({ciMaxFix:X}))},min:1,max:10})}),(0,b.jsx)(bo,{label:"Watch timeout",description:"Max wait for CI completion",htmlFor:"ci-timeout",children:(0,b.jsx)(br,{id:"ci-timeout",testId:"ci-timeout-input",placeholder:"300",value:Z,onChange:$,onBlur:()=>{Z!==am&&u(ap({ciTimeout:Z}))},min:30,step:30,suffix:"sec"})}),(0,b.jsx)(bo,{label:"Max log size",description:"Truncate CI logs beyond this limit",htmlFor:"ci-log-max",children:(0,b.jsx)(br,{id:"ci-log-max",testId:"ci-log-max-input",placeholder:"50000",value:_,onChange:aa,onBlur:()=>{_!==an&&u(ap({ciLogMax:_}))},min:1e3,step:5e3,suffix:"chars"})})]}),(0,b.jsx)(bt,{links:[{label:"CI/CD pipeline",href:"https://github.com/shep-ai/cli/blob/main/docs/development/cicd.md"},{label:"CI security gates",href:"https://github.com/shep-ai/cli/blob/main/specs/003-cicd-security-gates/spec.md"}],children:"When a feature completes, the agent can watch CI and auto-fix failures. These limits prevent runaway retries and control how much log output is sent to the agent for analysis."})]}),(0,b.jsxs)("div",{id:"section-notifications",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsxs)(bq,{icon:l,title:"Notifications",description:"How and when you get notified",testId:"notification-settings-section",children:[(0,b.jsx)(bs,{children:"Channels"}),(0,b.jsx)(bp,{label:"In-app",description:"Notifications inside the Shep UI",id:"notif-in-app",testId:"switch-in-app",checked:ab,onChange:a=>{ac(a),u(aq({inApp:a}))}}),(0,b.jsx)(bp,{label:"Browser",description:"Push notifications via the browser",id:"notif-browser",testId:"switch-browser",checked:ad,onChange:a=>{ae(a),u(aq({browser:a}))}}),(0,b.jsx)(bp,{label:"Desktop",description:"Native OS notifications",id:"notif-desktop",testId:"switch-desktop",checked:af,onChange:a=>{ag(a),u(aq({desktop:a}))}}),(0,b.jsx)(bs,{children:"Agent Events"}),(0,b.jsx)(bp,{label:"Agent started",id:"notif-event-agentStarted",testId:"switch-event-agentStarted",checked:ah.agentStarted,onChange:a=>{let b={...ah,agentStarted:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bp,{label:"Phase completed",id:"notif-event-phaseCompleted",testId:"switch-event-phaseCompleted",checked:ah.phaseCompleted,onChange:a=>{let b={...ah,phaseCompleted:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bp,{label:"Waiting approval",id:"notif-event-waitingApproval",testId:"switch-event-waitingApproval",checked:ah.waitingApproval,onChange:a=>{let b={...ah,waitingApproval:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bp,{label:"Agent completed",id:"notif-event-agentCompleted",testId:"switch-event-agentCompleted",checked:ah.agentCompleted,onChange:a=>{let b={...ah,agentCompleted:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bp,{label:"Agent failed",id:"notif-event-agentFailed",testId:"switch-event-agentFailed",checked:ah.agentFailed,onChange:a=>{let b={...ah,agentFailed:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bs,{children:"Pull Request Events"}),(0,b.jsx)(bp,{label:"PR merged",id:"notif-event-prMerged",testId:"switch-event-prMerged",checked:ah.prMerged,onChange:a=>{let b={...ah,prMerged:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bp,{label:"PR closed",id:"notif-event-prClosed",testId:"switch-event-prClosed",checked:ah.prClosed,onChange:a=>{let b={...ah,prClosed:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bp,{label:"PR checks passed",id:"notif-event-prChecksPassed",testId:"switch-event-prChecksPassed",checked:ah.prChecksPassed,onChange:a=>{let b={...ah,prChecksPassed:a};ai(b),u(aq({events:b}))}}),(0,b.jsx)(bp,{label:"PR checks failed",id:"notif-event-prChecksFailed",testId:"switch-event-prChecksFailed",checked:ah.prChecksFailed,onChange:a=>{let b={...ah,prChecksFailed:a};ai(b),u(aq({events:b}))}})]}),(0,b.jsx)(bt,{links:[{label:"Notification system",href:"https://github.com/shep-ai/cli/blob/main/specs/021-agent-notifications/spec.yaml"}],children:"Three notification channels keep you in the loop: in-app toasts, browser push notifications, and native desktop alerts. Fine-tune which agent lifecycle events trigger a notification."})]}),(0,b.jsxs)("div",{id:"section-feature-flags",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsxs)(bq,{icon:m,title:"Feature Flags",description:"Enable or disable experimental features",badge:"Experimental",testId:"feature-flags-settings-section",children:[(0,b.jsx)(bp,{label:"Skills",description:"Enable the skills system for agent capabilities",id:"flag-skills",testId:"switch-flag-skills",checked:aj.skills,onChange:a=>{let b={...aj,skills:a};ak(b),u({featureFlags:b})}}),(0,b.jsx)(bp,{label:"Deployments",description:"Enable environment deployment workflows",id:"flag-envDeploy",testId:"switch-flag-envDeploy",checked:aj.envDeploy,onChange:a=>{let b={...aj,envDeploy:a};ak(b),u({featureFlags:b})}}),(0,b.jsx)(bp,{label:"Debug",description:"Show debug panels and verbose logging",id:"flag-debug",testId:"switch-flag-debug",checked:aj.debug,onChange:a=>{let b={...aj,debug:a};ak(b),u({featureFlags:b})}})]}),(0,b.jsx)(bt,{children:"Experimental features that are still under development. Enable at your own risk — they may change or be removed in future versions. Debug mode adds verbose logging useful for troubleshooting."})]}),(0,b.jsxs)("div",{id:"section-database",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsxs)(bq,{icon:n,title:"Database",description:"Local storage information",testId:"database-settings-section",children:[(0,b.jsx)(bo,{label:"Location",description:"Path to the local SQLite database",children:(0,b.jsx)("span",{className:"text-muted-foreground max-w-50 truncate font-mono text-xs","data-testid":"shep-home-path",children:e})}),(0,b.jsx)(bo,{label:"Size",children:(0,b.jsx)("span",{className:"text-muted-foreground text-xs","data-testid":"db-file-size",children:o})})]}),(0,b.jsx)(bt,{links:[{label:"Settings service",href:"https://github.com/shep-ai/cli/blob/main/docs/architecture/settings-service.md"},{label:"Settings spec",href:"https://github.com/shep-ai/cli/blob/main/specs/005-global-settings-service/spec.md"}],children:"All settings are stored in a local SQLite database at ~/.shep/data. The database uses a singleton record pattern with automatic migrations on startup."})]})]})]})}a.s(["SettingsPageClient",()=>bu],79020)}];
2
2
 
3
3
  //# sourceMappingURL=b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map