@shepai/cli 1.180.0 → 1.181.0-pr512.ba01d33
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/apis/json-schema/MessagingCommand.yaml +28 -0
- package/apis/json-schema/MessagingCommandType.yaml +17 -0
- package/apis/json-schema/MessagingConfig.yaml +40 -0
- package/apis/json-schema/MessagingFrameType.yaml +8 -0
- package/apis/json-schema/MessagingNotification.yaml +22 -0
- package/apis/json-schema/MessagingPlatform.yaml +7 -0
- package/apis/json-schema/MessagingPlatformConfig.yaml +38 -0
- package/apis/json-schema/Settings.yaml +3 -0
- package/dist/packages/core/src/application/ports/output/services/gateway-client.interface.d.ts +58 -0
- package/dist/packages/core/src/application/ports/output/services/gateway-client.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/gateway-client.interface.js +10 -0
- package/dist/packages/core/src/application/ports/output/services/message-sender.interface.d.ts +18 -0
- package/dist/packages/core/src/application/ports/output/services/message-sender.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/message-sender.interface.js +9 -0
- package/dist/packages/core/src/application/ports/output/services/messaging-service.interface.d.ts +34 -0
- package/dist/packages/core/src/application/ports/output/services/messaging-service.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/messaging-service.interface.js +12 -0
- package/dist/packages/core/src/application/ports/output/services/telegram-client.interface.d.ts +19 -0
- package/dist/packages/core/src/application/ports/output/services/telegram-client.interface.d.ts.map +1 -0
- package/dist/packages/core/src/application/ports/output/services/telegram-client.interface.js +8 -0
- package/dist/packages/core/src/application/use-cases/messaging/begin-pairing.use-case.d.ts +46 -0
- package/dist/packages/core/src/application/use-cases/messaging/begin-pairing.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/messaging/begin-pairing.use-case.js +148 -0
- package/dist/packages/core/src/application/use-cases/messaging/confirm-pairing.use-case.d.ts +19 -0
- package/dist/packages/core/src/application/use-cases/messaging/confirm-pairing.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/messaging/confirm-pairing.use-case.js +63 -0
- package/dist/packages/core/src/application/use-cases/messaging/disconnect-messaging.use-case.d.ts +19 -0
- package/dist/packages/core/src/application/use-cases/messaging/disconnect-messaging.use-case.d.ts.map +1 -0
- package/dist/packages/core/src/application/use-cases/messaging/disconnect-messaging.use-case.js +65 -0
- package/dist/packages/core/src/domain/generated/output.d.ts +155 -0
- package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
- package/dist/packages/core/src/domain/generated/output.js +26 -0
- package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/container.js +117 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts +24 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/settings.mapper.js +117 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-messaging-remote-control.d.ts +22 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-messaging-remote-control.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations/056-add-messaging-remote-control.js +62 -0
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/repositories/sqlite-settings.repository.js +43 -3
- package/dist/packages/core/src/infrastructure/services/messaging/chat-relay.d.ts +45 -0
- package/dist/packages/core/src/infrastructure/services/messaging/chat-relay.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/messaging/chat-relay.js +100 -0
- package/dist/packages/core/src/infrastructure/services/messaging/command-executor.d.ts +53 -0
- package/dist/packages/core/src/infrastructure/services/messaging/command-executor.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/messaging/command-executor.js +200 -0
- package/dist/packages/core/src/infrastructure/services/messaging/content-sanitizer.d.ts +23 -0
- package/dist/packages/core/src/infrastructure/services/messaging/content-sanitizer.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/messaging/content-sanitizer.js +39 -0
- package/dist/packages/core/src/infrastructure/services/messaging/http-gateway.client.d.ts +19 -0
- package/dist/packages/core/src/infrastructure/services/messaging/http-gateway.client.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/messaging/http-gateway.client.js +124 -0
- package/dist/packages/core/src/infrastructure/services/messaging/http-telegram.client.d.ts +18 -0
- package/dist/packages/core/src/infrastructure/services/messaging/http-telegram.client.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/messaging/http-telegram.client.js +60 -0
- package/dist/packages/core/src/infrastructure/services/messaging/messaging-tunnel.adapter.d.ts +68 -0
- package/dist/packages/core/src/infrastructure/services/messaging/messaging-tunnel.adapter.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/messaging/messaging-tunnel.adapter.js +262 -0
- package/dist/packages/core/src/infrastructure/services/messaging/messaging.service.d.ts +78 -0
- package/dist/packages/core/src/infrastructure/services/messaging/messaging.service.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/messaging/messaging.service.js +279 -0
- package/dist/packages/core/src/infrastructure/services/messaging/notification-emitter.d.ts +33 -0
- package/dist/packages/core/src/infrastructure/services/messaging/notification-emitter.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/messaging/notification-emitter.js +79 -0
- package/dist/packages/core/src/infrastructure/services/messaging/stub-gateway.client.d.ts +12 -0
- package/dist/packages/core/src/infrastructure/services/messaging/stub-gateway.client.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/messaging/stub-gateway.client.js +26 -0
- package/dist/packages/core/src/infrastructure/services/messaging/telegram-message-sender.d.ts +26 -0
- package/dist/packages/core/src/infrastructure/services/messaging/telegram-message-sender.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/messaging/telegram-message-sender.js +49 -0
- package/dist/packages/core/src/infrastructure/services/messaging/telegram-webhook.parser.d.ts +28 -0
- package/dist/packages/core/src/infrastructure/services/messaging/telegram-webhook.parser.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/messaging/telegram-webhook.parser.js +45 -0
- package/dist/packages/core/src/infrastructure/services/messaging/tunnel-protocol.d.ts +102 -0
- package/dist/packages/core/src/infrastructure/services/messaging/tunnel-protocol.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/messaging/tunnel-protocol.js +16 -0
- package/dist/packages/core/src/infrastructure/services/messaging/whatsapp-webhook.parser.d.ts +39 -0
- package/dist/packages/core/src/infrastructure/services/messaging/whatsapp-webhook.parser.d.ts.map +1 -0
- package/dist/packages/core/src/infrastructure/services/messaging/whatsapp-webhook.parser.js +56 -0
- package/dist/src/presentation/cli/commands/_serve.command.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/_serve.command.js +6 -0
- package/dist/src/presentation/cli/commands/app/del.command.d.ts +14 -0
- package/dist/src/presentation/cli/commands/app/del.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/app/del.command.js +58 -0
- package/dist/src/presentation/cli/commands/app/index.d.ts +20 -0
- package/dist/src/presentation/cli/commands/app/index.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/app/index.js +33 -0
- package/dist/src/presentation/cli/commands/app/ls.command.d.ts +11 -0
- package/dist/src/presentation/cli/commands/app/ls.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/app/ls.command.js +74 -0
- package/dist/src/presentation/cli/commands/app/new.command.d.ts +17 -0
- package/dist/src/presentation/cli/commands/app/new.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/app/new.command.js +58 -0
- package/dist/src/presentation/cli/commands/app/resolve-application.d.ts +10 -0
- package/dist/src/presentation/cli/commands/app/resolve-application.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/app/resolve-application.js +33 -0
- package/dist/src/presentation/cli/commands/app/show.command.d.ts +11 -0
- package/dist/src/presentation/cli/commands/app/show.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/app/show.command.js +95 -0
- package/dist/src/presentation/cli/commands/settings/index.d.ts.map +1 -1
- package/dist/src/presentation/cli/commands/settings/index.js +3 -1
- package/dist/src/presentation/cli/commands/settings/messaging.command.d.ts +17 -0
- package/dist/src/presentation/cli/commands/settings/messaging.command.d.ts.map +1 -0
- package/dist/src/presentation/cli/commands/settings/messaging.command.js +187 -0
- package/dist/src/presentation/cli/index.js +2 -0
- package/dist/src/presentation/web/app/actions/messaging.d.ts +29 -0
- package/dist/src/presentation/web/app/actions/messaging.d.ts.map +1 -0
- package/dist/src/presentation/web/app/actions/messaging.js +55 -0
- package/dist/src/presentation/web/components/features/settings/messaging-settings-section.d.ts +6 -0
- package/dist/src/presentation/web/components/features/settings/messaging-settings-section.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/messaging-settings-section.js +206 -0
- package/dist/src/presentation/web/components/features/settings/messaging-settings-section.stories.d.ts +17 -0
- package/dist/src/presentation/web/components/features/settings/messaging-settings-section.stories.d.ts.map +1 -0
- package/dist/src/presentation/web/components/features/settings/messaging-settings-section.stories.js +55 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.js +9 -2
- package/dist/src/presentation/web/dev-server.js +27 -0
- package/dist/translations/ar/cli.json +63 -0
- package/dist/translations/ar/web.json +2 -1
- package/dist/translations/de/cli.json +63 -0
- package/dist/translations/de/web.json +2 -1
- package/dist/translations/en/cli.json +63 -0
- package/dist/translations/en/web.json +13 -12
- package/dist/translations/es/cli.json +63 -0
- package/dist/translations/es/web.json +2 -1
- package/dist/translations/fr/cli.json +63 -0
- package/dist/translations/fr/web.json +2 -1
- package/dist/translations/he/cli.json +63 -0
- package/dist/translations/he/web.json +2 -1
- package/dist/translations/pt/cli.json +63 -0
- package/dist/translations/pt/web.json +2 -1
- package/dist/translations/ru/cli.json +63 -0
- package/dist/translations/ru/web.json +2 -1
- package/dist/translations/uk/cli.json +63 -0
- package/dist/translations/uk/web.json +2 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +3 -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 +3 -3
- package/web/.next/required-server-files.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +32 -32
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +33 -33
- 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 +41 -41
- 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 +41 -41
- 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]/[tab]/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +31 -31
- 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)/chat/page/server-reference-manifest.json +30 -30
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +33 -33
- 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 +41 -41
- 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 +41 -41
- 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 +30 -30
- 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]/[tab]/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +31 -31
- 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 +7 -7
- 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/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
- package/web/.next/server/app/application/[id]/page/server-reference-manifest.json +15 -15
- package/web/.next/server/app/application/[id]/page.js.nft.json +1 -1
- package/web/.next/server/app/application/[id]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/features/page/server-reference-manifest.json +7 -7
- package/web/.next/server/app/features/page.js.nft.json +1 -1
- package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +65 -20
- package/web/.next/server/app/settings/page.js +1 -1
- 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 +15 -15
- 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 +13 -13
- 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 +7 -7
- 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/[root-of-the-server]__b2a4bfcc._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__b2a4bfcc._.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__cd67a84c._.js.map +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/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{7f428_lucide-react_dist_esm_icons_5da25833._.js → 7f428_lucide-react_dist_esm_icons_469d51b7._.js} +2 -2
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_469d51b7._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__013a0318._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__17dadd08._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1925bef0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__1a9687c4._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__24756fa9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__42d066e1._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__42d066e1._.js.map +1 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4ee8be85._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__70986695._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a5ea76a6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__dd3e834e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__e265da61._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f3ca7bea._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__bb391c45._.js → [root-of-the-server]__f4f07ee6._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f4f07ee6._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0277d3b5._.js +1 -1
- package/web/.next/server/chunks/ssr/_0277d3b5._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_d44d091a._.js → _1a4c514f._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_d44d091a._.js.map → _1a4c514f._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_33bab16e._.js +3 -0
- package/web/.next/server/chunks/ssr/{_b8e8b690._.js.map → _33bab16e._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_45496654._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
- package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_8caadb9a._.js → _5d41b1f7._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_8caadb9a._.js.map → _5d41b1f7._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_708a9069._.js +3 -0
- package/web/.next/server/chunks/ssr/_708a9069._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_63fc4647._.js → _81197d1b._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_63fc4647._.js.map → _81197d1b._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{_295fffde._.js → _86bb5eb1._.js} +6 -2
- package/web/.next/server/chunks/ssr/_86bb5eb1._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_946a7fc6._.js +1 -1
- package/web/.next/server/chunks/ssr/_946a7fc6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_bad61758._.js +3 -0
- package/web/.next/server/chunks/ssr/_bad61758._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_36489f2b._.js → _ce70bfa0._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_36489f2b._.js.map → _ce70bfa0._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_d7d82308._.js +3 -0
- package/web/.next/server/chunks/ssr/_d7d82308._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_dd852eae._.js +3 -0
- package/web/.next/server/chunks/ssr/_dd852eae._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_eff1b518._.js +1 -1
- package/web/.next/server/chunks/ssr/_eff1b518._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f227429a._.js +1 -1
- package/web/.next/server/chunks/ssr/_f227429a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f6b812ec._.js +9 -0
- package/web/.next/server/chunks/ssr/_f6b812ec._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_f86fc1bf._.js +1 -1
- package/web/.next/server/chunks/ssr/_f86fc1bf._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_f8c55130._.js +1 -1
- 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/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
- package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_64cc95e9._.js +3 -0
- package/web/.next/server/chunks/ssr/node_modules__pnpm_64cc95e9._.js.map +1 -0
- package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_36f2bc45._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_486908de._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_5c3596bc._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6159fef8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6326f81e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_6b2fdcd8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_74703c9f._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_a8056dac._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_ad42cc73._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +3 -3
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_b00bfb08._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_common_base-drawer_base-drawer_tsx_97dfbbc8._.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_components_features_skills_8a174cac._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_db9fa0c2._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f1edcf5e._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_f9436804._.js.map +1 -1
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
- package/web/.next/server/chunks/ssr/translations_23dd5e7e._.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 +109 -64
- package/web/.next/static/chunks/0239d68df2738a2a.js +1 -0
- package/web/.next/static/chunks/{e2f9e224d1fa1faa.js → 05d641009a42e94b.js} +1 -1
- package/web/.next/static/chunks/{26e2ca76ab6c38b4.js → 0d04391861f2a381.js} +1 -1
- package/web/.next/static/chunks/{f28aef9cf5107c4b.js → 151d16c2c65a4356.js} +1 -1
- package/web/.next/static/chunks/19008d82be3a09a5.js +5 -0
- package/web/.next/static/chunks/{893a2a76546c66a7.js → 193d8b761fec697e.js} +1 -1
- package/web/.next/static/chunks/2bad6607c1e0f153.js +7 -0
- package/web/.next/static/chunks/{7c3fe3c694874dea.js → 32940aa08b947f66.js} +1 -1
- package/web/.next/static/chunks/368809962c4cd597.js +1 -0
- package/web/.next/static/chunks/{dfdcccf73de56960.js → 475e5bd4e8bafc6f.js} +1 -1
- package/web/.next/static/chunks/{8746807722de67a8.js → 55e59f912fff1858.js} +1 -1
- package/web/.next/static/chunks/{490667b2a9bb58e2.js → 66d72ca561bb91ca.js} +1 -1
- package/web/.next/static/chunks/6da04daaac881f27.js +1 -0
- package/web/.next/static/chunks/{2fe20598e1b4793a.js → 75eb5f94364a44bf.js} +2 -2
- package/web/.next/static/chunks/{e8444bf5f6c35f8b.js → 7bbe49d9daedd94d.js} +5 -1
- package/web/.next/static/chunks/{7bc7028587490fff.js → 83ea5b5b0d0a8477.js} +1 -1
- package/web/.next/static/chunks/8fe70d4e73e1fe31.css +1 -0
- package/web/.next/static/chunks/{1bc12075020723ed.js → 9d70c74c84d24724.js} +1 -1
- package/web/.next/static/chunks/{7849c6797be7c6ca.js → a6d8276c88451abf.js} +2 -2
- package/web/.next/static/chunks/b3fa9a303332e7d6.js +3 -0
- package/web/.next/static/chunks/b9b3a6d83e07b213.js +1 -0
- package/web/.next/static/chunks/c92bc820f657f9d9.js +1 -0
- package/web/.next/static/chunks/dd5ab4e1762b5812.js +1 -0
- package/web/.next/static/chunks/{e7da54dde18e7fb2.js → e7b870347bdfe35d.js} +1 -1
- package/web/.next/static/chunks/ecafea5bc026ed41.js +1 -0
- package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_5da25833._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a6f2b763._.js +0 -3
- package/web/.next/server/chunks/ssr/[root-of-the-server]__a6f2b763._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__bb391c45._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_295fffde._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_44531b76._.js +0 -9
- package/web/.next/server/chunks/ssr/_44531b76._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_5bf2415e._.js +0 -7
- package/web/.next/server/chunks/ssr/_5bf2415e._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_869a3a15._.js +0 -3
- package/web/.next/server/chunks/ssr/_869a3a15._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_b227ff50._.js +0 -3
- package/web/.next/server/chunks/ssr/_b227ff50._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_b8e8b690._.js +0 -3
- package/web/.next/server/chunks/ssr/_e071ba48._.js +0 -3
- package/web/.next/server/chunks/ssr/_e071ba48._.js.map +0 -1
- package/web/.next/server/chunks/ssr/node_modules__pnpm_747b43ac._.js +0 -3
- package/web/.next/server/chunks/ssr/node_modules__pnpm_747b43ac._.js.map +0 -1
- package/web/.next/static/chunks/06b9d6dbf635c370.css +0 -1
- package/web/.next/static/chunks/1ae0cf5be30ef398.js +0 -1
- package/web/.next/static/chunks/1fa1574b87bd2eb1.js +0 -1
- package/web/.next/static/chunks/8492d8e0b5f9a4e8.js +0 -1
- package/web/.next/static/chunks/927442d2628f6e22.js +0 -1
- package/web/.next/static/chunks/a1098522326428d1.js +0 -1
- package/web/.next/static/chunks/b99506a6f7bc2fa8.js +0 -1
- package/web/.next/static/chunks/be89c20c257247ad.js +0 -7
- package/web/.next/static/chunks/c0bd3ffcf94d1845.js +0 -7
- package/web/.next/static/chunks/f6d47ff35d612852.js +0 -5
- /package/web/.next/static/{GQFJf3UCD4D5C4NCn8eXl → Rb8tiiSfY1LEpEkuZLtTr}/_buildManifest.js +0 -0
- /package/web/.next/static/{GQFJf3UCD4D5C4NCn8eXl → Rb8tiiSfY1LEpEkuZLtTr}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{GQFJf3UCD4D5C4NCn8eXl → Rb8tiiSfY1LEpEkuZLtTr}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,41952,e=>{"use strict";var t=e.i(20314),s=e.i(79054),i=e.i(23925),n=e.i(26370),a=e.i(38573),l=e.i(49228),r=e.i(74294),o=e.i(3645);let c=(0,o.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"}]]),d=(0,o.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"}]]),u=(0,o.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 g=e.i(32494),m=e.i(34808),h=e.i(3214),p=e.i(30702);let f=(0,o.default)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);var x=e.i(58860),v=e.i(48109),b=e.i(42049);let w=(0,o.default)("message-circle",[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]]);var j=e.i(60112);e.i(41001);var y=e.i(64780),k=e.i(31777),S=e.i(41957),C=e.i(51911),M=e.i(47373),N=e.i(21023);let I=(0,N.createServerReference)("40f805857e31eda9074e9b1972400bcbc4a666c3df",N.callServer,void 0,N.findSourceMapURL,"updateSettingsAction");var T=e.i(17406),D=e.i(98804),P=e.i(44229),A=e.i(83902);function F(e){return(0,t.jsx)(P.Code,{className:(0,k.cn)("h-4 w-4",e.className),...e})}function R({className:e}){return(0,t.jsx)(D.default,{src:"/icons/editors/vscode.svg",alt:"VS Code",width:24,height:24,className:(0,k.cn)("rounded-sm object-contain",e)})}function E({className:e}){return(0,t.jsx)(D.default,{src:"/icons/agents/cursor.jpeg",alt:"Cursor",width:24,height:24,className:(0,k.cn)("rounded-sm object-contain",e)})}function L({className:e}){return(0,t.jsx)(D.default,{src:"/icons/editors/windsurf.svg",alt:"Windsurf",width:24,height:24,className:(0,k.cn)("rounded-sm object-contain",e)})}function B({className:e}){return(0,t.jsx)(D.default,{src:"/icons/editors/zed.svg",alt:"Zed",width:24,height:24,className:(0,k.cn)("rounded-sm object-contain",e)})}function z({className:e,...s}){return(0,t.jsx)(A.Rocket,{className:(0,k.cn)("h-4 w-4",e),...s})}R.displayName="VsCodeIcon",E.displayName="CursorEditorIcon",L.displayName="WindsurfIcon",B.displayName="ZedIcon",z.displayName="AntigravityIcon";let U={vscode:R,cursor:E,windsurf:L,zed:B,antigravity:z};var _=e.i(41413),W=e.i(956);let K=[{value:T.Language.English,label:"English",nativeName:"English"},{value:T.Language.Russian,label:"Русский",nativeName:"Русский"},{value:T.Language.Portuguese,label:"Português",nativeName:"Português"},{value:T.Language.Spanish,label:"Español",nativeName:"Español"},{value:T.Language.Arabic,label:"العربية",nativeName:"العربية"},{value:T.Language.Hebrew,label:"עברית",nativeName:"עברית"},{value:T.Language.French,label:"Français",nativeName:"Français"},{value:T.Language.German,label:"Deutsch",nativeName:"Deutsch"}];function G({language:e}){let{t:n,i18n:a}=(0,y.useTranslation)("web"),[l,r]=(0,s.useState)(e),[o,c]=(0,s.useTransition)(),[d,u]=(0,s.useState)(!1),m=(0,s.useRef)(!1);return(0,s.useEffect)(()=>{if(m.current&&!o){u(!0);let e=setTimeout(()=>u(!1),2e3);return()=>clearTimeout(e)}m.current=o},[o]),(0,t.jsxs)(W.Card,{id:"language",className:"scroll-mt-6","data-testid":"language-settings-section",children:[(0,t.jsxs)(W.CardHeader,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(g.Globe,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)(W.CardTitle,{children:n("settings.language.title")})]}),o?(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:n("common:labels.saving")}):null,d&&!o?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-xs text-green-600",children:[(0,t.jsx)(i.Check,{className:"h-3 w-3"}),n("common:labels.saved")]}):null]}),(0,t.jsx)(W.CardDescription,{children:n("settings.language.description")})]}),(0,t.jsx)(W.CardContent,{className:"space-y-4",children:(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(S.Label,{htmlFor:"display-language",children:n("settings.language.label")}),(0,t.jsxs)(M.Select,{value:l,onValueChange:function(e){r(e),a.changeLanguage(e);let t="ar"===e||"he"===e?"rtl":"ltr";document.documentElement.lang=e,document.documentElement.dir=t,c(async()=>{let t=await I({user:{preferredLanguage:e}});t.success||j.toast.error(t.error??n("settings.language.failedToSave","Failed to save language settings"))})},children:[(0,t.jsx)(M.SelectTrigger,{id:"display-language","data-testid":"language-select",children:(0,t.jsx)(M.SelectValue,{placeholder:n("settings.language.placeholder")})}),(0,t.jsx)(M.SelectContent,{children:K.map(e=>(0,t.jsx)(M.SelectItem,{value:e.value,children:e.nativeName},e.value))})]})]})})]})}var H=e.i(33548);let V=(0,o.default)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);var O=e.i(98701);let $=(0,o.default)("unplug",[["path",{d:"m19 5 3-3",key:"yk6iyv"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z",key:"1snsnr"}]]);var q=e.i(25235),Z=e.i(98127),X=e.i(35364),Y=e.i(81846),J=e.i(2287);let Q=(0,N.createServerReference)("40a8bc8069bf5184ec35eef0f70744d97f6b67671b",N.callServer,void 0,N.findSourceMapURL,"beginMessagingPairingAction"),ee=(0,N.createServerReference)("404e3173c689c1e6ffbfb091a57e1bb93ee3de1fc1",N.callServer,void 0,N.findSourceMapURL,"confirmMessagingPairingAction"),et=(0,N.createServerReference)("4046cb85fdd3b2340338b879d6d765ffebee467439",N.callServer,void 0,N.findSourceMapURL,"disconnectMessagingAction"),es={enabled:!1,debounceMs:5e3,chatBufferMs:3e3};function ei(e){return e===T.MessagingPlatform.Telegram?"Telegram":"WhatsApp"}function en(e){if(!e.trim())return!1;try{return new URL(e),!0}catch{return!1}}function ea({messaging:e}){let n=e??es,[a,l]=(0,s.useState)(n.enabled),[r,o]=(0,s.useState)(n.gatewayUrl??""),[c,d]=(0,s.useState)(n.telegram),[u,g]=(0,s.useState)(n.whatsapp),[m,h]=(0,s.useTransition)(),[p,f]=(0,s.useState)(!1),x=(0,s.useRef)(!1),[v,b]=(0,s.useState)(null),[y,k]=(0,s.useState)(!1),[M,N]=(0,s.useState)("");(0,s.useEffect)(()=>{if(x.current&&!m){f(!0);let e=setTimeout(()=>f(!1),2e3);return()=>clearTimeout(e)}x.current=m},[m]),(0,s.useEffect)(()=>{l(n.enabled),o(n.gatewayUrl??""),d(n.telegram),g(n.whatsapp)},[n.enabled,n.gatewayUrl,n.telegram,n.whatsapp]);let D=(0,s.useCallback)(e=>{h(async()=>{let t=await I({messaging:{...n,enabled:e.enabled??a,gatewayUrl:e.gatewayUrl??r}});t.success||j.toast.error(t.error??"Failed to save messaging settings")})},[n,a,r]),P=(0,s.useCallback)((e,t)=>{let s=e===T.MessagingPlatform.Telegram?"telegram":"whatsapp",i=n[s];i?h(async()=>{let e=await I({messaging:{...n,[s]:{...i,botToken:t||void 0}}});e.success||j.toast.error(e.error??"Failed to save bot token")}):j.toast.error("Pair this platform before setting a bot token.")},[n]);async function A(e){if(!en(r))return void j.toast.error("Set a valid Gateway URL before pairing");k(!0),N("");try{let t=await Q({platform:e,gatewayUrl:r});if(!t.success||!t.session)return void j.toast.error(t.error??"Failed to begin pairing");b(t.session)}finally{k(!1)}}async function F(){if(v){if(!M.trim())return void j.toast.error("Enter the chat ID that received the code");k(!0);try{let e=await ee({platform:v.platform,chatId:M.trim()});if(!e.success)return void j.toast.error(e.error??"Failed to confirm pairing");j.toast.success(`${ei(v.platform)} paired`),b(null)}finally{k(!1)}}}async function R(e){k(!0);try{let t=await et({platform:e});if(!t.success)return void j.toast.error(t.error??"Failed to disconnect");j.toast.success(e?`${ei(e)} disconnected`:"Messaging disconnected")}finally{k(!1)}}async function E(){if(v)try{await navigator.clipboard.writeText(v.code),j.toast.success("Code copied")}catch{j.toast.error("Unable to copy code")}}async function L(){if(v)try{await navigator.clipboard.writeText(v.publicUrl),j.toast.success("Webhook URL copied")}catch{j.toast.error("Unable to copy URL")}}return(0,t.jsxs)(W.Card,{id:"messaging",className:"scroll-mt-6","data-testid":"messaging-settings-section",children:[(0,t.jsxs)(W.CardHeader,{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(w,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)(W.CardTitle,{children:"Messaging Remote Control"})]}),m?(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:"Saving..."}):null,p&&!m?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-xs text-green-600",children:[(0,t.jsx)(i.Check,{className:"h-3 w-3"}),"Saved"]}):null]}),(0,t.jsx)(W.CardDescription,{children:"Drive Shep remotely from Telegram or WhatsApp via the Commands.com Gateway."})]}),(0,t.jsxs)(W.CardContent,{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(S.Label,{htmlFor:"messaging-enabled",children:"Enable messaging"}),(0,t.jsx)(C.Switch,{id:"messaging-enabled","data-testid":"switch-messaging-enabled",checked:a,onCheckedChange:function(e){l(e),D({enabled:e})}})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsxs)(S.Label,{htmlFor:"messaging-gateway-url",className:"flex items-center gap-1 text-xs",children:[(0,t.jsx)(V,{className:"h-3 w-3"}),"Gateway URL"]}),(0,t.jsx)(Z.Input,{id:"messaging-gateway-url","data-testid":"input-gateway-url",placeholder:"https://gateway.example.com",value:r,disabled:!a,onChange:e=>o(e.target.value),onBlur:function(){if(r!==(n.gatewayUrl??"")){if(r&&!en(r))return void j.toast.error("Gateway URL must be a valid URL (e.g., https://gateway.example.com)");D({gatewayUrl:r})}}})]}),(0,t.jsx)(q.Separator,{}),(0,t.jsx)(el,{platform:T.MessagingPlatform.Telegram,config:c,disabled:!a||y,onPair:()=>A(T.MessagingPlatform.Telegram),onDisconnect:()=>R(T.MessagingPlatform.Telegram),onSaveBotToken:e=>P(T.MessagingPlatform.Telegram,e)}),(0,t.jsx)(el,{platform:T.MessagingPlatform.WhatsApp,config:u,disabled:!a||y,onPair:()=>A(T.MessagingPlatform.WhatsApp),onDisconnect:()=>R(T.MessagingPlatform.WhatsApp),onSaveBotToken:e=>P(T.MessagingPlatform.WhatsApp,e)}),c?.paired===!0||u?.paired===!0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(q.Separator,{}),(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("div",{className:"text-muted-foreground text-xs",children:"Disconnect all platforms"}),(0,t.jsxs)(X.Button,{variant:"outline",size:"sm",disabled:y,"data-testid":"btn-disconnect-all",onClick:()=>R(),children:[(0,t.jsx)($,{className:"mr-1 h-3 w-3"}),"Disconnect all"]})]})]}):null]}),(0,t.jsx)(J.Dialog,{open:!!v,onOpenChange:e=>!e&&b(null),children:(0,t.jsxs)(J.DialogContent,{"data-testid":"messaging-pairing-dialog",children:[(0,t.jsxs)(J.DialogHeader,{children:[(0,t.jsxs)(J.DialogTitle,{children:["Pair ",v?ei(v.platform):""]}),(0,t.jsx)(J.DialogDescription,{children:"Send this one-time code to your bot. Then enter the chat ID that received it to finish pairing."})]}),v?(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"bg-muted flex items-center justify-between rounded-md border px-4 py-3","data-testid":"pairing-code-box",children:[(0,t.jsx)("code",{className:"font-mono text-2xl tracking-[0.3em]",children:v.code}),(0,t.jsx)(X.Button,{variant:"ghost",size:"sm",onClick:E,"data-testid":"btn-copy-code","aria-label":"Copy code",children:(0,t.jsx)(H.Copy,{className:"h-4 w-4"})})]}),(0,t.jsxs)("div",{className:"space-y-1.5","data-testid":"pairing-public-url-box",children:[(0,t.jsxs)(S.Label,{className:"flex items-center gap-1 text-xs",children:[(0,t.jsx)(V,{className:"h-3 w-3"}),"Webhook URL for ",ei(v.platform)]}),(0,t.jsxs)("div",{className:"bg-muted flex items-center justify-between gap-2 rounded-md border px-3 py-2",children:[(0,t.jsx)("code",{className:"truncate font-mono text-[11px]","data-testid":"pairing-public-url",children:v.publicUrl}),(0,t.jsx)(X.Button,{variant:"ghost",size:"sm",onClick:L,"data-testid":"btn-copy-public-url","aria-label":"Copy webhook URL",children:(0,t.jsx)(H.Copy,{className:"h-4 w-4"})})]})]}),(0,t.jsxs)("ol",{className:"text-muted-foreground list-decimal space-y-1 pl-4 text-xs",children:[(0,t.jsxs)("li",{children:["Point your ",ei(v.platform)," bot webhook at the URL above (e.g."," ",(0,t.jsx)("code",{className:"font-mono",children:"setWebhook"})," for Telegram)."]}),(0,t.jsxs)("li",{children:["Send ",(0,t.jsxs)("code",{className:"font-mono",children:["/pair ",v.code]})," to the bot."]}),(0,t.jsx)("li",{children:"Enter the chat ID that received your code below and click Confirm."})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)(S.Label,{htmlFor:"pairing-chat-id",className:"text-xs",children:"Chat ID"}),(0,t.jsx)(Z.Input,{id:"pairing-chat-id","data-testid":"input-pairing-chat-id",placeholder:"e.g. 123456789 or @username",value:M,onChange:e=>N(e.target.value)})]})]}):null,(0,t.jsxs)(J.DialogFooter,{children:[(0,t.jsx)(X.Button,{variant:"outline",onClick:()=>b(null),disabled:y,"data-testid":"btn-cancel-pairing",children:"Cancel"}),(0,t.jsxs)(X.Button,{onClick:F,disabled:y||!M.trim(),"data-testid":"btn-confirm-pairing",children:[(0,t.jsx)(O.ShieldCheck,{className:"mr-1 h-3 w-3"}),"Confirm pairing"]})]})]})})]})}function el({platform:e,config:i,disabled:n,onPair:a,onDisconnect:l,onSaveBotToken:r}){let o=ei(e),c=!!i?.paired,d=!!i?.enabled,u=i?.chatId,g=e===T.MessagingPlatform.Telegram?"telegram":"whatsapp",[m,h]=(0,s.useState)(i?.botToken??"");return(0,s.useEffect)(()=>{h(i?.botToken??"")},[i?.botToken]),(0,t.jsxs)("div",{className:"space-y-2","data-testid":`messaging-platform-${g}`,children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(S.Label,{className:"text-sm",children:o}),c?(0,t.jsx)(Y.Badge,{variant:"secondary",className:"text-[10px]",children:"Paired"}):d?(0,t.jsx)(Y.Badge,{variant:"outline",className:"text-[10px]",children:"Pairing"}):(0,t.jsx)(Y.Badge,{variant:"outline",className:"text-[10px]",children:"Not configured"})]}),u?(0,t.jsxs)("p",{className:"text-muted-foreground truncate text-[11px]",children:["chat: ",u]}):null]}),(0,t.jsx)("div",{className:"flex shrink-0 gap-2",children:c?(0,t.jsx)(X.Button,{variant:"outline",size:"sm",disabled:n,onClick:l,"data-testid":`btn-${g}-disconnect`,children:"Disconnect"}):(0,t.jsx)(X.Button,{size:"sm",disabled:n,onClick:a,"data-testid":`btn-${g}-pair`,children:"Pair device"})})]}),c?(0,t.jsxs)("div",{className:"space-y-1 pl-1",children:[(0,t.jsx)(S.Label,{htmlFor:`${g}-bot-token`,className:"text-[11px]",children:"Bot API token"}),(0,t.jsx)(Z.Input,{id:`${g}-bot-token`,"data-testid":`input-${g}-bot-token`,type:"password",placeholder:e===T.MessagingPlatform.Telegram?"123456:ABC-...":"WhatsApp access token",value:m,disabled:n,onChange:e=>h(e.target.value),onBlur:function(){m!==(i?.botToken??"")&&r(m)}}),(0,t.jsxs)("p",{className:"text-muted-foreground text-[10px]",children:["Needed so the daemon can send replies and notifications. Stored in settings.db; you can also set the ",(0,t.jsx)("code",{className:"font-mono",children:"SHEP_TELEGRAM_BOT_TOKEN"})," env var instead."]})]}):null]})}var er=e.i(27069),eo=e.i(91967),ec=e.i(5978),ed=e.i(22528),eu=e.i(36589),eg=e.i(66033),em=e.i(23405),eh=e.i(77624),ep=e.i(87620),ef=e.i(87342),ex=["PageUp","PageDown"],ev=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],eb={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},ew="Slider",[ej,ey,ek]=(0,ef.createCollection)(ew),[eS,eC]=(0,ed.createContextScope)(ew,[ek]),[eM,eN]=eS(ew),eI=s.forwardRef((e,i)=>{let{name:n,min:a=0,max:l=100,step:r=1,orientation:o="horizontal",disabled:c=!1,minStepsBetweenThumbs:d=0,defaultValue:u=[a],value:g,onValueChange:m=()=>{},onValueCommit:h=()=>{},inverted:p=!1,form:f,...x}=e,v=s.useRef(new Set),b=s.useRef(0),w="horizontal"===o,[j=[],y]=(0,eu.useControllableState)({prop:g,defaultProp:u,onChange:e=>{let t=[...v.current];t[b.current]?.focus(),m(e)}}),k=s.useRef(j);function S(e,t,{commit:s}={commit:!1}){let i,n=(String(r).split(".")[1]||"").length,o=Math.round((Math.round((e-a)/r)*r+a)*(i=Math.pow(10,n)))/i,c=(0,er.clamp)(o,[a,l]);y((e=[])=>{let i=function(e=[],t,s){let i=[...e];return i[s]=t,i.sort((e,t)=>e-t)}(e,c,t);if(!function(e,t){if(t>0)return Math.min(...e.slice(0,-1).map((t,s)=>e[s+1]-t))>=t;return!0}(i,d*r))return e;{b.current=i.indexOf(c);let t=String(i)!==String(e);return t&&s&&h(i),t?i:e}})}return(0,t.jsx)(eM,{scope:e.__scopeSlider,name:n,disabled:c,min:a,max:l,valueIndexToChangeRef:b,thumbs:v.current,values:j,orientation:o,form:f,children:(0,t.jsx)(ej.Provider,{scope:e.__scopeSlider,children:(0,t.jsx)(ej.Slot,{scope:e.__scopeSlider,children:(0,t.jsx)(w?eP:eA,{"aria-disabled":c,"data-disabled":c?"":void 0,...x,ref:i,onPointerDown:(0,eo.composeEventHandlers)(x.onPointerDown,()=>{c||(k.current=j)}),min:a,max:l,inverted:p,onSlideStart:c?void 0:function(e){let t=function(e,t){if(1===e.length)return 0;let s=e.map(e=>Math.abs(e-t)),i=Math.min(...s);return s.indexOf(i)}(j,e);S(e,t)},onSlideMove:c?void 0:function(e){S(e,b.current)},onSlideEnd:c?void 0:function(){let e=k.current[b.current];j[b.current]!==e&&h(j)},onHomeKeyDown:()=>!c&&S(a,0,{commit:!0}),onEndKeyDown:()=>!c&&S(l,j.length-1,{commit:!0}),onStepKeyDown:({event:e,direction:t})=>{if(!c){let s=ex.includes(e.key)||e.shiftKey&&ev.includes(e.key),i=b.current;S(j[i]+r*(s?10:1)*t,i,{commit:!0})}}})})})})});eI.displayName=ew;var[eT,eD]=eS(ew,{startEdge:"left",endEdge:"right",size:"width",direction:1}),eP=s.forwardRef((e,i)=>{let{min:n,max:a,dir:l,inverted:r,onSlideStart:o,onSlideMove:c,onSlideEnd:d,onStepKeyDown:u,...g}=e,[m,h]=s.useState(null),p=(0,ec.useComposedRefs)(i,e=>h(e)),f=s.useRef(void 0),x=(0,eg.useDirection)(l),v="ltr"===x,b=v&&!r||!v&&r;function w(e){let t=f.current||m.getBoundingClientRect(),s=eG([0,t.width],b?[n,a]:[a,n]);return f.current=t,s(e-t.left)}return(0,t.jsx)(eT,{scope:e.__scopeSlider,startEdge:b?"left":"right",endEdge:b?"right":"left",direction:b?1:-1,size:"width",children:(0,t.jsx)(eF,{dir:x,"data-orientation":"horizontal",...g,ref:p,style:{...g.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:e=>{let t=w(e.clientX);o?.(t)},onSlideMove:e=>{let t=w(e.clientX);c?.(t)},onSlideEnd:()=>{f.current=void 0,d?.()},onStepKeyDown:e=>{let t=eb[b?"from-left":"from-right"].includes(e.key);u?.({event:e,direction:t?-1:1})}})})}),eA=s.forwardRef((e,i)=>{let{min:n,max:a,inverted:l,onSlideStart:r,onSlideMove:o,onSlideEnd:c,onStepKeyDown:d,...u}=e,g=s.useRef(null),m=(0,ec.useComposedRefs)(i,g),h=s.useRef(void 0),p=!l;function f(e){let t=h.current||g.current.getBoundingClientRect(),s=eG([0,t.height],p?[a,n]:[n,a]);return h.current=t,s(e-t.top)}return(0,t.jsx)(eT,{scope:e.__scopeSlider,startEdge:p?"bottom":"top",endEdge:p?"top":"bottom",size:"height",direction:p?1:-1,children:(0,t.jsx)(eF,{"data-orientation":"vertical",...u,ref:m,style:{...u.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:e=>{let t=f(e.clientY);r?.(t)},onSlideMove:e=>{let t=f(e.clientY);o?.(t)},onSlideEnd:()=>{h.current=void 0,c?.()},onStepKeyDown:e=>{let t=eb[p?"from-bottom":"from-top"].includes(e.key);d?.({event:e,direction:t?-1:1})}})})}),eF=s.forwardRef((e,s)=>{let{__scopeSlider:i,onSlideStart:n,onSlideMove:a,onSlideEnd:l,onHomeKeyDown:r,onEndKeyDown:o,onStepKeyDown:c,...d}=e,u=eN(ew,i);return(0,t.jsx)(ep.Primitive.span,{...d,ref:s,onKeyDown:(0,eo.composeEventHandlers)(e.onKeyDown,e=>{"Home"===e.key?(r(e),e.preventDefault()):"End"===e.key?(o(e),e.preventDefault()):ex.concat(ev).includes(e.key)&&(c(e),e.preventDefault())}),onPointerDown:(0,eo.composeEventHandlers)(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),u.thumbs.has(t)?t.focus():n(e)}),onPointerMove:(0,eo.composeEventHandlers)(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&a(e)}),onPointerUp:(0,eo.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),l(e))})})}),eR="SliderTrack",eE=s.forwardRef((e,s)=>{let{__scopeSlider:i,...n}=e,a=eN(eR,i);return(0,t.jsx)(ep.Primitive.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...n,ref:s})});eE.displayName=eR;var eL="SliderRange",eB=s.forwardRef((e,i)=>{let{__scopeSlider:n,...a}=e,l=eN(eL,n),r=eD(eL,n),o=s.useRef(null),c=(0,ec.useComposedRefs)(i,o),d=l.values.length,u=l.values.map(e=>eK(e,l.min,l.max)),g=d>1?Math.min(...u):0,m=100-Math.max(...u);return(0,t.jsx)(ep.Primitive.span,{"data-orientation":l.orientation,"data-disabled":l.disabled?"":void 0,...a,ref:c,style:{...e.style,[r.startEdge]:g+"%",[r.endEdge]:m+"%"}})});eB.displayName=eL;var ez="SliderThumb",eU=s.forwardRef((e,i)=>{let n=ey(e.__scopeSlider),[a,l]=s.useState(null),r=(0,ec.useComposedRefs)(i,e=>l(e)),o=s.useMemo(()=>a?n().findIndex(e=>e.ref.current===a):-1,[n,a]);return(0,t.jsx)(e_,{...e,ref:r,index:o})}),e_=s.forwardRef((e,i)=>{var n,a,l,r,o;let c,d,{__scopeSlider:u,index:g,name:m,...h}=e,p=eN(ez,u),f=eD(ez,u),[x,v]=s.useState(null),b=(0,ec.useComposedRefs)(i,e=>v(e)),w=!x||p.form||!!x.closest("form"),j=(0,eh.useSize)(x),y=p.values[g],k=void 0===y?0:eK(y,p.min,p.max),S=(n=g,(a=p.values.length)>2?`Value ${n+1} of ${a}`:2===a?["Minimum","Maximum"][n]:void 0),C=j?.[f.size],M=C?(l=C,r=k,o=f.direction,d=eG([0,50],[0,c=l/2]),(c-d(r)*o)*o):0;return s.useEffect(()=>{if(x)return p.thumbs.add(x),()=>{p.thumbs.delete(x)}},[x,p.thumbs]),(0,t.jsxs)("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[f.startEdge]:`calc(${k}% + ${M}px)`},children:[(0,t.jsx)(ej.ItemSlot,{scope:e.__scopeSlider,children:(0,t.jsx)(ep.Primitive.span,{role:"slider","aria-label":e["aria-label"]||S,"aria-valuemin":p.min,"aria-valuenow":y,"aria-valuemax":p.max,"aria-orientation":p.orientation,"data-orientation":p.orientation,"data-disabled":p.disabled?"":void 0,tabIndex:p.disabled?void 0:0,...h,ref:b,style:void 0===y?{display:"none"}:e.style,onFocus:(0,eo.composeEventHandlers)(e.onFocus,()=>{p.valueIndexToChangeRef.current=g})})}),w&&(0,t.jsx)(eW,{name:m??(p.name?p.name+(p.values.length>1?"[]":""):void 0),form:p.form,value:y},g)]})});eU.displayName=ez;var eW=s.forwardRef(({__scopeSlider:e,value:i,...n},a)=>{let l=s.useRef(null),r=(0,ec.useComposedRefs)(l,a),o=(0,em.usePrevious)(i);return s.useEffect(()=>{let e=l.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set;if(o!==i&&t){let s=new Event("input",{bubbles:!0});t.call(e,i),e.dispatchEvent(s)}},[o,i]),(0,t.jsx)(ep.Primitive.input,{style:{display:"none"},...n,ref:r,defaultValue:i})});function eK(e,t,s){return(0,er.clamp)(100/(s-t)*(e-t),[0,100])}function eG(e,t){return s=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let i=(t[1]-t[0])/(e[1]-e[0]);return t[0]+i*(s-e[0])}}eW.displayName="RadioBubbleInput",e.s(["Range",()=>eB,"Root",()=>eI,"Slider",()=>eI,"SliderRange",()=>eB,"SliderThumb",()=>eU,"SliderTrack",()=>eE,"Thumb",()=>eU,"Track",()=>eE,"createSliderScope",()=>eC],29991);var eH=e.i(29991),eH=eH;function eV({className:e,defaultValue:i,value:n,min:a=0,max:l=100,...r}){let o=s.useMemo(()=>Array.isArray(n)?n:Array.isArray(i)?i:[a,l],[n,i,a,l]);return(0,t.jsxs)(eH.Root,{"data-slot":"slider",defaultValue:i,value:n,min:a,max:l,className:(0,k.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",e),...r,children:[(0,t.jsx)(eH.Track,{"data-slot":"slider-track",className:(0,k.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,t.jsx)(eH.Range,{"data-slot":"slider-range",className:(0,k.cn)("bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")})}),Array.from({length:o.length},(e,s)=>(0,t.jsx)(eH.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"},s))]})}let eO=[60,120,300,600,900,1800,2700,3600,7200,10800,14400,21600,28800,43200,86400],e$=eO.length-1;function eq(e){let t=0,s=Math.abs(e-eO[0]);for(let i=1;i<eO.length;i++){let n=Math.abs(e-eO[i]);n<s&&(s=n,t=i)}return t}function eZ({id:e,testId:i,value:n,onChange:a,onBlur:l,defaultSeconds:r=1800}){var o;let c,d,u=(""===n?r:parseInt(n,10))||r,[g,m]=(0,s.useState)(()=>eq(u)),h=eq(u);h!==g&&eO[g]!==u&&m(h);let p=(0,s.useCallback)(([e])=>{m(e),a(String(eO[e]))},[a]);return(0,t.jsxs)("div",{className:"flex w-55 items-center gap-2",children:[(0,t.jsx)(eV,{id:e,"data-testid":i,min:0,max:e$,step:1,value:[g],onValueChange:p,onValueCommit:()=>l(),className:"min-w-0 flex-1"}),(0,t.jsx)("span",{className:"text-muted-foreground shrink-0 text-end text-xs tabular-nums",children:(c=Math.floor((o=eO[g])/3600),d=Math.round(o%3600/60),0===c?`${d}m`:0===d?`${c}h`:`${c}h ${d}m`)})]})}let eX=[{value:T.EditorType.VsCode,label:"VS Code"},{value:T.EditorType.Cursor,label:"Cursor"},{value:T.EditorType.Windsurf,label:"Windsurf"},{value:T.EditorType.Zed,label:"Zed"},{value:T.EditorType.Antigravity,label:"Antigravity"}],eY=[{value:"bash",label:"Bash"},{value:"zsh",label:"Zsh"},{value:"fish",label:"Fish"}],eJ=[{id:"language",labelKey:"settings.sections.language",icon:g.Globe},{id:"agent",labelKey:"settings.sections.agent",icon:n.Bot},{id:"environment",labelKey:"settings.sections.environment",icon:a.Terminal},{id:"workflow",labelKey:"settings.sections.workflow",icon:l.GitBranch},{id:"ci",labelKey:"settings.sections.ci",icon:r.Activity},{id:"stage-timeouts",labelKey:"settings.sections.timeouts",icon:x.Timer},{id:"notifications",labelKey:"settings.sections.notifications",icon:c},{id:"messaging",labelKey:"settings.sections.messaging",icon:w},{id:"feature-flags",labelKey:"settings.sections.flags",icon:d},{id:"interactive-agent",labelKey:"settings.sections.chat",icon:v.MessageSquare},{id:"fab-layout",labelKey:"settings.sections.layout",icon:b.LayoutGrid},{id:"database",labelKey:"settings.sections.database",icon:u}];function eQ({label:e,description:s,htmlFor:i,children:n}){return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4 border-b py-2.5 last:border-b-0",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)(S.Label,{htmlFor:i,className:"cursor-pointer text-sm font-normal whitespace-nowrap",children:e}),s?(0,t.jsx)("p",{className:"text-muted-foreground text-[11px] leading-tight",children:s}):null]}),(0,t.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:n})]})}function e0({label:e,description:s,id:i,testId:n,checked:a,onChange:l,disabled:r}){return(0,t.jsx)(eQ,{label:e,description:s,htmlFor:i,children:(0,t.jsx)(C.Switch,{id:i,"data-testid":n,checked:a,onCheckedChange:l,disabled:r,className:(0,k.cn)("cursor-pointer",r&&"cursor-not-allowed opacity-50")})})}function e1({icon:e,title:s,description:i,badge:n,testId:a,children:l}){return(0,t.jsxs)("div",{className:"bg-background rounded-lg border","data-testid":a,children:[(0,t.jsxs)("div",{className:"bg-muted/30 border-b px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(e,{className:"text-muted-foreground h-3.5 w-3.5"}),(0,t.jsx)("h2",{className:"text-sm font-semibold",children:s}),n?(0,t.jsx)("span",{className:"bg-muted text-muted-foreground rounded px-1.5 py-0.5 text-[9px] font-medium tracking-wider uppercase",children:n}):null]}),(0,t.jsx)("p",{className:"text-muted-foreground mt-0.5 text-[11px]",children:i})]}),(0,t.jsx)("div",{className:"px-4",children:l})]})}function e2({id:e,testId:s,value:i,onChange:n,onBlur:a,placeholder:l,min:r=1,max:o,step:c=1,suffix:d}){let{t:u}=(0,y.useTranslation)("web"),g=""===i?void 0:parseInt(i,10);return(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsxs)("div",{className:"flex items-center overflow-hidden rounded-md border",children:[(0,t.jsx)("button",{type:"button",onClick:()=>{n(String(Math.max(r,(g??parseInt(l,10))-c)))},onMouseUp:a,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":u("common.decrease"),children:(0,t.jsx)(m.Minus,{className:"h-3 w-3"})}),(0,t.jsx)("input",{id:e,"data-testid":s,type:"text",inputMode:"numeric",pattern:"[0-9]*",value:i,placeholder:l,onChange:e=>{n(e.target.value.replace(/[^0-9]/g,""))},onBlur:a,className:"h-8 w-14 bg-transparent text-center text-xs outline-none"}),(0,t.jsx)("button",{type:"button",onClick:()=>{let e;e=g??parseInt(l,10),n(String(null!=o?Math.min(o,e+c):e+c))},onMouseUp:a,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":u("common.increase"),children:(0,t.jsx)(h.Plus,{className:"h-3 w-3"})})]}),d?(0,t.jsx)("span",{className:"text-muted-foreground text-[11px]",children:d}):null]})}function e3({children:e}){return(0,t.jsx)("div",{className:"border-b pt-3 pb-1",children:(0,t.jsx)("span",{className:"text-muted-foreground text-[10px] font-semibold tracking-wider uppercase",children:e})})}function e4({children:e,links:s}){return(0,t.jsxs)("div",{className:"hidden pt-2 lg:block",children:[(0,t.jsx)("p",{className:"text-muted-foreground/70 text-[11px] leading-relaxed",children:e}),null!=s&&s.length>0?(0,t.jsx)("div",{className:"mt-2 flex flex-col gap-1",children:s.map(e=>(0,t.jsxs)("a",{href:e.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,t.jsx)(p.ExternalLink,{className:"h-2.5 w-2.5"}),e.label]},e.href))}):null]})}function e5({settings:e,shepHome:o,dbFileSize:g,availableTerminals:m}){let{t:h}=(0,y.useTranslation)("web"),{showSaving:p,showSaved:w,save:S}=function(){let{t:e}=(0,y.useTranslation)("web"),[t,i]=(0,s.useTransition)(),[n,a]=(0,s.useState)(!1),[l,r]=(0,s.useState)(!1),o=(0,s.useRef)(null),c=(0,s.useRef)(!1);return(0,s.useEffect)(()=>{t&&!n&&(a(!0),c.current=!1,o.current=setTimeout(()=>{o.current=null,c.current&&(a(!1),r(!0),setTimeout(()=>r(!1),2e3))},350)),!t&&n&&(c.current=!0,o.current||(a(!1),r(!0),setTimeout(()=>r(!1),2e3)))},[t,n]),{showSaving:n,showSaved:l,save:(0,s.useCallback)(t=>{i(async()=>{let s=await I(t);s.success||j.toast.error(s.error??e("settings.failedToSave"))})},[i,e])}}(),C=e.featureFlags??{skills:!1,envDeploy:!1,debug:!1,githubImport:!1,adoptBranch:!1,gitRebaseSync:!1,reactFileManager:!1,inventory:!1},[N,D]=(0,s.useState)(e.agent.type),[P,A]=(0,s.useState)(e.environment.defaultEditor),[R,E]=(0,s.useState)(e.environment.shellPreference),[L,B]=(0,s.useState)(e.environment.terminalPreference??T.TerminalType.System),z=m?m.filter(e=>e.available):[{id:T.TerminalType.System,name:h("settings.environment.systemTerminal"),available:!0}],[W,K]=(0,s.useState)(e.workflow.openPrOnImplementationComplete),[H,V]=(0,s.useState)(e.workflow.approvalGateDefaults.pushOnImplementationComplete),[O,$]=(0,s.useState)(e.workflow.approvalGateDefaults.allowPrd),[q,Z]=(0,s.useState)(e.workflow.approvalGateDefaults.allowPlan),[X,Y]=(0,s.useState)(e.workflow.approvalGateDefaults.allowMerge),[J,Q]=(0,s.useState)(e.workflow.enableEvidence),[ee,et]=(0,s.useState)(e.workflow.commitEvidence),[es,ei]=(0,s.useState)(!1!==e.workflow.ciWatchEnabled),[en,el]=(0,s.useState)(!1!==e.workflow.hideCiStatus),[er,eo]=(0,s.useState)(!1!==e.workflow.defaultFastMode),[ec,ed]=(0,s.useState)((e.workflow.autoArchiveDelayMinutes??10)>0),[eu,eg]=(0,s.useState)(String(e.workflow.autoArchiveDelayMinutes??10)),[em,eh]=(0,s.useState)(null!=e.workflow.ciMaxFixAttempts?String(e.workflow.ciMaxFixAttempts):""),[ep,ef]=(0,s.useState)(null!=e.workflow.ciWatchTimeoutMs?String(Math.round(e.workflow.ciWatchTimeoutMs/1e3)):""),[ex,ev]=(0,s.useState)(null!=e.workflow.ciLogMaxChars?String(e.workflow.ciLogMaxChars):""),[eb,ew]=(0,s.useState)(null!=e.workflow.ciWatchPollIntervalSeconds?String(e.workflow.ciWatchPollIntervalSeconds):""),ej=e.workflow.stageTimeouts,[ey,ek]=(0,s.useState)(String(Math.round((ej?.analyzeMs??18e5)/1e3))),[eS,eC]=(0,s.useState)(String(Math.round((ej?.requirementsMs??18e5)/1e3))),[eM,eN]=(0,s.useState)(String(Math.round((ej?.researchMs??18e5)/1e3))),[eI,eT]=(0,s.useState)(String(Math.round((ej?.planMs??18e5)/1e3))),[eD,eP]=(0,s.useState)(String(Math.round((ej?.implementMs??18e5)/1e3))),[eA,eF]=(0,s.useState)(String(Math.round((ej?.fastImplementMs??18e5)/1e3))),[eR,eE]=(0,s.useState)(String(Math.round((ej?.mergeMs??18e5)/1e3))),eL=e.workflow.analyzeRepoTimeouts,[eB,ez]=(0,s.useState)(String(Math.round((eL?.analyzeMs??6e5)/1e3))),eU=e.interactiveAgent??{enabled:!0,autoTimeoutMinutes:15,maxConcurrentSessions:3},[e_,eW]=(0,s.useState)(eU.enabled),[eK,eG]=(0,s.useState)(String(eU.autoTimeoutMinutes)),[eH,eV]=(0,s.useState)(String(eU.maxConcurrentSessions)),eO=e.fabLayout??{swapPosition:!1},[e$,eq]=(0,s.useState)(eO.swapPosition),[e5,e8]=(0,s.useState)(e.notifications.inApp.enabled),[e6,e9]=(0,s.useState)({...e.notifications.events}),[e7,te]=(0,s.useState)({...C}),tt=null!=e.workflow.ciMaxFixAttempts?String(e.workflow.ciMaxFixAttempts):"",ts=null!=e.workflow.ciWatchTimeoutMs?String(Math.round(e.workflow.ciWatchTimeoutMs/1e3)):"",ti=null!=e.workflow.ciLogMaxChars?String(e.workflow.ciLogMaxChars):"",tn=null!=e.workflow.ciWatchPollIntervalSeconds?String(e.workflow.ciWatchPollIntervalSeconds):"",ta=ej?.analyzeMs!=null?String(Math.round(ej.analyzeMs/1e3)):"",tl=ej?.requirementsMs!=null?String(Math.round(ej.requirementsMs/1e3)):"",tr=ej?.researchMs!=null?String(Math.round(ej.researchMs/1e3)):"",to=ej?.planMs!=null?String(Math.round(ej.planMs/1e3)):"",tc=ej?.implementMs!=null?String(Math.round(ej.implementMs/1e3)):"",td=ej?.fastImplementMs!=null?String(Math.round(ej.fastImplementMs/1e3)):"",tu=ej?.mergeMs!=null?String(Math.round(ej.mergeMs/1e3)):"",tg=eL?.analyzeMs!=null?String(Math.round(eL.analyzeMs/1e3)):"";function tm(e){if(""===e)return;let t=parseInt(e,10);return Number.isNaN(t)||t<=0?void 0:t}function th(e){if(void 0===e)return;let t=tm(e);return null!=t?1e3*t:void 0}function tp(e={}){let t=tm(e.ciTimeout??ep),s=e.autoArchiveEnabled??ec,i=parseInt(e.autoArchiveDelay??eu,10);return{workflow:{openPrOnImplementationComplete:e.openPr??W,approvalGateDefaults:{pushOnImplementationComplete:e.pushOnComplete??H,allowPrd:e.allowPrd??O,allowPlan:e.allowPlan??q,allowMerge:e.allowMerge??X},enableEvidence:e.enableEvidence??J,commitEvidence:e.commitEvidence??ee,ciWatchEnabled:e.ciWatchEnabled??es,hideCiStatus:e.hideCiStatus??en,defaultFastMode:e.defaultFastMode??er,autoArchiveDelayMinutes:s?Number.isNaN(i)||i<1?10:i:0,ciMaxFixAttempts:tm(e.ciMaxFix??em),ciWatchTimeoutMs:null!=t?1e3*t:void 0,ciLogMaxChars:tm(e.ciLogMax??ex),ciWatchPollIntervalSeconds:tm(e.ciPollInterval??eb),stageTimeouts:{analyzeMs:th(e.analyzeTimeout??ey),requirementsMs:th(e.requirementsTimeout??eS),researchMs:th(e.researchTimeout??eM),planMs:th(e.planTimeout??eI),implementMs:th(e.implementTimeout??eD),fastImplementMs:th(e.fastImplementTimeout??eA),mergeMs:th(e.mergeTimeout??eR)},analyzeRepoTimeouts:{analyzeMs:th(e.analyzeRepoTimeout??eB)}}}}function tf(e={}){return{notifications:{inApp:{enabled:e.inApp??e5},events:e.events??e6}}}let[tx,tv]=(0,s.useState)("agent");(0,s.useEffect)(()=>{let e=eJ.map(e=>document.getElementById(`section-${e.id}`)).filter(Boolean);if(0===e.length)return;let t=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&tv(t.target.id.replace("section-",""))},{rootMargin:"-65px 0px -60% 0px",threshold:0});for(let s of e)t.observe(s);return()=>t.disconnect()},[]);let tb=(0,s.useCallback)(e=>{let t=document.getElementById(`section-${e}`);t&&(t.scrollIntoView({behavior:"smooth",block:"start"}),t.style.animation="none",t.offsetHeight,t.style.animation="section-flash 1s ease-out")},[]);return(0,t.jsxs)("div",{"data-testid":"settings-page-client",className:"max-w-5xl",children:[(0,t.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,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(f,{className:"text-muted-foreground h-4 w-4"}),(0,t.jsx)("h1",{className:"text-sm font-bold tracking-tight",children:h("settings.title")}),(0,t.jsxs)("span",{className:"relative h-4 w-16",children:[(0,t.jsx)("span",{className:(0,k.cn)("text-muted-foreground absolute inset-0 flex items-center text-xs transition-opacity duration-300",p?"opacity-100":"opacity-0"),children:h("settings.saving")}),(0,t.jsxs)("span",{className:(0,k.cn)("absolute inset-0 flex items-center gap-1 text-xs text-green-600 transition-opacity duration-300",w&&!p?"opacity-100":"opacity-0"),children:[(0,t.jsx)(i.Check,{className:"h-3 w-3"}),h("settings.saved")]})]}),(0,t.jsx)("nav",{className:"ml-auto flex items-center gap-0.5",children:eJ.map(e=>{let s=e.icon,i=tx===e.id;return(0,t.jsxs)("button",{type:"button",onClick:()=>tb(e.id),className:(0,k.cn)("flex cursor-pointer items-center gap-1 rounded-md px-1.5 py-1 text-[11px] transition-all",i?"bg-accent text-foreground font-medium":"text-muted-foreground/60 hover:text-foreground hover:bg-accent/50"),children:[(0,t.jsx)(s,{className:"h-3 w-3"}),(0,t.jsx)("span",{className:"hidden sm:inline",children:h(e.labelKey)})]},e.id)})})]})}),(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsx)("div",{id:"section-language",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:(0,t.jsx)(G,{language:e.user?.preferredLanguage??T.Language.English})}),(0,t.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,t.jsx)(e1,{icon:n.Bot,title:h("settings.agent.sectionTitle"),description:h("settings.agent.sectionDescription"),testId:"agent-settings-section",children:(0,t.jsx)(eQ,{label:h("settings.agent.agentAndModel"),description:h("settings.agent.agentAndModelDescription"),htmlFor:"agent-model-picker",children:(0,t.jsx)(_.AgentModelPicker,{initialAgentType:N,initialModel:e.models.default,mode:"settings",onAgentModelChange:e=>D(e),className:"w-55"})})}),(0,t.jsx)(e4,{links:[{label:h("settings.agent.links.agentSystem"),href:"https://github.com/shep-ai/shep/blob/main/docs/architecture/agent-system.md"},{label:h("settings.agent.links.addingAgents"),href:"https://github.com/shep-ai/shep/blob/main/docs/development/adding-agents.md"},{label:h("settings.agent.links.configurationGuide"),href:"https://github.com/shep-ai/shep/blob/main/docs/guides/configuration.md"}],children:h("settings.agent.hint")})]}),(0,t.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,t.jsxs)(e1,{icon:a.Terminal,title:h("settings.environment.sectionTitle"),description:h("settings.environment.sectionDescription"),testId:"environment-settings-section",children:[(0,t.jsx)(eQ,{label:h("settings.environment.defaultEditor"),description:h("settings.environment.defaultEditorDescription"),htmlFor:"default-editor",children:(0,t.jsxs)(M.Select,{value:P,onValueChange:e=>{A(e),S({environment:{defaultEditor:e,shellPreference:R,terminalPreference:L}})},children:[(0,t.jsx)(M.SelectTrigger,{id:"default-editor","data-testid":"editor-select",className:"w-55 cursor-pointer text-xs",children:(0,t.jsx)(M.SelectValue,{})}),(0,t.jsx)(M.SelectContent,{children:eX.map(e=>{var s;let i=(s=e.value)&&s in U?U[s]:F;return(0,t.jsx)(M.SelectItem,{value:e.value,children:(0,t.jsxs)("span",{className:"flex items-center gap-2 text-xs",children:[(0,t.jsx)(i,{className:"h-4 w-4 shrink-0"}),e.label]})},e.value)})})]})}),(0,t.jsx)(eQ,{label:h("settings.environment.shell"),description:h("settings.environment.shellDescription"),htmlFor:"shell-preference",children:(0,t.jsxs)(M.Select,{value:R,onValueChange:e=>{E(e),S({environment:{defaultEditor:P,shellPreference:e,terminalPreference:L}})},children:[(0,t.jsx)(M.SelectTrigger,{id:"shell-preference","data-testid":"shell-select",className:"w-55 cursor-pointer text-xs",children:(0,t.jsx)(M.SelectValue,{})}),(0,t.jsx)(M.SelectContent,{children:eY.map(e=>(0,t.jsx)(M.SelectItem,{value:e.value,children:e.label},e.value))})]})}),(0,t.jsx)(eQ,{label:h("settings.environment.terminal"),description:h("settings.environment.terminalDescription"),htmlFor:"terminal-preference",children:(0,t.jsxs)(M.Select,{value:L,onValueChange:e=>{B(e),S({environment:{defaultEditor:P,shellPreference:R,terminalPreference:e}})},children:[(0,t.jsx)(M.SelectTrigger,{id:"terminal-preference","data-testid":"terminal-select",className:"w-55 cursor-pointer text-xs",children:(0,t.jsx)(M.SelectValue,{})}),(0,t.jsx)(M.SelectContent,{children:z.map(e=>(0,t.jsx)(M.SelectItem,{value:e.id,children:e.name},e.id))})]})})]}),(0,t.jsx)(e4,{links:[{label:h("settings.environment.links.configurationGuide"),href:"https://github.com/shep-ai/shep/blob/main/docs/guides/configuration.md"}],children:h("settings.environment.hint")})]}),(0,t.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,t.jsxs)(e1,{icon:l.GitBranch,title:h("settings.workflow.title"),description:h("settings.workflow.sectionDescription"),testId:"workflow-settings-section",children:[(0,t.jsx)(e0,{label:h("settings.workflow.defaultFastMode"),description:h("settings.workflow.defaultFastModeDescription"),id:"default-fast-mode",testId:"switch-default-fast-mode",checked:er,onChange:e=>{eo(e),S(tp({defaultFastMode:e}))}}),(0,t.jsx)(e3,{children:h("settings.workflow.subsections.approve")}),(0,t.jsx)(e0,{label:h("settings.workflow.autoApprovePrd"),description:h("settings.workflow.autoApprovePrdDescription"),id:"allow-prd",testId:"switch-allow-prd",checked:O,onChange:e=>{$(e),S(tp({allowPrd:e}))}}),(0,t.jsx)(e0,{label:h("settings.workflow.autoApprovePlan"),description:h("settings.workflow.autoApprovePlanDescription"),id:"allow-plan",testId:"switch-allow-plan",checked:q,onChange:e=>{Z(e),S(tp({allowPlan:e}))}}),(0,t.jsx)(e0,{label:h("settings.workflow.autoApproveMerge"),description:h("settings.workflow.autoApproveMergeDescription"),id:"allow-merge",testId:"switch-allow-merge",checked:X,onChange:e=>{Y(e),S(tp({allowMerge:e}))}}),(0,t.jsx)(e3,{children:h("settings.workflow.subsections.evidence")}),(0,t.jsx)(e0,{label:h("settings.workflow.collectEvidence"),description:h("settings.workflow.collectEvidenceDescription"),id:"enable-evidence",testId:"switch-enable-evidence",checked:J,onChange:e=>{Q(e),e?S(tp({enableEvidence:e})):(et(!1),S(tp({enableEvidence:e,commitEvidence:!1})))}}),(0,t.jsx)(e0,{label:h("settings.workflow.addEvidenceToPr"),description:h("settings.workflow.addEvidenceToPrDescription"),id:"commit-evidence",testId:"switch-commit-evidence",checked:ee,disabled:!J||!W,onChange:e=>{et(e),S(tp({commitEvidence:e}))}}),(0,t.jsx)(e3,{children:h("settings.workflow.subsections.git")}),(0,t.jsx)(e0,{label:h("settings.workflow.pushOnComplete"),description:h("settings.workflow.pushOnCompleteDescription"),id:"push-on-complete",testId:"switch-push-on-complete",checked:H,onChange:e=>{V(e),S(tp({pushOnComplete:e}))}}),(0,t.jsx)(e0,{label:h("settings.workflow.openPrOnComplete"),description:h("settings.workflow.openPrOnCompleteDescription"),id:"open-pr",testId:"switch-open-pr",checked:W,onChange:e=>{K(e),e?S(tp({openPr:e})):(et(!1),S(tp({openPr:e,commitEvidence:!1})))}}),(0,t.jsx)(e0,{label:h("settings.workflow.watchCiAfterPush"),description:h("settings.workflow.watchCiAfterPushDescription"),id:"ci-watch-enabled",testId:"switch-ci-watch-enabled",checked:es,onChange:e=>{ei(e),S(tp({ciWatchEnabled:e}))}}),(0,t.jsx)(e3,{children:"Archive"}),(0,t.jsx)(e0,{label:"Auto-archive completed",description:"Automatically archive features after they reach the completed state",id:"auto-archive-enabled",testId:"switch-auto-archive-enabled",checked:ec,onChange:e=>{ed(e),S(tp({autoArchiveEnabled:e}))}}),(0,t.jsx)(eQ,{label:"Archive delay",description:"Minutes to wait after completion before archiving (1–1440)",htmlFor:"auto-archive-delay",children:(0,t.jsx)(e2,{id:"auto-archive-delay",testId:"input-auto-archive-delay",value:eu,placeholder:"10",min:1,max:1440,suffix:"min",onChange:e=>{eg(e)},onBlur:()=>{if(!ec)return;let e=parseInt(eu,10),t=Number.isNaN(e)?10:Math.min(1440,Math.max(1,e));eg(String(t)),S(tp({autoArchiveDelay:String(t)}))}})})]}),(0,t.jsx)(e4,{links:[{label:h("settings.workflow.links.approvalGates"),href:"https://github.com/shep-ai/shep/blob/main/specs/016-hitl-approval-gates/spec.yaml"},{label:h("settings.workflow.links.pushAndPrFlags"),href:"https://github.com/shep-ai/shep/blob/main/specs/037-feature-pr-push-flags/spec.yaml"}],children:h("settings.workflow.hint")})]}),(0,t.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,t.jsxs)(e1,{icon:r.Activity,title:h("settings.ci.title"),description:h("settings.ci.description"),testId:"ci-settings-section",children:[(0,t.jsx)(eQ,{label:h("settings.ci.maxFixAttempts"),description:h("settings.ci.maxFixAttemptsDescription"),htmlFor:"ci-max-fix",children:(0,t.jsx)(e2,{id:"ci-max-fix",testId:"ci-max-fix-input",placeholder:"3",value:em,onChange:eh,onBlur:()=>{em!==tt&&S(tp({ciMaxFix:em}))},min:1,max:10})}),(0,t.jsx)(eQ,{label:h("settings.ci.watchTimeout"),description:h("settings.ci.watchTimeoutDescription"),htmlFor:"ci-timeout",children:(0,t.jsx)(e2,{id:"ci-timeout",testId:"ci-timeout-input",placeholder:"300",value:ep,onChange:ef,onBlur:()=>{ep!==ts&&S(tp({ciTimeout:ep}))},min:30,step:30,suffix:"sec"})}),(0,t.jsx)(eQ,{label:h("settings.ci.maxLogSize"),description:h("settings.ci.maxLogSizeDescription"),htmlFor:"ci-log-max",children:(0,t.jsx)(e2,{id:"ci-log-max",testId:"ci-log-max-input",placeholder:"50000",value:ex,onChange:ev,onBlur:()=>{ex!==ti&&S(tp({ciLogMax:ex}))},min:1e3,step:5e3,suffix:"chars"})}),(0,t.jsx)(eQ,{label:h("settings.ci.pollInterval"),description:h("settings.ci.pollIntervalDescription"),htmlFor:"ci-poll-interval",children:(0,t.jsx)(e2,{id:"ci-poll-interval",testId:"ci-poll-interval-input",placeholder:"30",value:eb,onChange:ew,onBlur:()=>{eb!==tn&&S(tp({ciPollInterval:eb}))},min:5,step:5,suffix:"sec"})}),(0,t.jsx)(e0,{label:h("settings.ci.hideCiStatus"),description:h("settings.ci.hideCiStatusDescription"),id:"hide-ci-status",testId:"switch-hide-ci-status",checked:en,onChange:e=>{el(e),S(tp({hideCiStatus:e}))}})]}),(0,t.jsx)(e4,{links:[{label:h("settings.ci.links.cicdPipeline"),href:"https://github.com/shep-ai/shep/blob/main/docs/development/cicd.md"},{label:h("settings.ci.links.ciSecurityGates"),href:"https://github.com/shep-ai/shep/blob/main/specs/003-cicd-security-gates/spec.md"}],children:h("settings.ci.hint")})]}),(0,t.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,t.jsxs)(e1,{icon:x.Timer,title:h("settings.stageTimeouts.title"),description:h("settings.stageTimeouts.description"),testId:"stage-timeouts-settings-section",children:[(0,t.jsx)(e3,{children:h("settings.stageTimeouts.subsections.featureAgent")}),(0,t.jsx)(eQ,{label:h("settings.stageTimeouts.analyze"),description:h("settings.stageTimeouts.analyzeDescription"),htmlFor:"timeout-analyze",children:(0,t.jsx)(eZ,{id:"timeout-analyze",testId:"timeout-analyze-input",value:ey,onChange:ek,onBlur:()=>{ey!==ta&&S(tp({analyzeTimeout:ey}))},defaultSeconds:1800})}),(0,t.jsx)(eQ,{label:h("settings.stageTimeouts.requirements"),description:h("settings.stageTimeouts.requirementsDescription"),htmlFor:"timeout-requirements",children:(0,t.jsx)(eZ,{id:"timeout-requirements",testId:"timeout-requirements-input",value:eS,onChange:eC,onBlur:()=>{eS!==tl&&S(tp({requirementsTimeout:eS}))},defaultSeconds:1800})}),(0,t.jsx)(eQ,{label:h("settings.stageTimeouts.research"),description:h("settings.stageTimeouts.researchDescription"),htmlFor:"timeout-research",children:(0,t.jsx)(eZ,{id:"timeout-research",testId:"timeout-research-input",value:eM,onChange:eN,onBlur:()=>{eM!==tr&&S(tp({researchTimeout:eM}))},defaultSeconds:1800})}),(0,t.jsx)(eQ,{label:h("settings.stageTimeouts.plan"),description:h("settings.stageTimeouts.planDescription"),htmlFor:"timeout-plan",children:(0,t.jsx)(eZ,{id:"timeout-plan",testId:"timeout-plan-input",value:eI,onChange:eT,onBlur:()=>{eI!==to&&S(tp({planTimeout:eI}))},defaultSeconds:1800})}),(0,t.jsx)(eQ,{label:h("settings.stageTimeouts.implement"),description:h("settings.stageTimeouts.implementDescription"),htmlFor:"timeout-implement",children:(0,t.jsx)(eZ,{id:"timeout-implement",testId:"timeout-implement-input",value:eD,onChange:eP,onBlur:()=>{eD!==tc&&S(tp({implementTimeout:eD}))},defaultSeconds:1800})}),(0,t.jsx)(eQ,{label:h("settings.stageTimeouts.fastImplement"),description:h("settings.stageTimeouts.fastImplementDescription"),htmlFor:"timeout-fast-implement",children:(0,t.jsx)(eZ,{id:"timeout-fast-implement",testId:"timeout-fast-implement-input",value:eA,onChange:eF,onBlur:()=>{eA!==td&&S(tp({fastImplementTimeout:eA}))},defaultSeconds:1800})}),(0,t.jsx)(eQ,{label:h("settings.stageTimeouts.merge"),description:h("settings.stageTimeouts.mergeDescription"),htmlFor:"timeout-merge",children:(0,t.jsx)(eZ,{id:"timeout-merge",testId:"timeout-merge-input",value:eR,onChange:eE,onBlur:()=>{eR!==tu&&S(tp({mergeTimeout:eR}))},defaultSeconds:1800})}),(0,t.jsx)(e3,{children:h("settings.stageTimeouts.subsections.analyzeRepoAgent")}),(0,t.jsx)(eQ,{label:h("settings.stageTimeouts.analyze"),description:h("settings.stageTimeouts.analyzeDescription"),htmlFor:"timeout-analyze-repo",children:(0,t.jsx)(eZ,{id:"timeout-analyze-repo",testId:"timeout-analyze-repo-input",value:eB,onChange:ez,onBlur:()=>{eB!==tg&&S(tp({analyzeRepoTimeout:eB}))},defaultSeconds:600})})]}),(0,t.jsx)(e4,{children:h("settings.stageTimeouts.hint")})]}),(0,t.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,t.jsxs)(e1,{icon:c,title:h("settings.notifications.title"),description:h("settings.notifications.sectionDescription"),testId:"notification-settings-section",children:[(0,t.jsx)(e3,{children:h("settings.notifications.channels")}),(0,t.jsx)(e0,{label:h("settings.notifications.inAppLabel"),description:h("settings.notifications.inAppDescription"),id:"notif-in-app",testId:"switch-in-app",checked:e5,onChange:e=>{e8(e),S(tf({inApp:e}))}}),(0,t.jsx)(e3,{children:h("settings.notifications.subsections.agentEvents")}),(0,t.jsx)(e0,{label:h("settings.notifications.events.agentStarted"),id:"notif-event-agentStarted",testId:"switch-event-agentStarted",checked:e6.agentStarted,onChange:e=>{let t={...e6,agentStarted:e};e9(t),S(tf({events:t}))}}),(0,t.jsx)(e0,{label:h("settings.notifications.events.phaseCompleted"),id:"notif-event-phaseCompleted",testId:"switch-event-phaseCompleted",checked:e6.phaseCompleted,onChange:e=>{let t={...e6,phaseCompleted:e};e9(t),S(tf({events:t}))}}),(0,t.jsx)(e0,{label:h("settings.notifications.events.waitingApproval"),id:"notif-event-waitingApproval",testId:"switch-event-waitingApproval",checked:e6.waitingApproval,onChange:e=>{let t={...e6,waitingApproval:e};e9(t),S(tf({events:t}))}}),(0,t.jsx)(e0,{label:h("settings.notifications.events.agentCompleted"),id:"notif-event-agentCompleted",testId:"switch-event-agentCompleted",checked:e6.agentCompleted,onChange:e=>{let t={...e6,agentCompleted:e};e9(t),S(tf({events:t}))}}),(0,t.jsx)(e0,{label:h("settings.notifications.events.agentFailed"),id:"notif-event-agentFailed",testId:"switch-event-agentFailed",checked:e6.agentFailed,onChange:e=>{let t={...e6,agentFailed:e};e9(t),S(tf({events:t}))}}),(0,t.jsx)(e3,{children:h("settings.notifications.subsections.pullRequestEvents")}),(0,t.jsx)(e0,{label:h("settings.notifications.events.prMerged"),id:"notif-event-prMerged",testId:"switch-event-prMerged",checked:e6.prMerged,onChange:e=>{let t={...e6,prMerged:e};e9(t),S(tf({events:t}))}}),(0,t.jsx)(e0,{label:h("settings.notifications.events.prClosed"),id:"notif-event-prClosed",testId:"switch-event-prClosed",checked:e6.prClosed,onChange:e=>{let t={...e6,prClosed:e};e9(t),S(tf({events:t}))}}),(0,t.jsx)(e0,{label:h("settings.notifications.events.prChecksPassed"),id:"notif-event-prChecksPassed",testId:"switch-event-prChecksPassed",checked:e6.prChecksPassed,onChange:e=>{let t={...e6,prChecksPassed:e};e9(t),S(tf({events:t}))}}),(0,t.jsx)(e0,{label:h("settings.notifications.events.prChecksFailed"),id:"notif-event-prChecksFailed",testId:"switch-event-prChecksFailed",checked:e6.prChecksFailed,onChange:e=>{let t={...e6,prChecksFailed:e};e9(t),S(tf({events:t}))}}),(0,t.jsx)(e0,{label:h("settings.notifications.events.prBlocked"),id:"notif-event-prBlocked",testId:"switch-event-prBlocked",checked:e6.prBlocked,onChange:e=>{let t={...e6,prBlocked:e};e9(t),S(tf({events:t}))}}),(0,t.jsx)(e0,{label:h("settings.notifications.events.mergeReviewReady"),id:"notif-event-mergeReviewReady",testId:"switch-event-mergeReviewReady",checked:e6.mergeReviewReady,onChange:e=>{let t={...e6,mergeReviewReady:e};e9(t),S(tf({events:t}))}})]}),(0,t.jsx)(e4,{links:[{label:h("settings.notifications.links.notificationSystem"),href:"https://github.com/shep-ai/shep/blob/main/specs/021-agent-notifications/spec.yaml"}],children:h("settings.notifications.hint")})]}),(0,t.jsxs)("div",{id:"section-messaging",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsx)(ea,{messaging:e.messaging}),(0,t.jsx)(e4,{links:[{label:"Commands.com Gateway",href:"https://github.com/Commands-com/gateway"}],children:"Drive Shep remotely from Telegram or WhatsApp. Pair a chat to send commands and receive notifications through the Commands.com Gateway."})]}),(0,t.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,t.jsxs)(e1,{icon:d,title:h("settings.featureFlags.title"),description:h("settings.featureFlags.sectionDescription"),badge:h("settings.featureFlags.badge"),testId:"feature-flags-settings-section",children:[(0,t.jsx)(e0,{label:h("settings.featureFlags.skills"),description:h("settings.featureFlags.skillsDescription"),id:"flag-skills",testId:"switch-flag-skills",checked:e7.skills,onChange:e=>{let t={...e7,skills:e};te(t),S({featureFlags:t})}}),(0,t.jsx)(e0,{label:h("settings.featureFlags.deployments"),description:h("settings.featureFlags.deploymentsDescription"),id:"flag-envDeploy",testId:"switch-flag-envDeploy",checked:e7.envDeploy,onChange:e=>{let t={...e7,envDeploy:e};te(t),S({featureFlags:t})}}),(0,t.jsx)(e0,{label:h("settings.featureFlags.debug"),description:h("settings.featureFlags.debugDescription"),id:"flag-debug",testId:"switch-flag-debug",checked:e7.debug,onChange:e=>{let t={...e7,debug:e};te(t),S({featureFlags:t})}}),(0,t.jsx)(e0,{label:h("settings.featureFlags.githubImport"),description:h("settings.featureFlags.githubImportDescription"),id:"flag-githubImport",testId:"switch-flag-githubImport",checked:e7.githubImport,onChange:e=>{let t={...e7,githubImport:e};te(t),S({featureFlags:t})}}),(0,t.jsx)(e0,{label:h("settings.featureFlags.adoptBranch"),description:h("settings.featureFlags.adoptBranchDescription"),id:"flag-adoptBranch",testId:"switch-flag-adoptBranch",checked:e7.adoptBranch,onChange:e=>{let t={...e7,adoptBranch:e};te(t),S({featureFlags:t})}}),(0,t.jsx)(e0,{label:h("settings.featureFlags.gitRebaseSync"),description:h("settings.featureFlags.gitRebaseSyncDescription"),id:"flag-gitRebaseSync",testId:"switch-flag-gitRebaseSync",checked:e7.gitRebaseSync,onChange:e=>{let t={...e7,gitRebaseSync:e};te(t),S({featureFlags:t})}}),(0,t.jsx)(e0,{label:h("settings.featureFlags.reactFileManager"),description:h("settings.featureFlags.reactFileManagerDescription"),id:"flag-reactFileManager",testId:"switch-flag-reactFileManager",checked:e7.reactFileManager,onChange:e=>{let t={...e7,reactFileManager:e};te(t),S({featureFlags:t})}}),(0,t.jsx)(e0,{label:h("settings.featureFlags.inventory"),description:h("settings.featureFlags.inventoryDescription"),id:"flag-inventory",testId:"switch-flag-inventory",checked:e7.inventory,onChange:e=>{let t={...e7,inventory:e};te(t),S({featureFlags:t})}})]}),(0,t.jsx)(e4,{children:h("settings.featureFlags.hint")})]}),(0,t.jsxs)("div",{id:"section-interactive-agent",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsxs)(e1,{icon:v.MessageSquare,title:h("settings.interactiveAgent.title"),description:h("settings.interactiveAgent.description"),testId:"interactive-agent-settings-section",children:[(0,t.jsx)(e0,{label:h("settings.interactiveAgent.enableChatTab"),description:h("settings.interactiveAgent.enableChatTabDescription"),id:"interactive-agent-enabled",testId:"switch-interactive-agent-enabled",checked:e_,onChange:e=>{eW(e),S({interactiveAgent:{enabled:e,autoTimeoutMinutes:parseInt(eK,10)||15,maxConcurrentSessions:parseInt(eH,10)||3}})}}),(0,t.jsx)(eQ,{label:h("settings.interactiveAgent.autoTimeout"),description:h("settings.interactiveAgent.autoTimeoutDescription"),htmlFor:"interactive-agent-timeout",children:(0,t.jsx)(e2,{id:"interactive-agent-timeout",testId:"input-interactive-agent-timeout",value:eK,placeholder:"15",min:1,max:120,suffix:"min",onChange:eG,onBlur:()=>{let e=parseInt(eK,10),t=Number.isNaN(e)?15:Math.min(120,Math.max(1,e));eG(String(t)),S({interactiveAgent:{enabled:e_,autoTimeoutMinutes:t,maxConcurrentSessions:parseInt(eH,10)||3}})}})}),(0,t.jsx)(eQ,{label:h("settings.interactiveAgent.maxConcurrentSessions"),description:h("settings.interactiveAgent.maxConcurrentSessionsDescription"),htmlFor:"interactive-agent-sessions",children:(0,t.jsx)(e2,{id:"interactive-agent-sessions",testId:"input-interactive-agent-sessions",value:eH,placeholder:"3",min:1,max:10,onChange:eV,onBlur:()=>{let e=parseInt(eH,10),t=Number.isNaN(e)?3:Math.min(10,Math.max(1,e));eV(String(t)),S({interactiveAgent:{enabled:e_,autoTimeoutMinutes:parseInt(eK,10)||15,maxConcurrentSessions:t}})}})})]}),(0,t.jsx)(e4,{children:h("settings.interactiveAgent.hint")})]}),(0,t.jsxs)("div",{id:"section-fab-layout",className:"grid scroll-mt-18 grid-cols-1 gap-x-5 rounded-lg lg:grid-cols-[1fr_280px]",children:[(0,t.jsx)(e1,{icon:b.LayoutGrid,title:h("settings.fabLayout.title"),description:h("settings.fabLayout.description"),testId:"fab-layout-settings-section",children:(0,t.jsx)(e0,{label:h("settings.fabLayout.swapPosition"),description:h("settings.fabLayout.swapPositionDescription"),id:"fab-swap-position",testId:"switch-fab-swap-position",checked:e$,onChange:e=>{eq(e),S({fabLayout:{swapPosition:e}})}})}),(0,t.jsx)(e4,{children:h("settings.fabLayout.hint")})]}),(0,t.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,t.jsxs)(e1,{icon:u,title:h("settings.database.title"),description:h("settings.database.sectionDescription"),testId:"database-settings-section",children:[(0,t.jsx)(eQ,{label:h("settings.database.location"),description:h("settings.database.locationDescription"),children:(0,t.jsx)("span",{className:"text-muted-foreground max-w-50 truncate font-mono text-xs","data-testid":"shep-home-path",children:o})}),(0,t.jsx)(eQ,{label:h("settings.database.size"),children:(0,t.jsx)("span",{className:"text-muted-foreground text-xs","data-testid":"db-file-size",children:g})})]}),(0,t.jsx)(e4,{links:[{label:h("settings.database.links.settingsService"),href:"https://github.com/shep-ai/shep/blob/main/docs/architecture/settings-service.md"},{label:h("settings.database.links.settingsSpec"),href:"https://github.com/shep-ai/shep/blob/main/specs/005-global-settings-service/spec.md"}],children:h("settings.database.hint")})]})]})]})}e.s(["SettingsPageClient",()=>e5],41952)}]);
|