@shepai/cli 1.120.0 → 1.121.0
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.
- package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.stories.d.ts +1 -0
- package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-list-item/feature-list-item.stories.js +8 -0
- package/dist/src/presentation/web/components/common/feature-status-badges/feature-status-badges.stories.js +6 -6
- package/dist/src/presentation/web/components/common/feature-status-config.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-status-config.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-status-config.js +8 -1
- package/dist/src/presentation/web/components/common/feature-status-group/feature-status-group.stories.d.ts +1 -0
- package/dist/src/presentation/web/components/common/feature-status-group/feature-status-group.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-status-group/feature-status-group.stories.js +7 -0
- package/dist/src/presentation/web/hooks/sidebar-features-context.js +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +2 -2
- package/web/.next/required-server-files.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +21 -21
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +19 -19
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +21 -21
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +19 -19
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +19 -19
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_ed372306.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_ed372306.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_32e26434.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_32e26434.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__06fef644._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__3b14e5a0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__3b14e5a0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__545792ab._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6b17a22d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__6bb00d90._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__804c006d._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8b59c03e._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8b59c03e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__8c553503._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__994ad9fe._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__994ad9fe._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a022445f._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a7de2711._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c9c1cfee._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c9c1cfee._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_16e2ff25._.js → _0314651a._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_16e2ff25._.js.map → _0314651a._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_0dc2cfd3._.js +3 -0
- package/web/.next/server/chunks/ssr/_0dc2cfd3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
- package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_2f6f48b8._.js +1 -1
- package/web/.next/server/chunks/ssr/_2f6f48b8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_c93f4352._.js → _68cc9b82._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_c93f4352._.js.map → _68cc9b82._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_73a34cb2._.js +3 -0
- package/web/.next/server/chunks/ssr/{_503b26e9._.js.map → _73a34cb2._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
- package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_f605354c._.js → _f1a649e3._.js} +3 -3
- package/web/.next/server/chunks/ssr/_f1a649e3._.js.map +1 -0
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0835b28e._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_0835b28e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_e99d78dd.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_e99d78dd.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_e8034a29._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_e8034a29._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +33 -33
- package/web/.next/static/chunks/0cc5f5ca1696267a.js +1 -0
- package/web/.next/static/chunks/0d2af96e64960ef5.css +1 -0
- package/web/.next/static/chunks/{f518c011aaa1941e.js → 2132807f96110232.js} +1 -1
- package/web/.next/static/chunks/{abb2b485cb0da264.js → 4b58ac6e7721f9ea.js} +1 -1
- package/web/.next/static/chunks/{263497416e5198a3.js → 4c22a50608db401a.js} +1 -1
- package/web/.next/static/chunks/5186e2254580afd1.js +11 -0
- package/web/.next/static/chunks/{a5ff70a7709ec5af.js → 8ded2620c2272c27.js} +2 -2
- package/web/.next/static/chunks/{71161130b2462279.js → 96eeeb28e06de78c.js} +1 -1
- package/web/.next/static/chunks/{943a2b78e452a2fb.js → 9fdfff0a8c69ecd2.js} +2 -2
- package/web/.next/static/chunks/c6a68bd98c2c0446.js +1 -0
- package/web/.next/static/chunks/{51244236801cad96.js → f22c2cdecc7a523b.js} +1 -1
- package/web/.next/static/chunks/{57e0b981e00941e4.js → f27e3d3959bf91e6.js} +1 -1
- package/web/.next/server/chunks/ssr/_503b26e9._.js +0 -3
- package/web/.next/server/chunks/ssr/_ab069e13._.js +0 -3
- package/web/.next/server/chunks/ssr/_ab069e13._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_f605354c._.js.map +0 -1
- package/web/.next/static/chunks/027d779d1dd1535e.js +0 -1
- package/web/.next/static/chunks/700fc491c912dd68.js +0 -1
- package/web/.next/static/chunks/844405e9e0f44c8b.js +0 -11
- package/web/.next/static/chunks/d2739454715e5ef2.css +0 -1
- /package/web/.next/static/{oxdz8EAvGqpg8JW3gRSSs → Fg0DqzWA5hDmVmj5X9iq-}/_buildManifest.js +0 -0
- /package/web/.next/static/{oxdz8EAvGqpg8JW3gRSSs → Fg0DqzWA5hDmVmj5X9iq-}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{oxdz8EAvGqpg8JW3gRSSs → Fg0DqzWA5hDmVmj5X9iq-}/_ssgManifest.js +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
module.exports=[67837,a=>{"use strict";let b=(0,a.i(25700).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",()=>b],67837)},17300,a=>{"use strict";let b=(0,a.i(25700).default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]);a.s(["Wrench",()=>b],17300)},2811,a=>{"use strict";let b=(0,a.i(25700).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["default",()=>b])},58428,a=>{"use strict";let b=(0,a.i(25700).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["default",()=>b])},56926,a=>{"use strict";var b=a.i(58428);a.s(["CircleX",()=>b.default])},67273,93866,a=>{"use strict";var b=a.i(2811);a.s(["CircleCheck",()=>b.default],67273);let c=(0,a.i(25700).default)("ban",[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Ban",()=>c],93866)},84871,a=>{"use strict";var b=a.i(10973),c=a.i(96960);let d=(0,a.i(87139).createLogger)("[SSE]"),e=(0,c.createContext)(null);function f({children:a,runId:f}){let{events:g,lastEvent:h,connectionStatus:i}=function(a){let[b,e]=(0,c.useState)([]),[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)("disconnected"),j=a?.runId;(0,c.useRef)(null);let k=(0,c.useCallback)(a=>{let b=a.data;if(b&&"object"==typeof b)if("notification"===b.type){let a=b.data;d.debug("event received:",a.eventType,a),e(b=>{let c=[...b,a];return c.length>500?c.slice(-250):c}),g(a)}else"status"===b.type&&i(b.status)},[]);return(0,c.useEffect)(()=>{},[j,k]),{events:b,lastEvent:f,connectionStatus:h}}({runId:f}),j=(0,c.useMemo)(()=>({events:g,lastEvent:h,connectionStatus:i}),[g,h,i]);return(0,b.jsx)(e.Provider,{value:j,children:a})}function g(){let a=(0,c.useContext)(e);if(!a)throw Error("useAgentEventsContext must be used within an <AgentEventsProvider>");return a}a.s(["AgentEventsProvider",()=>f,"useAgentEventsContext",()=>g],84871)},58508,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"},48939,a=>{"use strict";var b=a.i(96960);a.i(10973);var c=b.createContext(void 0);function d(a){let d=b.useContext(c);return a||d||"ltr"}a.s(["useDirection",()=>d])},2065,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"useMergedRef",{enumerable:!0,get:function(){return e}});let d=a.r(96960);function e(a,b){let c=(0,d.useRef)(null),e=(0,d.useRef)(null);return(0,d.useCallback)(d=>{if(null===d){let a=c.current;a&&(c.current=null,a());let b=e.current;b&&(e.current=null,b())}else a&&(c.current=f(a,d)),b&&(e.current=f(b,d))},[a,b])}function f(a,b){if("function"!=typeof a)return a.current=b,()=>{a.current=null};{let c=a(b);return"function"==typeof c?c:()=>a(null)}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},61712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"warnOnce",{enumerable:!0,get:function(){return d}});let d=a=>{}},27478,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getDeploymentId:function(){return f},getDeploymentIdQueryOrEmptyString:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(){return!1}function g(){return""}},
|
|
1
|
+
module.exports=[67837,a=>{"use strict";let b=(0,a.i(25700).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",()=>b],67837)},17300,a=>{"use strict";let b=(0,a.i(25700).default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]);a.s(["Wrench",()=>b],17300)},2811,a=>{"use strict";let b=(0,a.i(25700).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["default",()=>b])},58428,a=>{"use strict";let b=(0,a.i(25700).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["default",()=>b])},56926,a=>{"use strict";var b=a.i(58428);a.s(["CircleX",()=>b.default])},67273,93866,a=>{"use strict";var b=a.i(2811);a.s(["CircleCheck",()=>b.default],67273);let c=(0,a.i(25700).default)("ban",[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Ban",()=>c],93866)},84871,a=>{"use strict";var b=a.i(10973),c=a.i(96960);let d=(0,a.i(87139).createLogger)("[SSE]"),e=(0,c.createContext)(null);function f({children:a,runId:f}){let{events:g,lastEvent:h,connectionStatus:i}=function(a){let[b,e]=(0,c.useState)([]),[f,g]=(0,c.useState)(null),[h,i]=(0,c.useState)("disconnected"),j=a?.runId;(0,c.useRef)(null);let k=(0,c.useCallback)(a=>{let b=a.data;if(b&&"object"==typeof b)if("notification"===b.type){let a=b.data;d.debug("event received:",a.eventType,a),e(b=>{let c=[...b,a];return c.length>500?c.slice(-250):c}),g(a)}else"status"===b.type&&i(b.status)},[]);return(0,c.useEffect)(()=>{},[j,k]),{events:b,lastEvent:f,connectionStatus:h}}({runId:f}),j=(0,c.useMemo)(()=>({events:g,lastEvent:h,connectionStatus:i}),[g,h,i]);return(0,b.jsx)(e.Provider,{value:j,children:a})}function g(){let a=(0,c.useContext)(e);if(!a)throw Error("useAgentEventsContext must be used within an <AgentEventsProvider>");return a}a.s(["AgentEventsProvider",()=>f,"useAgentEventsContext",()=>g],84871)},58508,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"},48939,a=>{"use strict";var b=a.i(96960);a.i(10973);var c=b.createContext(void 0);function d(a){let d=b.useContext(c);return a||d||"ltr"}a.s(["useDirection",()=>d])},2065,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"useMergedRef",{enumerable:!0,get:function(){return e}});let d=a.r(96960);function e(a,b){let c=(0,d.useRef)(null),e=(0,d.useRef)(null);return(0,d.useCallback)(d=>{if(null===d){let a=c.current;a&&(c.current=null,a());let b=e.current;b&&(e.current=null,b())}else a&&(c.current=f(a,d)),b&&(e.current=f(b,d))},[a,b])}function f(a,b){if("function"!=typeof a)return a.current=b,()=>{a.current=null};{let c=a(b);return"function"==typeof c?c:()=>a(null)}}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},61712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"warnOnce",{enumerable:!0,get:function(){return d}});let d=a=>{}},27478,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getDeploymentId:function(){return f},getDeploymentIdQueryOrEmptyString:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(){return!1}function g(){return""}},46168,a=>{"use strict";let b=(0,a.i(25700).default)("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);a.s(["Clock",()=>b],46168)},3703,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(7420),e=a.i(6175),f=a.i(40093),g=a.i(59653),h=a.i(90986),i="AlertDialog",[j,k]=(0,d.createContextScope)(i,[f.createDialogScope]),l=(0,f.createDialogScope)(),m=a=>{let{__scopeAlertDialog:c,...d}=a,e=l(c);return(0,b.jsx)(f.Root,{...e,...d,modal:!0})};m.displayName=i;var n=c.forwardRef((a,c)=>{let{__scopeAlertDialog:d,...e}=a,g=l(d);return(0,b.jsx)(f.Trigger,{...g,...e,ref:c})});n.displayName="AlertDialogTrigger";var o=a=>{let{__scopeAlertDialog:c,...d}=a,e=l(c);return(0,b.jsx)(f.Portal,{...e,...d})};o.displayName="AlertDialogPortal";var p=c.forwardRef((a,c)=>{let{__scopeAlertDialog:d,...e}=a,g=l(d);return(0,b.jsx)(f.Overlay,{...g,...e,ref:c})});p.displayName="AlertDialogOverlay";var q="AlertDialogContent",[r,s]=j(q),t=(0,h.createSlottable)("AlertDialogContent"),u=c.forwardRef((a,d)=>{let{__scopeAlertDialog:h,children:i,...j}=a,k=l(h),m=c.useRef(null),n=(0,e.useComposedRefs)(d,m),o=c.useRef(null);return(0,b.jsx)(f.WarningProvider,{contentName:q,titleName:v,docsSlug:"alert-dialog",children:(0,b.jsx)(r,{scope:h,cancelRef:o,children:(0,b.jsxs)(f.Content,{role:"alertdialog",...k,...j,ref:n,onOpenAutoFocus:(0,g.composeEventHandlers)(j.onOpenAutoFocus,a=>{a.preventDefault(),o.current?.focus({preventScroll:!0})}),onPointerDownOutside:a=>a.preventDefault(),onInteractOutside:a=>a.preventDefault(),children:[(0,b.jsx)(t,{children:i}),(0,b.jsx)(C,{contentRef:m})]})})})});u.displayName=q;var v="AlertDialogTitle",w=c.forwardRef((a,c)=>{let{__scopeAlertDialog:d,...e}=a,g=l(d);return(0,b.jsx)(f.Title,{...g,...e,ref:c})});w.displayName=v;var x="AlertDialogDescription",y=c.forwardRef((a,c)=>{let{__scopeAlertDialog:d,...e}=a,g=l(d);return(0,b.jsx)(f.Description,{...g,...e,ref:c})});y.displayName=x;var z=c.forwardRef((a,c)=>{let{__scopeAlertDialog:d,...e}=a,g=l(d);return(0,b.jsx)(f.Close,{...g,...e,ref:c})});z.displayName="AlertDialogAction";var A="AlertDialogCancel",B=c.forwardRef((a,c)=>{let{__scopeAlertDialog:d,...g}=a,{cancelRef:h}=s(A,d),i=l(d),j=(0,e.useComposedRefs)(c,h);return(0,b.jsx)(f.Close,{...i,...g,ref:j})});B.displayName=A;var C=({contentRef:a})=>{let b=`\`${q}\` requires a description for the component to be accessible for screen reader users.
|
|
2
2
|
|
|
3
3
|
You can add a description to the \`${q}\` by passing a \`${x}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
|
|
4
4
|
|
|
5
5
|
Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${q}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
|
|
6
6
|
|
|
7
|
-
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return c.useEffect(()=>{document.getElementById(a.current?.getAttribute("aria-describedby"))||console.warn(b)},[b,a]),null};a.s(["Action",()=>z,"AlertDialog",()=>m,"AlertDialogAction",()=>z,"AlertDialogCancel",()=>B,"AlertDialogContent",()=>u,"AlertDialogDescription",()=>y,"AlertDialogOverlay",()=>p,"AlertDialogPortal",()=>o,"AlertDialogTitle",()=>w,"AlertDialogTrigger",()=>n,"Cancel",()=>B,"Content",()=>u,"Description",()=>y,"Overlay",()=>p,"Portal",()=>o,"Root",()=>m,"Title",()=>w,"Trigger",()=>n,"createAlertDialogScope",()=>k],41802);var D=a.i(41802),D=D,E=a.i(85536),F=a.i(18948);function G({...a}){return(0,b.jsx)(D.Root,{"data-slot":"alert-dialog",...a})}function H({...a}){return(0,b.jsx)(D.Portal,{"data-slot":"alert-dialog-portal",...a})}function I({className:a,onClick:c,...d}){return(0,b.jsx)(D.Overlay,{"data-slot":"alert-dialog-overlay",className:(0,E.cn)("fixed inset-0 z-50 bg-black/50",a),onClick:a=>{a.stopPropagation(),c?.(a)},...d})}function J({className:a,size:c="default",...d}){return(0,b.jsxs)(H,{children:[(0,b.jsx)(I,{}),(0,b.jsx)(D.Content,{"data-slot":"alert-dialog-content","data-size":c,className:(0,E.cn)("bg-background group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg",a),...d})]})}function K({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,E.cn)("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",a),...c})}function L({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,E.cn)("flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",a),...c})}function M({className:a,...c}){return(0,b.jsx)(D.Title,{"data-slot":"alert-dialog-title",className:(0,E.cn)("text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",a),...c})}function N({className:a,...c}){return(0,b.jsx)(D.Description,{"data-slot":"alert-dialog-description",className:(0,E.cn)("text-muted-foreground text-sm",a),...c})}function O({className:a,variant:c="default",size:d="default",...e}){return(0,b.jsx)(F.Button,{variant:c,size:d,asChild:!0,children:(0,b.jsx)(D.Action,{"data-slot":"alert-dialog-action",className:(0,E.cn)(a),...e})})}function P({className:a,variant:c="outline",size:d="default",...e}){return(0,b.jsx)(F.Button,{variant:c,size:d,asChild:!0,children:(0,b.jsx)(D.Cancel,{"data-slot":"alert-dialog-cancel",className:(0,E.cn)(a),...e})})}a.s(["AlertDialog",()=>G,"AlertDialogAction",()=>O,"AlertDialogCancel",()=>P,"AlertDialogContent",()=>J,"AlertDialogDescription",()=>N,"AlertDialogFooter",()=>L,"AlertDialogHeader",()=>K,"AlertDialogTitle",()=>M],3703);let
|
|
7
|
+
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return c.useEffect(()=>{document.getElementById(a.current?.getAttribute("aria-describedby"))||console.warn(b)},[b,a]),null};a.s(["Action",()=>z,"AlertDialog",()=>m,"AlertDialogAction",()=>z,"AlertDialogCancel",()=>B,"AlertDialogContent",()=>u,"AlertDialogDescription",()=>y,"AlertDialogOverlay",()=>p,"AlertDialogPortal",()=>o,"AlertDialogTitle",()=>w,"AlertDialogTrigger",()=>n,"Cancel",()=>B,"Content",()=>u,"Description",()=>y,"Overlay",()=>p,"Portal",()=>o,"Root",()=>m,"Title",()=>w,"Trigger",()=>n,"createAlertDialogScope",()=>k],41802);var D=a.i(41802),D=D,E=a.i(85536),F=a.i(18948);function G({...a}){return(0,b.jsx)(D.Root,{"data-slot":"alert-dialog",...a})}function H({...a}){return(0,b.jsx)(D.Portal,{"data-slot":"alert-dialog-portal",...a})}function I({className:a,onClick:c,...d}){return(0,b.jsx)(D.Overlay,{"data-slot":"alert-dialog-overlay",className:(0,E.cn)("fixed inset-0 z-50 bg-black/50",a),onClick:a=>{a.stopPropagation(),c?.(a)},...d})}function J({className:a,size:c="default",...d}){return(0,b.jsxs)(H,{children:[(0,b.jsx)(I,{}),(0,b.jsx)(D.Content,{"data-slot":"alert-dialog-content","data-size":c,className:(0,E.cn)("bg-background group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg",a),...d})]})}function K({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,E.cn)("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",a),...c})}function L({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,E.cn)("flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",a),...c})}function M({className:a,...c}){return(0,b.jsx)(D.Title,{"data-slot":"alert-dialog-title",className:(0,E.cn)("text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",a),...c})}function N({className:a,...c}){return(0,b.jsx)(D.Description,{"data-slot":"alert-dialog-description",className:(0,E.cn)("text-muted-foreground text-sm",a),...c})}function O({className:a,variant:c="default",size:d="default",...e}){return(0,b.jsx)(F.Button,{variant:c,size:d,asChild:!0,children:(0,b.jsx)(D.Action,{"data-slot":"alert-dialog-action",className:(0,E.cn)(a),...e})})}function P({className:a,variant:c="outline",size:d="default",...e}){return(0,b.jsx)(F.Button,{variant:c,size:d,asChild:!0,children:(0,b.jsx)(D.Cancel,{"data-slot":"alert-dialog-cancel",className:(0,E.cn)(a),...e})})}a.s(["AlertDialog",()=>G,"AlertDialogAction",()=>O,"AlertDialogCancel",()=>P,"AlertDialogContent",()=>J,"AlertDialogDescription",()=>N,"AlertDialogFooter",()=>L,"AlertDialogHeader",()=>K,"AlertDialogTitle",()=>M],3703)},96213,a=>{"use strict";var b=a.i(10973),c=a.i(96960),d=a.i(3703);let e=(0,c.createContext)(null);function f({children:a}){let f=(0,c.useRef)(null),g=(0,c.useRef)(null),[h,i]=(0,c.useState)(!1),j=(0,c.useCallback)(a=>{f.current=a},[]),k=(0,c.useCallback)(a=>{if(f.current?.isDirty){g.current=a,i(!0);return}a()},[]),l=(0,c.useCallback)(()=>{i(!1),f.current?.onReset(),f.current=null,g.current?.(),g.current=null},[]),m=(0,c.useCallback)(()=>{i(!1),g.current=null},[]),n=(0,c.useCallback)(()=>f.current?.isDirty??!1,[]);return(0,b.jsxs)(e,{value:{setGuard:j,guardedNavigate:k,getIsDirty:n},children:[a,(0,b.jsx)(d.AlertDialog,{open:h,children:(0,b.jsxs)(d.AlertDialogContent,{children:[(0,b.jsxs)(d.AlertDialogHeader,{children:[(0,b.jsx)(d.AlertDialogTitle,{children:"Discard unsaved changes?"}),(0,b.jsx)(d.AlertDialogDescription,{children:"You have unsaved changes. Are you sure you want to discard them?"})]}),(0,b.jsxs)(d.AlertDialogFooter,{children:[(0,b.jsx)(d.AlertDialogAction,{variant:"destructive",onClick:l,children:"Discard"}),(0,b.jsx)(d.AlertDialogCancel,{onClick:m,children:"Keep editing"})]})]})})]})}function g(){let a=(0,c.useContext)(e);if(!a)throw Error("useDrawerCloseGuard must be used within DrawerCloseGuardProvider");return a}function h({open:a,isDirty:b,onClose:d,onReset:e}){let{setGuard:f,guardedNavigate:h}=g();return(0,c.useEffect)(()=>(a?f({isDirty:b,onReset:e}):f(null),()=>f(null)),[a,b,e,f]),{attemptClose:(0,c.useCallback)(()=>{h(()=>{e(),d()})},[h,d,e])}}a.s(["DrawerCloseGuardProvider",()=>f,"useDrawerCloseGuard",()=>g,"useGuardedDrawerClose",()=>h])}];
|
|
8
8
|
|
|
9
|
-
//# sourceMappingURL=
|
|
9
|
+
//# sourceMappingURL=_f1a649e3._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/plus.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/wrench.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle-check.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/circle-x.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/ban.ts","../../../../../../../src/presentation/web/hooks/agent-events-provider.tsx","../../../../../../../src/presentation/web/hooks/use-agent-events.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/segment.ts","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-direction%401.1.1_%40types%2Breact%4019.2.10_react%4019.2.4/node_modules/%40radix-ui/react-direction/src/direction.tsx","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/client/use-merged-ref.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/utils/warn-once.ts","../../../../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40playwright%2Btest%401.58.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/next/src/shared/lib/deployment-id.ts","../../../../../../../node_modules/.pnpm/lucide-react%400.563.0_react%4019.2.4/node_modules/lucide-react/src/icons/clock.ts","../../../../../../../src/presentation/web/components/ui/alert-dialog.tsx","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-alert-dialog%401.1.15_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.10__%40type_56f594cfdf18ff10dafbf7587c6528db/node_modules/%40radix-ui/react-alert-dialog/dist/index.mjs","../../../../../../../src/presentation/web/hooks/drawer-close-guard.tsx"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'M12 5v14', key: 's699le' }],\n];\n\n/**\n * @component @name Plus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Plus = createLucideIcon('plus', __iconNode);\n\nexport default Plus;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n [\n 'path',\n {\n d: 'M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z',\n key: '1ngwbx',\n },\n ],\n];\n\n/**\n * @component @name Wrench\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/wrench\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Wrench = createLucideIcon('wrench', __iconNode);\n\nexport default Wrench;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'm9 12 2 2 4-4', key: 'dzmm74' }],\n];\n\n/**\n * @component @name CircleCheck\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleCheck = createLucideIcon('circle-check', __iconNode);\n\nexport default CircleCheck;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'm15 9-6 6', key: '1uzhvr' }],\n ['path', { d: 'm9 9 6 6', key: 'z0biqf' }],\n];\n\n/**\n * @component @name CircleX\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/circle-x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CircleX = createLucideIcon('circle-x', __iconNode);\n\nexport default CircleX;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M4.929 4.929 19.07 19.071', key: '196cmz' }],\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n];\n\n/**\n * @component @name Ban\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/ban\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Ban = createLucideIcon('ban', __iconNode);\n\nexport default Ban;\n","'use client';\n\nimport { createContext, useContext, useMemo, type ReactNode } from 'react';\nimport {\n useAgentEvents,\n type UseAgentEventsOptions,\n type UseAgentEventsResult,\n} from './use-agent-events';\n\nconst AgentEventsContext = createContext<UseAgentEventsResult | null>(null);\n\ninterface AgentEventsProviderProps extends UseAgentEventsOptions {\n children: ReactNode;\n}\n\n/**\n * Single SSE connection for agent events shared across all consumers.\n * Wrap the app once; use `useAgentEventsContext()` to read.\n */\nexport function AgentEventsProvider({ children, runId }: AgentEventsProviderProps) {\n const { events, lastEvent, connectionStatus } = useAgentEvents({ runId });\n\n const value = useMemo<UseAgentEventsResult>(\n () => ({ events, lastEvent, connectionStatus }),\n [events, lastEvent, connectionStatus]\n );\n\n return <AgentEventsContext.Provider value={value}>{children}</AgentEventsContext.Provider>;\n}\n\nexport function useAgentEventsContext(): UseAgentEventsResult {\n const ctx = useContext(AgentEventsContext);\n if (!ctx) {\n throw new Error('useAgentEventsContext must be used within an <AgentEventsProvider>');\n }\n return ctx;\n}\n","'use client';\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport type { NotificationEvent } from '@shepai/core/domain/generated/output';\nimport { createLogger } from '@/lib/logger';\n\nexport type ConnectionStatus = 'connected' | 'connecting' | 'disconnected';\n\nexport interface UseAgentEventsOptions {\n runId?: string;\n}\n\nexport interface UseAgentEventsResult {\n events: NotificationEvent[];\n lastEvent: NotificationEvent | null;\n connectionStatus: ConnectionStatus;\n}\n\nconst log = createLogger('[SSE]');\nconst SW_PATH = '/agent-events-sw.js';\nconst MAX_EVENTS = 500;\nconst PRUNE_KEEP = 250;\n\n/**\n * Hook that receives real-time agent notification events via a Service Worker.\n *\n * The SW maintains a single SSE connection to /api/agent-events and\n * broadcasts events to all open tabs. Falls back to direct EventSource\n * when Service Workers are unavailable.\n */\nexport function useAgentEvents(options?: UseAgentEventsOptions): UseAgentEventsResult {\n const [events, setEvents] = useState<NotificationEvent[]>([]);\n const [lastEvent, setLastEvent] = useState<NotificationEvent | null>(null);\n const [connectionStatus, setConnectionStatus] = useState<ConnectionStatus>('disconnected');\n\n const runId = options?.runId;\n const swRef = useRef<ServiceWorker | null>(null);\n\n const onMessage = useCallback((event: MessageEvent) => {\n const msg = event.data;\n if (!msg || typeof msg !== 'object') return;\n\n if (msg.type === 'notification') {\n const parsed = msg.data as NotificationEvent;\n log.debug('event received:', parsed.eventType, parsed);\n setEvents((prev) => {\n const next = [...prev, parsed];\n return next.length > MAX_EVENTS ? next.slice(-PRUNE_KEEP) : next;\n });\n setLastEvent(parsed);\n } else if (msg.type === 'status') {\n setConnectionStatus(msg.status as ConnectionStatus);\n }\n }, []);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n // ?sse=direct bypasses the Service Worker for debugging\n const bypassSW =\n typeof location !== 'undefined' && new URLSearchParams(location.search).has('sse');\n\n // Fallback: direct EventSource when SW not supported or bypassed\n if (!navigator.serviceWorker || bypassSW) {\n return connectDirectEventSource(runId, setEvents, setLastEvent, setConnectionStatus);\n }\n\n let cancelled = false;\n const fallbackCleanupRef = { current: undefined as (() => void) | undefined };\n\n function subscribeToWorker(worker: ServiceWorker) {\n if (cancelled) return;\n swRef.current = worker;\n worker.postMessage({ type: 'subscribe', runId });\n setConnectionStatus('connecting');\n }\n\n // Listen for messages from whatever SW controls this page\n navigator.serviceWorker.addEventListener('message', onMessage);\n\n // Re-subscribe when SW controller changes (e.g., after SW update via skipWaiting)\n function handleControllerChange() {\n if (cancelled) return;\n const newController = navigator.serviceWorker.controller;\n if (newController) {\n swRef.current = newController;\n newController.postMessage({ type: 'subscribe', runId });\n setConnectionStatus('connecting');\n }\n }\n navigator.serviceWorker.addEventListener('controllerchange', handleControllerChange);\n\n navigator.serviceWorker\n .register(SW_PATH, { scope: '/' })\n .then((registration) => {\n if (cancelled) return;\n\n // Use the active worker, or wait for it to activate\n const sw = registration.active ?? registration.installing ?? registration.waiting;\n if (!sw) {\n // No worker at all — fall back to direct EventSource\n fallbackCleanupRef.current = connectDirectEventSource(\n runId,\n setEvents,\n setLastEvent,\n setConnectionStatus\n );\n return;\n }\n\n if (sw.state === 'activated') {\n subscribeToWorker(sw);\n } else {\n const onStateChange = () => {\n if (sw.state === 'activated') {\n sw.removeEventListener('statechange', onStateChange);\n subscribeToWorker(sw);\n }\n };\n sw.addEventListener('statechange', onStateChange);\n }\n })\n .catch(() => {\n // SW registration failed — fall back to direct EventSource\n if (!cancelled) {\n fallbackCleanupRef.current = connectDirectEventSource(\n runId,\n setEvents,\n setLastEvent,\n setConnectionStatus\n );\n }\n });\n\n return () => {\n cancelled = true;\n navigator.serviceWorker.removeEventListener('message', onMessage);\n navigator.serviceWorker.removeEventListener('controllerchange', handleControllerChange);\n swRef.current?.postMessage({ type: 'unsubscribe' });\n swRef.current = null;\n fallbackCleanupRef.current?.();\n };\n }, [runId, onMessage]);\n\n return { events, lastEvent, connectionStatus };\n}\n\n// --- EventSource fallback (identical to the previous implementation) ---\n\nconst BASE_BACKOFF_MS = 1000;\nconst MAX_BACKOFF_MS = 30_000;\nconst STABLE_CONNECTION_MS = 5_000;\n\nfunction connectDirectEventSource(\n runId: string | undefined,\n setEvents: React.Dispatch<React.SetStateAction<NotificationEvent[]>>,\n setLastEvent: React.Dispatch<React.SetStateAction<NotificationEvent | null>>,\n setConnectionStatus: React.Dispatch<React.SetStateAction<ConnectionStatus>>\n): () => void {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n if (typeof EventSource === 'undefined') return () => {};\n\n let es: EventSource | null = null;\n let stopped = false;\n let backoff = BASE_BACKOFF_MS;\n let reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n let stableTimer: ReturnType<typeof setTimeout> | null = null;\n\n function connect() {\n if (stopped) return;\n\n const url = runId\n ? `/api/agent-events?runId=${encodeURIComponent(runId)}`\n : '/api/agent-events';\n\n es = new EventSource(url);\n setConnectionStatus('connecting');\n\n es.onopen = () => {\n setConnectionStatus('connected');\n stableTimer = setTimeout(() => {\n stableTimer = null;\n backoff = BASE_BACKOFF_MS;\n }, STABLE_CONNECTION_MS);\n };\n\n es.onerror = () => {\n es?.close();\n es = null;\n setConnectionStatus('disconnected');\n\n if (stableTimer !== null) {\n clearTimeout(stableTimer);\n stableTimer = null;\n }\n\n const delay = backoff;\n backoff = Math.min(delay * 2, MAX_BACKOFF_MS);\n\n reconnectTimer = setTimeout(() => {\n reconnectTimer = null;\n connect();\n }, delay);\n };\n\n es.addEventListener('notification', ((event: MessageEvent) => {\n const parsed: NotificationEvent = JSON.parse(event.data);\n setEvents((prev) => {\n const next = [...prev, parsed];\n return next.length > MAX_EVENTS ? next.slice(-PRUNE_KEEP) : next;\n });\n setLastEvent(parsed);\n }) as EventListener);\n }\n\n connect();\n\n return () => {\n stopped = true;\n if (reconnectTimer !== null) {\n clearTimeout(reconnectTimer);\n reconnectTimer = null;\n }\n if (stableTimer !== null) {\n clearTimeout(stableTimer);\n stableTimer = null;\n }\n if (es) {\n es.close();\n es = null;\n }\n };\n}\n","import type { FlightRouterState, Segment } from './app-router-types'\n\nexport function getSegmentValue(segment: Segment) {\n return Array.isArray(segment) ? segment[1] : segment\n}\n\nexport function isGroupSegment(segment: string) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')')\n}\n\nexport function isParallelRouteSegment(segment: string) {\n return segment.startsWith('@') && segment !== '@children'\n}\n\nexport function addSearchParamsIfPageSegment(\n segment: Segment,\n searchParams: Record<string, string | string[] | undefined>\n) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY)\n\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams)\n return stringifiedQuery !== '{}'\n ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery\n : PAGE_SEGMENT_KEY\n }\n\n return segment\n}\n\nexport function computeSelectedLayoutSegment(\n segments: string[] | null,\n parallelRouteKey: string\n): string | null {\n if (!segments || segments.length === 0) {\n return null\n }\n\n // For 'children', use first segment; for other parallel routes, use last segment\n const rawSegment =\n parallelRouteKey === 'children'\n ? segments[0]\n : segments[segments.length - 1]\n\n // If the default slot is showing, return null since it's not technically \"selected\" (it's a fallback)\n // Returning an internal value like `__DEFAULT__` would be confusing\n return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment\n}\n\n/** Get the canonical parameters from the current level to the leaf node. */\nexport function getSelectedLayoutSegmentPath(\n tree: FlightRouterState,\n parallelRouteKey: string,\n first = true,\n segmentPath: string[] = []\n): string[] {\n let node: FlightRouterState\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey]\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1]\n node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]\n }\n\n if (!node) return segmentPath\n const segment = node[0]\n\n let segmentValue = getSegmentValue(segment)\n\n if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) {\n return segmentPath\n }\n\n segmentPath.push(segmentValue)\n\n return getSelectedLayoutSegmentPath(\n node,\n parallelRouteKey,\n false,\n segmentPath\n )\n}\n\nexport const PAGE_SEGMENT_KEY = '__PAGE__'\nexport const DEFAULT_SEGMENT_KEY = '__DEFAULT__'\nexport const NOT_FOUND_SEGMENT_KEY = '/_not-found'\n","import * as React from 'react';\n\ntype Direction = 'ltr' | 'rtl';\nconst DirectionContext = React.createContext<Direction | undefined>(undefined);\n\n/* -------------------------------------------------------------------------------------------------\n * Direction\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DirectionProviderProps {\n children?: React.ReactNode;\n dir: Direction;\n}\nconst DirectionProvider: React.FC<DirectionProviderProps> = (props) => {\n const { dir, children } = props;\n return <DirectionContext.Provider value={dir}>{children}</DirectionContext.Provider>;\n};\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction useDirection(localDir?: Direction) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || 'ltr';\n}\n\nconst Provider = DirectionProvider;\n\nexport {\n useDirection,\n //\n Provider,\n //\n DirectionProvider,\n};\n","import { useCallback, useRef, type Ref } from 'react'\n\n// This is a compatibility hook to support React 18 and 19 refs.\n// In 19, a cleanup function from refs may be returned.\n// In 18, returning a cleanup function creates a warning.\n// Since we take userspace refs, we don't know ahead of time if a cleanup function will be returned.\n// This implements cleanup functions with the old behavior in 18.\n// We know refs are always called alternating with `null` and then `T`.\n// So a call with `null` means we need to call the previous cleanup functions.\nexport function useMergedRef<TElement>(\n refA: Ref<TElement>,\n refB: Ref<TElement>\n): Ref<TElement> {\n const cleanupA = useRef<(() => void) | null>(null)\n const cleanupB = useRef<(() => void) | null>(null)\n\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (previously via `<Link legacyBehavior>`),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return useCallback(\n (current: TElement | null): void => {\n if (current === null) {\n const cleanupFnA = cleanupA.current\n if (cleanupFnA) {\n cleanupA.current = null\n cleanupFnA()\n }\n const cleanupFnB = cleanupB.current\n if (cleanupFnB) {\n cleanupB.current = null\n cleanupFnB()\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current)\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current)\n }\n }\n },\n [refA, refB]\n )\n}\n\nfunction applyRef<TElement>(\n refA: NonNullable<Ref<TElement>>,\n current: TElement\n) {\n if (typeof refA === 'function') {\n const cleanup = refA(current)\n if (typeof cleanup === 'function') {\n return cleanup\n } else {\n return () => refA(null)\n }\n } else {\n refA.current = current\n return () => {\n refA.current = null\n }\n }\n}\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set<string>()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","// This could also be a variable instead of a function, but some unit tests want to change the ID at\n// runtime. Even though that would never happen in a real deployment.\nexport function getDeploymentId(): string | undefined {\n return process.env.NEXT_DEPLOYMENT_ID\n}\n\nexport function getDeploymentIdQueryOrEmptyString(): string {\n let deploymentId = getDeploymentId()\n if (deploymentId) {\n return `?dpl=${deploymentId}`\n }\n return ''\n}\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 6v6l4 2', key: 'mmk7yg' }],\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n];\n\n/**\n * @component @name Clock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/clock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Clock = createLucideIcon('clock', __iconNode);\n\nexport default Clock;\n","'use client';\n\nimport * as React from 'react';\nimport { AlertDialog as AlertDialogPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\n\nfunction AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction AlertDialogTrigger({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />;\n}\n\nfunction AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />;\n}\n\nfunction AlertDialogOverlay({\n className,\n onClick,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn('fixed inset-0 z-50 bg-black/50', className)}\n onClick={(e) => {\n // Prevent overlay clicks from propagating to document-level handlers\n // (e.g. BaseDrawer outside-click) — only the dialog should dismiss.\n e.stopPropagation();\n onClick?.(e);\n }}\n {...props}\n />\n );\n}\n\nfunction AlertDialogContent({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Content> & {\n size?: 'default' | 'sm';\n}) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n 'bg-background group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg',\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n );\n}\n\nfunction AlertDialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n 'grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n 'flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n 'text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogMedia({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"bg-muted mb-2 inline-flex size-16 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogAction({\n className,\n variant = 'default',\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Action> &\n Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {\n return (\n <Button variant={variant} size={size} asChild>\n <AlertDialogPrimitive.Action\n data-slot=\"alert-dialog-action\"\n className={cn(className)}\n {...props}\n />\n </Button>\n );\n}\n\nfunction AlertDialogCancel({\n className,\n variant = 'outline',\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Cancel> &\n Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {\n return (\n <Button variant={variant} size={size} asChild>\n <AlertDialogPrimitive.Cancel\n data-slot=\"alert-dialog-cancel\"\n className={cn(className)}\n {...props}\n />\n </Button>\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n};\n","\"use client\";\n\n// src/alert-dialog.tsx\nimport * as React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { createDialogScope } from \"@radix-ui/react-dialog\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar ROOT_NAME = \"AlertDialog\";\nvar [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope\n]);\nvar useDialogScope = createDialogScope();\nvar AlertDialog = (props) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });\n};\nAlertDialog.displayName = ROOT_NAME;\nvar TRIGGER_NAME = \"AlertDialogTrigger\";\nvar AlertDialogTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });\n }\n);\nAlertDialogTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"AlertDialogPortal\";\nvar AlertDialogPortal = (props) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });\n};\nAlertDialogPortal.displayName = PORTAL_NAME;\nvar OVERLAY_NAME = \"AlertDialogOverlay\";\nvar AlertDialogOverlay = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Overlay, { ...dialogScope, ...overlayProps, ref: forwardedRef });\n }\n);\nAlertDialogOverlay.displayName = OVERLAY_NAME;\nvar CONTENT_NAME = \"AlertDialogContent\";\nvar [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME);\nvar Slottable = createSlottable(\"AlertDialogContent\");\nvar AlertDialogContent = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef(null);\n return /* @__PURE__ */ jsx(\n DialogPrimitive.WarningProvider,\n {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: \"alert-dialog\",\n children: /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsxs(\n DialogPrimitive.Content,\n {\n role: \"alertdialog\",\n ...dialogScope,\n ...contentProps,\n ref: composedRefs,\n onOpenAutoFocus: composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n }),\n onPointerDownOutside: (event) => event.preventDefault(),\n onInteractOutside: (event) => event.preventDefault(),\n children: [\n /* @__PURE__ */ jsx(Slottable, { children }),\n /* @__PURE__ */ jsx(DescriptionWarning, { contentRef })\n ]\n }\n ) })\n }\n );\n }\n);\nAlertDialogContent.displayName = CONTENT_NAME;\nvar TITLE_NAME = \"AlertDialogTitle\";\nvar AlertDialogTitle = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Title, { ...dialogScope, ...titleProps, ref: forwardedRef });\n }\n);\nAlertDialogTitle.displayName = TITLE_NAME;\nvar DESCRIPTION_NAME = \"AlertDialogDescription\";\nvar AlertDialogDescription = React.forwardRef((props, forwardedRef) => {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Description, { ...dialogScope, ...descriptionProps, ref: forwardedRef });\n});\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\nvar ACTION_NAME = \"AlertDialogAction\";\nvar AlertDialogAction = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...actionProps, ref: forwardedRef });\n }\n);\nAlertDialogAction.displayName = ACTION_NAME;\nvar CANCEL_NAME = \"AlertDialogCancel\";\nvar AlertDialogCancel = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return /* @__PURE__ */ jsx(DialogPrimitive.Close, { ...dialogScope, ...cancelProps, ref });\n }\n);\nAlertDialogCancel.displayName = CANCEL_NAME;\nvar DescriptionWarning = ({ contentRef }) => {\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n React.useEffect(() => {\n const hasDescription = document.getElementById(\n contentRef.current?.getAttribute(\"aria-describedby\")\n );\n if (!hasDescription) console.warn(MESSAGE);\n }, [MESSAGE, contentRef]);\n return null;\n};\nvar Root2 = AlertDialog;\nvar Trigger2 = AlertDialogTrigger;\nvar Portal2 = AlertDialogPortal;\nvar Overlay2 = AlertDialogOverlay;\nvar Content2 = AlertDialogContent;\nvar Action = AlertDialogAction;\nvar Cancel = AlertDialogCancel;\nvar Title2 = AlertDialogTitle;\nvar Description2 = AlertDialogDescription;\nexport {\n Action,\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n Cancel,\n Content2 as Content,\n Description2 as Description,\n Overlay2 as Overlay,\n Portal2 as Portal,\n Root2 as Root,\n Title2 as Title,\n Trigger2 as Trigger,\n createAlertDialogScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport {\n createContext,\n useContext,\n useState,\n useCallback,\n useEffect,\n useRef,\n type ReactNode,\n} from 'react';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from '@/components/ui/alert-dialog';\n\n/* ---------------------------------------------------------------------------\n * Context\n * ------------------------------------------------------------------------- */\n\ninterface DrawerCloseGuardContextValue {\n /** Register a drawer's dirty state and reset callback. Pass `null` to unregister. */\n setGuard: (guard: { isDirty: boolean; onReset: () => void } | null) => void;\n /** Navigate only if no dirty drawer is registered; otherwise show confirmation. */\n guardedNavigate: (navigate: () => void) => void;\n /** Returns true when any drawer has unsaved changes. Safe to call from effects/intervals. */\n getIsDirty: () => boolean;\n}\n\nconst DrawerCloseGuardContext = createContext<DrawerCloseGuardContextValue | null>(null);\n\n/* ---------------------------------------------------------------------------\n * Provider — renders the shared confirmation dialog\n * ------------------------------------------------------------------------- */\n\nexport function DrawerCloseGuardProvider({ children }: { children: ReactNode }) {\n // Use a ref so guard updates (on every keystroke) don't re-render the provider tree.\n const guardRef = useRef<{ isDirty: boolean; onReset: () => void } | null>(null);\n const pendingNavigateRef = useRef<(() => void) | null>(null);\n const [showConfirmation, setShowConfirmation] = useState(false);\n\n const setGuard = useCallback((guard: { isDirty: boolean; onReset: () => void } | null) => {\n guardRef.current = guard;\n }, []);\n\n const guardedNavigate = useCallback((navigate: () => void) => {\n if (guardRef.current?.isDirty) {\n pendingNavigateRef.current = navigate;\n setShowConfirmation(true);\n return;\n }\n navigate();\n }, []);\n\n const confirmDiscard = useCallback(() => {\n setShowConfirmation(false);\n guardRef.current?.onReset();\n guardRef.current = null;\n pendingNavigateRef.current?.();\n pendingNavigateRef.current = null;\n }, []);\n\n const cancelDiscard = useCallback(() => {\n setShowConfirmation(false);\n pendingNavigateRef.current = null;\n }, []);\n\n const getIsDirty = useCallback(() => guardRef.current?.isDirty ?? false, []);\n\n return (\n <DrawerCloseGuardContext value={{ setGuard, guardedNavigate, getIsDirty }}>\n {children}\n\n <AlertDialog open={showConfirmation}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>Discard unsaved changes?</AlertDialogTitle>\n <AlertDialogDescription>\n You have unsaved changes. Are you sure you want to discard them?\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogAction variant=\"destructive\" onClick={confirmDiscard}>\n Discard\n </AlertDialogAction>\n <AlertDialogCancel onClick={cancelDiscard}>Keep editing</AlertDialogCancel>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n </DrawerCloseGuardContext>\n );\n}\n\n/* ---------------------------------------------------------------------------\n * Hook — access the guard from any child component\n * ------------------------------------------------------------------------- */\n\nexport function useDrawerCloseGuard() {\n const ctx = useContext(DrawerCloseGuardContext);\n if (!ctx) throw new Error('useDrawerCloseGuard must be used within DrawerCloseGuardProvider');\n return ctx;\n}\n\n/* ---------------------------------------------------------------------------\n * Convenience hook for drawer components\n *\n * Registers dirty state + reset callback with the guard, and returns an\n * `attemptClose` function that goes through the guard before closing.\n * ------------------------------------------------------------------------- */\n\nexport function useGuardedDrawerClose({\n open,\n isDirty,\n onClose,\n onReset,\n}: {\n open: boolean;\n isDirty: boolean;\n onClose: () => void;\n onReset: () => void;\n}) {\n const { setGuard, guardedNavigate } = useDrawerCloseGuard();\n\n // Keep the guard in sync with dirty state. Because setGuard writes to a ref,\n // this doesn't trigger re-renders in the provider.\n useEffect(() => {\n if (open) {\n setGuard({ isDirty, onReset });\n } else {\n setGuard(null);\n }\n return () => setGuard(null);\n }, [open, isDirty, onReset, setGuard]);\n\n const attemptClose = useCallback(() => {\n guardedNavigate(() => {\n onReset();\n onClose();\n });\n }, [guardedNavigate, onClose, onReset]);\n\n return { attemptClose };\n}\n"],"names":["DEFAULT_SEGMENT_KEY","NOT_FOUND_SEGMENT_KEY","PAGE_SEGMENT_KEY","addSearchParamsIfPageSegment","computeSelectedLayoutSegment","getSegmentValue","getSelectedLayoutSegmentPath","isGroupSegment","isParallelRouteSegment","segment","Array","isArray","endsWith","startsWith","searchParams","isPageSegment","includes","stringifiedQuery","JSON","stringify","segments","parallelRouteKey","length","rawSegment","tree","first","segmentPath","node","parallelRoutes","children","Object","values","segmentValue","push","useMergedRef","refA","refB","cleanupA","useRef","cleanupB","useCallback","current","cleanupFnA","cleanupFnB","applyRef","cleanup","warnOnce","_","process","env","NODE_ENV","warnings","Set","msg","has","console","warn","add","getDeploymentId","getDeploymentIdQueryOrEmptyString","NEXT_DEPLOYMENT_ID","deploymentId"],"mappings":"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","ignoreList":[0,1,4,7,9,10,11,12,14]}
|
|
@@ -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"}]]),s=(0,e.default)("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);var t=a.i(52313),u=a.i(85536),v=a.i(584),w=a.i(90920),x=a.i(18948),y=a.i(96867),z=a.i(82934),A=a.i(55690),B=a.i(48972),C=a.i(59653),D=a.i(63496),E=a.i(6175),F=a.i(7420),G=a.i(48939),H=a.i(58761),I=a.i(51473),J=a.i(59675),K=a.i(5472),L=a.i(75988),M=a.i(80930),N=a.i(66873),O=a.i(90986),P=a.i(79406),Q=a.i(17329),R=a.i(61476),S=a.i(64005),T=a.i(50049),U=a.i(16164),V=a.i(45291),W=[" ","Enter","ArrowUp","ArrowDown"],X=[" ","Enter"],Y="Select",[Z,$,_]=(0,D.createCollection)(Y),[aa,ab]=(0,F.createContextScope)(Y,[_,L.createPopperScope]),ac=(0,L.createPopperScope)(),[ad,ae]=aa(Y),[af,ag]=aa(Y),ah=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=ac(d),[s,t]=c.useState(null),[u,v]=c.useState(null),[w,x]=c.useState(!1),y=(0,G.useDirection)(l),[z,A]=(0,Q.useControllableState)({prop:f,defaultProp:g??!1,onChange:h,caller:Y}),[B,C]=(0,Q.useControllableState)({prop:i,defaultProp:j,onChange:k,caller:Y}),D=c.useRef(null),E=!s||q||!!s.closest("form"),[F,H]=c.useState(new Set),I=Array.from(F).map(a=>a.props.value).join(";");return(0,b.jsx)(L.Root,{...r,children:(0,b.jsxs)(ad,{required:p,scope:d,trigger:s,onTriggerChange:t,valueNode:u,onValueNodeChange:v,valueNodeHasChildren:w,onValueNodeHasChildrenChange:x,contentId:(0,K.useId)(),value:B,onValueChange:C,open:z,onOpenChange:A,dir:y,triggerPointerDownPosRef:D,disabled:o,children:[(0,b.jsx)(Z.Provider,{scope:d,children:(0,b.jsx)(af,{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)(aW,{"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(F)]},I):null]})})};ah.displayName=Y;var ai="SelectTrigger",aj=c.forwardRef((a,d)=>{let{__scopeSelect:e,disabled:f=!1,...g}=a,h=ac(e),i=ae(ai,e),j=i.disabled||f,k=(0,E.useComposedRefs)(d,i.onTriggerChange),l=$(e),m=c.useRef("touch"),[n,o,p]=aY(a=>{let b=l().filter(a=>!a.disabled),c=b.find(a=>a.value===i.value),d=aZ(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)(L.Anchor,{asChild:!0,...h,children:(0,b.jsx)(N.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":aX(i.value)?"":void 0,...g,ref:k,onClick:(0,C.composeEventHandlers)(g.onClick,a=>{a.currentTarget.focus(),"mouse"!==m.current&&q(a)}),onPointerDown:(0,C.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,C.composeEventHandlers)(g.onKeyDown,a=>{let b=""!==n.current;a.ctrlKey||a.altKey||a.metaKey||1!==a.key.length||o(a.key),(!b||" "!==a.key)&&W.includes(a.key)&&(q(),a.preventDefault())})})})});aj.displayName=ai;var ak="SelectValue",al=c.forwardRef((a,c)=>{let{__scopeSelect:d,className:e,style:f,children:g,placeholder:h="",...i}=a,j=ae(ak,d),{onValueNodeHasChildrenChange:k}=j,l=void 0!==g,m=(0,E.useComposedRefs)(c,j.onValueNodeChange);return(0,R.useLayoutEffect)(()=>{k(l)},[k,l]),(0,b.jsx)(N.Primitive.span,{...i,ref:m,style:{pointerEvents:"none"},children:aX(j.value)?(0,b.jsx)(b.Fragment,{children:h}):g})});al.displayName=ak;var am=c.forwardRef((a,c)=>{let{__scopeSelect:d,children:e,...f}=a;return(0,b.jsx)(N.Primitive.span,{"aria-hidden":!0,...f,ref:c,children:e||"▼"})});am.displayName="SelectIcon";var an=a=>(0,b.jsx)(M.Portal,{asChild:!0,...a});an.displayName="SelectPortal";var ao="SelectContent",ap=c.forwardRef((a,d)=>{let e=ae(ao,a.__scopeSelect),[f,g]=c.useState();return((0,R.useLayoutEffect)(()=>{g(new DocumentFragment)},[]),e.open)?(0,b.jsx)(at,{...a,ref:d}):f?A.createPortal((0,b.jsx)(aq,{scope:a.__scopeSelect,children:(0,b.jsx)(Z.Slot,{scope:a.__scopeSelect,children:(0,b.jsx)("div",{children:a.children})})}),f):null});ap.displayName=ao;var[aq,ar]=aa(ao),as=(0,O.createSlot)("SelectContent.RemoveScroll"),at=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=ae(ao,e),[v,w]=c.useState(null),[x,y]=c.useState(null),z=(0,E.useComposedRefs)(d,a=>w(a)),[A,B]=c.useState(null),[D,F]=c.useState(null),G=$(e),[K,L]=c.useState(!1),M=c.useRef(!1);c.useEffect(()=>{if(v)return(0,U.hideOthers)(v)},[v]),(0,I.useFocusGuards)();let N=c.useCallback(a=>{let[b,...c]=G().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},[G,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]=aY(a=>{let b=G().filter(a=>!a.disabled),c=b.find(a=>a.ref.current===document.activeElement),d=aZ(b,a,c);d&&setTimeout(()=>d.ref.current.focus())}),T=c.useCallback((a,b,c)=>{let d=!M.current&&!c;(void 0!==u.value&&u.value===b||d)&&(B(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?av:au,Z=Y===av?{side:j,sideOffset:k,align:l,alignOffset:m,arrowPadding:n,collisionBoundary:o,collisionPadding:p,sticky:q,hideWhenDetached:r,avoidCollisions:s}:{};return(0,b.jsx)(aq,{scope:e,content:v,viewport:x,onViewportChange:y,itemRefCallback:T,selectedItem:A,onItemLeave:W,itemTextRefCallback:X,focusSelectedItem:O,selectedItemText:D,position:f,isPositioned:K,searchRef:R,children:(0,b.jsx)(V.RemoveScroll,{as:as,allowPinchZoom:!0,children:(0,b.jsx)(J.FocusScope,{asChild:!0,trapped:u.open,onMountAutoFocus:a=>{a.preventDefault()},onUnmountAutoFocus:(0,C.composeEventHandlers)(g,a=>{u.trigger?.focus({preventScroll:!0}),a.preventDefault()}),children:(0,b.jsx)(H.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,...Z,onPlaced:()=>L(!0),ref:z,style:{display:"flex",flexDirection:"column",outline:"none",...t.style},onKeyDown:(0,C.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=G().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()}})})})})})})});at.displayName="SelectContentImpl";var au=c.forwardRef((a,d)=>{let{__scopeSelect:e,onPlaced:f,...g}=a,h=ae(ao,e),i=ar(ao,e),[j,k]=c.useState(null),[l,m]=c.useState(null),n=(0,E.useComposedRefs)(d,a=>m(a)),o=$(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,B.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,B.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,A=s.offsetHeight/2,C=m+n+(s.offsetTop+A);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,A+(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)+A);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,R.useLayoutEffect)(()=>v(),[v]);let[w,x]=c.useState();(0,R.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)(aw,{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)(N.Primitive.div,{...g,ref:n,style:{boxSizing:"border-box",maxHeight:"100%",...g.style}})})})});au.displayName="SelectItemAlignedPosition";var av=c.forwardRef((a,c)=>{let{__scopeSelect:d,align:e="start",collisionPadding:f=10,...g}=a,h=ac(d);return(0,b.jsx)(L.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)"}})});av.displayName="SelectPopperPosition";var[aw,ax]=aa(ao,{}),ay="SelectViewport",az=c.forwardRef((a,d)=>{let{__scopeSelect:e,nonce:f,...g}=a,h=ar(ay,e),i=ax(ay,e),j=(0,E.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)(Z.Slot,{scope:e,children:(0,b.jsx)(N.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...g,ref:j,style:{position:"relative",flex:1,overflow:"hidden auto",...g.style},onScroll:(0,C.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})})})]})});az.displayName=ay;var aA="SelectGroup",[aB,aC]=aa(aA),aD=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a,f=(0,K.useId)();return(0,b.jsx)(aB,{scope:d,id:f,children:(0,b.jsx)(N.Primitive.div,{role:"group","aria-labelledby":f,...e,ref:c})})});aD.displayName=aA;var aE="SelectLabel",aF=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a,f=aC(aE,d);return(0,b.jsx)(N.Primitive.div,{id:f.id,...e,ref:c})});aF.displayName=aE;var aG="SelectItem",[aH,aI]=aa(aG),aJ=c.forwardRef((a,d)=>{let{__scopeSelect:e,value:f,disabled:g=!1,textValue:h,...i}=a,j=ae(aG,e),k=ar(aG,e),l=j.value===f,[m,n]=c.useState(h??""),[o,p]=c.useState(!1),q=(0,E.useComposedRefs)(d,a=>k.itemRefCallback?.(a,f,g)),r=(0,K.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)(aH,{scope:e,value:f,disabled:g,textId:r,isSelected:l,onItemTextChange:c.useCallback(a=>{n(b=>b||(a?.textContent??"").trim())},[]),children:(0,b.jsx)(Z.ItemSlot,{scope:e,value:f,disabled:g,textValue:m,children:(0,b.jsx)(N.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,C.composeEventHandlers)(i.onFocus,()=>p(!0)),onBlur:(0,C.composeEventHandlers)(i.onBlur,()=>p(!1)),onClick:(0,C.composeEventHandlers)(i.onClick,()=>{"mouse"!==s.current&&t()}),onPointerUp:(0,C.composeEventHandlers)(i.onPointerUp,()=>{"mouse"===s.current&&t()}),onPointerDown:(0,C.composeEventHandlers)(i.onPointerDown,a=>{s.current=a.pointerType}),onPointerMove:(0,C.composeEventHandlers)(i.onPointerMove,a=>{s.current=a.pointerType,g?k.onItemLeave?.():"mouse"===s.current&&a.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,C.composeEventHandlers)(i.onPointerLeave,a=>{a.currentTarget===document.activeElement&&k.onItemLeave?.()}),onKeyDown:(0,C.composeEventHandlers)(i.onKeyDown,a=>{(k.searchRef?.current===""||" "!==a.key)&&(X.includes(a.key)&&t()," "===a.key&&a.preventDefault())})})})})});aJ.displayName=aG;var aK="SelectItemText",aL=c.forwardRef((a,d)=>{let{__scopeSelect:e,className:f,style:g,...h}=a,i=ae(aK,e),j=ar(aK,e),k=aI(aK,e),l=ag(aK,e),[m,n]=c.useState(null),o=(0,E.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,R.useLayoutEffect)(()=>(r(q),()=>s(q)),[r,s,q]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(N.Primitive.span,{id:k.textId,...h,ref:o}),k.isSelected&&i.valueNode&&!i.valueNodeHasChildren?A.createPortal(h.children,i.valueNode):null]})});aL.displayName=aK;var aM="SelectItemIndicator",aN=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a;return aI(aM,d).isSelected?(0,b.jsx)(N.Primitive.span,{"aria-hidden":!0,...e,ref:c}):null});aN.displayName=aM;var aO="SelectScrollUpButton",aP=c.forwardRef((a,d)=>{let e=ar(aO,a.__scopeSelect),f=ax(aO,a.__scopeSelect),[g,h]=c.useState(!1),i=(0,E.useComposedRefs)(d,f.onScrollButtonChange);return(0,R.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)(aS,{...a,ref:i,onAutoScroll:()=>{let{viewport:a,selectedItem:b}=e;a&&b&&(a.scrollTop=a.scrollTop-b.offsetHeight)}}):null});aP.displayName=aO;var aQ="SelectScrollDownButton",aR=c.forwardRef((a,d)=>{let e=ar(aQ,a.__scopeSelect),f=ax(aQ,a.__scopeSelect),[g,h]=c.useState(!1),i=(0,E.useComposedRefs)(d,f.onScrollButtonChange);return(0,R.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)(aS,{...a,ref:i,onAutoScroll:()=>{let{viewport:a,selectedItem:b}=e;a&&b&&(a.scrollTop=a.scrollTop+b.offsetHeight)}}):null});aR.displayName=aQ;var aS=c.forwardRef((a,d)=>{let{__scopeSelect:e,onAutoScroll:f,...g}=a,h=ar("SelectScrollButton",e),i=c.useRef(null),j=$(e),k=c.useCallback(()=>{null!==i.current&&(window.clearInterval(i.current),i.current=null)},[]);return c.useEffect(()=>()=>k(),[k]),(0,R.useLayoutEffect)(()=>{let a=j().find(a=>a.ref.current===document.activeElement);a?.ref.current?.scrollIntoView({block:"nearest"})},[j]),(0,b.jsx)(N.Primitive.div,{"aria-hidden":!0,...g,ref:d,style:{flexShrink:0,...g.style},onPointerDown:(0,C.composeEventHandlers)(g.onPointerDown,()=>{null===i.current&&(i.current=window.setInterval(f,50))}),onPointerMove:(0,C.composeEventHandlers)(g.onPointerMove,()=>{h.onItemLeave?.(),null===i.current&&(i.current=window.setInterval(f,50))}),onPointerLeave:(0,C.composeEventHandlers)(g.onPointerLeave,()=>{k()})})}),aT=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a;return(0,b.jsx)(N.Primitive.div,{"aria-hidden":!0,...e,ref:c})});aT.displayName="SelectSeparator";var aU="SelectArrow",aV=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a,f=ac(d),g=ae(aU,d),h=ar(aU,d);return g.open&&"popper"===h.position?(0,b.jsx)(L.Arrow,{...f,...e,ref:c}):null});aV.displayName=aU;var aW=c.forwardRef(({__scopeSelect:a,value:d,...e},f)=>{let g=c.useRef(null),h=(0,E.useComposedRefs)(f,g),i=(0,S.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)(N.Primitive.select,{...e,style:{...T.VISUALLY_HIDDEN_STYLES,...e.style},ref:h,defaultValue:d})});function aX(a){return""===a||void 0===a}function aY(a){let b=(0,P.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 aZ(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}aW.displayName="SelectBubbleInput",a.s(["Arrow",()=>aV,"Content",()=>ap,"Group",()=>aD,"Icon",()=>am,"Item",()=>aJ,"ItemIndicator",()=>aN,"ItemText",()=>aL,"Label",()=>aF,"Portal",()=>an,"Root",()=>ah,"ScrollDownButton",()=>aR,"ScrollUpButton",()=>aP,"Select",()=>ah,"SelectArrow",()=>aV,"SelectContent",()=>ap,"SelectGroup",()=>aD,"SelectIcon",()=>am,"SelectItem",()=>aJ,"SelectItemIndicator",()=>aN,"SelectItemText",()=>aL,"SelectLabel",()=>aF,"SelectPortal",()=>an,"SelectScrollDownButton",()=>aR,"SelectScrollUpButton",()=>aP,"SelectSeparator",()=>aT,"SelectTrigger",()=>aj,"SelectValue",()=>al,"SelectViewport",()=>az,"Separator",()=>aT,"Trigger",()=>aj,"Value",()=>al,"Viewport",()=>az,"createSelectScope",()=>ab],16252);var a$=a.i(16252),a$=a$,a_=a.i(71716);let a0=(0,e.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),a1=a$.Root;a$.Group;let a2=a$.Value,a3=c.forwardRef(({className:a,children:c,...d},e)=>(0,b.jsxs)(a$.Trigger,{ref:e,className:(0,u.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)(a$.Icon,{asChild:!0,children:(0,b.jsx)(a_.ChevronDown,{className:"h-4 w-4 opacity-50"})})]}));a3.displayName=a$.Trigger.displayName;let a4=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(a$.ScrollUpButton,{ref:d,className:(0,u.cn)("flex cursor-default items-center justify-center py-1",a),...c,children:(0,b.jsx)(a0,{className:"h-4 w-4"})}));a4.displayName=a$.ScrollUpButton.displayName;let a5=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(a$.ScrollDownButton,{ref:d,className:(0,u.cn)("flex cursor-default items-center justify-center py-1",a),...c,children:(0,b.jsx)(a_.ChevronDown,{className:"h-4 w-4"})}));a5.displayName=a$.ScrollDownButton.displayName;let a6=c.forwardRef(({className:a,children:c,position:d="popper",...e},f)=>(0,b.jsx)(a$.Portal,{children:(0,b.jsxs)(a$.Content,{ref:f,className:(0,u.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)(a4,{}),(0,b.jsx)(a$.Viewport,{className:(0,u.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)(a5,{})]})}));a6.displayName=a$.Content.displayName,c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(a$.Label,{ref:d,className:(0,u.cn)("px-2 py-1.5 text-sm font-semibold",a),...c})).displayName=a$.Label.displayName;let a7=c.forwardRef(({className:a,children:c,...d},e)=>(0,b.jsxs)(a$.Item,{ref:e,className:(0,u.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)(a$.ItemIndicator,{children:(0,b.jsx)(g.Check,{className:"h-4 w-4"})})}),(0,b.jsx)(a$.ItemText,{children:c})]}));a7.displayName=a$.Item.displayName,c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(a$.Separator,{ref:d,className:(0,u.cn)("bg-muted -mx-1 my-1 h-px",a),...c})).displayName=a$.Separator.displayName;var a8=a.i(25674);let a9=(0,a8.createServerReference)("40931e04ed38332cd1d5a727e3ff3b822d83f7736c",a8.callServer,void 0,a8.findSourceMapURL,"updateSettingsAction");var ba=a.i(46847),bb=a.i(61640),bc=a.i(44447),bd=a.i(87926);function be(a){return(0,b.jsx)(bc.Code,{className:(0,u.cn)("h-4 w-4",a.className),...a})}function bf({className:a}){return(0,b.jsx)(bb.default,{src:"/icons/editors/vscode.svg",alt:"VS Code",width:24,height:24,className:(0,u.cn)("rounded-sm object-contain",a)})}function bg({className:a}){return(0,b.jsx)(bb.default,{src:"/icons/agents/cursor.jpeg",alt:"Cursor",width:24,height:24,className:(0,u.cn)("rounded-sm object-contain",a)})}function bh({className:a}){return(0,b.jsx)(bb.default,{src:"/icons/editors/windsurf.svg",alt:"Windsurf",width:24,height:24,className:(0,u.cn)("rounded-sm object-contain",a)})}function bi({className:a}){return(0,b.jsx)(bb.default,{src:"/icons/editors/zed.svg",alt:"Zed",width:24,height:24,className:(0,u.cn)("rounded-sm object-contain",a)})}function bj({className:a,...c}){return(0,b.jsx)(bd.Rocket,{className:(0,u.cn)("h-4 w-4",a),...c})}bf.displayName="VsCodeIcon",bg.displayName="CursorEditorIcon",bh.displayName="WindsurfIcon",bi.displayName="ZedIcon",bj.displayName="AntigravityIcon";let bk={vscode:bf,cursor:bg,windsurf:bh,zed:bi,antigravity:bj};var bl=a.i(61781),bm=a.i(74432),bn=["PageUp","PageDown"],bo=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],bp={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},bq="Slider",[br,bs,bt]=(0,D.createCollection)(bq),[bu,bv]=(0,F.createContextScope)(bq,[bt]),[bw,bx]=bu(bq),by=c.forwardRef((a,d)=>{let{name:e,min:f=0,max:g=100,step:h=1,orientation:i="horizontal",disabled:j=!1,minStepsBetweenThumbs:k=0,defaultValue:l=[f],value:m,onValueChange:n=()=>{},onValueCommit:o=()=>{},inverted:p=!1,form:q,...r}=a,s=c.useRef(new Set),t=c.useRef(0),u="horizontal"===i,[v=[],w]=(0,Q.useControllableState)({prop:m,defaultProp:l,onChange:a=>{let b=[...s.current];b[t.current]?.focus(),n(a)}}),x=c.useRef(v);function y(a,b,{commit:c}={commit:!1}){let d,e=(String(h).split(".")[1]||"").length,i=Math.round((Math.round((a-f)/h)*h+f)*(d=Math.pow(10,e)))/d,j=(0,B.clamp)(i,[f,g]);w((a=[])=>{let d=function(a=[],b,c){let d=[...a];return d[c]=b,d.sort((a,b)=>a-b)}(a,j,b);if(!function(a,b){if(b>0)return Math.min(...a.slice(0,-1).map((b,c)=>a[c+1]-b))>=b;return!0}(d,k*h))return a;{t.current=d.indexOf(j);let b=String(d)!==String(a);return b&&c&&o(d),b?d:a}})}return(0,b.jsx)(bw,{scope:a.__scopeSlider,name:e,disabled:j,min:f,max:g,valueIndexToChangeRef:t,thumbs:s.current,values:v,orientation:i,form:q,children:(0,b.jsx)(br.Provider,{scope:a.__scopeSlider,children:(0,b.jsx)(br.Slot,{scope:a.__scopeSlider,children:(0,b.jsx)(u?bB:bC,{"aria-disabled":j,"data-disabled":j?"":void 0,...r,ref:d,onPointerDown:(0,C.composeEventHandlers)(r.onPointerDown,()=>{j||(x.current=v)}),min:f,max:g,inverted:p,onSlideStart:j?void 0:function(a){let b=function(a,b){if(1===a.length)return 0;let c=a.map(a=>Math.abs(a-b)),d=Math.min(...c);return c.indexOf(d)}(v,a);y(a,b)},onSlideMove:j?void 0:function(a){y(a,t.current)},onSlideEnd:j?void 0:function(){let a=x.current[t.current];v[t.current]!==a&&o(v)},onHomeKeyDown:()=>!j&&y(f,0,{commit:!0}),onEndKeyDown:()=>!j&&y(g,v.length-1,{commit:!0}),onStepKeyDown:({event:a,direction:b})=>{if(!j){let c=bn.includes(a.key)||a.shiftKey&&bo.includes(a.key),d=t.current;y(v[d]+h*(c?10:1)*b,d,{commit:!0})}}})})})})});by.displayName=bq;var[bz,bA]=bu(bq,{startEdge:"left",endEdge:"right",size:"width",direction:1}),bB=c.forwardRef((a,d)=>{let{min:e,max:f,dir:g,inverted:h,onSlideStart:i,onSlideMove:j,onSlideEnd:k,onStepKeyDown:l,...m}=a,[n,o]=c.useState(null),p=(0,E.useComposedRefs)(d,a=>o(a)),q=c.useRef(void 0),r=(0,G.useDirection)(g),s="ltr"===r,t=s&&!h||!s&&h;function u(a){let b=q.current||n.getBoundingClientRect(),c=bN([0,b.width],t?[e,f]:[f,e]);return q.current=b,c(a-b.left)}return(0,b.jsx)(bz,{scope:a.__scopeSlider,startEdge:t?"left":"right",endEdge:t?"right":"left",direction:t?1:-1,size:"width",children:(0,b.jsx)(bD,{dir:r,"data-orientation":"horizontal",...m,ref:p,style:{...m.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:a=>{let b=u(a.clientX);i?.(b)},onSlideMove:a=>{let b=u(a.clientX);j?.(b)},onSlideEnd:()=>{q.current=void 0,k?.()},onStepKeyDown:a=>{let b=bp[t?"from-left":"from-right"].includes(a.key);l?.({event:a,direction:b?-1:1})}})})}),bC=c.forwardRef((a,d)=>{let{min:e,max:f,inverted:g,onSlideStart:h,onSlideMove:i,onSlideEnd:j,onStepKeyDown:k,...l}=a,m=c.useRef(null),n=(0,E.useComposedRefs)(d,m),o=c.useRef(void 0),p=!g;function q(a){let b=o.current||m.current.getBoundingClientRect(),c=bN([0,b.height],p?[f,e]:[e,f]);return o.current=b,c(a-b.top)}return(0,b.jsx)(bz,{scope:a.__scopeSlider,startEdge:p?"bottom":"top",endEdge:p?"top":"bottom",size:"height",direction:p?1:-1,children:(0,b.jsx)(bD,{"data-orientation":"vertical",...l,ref:n,style:{...l.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:a=>{let b=q(a.clientY);h?.(b)},onSlideMove:a=>{let b=q(a.clientY);i?.(b)},onSlideEnd:()=>{o.current=void 0,j?.()},onStepKeyDown:a=>{let b=bp[p?"from-bottom":"from-top"].includes(a.key);k?.({event:a,direction:b?-1:1})}})})}),bD=c.forwardRef((a,c)=>{let{__scopeSlider:d,onSlideStart:e,onSlideMove:f,onSlideEnd:g,onHomeKeyDown:h,onEndKeyDown:i,onStepKeyDown:j,...k}=a,l=bx(bq,d);return(0,b.jsx)(N.Primitive.span,{...k,ref:c,onKeyDown:(0,C.composeEventHandlers)(a.onKeyDown,a=>{"Home"===a.key?(h(a),a.preventDefault()):"End"===a.key?(i(a),a.preventDefault()):bn.concat(bo).includes(a.key)&&(j(a),a.preventDefault())}),onPointerDown:(0,C.composeEventHandlers)(a.onPointerDown,a=>{let b=a.target;b.setPointerCapture(a.pointerId),a.preventDefault(),l.thumbs.has(b)?b.focus():e(a)}),onPointerMove:(0,C.composeEventHandlers)(a.onPointerMove,a=>{a.target.hasPointerCapture(a.pointerId)&&f(a)}),onPointerUp:(0,C.composeEventHandlers)(a.onPointerUp,a=>{let b=a.target;b.hasPointerCapture(a.pointerId)&&(b.releasePointerCapture(a.pointerId),g(a))})})}),bE="SliderTrack",bF=c.forwardRef((a,c)=>{let{__scopeSlider:d,...e}=a,f=bx(bE,d);return(0,b.jsx)(N.Primitive.span,{"data-disabled":f.disabled?"":void 0,"data-orientation":f.orientation,...e,ref:c})});bF.displayName=bE;var bG="SliderRange",bH=c.forwardRef((a,d)=>{let{__scopeSlider:e,...f}=a,g=bx(bG,e),h=bA(bG,e),i=c.useRef(null),j=(0,E.useComposedRefs)(d,i),k=g.values.length,l=g.values.map(a=>bM(a,g.min,g.max)),m=k>1?Math.min(...l):0,n=100-Math.max(...l);return(0,b.jsx)(N.Primitive.span,{"data-orientation":g.orientation,"data-disabled":g.disabled?"":void 0,...f,ref:j,style:{...a.style,[h.startEdge]:m+"%",[h.endEdge]:n+"%"}})});bH.displayName=bG;var bI="SliderThumb",bJ=c.forwardRef((a,d)=>{let e=bs(a.__scopeSlider),[f,g]=c.useState(null),h=(0,E.useComposedRefs)(d,a=>g(a)),i=c.useMemo(()=>f?e().findIndex(a=>a.ref.current===f):-1,[e,f]);return(0,b.jsx)(bK,{...a,ref:h,index:i})}),bK=c.forwardRef((a,d)=>{var e,f,g,h,i;let j,k,{__scopeSlider:l,index:m,name:n,...o}=a,p=bx(bI,l),q=bA(bI,l),[r,s]=c.useState(null),t=(0,E.useComposedRefs)(d,a=>s(a)),u=!r||p.form||!!r.closest("form"),v=(0,bm.useSize)(r),w=p.values[m],x=void 0===w?0:bM(w,p.min,p.max),y=(e=m,(f=p.values.length)>2?`Value ${e+1} of ${f}`:2===f?["Minimum","Maximum"][e]:void 0),z=v?.[q.size],A=z?(g=z,h=x,i=q.direction,k=bN([0,50],[0,j=g/2]),(j-k(h)*i)*i):0;return c.useEffect(()=>{if(r)return p.thumbs.add(r),()=>{p.thumbs.delete(r)}},[r,p.thumbs]),(0,b.jsxs)("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[q.startEdge]:`calc(${x}% + ${A}px)`},children:[(0,b.jsx)(br.ItemSlot,{scope:a.__scopeSlider,children:(0,b.jsx)(N.Primitive.span,{role:"slider","aria-label":a["aria-label"]||y,"aria-valuemin":p.min,"aria-valuenow":w,"aria-valuemax":p.max,"aria-orientation":p.orientation,"data-orientation":p.orientation,"data-disabled":p.disabled?"":void 0,tabIndex:p.disabled?void 0:0,...o,ref:t,style:void 0===w?{display:"none"}:a.style,onFocus:(0,C.composeEventHandlers)(a.onFocus,()=>{p.valueIndexToChangeRef.current=m})})}),u&&(0,b.jsx)(bL,{name:n??(p.name?p.name+(p.values.length>1?"[]":""):void 0),form:p.form,value:w},m)]})});bJ.displayName=bI;var bL=c.forwardRef(({__scopeSlider:a,value:d,...e},f)=>{let g=c.useRef(null),h=(0,E.useComposedRefs)(g,f),i=(0,S.usePrevious)(d);return c.useEffect(()=>{let a=g.current;if(!a)return;let b=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set;if(i!==d&&b){let c=new Event("input",{bubbles:!0});b.call(a,d),a.dispatchEvent(c)}},[i,d]),(0,b.jsx)(N.Primitive.input,{style:{display:"none"},...e,ref:h,defaultValue:d})});function bM(a,b,c){return(0,B.clamp)(100/(c-b)*(a-b),[0,100])}function bN(a,b){return c=>{if(a[0]===a[1]||b[0]===b[1])return b[0];let d=(b[1]-b[0])/(a[1]-a[0]);return b[0]+d*(c-a[0])}}bL.displayName="RadioBubbleInput",a.s(["Range",()=>bH,"Root",()=>by,"Slider",()=>by,"SliderRange",()=>bH,"SliderThumb",()=>bJ,"SliderTrack",()=>bF,"Thumb",()=>bJ,"Track",()=>bF,"createSliderScope",()=>bv],61569);var bO=a.i(61569),bO=bO;function bP({className:a,defaultValue:d,value:e,min:f=0,max:g=100,...h}){let i=c.useMemo(()=>Array.isArray(e)?e:Array.isArray(d)?d:[f,g],[e,d,f,g]);return(0,b.jsxs)(bO.Root,{"data-slot":"slider",defaultValue:d,value:e,min:f,max:g,className:(0,u.cn)("relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",a),...h,children:[(0,b.jsx)(bO.Track,{"data-slot":"slider-track",className:(0,u.cn)("bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"),children:(0,b.jsx)(bO.Range,{"data-slot":"slider-range",className:(0,u.cn)("bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")})}),Array.from({length:i.length},(a,c)=>(0,b.jsx)(bO.Thumb,{"data-slot":"slider-thumb",className:"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"},c))]})}let bQ=[60,120,300,600,900,1800,2700,3600,7200,10800,14400,21600,28800,43200,86400],bR=bQ.length-1;function bS(a){let b=0,c=Math.abs(a-bQ[0]);for(let d=1;d<bQ.length;d++){let e=Math.abs(a-bQ[d]);e<c&&(c=e,b=d)}return b}function bT({id:a,testId:d,value:e,onChange:f,onBlur:g,defaultSeconds:h=1800}){var i;let j,k,l=(""===e?h:parseInt(e,10))||h,[m,n]=(0,c.useState)(()=>bS(l)),o=bS(l);o!==m&&bQ[m]!==l&&n(o);let p=(0,c.useCallback)(([a])=>{n(a),f(String(bQ[a]))},[f]);return(0,b.jsxs)("div",{className:"flex w-55 items-center gap-2",children:[(0,b.jsx)(bP,{id:a,"data-testid":d,min:0,max:bR,step:1,value:[m],onValueChange:p,onValueCommit:()=>g(),className:"min-w-0 flex-1"}),(0,b.jsx)("span",{className:"text-muted-foreground shrink-0 text-right text-xs tabular-nums",children:(j=Math.floor((i=bQ[m])/3600),k=Math.round(i%3600/60),0===j?`${k}m`:0===k?`${j}h`:`${j}h ${k}m`)})]})}let bU=[{value:ba.AgentAuthMethod.Session,label:"Session"},{value:ba.AgentAuthMethod.Token,label:"Token"}],bV=[{value:ba.EditorType.VsCode,label:"VS Code"},{value:ba.EditorType.Cursor,label:"Cursor"},{value:ba.EditorType.Windsurf,label:"Windsurf"},{value:ba.EditorType.Zed,label:"Zed"},{value:ba.EditorType.Antigravity,label:"Antigravity"}],bW=[{value:"bash",label:"Bash"},{value:"zsh",label:"Zsh"},{value:"fish",label:"Fish"}],bX=[{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:"stage-timeouts",label:"Timeouts",icon:s},{id:"notifications",label:"Notifications",icon:l},{id:"feature-flags",label:"Flags",icon:m},{id:"database",label:"Database",icon:n}];function bY({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)(v.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 bZ({label:a,description:c,id:d,testId:e,checked:f,onChange:g,disabled:h}){return(0,b.jsx)(bY,{label:a,description:c,htmlFor:d,children:(0,b.jsx)(y.Switch,{id:d,"data-testid":e,checked:f,onCheckedChange:g,disabled:h,className:(0,u.cn)("cursor-pointer",h&&"cursor-not-allowed opacity-50")})})}function b$({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 b_({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 b0({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 b1({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 b2({settings:a,shepHome:e,dbFileSize:o,availableTerminals:p}){let{showSaving:q,showSaved:v,save:y}=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 a9(a);b.success||t.toast.error(b.error??"Failed to save settings")})},[b])}}(),A=a.featureFlags??{skills:!1,envDeploy:!1,debug:!1},[B,C]=(0,c.useState)(a.agent.type),D=a.agent.authMethod,[E,F]=(0,c.useState)(a.agent.token??""),[G,H]=(0,c.useState)(!1),[I,J]=(0,c.useState)(a.environment.defaultEditor),[K,L]=(0,c.useState)(a.environment.shellPreference),[M,N]=(0,c.useState)(a.environment.terminalPreference??ba.TerminalType.System),O=p?p.filter(a=>a.available):[{id:ba.TerminalType.System,name:"System Terminal",available:!0}],[P,Q]=(0,c.useState)(a.workflow.openPrOnImplementationComplete),[R,S]=(0,c.useState)(a.workflow.approvalGateDefaults.pushOnImplementationComplete),[T,U]=(0,c.useState)(a.workflow.approvalGateDefaults.allowPrd),[V,W]=(0,c.useState)(a.workflow.approvalGateDefaults.allowPlan),[X,Y]=(0,c.useState)(a.workflow.approvalGateDefaults.allowMerge),[Z,$]=(0,c.useState)(a.workflow.enableEvidence),[_,aa]=(0,c.useState)(a.workflow.commitEvidence),[ab,ac]=(0,c.useState)(!1!==a.workflow.ciWatchEnabled),[ad,ae]=(0,c.useState)(null!=a.workflow.ciMaxFixAttempts?String(a.workflow.ciMaxFixAttempts):""),[af,ag]=(0,c.useState)(null!=a.workflow.ciWatchTimeoutMs?String(Math.round(a.workflow.ciWatchTimeoutMs/1e3)):""),[ah,ai]=(0,c.useState)(null!=a.workflow.ciLogMaxChars?String(a.workflow.ciLogMaxChars):""),[aj,ak]=(0,c.useState)(null!=a.workflow.ciWatchPollIntervalSeconds?String(a.workflow.ciWatchPollIntervalSeconds):""),al=a.workflow.stageTimeouts,[am,an]=(0,c.useState)(String(Math.round((al?.analyzeMs??18e5)/1e3))),[ao,ap]=(0,c.useState)(String(Math.round((al?.requirementsMs??18e5)/1e3))),[aq,ar]=(0,c.useState)(String(Math.round((al?.researchMs??18e5)/1e3))),[as,at]=(0,c.useState)(String(Math.round((al?.planMs??18e5)/1e3))),[au,av]=(0,c.useState)(String(Math.round((al?.implementMs??18e5)/1e3))),[aw,ax]=(0,c.useState)(String(Math.round((al?.mergeMs??18e5)/1e3))),ay=a.workflow.analyzeRepoTimeouts,[az,aA]=(0,c.useState)(String(Math.round((ay?.analyzeMs??6e5)/1e3))),[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)({...A}),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):"",aO=null!=a.workflow.ciWatchPollIntervalSeconds?String(a.workflow.ciWatchPollIntervalSeconds):"",aP=al?.analyzeMs!=null?String(Math.round(al.analyzeMs/1e3)):"",aQ=al?.requirementsMs!=null?String(Math.round(al.requirementsMs/1e3)):"",aR=al?.researchMs!=null?String(Math.round(al.researchMs/1e3)):"",aS=al?.planMs!=null?String(Math.round(al.planMs/1e3)):"",aT=al?.implementMs!=null?String(Math.round(al.implementMs/1e3)):"",aU=al?.mergeMs!=null?String(Math.round(al.mergeMs/1e3)):"",aV=ay?.analyzeMs!=null?String(Math.round(ay.analyzeMs/1e3)):"";function aW(a){if(""===a)return;let b=parseInt(a,10);return Number.isNaN(b)||b<=0?void 0:b}function aX(a){if(void 0===a)return;let b=aW(a);return null!=b?1e3*b:void 0}function aY(a={}){let b=aW(a.ciTimeout??af);return{workflow:{openPrOnImplementationComplete:a.openPr??P,approvalGateDefaults:{pushOnImplementationComplete:a.pushOnComplete??R,allowPrd:a.allowPrd??T,allowPlan:a.allowPlan??V,allowMerge:a.allowMerge??X},enableEvidence:a.enableEvidence??Z,commitEvidence:a.commitEvidence??_,ciWatchEnabled:a.ciWatchEnabled??ab,ciMaxFixAttempts:aW(a.ciMaxFix??ad),ciWatchTimeoutMs:null!=b?1e3*b:void 0,ciLogMaxChars:aW(a.ciLogMax??ah),ciWatchPollIntervalSeconds:aW(a.ciPollInterval??aj),stageTimeouts:{analyzeMs:aX(a.analyzeTimeout??am),requirementsMs:aX(a.requirementsTimeout??ao),researchMs:aX(a.researchTimeout??aq),planMs:aX(a.planTimeout??as),implementMs:aX(a.implementTimeout??au),mergeMs:aX(a.mergeTimeout??aw)},analyzeRepoTimeouts:{analyzeMs:aX(a.analyzeRepoTimeout??az)}}}}function aZ(a={}){return{notifications:{inApp:{enabled:a.inApp??aB},browser:{enabled:a.browser??aD},desktop:{enabled:a.desktop??aF},events:a.events??aH}}}let[a$,a_]=(0,c.useState)("agent");(0,c.useEffect)(()=>{let a=bX.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&&a_(b.target.id.replace("section-",""))},{rootMargin:"-65px 0px -60% 0px",threshold:0});for(let c of a)b.observe(c);return()=>b.disconnect()},[]);let a0=(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,u.cn)("text-muted-foreground absolute inset-0 flex items-center text-xs transition-opacity duration-300",q?"opacity-100":"opacity-0"),children:"Saving..."}),(0,b.jsxs)("span",{className:(0,u.cn)("absolute inset-0 flex items-center gap-1 text-xs text-green-600 transition-opacity duration-300",v&&!q?"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:bX.map(a=>{let c=a.icon,d=a$===a.id;return(0,b.jsxs)("button",{type:"button",onClick:()=>a0(a.id),className:(0,u.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)(b$,{icon:h.Bot,title:"Agent",description:"AI coding agent and authentication",testId:"agent-settings-section",children:[(0,b.jsx)(bY,{label:"Agent & Model",description:"Provider and model for all operations",htmlFor:"agent-model-picker",children:(0,b.jsx)(bl.AgentModelPicker,{initialAgentType:B,initialModel:a.models.default,mode:"settings",onAgentModelChange:a=>C(a),className:"w-55"})}),(0,b.jsx)(bY,{label:"Authentication",description:"How the agent authenticates",htmlFor:"auth-method",children:(0,b.jsx)(z.TooltipProvider,{children:(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsxs)(a1,{value:D,disabled:!0,children:[(0,b.jsx)(a3,{id:"auth-method","data-testid":"auth-method-select",className:"w-55 cursor-not-allowed text-xs opacity-60",children:(0,b.jsx)(a2,{})}),(0,b.jsx)(a6,{children:bU.map(a=>(0,b.jsx)(a7,{value:a.value,children:a.label},a.value))})]})})}),(0,b.jsx)(z.TooltipContent,{children:"Coming soon"})]})})}),D===ba.AgentAuthMethod.Token&&(0,b.jsx)(bY,{label:"API Token",htmlFor:"agent-token",children:(0,b.jsxs)("div",{className:"relative w-45",children:[(0,b.jsx)(w.Input,{id:"agent-token","data-testid":"agent-token-input",type:G?"text":"password",value:E,onChange:a=>F(a.target.value),onBlur:()=>{E!==(a.agent.token??"")&&y(function(a={}){let b={type:B,authMethod:D,...a},c={type:b.type,authMethod:b.authMethod};return b.authMethod===ba.AgentAuthMethod.Token&&(c.token=a.token??E),{agent:c}}({token:E}))},placeholder:"Enter token",className:"pr-8"}),(0,b.jsx)(x.Button,{type:"button",variant:"ghost",size:"sm",className:"absolute top-0 right-0 h-full px-2 hover:bg-transparent",onClick:()=>H(!G),"data-testid":"toggle-token-visibility","aria-label":G?"Hide token":"Show token",children:G?(0,b.jsx)(f,{className:"h-3 w-3"}):(0,b.jsx)(d.Eye,{className:"h-3 w-3"})})]})})]}),(0,b.jsx)(b1,{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.jsxs)(b$,{icon:i.Terminal,title:"Environment",description:"Editor, shell, and terminal preferences",testId:"environment-settings-section",children:[(0,b.jsx)(bY,{label:"Default Editor",description:"Editor launched for file operations",htmlFor:"default-editor",children:(0,b.jsxs)(a1,{value:I,onValueChange:a=>{J(a),y({environment:{defaultEditor:a,shellPreference:K,terminalPreference:M}})},children:[(0,b.jsx)(a3,{id:"default-editor","data-testid":"editor-select",className:"w-55 cursor-pointer text-xs",children:(0,b.jsx)(a2,{})}),(0,b.jsx)(a6,{children:bV.map(a=>{var c;let d=(c=a.value)&&c in bk?bk[c]:be;return(0,b.jsx)(a7,{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)(bY,{label:"Shell",description:"Default shell for generated scripts",htmlFor:"shell-preference",children:(0,b.jsxs)(a1,{value:K,onValueChange:a=>{L(a),y({environment:{defaultEditor:I,shellPreference:a,terminalPreference:M}})},children:[(0,b.jsx)(a3,{id:"shell-preference","data-testid":"shell-select",className:"w-55 cursor-pointer text-xs",children:(0,b.jsx)(a2,{})}),(0,b.jsx)(a6,{children:bW.map(a=>(0,b.jsx)(a7,{value:a.value,children:a.label},a.value))})]})}),(0,b.jsx)(bY,{label:"Terminal",description:"Terminal emulator for shell sessions",htmlFor:"terminal-preference",children:(0,b.jsxs)(a1,{value:M,onValueChange:a=>{N(a),y({environment:{defaultEditor:I,shellPreference:K,terminalPreference:a}})},children:[(0,b.jsx)(a3,{id:"terminal-preference","data-testid":"terminal-select",className:"w-55 cursor-pointer text-xs",children:(0,b.jsx)(a2,{})}),(0,b.jsx)(a6,{children:O.map(a=>(0,b.jsx)(a7,{value:a.id,children:a.name},a.id))})]})})]}),(0,b.jsx)(b1,{links:[{label:"Configuration guide",href:"https://github.com/shep-ai/cli/blob/main/docs/guides/configuration.md"}],children:"Your preferred editor opens files for review. The shell setting controls generated scripts. The terminal emulator is launched when opening shell sessions from the web UI."})]}),(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)(b$,{icon:j.GitBranch,title:"Workflow",description:"Automation behavior after implementation",testId:"workflow-settings-section",children:[(0,b.jsx)(b0,{children:"Approve"}),(0,b.jsx)(bZ,{label:"Auto-approve PRD",description:"Skip manual review of requirements",id:"allow-prd",testId:"switch-allow-prd",checked:T,onChange:a=>{U(a),y(aY({allowPrd:a}))}}),(0,b.jsx)(bZ,{label:"Auto-approve Plan",description:"Skip manual review of implementation plan",id:"allow-plan",testId:"switch-allow-plan",checked:V,onChange:a=>{W(a),y(aY({allowPlan:a}))}}),(0,b.jsx)(bZ,{label:"Auto-approve Merge",description:"Merge without manual review",id:"allow-merge",testId:"switch-allow-merge",checked:X,onChange:a=>{Y(a),y(aY({allowMerge:a}))}}),(0,b.jsx)(b0,{children:"Evidence"}),(0,b.jsx)(bZ,{label:"Collect evidence",description:"Capture screenshots and artifacts after implementation",id:"enable-evidence",testId:"switch-enable-evidence",checked:Z,onChange:a=>{$(a),a?y(aY({enableEvidence:a})):(aa(!1),y(aY({enableEvidence:a,commitEvidence:!1})))}}),(0,b.jsx)(bZ,{label:"Add evidence to PR",description:"Include evidence in the pull request body",id:"commit-evidence",testId:"switch-commit-evidence",checked:_,disabled:!Z||!P,onChange:a=>{aa(a),y(aY({commitEvidence:a}))}}),(0,b.jsx)(b0,{children:"Git"}),(0,b.jsx)(bZ,{label:"Push on complete",description:"Push to remote when implementation finishes",id:"push-on-complete",testId:"switch-push-on-complete",checked:R,onChange:a=>{S(a),y(aY({pushOnComplete:a}))}}),(0,b.jsx)(bZ,{label:"Open PR on complete",description:"Create a pull request when done",id:"open-pr",testId:"switch-open-pr",checked:P,onChange:a=>{Q(a),a?y(aY({openPr:a})):(aa(!1),y(aY({openPr:a,commitEvidence:!1})))}}),(0,b.jsx)(bZ,{label:"Watch CI after push",description:"Monitor CI and auto-fix failures. Disable to avoid rate limits.",id:"ci-watch-enabled",testId:"switch-ci-watch-enabled",checked:ab,onChange:a=>{ac(a),y(aY({ciWatchEnabled:a}))}})]}),(0,b.jsx)(b1,{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)(b$,{icon:k,title:"Continuous Integration",description:"Limits and timeouts for CI monitoring",testId:"ci-settings-section",children:[(0,b.jsx)(bY,{label:"Max fix attempts",description:"Agent retries on failing CI",htmlFor:"ci-max-fix",children:(0,b.jsx)(b_,{id:"ci-max-fix",testId:"ci-max-fix-input",placeholder:"3",value:ad,onChange:ae,onBlur:()=>{ad!==aL&&y(aY({ciMaxFix:ad}))},min:1,max:10})}),(0,b.jsx)(bY,{label:"Watch timeout",description:"Max wait for CI completion",htmlFor:"ci-timeout",children:(0,b.jsx)(b_,{id:"ci-timeout",testId:"ci-timeout-input",placeholder:"300",value:af,onChange:ag,onBlur:()=>{af!==aM&&y(aY({ciTimeout:af}))},min:30,step:30,suffix:"sec"})}),(0,b.jsx)(bY,{label:"Max log size",description:"Truncate CI logs beyond this limit",htmlFor:"ci-log-max",children:(0,b.jsx)(b_,{id:"ci-log-max",testId:"ci-log-max-input",placeholder:"50000",value:ah,onChange:ai,onBlur:()=>{ah!==aN&&y(aY({ciLogMax:ah}))},min:1e3,step:5e3,suffix:"chars"})}),(0,b.jsx)(bY,{label:"Poll interval",description:"How often to check GitHub for CI status updates",htmlFor:"ci-poll-interval",children:(0,b.jsx)(b_,{id:"ci-poll-interval",testId:"ci-poll-interval-input",placeholder:"30",value:aj,onChange:ak,onBlur:()=>{aj!==aO&&y(aY({ciPollInterval:aj}))},min:5,step:5,suffix:"sec"})})]}),(0,b.jsx)(b1,{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-stage-timeouts",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsxs)(b$,{icon:s,title:"Stage Timeouts",description:"Maximum execution time per agent stage",testId:"stage-timeouts-settings-section",children:[(0,b.jsx)(b0,{children:"Feature Agent"}),(0,b.jsx)(bY,{label:"Analyze",description:"Repository analysis timeout",htmlFor:"timeout-analyze",children:(0,b.jsx)(bT,{id:"timeout-analyze",testId:"timeout-analyze-input",value:am,onChange:an,onBlur:()=>{am!==aP&&y(aY({analyzeTimeout:am}))},defaultSeconds:1800})}),(0,b.jsx)(bY,{label:"Requirements",description:"Requirements gathering timeout",htmlFor:"timeout-requirements",children:(0,b.jsx)(bT,{id:"timeout-requirements",testId:"timeout-requirements-input",value:ao,onChange:ap,onBlur:()=>{ao!==aQ&&y(aY({requirementsTimeout:ao}))},defaultSeconds:1800})}),(0,b.jsx)(bY,{label:"Research",description:"Technical research timeout",htmlFor:"timeout-research",children:(0,b.jsx)(bT,{id:"timeout-research",testId:"timeout-research-input",value:aq,onChange:ar,onBlur:()=>{aq!==aR&&y(aY({researchTimeout:aq}))},defaultSeconds:1800})}),(0,b.jsx)(bY,{label:"Plan",description:"Implementation planning timeout",htmlFor:"timeout-plan",children:(0,b.jsx)(bT,{id:"timeout-plan",testId:"timeout-plan-input",value:as,onChange:at,onBlur:()=>{as!==aS&&y(aY({planTimeout:as}))},defaultSeconds:1800})}),(0,b.jsx)(bY,{label:"Implement",description:"Code implementation timeout",htmlFor:"timeout-implement",children:(0,b.jsx)(bT,{id:"timeout-implement",testId:"timeout-implement-input",value:au,onChange:av,onBlur:()=>{au!==aT&&y(aY({implementTimeout:au}))},defaultSeconds:1800})}),(0,b.jsx)(bY,{label:"Merge",description:"PR creation and merge timeout",htmlFor:"timeout-merge",children:(0,b.jsx)(bT,{id:"timeout-merge",testId:"timeout-merge-input",value:aw,onChange:ax,onBlur:()=>{aw!==aU&&y(aY({mergeTimeout:aw}))},defaultSeconds:1800})}),(0,b.jsx)(b0,{children:"Analyze Repository Agent"}),(0,b.jsx)(bY,{label:"Analyze",description:"Repository analysis timeout",htmlFor:"timeout-analyze-repo",children:(0,b.jsx)(bT,{id:"timeout-analyze-repo",testId:"timeout-analyze-repo-input",value:az,onChange:aA,onBlur:()=>{az!==aV&&y(aY({analyzeRepoTimeout:az}))},defaultSeconds:600})})]}),(0,b.jsx)(b1,{children:"Each agent has independently configurable stage timeouts. When a stage exceeds its timeout, the agent is terminated. Longer timeouts are useful for complex implementations. Feature agent defaults to 30 minutes per stage. Analyze repository agent defaults to 10 minutes."})]}),(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)(b$,{icon:l,title:"Notifications",description:"How and when you get notified",testId:"notification-settings-section",children:[(0,b.jsx)(b0,{children:"Channels"}),(0,b.jsx)(bZ,{label:"In-app",description:"Notifications inside the Shep UI",id:"notif-in-app",testId:"switch-in-app",checked:aB,onChange:a=>{aC(a),y(aZ({inApp:a}))}}),(0,b.jsx)(bZ,{label:"Browser",description:"Push notifications via the browser",id:"notif-browser",testId:"switch-browser",checked:aD,onChange:a=>{aE(a),y(aZ({browser:a}))}}),(0,b.jsx)(bZ,{label:"Desktop",description:"Native OS notifications",id:"notif-desktop",testId:"switch-desktop",checked:aF,onChange:a=>{aG(a),y(aZ({desktop:a}))}}),(0,b.jsx)(b0,{children:"Agent Events"}),(0,b.jsx)(bZ,{label:"Agent started",id:"notif-event-agentStarted",testId:"switch-event-agentStarted",checked:aH.agentStarted,onChange:a=>{let b={...aH,agentStarted:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(bZ,{label:"Phase completed",id:"notif-event-phaseCompleted",testId:"switch-event-phaseCompleted",checked:aH.phaseCompleted,onChange:a=>{let b={...aH,phaseCompleted:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(bZ,{label:"Waiting approval",id:"notif-event-waitingApproval",testId:"switch-event-waitingApproval",checked:aH.waitingApproval,onChange:a=>{let b={...aH,waitingApproval:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(bZ,{label:"Agent completed",id:"notif-event-agentCompleted",testId:"switch-event-agentCompleted",checked:aH.agentCompleted,onChange:a=>{let b={...aH,agentCompleted:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(bZ,{label:"Agent failed",id:"notif-event-agentFailed",testId:"switch-event-agentFailed",checked:aH.agentFailed,onChange:a=>{let b={...aH,agentFailed:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(b0,{children:"Pull Request Events"}),(0,b.jsx)(bZ,{label:"PR merged",id:"notif-event-prMerged",testId:"switch-event-prMerged",checked:aH.prMerged,onChange:a=>{let b={...aH,prMerged:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(bZ,{label:"PR closed",id:"notif-event-prClosed",testId:"switch-event-prClosed",checked:aH.prClosed,onChange:a=>{let b={...aH,prClosed:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(bZ,{label:"PR checks passed",id:"notif-event-prChecksPassed",testId:"switch-event-prChecksPassed",checked:aH.prChecksPassed,onChange:a=>{let b={...aH,prChecksPassed:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(bZ,{label:"PR checks failed",id:"notif-event-prChecksFailed",testId:"switch-event-prChecksFailed",checked:aH.prChecksFailed,onChange:a=>{let b={...aH,prChecksFailed:a};aI(b),y(aZ({events:b}))}})]}),(0,b.jsx)(b1,{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)(b$,{icon:m,title:"Feature Flags",description:"Enable or disable experimental features",badge:"Experimental",testId:"feature-flags-settings-section",children:[(0,b.jsx)(bZ,{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),y({featureFlags:b})}}),(0,b.jsx)(bZ,{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),y({featureFlags:b})}}),(0,b.jsx)(bZ,{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),y({featureFlags:b})}})]}),(0,b.jsx)(b1,{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)(b$,{icon:n,title:"Database",description:"Local storage information",testId:"database-settings-section",children:[(0,b.jsx)(bY,{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)(bY,{label:"Size",children:(0,b.jsx)("span",{className:"text-muted-foreground text-xs","data-testid":"db-file-size",children:o})})]}),(0,b.jsx)(b1,{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",()=>b2],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"}]]),s=(0,e.default)("timer",[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]]);var t=a.i(52313),u=a.i(85536),v=a.i(584),w=a.i(90920),x=a.i(18948),y=a.i(96867),z=a.i(82934),A=a.i(55690),B=a.i(48972),C=a.i(59653),D=a.i(63496),E=a.i(6175),F=a.i(7420),G=a.i(48939),H=a.i(58761),I=a.i(51473),J=a.i(59675),K=a.i(5472),L=a.i(75988),M=a.i(80930),N=a.i(66873),O=a.i(90986),P=a.i(79406),Q=a.i(17329),R=a.i(61476),S=a.i(64005),T=a.i(50049),U=a.i(16164),V=a.i(45291),W=[" ","Enter","ArrowUp","ArrowDown"],X=[" ","Enter"],Y="Select",[Z,$,_]=(0,D.createCollection)(Y),[aa,ab]=(0,F.createContextScope)(Y,[_,L.createPopperScope]),ac=(0,L.createPopperScope)(),[ad,ae]=aa(Y),[af,ag]=aa(Y),ah=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=ac(d),[s,t]=c.useState(null),[u,v]=c.useState(null),[w,x]=c.useState(!1),y=(0,G.useDirection)(l),[z,A]=(0,Q.useControllableState)({prop:f,defaultProp:g??!1,onChange:h,caller:Y}),[B,C]=(0,Q.useControllableState)({prop:i,defaultProp:j,onChange:k,caller:Y}),D=c.useRef(null),E=!s||q||!!s.closest("form"),[F,H]=c.useState(new Set),I=Array.from(F).map(a=>a.props.value).join(";");return(0,b.jsx)(L.Root,{...r,children:(0,b.jsxs)(ad,{required:p,scope:d,trigger:s,onTriggerChange:t,valueNode:u,onValueNodeChange:v,valueNodeHasChildren:w,onValueNodeHasChildrenChange:x,contentId:(0,K.useId)(),value:B,onValueChange:C,open:z,onOpenChange:A,dir:y,triggerPointerDownPosRef:D,disabled:o,children:[(0,b.jsx)(Z.Provider,{scope:d,children:(0,b.jsx)(af,{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)(aW,{"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(F)]},I):null]})})};ah.displayName=Y;var ai="SelectTrigger",aj=c.forwardRef((a,d)=>{let{__scopeSelect:e,disabled:f=!1,...g}=a,h=ac(e),i=ae(ai,e),j=i.disabled||f,k=(0,E.useComposedRefs)(d,i.onTriggerChange),l=$(e),m=c.useRef("touch"),[n,o,p]=aY(a=>{let b=l().filter(a=>!a.disabled),c=b.find(a=>a.value===i.value),d=aZ(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)(L.Anchor,{asChild:!0,...h,children:(0,b.jsx)(N.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":aX(i.value)?"":void 0,...g,ref:k,onClick:(0,C.composeEventHandlers)(g.onClick,a=>{a.currentTarget.focus(),"mouse"!==m.current&&q(a)}),onPointerDown:(0,C.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,C.composeEventHandlers)(g.onKeyDown,a=>{let b=""!==n.current;a.ctrlKey||a.altKey||a.metaKey||1!==a.key.length||o(a.key),(!b||" "!==a.key)&&W.includes(a.key)&&(q(),a.preventDefault())})})})});aj.displayName=ai;var ak="SelectValue",al=c.forwardRef((a,c)=>{let{__scopeSelect:d,className:e,style:f,children:g,placeholder:h="",...i}=a,j=ae(ak,d),{onValueNodeHasChildrenChange:k}=j,l=void 0!==g,m=(0,E.useComposedRefs)(c,j.onValueNodeChange);return(0,R.useLayoutEffect)(()=>{k(l)},[k,l]),(0,b.jsx)(N.Primitive.span,{...i,ref:m,style:{pointerEvents:"none"},children:aX(j.value)?(0,b.jsx)(b.Fragment,{children:h}):g})});al.displayName=ak;var am=c.forwardRef((a,c)=>{let{__scopeSelect:d,children:e,...f}=a;return(0,b.jsx)(N.Primitive.span,{"aria-hidden":!0,...f,ref:c,children:e||"▼"})});am.displayName="SelectIcon";var an=a=>(0,b.jsx)(M.Portal,{asChild:!0,...a});an.displayName="SelectPortal";var ao="SelectContent",ap=c.forwardRef((a,d)=>{let e=ae(ao,a.__scopeSelect),[f,g]=c.useState();return((0,R.useLayoutEffect)(()=>{g(new DocumentFragment)},[]),e.open)?(0,b.jsx)(at,{...a,ref:d}):f?A.createPortal((0,b.jsx)(aq,{scope:a.__scopeSelect,children:(0,b.jsx)(Z.Slot,{scope:a.__scopeSelect,children:(0,b.jsx)("div",{children:a.children})})}),f):null});ap.displayName=ao;var[aq,ar]=aa(ao),as=(0,O.createSlot)("SelectContent.RemoveScroll"),at=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=ae(ao,e),[v,w]=c.useState(null),[x,y]=c.useState(null),z=(0,E.useComposedRefs)(d,a=>w(a)),[A,B]=c.useState(null),[D,F]=c.useState(null),G=$(e),[K,L]=c.useState(!1),M=c.useRef(!1);c.useEffect(()=>{if(v)return(0,U.hideOthers)(v)},[v]),(0,I.useFocusGuards)();let N=c.useCallback(a=>{let[b,...c]=G().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},[G,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]=aY(a=>{let b=G().filter(a=>!a.disabled),c=b.find(a=>a.ref.current===document.activeElement),d=aZ(b,a,c);d&&setTimeout(()=>d.ref.current.focus())}),T=c.useCallback((a,b,c)=>{let d=!M.current&&!c;(void 0!==u.value&&u.value===b||d)&&(B(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?av:au,Z=Y===av?{side:j,sideOffset:k,align:l,alignOffset:m,arrowPadding:n,collisionBoundary:o,collisionPadding:p,sticky:q,hideWhenDetached:r,avoidCollisions:s}:{};return(0,b.jsx)(aq,{scope:e,content:v,viewport:x,onViewportChange:y,itemRefCallback:T,selectedItem:A,onItemLeave:W,itemTextRefCallback:X,focusSelectedItem:O,selectedItemText:D,position:f,isPositioned:K,searchRef:R,children:(0,b.jsx)(V.RemoveScroll,{as:as,allowPinchZoom:!0,children:(0,b.jsx)(J.FocusScope,{asChild:!0,trapped:u.open,onMountAutoFocus:a=>{a.preventDefault()},onUnmountAutoFocus:(0,C.composeEventHandlers)(g,a=>{u.trigger?.focus({preventScroll:!0}),a.preventDefault()}),children:(0,b.jsx)(H.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,...Z,onPlaced:()=>L(!0),ref:z,style:{display:"flex",flexDirection:"column",outline:"none",...t.style},onKeyDown:(0,C.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=G().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()}})})})})})})});at.displayName="SelectContentImpl";var au=c.forwardRef((a,d)=>{let{__scopeSelect:e,onPlaced:f,...g}=a,h=ae(ao,e),i=ar(ao,e),[j,k]=c.useState(null),[l,m]=c.useState(null),n=(0,E.useComposedRefs)(d,a=>m(a)),o=$(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,B.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,B.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,A=s.offsetHeight/2,C=m+n+(s.offsetTop+A);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,A+(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)+A);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,R.useLayoutEffect)(()=>v(),[v]);let[w,x]=c.useState();(0,R.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)(aw,{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)(N.Primitive.div,{...g,ref:n,style:{boxSizing:"border-box",maxHeight:"100%",...g.style}})})})});au.displayName="SelectItemAlignedPosition";var av=c.forwardRef((a,c)=>{let{__scopeSelect:d,align:e="start",collisionPadding:f=10,...g}=a,h=ac(d);return(0,b.jsx)(L.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)"}})});av.displayName="SelectPopperPosition";var[aw,ax]=aa(ao,{}),ay="SelectViewport",az=c.forwardRef((a,d)=>{let{__scopeSelect:e,nonce:f,...g}=a,h=ar(ay,e),i=ax(ay,e),j=(0,E.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)(Z.Slot,{scope:e,children:(0,b.jsx)(N.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...g,ref:j,style:{position:"relative",flex:1,overflow:"hidden auto",...g.style},onScroll:(0,C.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})})})]})});az.displayName=ay;var aA="SelectGroup",[aB,aC]=aa(aA),aD=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a,f=(0,K.useId)();return(0,b.jsx)(aB,{scope:d,id:f,children:(0,b.jsx)(N.Primitive.div,{role:"group","aria-labelledby":f,...e,ref:c})})});aD.displayName=aA;var aE="SelectLabel",aF=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a,f=aC(aE,d);return(0,b.jsx)(N.Primitive.div,{id:f.id,...e,ref:c})});aF.displayName=aE;var aG="SelectItem",[aH,aI]=aa(aG),aJ=c.forwardRef((a,d)=>{let{__scopeSelect:e,value:f,disabled:g=!1,textValue:h,...i}=a,j=ae(aG,e),k=ar(aG,e),l=j.value===f,[m,n]=c.useState(h??""),[o,p]=c.useState(!1),q=(0,E.useComposedRefs)(d,a=>k.itemRefCallback?.(a,f,g)),r=(0,K.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)(aH,{scope:e,value:f,disabled:g,textId:r,isSelected:l,onItemTextChange:c.useCallback(a=>{n(b=>b||(a?.textContent??"").trim())},[]),children:(0,b.jsx)(Z.ItemSlot,{scope:e,value:f,disabled:g,textValue:m,children:(0,b.jsx)(N.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,C.composeEventHandlers)(i.onFocus,()=>p(!0)),onBlur:(0,C.composeEventHandlers)(i.onBlur,()=>p(!1)),onClick:(0,C.composeEventHandlers)(i.onClick,()=>{"mouse"!==s.current&&t()}),onPointerUp:(0,C.composeEventHandlers)(i.onPointerUp,()=>{"mouse"===s.current&&t()}),onPointerDown:(0,C.composeEventHandlers)(i.onPointerDown,a=>{s.current=a.pointerType}),onPointerMove:(0,C.composeEventHandlers)(i.onPointerMove,a=>{s.current=a.pointerType,g?k.onItemLeave?.():"mouse"===s.current&&a.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,C.composeEventHandlers)(i.onPointerLeave,a=>{a.currentTarget===document.activeElement&&k.onItemLeave?.()}),onKeyDown:(0,C.composeEventHandlers)(i.onKeyDown,a=>{(k.searchRef?.current===""||" "!==a.key)&&(X.includes(a.key)&&t()," "===a.key&&a.preventDefault())})})})})});aJ.displayName=aG;var aK="SelectItemText",aL=c.forwardRef((a,d)=>{let{__scopeSelect:e,className:f,style:g,...h}=a,i=ae(aK,e),j=ar(aK,e),k=aI(aK,e),l=ag(aK,e),[m,n]=c.useState(null),o=(0,E.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,R.useLayoutEffect)(()=>(r(q),()=>s(q)),[r,s,q]),(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(N.Primitive.span,{id:k.textId,...h,ref:o}),k.isSelected&&i.valueNode&&!i.valueNodeHasChildren?A.createPortal(h.children,i.valueNode):null]})});aL.displayName=aK;var aM="SelectItemIndicator",aN=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a;return aI(aM,d).isSelected?(0,b.jsx)(N.Primitive.span,{"aria-hidden":!0,...e,ref:c}):null});aN.displayName=aM;var aO="SelectScrollUpButton",aP=c.forwardRef((a,d)=>{let e=ar(aO,a.__scopeSelect),f=ax(aO,a.__scopeSelect),[g,h]=c.useState(!1),i=(0,E.useComposedRefs)(d,f.onScrollButtonChange);return(0,R.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)(aS,{...a,ref:i,onAutoScroll:()=>{let{viewport:a,selectedItem:b}=e;a&&b&&(a.scrollTop=a.scrollTop-b.offsetHeight)}}):null});aP.displayName=aO;var aQ="SelectScrollDownButton",aR=c.forwardRef((a,d)=>{let e=ar(aQ,a.__scopeSelect),f=ax(aQ,a.__scopeSelect),[g,h]=c.useState(!1),i=(0,E.useComposedRefs)(d,f.onScrollButtonChange);return(0,R.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)(aS,{...a,ref:i,onAutoScroll:()=>{let{viewport:a,selectedItem:b}=e;a&&b&&(a.scrollTop=a.scrollTop+b.offsetHeight)}}):null});aR.displayName=aQ;var aS=c.forwardRef((a,d)=>{let{__scopeSelect:e,onAutoScroll:f,...g}=a,h=ar("SelectScrollButton",e),i=c.useRef(null),j=$(e),k=c.useCallback(()=>{null!==i.current&&(window.clearInterval(i.current),i.current=null)},[]);return c.useEffect(()=>()=>k(),[k]),(0,R.useLayoutEffect)(()=>{let a=j().find(a=>a.ref.current===document.activeElement);a?.ref.current?.scrollIntoView({block:"nearest"})},[j]),(0,b.jsx)(N.Primitive.div,{"aria-hidden":!0,...g,ref:d,style:{flexShrink:0,...g.style},onPointerDown:(0,C.composeEventHandlers)(g.onPointerDown,()=>{null===i.current&&(i.current=window.setInterval(f,50))}),onPointerMove:(0,C.composeEventHandlers)(g.onPointerMove,()=>{h.onItemLeave?.(),null===i.current&&(i.current=window.setInterval(f,50))}),onPointerLeave:(0,C.composeEventHandlers)(g.onPointerLeave,()=>{k()})})}),aT=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a;return(0,b.jsx)(N.Primitive.div,{"aria-hidden":!0,...e,ref:c})});aT.displayName="SelectSeparator";var aU="SelectArrow",aV=c.forwardRef((a,c)=>{let{__scopeSelect:d,...e}=a,f=ac(d),g=ae(aU,d),h=ar(aU,d);return g.open&&"popper"===h.position?(0,b.jsx)(L.Arrow,{...f,...e,ref:c}):null});aV.displayName=aU;var aW=c.forwardRef(({__scopeSelect:a,value:d,...e},f)=>{let g=c.useRef(null),h=(0,E.useComposedRefs)(f,g),i=(0,S.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)(N.Primitive.select,{...e,style:{...T.VISUALLY_HIDDEN_STYLES,...e.style},ref:h,defaultValue:d})});function aX(a){return""===a||void 0===a}function aY(a){let b=(0,P.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 aZ(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}aW.displayName="SelectBubbleInput",a.s(["Arrow",()=>aV,"Content",()=>ap,"Group",()=>aD,"Icon",()=>am,"Item",()=>aJ,"ItemIndicator",()=>aN,"ItemText",()=>aL,"Label",()=>aF,"Portal",()=>an,"Root",()=>ah,"ScrollDownButton",()=>aR,"ScrollUpButton",()=>aP,"Select",()=>ah,"SelectArrow",()=>aV,"SelectContent",()=>ap,"SelectGroup",()=>aD,"SelectIcon",()=>am,"SelectItem",()=>aJ,"SelectItemIndicator",()=>aN,"SelectItemText",()=>aL,"SelectLabel",()=>aF,"SelectPortal",()=>an,"SelectScrollDownButton",()=>aR,"SelectScrollUpButton",()=>aP,"SelectSeparator",()=>aT,"SelectTrigger",()=>aj,"SelectValue",()=>al,"SelectViewport",()=>az,"Separator",()=>aT,"Trigger",()=>aj,"Value",()=>al,"Viewport",()=>az,"createSelectScope",()=>ab],16252);var a$=a.i(16252),a$=a$,a_=a.i(71716);let a0=(0,e.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),a1=a$.Root;a$.Group;let a2=a$.Value,a3=c.forwardRef(({className:a,children:c,...d},e)=>(0,b.jsxs)(a$.Trigger,{ref:e,className:(0,u.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)(a$.Icon,{asChild:!0,children:(0,b.jsx)(a_.ChevronDown,{className:"h-4 w-4 opacity-50"})})]}));a3.displayName=a$.Trigger.displayName;let a4=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(a$.ScrollUpButton,{ref:d,className:(0,u.cn)("flex cursor-default items-center justify-center py-1",a),...c,children:(0,b.jsx)(a0,{className:"h-4 w-4"})}));a4.displayName=a$.ScrollUpButton.displayName;let a5=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(a$.ScrollDownButton,{ref:d,className:(0,u.cn)("flex cursor-default items-center justify-center py-1",a),...c,children:(0,b.jsx)(a_.ChevronDown,{className:"h-4 w-4"})}));a5.displayName=a$.ScrollDownButton.displayName;let a6=c.forwardRef(({className:a,children:c,position:d="popper",...e},f)=>(0,b.jsx)(a$.Portal,{children:(0,b.jsxs)(a$.Content,{ref:f,className:(0,u.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)(a4,{}),(0,b.jsx)(a$.Viewport,{className:(0,u.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)(a5,{})]})}));a6.displayName=a$.Content.displayName,c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(a$.Label,{ref:d,className:(0,u.cn)("px-2 py-1.5 text-sm font-semibold",a),...c})).displayName=a$.Label.displayName;let a7=c.forwardRef(({className:a,children:c,...d},e)=>(0,b.jsxs)(a$.Item,{ref:e,className:(0,u.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)(a$.ItemIndicator,{children:(0,b.jsx)(g.Check,{className:"h-4 w-4"})})}),(0,b.jsx)(a$.ItemText,{children:c})]}));a7.displayName=a$.Item.displayName,c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(a$.Separator,{ref:d,className:(0,u.cn)("bg-muted -mx-1 my-1 h-px",a),...c})).displayName=a$.Separator.displayName;var a8=a.i(25674);let a9=(0,a8.createServerReference)("40197af34a8f3278e67dc64cefd1bea9ca47216ead",a8.callServer,void 0,a8.findSourceMapURL,"updateSettingsAction");var ba=a.i(46847),bb=a.i(61640),bc=a.i(44447),bd=a.i(87926);function be(a){return(0,b.jsx)(bc.Code,{className:(0,u.cn)("h-4 w-4",a.className),...a})}function bf({className:a}){return(0,b.jsx)(bb.default,{src:"/icons/editors/vscode.svg",alt:"VS Code",width:24,height:24,className:(0,u.cn)("rounded-sm object-contain",a)})}function bg({className:a}){return(0,b.jsx)(bb.default,{src:"/icons/agents/cursor.jpeg",alt:"Cursor",width:24,height:24,className:(0,u.cn)("rounded-sm object-contain",a)})}function bh({className:a}){return(0,b.jsx)(bb.default,{src:"/icons/editors/windsurf.svg",alt:"Windsurf",width:24,height:24,className:(0,u.cn)("rounded-sm object-contain",a)})}function bi({className:a}){return(0,b.jsx)(bb.default,{src:"/icons/editors/zed.svg",alt:"Zed",width:24,height:24,className:(0,u.cn)("rounded-sm object-contain",a)})}function bj({className:a,...c}){return(0,b.jsx)(bd.Rocket,{className:(0,u.cn)("h-4 w-4",a),...c})}bf.displayName="VsCodeIcon",bg.displayName="CursorEditorIcon",bh.displayName="WindsurfIcon",bi.displayName="ZedIcon",bj.displayName="AntigravityIcon";let bk={vscode:bf,cursor:bg,windsurf:bh,zed:bi,antigravity:bj};var bl=a.i(61781),bm=a.i(74432),bn=["PageUp","PageDown"],bo=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],bp={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},bq="Slider",[br,bs,bt]=(0,D.createCollection)(bq),[bu,bv]=(0,F.createContextScope)(bq,[bt]),[bw,bx]=bu(bq),by=c.forwardRef((a,d)=>{let{name:e,min:f=0,max:g=100,step:h=1,orientation:i="horizontal",disabled:j=!1,minStepsBetweenThumbs:k=0,defaultValue:l=[f],value:m,onValueChange:n=()=>{},onValueCommit:o=()=>{},inverted:p=!1,form:q,...r}=a,s=c.useRef(new Set),t=c.useRef(0),u="horizontal"===i,[v=[],w]=(0,Q.useControllableState)({prop:m,defaultProp:l,onChange:a=>{let b=[...s.current];b[t.current]?.focus(),n(a)}}),x=c.useRef(v);function y(a,b,{commit:c}={commit:!1}){let d,e=(String(h).split(".")[1]||"").length,i=Math.round((Math.round((a-f)/h)*h+f)*(d=Math.pow(10,e)))/d,j=(0,B.clamp)(i,[f,g]);w((a=[])=>{let d=function(a=[],b,c){let d=[...a];return d[c]=b,d.sort((a,b)=>a-b)}(a,j,b);if(!function(a,b){if(b>0)return Math.min(...a.slice(0,-1).map((b,c)=>a[c+1]-b))>=b;return!0}(d,k*h))return a;{t.current=d.indexOf(j);let b=String(d)!==String(a);return b&&c&&o(d),b?d:a}})}return(0,b.jsx)(bw,{scope:a.__scopeSlider,name:e,disabled:j,min:f,max:g,valueIndexToChangeRef:t,thumbs:s.current,values:v,orientation:i,form:q,children:(0,b.jsx)(br.Provider,{scope:a.__scopeSlider,children:(0,b.jsx)(br.Slot,{scope:a.__scopeSlider,children:(0,b.jsx)(u?bB:bC,{"aria-disabled":j,"data-disabled":j?"":void 0,...r,ref:d,onPointerDown:(0,C.composeEventHandlers)(r.onPointerDown,()=>{j||(x.current=v)}),min:f,max:g,inverted:p,onSlideStart:j?void 0:function(a){let b=function(a,b){if(1===a.length)return 0;let c=a.map(a=>Math.abs(a-b)),d=Math.min(...c);return c.indexOf(d)}(v,a);y(a,b)},onSlideMove:j?void 0:function(a){y(a,t.current)},onSlideEnd:j?void 0:function(){let a=x.current[t.current];v[t.current]!==a&&o(v)},onHomeKeyDown:()=>!j&&y(f,0,{commit:!0}),onEndKeyDown:()=>!j&&y(g,v.length-1,{commit:!0}),onStepKeyDown:({event:a,direction:b})=>{if(!j){let c=bn.includes(a.key)||a.shiftKey&&bo.includes(a.key),d=t.current;y(v[d]+h*(c?10:1)*b,d,{commit:!0})}}})})})})});by.displayName=bq;var[bz,bA]=bu(bq,{startEdge:"left",endEdge:"right",size:"width",direction:1}),bB=c.forwardRef((a,d)=>{let{min:e,max:f,dir:g,inverted:h,onSlideStart:i,onSlideMove:j,onSlideEnd:k,onStepKeyDown:l,...m}=a,[n,o]=c.useState(null),p=(0,E.useComposedRefs)(d,a=>o(a)),q=c.useRef(void 0),r=(0,G.useDirection)(g),s="ltr"===r,t=s&&!h||!s&&h;function u(a){let b=q.current||n.getBoundingClientRect(),c=bN([0,b.width],t?[e,f]:[f,e]);return q.current=b,c(a-b.left)}return(0,b.jsx)(bz,{scope:a.__scopeSlider,startEdge:t?"left":"right",endEdge:t?"right":"left",direction:t?1:-1,size:"width",children:(0,b.jsx)(bD,{dir:r,"data-orientation":"horizontal",...m,ref:p,style:{...m.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:a=>{let b=u(a.clientX);i?.(b)},onSlideMove:a=>{let b=u(a.clientX);j?.(b)},onSlideEnd:()=>{q.current=void 0,k?.()},onStepKeyDown:a=>{let b=bp[t?"from-left":"from-right"].includes(a.key);l?.({event:a,direction:b?-1:1})}})})}),bC=c.forwardRef((a,d)=>{let{min:e,max:f,inverted:g,onSlideStart:h,onSlideMove:i,onSlideEnd:j,onStepKeyDown:k,...l}=a,m=c.useRef(null),n=(0,E.useComposedRefs)(d,m),o=c.useRef(void 0),p=!g;function q(a){let b=o.current||m.current.getBoundingClientRect(),c=bN([0,b.height],p?[f,e]:[e,f]);return o.current=b,c(a-b.top)}return(0,b.jsx)(bz,{scope:a.__scopeSlider,startEdge:p?"bottom":"top",endEdge:p?"top":"bottom",size:"height",direction:p?1:-1,children:(0,b.jsx)(bD,{"data-orientation":"vertical",...l,ref:n,style:{...l.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:a=>{let b=q(a.clientY);h?.(b)},onSlideMove:a=>{let b=q(a.clientY);i?.(b)},onSlideEnd:()=>{o.current=void 0,j?.()},onStepKeyDown:a=>{let b=bp[p?"from-bottom":"from-top"].includes(a.key);k?.({event:a,direction:b?-1:1})}})})}),bD=c.forwardRef((a,c)=>{let{__scopeSlider:d,onSlideStart:e,onSlideMove:f,onSlideEnd:g,onHomeKeyDown:h,onEndKeyDown:i,onStepKeyDown:j,...k}=a,l=bx(bq,d);return(0,b.jsx)(N.Primitive.span,{...k,ref:c,onKeyDown:(0,C.composeEventHandlers)(a.onKeyDown,a=>{"Home"===a.key?(h(a),a.preventDefault()):"End"===a.key?(i(a),a.preventDefault()):bn.concat(bo).includes(a.key)&&(j(a),a.preventDefault())}),onPointerDown:(0,C.composeEventHandlers)(a.onPointerDown,a=>{let b=a.target;b.setPointerCapture(a.pointerId),a.preventDefault(),l.thumbs.has(b)?b.focus():e(a)}),onPointerMove:(0,C.composeEventHandlers)(a.onPointerMove,a=>{a.target.hasPointerCapture(a.pointerId)&&f(a)}),onPointerUp:(0,C.composeEventHandlers)(a.onPointerUp,a=>{let b=a.target;b.hasPointerCapture(a.pointerId)&&(b.releasePointerCapture(a.pointerId),g(a))})})}),bE="SliderTrack",bF=c.forwardRef((a,c)=>{let{__scopeSlider:d,...e}=a,f=bx(bE,d);return(0,b.jsx)(N.Primitive.span,{"data-disabled":f.disabled?"":void 0,"data-orientation":f.orientation,...e,ref:c})});bF.displayName=bE;var bG="SliderRange",bH=c.forwardRef((a,d)=>{let{__scopeSlider:e,...f}=a,g=bx(bG,e),h=bA(bG,e),i=c.useRef(null),j=(0,E.useComposedRefs)(d,i),k=g.values.length,l=g.values.map(a=>bM(a,g.min,g.max)),m=k>1?Math.min(...l):0,n=100-Math.max(...l);return(0,b.jsx)(N.Primitive.span,{"data-orientation":g.orientation,"data-disabled":g.disabled?"":void 0,...f,ref:j,style:{...a.style,[h.startEdge]:m+"%",[h.endEdge]:n+"%"}})});bH.displayName=bG;var bI="SliderThumb",bJ=c.forwardRef((a,d)=>{let e=bs(a.__scopeSlider),[f,g]=c.useState(null),h=(0,E.useComposedRefs)(d,a=>g(a)),i=c.useMemo(()=>f?e().findIndex(a=>a.ref.current===f):-1,[e,f]);return(0,b.jsx)(bK,{...a,ref:h,index:i})}),bK=c.forwardRef((a,d)=>{var e,f,g,h,i;let j,k,{__scopeSlider:l,index:m,name:n,...o}=a,p=bx(bI,l),q=bA(bI,l),[r,s]=c.useState(null),t=(0,E.useComposedRefs)(d,a=>s(a)),u=!r||p.form||!!r.closest("form"),v=(0,bm.useSize)(r),w=p.values[m],x=void 0===w?0:bM(w,p.min,p.max),y=(e=m,(f=p.values.length)>2?`Value ${e+1} of ${f}`:2===f?["Minimum","Maximum"][e]:void 0),z=v?.[q.size],A=z?(g=z,h=x,i=q.direction,k=bN([0,50],[0,j=g/2]),(j-k(h)*i)*i):0;return c.useEffect(()=>{if(r)return p.thumbs.add(r),()=>{p.thumbs.delete(r)}},[r,p.thumbs]),(0,b.jsxs)("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[q.startEdge]:`calc(${x}% + ${A}px)`},children:[(0,b.jsx)(br.ItemSlot,{scope:a.__scopeSlider,children:(0,b.jsx)(N.Primitive.span,{role:"slider","aria-label":a["aria-label"]||y,"aria-valuemin":p.min,"aria-valuenow":w,"aria-valuemax":p.max,"aria-orientation":p.orientation,"data-orientation":p.orientation,"data-disabled":p.disabled?"":void 0,tabIndex:p.disabled?void 0:0,...o,ref:t,style:void 0===w?{display:"none"}:a.style,onFocus:(0,C.composeEventHandlers)(a.onFocus,()=>{p.valueIndexToChangeRef.current=m})})}),u&&(0,b.jsx)(bL,{name:n??(p.name?p.name+(p.values.length>1?"[]":""):void 0),form:p.form,value:w},m)]})});bJ.displayName=bI;var bL=c.forwardRef(({__scopeSlider:a,value:d,...e},f)=>{let g=c.useRef(null),h=(0,E.useComposedRefs)(g,f),i=(0,S.usePrevious)(d);return c.useEffect(()=>{let a=g.current;if(!a)return;let b=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set;if(i!==d&&b){let c=new Event("input",{bubbles:!0});b.call(a,d),a.dispatchEvent(c)}},[i,d]),(0,b.jsx)(N.Primitive.input,{style:{display:"none"},...e,ref:h,defaultValue:d})});function bM(a,b,c){return(0,B.clamp)(100/(c-b)*(a-b),[0,100])}function bN(a,b){return c=>{if(a[0]===a[1]||b[0]===b[1])return b[0];let d=(b[1]-b[0])/(a[1]-a[0]);return b[0]+d*(c-a[0])}}bL.displayName="RadioBubbleInput",a.s(["Range",()=>bH,"Root",()=>by,"Slider",()=>by,"SliderRange",()=>bH,"SliderThumb",()=>bJ,"SliderTrack",()=>bF,"Thumb",()=>bJ,"Track",()=>bF,"createSliderScope",()=>bv],61569);var bO=a.i(61569),bO=bO;function bP({className:a,defaultValue:d,value:e,min:f=0,max:g=100,...h}){let i=c.useMemo(()=>Array.isArray(e)?e:Array.isArray(d)?d:[f,g],[e,d,f,g]);return(0,b.jsxs)(bO.Root,{"data-slot":"slider",defaultValue:d,value:e,min:f,max:g,className:(0,u.cn)("relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",a),...h,children:[(0,b.jsx)(bO.Track,{"data-slot":"slider-track",className:(0,u.cn)("bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"),children:(0,b.jsx)(bO.Range,{"data-slot":"slider-range",className:(0,u.cn)("bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")})}),Array.from({length:i.length},(a,c)=>(0,b.jsx)(bO.Thumb,{"data-slot":"slider-thumb",className:"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"},c))]})}let bQ=[60,120,300,600,900,1800,2700,3600,7200,10800,14400,21600,28800,43200,86400],bR=bQ.length-1;function bS(a){let b=0,c=Math.abs(a-bQ[0]);for(let d=1;d<bQ.length;d++){let e=Math.abs(a-bQ[d]);e<c&&(c=e,b=d)}return b}function bT({id:a,testId:d,value:e,onChange:f,onBlur:g,defaultSeconds:h=1800}){var i;let j,k,l=(""===e?h:parseInt(e,10))||h,[m,n]=(0,c.useState)(()=>bS(l)),o=bS(l);o!==m&&bQ[m]!==l&&n(o);let p=(0,c.useCallback)(([a])=>{n(a),f(String(bQ[a]))},[f]);return(0,b.jsxs)("div",{className:"flex w-55 items-center gap-2",children:[(0,b.jsx)(bP,{id:a,"data-testid":d,min:0,max:bR,step:1,value:[m],onValueChange:p,onValueCommit:()=>g(),className:"min-w-0 flex-1"}),(0,b.jsx)("span",{className:"text-muted-foreground shrink-0 text-right text-xs tabular-nums",children:(j=Math.floor((i=bQ[m])/3600),k=Math.round(i%3600/60),0===j?`${k}m`:0===k?`${j}h`:`${j}h ${k}m`)})]})}let bU=[{value:ba.AgentAuthMethod.Session,label:"Session"},{value:ba.AgentAuthMethod.Token,label:"Token"}],bV=[{value:ba.EditorType.VsCode,label:"VS Code"},{value:ba.EditorType.Cursor,label:"Cursor"},{value:ba.EditorType.Windsurf,label:"Windsurf"},{value:ba.EditorType.Zed,label:"Zed"},{value:ba.EditorType.Antigravity,label:"Antigravity"}],bW=[{value:"bash",label:"Bash"},{value:"zsh",label:"Zsh"},{value:"fish",label:"Fish"}],bX=[{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:"stage-timeouts",label:"Timeouts",icon:s},{id:"notifications",label:"Notifications",icon:l},{id:"feature-flags",label:"Flags",icon:m},{id:"database",label:"Database",icon:n}];function bY({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)(v.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 bZ({label:a,description:c,id:d,testId:e,checked:f,onChange:g,disabled:h}){return(0,b.jsx)(bY,{label:a,description:c,htmlFor:d,children:(0,b.jsx)(y.Switch,{id:d,"data-testid":e,checked:f,onCheckedChange:g,disabled:h,className:(0,u.cn)("cursor-pointer",h&&"cursor-not-allowed opacity-50")})})}function b$({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 b_({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 b0({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 b1({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 b2({settings:a,shepHome:e,dbFileSize:o,availableTerminals:p}){let{showSaving:q,showSaved:v,save:y}=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 a9(a);b.success||t.toast.error(b.error??"Failed to save settings")})},[b])}}(),A=a.featureFlags??{skills:!1,envDeploy:!1,debug:!1},[B,C]=(0,c.useState)(a.agent.type),D=a.agent.authMethod,[E,F]=(0,c.useState)(a.agent.token??""),[G,H]=(0,c.useState)(!1),[I,J]=(0,c.useState)(a.environment.defaultEditor),[K,L]=(0,c.useState)(a.environment.shellPreference),[M,N]=(0,c.useState)(a.environment.terminalPreference??ba.TerminalType.System),O=p?p.filter(a=>a.available):[{id:ba.TerminalType.System,name:"System Terminal",available:!0}],[P,Q]=(0,c.useState)(a.workflow.openPrOnImplementationComplete),[R,S]=(0,c.useState)(a.workflow.approvalGateDefaults.pushOnImplementationComplete),[T,U]=(0,c.useState)(a.workflow.approvalGateDefaults.allowPrd),[V,W]=(0,c.useState)(a.workflow.approvalGateDefaults.allowPlan),[X,Y]=(0,c.useState)(a.workflow.approvalGateDefaults.allowMerge),[Z,$]=(0,c.useState)(a.workflow.enableEvidence),[_,aa]=(0,c.useState)(a.workflow.commitEvidence),[ab,ac]=(0,c.useState)(!1!==a.workflow.ciWatchEnabled),[ad,ae]=(0,c.useState)(null!=a.workflow.ciMaxFixAttempts?String(a.workflow.ciMaxFixAttempts):""),[af,ag]=(0,c.useState)(null!=a.workflow.ciWatchTimeoutMs?String(Math.round(a.workflow.ciWatchTimeoutMs/1e3)):""),[ah,ai]=(0,c.useState)(null!=a.workflow.ciLogMaxChars?String(a.workflow.ciLogMaxChars):""),[aj,ak]=(0,c.useState)(null!=a.workflow.ciWatchPollIntervalSeconds?String(a.workflow.ciWatchPollIntervalSeconds):""),al=a.workflow.stageTimeouts,[am,an]=(0,c.useState)(String(Math.round((al?.analyzeMs??18e5)/1e3))),[ao,ap]=(0,c.useState)(String(Math.round((al?.requirementsMs??18e5)/1e3))),[aq,ar]=(0,c.useState)(String(Math.round((al?.researchMs??18e5)/1e3))),[as,at]=(0,c.useState)(String(Math.round((al?.planMs??18e5)/1e3))),[au,av]=(0,c.useState)(String(Math.round((al?.implementMs??18e5)/1e3))),[aw,ax]=(0,c.useState)(String(Math.round((al?.mergeMs??18e5)/1e3))),ay=a.workflow.analyzeRepoTimeouts,[az,aA]=(0,c.useState)(String(Math.round((ay?.analyzeMs??6e5)/1e3))),[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)({...A}),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):"",aO=null!=a.workflow.ciWatchPollIntervalSeconds?String(a.workflow.ciWatchPollIntervalSeconds):"",aP=al?.analyzeMs!=null?String(Math.round(al.analyzeMs/1e3)):"",aQ=al?.requirementsMs!=null?String(Math.round(al.requirementsMs/1e3)):"",aR=al?.researchMs!=null?String(Math.round(al.researchMs/1e3)):"",aS=al?.planMs!=null?String(Math.round(al.planMs/1e3)):"",aT=al?.implementMs!=null?String(Math.round(al.implementMs/1e3)):"",aU=al?.mergeMs!=null?String(Math.round(al.mergeMs/1e3)):"",aV=ay?.analyzeMs!=null?String(Math.round(ay.analyzeMs/1e3)):"";function aW(a){if(""===a)return;let b=parseInt(a,10);return Number.isNaN(b)||b<=0?void 0:b}function aX(a){if(void 0===a)return;let b=aW(a);return null!=b?1e3*b:void 0}function aY(a={}){let b=aW(a.ciTimeout??af);return{workflow:{openPrOnImplementationComplete:a.openPr??P,approvalGateDefaults:{pushOnImplementationComplete:a.pushOnComplete??R,allowPrd:a.allowPrd??T,allowPlan:a.allowPlan??V,allowMerge:a.allowMerge??X},enableEvidence:a.enableEvidence??Z,commitEvidence:a.commitEvidence??_,ciWatchEnabled:a.ciWatchEnabled??ab,ciMaxFixAttempts:aW(a.ciMaxFix??ad),ciWatchTimeoutMs:null!=b?1e3*b:void 0,ciLogMaxChars:aW(a.ciLogMax??ah),ciWatchPollIntervalSeconds:aW(a.ciPollInterval??aj),stageTimeouts:{analyzeMs:aX(a.analyzeTimeout??am),requirementsMs:aX(a.requirementsTimeout??ao),researchMs:aX(a.researchTimeout??aq),planMs:aX(a.planTimeout??as),implementMs:aX(a.implementTimeout??au),mergeMs:aX(a.mergeTimeout??aw)},analyzeRepoTimeouts:{analyzeMs:aX(a.analyzeRepoTimeout??az)}}}}function aZ(a={}){return{notifications:{inApp:{enabled:a.inApp??aB},browser:{enabled:a.browser??aD},desktop:{enabled:a.desktop??aF},events:a.events??aH}}}let[a$,a_]=(0,c.useState)("agent");(0,c.useEffect)(()=>{let a=bX.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&&a_(b.target.id.replace("section-",""))},{rootMargin:"-65px 0px -60% 0px",threshold:0});for(let c of a)b.observe(c);return()=>b.disconnect()},[]);let a0=(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,u.cn)("text-muted-foreground absolute inset-0 flex items-center text-xs transition-opacity duration-300",q?"opacity-100":"opacity-0"),children:"Saving..."}),(0,b.jsxs)("span",{className:(0,u.cn)("absolute inset-0 flex items-center gap-1 text-xs text-green-600 transition-opacity duration-300",v&&!q?"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:bX.map(a=>{let c=a.icon,d=a$===a.id;return(0,b.jsxs)("button",{type:"button",onClick:()=>a0(a.id),className:(0,u.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)(b$,{icon:h.Bot,title:"Agent",description:"AI coding agent and authentication",testId:"agent-settings-section",children:[(0,b.jsx)(bY,{label:"Agent & Model",description:"Provider and model for all operations",htmlFor:"agent-model-picker",children:(0,b.jsx)(bl.AgentModelPicker,{initialAgentType:B,initialModel:a.models.default,mode:"settings",onAgentModelChange:a=>C(a),className:"w-55"})}),(0,b.jsx)(bY,{label:"Authentication",description:"How the agent authenticates",htmlFor:"auth-method",children:(0,b.jsx)(z.TooltipProvider,{children:(0,b.jsxs)(z.Tooltip,{children:[(0,b.jsx)(z.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsxs)(a1,{value:D,disabled:!0,children:[(0,b.jsx)(a3,{id:"auth-method","data-testid":"auth-method-select",className:"w-55 cursor-not-allowed text-xs opacity-60",children:(0,b.jsx)(a2,{})}),(0,b.jsx)(a6,{children:bU.map(a=>(0,b.jsx)(a7,{value:a.value,children:a.label},a.value))})]})})}),(0,b.jsx)(z.TooltipContent,{children:"Coming soon"})]})})}),D===ba.AgentAuthMethod.Token&&(0,b.jsx)(bY,{label:"API Token",htmlFor:"agent-token",children:(0,b.jsxs)("div",{className:"relative w-45",children:[(0,b.jsx)(w.Input,{id:"agent-token","data-testid":"agent-token-input",type:G?"text":"password",value:E,onChange:a=>F(a.target.value),onBlur:()=>{E!==(a.agent.token??"")&&y(function(a={}){let b={type:B,authMethod:D,...a},c={type:b.type,authMethod:b.authMethod};return b.authMethod===ba.AgentAuthMethod.Token&&(c.token=a.token??E),{agent:c}}({token:E}))},placeholder:"Enter token",className:"pr-8"}),(0,b.jsx)(x.Button,{type:"button",variant:"ghost",size:"sm",className:"absolute top-0 right-0 h-full px-2 hover:bg-transparent",onClick:()=>H(!G),"data-testid":"toggle-token-visibility","aria-label":G?"Hide token":"Show token",children:G?(0,b.jsx)(f,{className:"h-3 w-3"}):(0,b.jsx)(d.Eye,{className:"h-3 w-3"})})]})})]}),(0,b.jsx)(b1,{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.jsxs)(b$,{icon:i.Terminal,title:"Environment",description:"Editor, shell, and terminal preferences",testId:"environment-settings-section",children:[(0,b.jsx)(bY,{label:"Default Editor",description:"Editor launched for file operations",htmlFor:"default-editor",children:(0,b.jsxs)(a1,{value:I,onValueChange:a=>{J(a),y({environment:{defaultEditor:a,shellPreference:K,terminalPreference:M}})},children:[(0,b.jsx)(a3,{id:"default-editor","data-testid":"editor-select",className:"w-55 cursor-pointer text-xs",children:(0,b.jsx)(a2,{})}),(0,b.jsx)(a6,{children:bV.map(a=>{var c;let d=(c=a.value)&&c in bk?bk[c]:be;return(0,b.jsx)(a7,{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)(bY,{label:"Shell",description:"Default shell for generated scripts",htmlFor:"shell-preference",children:(0,b.jsxs)(a1,{value:K,onValueChange:a=>{L(a),y({environment:{defaultEditor:I,shellPreference:a,terminalPreference:M}})},children:[(0,b.jsx)(a3,{id:"shell-preference","data-testid":"shell-select",className:"w-55 cursor-pointer text-xs",children:(0,b.jsx)(a2,{})}),(0,b.jsx)(a6,{children:bW.map(a=>(0,b.jsx)(a7,{value:a.value,children:a.label},a.value))})]})}),(0,b.jsx)(bY,{label:"Terminal",description:"Terminal emulator for shell sessions",htmlFor:"terminal-preference",children:(0,b.jsxs)(a1,{value:M,onValueChange:a=>{N(a),y({environment:{defaultEditor:I,shellPreference:K,terminalPreference:a}})},children:[(0,b.jsx)(a3,{id:"terminal-preference","data-testid":"terminal-select",className:"w-55 cursor-pointer text-xs",children:(0,b.jsx)(a2,{})}),(0,b.jsx)(a6,{children:O.map(a=>(0,b.jsx)(a7,{value:a.id,children:a.name},a.id))})]})})]}),(0,b.jsx)(b1,{links:[{label:"Configuration guide",href:"https://github.com/shep-ai/cli/blob/main/docs/guides/configuration.md"}],children:"Your preferred editor opens files for review. The shell setting controls generated scripts. The terminal emulator is launched when opening shell sessions from the web UI."})]}),(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)(b$,{icon:j.GitBranch,title:"Workflow",description:"Automation behavior after implementation",testId:"workflow-settings-section",children:[(0,b.jsx)(b0,{children:"Approve"}),(0,b.jsx)(bZ,{label:"Auto-approve PRD",description:"Skip manual review of requirements",id:"allow-prd",testId:"switch-allow-prd",checked:T,onChange:a=>{U(a),y(aY({allowPrd:a}))}}),(0,b.jsx)(bZ,{label:"Auto-approve Plan",description:"Skip manual review of implementation plan",id:"allow-plan",testId:"switch-allow-plan",checked:V,onChange:a=>{W(a),y(aY({allowPlan:a}))}}),(0,b.jsx)(bZ,{label:"Auto-approve Merge",description:"Merge without manual review",id:"allow-merge",testId:"switch-allow-merge",checked:X,onChange:a=>{Y(a),y(aY({allowMerge:a}))}}),(0,b.jsx)(b0,{children:"Evidence"}),(0,b.jsx)(bZ,{label:"Collect evidence",description:"Capture screenshots and artifacts after implementation",id:"enable-evidence",testId:"switch-enable-evidence",checked:Z,onChange:a=>{$(a),a?y(aY({enableEvidence:a})):(aa(!1),y(aY({enableEvidence:a,commitEvidence:!1})))}}),(0,b.jsx)(bZ,{label:"Add evidence to PR",description:"Include evidence in the pull request body",id:"commit-evidence",testId:"switch-commit-evidence",checked:_,disabled:!Z||!P,onChange:a=>{aa(a),y(aY({commitEvidence:a}))}}),(0,b.jsx)(b0,{children:"Git"}),(0,b.jsx)(bZ,{label:"Push on complete",description:"Push to remote when implementation finishes",id:"push-on-complete",testId:"switch-push-on-complete",checked:R,onChange:a=>{S(a),y(aY({pushOnComplete:a}))}}),(0,b.jsx)(bZ,{label:"Open PR on complete",description:"Create a pull request when done",id:"open-pr",testId:"switch-open-pr",checked:P,onChange:a=>{Q(a),a?y(aY({openPr:a})):(aa(!1),y(aY({openPr:a,commitEvidence:!1})))}}),(0,b.jsx)(bZ,{label:"Watch CI after push",description:"Monitor CI and auto-fix failures. Disable to avoid rate limits.",id:"ci-watch-enabled",testId:"switch-ci-watch-enabled",checked:ab,onChange:a=>{ac(a),y(aY({ciWatchEnabled:a}))}})]}),(0,b.jsx)(b1,{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)(b$,{icon:k,title:"Continuous Integration",description:"Limits and timeouts for CI monitoring",testId:"ci-settings-section",children:[(0,b.jsx)(bY,{label:"Max fix attempts",description:"Agent retries on failing CI",htmlFor:"ci-max-fix",children:(0,b.jsx)(b_,{id:"ci-max-fix",testId:"ci-max-fix-input",placeholder:"3",value:ad,onChange:ae,onBlur:()=>{ad!==aL&&y(aY({ciMaxFix:ad}))},min:1,max:10})}),(0,b.jsx)(bY,{label:"Watch timeout",description:"Max wait for CI completion",htmlFor:"ci-timeout",children:(0,b.jsx)(b_,{id:"ci-timeout",testId:"ci-timeout-input",placeholder:"300",value:af,onChange:ag,onBlur:()=>{af!==aM&&y(aY({ciTimeout:af}))},min:30,step:30,suffix:"sec"})}),(0,b.jsx)(bY,{label:"Max log size",description:"Truncate CI logs beyond this limit",htmlFor:"ci-log-max",children:(0,b.jsx)(b_,{id:"ci-log-max",testId:"ci-log-max-input",placeholder:"50000",value:ah,onChange:ai,onBlur:()=>{ah!==aN&&y(aY({ciLogMax:ah}))},min:1e3,step:5e3,suffix:"chars"})}),(0,b.jsx)(bY,{label:"Poll interval",description:"How often to check GitHub for CI status updates",htmlFor:"ci-poll-interval",children:(0,b.jsx)(b_,{id:"ci-poll-interval",testId:"ci-poll-interval-input",placeholder:"30",value:aj,onChange:ak,onBlur:()=>{aj!==aO&&y(aY({ciPollInterval:aj}))},min:5,step:5,suffix:"sec"})})]}),(0,b.jsx)(b1,{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-stage-timeouts",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,b.jsxs)(b$,{icon:s,title:"Stage Timeouts",description:"Maximum execution time per agent stage",testId:"stage-timeouts-settings-section",children:[(0,b.jsx)(b0,{children:"Feature Agent"}),(0,b.jsx)(bY,{label:"Analyze",description:"Repository analysis timeout",htmlFor:"timeout-analyze",children:(0,b.jsx)(bT,{id:"timeout-analyze",testId:"timeout-analyze-input",value:am,onChange:an,onBlur:()=>{am!==aP&&y(aY({analyzeTimeout:am}))},defaultSeconds:1800})}),(0,b.jsx)(bY,{label:"Requirements",description:"Requirements gathering timeout",htmlFor:"timeout-requirements",children:(0,b.jsx)(bT,{id:"timeout-requirements",testId:"timeout-requirements-input",value:ao,onChange:ap,onBlur:()=>{ao!==aQ&&y(aY({requirementsTimeout:ao}))},defaultSeconds:1800})}),(0,b.jsx)(bY,{label:"Research",description:"Technical research timeout",htmlFor:"timeout-research",children:(0,b.jsx)(bT,{id:"timeout-research",testId:"timeout-research-input",value:aq,onChange:ar,onBlur:()=>{aq!==aR&&y(aY({researchTimeout:aq}))},defaultSeconds:1800})}),(0,b.jsx)(bY,{label:"Plan",description:"Implementation planning timeout",htmlFor:"timeout-plan",children:(0,b.jsx)(bT,{id:"timeout-plan",testId:"timeout-plan-input",value:as,onChange:at,onBlur:()=>{as!==aS&&y(aY({planTimeout:as}))},defaultSeconds:1800})}),(0,b.jsx)(bY,{label:"Implement",description:"Code implementation timeout",htmlFor:"timeout-implement",children:(0,b.jsx)(bT,{id:"timeout-implement",testId:"timeout-implement-input",value:au,onChange:av,onBlur:()=>{au!==aT&&y(aY({implementTimeout:au}))},defaultSeconds:1800})}),(0,b.jsx)(bY,{label:"Merge",description:"PR creation and merge timeout",htmlFor:"timeout-merge",children:(0,b.jsx)(bT,{id:"timeout-merge",testId:"timeout-merge-input",value:aw,onChange:ax,onBlur:()=>{aw!==aU&&y(aY({mergeTimeout:aw}))},defaultSeconds:1800})}),(0,b.jsx)(b0,{children:"Analyze Repository Agent"}),(0,b.jsx)(bY,{label:"Analyze",description:"Repository analysis timeout",htmlFor:"timeout-analyze-repo",children:(0,b.jsx)(bT,{id:"timeout-analyze-repo",testId:"timeout-analyze-repo-input",value:az,onChange:aA,onBlur:()=>{az!==aV&&y(aY({analyzeRepoTimeout:az}))},defaultSeconds:600})})]}),(0,b.jsx)(b1,{children:"Each agent has independently configurable stage timeouts. When a stage exceeds its timeout, the agent is terminated. Longer timeouts are useful for complex implementations. Feature agent defaults to 30 minutes per stage. Analyze repository agent defaults to 10 minutes."})]}),(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)(b$,{icon:l,title:"Notifications",description:"How and when you get notified",testId:"notification-settings-section",children:[(0,b.jsx)(b0,{children:"Channels"}),(0,b.jsx)(bZ,{label:"In-app",description:"Notifications inside the Shep UI",id:"notif-in-app",testId:"switch-in-app",checked:aB,onChange:a=>{aC(a),y(aZ({inApp:a}))}}),(0,b.jsx)(bZ,{label:"Browser",description:"Push notifications via the browser",id:"notif-browser",testId:"switch-browser",checked:aD,onChange:a=>{aE(a),y(aZ({browser:a}))}}),(0,b.jsx)(bZ,{label:"Desktop",description:"Native OS notifications",id:"notif-desktop",testId:"switch-desktop",checked:aF,onChange:a=>{aG(a),y(aZ({desktop:a}))}}),(0,b.jsx)(b0,{children:"Agent Events"}),(0,b.jsx)(bZ,{label:"Agent started",id:"notif-event-agentStarted",testId:"switch-event-agentStarted",checked:aH.agentStarted,onChange:a=>{let b={...aH,agentStarted:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(bZ,{label:"Phase completed",id:"notif-event-phaseCompleted",testId:"switch-event-phaseCompleted",checked:aH.phaseCompleted,onChange:a=>{let b={...aH,phaseCompleted:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(bZ,{label:"Waiting approval",id:"notif-event-waitingApproval",testId:"switch-event-waitingApproval",checked:aH.waitingApproval,onChange:a=>{let b={...aH,waitingApproval:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(bZ,{label:"Agent completed",id:"notif-event-agentCompleted",testId:"switch-event-agentCompleted",checked:aH.agentCompleted,onChange:a=>{let b={...aH,agentCompleted:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(bZ,{label:"Agent failed",id:"notif-event-agentFailed",testId:"switch-event-agentFailed",checked:aH.agentFailed,onChange:a=>{let b={...aH,agentFailed:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(b0,{children:"Pull Request Events"}),(0,b.jsx)(bZ,{label:"PR merged",id:"notif-event-prMerged",testId:"switch-event-prMerged",checked:aH.prMerged,onChange:a=>{let b={...aH,prMerged:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(bZ,{label:"PR closed",id:"notif-event-prClosed",testId:"switch-event-prClosed",checked:aH.prClosed,onChange:a=>{let b={...aH,prClosed:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(bZ,{label:"PR checks passed",id:"notif-event-prChecksPassed",testId:"switch-event-prChecksPassed",checked:aH.prChecksPassed,onChange:a=>{let b={...aH,prChecksPassed:a};aI(b),y(aZ({events:b}))}}),(0,b.jsx)(bZ,{label:"PR checks failed",id:"notif-event-prChecksFailed",testId:"switch-event-prChecksFailed",checked:aH.prChecksFailed,onChange:a=>{let b={...aH,prChecksFailed:a};aI(b),y(aZ({events:b}))}})]}),(0,b.jsx)(b1,{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)(b$,{icon:m,title:"Feature Flags",description:"Enable or disable experimental features",badge:"Experimental",testId:"feature-flags-settings-section",children:[(0,b.jsx)(bZ,{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),y({featureFlags:b})}}),(0,b.jsx)(bZ,{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),y({featureFlags:b})}}),(0,b.jsx)(bZ,{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),y({featureFlags:b})}})]}),(0,b.jsx)(b1,{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)(b$,{icon:n,title:"Database",description:"Local storage information",testId:"database-settings-section",children:[(0,b.jsx)(bY,{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)(bY,{label:"Size",children:(0,b.jsx)("span",{className:"text-muted-foreground text-xs","data-testid":"db-file-size",children:o})})]}),(0,b.jsx)(b1,{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",()=>b2],79020)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map
|