@slycode/slycode 0.2.21 → 0.2.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bridge/api.d.ts +2 -1
- package/dist/bridge/api.js +114 -1
- package/dist/bridge/api.js.map +1 -1
- package/dist/bridge/git-utils.d.ts +9 -0
- package/dist/bridge/git-utils.js +49 -0
- package/dist/bridge/git-utils.js.map +1 -0
- package/dist/bridge/index.js +8 -2
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/provider-utils.d.ts +10 -0
- package/dist/bridge/provider-utils.js +5 -1
- package/dist/bridge/provider-utils.js.map +1 -1
- package/dist/bridge/response-store.d.ts +46 -0
- package/dist/bridge/response-store.js +95 -0
- package/dist/bridge/response-store.js.map +1 -0
- package/dist/bridge/session-manager.d.ts +33 -1
- package/dist/bridge/session-manager.js +191 -2
- package/dist/bridge/session-manager.js.map +1 -1
- package/dist/bridge/types.d.ts +41 -0
- package/dist/data/scaffold-templates/tutorial-project/documentation/kanban.json +1 -1
- package/dist/messaging/bridge-client.d.ts +7 -3
- package/dist/messaging/bridge-client.js +26 -5
- package/dist/messaging/bridge-client.js.map +1 -1
- package/dist/messaging/index.js +149 -30
- package/dist/messaging/index.js.map +1 -1
- package/dist/messaging/state.d.ts +3 -0
- package/dist/messaging/state.js +13 -0
- package/dist/messaging/state.js.map +1 -1
- package/dist/messaging/types.d.ts +3 -0
- package/dist/scripts/kanban.js +448 -2
- package/dist/store/actions/checkpoint.md +1 -1
- package/dist/store/actions/context.md +1 -1
- package/dist/store/actions/create-card.md +1 -1
- package/dist/store/actions/deep-design.md +13 -3
- package/dist/store/actions/design-requirements.md +11 -1
- package/dist/store/actions/explore.md +1 -1
- package/dist/store/actions/onboard.md +2 -4
- package/dist/store/actions/summarize.md +1 -1
- package/dist/store/skills/kanban/SKILL.md +77 -3
- package/dist/web/.next/BUILD_ID +1 -1
- package/dist/web/.next/app-path-routes-manifest.json +1 -0
- package/dist/web/.next/build-manifest.json +2 -2
- package/dist/web/.next/prerender-manifest.json +3 -3
- package/dist/web/.next/routes-manifest.json +6 -0
- package/dist/web/.next/server/app/_global-error.html +2 -2
- package/dist/web/.next/server/app/_global-error.rsc +1 -1
- package/dist/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dist/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/_not-found.html +1 -1
- package/dist/web/.next/server/app/_not-found.rsc +10 -10
- package/dist/web/.next/server/app/_not-found.segments/_full.segment.rsc +10 -10
- package/dist/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/dist/web/.next/server/app/_not-found.segments/_index.segment.rsc +5 -5
- package/dist/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/dist/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/dist/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/dist/web/.next/server/app/api/areas/route.js +1 -1
- package/dist/web/.next/server/app/api/areas/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/bridge/[...path]/route.js +1 -1
- package/dist/web/.next/server/app/api/bridge/[...path]/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/changelog/route/app-paths-manifest.json +3 -0
- package/dist/web/.next/server/app/api/changelog/route/build-manifest.json +11 -0
- package/dist/web/.next/server/app/api/changelog/route/server-reference-manifest.json +4 -0
- package/dist/web/.next/server/app/api/changelog/route.js +7 -0
- package/dist/web/.next/server/app/api/changelog/route.js.map +5 -0
- package/dist/web/.next/server/app/api/changelog/route.js.nft.json +1 -0
- package/dist/web/.next/server/app/api/changelog/route_client-reference-manifest.js +2 -0
- package/dist/web/.next/server/app/api/cli-assets/assistant/route.js +1 -1
- package/dist/web/.next/server/app/api/cli-assets/assistant/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/cli-assets/fix/route.js +1 -1
- package/dist/web/.next/server/app/api/cli-assets/fix/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/cli-assets/import/route.js +1 -1
- package/dist/web/.next/server/app/api/cli-assets/import/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/cli-assets/route.js +2 -2
- package/dist/web/.next/server/app/api/cli-assets/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/cli-assets/store/preview/route.js +1 -1
- package/dist/web/.next/server/app/api/cli-assets/store/preview/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/cli-assets/store/route.js +2 -2
- package/dist/web/.next/server/app/api/cli-assets/store/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/cli-assets/sync/route.js +1 -1
- package/dist/web/.next/server/app/api/cli-assets/sync/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/cli-assets/updates/route.js +2 -2
- package/dist/web/.next/server/app/api/cli-assets/updates/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/dashboard/route.js +2 -2
- package/dist/web/.next/server/app/api/dashboard/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/events/route.js +1 -1
- package/dist/web/.next/server/app/api/events/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/file/route.js +1 -1
- package/dist/web/.next/server/app/api/file/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/git-status/route.js +1 -1
- package/dist/web/.next/server/app/api/git-status/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/kanban/route.js +1 -1
- package/dist/web/.next/server/app/api/kanban/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/kanban/stream/route.js +1 -1
- package/dist/web/.next/server/app/api/kanban/stream/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/projects/[id]/route.js +2 -2
- package/dist/web/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/projects/analyze/route.js +1 -1
- package/dist/web/.next/server/app/api/projects/analyze/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/projects/reorder/route.js +2 -2
- package/dist/web/.next/server/app/api/projects/reorder/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/projects/route.js +2 -2
- package/dist/web/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/providers/route.js +1 -1
- package/dist/web/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/scheduler/route.js +1 -1
- package/dist/web/.next/server/app/api/scheduler/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/search/route.js +1 -1
- package/dist/web/.next/server/app/api/search/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/settings/route.js +1 -1
- package/dist/web/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/sly-actions/invalidate/route.js +1 -1
- package/dist/web/.next/server/app/api/sly-actions/invalidate/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/sly-actions/route.js +1 -1
- package/dist/web/.next/server/app/api/sly-actions/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/sly-actions/stream/route.js +1 -1
- package/dist/web/.next/server/app/api/sly-actions/stream/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/system-stats/route.js +1 -1
- package/dist/web/.next/server/app/api/system-stats/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/terminal-classes/route.js +1 -1
- package/dist/web/.next/server/app/api/terminal-classes/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/transcribe/route.js +5 -5
- package/dist/web/.next/server/app/api/transcribe/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/api/version-check/route.js +1 -1
- package/dist/web/.next/server/app/api/version-check/route.js.nft.json +1 -1
- package/dist/web/.next/server/app/page.js +1 -1
- package/dist/web/.next/server/app/page.js.nft.json +1 -1
- package/dist/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app/project/[id]/page.js +2 -2
- package/dist/web/.next/server/app/project/[id]/page.js.nft.json +1 -1
- package/dist/web/.next/server/app/project/[id]/page_client-reference-manifest.js +1 -1
- package/dist/web/.next/server/app-paths-manifest.json +1 -0
- package/dist/web/.next/server/chunks/{[externals]__c6831f39._.js → [externals]__78e522ea._.js} +2 -2
- package/dist/web/.next/server/chunks/{[root-of-the-server]__1ec21ccc._.js → [root-of-the-server]__029203cd._.js} +3 -3
- package/dist/web/.next/server/chunks/{[root-of-the-server]__4297cb97._.js → [root-of-the-server]__0d6d4443._.js} +1 -1
- package/dist/web/.next/server/chunks/[root-of-the-server]__172ad0b1._.js +18 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__1c5f4ef9._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__1cab11f0._.js +3 -0
- package/dist/web/.next/server/chunks/{[root-of-the-server]__0f69c28a._.js → [root-of-the-server]__1eb3f172._.js} +2 -2
- package/dist/web/.next/server/chunks/[root-of-the-server]__22cba275._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__2543e413._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__2c42a835._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__2ed0ff47._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__35454eea._.js +27 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__35768b56._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__3880228a._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__42322d88._.js +3 -0
- package/dist/web/.next/server/chunks/{[root-of-the-server]__d0f4efec._.js → [root-of-the-server]__5152eeff._.js} +3 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__527c7f57._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__5c5dac4b._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__5cb130f2._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__68927e75._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__719517c7._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__73cf49c2._.js +3 -0
- package/dist/web/.next/server/chunks/{[root-of-the-server]__f5dae2ad._.js → [root-of-the-server]__7af4ab09._.js} +1 -1
- package/dist/web/.next/server/chunks/{[root-of-the-server]__4244617a._.js → [root-of-the-server]__7e6860e0._.js} +3 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__88bf5e22._.js +3 -0
- package/dist/web/.next/server/chunks/{[root-of-the-server]__f97e93fa._.js → [root-of-the-server]__8b4259cb._.js} +3 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__92f81907._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__967603e9._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__9e4bd28f._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__a259539f._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__ba1d2e56._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__c942d872._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__d7893622._.js +3 -0
- package/dist/web/.next/server/chunks/{[root-of-the-server]__3b9d3e43._.js → [root-of-the-server]__d843611b._.js} +6 -6
- package/dist/web/.next/server/chunks/[root-of-the-server]__f4d2627f._.js +3 -0
- package/dist/web/.next/server/chunks/[root-of-the-server]__f597835d._.js +3 -0
- package/dist/web/.next/server/chunks/{[root-of-the-server]__cf14e306._.js → [root-of-the-server]__fe8b9abd._.js} +1 -1
- package/dist/web/.next/server/chunks/_next-internal_server_app_api_changelog_route_actions_d6e239bf.js +3 -0
- package/dist/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_18324462.js +1 -1
- package/dist/web/.next/server/chunks/src_677020aa._.js +1 -1
- package/dist/web/.next/server/chunks/src_lib_scheduler_ts_03988e3e._.js +1 -1
- package/dist/web/.next/server/chunks/src_lib_scheduler_ts_7120457c._.js +1 -1
- package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__1f5fc489._.js +4 -3
- package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__43d93717._.js +3 -0
- package/dist/web/.next/server/chunks/ssr/{[root-of-the-server]__077f472c._.js → [root-of-the-server]__6183d28c._.js} +1 -1
- package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__90f82e6d._.js +3 -0
- package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__bcbe4bf2._.js +4 -3
- package/dist/web/.next/server/chunks/ssr/src_components_Dashboard_tsx_efc4dc27._.js +1 -1
- package/dist/web/.next/server/chunks/ssr/src_components_c4135402._.js +1 -1
- package/dist/web/.next/server/chunks/ssr/src_contexts_VoiceContext_tsx_cfba7292._.js +1 -1
- package/dist/web/.next/server/chunks/ssr/src_lib_registry_ts_2fc87c9c._.js +1 -1
- package/dist/web/.next/server/pages/404.html +1 -1
- package/dist/web/.next/server/pages/500.html +2 -2
- package/dist/web/.next/server/server-reference-manifest.js +1 -1
- package/dist/web/.next/server/server-reference-manifest.json +1 -1
- package/dist/web/.next/static/chunks/293449b828207656.css +1 -0
- package/dist/web/.next/static/chunks/{f55f3c8c1a52f80c.js → 3859477038c381ad.js} +1 -1
- package/dist/web/.next/static/chunks/3a5721af09d1c753.js +5 -0
- package/dist/web/.next/static/chunks/{8fb2a99c64580de7.js → 98311243e9a5a0ec.js} +1 -1
- package/dist/web/.next/static/chunks/{b8e0c1aeea4a14bc.js → a47f36b030917d1f.js} +1 -1
- package/dist/web/.next/static/chunks/d60c422421920130.js +5 -0
- package/dist/web/.next/static/chunks/{4049cceee6a49323.js → fa78afe3ceed998b.js} +1 -1
- package/dist/web/src/app/api/changelog/route.ts +45 -0
- package/dist/web/src/app/api/kanban/route.ts +52 -12
- package/dist/web/src/app/api/projects/analyze/route.ts +12 -2
- package/dist/web/src/app/api/projects/route.ts +1 -11
- package/dist/web/src/app/api/providers/route.ts +4 -0
- package/dist/web/src/components/ActivityFeed.tsx +3 -0
- package/dist/web/src/components/BranchTab.tsx +115 -0
- package/dist/web/src/components/ChangelogModal.tsx +234 -0
- package/dist/web/src/components/ClaudeTerminalPanel.tsx +124 -70
- package/dist/web/src/components/Dashboard.tsx +11 -0
- package/dist/web/src/components/GlobalClaudePanel.tsx +6 -0
- package/dist/web/src/components/ProjectKanban.tsx +38 -8
- package/dist/web/src/components/VersionUpdateToast.tsx +6 -4
- package/dist/web/src/components/VoiceControlBar.tsx +1 -1
- package/dist/web/src/lib/paths.ts +14 -0
- package/dist/web/src/lib/scheduler.ts +2 -1
- package/dist/web/src/lib/types.ts +24 -0
- package/dist/web/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/templates/changelog.json +242 -0
- package/templates/kanban-seed.json +1 -1
- package/templates/store/actions/checkpoint.md +1 -1
- package/templates/store/actions/context.md +1 -1
- package/templates/store/actions/create-card.md +1 -1
- package/templates/store/actions/deep-design.md +13 -3
- package/templates/store/actions/design-requirements.md +11 -1
- package/templates/store/actions/explore.md +1 -1
- package/templates/store/actions/onboard.md +2 -4
- package/templates/store/actions/summarize.md +1 -1
- package/templates/store/skills/kanban/SKILL.md +77 -3
- package/templates/tutorial-project/documentation/kanban.json +1 -1
- package/templates/updates/actions/checkpoint.md +1 -1
- package/templates/updates/actions/context.md +1 -1
- package/templates/updates/actions/create-card.md +1 -1
- package/templates/updates/actions/deep-design.md +13 -3
- package/templates/updates/actions/design-requirements.md +11 -1
- package/templates/updates/actions/explore.md +1 -1
- package/templates/updates/actions/onboard.md +2 -4
- package/templates/updates/actions/summarize.md +1 -1
- package/templates/updates/skills/kanban/SKILL.md +77 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__09aec55a._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__12f6cd6f._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__15fc9266._.js +0 -18
- package/dist/web/.next/server/chunks/[root-of-the-server]__198f01e0._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__279e9bf3._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__2b639eab._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__2d1f0ed9._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__3f239285._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__47dd878e._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__5b8c9374._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__5e08b942._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__6ffce934._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__71bb3374._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__7603305e._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__7c476ad6._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__846ca56f._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__98d88050._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__b273cc05._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__b90bbd70._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__d5272169._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__d56e68cb._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__d6362272._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__de1277ee._.js +0 -27
- package/dist/web/.next/server/chunks/[root-of-the-server]__e88a19d2._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__f3e501b6._.js +0 -3
- package/dist/web/.next/server/chunks/[root-of-the-server]__f59af2bc._.js +0 -3
- package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__9ac6ea25._.js +0 -3
- package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__dfe2728c._.js +0 -3
- package/dist/web/.next/static/chunks/3d5195b57fc05540.js +0 -4
- package/dist/web/.next/static/chunks/59fb302a5bfd2dc0.js +0 -4
- package/dist/web/.next/static/chunks/747f5e5f9dcf2621.css +0 -1
- /package/dist/web/.next/static/{0sPAbk-Qw-InZ0rdHjHnC → aN-jqftQVvSm0qVskLybH}/_buildManifest.js +0 -0
- /package/dist/web/.next/static/{0sPAbk-Qw-InZ0rdHjHnC → aN-jqftQVvSm0qVskLybH}/_clientMiddlewareManifest.json +0 -0
- /package/dist/web/.next/static/{0sPAbk-Qw-InZ0rdHjHnC → aN-jqftQVvSm0qVskLybH}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[7491,7957,15156,90473,a=>{"use strict";a.s(["VoiceProvider",()=>o,"useVoice",()=>n],7491);var b=a.i(87924),c=a.i(72131);function d(a,b){let c,d,e=(d=(c=b.split("+").map(a=>a.trim().toLowerCase()))[c.length-1],{ctrlKey:c.includes("ctrl"),shiftKey:c.includes("shift"),altKey:c.includes("alt"),metaKey:c.includes("meta")||c.includes("cmd"),key:"space"===d?" ":"escape"===d?"Escape":"enter"===d?"Enter":d});return(a.key.toLowerCase()===e.key.toLowerCase()||a.key===e.key)&&e.ctrlKey===a.ctrlKey&&e.shiftKey===a.shiftKey&&e.altKey===a.altKey&&e.metaKey===a.metaKey}let e={autoSubmitTerminal:!0,maxRecordingSeconds:300,shortcuts:{startRecording:"Ctrl+.",pauseResume:"Space",submit:"Enter",submitPasteOnly:"Shift+Enter",clear:"Escape"}},f={voice:e};var g=a.i(35112);function h({voiceState:a,elapsedSeconds:c,disabled:d,error:e,onRecord:f,onPause:g,onResume:h,onClear:i,onSubmit:j,onRetry:k,onOpenSettings:l}){let m;return(0,b.jsxs)("div",{className:`flex items-center gap-1.5 ${d?"opacity-40 pointer-events-none":""}`,children:[("idle"===a||"disabled"===a)&&(0,b.jsx)("button",{onClick:f,disabled:d,className:"rounded-md border border-void-400/30 bg-void-200/50 p-1.5 text-void-500 transition-all hover:border-red-400/40 hover:bg-red-400/10 hover:text-red-400 disabled:opacity-50 dark:border-void-500/25 dark:bg-void-700/50 dark:text-void-400 dark:hover:border-red-400/40 dark:hover:bg-red-400/10 dark:hover:text-red-400",title:"Start recording (Ctrl+.)",children:(0,b.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z"})})}),("recording"===a||"paused"===a)&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-1",children:[(0,b.jsx)("span",{className:`inline-block h-2 w-2 rounded-full bg-red-500 ${"recording"===a?"animate-pulse":""}`}),(0,b.jsx)("span",{className:"min-w-[2.5rem] font-mono text-xs tabular-nums text-red-600 dark:text-red-400",children:(m=Math.floor(c/60),`${m}:${(c%60).toString().padStart(2,"0")}`)})]}),(0,b.jsx)("button",{onClick:"recording"===a?g:h,className:"rounded-md border border-void-400/30 bg-void-200/50 p-1.5 text-void-600 transition-all hover:border-neon-blue-400/40 hover:bg-neon-blue-400/10 hover:text-neon-blue-400 dark:border-void-500/25 dark:bg-void-700/50 dark:text-void-400 dark:hover:border-neon-blue-400/40 dark:hover:bg-neon-blue-400/10 dark:hover:text-neon-blue-400",title:"recording"===a?"Pause (Space)":"Resume (Space)",children:"recording"===a?(0,b.jsxs)("svg",{className:"h-3.5 w-3.5",fill:"currentColor",viewBox:"0 0 24 24",children:[(0,b.jsx)("rect",{x:"6",y:"4",width:"4",height:"16"}),(0,b.jsx)("rect",{x:"14",y:"4",width:"4",height:"16"})]}):(0,b.jsx)("svg",{className:"h-3.5 w-3.5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("polygon",{points:"5,3 19,12 5,21"})})}),(0,b.jsx)("button",{onClick:i,className:"rounded-md border border-void-400/30 bg-void-200/50 p-1.5 text-void-600 transition-all hover:border-red-400/40 hover:bg-red-400/10 hover:text-red-400 dark:border-void-500/25 dark:bg-void-700/50 dark:text-void-400 dark:hover:border-red-400/40 dark:hover:bg-red-400/10 dark:hover:text-red-400",title:"Clear recording (Escape)",children:(0,b.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})}),(0,b.jsx)("button",{onClick:j,className:"rounded-md border border-green-400/40 bg-green-400/15 px-2 py-1.5 text-xs font-medium text-green-600 transition-all hover:bg-green-400/25 hover:shadow-[0_0_8px_rgba(34,197,94,0.2)] dark:text-green-400",title:"Submit for transcription (Enter)",children:(0,b.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})})]}),"transcribing"===a&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-1",children:[(0,b.jsxs)("svg",{className:"h-4 w-4 animate-spin text-[#2490b5] dark:text-neon-blue-400",viewBox:"0 0 24 24",fill:"none",children:[(0,b.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,b.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,b.jsx)("span",{className:"text-xs text-[#2490b5] dark:text-neon-blue-400",children:"Transcribing..."})]}),"error"===a&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-xs text-red-400",title:e||"Transcription failed",children:"Failed"}),(0,b.jsx)("button",{onClick:k,className:"rounded-md border border-neon-blue-400/40 bg-neon-blue-400/15 px-1.5 py-1 text-xs font-medium text-neon-blue-400 transition-all hover:bg-neon-blue-400/25",title:"Retry transcription",children:"Retry"}),(0,b.jsx)("button",{onClick:i,className:"rounded-md border border-void-400/30 bg-void-200/50 p-1.5 text-void-600 transition-all hover:border-red-400/40 hover:bg-red-400/10 hover:text-red-400 dark:border-void-500/25 dark:bg-void-700/50 dark:text-void-400 dark:hover:border-red-400/40 dark:hover:bg-red-400/10 dark:hover:text-red-400",title:"Clear",children:(0,b.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,b.jsx)("button",{onClick:l,className:"rounded-md border border-void-400/30 bg-void-200/50 p-1.5 text-void-500 transition-all hover:border-void-400/50 hover:text-void-700 dark:border-void-500/25 dark:bg-void-700/50 dark:text-void-400 dark:hover:border-void-400/50 dark:hover:text-void-300",title:"Voice settings",children:(0,b.jsxs)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})]})})]})}function i({label:a,value:d,onChange:e}){let[f,g]=(0,c.useState)(!1),h=(0,c.useRef)(null),i=(0,c.useCallback)(a=>{if(!f)return;a.preventDefault(),a.stopPropagation();let b=[];a.ctrlKey&&b.push("Ctrl"),a.shiftKey&&b.push("Shift"),a.altKey&&b.push("Alt"),a.metaKey&&b.push("Cmd");let c=a.key;if(!["Control","Shift","Alt","Meta"].includes(c)){let a=" "===c?"Space":"Escape"===c?"Escape":"Enter"===c?"Enter":(c.length,c);b.push(a),e(b.join("+")),g(!1)}},[f,e]);return(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-void-600 dark:text-void-400",children:a}),(0,b.jsx)("input",{ref:h,type:"text",value:f?"Press keys...":d,readOnly:!0,onFocus:()=>g(!0),onBlur:()=>g(!1),onKeyDown:i,className:`w-28 rounded border px-2 py-1 text-center text-xs ${f?"border-neon-blue-400 bg-neon-blue-400/10 text-neon-blue-600 dark:text-neon-blue-400":"border-void-300 bg-void-50 text-void-700 dark:border-void-600 dark:bg-void-700 dark:text-void-300"} cursor-pointer outline-none`})]})}function j({settings:a,onSave:d,onClose:e}){let f=(0,c.useRef)(null),[g,h]=(0,c.useState)({...a.shortcuts}),[j,k]=(0,c.useState)(a.autoSubmitTerminal),[l,m]=(0,c.useState)(Math.round(a.maxRecordingSeconds/60)),n=(0,c.useRef)({shortcuts:g,autoSubmit:j,maxMinutes:l});return n.current={shortcuts:g,autoSubmit:j,maxMinutes:l},(0,c.useEffect)(()=>()=>{let{shortcuts:a,autoSubmit:b,maxMinutes:c}=n.current;d({shortcuts:a,autoSubmitTerminal:b,maxRecordingSeconds:60*Math.max(1,c)})},[]),(0,c.useEffect)(()=>{let a=a=>{f.current&&!f.current.contains(a.target)&&e()};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[e]),(0,b.jsxs)("div",{ref:f,className:"w-80 rounded-lg border border-void-200 bg-white p-4 shadow-(--shadow-overlay) dark:border-void-600 dark:bg-void-800",children:[(0,b.jsx)("h3",{className:"mb-3 text-sm font-medium text-void-800 dark:text-void-200",children:"Voice Settings"}),(0,b.jsxs)("div",{className:"mb-4 space-y-2",children:[(0,b.jsx)("div",{className:"text-xs font-medium text-void-500 dark:text-void-400",children:"Keyboard Shortcuts"}),(0,b.jsx)(i,{label:"Start recording",value:g.startRecording,onChange:a=>h(b=>({...b,startRecording:a}))}),(0,b.jsx)(i,{label:"Pause / Resume",value:g.pauseResume,onChange:a=>h(b=>({...b,pauseResume:a}))}),(0,b.jsx)(i,{label:"Submit",value:g.submit,onChange:a=>h(b=>({...b,submit:a}))}),(0,b.jsx)(i,{label:"Paste only",value:g.submitPasteOnly,onChange:a=>h(b=>({...b,submitPasteOnly:a}))}),(0,b.jsx)(i,{label:"Clear / Cancel",value:g.clear,onChange:a=>h(b=>({...b,clear:a}))})]}),(0,b.jsxs)("div",{className:"space-y-3 border-t border-void-200 pt-3 dark:border-void-600",children:[(0,b.jsx)("div",{className:"text-xs font-medium text-void-500 dark:text-void-400",children:"Behaviour"}),(0,b.jsxs)("label",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-void-600 dark:text-void-400",children:"Auto-submit (terminal)"}),(0,b.jsx)("button",{type:"button",role:"switch","aria-checked":j,onClick:()=>k(!j),className:`relative inline-flex h-5 w-9 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors ${j?"bg-green-500":"bg-void-300 dark:bg-void-600"}`,children:(0,b.jsx)("span",{className:`pointer-events-none inline-block h-4 w-4 transform rounded-full bg-white shadow transition ${j?"translate-x-4":"translate-x-0"}`})})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-void-600 dark:text-void-400",children:"Max recording (min)"}),(0,b.jsx)("input",{type:"number",min:1,max:30,value:l,onChange:a=>m(parseInt(a.target.value)||5),className:"w-16 rounded border border-void-300 bg-void-50 px-2 py-1 text-center text-xs text-void-700 outline-none dark:border-void-600 dark:bg-void-700 dark:text-void-300"})]})]})]})}function k({error:a,hasRecording:d,onRetry:e,onClear:f,onClose:g}){let h=(0,c.useRef)(null);(0,c.useEffect)(()=>{let a=a=>{h.current&&!h.current.contains(a.target)&&g()};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[g]);let i=!d;return(0,b.jsxs)("div",{ref:h,className:"w-72 rounded-lg border border-red-400/30 bg-white p-3 shadow-(--shadow-overlay) dark:border-red-400/20 dark:bg-void-800",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-start gap-2",children:[(0,b.jsx)("svg",{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-red-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-xs font-medium text-red-600 dark:text-red-400",children:i?"Recording Failed":"Transcription Failed"}),(0,b.jsx)("div",{className:"mt-1 text-xs text-void-600 dark:text-void-300",children:a})]})]}),(0,b.jsx)("div",{className:"mt-2 text-xs text-void-500 dark:text-void-400",children:i&&1?"Microphone requires HTTPS or localhost. Try accessing via localhost:3003, or add this origin to chrome://flags/#unsafely-treat-insecure-origin-as-secure.":i?"Could not access the microphone.":"Your recording is preserved. You can retry or clear and start over."}),(0,b.jsxs)("div",{className:"mt-3 flex justify-end gap-2",children:[(0,b.jsx)("button",{onClick:f,className:"rounded border border-void-300 bg-void-100 px-2 py-1 text-xs text-void-600 hover:text-void-800 dark:border-void-600 dark:bg-void-700 dark:text-void-400 dark:hover:text-void-300",children:i?"Dismiss":"Clear"}),d&&e&&(0,b.jsx)("button",{onClick:e,className:"rounded border border-neon-blue-400/40 bg-neon-blue-400/15 px-2 py-1 text-xs text-neon-blue-600 hover:bg-neon-blue-400/25 dark:text-neon-blue-400",children:"Retry"})]})]})}function l(){let a=n(),d=(0,c.useRef)(null),e=(0,c.useRef)(0),[f,i]=(0,c.useState)(!1);return((0,c.useEffect)(()=>{i(!0)},[]),null===a.currentClaimantId&&f&&("idle"!==a.voiceState&&"disabled"!==a.voiceState||a.showSettings))?(0,g.createPortal)((0,b.jsxs)("div",{className:"fixed bottom-4 right-4 z-50 animate-in fade-in slide-in-from-bottom-2 duration-200 rounded-xl border border-red-400/30 bg-white/95 px-3 py-2 shadow-(--shadow-card) backdrop-blur-sm dark:border-red-400/20 dark:bg-void-800/95",ref:d,children:[(0,b.jsx)(h,{voiceState:a.voiceState,elapsedSeconds:a.elapsedSeconds,disabled:!1,error:a.error,onRecord:a.startRecording,onPause:a.pauseRecording,onResume:a.resumeRecording,onClear:a.clearRecording,onSubmit:a.submitRecording,onRetry:a.retryTranscription,onOpenSettings:()=>{Date.now()-e.current<200||a.setShowSettings(!a.showSettings)}}),a.showSettings&&(0,b.jsx)("div",{style:{position:"fixed",bottom:60,right:16,zIndex:9999},children:(0,b.jsx)(j,{settings:a.settings.voice,onSave:b=>a.updateSettings({voice:b}),onClose:()=>{e.current=Date.now(),a.setShowSettings(!1)}})}),"error"===a.voiceState&&a.error&&(0,b.jsx)("div",{style:{position:"fixed",bottom:60,right:16,zIndex:9999},children:(0,b.jsx)(k,{error:a.error,hasRecording:a.hasRecording,onRetry:()=>a.retryTranscription(),onClear:()=>a.clearRecording(),onClose:()=>a.clearRecording()})})]}),document.body):null}a.s(["VoiceControlBar",()=>h],7957),a.s(["VoiceSettingsPopover",()=>j],15156),a.s(["VoiceErrorPopup",()=>k],90473);let m=(0,c.createContext)(null);function n(){let a=(0,c.useContext)(m);if(!a)throw Error("useVoice() must be used inside <VoiceProvider>");return a}function o({children:a}){let{settings:g,updateSettings:h}=function(){let[a,b]=(0,c.useState)(f),[d,g]=(0,c.useState)(!0);return(0,c.useEffect)(()=>{fetch("/api/settings").then(a=>a.json()).then(a=>{b({...f,...a,voice:{...e,...a?.voice}})}).catch(()=>{}).finally(()=>g(!1))},[]),{settings:a,updateSettings:(0,c.useCallback)(async a=>{try{let c=await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(c.ok){let a=await c.json();return b({...f,...a,voice:{...e,...a?.voice}}),a}}catch{}return null},[]),isLoading:d}}(),i=(0,c.useRef)(new Map),j=(0,c.useRef)(null),k=(0,c.useCallback)((a,b)=>{i.current.set(a,b),j.current=a},[]),n=(0,c.useCallback)(a=>{if(i.current.delete(a),j.current===a){let a=Array.from(i.current.keys());j.current=a.length>0?a[0]:null}},[]),o=(0,c.useRef)(null),[p,q]=(0,c.useState)(null),r=(0,c.useRef)(null),s=(0,c.useRef)("auto"),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(!1),x=(0,c.useCallback)(a=>{let b=r.current;if(b){if("input"===b.type&&b.element){if(!document.contains(b.element))return;let c=b.element,d=c.selectionStart??c.value.length,e=c.selectionEnd??c.value.length;c.focus(),c.setSelectionRange(d,e),document.execCommand("insertText",!1,a)}else if("terminal"===b.type&&b.terminalId){let c=i.current.get(b.terminalId);if(!c)return;let d="auto"===s.current&&g.voice.autoSubmitTerminal;c.sendInput(a),d&&setTimeout(()=>c.sendInput("\r"),300)}s.current="auto"}},[g.voice.autoSubmitTerminal]),y=(0,c.useCallback)(a=>{o.current?o.current.onTranscriptionComplete(a):x(a)},[x]),z=function({maxRecordingSeconds:a,onTranscriptionComplete:b}){let[d,e]=(0,c.useState)("idle"),[f,g]=(0,c.useState)(0),[h,i]=(0,c.useState)(null),[j,k]=(0,c.useState)(null),l=(0,c.useRef)(null),m=(0,c.useRef)([]),n=(0,c.useRef)(null),o=(0,c.useRef)(null),p=(0,c.useRef)(null),q=(0,c.useRef)(0),r=(0,c.useRef)(!1),s=(0,c.useRef)(b);(0,c.useEffect)(()=>{s.current=b},[b]);let t=(0,c.useCallback)(()=>{n.current||(n.current=setInterval(()=>{g(a=>a+1)},1e3))},[]),u=(0,c.useCallback)(()=>{n.current&&(clearInterval(n.current),n.current=null)},[]);(0,c.useEffect)(()=>{"recording"===d&&f-q.current>=a&&(l.current?.state==="recording"&&l.current.pause(),r.current=!0,u(),e("paused"))},[d,f,a,u]),(0,c.useEffect)(()=>()=>{if(u(),l.current?.state!=="inactive")try{l.current?.stop()}catch{}p.current?.getTracks().forEach(a=>a.stop())},[u]);let v=(0,c.useCallback)(()=>new Promise(a=>{let b=l.current;b&&"inactive"!==b.state?(b.ondataavailable=a=>{a.data.size>0&&m.current.push(a.data)},b.onstop=()=>{a(new Blob(m.current,{type:m.current[0]?.type||"audio/webm"}))},b.stop()):a(new Blob(m.current,{type:m.current[0]?.type||"audio/webm"}))}),[]),w=(0,c.useCallback)(async a=>{let b=new FormData;b.append("audio",a,"recording.webm");let c=await fetch("/api/transcribe",{method:"POST",body:b}),d=await c.json();if(!c.ok)throw Error(d.error||"Transcription failed");return d.text},[]),x=(0,c.useCallback)(()=>{p.current?.getTracks().forEach(a=>a.stop()),p.current=null},[]),y=(0,c.useCallback)(async()=>{if("idle"===d||"disabled"===d)try{i(null),k(null),m.current=[],o.current=null,g(0),q.current=0;let a=await navigator.mediaDevices.getUserMedia({audio:!0});p.current=a;let b=MediaRecorder.isTypeSupported("audio/ogg;codecs=opus")?"audio/ogg;codecs=opus":MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":MediaRecorder.isTypeSupported("audio/mp4")?"audio/mp4":"",c=new MediaRecorder(a,b?{mimeType:b}:void 0);l.current=c,c.ondataavailable=a=>{a.data.size>0&&m.current.push(a.data)},c.start(1e3),e("recording"),t()}catch(b){let a=b.message;a.includes("Permission")||a.includes("NotAllowed")?i("Microphone permission denied. Please allow microphone access."):i(a||"Failed to start recording"),e("error"),x()}},[d,t,x]),z=(0,c.useCallback)(()=>{"recording"===d&&(l.current?.state==="recording"&&l.current.pause(),u(),e("paused"))},[d,u]),A=(0,c.useCallback)(()=>{"paused"===d&&(l.current?.state==="paused"&&l.current.resume(),r.current&&(q.current=f,r.current=!1),t(),e("recording"))},[d,f,t]),B=(0,c.useCallback)(()=>{if(u(),l.current?.state!=="inactive")try{l.current?.stop()}catch{}m.current=[],o.current=null,g(0),i(null),k(null),x(),e("idle")},[u,x]),C=(0,c.useCallback)(async()=>{if("recording"===d||"paused"===d){u(),e("transcribing");try{let a=await v();o.current=a,x();let b=await w(a);k(b),g(0),m.current=[],e("idle"),s.current?.(b)}catch(a){i(a.message||"Transcription failed"),e("error")}}},[d,u,v,w,x]),D=(0,c.useCallback)(async()=>{if("error"===d&&o.current){e("transcribing"),i(null);try{let a=await w(o.current);k(a),o.current=null,m.current=[],g(0),e("idle"),s.current?.(a)}catch(a){i(a.message||"Transcription failed"),e("error")}}},[d,w]);return{state:d,elapsedSeconds:f,error:h,transcribedText:j,hasRecording:null!==o.current||m.current.length>0,startRecording:y,pauseRecording:z,resumeRecording:A,clearRecording:B,submitRecording:C,retryTranscription:D}}({maxRecordingSeconds:g.voice.maxRecordingSeconds,onTranscriptionComplete:y}),A=(0,c.useCallback)(a=>{o.current&&o.current.id!==a.id&&(o.current.onRelease?.(),"idle"!==z.state&&"disabled"!==z.state&&z.clearRecording()),o.current=a,q(a.id)},[z]),B=(0,c.useCallback)(a=>{o.current?.id===a.id&&("idle"!==z.state&&"error"!==z.state&&"disabled"!==z.state&&z.clearRecording(),o.current=null,q(null))},[z]);(0,c.useEffect)(()=>{let a=a=>{let b=a.target;if(b.closest("[data-voice-target]")&&("INPUT"===b.tagName||"TEXTAREA"===b.tagName))return void w(!0);if(b.closest("[data-terminal-id]")){let a=b.closest("[data-terminal-id]").dataset.terminalId;a&&i.current.has(a)&&(j.current=a,w(!0))}},b=()=>{setTimeout(()=>{let a=document.activeElement;if(!a)return void w(!1);let b=a.closest("[data-voice-target]")&&("INPUT"===a.tagName||"TEXTAREA"===a.tagName),c=a.closest("[data-terminal-id]");b||c||w(!1)},100)};return document.addEventListener("focusin",a),document.addEventListener("focusout",b),()=>{document.removeEventListener("focusin",a),document.removeEventListener("focusout",b)}},[]);let C=(0,c.useCallback)(()=>{if(o.current)o.current.onRecordStart?.(),z.startRecording();else{let a=document.activeElement;if(a&&("INPUT"===a.tagName||"TEXTAREA"===a.tagName)&&a.closest("[data-voice-target]"))r.current={type:"input",element:a};else if(a?.closest("[data-terminal-id]")){let b=a.closest("[data-terminal-id]").dataset.terminalId||j.current;if(!(b&&i.current.has(b)))return;r.current={type:"terminal",terminalId:b}}else{if(!(j.current&&i.current.has(j.current)))return;r.current={type:"terminal",terminalId:j.current}}z.startRecording()}},[z]),D=(0,c.useCallback)(()=>{s.current="paste",z.submitRecording()},[z]),E=(0,c.useCallback)(()=>{"recording"===z.state?z.pauseRecording():"paused"===z.state&&z.resumeRecording()},[z]);!function({voiceState:a,shortcuts:b,callbacks:e,enabled:f,hasFieldFocus:g,suspended:h}){let i=(0,c.useRef)(e),j=(0,c.useRef)(a),k=(0,c.useRef)(b),l=(0,c.useRef)(g),m=(0,c.useRef)(h);(0,c.useEffect)(()=>{i.current=e,j.current=a,k.current=b,l.current=g,m.current=h}),(0,c.useEffect)(()=>{if(!f)return;let a=a=>{if(m.current)return;let b=j.current,c=k.current,e=i.current;if("idle"===b&&l.current&&d(a,c.startRecording)){a.preventDefault(),a.stopPropagation(),e.onStartRecording();return}if("recording"===b||"paused"===b){if(d(a,c.pauseResume)){a.preventDefault(),a.stopPropagation(),e.onPauseResume();return}if(d(a,c.submitPasteOnly)){a.preventDefault(),a.stopPropagation(),e.onSubmitPasteOnly();return}if(d(a,c.submit)){a.preventDefault(),a.stopPropagation(),e.onSubmit();return}if(d(a,c.clear)){a.preventDefault(),a.stopPropagation(),e.onClear();return}}};return document.addEventListener("keydown",a,!0),()=>document.removeEventListener("keydown",a,!0)},[f])}({voiceState:z.state,shortcuts:g.voice.shortcuts,callbacks:{onStartRecording:C,onPauseResume:E,onSubmit:z.submitRecording,onSubmitPasteOnly:D,onClear:z.clearRecording},enabled:!0,hasFieldFocus:!!o.current||v,suspended:t});let F={voiceState:z.state,elapsedSeconds:z.elapsedSeconds,error:z.error,hasRecording:z.hasRecording,startRecording:z.startRecording,pauseRecording:z.pauseRecording,resumeRecording:z.resumeRecording,clearRecording:z.clearRecording,submitRecording:z.submitRecording,retryTranscription:z.retryTranscription,claimVoiceControl:A,releaseVoiceControl:B,currentClaimantId:p,settings:g,updateSettings:h,registerTerminal:k,unregisterTerminal:n,submitModeRef:s,showSettings:t,setShowSettings:u,hasFieldFocus:v,setHasFieldFocus:w};return(0,b.jsxs)(m.Provider,{value:F,children:[a,(0,b.jsx)(l,{})]})}}];
|
|
1
|
+
module.exports=[7491,7957,15156,90473,a=>{"use strict";a.s(["VoiceProvider",()=>o,"useVoice",()=>n],7491);var b=a.i(87924),c=a.i(72131);function d(a,b){let c,d,e=(d=(c=b.split("+").map(a=>a.trim().toLowerCase()))[c.length-1],{ctrlKey:c.includes("ctrl"),shiftKey:c.includes("shift"),altKey:c.includes("alt"),metaKey:c.includes("meta")||c.includes("cmd"),key:"space"===d?" ":"escape"===d?"Escape":"enter"===d?"Enter":d});return(a.key.toLowerCase()===e.key.toLowerCase()||a.key===e.key)&&e.ctrlKey===a.ctrlKey&&e.shiftKey===a.shiftKey&&e.altKey===a.altKey&&e.metaKey===a.metaKey}let e={autoSubmitTerminal:!0,maxRecordingSeconds:300,shortcuts:{startRecording:"Ctrl+.",pauseResume:"Space",submit:"Enter",submitPasteOnly:"Shift+Enter",clear:"Escape"}},f={voice:e};var g=a.i(35112);function h({voiceState:a,elapsedSeconds:c,disabled:d,error:e,onRecord:f,onPause:g,onResume:h,onClear:i,onSubmit:j,onRetry:k,onOpenSettings:l}){let m;return(0,b.jsxs)("div",{className:`flex items-center gap-1.5 ${d?"opacity-40 pointer-events-none":""}`,children:[("idle"===a||"disabled"===a)&&(0,b.jsx)("button",{onClick:f,disabled:d,className:"rounded-md border border-void-400/30 bg-void-200/50 p-1.5 text-void-500 transition-all hover:border-red-400/40 hover:bg-red-400/10 hover:text-red-400 disabled:opacity-50 dark:border-void-500/25 dark:bg-void-700/50 dark:text-void-400 dark:hover:border-red-400/40 dark:hover:bg-red-400/10 dark:hover:text-red-400",title:"Start recording [Ctrl+.]",children:(0,b.jsx)("svg",{className:"h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z"})})}),("recording"===a||"paused"===a)&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-1",children:[(0,b.jsx)("span",{className:`inline-block h-2 w-2 rounded-full bg-red-500 ${"recording"===a?"animate-pulse":""}`}),(0,b.jsx)("span",{className:"min-w-[2.5rem] font-mono text-xs tabular-nums text-red-600 dark:text-red-400",children:(m=Math.floor(c/60),`${m}:${(c%60).toString().padStart(2,"0")}`)})]}),(0,b.jsx)("button",{onClick:"recording"===a?g:h,className:"rounded-md border border-void-400/30 bg-void-200/50 p-1.5 text-void-600 transition-all hover:border-neon-blue-400/40 hover:bg-neon-blue-400/10 hover:text-neon-blue-400 dark:border-void-500/25 dark:bg-void-700/50 dark:text-void-400 dark:hover:border-neon-blue-400/40 dark:hover:bg-neon-blue-400/10 dark:hover:text-neon-blue-400",title:"recording"===a?"Pause (Space)":"Resume (Space)",children:"recording"===a?(0,b.jsxs)("svg",{className:"h-3.5 w-3.5",fill:"currentColor",viewBox:"0 0 24 24",children:[(0,b.jsx)("rect",{x:"6",y:"4",width:"4",height:"16"}),(0,b.jsx)("rect",{x:"14",y:"4",width:"4",height:"16"})]}):(0,b.jsx)("svg",{className:"h-3.5 w-3.5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("polygon",{points:"5,3 19,12 5,21"})})}),(0,b.jsx)("button",{onClick:i,className:"rounded-md border border-void-400/30 bg-void-200/50 p-1.5 text-void-600 transition-all hover:border-red-400/40 hover:bg-red-400/10 hover:text-red-400 dark:border-void-500/25 dark:bg-void-700/50 dark:text-void-400 dark:hover:border-red-400/40 dark:hover:bg-red-400/10 dark:hover:text-red-400",title:"Clear recording (Escape)",children:(0,b.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})}),(0,b.jsx)("button",{onClick:j,className:"rounded-md border border-green-400/40 bg-green-400/15 px-2 py-1.5 text-xs font-medium text-green-600 transition-all hover:bg-green-400/25 hover:shadow-[0_0_8px_rgba(34,197,94,0.2)] dark:text-green-400",title:"Submit for transcription (Enter)",children:(0,b.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})})]}),"transcribing"===a&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-1",children:[(0,b.jsxs)("svg",{className:"h-4 w-4 animate-spin text-[#2490b5] dark:text-neon-blue-400",viewBox:"0 0 24 24",fill:"none",children:[(0,b.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,b.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,b.jsx)("span",{className:"text-xs text-[#2490b5] dark:text-neon-blue-400",children:"Transcribing..."})]}),"error"===a&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-xs text-red-400",title:e||"Transcription failed",children:"Failed"}),(0,b.jsx)("button",{onClick:k,className:"rounded-md border border-neon-blue-400/40 bg-neon-blue-400/15 px-1.5 py-1 text-xs font-medium text-neon-blue-400 transition-all hover:bg-neon-blue-400/25",title:"Retry transcription",children:"Retry"}),(0,b.jsx)("button",{onClick:i,className:"rounded-md border border-void-400/30 bg-void-200/50 p-1.5 text-void-600 transition-all hover:border-red-400/40 hover:bg-red-400/10 hover:text-red-400 dark:border-void-500/25 dark:bg-void-700/50 dark:text-void-400 dark:hover:border-red-400/40 dark:hover:bg-red-400/10 dark:hover:text-red-400",title:"Clear",children:(0,b.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,b.jsx)("button",{onClick:l,className:"rounded-md border border-void-400/30 bg-void-200/50 p-1.5 text-void-500 transition-all hover:border-void-400/50 hover:text-void-700 dark:border-void-500/25 dark:bg-void-700/50 dark:text-void-400 dark:hover:border-void-400/50 dark:hover:text-void-300",title:"Voice settings",children:(0,b.jsxs)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:[(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})]})})]})}function i({label:a,value:d,onChange:e}){let[f,g]=(0,c.useState)(!1),h=(0,c.useRef)(null),i=(0,c.useCallback)(a=>{if(!f)return;a.preventDefault(),a.stopPropagation();let b=[];a.ctrlKey&&b.push("Ctrl"),a.shiftKey&&b.push("Shift"),a.altKey&&b.push("Alt"),a.metaKey&&b.push("Cmd");let c=a.key;if(!["Control","Shift","Alt","Meta"].includes(c)){let a=" "===c?"Space":"Escape"===c?"Escape":"Enter"===c?"Enter":(c.length,c);b.push(a),e(b.join("+")),g(!1)}},[f,e]);return(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-void-600 dark:text-void-400",children:a}),(0,b.jsx)("input",{ref:h,type:"text",value:f?"Press keys...":d,readOnly:!0,onFocus:()=>g(!0),onBlur:()=>g(!1),onKeyDown:i,className:`w-28 rounded border px-2 py-1 text-center text-xs ${f?"border-neon-blue-400 bg-neon-blue-400/10 text-neon-blue-600 dark:text-neon-blue-400":"border-void-300 bg-void-50 text-void-700 dark:border-void-600 dark:bg-void-700 dark:text-void-300"} cursor-pointer outline-none`})]})}function j({settings:a,onSave:d,onClose:e}){let f=(0,c.useRef)(null),[g,h]=(0,c.useState)({...a.shortcuts}),[j,k]=(0,c.useState)(a.autoSubmitTerminal),[l,m]=(0,c.useState)(Math.round(a.maxRecordingSeconds/60)),n=(0,c.useRef)({shortcuts:g,autoSubmit:j,maxMinutes:l});return n.current={shortcuts:g,autoSubmit:j,maxMinutes:l},(0,c.useEffect)(()=>()=>{let{shortcuts:a,autoSubmit:b,maxMinutes:c}=n.current;d({shortcuts:a,autoSubmitTerminal:b,maxRecordingSeconds:60*Math.max(1,c)})},[]),(0,c.useEffect)(()=>{let a=a=>{f.current&&!f.current.contains(a.target)&&e()};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[e]),(0,b.jsxs)("div",{ref:f,className:"w-80 rounded-lg border border-void-200 bg-white p-4 shadow-(--shadow-overlay) dark:border-void-600 dark:bg-void-800",children:[(0,b.jsx)("h3",{className:"mb-3 text-sm font-medium text-void-800 dark:text-void-200",children:"Voice Settings"}),(0,b.jsxs)("div",{className:"mb-4 space-y-2",children:[(0,b.jsx)("div",{className:"text-xs font-medium text-void-500 dark:text-void-400",children:"Keyboard Shortcuts"}),(0,b.jsx)(i,{label:"Start recording",value:g.startRecording,onChange:a=>h(b=>({...b,startRecording:a}))}),(0,b.jsx)(i,{label:"Pause / Resume",value:g.pauseResume,onChange:a=>h(b=>({...b,pauseResume:a}))}),(0,b.jsx)(i,{label:"Submit",value:g.submit,onChange:a=>h(b=>({...b,submit:a}))}),(0,b.jsx)(i,{label:"Paste only",value:g.submitPasteOnly,onChange:a=>h(b=>({...b,submitPasteOnly:a}))}),(0,b.jsx)(i,{label:"Clear / Cancel",value:g.clear,onChange:a=>h(b=>({...b,clear:a}))})]}),(0,b.jsxs)("div",{className:"space-y-3 border-t border-void-200 pt-3 dark:border-void-600",children:[(0,b.jsx)("div",{className:"text-xs font-medium text-void-500 dark:text-void-400",children:"Behaviour"}),(0,b.jsxs)("label",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-void-600 dark:text-void-400",children:"Auto-submit (terminal)"}),(0,b.jsx)("button",{type:"button",role:"switch","aria-checked":j,onClick:()=>k(!j),className:`relative inline-flex h-5 w-9 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors ${j?"bg-green-500":"bg-void-300 dark:bg-void-600"}`,children:(0,b.jsx)("span",{className:`pointer-events-none inline-block h-4 w-4 transform rounded-full bg-white shadow transition ${j?"translate-x-4":"translate-x-0"}`})})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsx)("span",{className:"text-xs text-void-600 dark:text-void-400",children:"Max recording (min)"}),(0,b.jsx)("input",{type:"number",min:1,max:30,value:l,onChange:a=>m(parseInt(a.target.value)||5),className:"w-16 rounded border border-void-300 bg-void-50 px-2 py-1 text-center text-xs text-void-700 outline-none dark:border-void-600 dark:bg-void-700 dark:text-void-300"})]})]})]})}function k({error:a,hasRecording:d,onRetry:e,onClear:f,onClose:g}){let h=(0,c.useRef)(null);(0,c.useEffect)(()=>{let a=a=>{h.current&&!h.current.contains(a.target)&&g()};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[g]);let i=!d;return(0,b.jsxs)("div",{ref:h,className:"w-72 rounded-lg border border-red-400/30 bg-white p-3 shadow-(--shadow-overlay) dark:border-red-400/20 dark:bg-void-800",children:[(0,b.jsxs)("div",{className:"mb-2 flex items-start gap-2",children:[(0,b.jsx)("svg",{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-red-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"text-xs font-medium text-red-600 dark:text-red-400",children:i?"Recording Failed":"Transcription Failed"}),(0,b.jsx)("div",{className:"mt-1 text-xs text-void-600 dark:text-void-300",children:a})]})]}),(0,b.jsx)("div",{className:"mt-2 text-xs text-void-500 dark:text-void-400",children:i&&1?"Microphone requires HTTPS or localhost. Try accessing via localhost:3003, or add this origin to chrome://flags/#unsafely-treat-insecure-origin-as-secure.":i?"Could not access the microphone.":"Your recording is preserved. You can retry or clear and start over."}),(0,b.jsxs)("div",{className:"mt-3 flex justify-end gap-2",children:[(0,b.jsx)("button",{onClick:f,className:"rounded border border-void-300 bg-void-100 px-2 py-1 text-xs text-void-600 hover:text-void-800 dark:border-void-600 dark:bg-void-700 dark:text-void-400 dark:hover:text-void-300",children:i?"Dismiss":"Clear"}),d&&e&&(0,b.jsx)("button",{onClick:e,className:"rounded border border-neon-blue-400/40 bg-neon-blue-400/15 px-2 py-1 text-xs text-neon-blue-600 hover:bg-neon-blue-400/25 dark:text-neon-blue-400",children:"Retry"})]})]})}function l(){let a=n(),d=(0,c.useRef)(null),e=(0,c.useRef)(0),[f,i]=(0,c.useState)(!1);return((0,c.useEffect)(()=>{i(!0)},[]),null===a.currentClaimantId&&f&&("idle"!==a.voiceState&&"disabled"!==a.voiceState||a.showSettings))?(0,g.createPortal)((0,b.jsxs)("div",{className:"fixed bottom-4 right-4 z-50 animate-in fade-in slide-in-from-bottom-2 duration-200 rounded-xl border border-red-400/30 bg-white/95 px-3 py-2 shadow-(--shadow-card) backdrop-blur-sm dark:border-red-400/20 dark:bg-void-800/95",ref:d,children:[(0,b.jsx)(h,{voiceState:a.voiceState,elapsedSeconds:a.elapsedSeconds,disabled:!1,error:a.error,onRecord:a.startRecording,onPause:a.pauseRecording,onResume:a.resumeRecording,onClear:a.clearRecording,onSubmit:a.submitRecording,onRetry:a.retryTranscription,onOpenSettings:()=>{Date.now()-e.current<200||a.setShowSettings(!a.showSettings)}}),a.showSettings&&(0,b.jsx)("div",{style:{position:"fixed",bottom:60,right:16,zIndex:9999},children:(0,b.jsx)(j,{settings:a.settings.voice,onSave:b=>a.updateSettings({voice:b}),onClose:()=>{e.current=Date.now(),a.setShowSettings(!1)}})}),"error"===a.voiceState&&a.error&&(0,b.jsx)("div",{style:{position:"fixed",bottom:60,right:16,zIndex:9999},children:(0,b.jsx)(k,{error:a.error,hasRecording:a.hasRecording,onRetry:()=>a.retryTranscription(),onClear:()=>a.clearRecording(),onClose:()=>a.clearRecording()})})]}),document.body):null}a.s(["VoiceControlBar",()=>h],7957),a.s(["VoiceSettingsPopover",()=>j],15156),a.s(["VoiceErrorPopup",()=>k],90473);let m=(0,c.createContext)(null);function n(){let a=(0,c.useContext)(m);if(!a)throw Error("useVoice() must be used inside <VoiceProvider>");return a}function o({children:a}){let{settings:g,updateSettings:h}=function(){let[a,b]=(0,c.useState)(f),[d,g]=(0,c.useState)(!0);return(0,c.useEffect)(()=>{fetch("/api/settings").then(a=>a.json()).then(a=>{b({...f,...a,voice:{...e,...a?.voice}})}).catch(()=>{}).finally(()=>g(!1))},[]),{settings:a,updateSettings:(0,c.useCallback)(async a=>{try{let c=await fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(c.ok){let a=await c.json();return b({...f,...a,voice:{...e,...a?.voice}}),a}}catch{}return null},[]),isLoading:d}}(),i=(0,c.useRef)(new Map),j=(0,c.useRef)(null),k=(0,c.useCallback)((a,b)=>{i.current.set(a,b),j.current=a},[]),n=(0,c.useCallback)(a=>{if(i.current.delete(a),j.current===a){let a=Array.from(i.current.keys());j.current=a.length>0?a[0]:null}},[]),o=(0,c.useRef)(null),[p,q]=(0,c.useState)(null),r=(0,c.useRef)(null),s=(0,c.useRef)("auto"),[t,u]=(0,c.useState)(!1),[v,w]=(0,c.useState)(!1),x=(0,c.useCallback)(a=>{let b=r.current;if(b){if("input"===b.type&&b.element){if(!document.contains(b.element))return;let c=b.element,d=c.selectionStart??c.value.length,e=c.selectionEnd??c.value.length;c.focus(),c.setSelectionRange(d,e),document.execCommand("insertText",!1,a)}else if("terminal"===b.type&&b.terminalId){let c=i.current.get(b.terminalId);if(!c)return;let d="auto"===s.current&&g.voice.autoSubmitTerminal;c.sendInput(a),d&&setTimeout(()=>c.sendInput("\r"),300)}s.current="auto"}},[g.voice.autoSubmitTerminal]),y=(0,c.useCallback)(a=>{o.current?o.current.onTranscriptionComplete(a):x(a)},[x]),z=function({maxRecordingSeconds:a,onTranscriptionComplete:b}){let[d,e]=(0,c.useState)("idle"),[f,g]=(0,c.useState)(0),[h,i]=(0,c.useState)(null),[j,k]=(0,c.useState)(null),l=(0,c.useRef)(null),m=(0,c.useRef)([]),n=(0,c.useRef)(null),o=(0,c.useRef)(null),p=(0,c.useRef)(null),q=(0,c.useRef)(0),r=(0,c.useRef)(!1),s=(0,c.useRef)(b);(0,c.useEffect)(()=>{s.current=b},[b]);let t=(0,c.useCallback)(()=>{n.current||(n.current=setInterval(()=>{g(a=>a+1)},1e3))},[]),u=(0,c.useCallback)(()=>{n.current&&(clearInterval(n.current),n.current=null)},[]);(0,c.useEffect)(()=>{"recording"===d&&f-q.current>=a&&(l.current?.state==="recording"&&l.current.pause(),r.current=!0,u(),e("paused"))},[d,f,a,u]),(0,c.useEffect)(()=>()=>{if(u(),l.current?.state!=="inactive")try{l.current?.stop()}catch{}p.current?.getTracks().forEach(a=>a.stop())},[u]);let v=(0,c.useCallback)(()=>new Promise(a=>{let b=l.current;b&&"inactive"!==b.state?(b.ondataavailable=a=>{a.data.size>0&&m.current.push(a.data)},b.onstop=()=>{a(new Blob(m.current,{type:m.current[0]?.type||"audio/webm"}))},b.stop()):a(new Blob(m.current,{type:m.current[0]?.type||"audio/webm"}))}),[]),w=(0,c.useCallback)(async a=>{let b=new FormData;b.append("audio",a,"recording.webm");let c=await fetch("/api/transcribe",{method:"POST",body:b}),d=await c.json();if(!c.ok)throw Error(d.error||"Transcription failed");return d.text},[]),x=(0,c.useCallback)(()=>{p.current?.getTracks().forEach(a=>a.stop()),p.current=null},[]),y=(0,c.useCallback)(async()=>{if("idle"===d||"disabled"===d)try{i(null),k(null),m.current=[],o.current=null,g(0),q.current=0;let a=await navigator.mediaDevices.getUserMedia({audio:!0});p.current=a;let b=MediaRecorder.isTypeSupported("audio/ogg;codecs=opus")?"audio/ogg;codecs=opus":MediaRecorder.isTypeSupported("audio/webm;codecs=opus")?"audio/webm;codecs=opus":MediaRecorder.isTypeSupported("audio/mp4")?"audio/mp4":"",c=new MediaRecorder(a,b?{mimeType:b}:void 0);l.current=c,c.ondataavailable=a=>{a.data.size>0&&m.current.push(a.data)},c.start(1e3),e("recording"),t()}catch(b){let a=b.message;a.includes("Permission")||a.includes("NotAllowed")?i("Microphone permission denied. Please allow microphone access."):i(a||"Failed to start recording"),e("error"),x()}},[d,t,x]),z=(0,c.useCallback)(()=>{"recording"===d&&(l.current?.state==="recording"&&l.current.pause(),u(),e("paused"))},[d,u]),A=(0,c.useCallback)(()=>{"paused"===d&&(l.current?.state==="paused"&&l.current.resume(),r.current&&(q.current=f,r.current=!1),t(),e("recording"))},[d,f,t]),B=(0,c.useCallback)(()=>{if(u(),l.current?.state!=="inactive")try{l.current?.stop()}catch{}m.current=[],o.current=null,g(0),i(null),k(null),x(),e("idle")},[u,x]),C=(0,c.useCallback)(async()=>{if("recording"===d||"paused"===d){u(),e("transcribing");try{let a=await v();o.current=a,x();let b=await w(a);k(b),g(0),m.current=[],e("idle"),s.current?.(b)}catch(a){i(a.message||"Transcription failed"),e("error")}}},[d,u,v,w,x]),D=(0,c.useCallback)(async()=>{if("error"===d&&o.current){e("transcribing"),i(null);try{let a=await w(o.current);k(a),o.current=null,m.current=[],g(0),e("idle"),s.current?.(a)}catch(a){i(a.message||"Transcription failed"),e("error")}}},[d,w]);return{state:d,elapsedSeconds:f,error:h,transcribedText:j,hasRecording:null!==o.current||m.current.length>0,startRecording:y,pauseRecording:z,resumeRecording:A,clearRecording:B,submitRecording:C,retryTranscription:D}}({maxRecordingSeconds:g.voice.maxRecordingSeconds,onTranscriptionComplete:y}),A=(0,c.useCallback)(a=>{o.current&&o.current.id!==a.id&&(o.current.onRelease?.(),"idle"!==z.state&&"disabled"!==z.state&&z.clearRecording()),o.current=a,q(a.id)},[z]),B=(0,c.useCallback)(a=>{o.current?.id===a.id&&("idle"!==z.state&&"error"!==z.state&&"disabled"!==z.state&&z.clearRecording(),o.current=null,q(null))},[z]);(0,c.useEffect)(()=>{let a=a=>{let b=a.target;if(b.closest("[data-voice-target]")&&("INPUT"===b.tagName||"TEXTAREA"===b.tagName))return void w(!0);if(b.closest("[data-terminal-id]")){let a=b.closest("[data-terminal-id]").dataset.terminalId;a&&i.current.has(a)&&(j.current=a,w(!0))}},b=()=>{setTimeout(()=>{let a=document.activeElement;if(!a)return void w(!1);let b=a.closest("[data-voice-target]")&&("INPUT"===a.tagName||"TEXTAREA"===a.tagName),c=a.closest("[data-terminal-id]");b||c||w(!1)},100)};return document.addEventListener("focusin",a),document.addEventListener("focusout",b),()=>{document.removeEventListener("focusin",a),document.removeEventListener("focusout",b)}},[]);let C=(0,c.useCallback)(()=>{if(o.current)o.current.onRecordStart?.(),z.startRecording();else{let a=document.activeElement;if(a&&("INPUT"===a.tagName||"TEXTAREA"===a.tagName)&&a.closest("[data-voice-target]"))r.current={type:"input",element:a};else if(a?.closest("[data-terminal-id]")){let b=a.closest("[data-terminal-id]").dataset.terminalId||j.current;if(!(b&&i.current.has(b)))return;r.current={type:"terminal",terminalId:b}}else{if(!(j.current&&i.current.has(j.current)))return;r.current={type:"terminal",terminalId:j.current}}z.startRecording()}},[z]),D=(0,c.useCallback)(()=>{s.current="paste",z.submitRecording()},[z]),E=(0,c.useCallback)(()=>{"recording"===z.state?z.pauseRecording():"paused"===z.state&&z.resumeRecording()},[z]);!function({voiceState:a,shortcuts:b,callbacks:e,enabled:f,hasFieldFocus:g,suspended:h}){let i=(0,c.useRef)(e),j=(0,c.useRef)(a),k=(0,c.useRef)(b),l=(0,c.useRef)(g),m=(0,c.useRef)(h);(0,c.useEffect)(()=>{i.current=e,j.current=a,k.current=b,l.current=g,m.current=h}),(0,c.useEffect)(()=>{if(!f)return;let a=a=>{if(m.current)return;let b=j.current,c=k.current,e=i.current;if("idle"===b&&l.current&&d(a,c.startRecording)){a.preventDefault(),a.stopPropagation(),e.onStartRecording();return}if("recording"===b||"paused"===b){if(d(a,c.pauseResume)){a.preventDefault(),a.stopPropagation(),e.onPauseResume();return}if(d(a,c.submitPasteOnly)){a.preventDefault(),a.stopPropagation(),e.onSubmitPasteOnly();return}if(d(a,c.submit)){a.preventDefault(),a.stopPropagation(),e.onSubmit();return}if(d(a,c.clear)){a.preventDefault(),a.stopPropagation(),e.onClear();return}}};return document.addEventListener("keydown",a,!0),()=>document.removeEventListener("keydown",a,!0)},[f])}({voiceState:z.state,shortcuts:g.voice.shortcuts,callbacks:{onStartRecording:C,onPauseResume:E,onSubmit:z.submitRecording,onSubmitPasteOnly:D,onClear:z.clearRecording},enabled:!0,hasFieldFocus:!!o.current||v,suspended:t});let F={voiceState:z.state,elapsedSeconds:z.elapsedSeconds,error:z.error,hasRecording:z.hasRecording,startRecording:z.startRecording,pauseRecording:z.pauseRecording,resumeRecording:z.resumeRecording,clearRecording:z.clearRecording,submitRecording:z.submitRecording,retryTranscription:z.retryTranscription,claimVoiceControl:A,releaseVoiceControl:B,currentClaimantId:p,settings:g,updateSettings:h,registerTerminal:k,unregisterTerminal:n,submitModeRef:s,showSettings:t,setShowSettings:u,hasFieldFocus:v,setHasFieldFocus:w};return(0,b.jsxs)(m.Provider,{value:F,children:[a,(0,b.jsx)(l,{})]})}}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_contexts_VoiceContext_tsx_cfba7292._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[20884,a=>{"use strict";var b=a.i(22734),c=a.i(33405),d=a.i(14747);function e(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let a=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",a),a.endsWith("/web")||a.endsWith("\\web"))?d.default.dirname(a):a}a.i(54799);let f={claude:{skills:".claude/skills",agents:".claude/agents",mcpConfig:".mcp.json"},agents:{skills:".agents/skills",agents:".agents/agents",mcpConfig:null},codex:{skills:".codex/skills",agents:null,mcpConfig:".codex/config.toml"},gemini:{skills:".gemini/skills",agents:".gemini/agents",mcpConfig:".gemini/settings.json"}},g=e();function h(a){let b=a.match(/^---\s*\n([\s\S]*?)\n---/);if(!b)return null;let c=b[1],d={};for(let a of c.split("\n")){let b=a.indexOf(":");if(-1===b)continue;let c=a.slice(0,b).trim(),e=a.slice(b+1).trim();(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=e.slice(1,-1)),c&&e&&(d[c]=e)}return Object.keys(d).length>0?d:null}function i(a){return!!a&&!!a.version}function j(a,c){let e=[];try{let f="skill"===c?d.default.join(a,".claude","skills"):d.default.join(a,".claude","agents");if(!b.default.existsSync(f))return e;for(let a of b.default.readdirSync(f,{withFileTypes:!0})){let g,j;if("skill"===c){if(!a.isDirectory()||(g=d.default.join(f,a.name,"SKILL.md"),j=d.default.join("skills",a.name,"SKILL.md"),!b.default.existsSync(g)))continue}else{if(!a.isFile()||!a.name.endsWith(".md"))continue;g=d.default.join(f,a.name),j=d.default.join("agents",a.name)}let k=b.default.readFileSync(g,"utf-8"),l=h(k),m=l?.name||a.name.replace(/\.md$/,"");e.push({name:m,type:c,path:j,frontmatter:l,isValid:i(l)})}}catch{}return e}function k(a,c){let e=[],f="skill"===c?"skills":"agents",g=d.default.join(a,f);try{if(!b.default.existsSync(g))return e;for(let a of b.default.readdirSync(g,{withFileTypes:!0})){let j,k;if("skill"===c){if(!a.isDirectory()||(j=d.default.join(g,a.name,"SKILL.md"),k=d.default.join(f,a.name,"SKILL.md"),!b.default.existsSync(j)))continue}else{if(!a.isFile()||!a.name.endsWith(".md"))continue;j=d.default.join(g,a.name),k=d.default.join(f,a.name)}let l=b.default.readFileSync(j,"utf-8"),m=h(l),n=m?.name||a.name.replace(/\.md$/,"");e.push({name:n,type:c,path:k,frontmatter:m,isValid:i(m)})}}catch{}return e.sort((a,b)=>a.name.localeCompare(b.name))}d.default.basename(g),d.default.join(e(),"store",".ignored-updates.json");let l={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function m(a,b=0,c=0,d=0,e=l){let f=[],g=Math.max(c,1);f.push({name:"Outdated Assets",weight:e.outdatedAssets,value:b,maxValue:g});let h=Date.now(),i=[...a.backlog],j=i.filter(a=>(h-new Date(a.created_at).getTime())/864e5>14&&"done"!==a.status).length,k=Math.max(i.length,1);f.push({name:"Stale Cards",weight:e.staleCards,value:j,maxValue:k}),f.push({name:"Unresolved Problems",weight:e.unresolvedProblems,value:0,maxValue:1}),f.push({name:"Missing CLAUDE.md",weight:e.missingClaudeMd,value:+!a.hasClaudeMd,maxValue:1});let n=Math.max(c,1);f.push({name:"Non-compliant Frontmatter",weight:e.nonCompliantFrontmatter,value:d,maxValue:n});let o=0;for(let a of f)o+=Math.min(a.maxValue>0?a.value/a.maxValue:0,1)*a.weight;let p=Math.round(Math.max(0,(1-o)*100));return{score:p,level:p>=80?"green":p>=50?"amber":"red",factors:f}}function n(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let a=process.cwd();return a.endsWith("/web")||a.endsWith("\\web")?d.default.dirname(a):a}let o=n(),p=d.default.join(o,"projects","registry.json");async function q(){try{let a=await b.promises.readFile(p,"utf-8");return JSON.parse(a)}catch(a){throw console.error("Failed to load registry:",a),Error(`Failed to load registry from ${p}`)}}async function r(a){try{return(await b.promises.stat(a)).isDirectory()}catch{return!1}}async function s(a){try{let c=await b.promises.readFile(a,"utf-8");return JSON.parse(c)}catch{return null}}async function t(a,b,c){let e=d.default.join(a,"documentation","backlog.json"),f=await s(e);return f?f.map(a=>({...a,projectId:b,projectName:c})):[]}async function u(a,b){let c=d.default.join(a,"documentation","designs.json"),e=await s(c);return e?e.map(a=>({...a,projectId:b})):[]}async function v(a,b){let c=d.default.join(a,"documentation","features.json"),e=await s(c);return e?e.map(a=>({...a,projectId:b})):[]}async function w(a){let e,f=a.path;if(!await r(f))return{...a,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${f}`};let[g,h,i]=await Promise.all([t(f,a.id,a.name),u(f,a.id),v(f,a.id)]),k={projectId:a.id,skills:j(f,"skill"),agents:j(f,"agent")},l={claude:(e=a=>{try{return b.default.existsSync(d.default.join(f,a))}catch{return!1}})("CLAUDE.md")||e(".claude"),gemini:e("GEMINI.md")||e(".gemini"),codex:e("AGENTS.md")||e(".codex")||e(".agents")},m=function(a){try{return(0,c.execSync)("git status --porcelain",{cwd:a,encoding:"utf-8",timeout:5e3}).split("\n").filter(a=>a.trim().length>0).length}catch{return -1}}(f);return{...a,backlog:g,designs:h,features:i,assets:k,platforms:l,gitUncommitted:m>=0?m:void 0,accessible:!0}}async function x(){let a,c=await q();for(let a=0;a<c.projects.length;a++)void 0===c.projects[a].order&&(c.projects[a].order=a);c.projects.sort((a,b)=>(a.order??0)-(b.order??0));let g=c.projects.map(a=>w(a)),j=await Promise.all(g),l=[...k(a=d.default.join(e(),"store"),"skill"),...k(a,"agent")],o=["skill","agent"],p=0,r=[];for(let a of["claude","agents"])for(let e of o){let g=l.filter(a=>a.type===e),j=new Map;for(let g of c.projects){let c=function(a,c){let e=[];for(let g of["skill","agent"]){let j=function(a,b,c){if("mcp"===c)return null;let e=f[b]["skill"===c?"skills":"agents"];return e?d.default.join(a,e):null}(a,c,g);if(j&&b.default.existsSync(j))try{for(let a of b.default.readdirSync(j,{withFileTypes:!0})){let c,f,k="skill"===g?"skills":"agents";if("skill"===g){if(!a.isDirectory()||(c=d.default.join(j,a.name,"SKILL.md"),f=d.default.join(k,a.name,"SKILL.md"),!b.default.existsSync(c)))continue}else{if(!a.isFile()||!a.name.endsWith(".md"))continue;c=d.default.join(j,a.name),f=d.default.join(k,a.name)}let l=b.default.readFileSync(c,"utf-8"),m=h(l),n=m?.name||a.name.replace(/\.md$/,"");e.push({name:n,type:g,path:f,frontmatter:m,isValid:i(m)})}}catch{}}return e}(g.path,a);j.set(g.id,c.filter(a=>a.type===e))}let k=function(a,b,c,d){let e=[];for(let f of a){let a=c.map(a=>{let c=b.get(a.id);if(!c)return{projectId:a.id,status:"missing"};let d=function(a,b){return a.find(a=>a.name===b)}(c,f.name);if(!d)return{projectId:a.id,status:"missing"};let e=f.frontmatter?.version,g=d.frontmatter?.version;if(e&&g)return{projectId:a.id,status:e&&g&&e.trim()===g.trim()?"current":"outdated",masterVersion:e,projectVersion:g};return{projectId:a.id,status:"outdated",masterVersion:e,projectVersion:g}});e.push({name:f.name,type:d,masterAsset:f,cells:a,isImported:!0})}return e}(g,j,c.projects,e);r.push(...k)}for(let a of r)for(let b of a.cells)"outdated"===b.status&&p++;for(let a of j){if(!a.accessible)continue;let b=0;for(let c of r)for(let d of c.cells)d.projectId===a.id&&"outdated"===d.status&&b++;a.healthScore=function(a,b,c=0,d){if(!b)return m(a,0,0,0,void 0);let e=[...b.skills,...b.agents];return m(a,c,e.length,e.filter(a=>!a.isValid).length,void 0)}(a,a.assets,b)}let t=0,u=0;for(let a of j){if(!a.accessible)continue;let b=d.default.join(a.path,"documentation","kanban.json"),c=await s(b);if(c?.stages){t+=(c.stages.backlog||[]).filter(a=>!a.archived).length;let a=(c.stages.implementation||[]).filter(a=>!a.archived),b=(c.stages.testing||[]).filter(a=>!a.archived);u+=a.length+b.length}}let v=j.reduce((a,b)=>a+(b.gitUncommitted&&b.gitUncommitted>0?b.gitUncommitted:0),0),x=process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004";try{let a=await fetch(`${x}/stats`,{signal:AbortSignal.timeout(2e3)});if(a.ok){let b=await a.json(),c={};for(let a of b.sessions||[])if(a.isActive){let b=a.name.split(":")[0];c[b]=(c[b]||0)+1}for(let a of j)a.activeSessions=c[a.id]??0}}catch{}let y=n();return{projects:j,totalBacklogItems:t,activeItems:u,totalOutdatedAssets:p,totalUncommitted:v,lastRefresh:new Date().toISOString(),slycodeRoot:y,projectsDir:d.default.dirname(y)}}async function y(a){let b=(await q()).projects.find(b=>b.id===a);return b?w(b):null}a.s(["getProject",()=>y,"loadDashboardData",()=>x,"loadRegistry",()=>q],20884)}];
|
|
1
|
+
module.exports=[20884,a=>{"use strict";var b=a.i(22734),c=a.i(33405),d=a.i(14747);function e(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let a=process.cwd();return(console.warn("[paths] SLYCODE_HOME not set in production — falling back to cwd:",a),a.endsWith("/web")||a.endsWith("\\web"))?d.default.dirname(a):a}a.i(54799),a.i(46786);let f={claude:{skills:".claude/skills",agents:".claude/agents",mcpConfig:".mcp.json"},agents:{skills:".agents/skills",agents:".agents/agents",mcpConfig:null},codex:{skills:".codex/skills",agents:null,mcpConfig:".codex/config.toml"},gemini:{skills:".gemini/skills",agents:".gemini/agents",mcpConfig:".gemini/settings.json"}},g=e();function h(a){let b=a.match(/^---\s*\n([\s\S]*?)\n---/);if(!b)return null;let c=b[1],d={};for(let a of c.split("\n")){let b=a.indexOf(":");if(-1===b)continue;let c=a.slice(0,b).trim(),e=a.slice(b+1).trim();(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=e.slice(1,-1)),c&&e&&(d[c]=e)}return Object.keys(d).length>0?d:null}function i(a){return!!a&&!!a.version}function j(a,c){let e=[];try{let f="skill"===c?d.default.join(a,".claude","skills"):d.default.join(a,".claude","agents");if(!b.default.existsSync(f))return e;for(let a of b.default.readdirSync(f,{withFileTypes:!0})){let g,j;if("skill"===c){if(!a.isDirectory()||(g=d.default.join(f,a.name,"SKILL.md"),j=d.default.join("skills",a.name,"SKILL.md"),!b.default.existsSync(g)))continue}else{if(!a.isFile()||!a.name.endsWith(".md"))continue;g=d.default.join(f,a.name),j=d.default.join("agents",a.name)}let k=b.default.readFileSync(g,"utf-8"),l=h(k),m=l?.name||a.name.replace(/\.md$/,"");e.push({name:m,type:c,path:j,frontmatter:l,isValid:i(l)})}}catch{}return e}function k(a,c){let e=[],f="skill"===c?"skills":"agents",g=d.default.join(a,f);try{if(!b.default.existsSync(g))return e;for(let a of b.default.readdirSync(g,{withFileTypes:!0})){let j,k;if("skill"===c){if(!a.isDirectory()||(j=d.default.join(g,a.name,"SKILL.md"),k=d.default.join(f,a.name,"SKILL.md"),!b.default.existsSync(j)))continue}else{if(!a.isFile()||!a.name.endsWith(".md"))continue;j=d.default.join(g,a.name),k=d.default.join(f,a.name)}let l=b.default.readFileSync(j,"utf-8"),m=h(l),n=m?.name||a.name.replace(/\.md$/,"");e.push({name:n,type:c,path:k,frontmatter:m,isValid:i(m)})}}catch{}return e.sort((a,b)=>a.name.localeCompare(b.name))}d.default.basename(g),d.default.join(e(),"store",".ignored-updates.json");let l={outdatedAssets:.3,staleCards:.15,unresolvedProblems:.25,missingClaudeMd:.1,nonCompliantFrontmatter:.2};function m(a,b=0,c=0,d=0,e=l){let f=[],g=Math.max(c,1);f.push({name:"Outdated Assets",weight:e.outdatedAssets,value:b,maxValue:g});let h=Date.now(),i=[...a.backlog],j=i.filter(a=>(h-new Date(a.created_at).getTime())/864e5>14&&"done"!==a.status).length,k=Math.max(i.length,1);f.push({name:"Stale Cards",weight:e.staleCards,value:j,maxValue:k}),f.push({name:"Unresolved Problems",weight:e.unresolvedProblems,value:0,maxValue:1}),f.push({name:"Missing CLAUDE.md",weight:e.missingClaudeMd,value:+!a.hasClaudeMd,maxValue:1});let n=Math.max(c,1);f.push({name:"Non-compliant Frontmatter",weight:e.nonCompliantFrontmatter,value:d,maxValue:n});let o=0;for(let a of f)o+=Math.min(a.maxValue>0?a.value/a.maxValue:0,1)*a.weight;let p=Math.round(Math.max(0,(1-o)*100));return{score:p,level:p>=80?"green":p>=50?"amber":"red",factors:f}}function n(){if(process.env.SLYCODE_HOME)return process.env.SLYCODE_HOME;let a=process.cwd();return a.endsWith("/web")||a.endsWith("\\web")?d.default.dirname(a):a}let o=n(),p=d.default.join(o,"projects","registry.json");async function q(){try{let a=await b.promises.readFile(p,"utf-8");return JSON.parse(a)}catch(a){throw console.error("Failed to load registry:",a),Error(`Failed to load registry from ${p}`)}}async function r(a){try{return(await b.promises.stat(a)).isDirectory()}catch{return!1}}async function s(a){try{let c=await b.promises.readFile(a,"utf-8");return JSON.parse(c)}catch{return null}}async function t(a,b,c){let e=d.default.join(a,"documentation","backlog.json"),f=await s(e);return f?f.map(a=>({...a,projectId:b,projectName:c})):[]}async function u(a,b){let c=d.default.join(a,"documentation","designs.json"),e=await s(c);return e?e.map(a=>({...a,projectId:b})):[]}async function v(a,b){let c=d.default.join(a,"documentation","features.json"),e=await s(c);return e?e.map(a=>({...a,projectId:b})):[]}async function w(a){let e,f=a.path;if(!await r(f))return{...a,backlog:[],designs:[],features:[],accessible:!1,error:`Path not accessible: ${f}`};let[g,h,i]=await Promise.all([t(f,a.id,a.name),u(f,a.id),v(f,a.id)]),k={projectId:a.id,skills:j(f,"skill"),agents:j(f,"agent")},l={claude:(e=a=>{try{return b.default.existsSync(d.default.join(f,a))}catch{return!1}})("CLAUDE.md")||e(".claude"),gemini:e("GEMINI.md")||e(".gemini"),codex:e("AGENTS.md")||e(".codex")||e(".agents")},m=function(a){try{return(0,c.execSync)("git status --porcelain",{cwd:a,encoding:"utf-8",timeout:5e3}).split("\n").filter(a=>a.trim().length>0).length}catch{return -1}}(f);return{...a,backlog:g,designs:h,features:i,assets:k,platforms:l,gitUncommitted:m>=0?m:void 0,accessible:!0}}async function x(){let a,c=await q();for(let a=0;a<c.projects.length;a++)void 0===c.projects[a].order&&(c.projects[a].order=a);c.projects.sort((a,b)=>(a.order??0)-(b.order??0));let g=c.projects.map(a=>w(a)),j=await Promise.all(g),l=[...k(a=d.default.join(e(),"store"),"skill"),...k(a,"agent")],o=["skill","agent"],p=0,r=[];for(let a of["claude","agents"])for(let e of o){let g=l.filter(a=>a.type===e),j=new Map;for(let g of c.projects){let c=function(a,c){let e=[];for(let g of["skill","agent"]){let j=function(a,b,c){if("mcp"===c)return null;let e=f[b]["skill"===c?"skills":"agents"];return e?d.default.join(a,e):null}(a,c,g);if(j&&b.default.existsSync(j))try{for(let a of b.default.readdirSync(j,{withFileTypes:!0})){let c,f,k="skill"===g?"skills":"agents";if("skill"===g){if(!a.isDirectory()||(c=d.default.join(j,a.name,"SKILL.md"),f=d.default.join(k,a.name,"SKILL.md"),!b.default.existsSync(c)))continue}else{if(!a.isFile()||!a.name.endsWith(".md"))continue;c=d.default.join(j,a.name),f=d.default.join(k,a.name)}let l=b.default.readFileSync(c,"utf-8"),m=h(l),n=m?.name||a.name.replace(/\.md$/,"");e.push({name:n,type:g,path:f,frontmatter:m,isValid:i(m)})}}catch{}}return e}(g.path,a);j.set(g.id,c.filter(a=>a.type===e))}let k=function(a,b,c,d){let e=[];for(let f of a){let a=c.map(a=>{let c=b.get(a.id);if(!c)return{projectId:a.id,status:"missing"};let d=function(a,b){return a.find(a=>a.name===b)}(c,f.name);if(!d)return{projectId:a.id,status:"missing"};let e=f.frontmatter?.version,g=d.frontmatter?.version;if(e&&g)return{projectId:a.id,status:e&&g&&e.trim()===g.trim()?"current":"outdated",masterVersion:e,projectVersion:g};return{projectId:a.id,status:"outdated",masterVersion:e,projectVersion:g}});e.push({name:f.name,type:d,masterAsset:f,cells:a,isImported:!0})}return e}(g,j,c.projects,e);r.push(...k)}for(let a of r)for(let b of a.cells)"outdated"===b.status&&p++;for(let a of j){if(!a.accessible)continue;let b=0;for(let c of r)for(let d of c.cells)d.projectId===a.id&&"outdated"===d.status&&b++;a.healthScore=function(a,b,c=0,d){if(!b)return m(a,0,0,0,void 0);let e=[...b.skills,...b.agents];return m(a,c,e.length,e.filter(a=>!a.isValid).length,void 0)}(a,a.assets,b)}let t=0,u=0;for(let a of j){if(!a.accessible)continue;let b=d.default.join(a.path,"documentation","kanban.json"),c=await s(b);if(c?.stages){t+=(c.stages.backlog||[]).filter(a=>!a.archived).length;let a=(c.stages.implementation||[]).filter(a=>!a.archived),b=(c.stages.testing||[]).filter(a=>!a.archived);u+=a.length+b.length}}let v=j.reduce((a,b)=>a+(b.gitUncommitted&&b.gitUncommitted>0?b.gitUncommitted:0),0),x=process.env.BRIDGE_URL?process.env.BRIDGE_URL:"http://127.0.0.1:3004";try{let a=await fetch(`${x}/stats`,{signal:AbortSignal.timeout(2e3)});if(a.ok){let b=await a.json(),c={};for(let a of b.sessions||[])if(a.isActive){let b=a.name.split(":")[0];c[b]=(c[b]||0)+1}for(let a of j)a.activeSessions=c[a.id]??0}}catch{}let y=n();return{projects:j,totalBacklogItems:t,activeItems:u,totalOutdatedAssets:p,totalUncommitted:v,lastRefresh:new Date().toISOString(),slycodeRoot:y,projectsDir:d.default.dirname(y)}}async function y(a){let b=(await q()).projects.find(b=>b.id===a);return b?w(b):null}a.s(["getProject",()=>y,"loadDashboardData",()=>x,"loadRegistry",()=>q],20884)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=src_lib_registry_ts_2fc87c9c._.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--aN_jqftQVvSm0qVskLybH--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/43bfca92afbacd38.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/293449b828207656.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/5f95863347fe47d9.js"/><script src="/_next/static/chunks/7de9141b1af425c3.js" async=""></script><script src="/_next/static/chunks/cf910fc299170b7d.js" async=""></script><script src="/_next/static/chunks/turbopack-563e27abda63930f.js" async=""></script><script src="/_next/static/chunks/98311243e9a5a0ec.js" async=""></script><script src="/_next/static/chunks/e24d6768d85df882.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>SlyCode</title><meta name="description" content="SlyCode Managed Projects"/><link rel="icon" href="/favicon.png"/><script>(function(){try{var t=localStorage.getItem('slycode-theme');if(t==='light')return;if(t==='dark'||window.matchMedia('(prefers-color-scheme:dark)').matches)document.documentElement.classList.add('dark')}catch(e){}})()</script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable jetbrains_mono_7d65b77b-module__VxV-Ta__variable font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/5f95863347fe47d9.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[1088,[\"/_next/static/chunks/98311243e9a5a0ec.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"VoiceProvider\"]\n3:I[39756,[\"/_next/static/chunks/98311243e9a5a0ec.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/98311243e9a5a0ec.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n5:I[97367,[\"/_next/static/chunks/98311243e9a5a0ec.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n8:I[97367,[\"/_next/static/chunks/98311243e9a5a0ec.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"ViewportBoundary\"]\na:I[97367,[\"/_next/static/chunks/98311243e9a5a0ec.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"MetadataBoundary\"]\nc:I[68027,[\"/_next/static/chunks/98311243e9a5a0ec.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n:HL[\"/_next/static/chunks/43bfca92afbacd38.css\",\"style\"]\n:HL[\"/_next/static/chunks/293449b828207656.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"aN-jqftQVvSm0qVskLybH\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/43bfca92afbacd38.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/293449b828207656.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/98311243e9a5a0ec.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/e24d6768d85df882.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem('slycode-theme');if(t==='light')return;if(t==='dark'||window.matchMedia('(prefers-color-scheme:dark)').matches)document.documentElement.classList.add('dark')}catch(e){}})()\"}}]}],[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable jetbrains_mono_7d65b77b-module__VxV-Ta__variable font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[27201,[\"/_next/static/chunks/98311243e9a5a0ec.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"IconMark\"]\n7:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"SlyCode\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"SlyCode Managed Projects\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.png\"}],[\"$\",\"$Ld\",\"3\",{}]]\n"])</script></body></html>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
2
|
-
@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/5f95863347fe47d9.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"ViewportBoundary\"]\n9:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"MetadataBoundary\"]\nb:I[68027,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"
|
|
1
|
+
<!DOCTYPE html><!--aN_jqftQVvSm0qVskLybH--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/5f95863347fe47d9.js"/><script src="/_next/static/chunks/7de9141b1af425c3.js" async=""></script><script src="/_next/static/chunks/cf910fc299170b7d.js" async=""></script><script src="/_next/static/chunks/turbopack-563e27abda63930f.js" async=""></script><script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script><script src="/_next/static/chunks/e24d6768d85df882.js" async=""></script><meta name="next-size-adjust" content=""/><title>500: Internal Server Error.</title><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
|
|
2
|
+
@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/5f95863347fe47d9.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n4:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"ViewportBoundary\"]\n9:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"MetadataBoundary\"]\nb:I[68027,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/e24d6768d85df882.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"aN-jqftQVvSm0qVskLybH\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/ff1a16fafef87110.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/e24d6768d85df882.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"+
|
|
1
|
+
self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"1PHLqWza5cn2GEj7gqr2v0CSCzYA+gsXFxtzNa1F9Gk=\"\n}"
|