kontexta 4.4.0 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/standalone/CHANGELOG.md +25 -0
- package/bundle/standalone/apps/web/.next/BUILD_ID +1 -1
- package/bundle/standalone/apps/web/.next/app-build-manifest.json +152 -138
- package/bundle/standalone/apps/web/.next/app-path-routes-manifest.json +15 -13
- package/bundle/standalone/apps/web/.next/build-manifest.json +5 -5
- package/bundle/standalone/apps/web/.next/prerender-manifest.json +13 -13
- package/bundle/standalone/apps/web/.next/react-loadable-manifest.json +5 -5
- package/bundle/standalone/apps/web/.next/required-server-files.json +4 -2
- package/bundle/standalone/apps/web/.next/routes-manifest.json +40 -1
- package/bundle/standalone/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/_not-found.html +1 -1
- package/bundle/standalone/apps/web/.next/server/app/_not-found.rsc +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/about/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/about/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/login/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/setup/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/setup/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/status/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/token/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/auth/token/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/conflicts/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/conflicts/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/entities/[id]/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/entities/[id]/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/entities/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/entities/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/events/[id]/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/events/[id]/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/events/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/events/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/ics/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/ics/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/links/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/links/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/settings/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/calendar/settings/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/clip/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/clip/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/docker-config/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/docker-config/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/export/zip/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/export/zip/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/download/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/download/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/export-html/route.js +1 -0
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/export-html/route.js.nft.json +1 -0
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/export-html/route_client-reference-manifest.js +1 -0
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/export-pdf/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/export-pdf/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/history/restore/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/history/restore/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/history/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/history/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/move/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/move/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/[id]/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/upload/route.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/upload/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/files/upload/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/folders/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/folders/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/git/remote/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/git/remote/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/git/sync-all/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/git/sync-all/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/hands/test-pattern/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/hands/test-pattern/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/hands/validate/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/hands/validate/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/health/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/install-snippets/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/install-snippets/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/mcp-tools/route.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/mcp-tools/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/mcp-tools/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/profile/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/profile/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/hands-config/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/hands-config/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/journal-config/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/journal-config/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/journal-status/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/journal-status/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/onboard/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/onboard/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/refresh/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/refresh/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/sync/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/[id]/sync/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/onboard/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/onboard/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/publish/html/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/publish/html/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/publish/route.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/publish/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/publish/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/refresh/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/refresh/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/reindex/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/reindex/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/reports/resources/[name]/route.js +1 -0
- package/bundle/standalone/apps/web/.next/server/app/api/reports/resources/[name]/route.js.nft.json +1 -0
- package/bundle/standalone/apps/web/.next/server/app/api/reports/resources/[name]/route_client-reference-manifest.js +1 -0
- package/bundle/standalone/apps/web/.next/server/app/api/search/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/tags/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/version-check/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/version-check/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/ws-config/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/api/ws-config/route_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/apple-icon.png/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/calendar/page.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/calendar/page_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/favicon.ico/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/icon.png/route.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/login/page.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/page.js +3 -3
- package/bundle/standalone/apps/web/.next/server/app/page.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/preview/motifs/page.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/app/preview/motifs/page_client-reference-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/app/preview/motifs.html +2 -2
- package/bundle/standalone/apps/web/.next/server/app/preview/motifs.rsc +1 -1
- package/bundle/standalone/apps/web/.next/server/app-paths-manifest.json +15 -13
- package/bundle/standalone/apps/web/.next/server/chunks/4290.js +3 -3
- package/bundle/standalone/apps/web/.next/server/chunks/4824.js +1 -1
- package/bundle/standalone/apps/web/.next/server/chunks/5104.js +1 -1
- package/bundle/standalone/apps/web/.next/server/middleware-build-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/bundle/standalone/apps/web/.next/server/pages/404.html +1 -1
- package/bundle/standalone/apps/web/.next/server/pages/500.html +1 -1
- package/bundle/standalone/apps/web/.next/server/pages/_app.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/pages/_document.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/pages/_error.js.nft.json +1 -1
- package/bundle/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
- package/bundle/standalone/apps/web/.next/static/chunks/{5514.f969d5c86c590512.js → 5514.104d052cec14d85a.js} +7 -7
- package/bundle/standalone/apps/web/.next/static/chunks/{944.ba7dcdca1c72114a.js → 944.6a3d93405d7cb403.js} +1 -1
- package/bundle/standalone/apps/web/.next/static/chunks/{9852.e1937ca867a99475.js → 9852.dff25fd2ed9a2763.js} +1 -1
- package/bundle/standalone/apps/web/.next/static/chunks/{a118fb18.9c3b4291884abee0.js → a118fb18.88c57fd88bdf91aa.js} +1 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/about/{route-5081c2fd4cf53e20.js → route-c6ecffaac8622c61.js} +1 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/login/{route-5081c2fd4cf53e20.js → route-c6ecffaac8622c61.js} +1 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/logout/{route-5081c2fd4cf53e20.js → route-c6ecffaac8622c61.js} +1 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/setup/{route-5081c2fd4cf53e20.js → route-c6ecffaac8622c61.js} +1 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/status/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/token/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/conflicts/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/entities/[id]/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/entities/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/events/[id]/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/events/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/ics/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/links/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/settings/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/clip/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/docker-config/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/export/zip/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/download/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/export-html/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/export-pdf/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/history/restore/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/history/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/move/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/upload/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/folders/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/git/remote/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/git/sync-all/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/hands/test-pattern/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/hands/validate/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/health/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/install-snippets/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/mcp-tools/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/profile/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/hands-config/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/journal-config/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/journal-status/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/onboard/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/refresh/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/sync/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/onboard/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/publish/html/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/publish/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/refresh/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/reindex/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/reports/resources/[name]/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/search/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/tags/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/version-check/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/ws-config/route-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/page-90c2455412723f7e.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/app/preview/motifs/page-c6ecffaac8622c61.js +1 -0
- package/bundle/standalone/apps/web/.next/static/chunks/webpack-b1697c3befeaf792.js +1 -0
- package/bundle/standalone/apps/web/.next/static/{w6Yv3xSiMAmXez8ynDNhz → eNCLXiI0gq10nAas6vZ5Q}/_buildManifest.js +1 -1
- package/bundle/standalone/apps/web/package.json +4 -4
- package/bundle/standalone/apps/web/server.js +1 -1
- package/bundle/standalone/apps/web/src/lib/mcp-tools.json +95 -4
- package/bundle/standalone/node_modules/kontexta-mcp/dist/agent-rules/rules-block.md +10 -1
- package/bundle/standalone/node_modules/kontexta-mcp/dist/index.js +41 -3
- package/bundle/standalone/node_modules/kontexta-mcp/dist/index.js.map +1 -1
- package/bundle/standalone/node_modules/kontexta-mcp/package.json +2 -1
- package/bundle/standalone/node_modules/kxta-core/dist/agent-rules/rules-block.md +10 -1
- package/bundle/standalone/node_modules/kxta-core/dist/files/index.d.ts +3 -1
- package/bundle/standalone/node_modules/kxta-core/dist/files/index.d.ts.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/files/index.js +17 -7
- package/bundle/standalone/node_modules/kxta-core/dist/files/index.js.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/index.d.ts +2 -0
- package/bundle/standalone/node_modules/kxta-core/dist/index.d.ts.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/index.js +2 -0
- package/bundle/standalone/node_modules/kxta-core/dist/index.js.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/reports/resources.d.ts +18 -0
- package/bundle/standalone/node_modules/kxta-core/dist/reports/resources.d.ts.map +1 -0
- package/bundle/standalone/node_modules/kxta-core/dist/reports/resources.js +86 -0
- package/bundle/standalone/node_modules/kxta-core/dist/reports/resources.js.map +1 -0
- package/bundle/standalone/node_modules/kxta-core/dist/reports/sanitize.d.ts +2 -0
- package/bundle/standalone/node_modules/kxta-core/dist/reports/sanitize.d.ts.map +1 -0
- package/bundle/standalone/node_modules/kxta-core/dist/reports/sanitize.js +33 -0
- package/bundle/standalone/node_modules/kxta-core/dist/reports/sanitize.js.map +1 -0
- package/bundle/standalone/node_modules/kxta-core/dist/types.d.ts +2 -0
- package/bundle/standalone/node_modules/kxta-core/dist/types.d.ts.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/util/extensions.d.ts +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/util/extensions.d.ts.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/util/extensions.js +1 -1
- package/bundle/standalone/node_modules/kxta-core/dist/util/extensions.js.map +1 -1
- package/bundle/standalone/node_modules/kxta-core/package.json +2 -1
- package/bundle/standalone/node_modules/kxta-publish/dist/pipeline.d.ts +5 -0
- package/bundle/standalone/node_modules/kxta-publish/dist/pipeline.js +7 -0
- package/bundle/standalone/node_modules/kxta-publish/dist/render/html-export.d.ts +16 -0
- package/bundle/standalone/node_modules/kxta-publish/dist/render/html-export.js +146 -0
- package/bundle/standalone/node_modules/kxta-publish/dist/render/pdf.d.ts +4 -4
- package/bundle/standalone/node_modules/kxta-publish/dist/render/pdf.js +49 -22
- package/bundle/standalone/node_modules/kxta-publish/package.json +8 -4
- package/bundle/standalone/package.json +2 -2
- package/dist/doctor-NTVE43EI.js +134 -0
- package/dist/index.js +12 -7
- package/dist/{start-MCG73ATY.js → start-RHPTVWGI.js} +2 -2
- package/package.json +5 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/status/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/auth/token/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/conflicts/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/entities/[id]/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/entities/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/events/[id]/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/events/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/ics/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/links/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/calendar/settings/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/clip/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/docker-config/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/export/zip/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/download/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/export-pdf/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/history/restore/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/history/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/move/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/[id]/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/files/upload/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/folders/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/git/remote/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/git/sync-all/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/hands/test-pattern/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/hands/validate/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/health/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/install-snippets/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/mcp-tools/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/profile/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/hands-config/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/journal-config/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/journal-status/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/onboard/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/refresh/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/[id]/sync/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/onboard/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/projects/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/publish/html/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/publish/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/refresh/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/reindex/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/search/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/tags/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/version-check/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/api/ws-config/route-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/page-3b2dd157ea928bca.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/app/preview/motifs/page-5081c2fd4cf53e20.js +0 -1
- package/bundle/standalone/apps/web/.next/static/chunks/webpack-8818fea786a923fe.js +0 -1
- package/dist/doctor-W733U3FD.js +0 -46
- /package/bundle/standalone/apps/web/.next/static/{w6Yv3xSiMAmXez8ynDNhz → eNCLXiI0gq10nAas6vZ5Q}/_ssgManifest.js +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
(()=>{var a={};a.id=8974,a.ids=[8974],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1423:(a,b,c)=>{"use strict";c.d(b,{H:()=>f});var d=c(25108);let e={sm:{lightSrc:"/logo.png",darkSrc:"/logo-dark.png",imgClass:"h-[56px] w-auto",floatClass:"",particles:[],orbitRadius:0},lg:{lightSrc:"/logo.png",darkSrc:"/logo-dark.png",imgClass:"h-[150px] w-auto",floatClass:"animate-[logo-float-lg_3s_ease-in-out_infinite]",particles:[{size:6,color:"#C2410C",opacity:.75,duration:5,reverse:!1,delay:0},{size:4,color:"#D4A050",opacity:.55,duration:7,reverse:!0,delay:-3},{size:3,color:"#FFD49A",opacity:.45,duration:9,reverse:!1,delay:-5}],orbitRadius:70}};function f({size:a}){let{lightSrc:b,darkSrc:c,imgClass:f,floatClass:g,particles:h,orbitRadius:i}=e[a];return(0,d.jsxs)("div",{className:"relative inline-flex flex-shrink-0 overflow-visible",children:[(0,d.jsx)("img",{src:b,alt:"Kontexta",className:`block dark:hidden ${f} object-contain ${g}`}),(0,d.jsx)("img",{src:c,alt:"Kontexta",className:`hidden dark:block ${f} object-contain ${g}`}),h.map((a,b)=>(0,d.jsx)("span",{className:"absolute rounded-full bp-keep-round pointer-events-none",style:{width:a.size,height:a.size,backgroundColor:a.color,opacity:a.opacity,top:`calc(50% - ${i}px)`,left:`calc(50% - ${a.size/2}px)`,transformOrigin:`${a.size/2}px ${i}px`,animation:`logo-orbit ${a.duration}s linear infinite${a.reverse?" reverse":""}`,animationDelay:`${a.delay}s`}},b))]})}},2402:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>E.a,__next_app__:()=>K,handler:()=>M,pages:()=>J,routeModule:()=>L,tree:()=>I});var d=c(52810),e=c(18093),f=c(98611),g=c(55572),h=c(17262),i=c(92768),j=c(44031),k=c(8188),l=c(26370),m=c(53256),n=c(34510),o=c(67330),p=c(77357),q=c(74749),r=c(71110),s=c(261),t=c(86725),u=c(33834),v=c(26713),w=c(79596),x=c(70925),y=c(67857),z=c(92710),A=c(17402),B=c(66270),C=c(86439),D=c(28450),E=c.n(D),F=c(4410),G=c(56691),H={};for(let a in F)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(H[a]=()=>F[a]);c.d(b,H);let I={children:["",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,62975)),"/home/runner/work/kontexta/kontexta/apps/web/src/app/page.tsx"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,65336))).default(a),async a=>(await Promise.resolve().then(c.bind(c,65122))).default(a)],apple:[async a=>(await Promise.resolve().then(c.bind(c,90314))).default(a)],openGraph:[],twitter:[],manifest:void 0}}]},{layout:[()=>Promise.resolve().then(c.bind(c,6296)),"/home/runner/work/kontexta/kontexta/apps/web/src/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,28450,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,72036,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,6285,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,25680,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,65336))).default(a),async a=>(await Promise.resolve().then(c.bind(c,65122))).default(a)],apple:[async a=>(await Promise.resolve().then(c.bind(c,90314))).default(a)],openGraph:[],twitter:[],manifest:void 0}}]}.children,J=["/home/runner/work/kontexta/kontexta/apps/web/src/app/page.tsx"],K={require:c,loadChunk:()=>Promise.resolve()},L=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/page",pathname:"/",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:I},distDir:".next",relativeProjectDir:""});async function M(a,b,d){var D;let H="/page";"/index"===H&&(H="/");let N=(0,h.getRequestMeta)(a,"postponed"),O=(0,h.getRequestMeta)(a,"minimalMode"),P=await L.prepare(a,b,{srcPage:H,multiZoneDraftMode:!1});if(!P)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:Q,query:R,params:S,parsedUrl:T,pageIsDynamic:U,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,serverActionsManifest:Y,clientReferenceManifest:Z,subresourceIntegrityManifest:$,prerenderManifest:_,isDraftMode:aa,resolvedPathname:ab,revalidateOnlyGenerated:ac,routerServerContext:ad,nextConfig:ae,interceptionRoutePatterns:af}=P,ag=T.pathname||"/",ah=(0,s.normalizeAppPath)(H),{isOnDemandRevalidate:ai}=P,aj=L.match(ag,_),ak=!!_.routes[ab],al=!!(aj||ak||_.routes[ah]),am=a.headers["user-agent"]||"",an=(0,v.getBotType)(am),ao=(0,q.isHtmlBotRequest)(a),ap=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[u.NEXT_ROUTER_PREFETCH_HEADER],aq=(0,h.getRequestMeta)(a,"isRSCRequest")??(0,n.f)(a.headers[u.RSC_HEADER]),ar=(0,t.getIsPossibleServerAction)(a),as=(0,m.checkIsAppPPREnabled)(ae.experimental.ppr)&&(null==(D=_.routes[ah]??_.dynamicRoutes[ah])?void 0:D.renderingMode)==="PARTIALLY_STATIC",at=!1,au=!1,av=as?N:void 0,aw=as&&aq&&!ap,ax=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ay=!am||(0,q.shouldServeStreamingMetadata)(am,ae.htmlLimitedBots);ao&&as&&(al=!1,ay=!1);let az=!0===L.isDev||!al||"string"==typeof N||aw,aA=ao&&as,aB=null;aa||!al||az||ar||av||aw||(aB=ab);let aC=aB;!aC&&L.isDev&&(aC=ab),L.isDev||aa||!al||!aq||aw||(0,k.d)(a.headers);let aD={...F,tree:I,pages:J,GlobalError:E(),handler:M,routeModule:L,__next_app__:K};Y&&Z&&(0,p.setReferenceManifestsSingleton)({page:H,clientReferenceManifest:Z,serverActionsManifest:Y,serverModuleMap:(0,r.createServerModuleMap)({serverActionsManifest:Y})});let aE=a.method||"GET",aF=(0,g.getTracer)(),aG=aF.getActiveScopeSpan();try{let f=L.getVaryHeader(ab,af);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return L.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aF.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aE} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aE} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:R,params:S,page:ah,sharedContext:{buildId:Q},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aD,Component:(0,j.T)(aD),params:S,routeModule:L,page:H,postponed:f,shouldWaitOnAllReady:aA,serveStreamingMetadata:ay,supportsDynamicResponse:"string"==typeof f||az,buildManifest:V,nextFontManifest:W,reactLoadableManifest:X,subresourceIntegrityManifest:$,serverActionsManifest:Y,clientReferenceManifest:Z,setIsrStatus:null==ad?void 0:ad.setIsrStatus,dir:c(33873).join(process.cwd(),L.relativeProjectDir),isDraftMode:aa,isRevalidate:al&&!f&&!aw,botType:an,isOnDemandRevalidate:ai,isPossibleServerAction:ar,assetPrefix:ae.assetPrefix,nextConfigOutput:ae.output,crossOrigin:ae.crossOrigin,trailingSlash:ae.trailingSlash,previewProps:_.preview,deploymentId:ae.deploymentId,enableTainting:ae.experimental.taint,htmlLimitedBots:ae.htmlLimitedBots,devtoolSegmentExplorer:ae.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ae.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ae.experimental.cacheLife,basePath:ae.basePath,serverActions:ae.experimental.serverActions,...at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:at}:{},experimental:{isRoutePPREnabled:as,expireTime:ae.expireTime,staleTimes:ae.experimental.staleTimes,cacheComponents:!!ae.experimental.cacheComponents,clientSegmentCache:!!ae.experimental.clientSegmentCache,clientParamParsing:!!ae.experimental.clientParamParsing,dynamicOnHover:!!ae.experimental.dynamicOnHover,inlineCss:!!ae.experimental.inlineCss,authInterrupts:!!ae.experimental.authInterrupts,clientTraceMetadata:ae.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>L.onRequestError(a,b,d,ad),err:(0,h.getRequestMeta)(a,"invokeError"),dev:L.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[z.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,al&&(null==n?void 0:n.revalidate)===0&&!L.isDev&&!as){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ab}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
-
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16184:function(a,b,c){"use strict";var d=(this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}})(c(54135)),e=c(23348);function f(a,b){var c={};return a&&"string"==typeof a&&(0,d.default)(a,function(a,d){a&&d&&(c[(0,e.camelCase)(a,b)]=d)}),c}f.default=f,a.exports=f},17115:(a,b,c)=>{"use strict";c.d(b,{default:()=>f2});var d={};c.r(d),c.d(d,{attentionMarkers:()=>bN,contentInitial:()=>bH,disable:()=>bO,document:()=>bG,flow:()=>bJ,flowInitial:()=>bI,insideSpan:()=>bM,string:()=>bK,text:()=>bL});var e={};c.r(e),c.d(e,{boolean:()=>d8,booleanish:()=>d9,commaOrSpaceSeparated:()=>ee,commaSeparated:()=>ed,number:()=>eb,overloadedBoolean:()=>ea,spaceSeparated:()=>ec});var f=c(25108),g=c(33997),h=c(90554),i=c(75947),j=c(16250),k=c(41880);let l=(0,k.A)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),m=(0,k.A)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),n=(0,k.A)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);var o=c(1423);function p({open:a,onClose:b,log:c,globalRemoteUrl:d,onSyncAll:e,onUpdateRemote:h,selectedProjectName:i,onSyncProject:j}){let[k,l]=(0,g.useState)("log"),[m,n]=(0,g.useState)(d||""),[o,p]=(0,g.useState)(!1),[q,r]=(0,g.useState)(null);if(!a)return null;let s=async()=>{p(!0),r(null);try{await e()}catch(a){r(a?.message||"Sync failed")}finally{p(!1)}},t=async()=>{p(!0),r(null);try{await h(m),l("log")}catch(a){r(a?.message||"Failed to save remote")}finally{p(!1)}};return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{className:"fixed inset-0 z-40",onClick:b}),(0,f.jsxs)("div",{role:"dialog",className:"fixed top-14 right-3 z-50 w-80 bg-[var(--bg-secondary)] border border-[var(--border)] rounded-md shadow-xl text-[13px] text-[var(--text-primary)]",children:[(0,f.jsxs)("div",{className:"flex border-b border-[var(--border)]",children:[(0,f.jsx)("button",{className:`flex-1 px-3 py-2 ${"log"===k?"text-[var(--accent)] border-b-2 border-[var(--accent)] -mb-px":"text-[var(--text-secondary)]"}`,onClick:()=>l("log"),children:"Sync log"}),(0,f.jsx)("button",{className:`flex-1 px-3 py-2 ${"config"===k?"text-[var(--accent)] border-b-2 border-[var(--accent)] -mb-px":"text-[var(--text-secondary)]"}`,onClick:()=>l("config"),children:"Configure remote"})]}),"log"===k?(0,f.jsxs)("div",{className:"p-3 space-y-2 max-h-72 overflow-auto",children:[0===c.length?(0,f.jsx)("p",{className:"text-[var(--text-secondary)] text-[12px]",children:"No sync activity yet."}):c.slice(0,5).map((a,b)=>(0,f.jsxs)("div",{className:"flex items-baseline gap-2 font-mono text-[12px]",children:[(0,f.jsx)("span",{style:{color:"ok"===a.result?"var(--success)":"var(--danger)"},children:"●"}),(0,f.jsx)("span",{className:"text-[var(--text-secondary)]",children:new Date(a.at).toLocaleTimeString()}),(0,f.jsxs)("span",{className:"text-[var(--text-primary)] truncate",children:[null===a.projectId?"all projects":`project #${a.projectId}`,a.message?` — ${a.message}`:""]})]},b)),i&&j&&(0,f.jsx)("button",{disabled:o,onClick:async()=>{p(!0),r(null);try{await j()}catch(a){r(a?.message||"Sync failed")}finally{p(!1)}},className:"w-full mt-2 px-3 py-1.5 bg-[var(--accent)] text-black font-bold text-[12px] rounded-md disabled:opacity-50 truncate",children:o?"Syncing...":`Sync ${i}`}),(0,f.jsx)("button",{disabled:o,onClick:s,className:"w-full mt-2 px-3 py-1.5 bg-[var(--bg-tertiary)] text-[var(--text-primary)] font-bold text-[12px] rounded-md hover:bg-[var(--border)] disabled:opacity-50",children:o?"Syncing...":"Sync all projects"}),q&&(0,f.jsx)("p",{className:"text-[var(--danger)] text-[12px]",children:q})]}):(0,f.jsxs)("div",{className:"p-3 space-y-2",children:[(0,f.jsx)("label",{className:"block text-[12px] text-[var(--text-secondary)]",children:"Global git remote URL"}),(0,f.jsx)("input",{type:"text",value:m,onChange:a=>n(a.target.value),placeholder:"https://github.com/user/repo.git or git@host:user/repo.git",className:"w-full px-2 py-1 bg-[var(--bg-primary)] border border-[var(--border)] rounded text-[12px]"}),(0,f.jsx)("button",{disabled:o,onClick:t,className:"w-full px-3 py-1.5 bg-[var(--accent)] text-black font-bold text-[12px] rounded-md disabled:opacity-50",children:o?"Saving...":"Save"}),q&&(0,f.jsx)("p",{className:"text-[var(--danger)] text-[12px]",children:q})]})]})]})}var q=c(17184);function r({trigger:a,items:b,align:c="end"}){return(0,f.jsxs)(q.bL,{children:[(0,f.jsx)(q.l9,{asChild:!0,children:a}),(0,f.jsx)(q.ZL,{children:(0,f.jsx)(q.UC,{align:c,sideOffset:6,className:"z-[var(--z-dropdown)]",children:(0,f.jsx)("div",{className:"min-w-[180px] rounded-md border border-[var(--border)] bg-[var(--bg-primary)] py-1.5 shadow-xl animate-scale-in",children:b.map(a=>(0,f.jsxs)(q.q7,{onSelect:a.onSelect,className:`flex w-full cursor-pointer items-center gap-2 px-3 py-2 text-left text-xs font-medium outline-none transition-colors data-[highlighted]:bg-[var(--accent)] data-[highlighted]:text-white ${a.destructive?"text-[var(--danger)]":"text-[var(--text-secondary)]"}`,children:[a.icon,a.label]},a.label))})})})]})}function s({onSearch:a,onAbout:b,onConfigure:c,onPublish:d,onViewPublished:e,globalRemoteUrl:k,syncLog:q,onSyncAll:s,onUpdateRemote:t,selectedProjectName:u,onSyncProject:v}){let w=(0,h.useRouter)(),{theme:x,setTheme:y}=(0,j.D)(),[z,A]=(0,g.useState)(!1),[B,C]=(0,g.useState)(!1),[D,E]=(0,g.useState)(!1),[F,G]=(0,g.useState)(!1),H=async()=>{if(!F){G(!0);try{let a=await fetch("/api/reindex",{method:"POST"}),b=await a.json().catch(()=>({}));if(a.ok&&b?.success){let a=b.totals??{newly_indexed:0,refreshed:0,pruned:0,errors:0};i.o.success(`Reindexed ${b.scopes?.length??0} scope(s) in ${b.duration_ms??"?"}ms — +${a.newly_indexed} new, ${a.refreshed} updated, ${a.pruned} removed`+(a.errors?`, ${a.errors} scope error(s)`:""))}else 409===a.status?i.o.error("Reindex already in progress"):i.o.error(`Reindex failed: ${b?.error??`HTTP ${a.status}`}`)}catch(a){i.o.error(`Reindex failed: ${a?.message??"Network error"}`)}finally{G(!1)}}};return(0,f.jsxs)("header",{className:"sticky top-0 z-50 h-16 bg-[var(--bg-secondary)]/80 backdrop-blur-xl flex items-center px-6 border-b border-[var(--border)] gap-3 overflow-visible transition-all",children:[(0,f.jsxs)("div",{className:"flex items-center gap-0 group cursor-pointer",onClick:()=>w.push("/"),children:[(0,f.jsx)(o.H,{size:"sm"}),(0,f.jsx)("span",{className:"-ml-3 font-extrabold text-xl tracking-[4px] font-title text-[var(--text-primary)] drop-shadow-[0_0_15px_rgba(180,120,30,0.1)] dark:drop-shadow-[0_0_15px_rgba(180,120,30,0.3)] transition-all group-hover:drop-shadow-[0_0_20px_rgba(180,120,30,0.5)]",children:"ONTEXTA"})]}),(0,f.jsx)("div",{className:"flex-1 flex justify-center px-4",children:(0,f.jsxs)("button",{onClick:a,className:"w-full max-w-[440px] h-10 px-4 bg-[var(--bg-tertiary)]/50 text-[13px] text-[var(--text-secondary)] rounded-xl hover:bg-[var(--bg-secondary)] transition-all flex items-center gap-3 border border-[var(--border)] group focus-glow",children:[(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",className:"w-4 h-4 opacity-50 group-hover:opacity-100 transition-opacity",children:[(0,f.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,f.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),(0,f.jsx)("span",{className:"flex-1 text-left opacity-60 group-hover:opacity-100",children:"Search context..."}),(0,f.jsxs)("kbd",{className:"text-[10px] font-mono text-[var(--text-secondary)] bg-[var(--bg-secondary)] px-2 py-1 rounded-md border border-[var(--border)] shadow-sm opacity-50",children:[B?"⌘":"Ctrl","K"]})]})}),(0,f.jsxs)("div",{className:"flex items-center gap-2",children:[(0,f.jsx)("button",{onClick:()=>w.push("/calendar"),className:"btn btn-md !font-mono font-bold uppercase tracking-wider text-[var(--accent)] bp-toolbar-btn","aria-label":"Open Calendar",title:"Open Calendar",children:"Calendar"}),(0,f.jsx)("button",{onClick:()=>E(a=>!a),className:"btn btn-md !font-mono font-bold uppercase tracking-wider text-[var(--accent)] bp-toolbar-btn","aria-label":"Sync menu",title:"Open sync menu",children:"Sync ▾"}),(0,f.jsx)("button",{onClick:H,disabled:F,className:`btn btn-md !font-mono font-bold uppercase tracking-wider text-[var(--accent)] bp-toolbar-btn ${F?"opacity-50":""}`,"aria-label":"Reindex — scan disk to add new files and remove orphan rows",title:"Reindex Knowledge Base + all projects: add new files and drop orphan rows",children:F?"Reindexing…":"Reindex"}),(0,f.jsx)("button",{onClick:c,className:"btn btn-md !font-mono font-bold uppercase tracking-wider text-[var(--accent)] bp-toolbar-btn","aria-label":"Configure Kontexta",children:"Configure"}),(0,f.jsx)("button",{onClick:b,className:"btn btn-md !font-mono font-bold uppercase tracking-wider text-[var(--accent)] bp-toolbar-btn","aria-label":"About Kontexta",children:"About"}),(0,f.jsx)(r,{trigger:(0,f.jsx)("button",{className:"btn btn-md !font-mono font-bold uppercase tracking-wider text-[var(--accent)] bp-toolbar-btn","aria-label":"Publish menu",title:"Publish documentation",children:"Publish ▾"}),items:[{label:"New Publish",onSelect:d,icon:(0,f.jsxs)("svg",{className:"w-4 h-4 text-[var(--accent)]",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[(0,f.jsx)("path",{d:"M4 4h16v16H4z"}),(0,f.jsx)("path",{d:"M12 8v8M8 12h8"})]})},{label:"View Published",onSelect:e,icon:(0,f.jsxs)("svg",{className:"w-4 h-4 text-[var(--accent)]",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[(0,f.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),(0,f.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})}]}),(0,f.jsx)("button",{onClick:async()=>{await fetch("/api/auth/logout",{method:"POST"}),w.push("/login")},className:"p-2 rounded-md text-[var(--text-secondary)] hover:text-[var(--danger)] hover:bg-[var(--bg-tertiary)] transition-colors","aria-label":"Lock Kontexta",title:"Lock Kontexta",children:(0,f.jsxs)("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[(0,f.jsx)("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),(0,f.jsx)("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]})}),(0,f.jsxs)("span",{className:"bp-title-block bp-annotation",children:["REV ","4.4.0"]}),z&&(0,f.jsxs)("button",{onClick:()=>y("light"===x?"dark":"dark"===x?"blueprint":"light"),className:"px-2 h-5 rounded-md border border-[var(--border)] font-mono text-[10px] uppercase tracking-wider text-[var(--text-secondary)] hover:text-[var(--accent)] hover:border-[var(--accent)] transition-colors inline-flex items-center gap-1","aria-label":"Cycle theme (light / dark / blueprint)",title:`Theme: ${x} — click to cycle`,children:["light"===x?(0,f.jsx)(l,{className:"w-3 h-3","aria-hidden":!0}):"dark"===x?(0,f.jsx)(m,{className:"w-3 h-3","aria-hidden":!0}):(0,f.jsx)(n,{className:"w-3 h-3","aria-hidden":!0}),"light"===x?"light":"dark"===x?"dark":"blueprint"]})]}),(0,f.jsx)(p,{open:D,onClose:()=>E(!1),log:q,globalRemoteUrl:k,onSyncAll:s,onUpdateRemote:t,selectedProjectName:u??null,onSyncProject:v})]})}function t(a){let[b,c]=(0,g.useState)(()=>!1);return b}function u({left:a,leftRail:b,middle:c,right:d}){let[e,h]=(0,g.useState)(240),[i,j]=(0,g.useState)(320),[k,l]=(0,g.useState)(!1),m=t("(max-width: 1023px)"),n=(0,g.useRef)(null),o=(0,g.useRef)(0),p=(0,g.useRef)(0),q=a=>b=>{n.current=a,o.current=b.clientX,p.current="left"===a?e:i,b.target.setPointerCapture(b.pointerId)};return(0,f.jsxs)("div",{className:"flex flex-1 min-h-0",onPointerMove:a=>{if(!n.current)return;let b=a.clientX-o.current;"left"===n.current?h(v(p.current+b,180,360)):j(v(p.current+b,260,600))},onPointerUp:()=>{n.current=null},children:[m&&b?b:(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{style:{width:e},className:"shrink-0 h-full overflow-y-auto bg-[var(--bg-primary)] border-r border-[var(--border)] scrollbar-thin",onScroll:a=>a.stopPropagation(),children:a}),(0,f.jsx)("div",{onPointerDown:q("left"),className:"w-1 cursor-col-resize bg-transparent hover:bg-[var(--accent)]/40 transition-colors z-10"})]}),(0,f.jsx)("div",{style:{width:i},className:"shrink-0 h-full overflow-y-auto bg-[var(--bg-primary)] border-r border-[var(--border)]",children:c}),(0,f.jsx)("div",{onPointerDown:q("middle"),className:"w-1 cursor-col-resize bg-transparent hover:bg-[var(--accent)]/40 transition-colors z-10"}),(0,f.jsx)("div",{className:"flex-1 min-w-0 bg-[var(--bg-secondary)] dark:bg-[var(--bg-primary)] p-3 lg:p-4 transition-all overflow-y-auto flex flex-col",children:(0,f.jsxs)("div",{className:"flex-1 min-w-0 overflow-auto floating-surface rounded-2xl shadow-2xl relative",children:[(0,f.jsx)("div",{className:"absolute inset-0 pointer-events-none border border-amber-accent/10 rounded-2xl z-20"}),d]})})]})}function v(a,b,c){return Math.max(b,Math.min(c,a))}let w=(0,k.A)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),x=(0,k.A)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);var y=c(40905);function z({label:a,icon:b,active:c=!1,initialExpanded:d=!1,children:e,onClick:h,hasHands:i=!1}){let[j,k]=(0,g.useState)(d),l=!!e;return(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{onClick:()=>{l&&k(!j),h?.()},className:`relative flex items-center gap-1.5 py-1.5 px-2 rounded-lg text-sm cursor-pointer transition-all duration-200 group ${c?"bg-[var(--accent-soft)] text-[var(--text-primary)] font-semibold":"text-[var(--text-secondary)] hover:bg-[var(--accent-soft)] hover:text-[var(--text-primary)]"}`,children:[c&&(0,f.jsx)("span",{className:"absolute -left-1 top-1 bottom-1 w-0.5 bg-[var(--accent)] rounded-full bp-keep-round"}),l&&(0,f.jsx)(y.A,{className:`w-3 h-3 shrink-0 transition-transform duration-200 ${j?"rotate-90":""}`,"aria-hidden":!0}),b&&(0,f.jsx)("span",{className:"dark-icon",children:b}),(0,f.jsx)("span",{className:"truncate lowercase first-letter:uppercase flex-1",children:a}),i&&(0,f.jsx)("span",{className:"ml-1 flex items-center justify-center text-[10px] text-[var(--accent)] opacity-70",title:"Hands enabled",children:(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"w-3 h-3",children:[(0,f.jsx)("path",{d:"M18 11V6a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v0"}),(0,f.jsx)("path",{d:"M14 10V4a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v0"}),(0,f.jsx)("path",{d:"M10 10.5V6a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v0"}),(0,f.jsx)("path",{d:"M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15"})]})})]}),(0,f.jsx)("div",{className:`grid transition-all duration-300 ease-in-out ${l&&j?"grid-rows-[1fr] opacity-100 mt-1":"grid-rows-[0fr] opacity-0"}`,children:(0,f.jsx)("div",{className:"overflow-hidden ml-3",children:e})})]})}function A(a,b,c=[],d=!0){let e={name:"",path:"",children:[],files:[]},f=b.endsWith("/")?b:b+"/";for(let b of a){if(!b.path.startsWith(f))continue;let a=b.path.slice(f.length).split("/");a.pop();let c=e,d="";for(let b of a){d=d?`${d}/${b}`:b;let a=c.children.find(a=>a.name===b);a||(a={name:b,path:d,children:[],files:[]},c.children.push(a)),c=a}c.files.push({id:b.id,title:b.title,path:b.path})}for(let a of c){let b=a.split("/"),c=e,d="";for(let a of b){d=d?`${d}/${a}`:a;let b=c.children.find(b=>b.name===a);b||(b={name:a,path:d,children:[],files:[]},c.children.push(b)),c=b}}return d&&function a(b){return b.children=b.children.filter(b=>a(b)),b.files.length>0||b.children.length>0||!!b.isExplicit}(e),function a(b){for(let c of(b.children.sort((a,b)=>a.name.localeCompare(b.name)),b.files.sort((a,b)=>a.title.localeCompare(b.title)),b.children))a(c)}(e),e}function B({icon:a,title:b,hint:c,action:d}){return(0,f.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 px-6 text-center gap-2",children:[a&&(0,f.jsx)("div",{className:"text-[var(--muted)] opacity-60 mb-1",children:a}),(0,f.jsx)("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:b}),c&&(0,f.jsx)("p",{className:"text-xs text-[var(--text-secondary)]",children:c}),d&&(0,f.jsx)("div",{className:"mt-3",children:d})]})}let C=({className:a})=>(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:a,children:[(0,f.jsx)("path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"}),(0,f.jsx)("polyline",{points:"14 2 14 8 20 8"})]}),D=({className:a})=>(0,f.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:a,children:(0,f.jsx)("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})});function E({node:a,selectedFolder:b,onSelectFolder:c,onSelectFile:d}){return(0,f.jsxs)(f.Fragment,{children:[a.children.map(a=>(0,f.jsx)(z,{label:a.name,icon:(0,f.jsx)(D,{className:"w-3.5 h-3.5 text-[#FF7F50] group-hover:text-[var(--accent)] transition-colors"}),active:b===a.path,onClick:()=>c(a.path),children:(0,f.jsx)(E,{node:a,selectedFolder:b,onSelectFolder:c,onSelectFile:d})},a.path)),a.files.map(a=>(0,f.jsx)(z,{label:a.title,icon:(0,f.jsx)(C,{className:"w-3.5 h-3.5 text-amber-accent group-hover:text-[var(--accent)] transition-colors"}),onClick:()=>d(a.id)},a.id))]})}function F({projects:a,projectFiles:b,knowledgeFiles:c,selectedProjectId:d,selectedSection:e,selectedFolder:h,projectFolders:i,knowledgeFolders:j,projectBasePath:k,knowledgeBasePath:l,onSelectProject:m,onSelectKnowledge:n,onSelectFavorites:o,onSelectKnowledgeFolder:p,onSelectFolder:q,onSelectFile:r,onCreateFolder:s}){let t=(0,g.useMemo)(()=>{if(!d)return null;let c=a.find(a=>a.id===d);return c&&c.path?A(b,c.path,i):null},[d,b,i,a]),u=(0,g.useMemo)(()=>0===j.length&&0===c.length?null:A(c,l,j,!1),[c,j,l]);return(0,f.jsxs)("div",{className:"p-2 space-y-3 text-[var(--text-primary)]",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)("div",{className:"bp-annotation px-2 pt-2 pb-1 text-[12px] uppercase tracking-wider text-[var(--text-secondary)]",children:"Projects"}),(0,f.jsxs)("div",{className:"space-y-0.5",children:[a.map(a=>{let b=d===a.id;return(0,f.jsx)(z,{label:a.name,icon:(0,f.jsx)(D,{className:"w-3.5 h-3.5 text-[#FF7F50] group-hover:text-[var(--accent)] transition-colors"}),active:b&&null===h,initialExpanded:b,hasHands:a.has_hands,onClick:()=>{m(a.id),q(null)},children:b&&t?(0,f.jsx)(E,{node:t,selectedFolder:h,onSelectFolder:q,onSelectFile:r}):void 0},a.id)}),0===a.length&&(0,f.jsx)(B,{icon:(0,f.jsx)(w,{className:"w-8 h-8 opacity-40","aria-hidden":!0}),title:"No projects yet"})]})]}),(0,f.jsx)("div",{children:(0,f.jsx)("div",{className:"flex items-center justify-between px-2 pt-2 pb-1",children:(0,f.jsx)("button",{onClick:o,className:`text-[12px] uppercase tracking-wider transition-colors ${"favorites"===e?"text-[var(--accent)]":"text-[var(--text-secondary)] hover:text-[var(--text-primary)]"}`,"aria-label":"Select favorites",children:"Favorites"})})}),(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{className:"flex items-center justify-between px-2 pt-2 pb-1",children:[(0,f.jsx)("button",{onClick:n,className:`text-[12px] uppercase tracking-wider transition-colors ${"knowledge"===e&&!h?"text-[var(--accent)]":"text-[var(--text-secondary)] hover:text-[var(--text-primary)]"}`,"aria-label":"Select knowledge base",children:"Knowledge"}),(0,f.jsx)("button",{onClick:()=>s(0),className:"btn btn-sm","aria-label":"Create new folder",children:"+ Folder"})]}),(0,f.jsx)("div",{className:"space-y-0.5",children:u?(0,f.jsx)(E,{node:u,selectedFolder:h,onSelectFolder:p,onSelectFile:r}):(0,f.jsx)(B,{icon:(0,f.jsx)(x,{className:"w-8 h-8 opacity-40","aria-hidden":!0}),title:"No folders yet"})})]})]})}let G=(0,k.A)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]),H=(0,k.A)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]),I=(0,k.A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);var J=c(13505);function K({value:a,onChange:b}){return(0,f.jsx)("input",{type:"text",value:a,onChange:a=>b(a.target.value),placeholder:"Filter files...",className:"w-full px-2.5 py-1 text-[12px] bg-[var(--bg-primary)] border-b border-[var(--border)] focus:outline-none focus:border-[var(--accent)]"})}let L=(0,k.A)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]),M=({className:a})=>(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",className:a,children:[(0,f.jsx)("path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"}),(0,f.jsx)("polyline",{points:"14 2 14 8 20 8"})]}),N=({className:a})=>(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:a,children:[(0,f.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,f.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,f.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]});function O({id:a,title:b,updatedAt:c,active:d,onClick:e,estTokens:g,selectMode:h,selected:j,onToggleSelect:k,favorite:l,tags:m}){return(0,f.jsx)("div",{onClick:a=>{if(h){a.preventDefault(),k?.();return}e()},className:`
|
|
2
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:w.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===L.isDev,l=c||b.writableEnded;if(ai&&ac&&!f&&!O)return(null==ad?void 0:ad.render404)?await ad.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(aj&&(j=(0,x.parseFallbackField)(aj.fallback)),j===x.FallbackMode.PRERENDER&&(0,v.isBot)(am)&&(!as||ao)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ai=!0),ai&&(j!==x.FallbackMode.NOT_FOUND||f)&&(j=x.FallbackMode.BLOCKING_STATIC_RENDER),!O&&j!==x.FallbackMode.BLOCKING_STATIC_RENDER&&aC&&!l&&!aa&&U&&(k||!ak)){let b;if((k||aj)&&j===x.FallbackMode.NOT_FOUND)throw new C.NoFallbackError;if(as&&!aq){let c="string"==typeof(null==aj?void 0:aj.fallback)?aj.fallback:k?ah:null;if(b=await L.handleResponse({cacheKey:c,req:a,nextConfig:ae,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:_,isRoutePPREnabled:as,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||au?(0,o.u)(ah):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let n=ai||g||!av?void 0:av;if(at&&void 0!==n)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:w.CachedRouteKind.PAGES,html:y.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=U&&as&&((0,h.getRequestMeta)(a,"renderFallbackShell")||au)?(0,o.u)(ag):null;return m({span:i,postponed:n,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,o=await L.handleResponse({cacheKey:aB,responseGenerator:a=>n({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ai,isRoutePPREnabled:as,req:a,nextConfig:ae,prerenderManifest:_,waitUntil:d.waitUntil});if(aa&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),L.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!o){if(aB)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=o.value)?void 0:f.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=o.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof o.value.postponed;al&&!aw&&(!p||ap)&&(O||b.setHeader("x-nextjs-cache",ai?"REVALIDATED":o.isMiss?"MISS":o.isStale?"STALE":"HIT"),b.setHeader(u.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=o;if(av)l={revalidate:0,expire:void 0};else if(O&&aq&&!ap&&as)l={revalidate:0,expire:void 0};else if(!L.isDev)if(aa)l={revalidate:0,expire:void 0};else if(al){if(o.cacheControl)if("number"==typeof o.cacheControl.revalidate){if(o.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${o.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:o.cacheControl.revalidate,expire:(null==(j=o.cacheControl)?void 0:j.expire)??ae.expireTime}}else l={revalidate:z.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(o.cacheControl=l,"string"==typeof ax&&(null==q?void 0:q.kind)===w.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[z.NEXT_CACHE_TAGS_HEADER];O&&al&&c&&"string"==typeof c&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(ax);return void 0!==d?(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(d,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl}):(b.statusCode=204,(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.EMPTY,cacheControl:o.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...o,value:{...o.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&av)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(O&&al||delete a[z.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[z.NEXT_CACHE_TAGS_HEADER];if(O&&al&&s&&"string"==typeof s&&b.setHeader(z.NEXT_CACHE_TAGS_HEADER,s),!q.status||aq&&as||(b.statusCode=q.status),!O&&q.status&&G.RedirectStatusCode[q.status]&&aq&&(b.statusCode=200),p&&b.setHeader(u.NEXT_DID_POSTPONE_HEADER,"1"),aq&&!aa){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:q.html,cacheControl:aw?{revalidate:0,expire:void 0}:o.cacheControl})}return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:y.default.fromStatic(q.rscData,u.RSC_CONTENT_TYPE_HEADER),cacheControl:o.cacheControl})}let t=q.html;if(!p||O||aq)return(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:o.cacheControl});if(at)return t.push(new ReadableStream({start(a){a.enqueue(A.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}});let v=new TransformStream;return t.push(v.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==w.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(v.writable)}).catch(a=>{v.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,B.sendRenderResult)({req:a,res:b,generateEtags:ae.generateEtags,poweredByHeader:ae.poweredByHeader,result:t,cacheControl:{revalidate:0,expire:void 0}})};if(!aG)return await aF.withPropagatedContext(a.headers,()=>aF.trace(i.BaseServerSpan.handleRequest,{spanName:`${aE} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aE,"http.target":a.url}},p));await p(aG)}catch(b){throw b instanceof C.NoFallbackError||await L.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:al,isOnDemandRevalidate:ai})},ad),b}}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5270:(a,b,c)=>{"use strict";c.d(b,{default:()=>f4});var d={};c.r(d),c.d(d,{attentionMarkers:()=>bN,contentInitial:()=>bH,disable:()=>bO,document:()=>bG,flow:()=>bJ,flowInitial:()=>bI,insideSpan:()=>bM,string:()=>bK,text:()=>bL});var e={};c.r(e),c.d(e,{boolean:()=>d8,booleanish:()=>d9,commaOrSpaceSeparated:()=>ee,commaSeparated:()=>ed,number:()=>eb,overloadedBoolean:()=>ea,spaceSeparated:()=>ec});var f=c(25108),g=c(33997),h=c(90554),i=c(75947),j=c(16250),k=c(41880);let l=(0,k.A)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),m=(0,k.A)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),n=(0,k.A)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);var o=c(1423);function p({open:a,onClose:b,log:c,globalRemoteUrl:d,onSyncAll:e,onUpdateRemote:h,selectedProjectName:i,onSyncProject:j}){let[k,l]=(0,g.useState)("log"),[m,n]=(0,g.useState)(d||""),[o,p]=(0,g.useState)(!1),[q,r]=(0,g.useState)(null);if(!a)return null;let s=async()=>{p(!0),r(null);try{await e()}catch(a){r(a?.message||"Sync failed")}finally{p(!1)}},t=async()=>{p(!0),r(null);try{await h(m),l("log")}catch(a){r(a?.message||"Failed to save remote")}finally{p(!1)}};return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{className:"fixed inset-0 z-40",onClick:b}),(0,f.jsxs)("div",{role:"dialog",className:"fixed top-14 right-3 z-50 w-80 bg-[var(--bg-secondary)] border border-[var(--border)] rounded-md shadow-xl text-[13px] text-[var(--text-primary)]",children:[(0,f.jsxs)("div",{className:"flex border-b border-[var(--border)]",children:[(0,f.jsx)("button",{className:`flex-1 px-3 py-2 ${"log"===k?"text-[var(--accent)] border-b-2 border-[var(--accent)] -mb-px":"text-[var(--text-secondary)]"}`,onClick:()=>l("log"),children:"Sync log"}),(0,f.jsx)("button",{className:`flex-1 px-3 py-2 ${"config"===k?"text-[var(--accent)] border-b-2 border-[var(--accent)] -mb-px":"text-[var(--text-secondary)]"}`,onClick:()=>l("config"),children:"Configure remote"})]}),"log"===k?(0,f.jsxs)("div",{className:"p-3 space-y-2 max-h-72 overflow-auto",children:[0===c.length?(0,f.jsx)("p",{className:"text-[var(--text-secondary)] text-[12px]",children:"No sync activity yet."}):c.slice(0,5).map((a,b)=>(0,f.jsxs)("div",{className:"flex items-baseline gap-2 font-mono text-[12px]",children:[(0,f.jsx)("span",{style:{color:"ok"===a.result?"var(--success)":"var(--danger)"},children:"●"}),(0,f.jsx)("span",{className:"text-[var(--text-secondary)]",children:new Date(a.at).toLocaleTimeString()}),(0,f.jsxs)("span",{className:"text-[var(--text-primary)] truncate",children:[null===a.projectId?"all projects":`project #${a.projectId}`,a.message?` — ${a.message}`:""]})]},b)),i&&j&&(0,f.jsx)("button",{disabled:o,onClick:async()=>{p(!0),r(null);try{await j()}catch(a){r(a?.message||"Sync failed")}finally{p(!1)}},className:"w-full mt-2 px-3 py-1.5 bg-[var(--accent)] text-black font-bold text-[12px] rounded-md disabled:opacity-50 truncate",children:o?"Syncing...":`Sync ${i}`}),(0,f.jsx)("button",{disabled:o,onClick:s,className:"w-full mt-2 px-3 py-1.5 bg-[var(--bg-tertiary)] text-[var(--text-primary)] font-bold text-[12px] rounded-md hover:bg-[var(--border)] disabled:opacity-50",children:o?"Syncing...":"Sync all projects"}),q&&(0,f.jsx)("p",{className:"text-[var(--danger)] text-[12px]",children:q})]}):(0,f.jsxs)("div",{className:"p-3 space-y-2",children:[(0,f.jsx)("label",{className:"block text-[12px] text-[var(--text-secondary)]",children:"Global git remote URL"}),(0,f.jsx)("input",{type:"text",value:m,onChange:a=>n(a.target.value),placeholder:"https://github.com/user/repo.git or git@host:user/repo.git",className:"w-full px-2 py-1 bg-[var(--bg-primary)] border border-[var(--border)] rounded text-[12px]"}),(0,f.jsx)("button",{disabled:o,onClick:t,className:"w-full px-3 py-1.5 bg-[var(--accent)] text-black font-bold text-[12px] rounded-md disabled:opacity-50",children:o?"Saving...":"Save"}),q&&(0,f.jsx)("p",{className:"text-[var(--danger)] text-[12px]",children:q})]})]})]})}var q=c(17184);function r({trigger:a,items:b,align:c="end"}){return(0,f.jsxs)(q.bL,{children:[(0,f.jsx)(q.l9,{asChild:!0,children:a}),(0,f.jsx)(q.ZL,{children:(0,f.jsx)(q.UC,{align:c,sideOffset:6,className:"z-[var(--z-dropdown)]",children:(0,f.jsx)("div",{className:"min-w-[180px] rounded-md border border-[var(--border)] bg-[var(--bg-primary)] py-1.5 shadow-xl animate-scale-in",children:b.map(a=>(0,f.jsxs)(q.q7,{onSelect:a.onSelect,className:`flex w-full cursor-pointer items-center gap-2 px-3 py-2 text-left text-xs font-medium outline-none transition-colors data-[highlighted]:bg-[var(--accent)] data-[highlighted]:text-white ${a.destructive?"text-[var(--danger)]":"text-[var(--text-secondary)]"}`,children:[a.icon,a.label]},a.label))})})})]})}function s({onSearch:a,onAbout:b,onConfigure:c,onPublish:d,onViewPublished:e,globalRemoteUrl:k,syncLog:q,onSyncAll:s,onUpdateRemote:t,selectedProjectName:u,onSyncProject:v}){let w=(0,h.useRouter)(),{theme:x,setTheme:y}=(0,j.D)(),[z,A]=(0,g.useState)(!1),[B,C]=(0,g.useState)(!1),[D,E]=(0,g.useState)(!1),[F,G]=(0,g.useState)(!1),H=async()=>{if(!F){G(!0);try{let a=await fetch("/api/reindex",{method:"POST"}),b=await a.json().catch(()=>({}));if(a.ok&&b?.success){let a=b.totals??{newly_indexed:0,refreshed:0,pruned:0,errors:0};i.o.success(`Reindexed ${b.scopes?.length??0} scope(s) in ${b.duration_ms??"?"}ms — +${a.newly_indexed} new, ${a.refreshed} updated, ${a.pruned} removed`+(a.errors?`, ${a.errors} scope error(s)`:""))}else 409===a.status?i.o.error("Reindex already in progress"):i.o.error(`Reindex failed: ${b?.error??`HTTP ${a.status}`}`)}catch(a){i.o.error(`Reindex failed: ${a?.message??"Network error"}`)}finally{G(!1)}}};return(0,f.jsxs)("header",{className:"sticky top-0 z-50 h-16 bg-[var(--bg-secondary)]/80 backdrop-blur-xl flex items-center px-6 border-b border-[var(--border)] gap-3 overflow-visible transition-all",children:[(0,f.jsxs)("div",{className:"flex items-center gap-0 group cursor-pointer",onClick:()=>w.push("/"),children:[(0,f.jsx)(o.H,{size:"sm"}),(0,f.jsx)("span",{className:"-ml-3 font-extrabold text-xl tracking-[4px] font-title text-[var(--text-primary)] drop-shadow-[0_0_15px_rgba(180,120,30,0.1)] dark:drop-shadow-[0_0_15px_rgba(180,120,30,0.3)] transition-all group-hover:drop-shadow-[0_0_20px_rgba(180,120,30,0.5)]",children:"ONTEXTA"})]}),(0,f.jsx)("div",{className:"flex-1 flex justify-center px-4",children:(0,f.jsxs)("button",{onClick:a,className:"w-full max-w-[440px] h-10 px-4 bg-[var(--bg-tertiary)]/50 text-[13px] text-[var(--text-secondary)] rounded-xl hover:bg-[var(--bg-secondary)] transition-all flex items-center gap-3 border border-[var(--border)] group focus-glow",children:[(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",className:"w-4 h-4 opacity-50 group-hover:opacity-100 transition-opacity",children:[(0,f.jsx)("circle",{cx:"11",cy:"11",r:"7"}),(0,f.jsx)("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),(0,f.jsx)("span",{className:"flex-1 text-left opacity-60 group-hover:opacity-100",children:"Search context..."}),(0,f.jsxs)("kbd",{className:"text-[10px] font-mono text-[var(--text-secondary)] bg-[var(--bg-secondary)] px-2 py-1 rounded-md border border-[var(--border)] shadow-sm opacity-50",children:[B?"⌘":"Ctrl","K"]})]})}),(0,f.jsxs)("div",{className:"flex items-center gap-2",children:[(0,f.jsx)("button",{onClick:()=>w.push("/calendar"),className:"btn btn-md !font-mono font-bold uppercase tracking-wider text-[var(--accent)] bp-toolbar-btn","aria-label":"Open Calendar",title:"Open Calendar",children:"Calendar"}),(0,f.jsx)("button",{onClick:()=>E(a=>!a),className:"btn btn-md !font-mono font-bold uppercase tracking-wider text-[var(--accent)] bp-toolbar-btn","aria-label":"Sync menu",title:"Open sync menu",children:"Sync ▾"}),(0,f.jsx)("button",{onClick:H,disabled:F,className:`btn btn-md !font-mono font-bold uppercase tracking-wider text-[var(--accent)] bp-toolbar-btn ${F?"opacity-50":""}`,"aria-label":"Reindex — scan disk to add new files and remove orphan rows",title:"Reindex Knowledge Base + all projects: add new files and drop orphan rows",children:F?"Reindexing…":"Reindex"}),(0,f.jsx)("button",{onClick:c,className:"btn btn-md !font-mono font-bold uppercase tracking-wider text-[var(--accent)] bp-toolbar-btn","aria-label":"Configure Kontexta",children:"Configure"}),(0,f.jsx)("button",{onClick:b,className:"btn btn-md !font-mono font-bold uppercase tracking-wider text-[var(--accent)] bp-toolbar-btn","aria-label":"About Kontexta",children:"About"}),(0,f.jsx)(r,{trigger:(0,f.jsx)("button",{className:"btn btn-md !font-mono font-bold uppercase tracking-wider text-[var(--accent)] bp-toolbar-btn","aria-label":"Publish menu",title:"Publish documentation",children:"Publish ▾"}),items:[{label:"New Publish",onSelect:d,icon:(0,f.jsxs)("svg",{className:"w-4 h-4 text-[var(--accent)]",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[(0,f.jsx)("path",{d:"M4 4h16v16H4z"}),(0,f.jsx)("path",{d:"M12 8v8M8 12h8"})]})},{label:"View Published",onSelect:e,icon:(0,f.jsxs)("svg",{className:"w-4 h-4 text-[var(--accent)]",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[(0,f.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),(0,f.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})}]}),(0,f.jsx)("button",{onClick:async()=>{await fetch("/api/auth/logout",{method:"POST"}),w.push("/login")},className:"p-2 rounded-md text-[var(--text-secondary)] hover:text-[var(--danger)] hover:bg-[var(--bg-tertiary)] transition-colors","aria-label":"Lock Kontexta",title:"Lock Kontexta",children:(0,f.jsxs)("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[(0,f.jsx)("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),(0,f.jsx)("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]})}),(0,f.jsxs)("span",{className:"bp-title-block bp-annotation",children:["REV ","4.5.0"]}),z&&(0,f.jsxs)("button",{onClick:()=>y("light"===x?"dark":"dark"===x?"blueprint":"light"),className:"px-2 h-5 rounded-md border border-[var(--border)] font-mono text-[10px] uppercase tracking-wider text-[var(--text-secondary)] hover:text-[var(--accent)] hover:border-[var(--accent)] transition-colors inline-flex items-center gap-1","aria-label":"Cycle theme (light / dark / blueprint)",title:`Theme: ${x} — click to cycle`,children:["light"===x?(0,f.jsx)(l,{className:"w-3 h-3","aria-hidden":!0}):"dark"===x?(0,f.jsx)(m,{className:"w-3 h-3","aria-hidden":!0}):(0,f.jsx)(n,{className:"w-3 h-3","aria-hidden":!0}),"light"===x?"light":"dark"===x?"dark":"blueprint"]})]}),(0,f.jsx)(p,{open:D,onClose:()=>E(!1),log:q,globalRemoteUrl:k,onSyncAll:s,onUpdateRemote:t,selectedProjectName:u??null,onSyncProject:v})]})}function t(a){let[b,c]=(0,g.useState)(()=>!1);return b}function u({left:a,leftRail:b,middle:c,right:d}){let[e,h]=(0,g.useState)(240),[i,j]=(0,g.useState)(320),[k,l]=(0,g.useState)(!1),m=t("(max-width: 1023px)"),n=(0,g.useRef)(null),o=(0,g.useRef)(0),p=(0,g.useRef)(0),q=a=>b=>{n.current=a,o.current=b.clientX,p.current="left"===a?e:i,b.target.setPointerCapture(b.pointerId)};return(0,f.jsxs)("div",{className:"flex flex-1 min-h-0",onPointerMove:a=>{if(!n.current)return;let b=a.clientX-o.current;"left"===n.current?h(v(p.current+b,180,360)):j(v(p.current+b,260,600))},onPointerUp:()=>{n.current=null},children:[m&&b?b:(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{style:{width:e},className:"shrink-0 h-full overflow-y-auto bg-[var(--bg-primary)] border-r border-[var(--border)] scrollbar-thin",onScroll:a=>a.stopPropagation(),children:a}),(0,f.jsx)("div",{onPointerDown:q("left"),className:"w-1 cursor-col-resize bg-transparent hover:bg-[var(--accent)]/40 transition-colors z-10"})]}),(0,f.jsx)("div",{style:{width:i},className:"shrink-0 h-full overflow-y-auto bg-[var(--bg-primary)] border-r border-[var(--border)]",children:c}),(0,f.jsx)("div",{onPointerDown:q("middle"),className:"w-1 cursor-col-resize bg-transparent hover:bg-[var(--accent)]/40 transition-colors z-10"}),(0,f.jsx)("div",{className:"flex-1 min-w-0 bg-[var(--bg-secondary)] dark:bg-[var(--bg-primary)] p-3 lg:p-4 transition-all overflow-y-auto flex flex-col",children:(0,f.jsxs)("div",{className:"flex-1 min-w-0 overflow-auto floating-surface rounded-2xl shadow-2xl relative",children:[(0,f.jsx)("div",{className:"absolute inset-0 pointer-events-none border border-amber-accent/10 rounded-2xl z-20"}),d]})})]})}function v(a,b,c){return Math.max(b,Math.min(c,a))}let w=(0,k.A)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]),x=(0,k.A)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);var y=c(40905);function z({label:a,icon:b,active:c=!1,initialExpanded:d=!1,children:e,onClick:h,hasHands:i=!1}){let[j,k]=(0,g.useState)(d),l=!!e;return(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{onClick:()=>{l&&k(!j),h?.()},className:`relative flex items-center gap-1.5 py-1.5 px-2 rounded-lg text-sm cursor-pointer transition-all duration-200 group ${c?"bg-[var(--accent-soft)] text-[var(--text-primary)] font-semibold":"text-[var(--text-secondary)] hover:bg-[var(--accent-soft)] hover:text-[var(--text-primary)]"}`,children:[c&&(0,f.jsx)("span",{className:"absolute -left-1 top-1 bottom-1 w-0.5 bg-[var(--accent)] rounded-full bp-keep-round"}),l&&(0,f.jsx)(y.A,{className:`w-3 h-3 shrink-0 transition-transform duration-200 ${j?"rotate-90":""}`,"aria-hidden":!0}),b&&(0,f.jsx)("span",{className:"dark-icon",children:b}),(0,f.jsx)("span",{className:"truncate lowercase first-letter:uppercase flex-1",children:a}),i&&(0,f.jsx)("span",{className:"ml-1 flex items-center justify-center text-[10px] text-[var(--accent)] opacity-70",title:"Hands enabled",children:(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"w-3 h-3",children:[(0,f.jsx)("path",{d:"M18 11V6a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v0"}),(0,f.jsx)("path",{d:"M14 10V4a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v0"}),(0,f.jsx)("path",{d:"M10 10.5V6a2 2 0 0 0-2-2v0a2 2 0 0 0-2 2v0"}),(0,f.jsx)("path",{d:"M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15"})]})})]}),(0,f.jsx)("div",{className:`grid transition-all duration-300 ease-in-out ${l&&j?"grid-rows-[1fr] opacity-100 mt-1":"grid-rows-[0fr] opacity-0"}`,children:(0,f.jsx)("div",{className:"overflow-hidden ml-3",children:e})})]})}function A(a,b,c=[],d=!0){let e={name:"",path:"",children:[],files:[]},f=b.endsWith("/")?b:b+"/";for(let b of a){if(!b.path.startsWith(f))continue;let a=b.path.slice(f.length).split("/");a.pop();let c=e,d="";for(let b of a){d=d?`${d}/${b}`:b;let a=c.children.find(a=>a.name===b);a||(a={name:b,path:d,children:[],files:[]},c.children.push(a)),c=a}c.files.push({id:b.id,title:b.title,path:b.path})}for(let a of c){let b=a.split("/"),c=e,d="";for(let a of b){d=d?`${d}/${a}`:a;let b=c.children.find(b=>b.name===a);b||(b={name:a,path:d,children:[],files:[]},c.children.push(b)),c=b}}return d&&function a(b){return b.children=b.children.filter(b=>a(b)),b.files.length>0||b.children.length>0||!!b.isExplicit}(e),function a(b){for(let c of(b.children.sort((a,b)=>a.name.localeCompare(b.name)),b.files.sort((a,b)=>a.title.localeCompare(b.title)),b.children))a(c)}(e),e}function B({icon:a,title:b,hint:c,action:d}){return(0,f.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 px-6 text-center gap-2",children:[a&&(0,f.jsx)("div",{className:"text-[var(--muted)] opacity-60 mb-1",children:a}),(0,f.jsx)("p",{className:"text-sm font-medium text-[var(--text-primary)]",children:b}),c&&(0,f.jsx)("p",{className:"text-xs text-[var(--text-secondary)]",children:c}),d&&(0,f.jsx)("div",{className:"mt-3",children:d})]})}let C=({className:a})=>(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:a,children:[(0,f.jsx)("path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"}),(0,f.jsx)("polyline",{points:"14 2 14 8 20 8"})]}),D=({className:a})=>(0,f.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:a,children:(0,f.jsx)("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})});function E({node:a,selectedFolder:b,onSelectFolder:c,onSelectFile:d}){return(0,f.jsxs)(f.Fragment,{children:[a.children.map(a=>(0,f.jsx)(z,{label:a.name,icon:(0,f.jsx)(D,{className:"w-3.5 h-3.5 text-[#FF7F50] group-hover:text-[var(--accent)] transition-colors"}),active:b===a.path,onClick:()=>c(a.path),children:(0,f.jsx)(E,{node:a,selectedFolder:b,onSelectFolder:c,onSelectFile:d})},a.path)),a.files.map(a=>(0,f.jsx)(z,{label:a.title,icon:(0,f.jsx)(C,{className:"w-3.5 h-3.5 text-amber-accent group-hover:text-[var(--accent)] transition-colors"}),onClick:()=>d(a.id)},a.id))]})}function F({projects:a,projectFiles:b,knowledgeFiles:c,selectedProjectId:d,selectedSection:e,selectedFolder:h,projectFolders:i,knowledgeFolders:j,projectBasePath:k,knowledgeBasePath:l,onSelectProject:m,onSelectKnowledge:n,onSelectFavorites:o,onSelectKnowledgeFolder:p,onSelectFolder:q,onSelectFile:r,onCreateFolder:s}){let t=(0,g.useMemo)(()=>{if(!d)return null;let c=a.find(a=>a.id===d);return c&&c.path?A(b,c.path,i):null},[d,b,i,a]),u=(0,g.useMemo)(()=>0===j.length&&0===c.length?null:A(c,l,j,!1),[c,j,l]);return(0,f.jsxs)("div",{className:"p-2 space-y-3 text-[var(--text-primary)]",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)("div",{className:"bp-annotation px-2 pt-2 pb-1 text-[12px] uppercase tracking-wider text-[var(--text-secondary)]",children:"Projects"}),(0,f.jsxs)("div",{className:"space-y-0.5",children:[a.map(a=>{let b=d===a.id;return(0,f.jsx)(z,{label:a.name,icon:(0,f.jsx)(D,{className:"w-3.5 h-3.5 text-[#FF7F50] group-hover:text-[var(--accent)] transition-colors"}),active:b&&null===h,initialExpanded:b,hasHands:a.has_hands,onClick:()=>{m(a.id),q(null)},children:b&&t?(0,f.jsx)(E,{node:t,selectedFolder:h,onSelectFolder:q,onSelectFile:r}):void 0},a.id)}),0===a.length&&(0,f.jsx)(B,{icon:(0,f.jsx)(w,{className:"w-8 h-8 opacity-40","aria-hidden":!0}),title:"No projects yet"})]})]}),(0,f.jsx)("div",{children:(0,f.jsx)("div",{className:"flex items-center justify-between px-2 pt-2 pb-1",children:(0,f.jsx)("button",{onClick:o,className:`text-[12px] uppercase tracking-wider transition-colors ${"favorites"===e?"text-[var(--accent)]":"text-[var(--text-secondary)] hover:text-[var(--text-primary)]"}`,"aria-label":"Select favorites",children:"Favorites"})})}),(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{className:"flex items-center justify-between px-2 pt-2 pb-1",children:[(0,f.jsx)("button",{onClick:n,className:`text-[12px] uppercase tracking-wider transition-colors ${"knowledge"===e&&!h?"text-[var(--accent)]":"text-[var(--text-secondary)] hover:text-[var(--text-primary)]"}`,"aria-label":"Select knowledge base",children:"Knowledge"}),(0,f.jsx)("button",{onClick:()=>s(0),className:"btn btn-sm","aria-label":"Create new folder",children:"+ Folder"})]}),(0,f.jsx)("div",{className:"space-y-0.5",children:u?(0,f.jsx)(E,{node:u,selectedFolder:h,onSelectFolder:p,onSelectFile:r}):(0,f.jsx)(B,{icon:(0,f.jsx)(x,{className:"w-8 h-8 opacity-40","aria-hidden":!0}),title:"No folders yet"})})]})]})}let G=(0,k.A)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]),H=(0,k.A)("rotate-cw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]),I=(0,k.A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);var J=c(13505);function K({value:a,onChange:b}){return(0,f.jsx)("input",{type:"text",value:a,onChange:a=>b(a.target.value),placeholder:"Filter files...",className:"w-full px-2.5 py-1 text-[12px] bg-[var(--bg-primary)] border-b border-[var(--border)] focus:outline-none focus:border-[var(--accent)]"})}let L=(0,k.A)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]),M=({className:a})=>(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",className:a,children:[(0,f.jsx)("path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"}),(0,f.jsx)("polyline",{points:"14 2 14 8 20 8"})]}),N=({className:a})=>(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:a,children:[(0,f.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,f.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,f.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]});function O({id:a,title:b,updatedAt:c,active:d,onClick:e,estTokens:g,selectMode:h,selected:j,onToggleSelect:k,favorite:l,tags:m}){return(0,f.jsx)("div",{onClick:a=>{if(h){a.preventDefault(),k?.();return}e()},className:`
|
|
3
3
|
group relative px-4 py-3 cursor-pointer border-l-[3px] transition-all duration-200
|
|
4
4
|
${d&&!h||h&&j?"bg-[var(--accent-soft)] border-amber-accent":"border-transparent hover:bg-[var(--accent-soft)]/60 hover:translate-x-0.5"}
|
|
5
5
|
`,children:(0,f.jsxs)("div",{className:"flex items-start gap-3",children:[h?(0,f.jsx)("input",{type:"checkbox",checked:!!j,onChange:()=>k?.(),onClick:a=>a.stopPropagation(),className:"mt-1 cursor-pointer accent-amber-accent"}):(0,f.jsx)(M,{className:"w-4 h-4 mt-1 text-amber-accent shrink-0"}),(0,f.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,f.jsxs)("div",{className:`text-sm font-semibold truncate transition-colors flex items-center gap-1.5 ${d?"text-[var(--text-primary)]":"text-[var(--text-primary)] group-hover:text-[var(--accent)]"}`,children:[l&&(0,f.jsx)("span",{className:"text-amber-accent shrink-0",title:"Favorite","aria-label":"Favorite",children:(0,f.jsx)(L,{className:"w-3.5 h-3.5 fill-current","aria-hidden":!0})}),(0,f.jsx)("span",{className:"truncate",children:b})]}),(0,f.jsxs)("div",{className:"text-[11px] mt-1 flex flex-wrap items-center gap-1.5 transition-colors text-[var(--text-secondary)]",children:[(0,f.jsx)("span",{children:function(a){let b=new Date(a),c=new Date().getTime()-b.getTime(),d=Math.floor(c/6e4),e=Math.floor(c/36e5),f=Math.floor(c/864e5);return d<1?"just now":1===d?"1 min ago":d<60?`${d} mins ago`:1===e?"1 hour ago":e<24?`${e} hours ago`:1===f?"1 day ago":f<30?`${f} days ago`:b.toLocaleDateString()}(c)}),"number"==typeof g&&g>0&&(0,f.jsxs)("span",{children:["\xb7 ~",g<1e3?String(g):g<1e4?(g/1e3).toFixed(1)+"k":Math.round(g/1e3)+"k"," tok"]}),m&&m.length>0&&(0,f.jsxs)("span",{className:"flex flex-wrap gap-1",children:[m.slice(0,3).map(a=>(0,f.jsx)("span",{className:"px-1.5 rounded bg-amber-accent/10 border border-amber-accent/20 text-[10px]",children:a},a)),m.length>3&&(0,f.jsxs)("span",{className:"text-[10px] opacity-60",children:["+",m.length-3]})]})]})]}),!h&&(0,f.jsx)("button",{type:"button",onClick:async c=>{c.stopPropagation();try{let c=await fetch(`/api/files/${a}/download`);if(!c.ok){let a=`HTTP ${c.status}`;try{let b=await c.json();b?.error&&(a=b.error)}catch{}i.o.error(`Download failed: ${a}`);return}let d=c.headers.get("content-disposition")||"",e=/filename="([^"]+)"/.exec(d),f=e?.[1]??`${b}.md`,g=await c.blob(),h=URL.createObjectURL(g),j=document.createElement("a");j.href=h,j.download=f,document.body.appendChild(j),j.click(),j.remove(),URL.revokeObjectURL(h)}catch(a){i.o.error(`Download failed: ${a?.message??String(a)}`)}},title:"Download .md","aria-label":"Download file",className:"btn btn-icon-sm opacity-0 group-hover:opacity-100",children:(0,f.jsx)(N,{className:"w-4 h-4"})})]})})}function P({open:a,onClose:b,projects:c,defaultProjectId:d,defaultFolder:e,onUploaded:h}){let[i,j]=(0,g.useState)([]),[k,l]=(0,g.useState)(d??""),[m,n]=(0,g.useState)(e),[o,p]=(0,g.useState)([]),[q,r]=(0,g.useState)(""),[s,t]=(0,g.useState)(!1),[u,v]=(0,g.useState)(null),[w,x]=(0,g.useState)(null),y=async a=>{if(a.preventDefault(),0!==i.length){t(!0),x(null),v(null);try{let a=new FormData;a.append("project_id",""===k?"":String(k)),a.append("folder",m);let b=q.split(",").map(a=>a.trim()).filter(Boolean);for(let c of(b.length&&a.append("tags",JSON.stringify(b)),i))a.append("files",c);let c=await fetch("/api/files/upload",{method:"POST",body:a}),d=await c.json();c.ok?(v(d),h()):x(d.error??`HTTP ${c.status}`)}catch(a){x(a?.message??String(a))}finally{t(!1)}}};return a?(0,f.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",children:(0,f.jsx)("div",{className:"w-[600px] bg-[var(--bg-primary)] border border-[var(--border-color)] rounded-lg shadow-2xl overflow-hidden",children:(0,f.jsxs)("form",{onSubmit:y,children:[(0,f.jsxs)("div",{className:"px-6 py-4 border-b border-[var(--border-color)] flex items-center justify-between",children:[(0,f.jsx)("h3",{className:"text-lg font-bold text-amber-accent",children:"UPLOAD MARKDOWN FILES"}),(0,f.jsx)("button",{type:"button",onClick:b,className:"btn btn-icon-md","aria-label":"Close dialog",children:(0,f.jsx)(J.A,{className:"w-4 h-4","aria-hidden":!0})})]}),(0,f.jsxs)("div",{className:"p-6 space-y-4",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"FILES"}),(0,f.jsx)("input",{type:"file",multiple:!0,accept:".md,.markdown,.mmd",onChange:a=>j(Array.from(a.target.files??[])),className:"w-full text-sm text-[var(--text-primary)]"}),i.length>0&&(0,f.jsx)("ul",{className:"mt-2 text-xs text-[var(--text-secondary)] max-h-32 overflow-auto",children:i.map((a,b)=>(0,f.jsxs)("li",{className:"flex items-center justify-between py-0.5",children:[(0,f.jsx)("span",{className:"truncate",children:a.name}),(0,f.jsx)("button",{type:"button",className:"btn btn-icon-sm btn-destructive","aria-label":`Remove ${a.name}`,onClick:()=>j(a=>a.filter((a,c)=>c!==b)),children:(0,f.jsx)(J.A,{className:"w-3.5 h-3.5","aria-hidden":!0})})]},b))})]}),(0,f.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"PROJECT"}),(0,f.jsxs)("select",{value:""===k?"":String(k),onChange:a=>l(""===a.target.value?"":Number(a.target.value)),className:"w-full bg-[var(--bg-secondary)] border border-[var(--border-color)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50 cursor-pointer",children:[(0,f.jsx)("option",{value:"",children:"— Knowledge Base —"}),c.map(a=>(0,f.jsx)("option",{value:a.id,children:a.name},a.id))]})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"FOLDER"}),(0,f.jsxs)("select",{value:m,onChange:a=>n(a.target.value),className:"w-full bg-[var(--bg-secondary)] border border-[var(--border-color)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50 cursor-pointer",children:[(0,f.jsx)("option",{value:"",children:"— Root level —"}),o.map(a=>(0,f.jsx)("option",{value:a,children:a},a))]})]})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"TAGS"}),(0,f.jsx)("input",{type:"text",value:q,onChange:a=>r(a.target.value),placeholder:"comma, separated, tags",className:"w-full bg-[var(--bg-secondary)] border border-[var(--border-color)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50"})]}),w&&(0,f.jsx)("div",{className:"text-sm text-[var(--danger)]",children:w}),u&&(0,f.jsxs)("div",{className:"text-sm text-[var(--text-secondary)]",children:["Uploaded ",u.uploaded.length," \xb7 renamed ",u.uploaded.filter(a=>a.final_name!==a.original_name).length," \xb7 rejected ",u.rejected.length,(u.uploaded.some(a=>a.final_name!==a.original_name)||u.rejected.length>0)&&(0,f.jsxs)("details",{className:"mt-2",children:[(0,f.jsx)("summary",{className:"cursor-pointer",children:"Details"}),(0,f.jsxs)("ul",{className:"mt-1 text-xs",children:[u.uploaded.filter(a=>a.final_name!==a.original_name).map((a,b)=>(0,f.jsxs)("li",{children:["renamed: ",a.original_name," → ",a.final_name]},`r${b}`)),u.rejected.map((a,b)=>(0,f.jsxs)("li",{children:["rejected: ",a.name," (",a.reason,")"]},`x${b}`))]})]})]})]}),(0,f.jsxs)("div",{className:"px-6 py-4 border-t border-[var(--border-color)] flex justify-end gap-2",children:[(0,f.jsx)("button",{type:"button",onClick:b,className:"btn btn-md",children:"Close"}),(0,f.jsx)("button",{type:"submit",disabled:s||0===i.length,className:"btn btn-md",children:s?"Uploading…":"Upload"})]})]})})}):null}function Q({open:a,onClose:b,onClipped:c}){let[d,e]=(0,g.useState)(""),[h,i]=(0,g.useState)(""),[j,k]=(0,g.useState)(!1),[l,m]=(0,g.useState)(null),n=async a=>{if(a.preventDefault(),d.trim()){k(!0),m(null);try{let a=await fetch("/api/clip",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:d.trim(),title:h.trim()||void 0})}),e=await a.json();if(!a.ok)return void m(e?.error??`HTTP ${a.status}`);c(),b()}catch(a){m(a?.message??String(a))}finally{k(!1)}}};return a?(0,f.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",children:(0,f.jsx)("div",{className:"w-[600px] bg-[var(--bg-primary)] border border-[var(--border-color)] rounded-lg shadow-2xl overflow-hidden",children:(0,f.jsxs)("form",{onSubmit:n,children:[(0,f.jsxs)("div",{className:"px-6 py-4 border-b border-[var(--border-color)] flex items-center justify-between",children:[(0,f.jsx)("h3",{className:"text-lg font-bold text-amber-accent",children:"CLIP URL"}),(0,f.jsx)("button",{type:"button",onClick:b,className:"btn btn-icon-md","aria-label":"Close dialog",children:(0,f.jsx)(J.A,{className:"w-4 h-4","aria-hidden":!0})})]}),(0,f.jsxs)("div",{className:"p-6 space-y-4",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"URL"}),(0,f.jsx)("input",{type:"url",required:!0,value:d,onChange:a=>e(a.target.value),placeholder:"https://example.com/article",disabled:j,className:"w-full bg-[var(--bg-secondary)] border border-[var(--border-color)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"TITLE (OPTIONAL)"}),(0,f.jsx)("input",{type:"text",value:h,onChange:a=>i(a.target.value),placeholder:"Defaults to page title",disabled:j,className:"w-full bg-[var(--bg-secondary)] border border-[var(--border-color)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50"})]}),l&&(0,f.jsx)("div",{className:"text-sm text-[var(--danger)]",children:l})]}),(0,f.jsxs)("div",{className:"px-6 py-4 border-t border-[var(--border-color)] flex justify-end gap-2",children:[(0,f.jsx)("button",{type:"button",onClick:b,className:"btn btn-md",children:"Close"}),(0,f.jsx)("button",{type:"submit",disabled:j||!d.trim(),className:"btn btn-md",children:j?"Clipping…":"Clip"})]})]})})}):null}var R=c(42052);let S=[{id:"claude-code",label:"Claude Code"},{id:"cursor",label:"Cursor"},{id:"aider",label:"Aider"},{id:"continue",label:"Continue"},{id:"gemini",label:"Gemini / Antigravity"},{id:"copilot",label:"GitHub Copilot"},{id:"codex",label:"Codex"},{id:"generic",label:"Generic JSON"}];function T({isOpen:a,onClose:b,projectId:c,projectName:d,onOnboarded:e}){let[h,j]=(0,g.useState)("aider"),[k,l]=(0,g.useState)(!1),m=async()=>{l(!0);try{let a=await fetch(`/api/projects/${c}/onboard`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({targetAgent:h})});if(a.ok)i.o.success(`Onboarded ${d}`),e(),b();else{let b=await a.json().catch(()=>({}));i.o.error(b.error||`Onboarding failed: HTTP ${a.status}`)}}catch(a){i.o.error("Failed to connect to server")}finally{l(!1)}};return(0,f.jsx)(R.l,{open:a,onClose:b,title:"Onboard agent",widthClass:"max-w-[500px]",children:(0,f.jsxs)("div",{className:"space-y-4",children:[(0,f.jsxs)("div",{className:"text-sm text-[var(--text-secondary)] leading-relaxed",children:["Scaffold workflow rules for ",(0,f.jsx)("strong",{children:d}),". This writes a context file (like ",(0,f.jsx)("code",{children:".aider/kontexta.md"}),") to the project root."]}),(0,f.jsxs)("div",{className:"space-y-2",children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest uppercase",children:"Target agent"}),(0,f.jsx)("select",{value:h,onChange:a=>j(a.target.value),className:"w-full bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50 cursor-pointer",children:S.map(a=>(0,f.jsx)("option",{value:a.id,children:a.label},a.id))})]}),"aider"===h&&(0,f.jsxs)("div",{className:"p-3 bg-amber-500/5 border border-amber-500/20 rounded text-[11px] text-amber-600 dark:text-amber-400 leading-normal",children:[(0,f.jsx)("strong",{children:"Aider note:"})," Integration is file-based. After onboarding, ensure your ",(0,f.jsx)("code",{children:".aider.conf.yml"})," reads the new file."]}),(0,f.jsxs)("div",{className:"flex justify-end gap-3 pt-2",children:[(0,f.jsx)("button",{type:"button",onClick:b,className:"btn btn-md",disabled:k,children:"Cancel"}),(0,f.jsx)("button",{type:"button",onClick:m,disabled:k,className:"btn btn-md min-w-[140px]",children:k?"Onboarding…":"Onboard agent"})]})]})})}var U=c(361);function V({files:a,selectedFileId:b,onSelectFile:c,sortBy:d,onSortChange:e,selectedFolder:h,selectedProject:j,selectedSection:k,basePath:l,onSync:m,onUnregisterProject:n,onDeleteFolder:o,loading:p,projects:q,onUploaded:s,onRefresh:t,refreshing:u,onNewFile:v}){let[w,y]=(0,g.useState)(""),[z,A]=(0,g.useState)(!1),[C,D]=(0,g.useState)(!1),[E,F]=(0,g.useState)(!1),[L,M]=(0,g.useState)(!1),[N,R]=(0,g.useState)(new Set),[S,V]=(0,g.useState)(!1),[W,X]=(0,g.useState)(!1),Y=(0,g.useMemo)(()=>{let b=[...a],c=a=>(a||"").replace(/\\/g,"/").replace(/\/+$/,""),e=(a,b)=>{if(!a||!b)return!1;let d=c(a),e=c(b)+"/";return d.startsWith(e)};if("projects"===k)if(j){let a=l||j.path;if(a){let d=c(a)+"/";if(h){let a=d+c(h);b=b.filter(b=>e(b.path,a))}else b=b.filter(a=>a.project_id===j.id)}else b=b.filter(a=>a.project_id===j.id)}else b=[];else if("favorites"===k)b=[...a];else if("knowledge"===k){if(b=b.filter(a=>!a.project_id),l){let a=c(l)+"/";if(h){let d=a+c(h);b=b.filter(a=>e(a.path,d))}}}else b=[];switch(d){case"name":b.sort((a,b)=>a.title.localeCompare(b.title));break;case"updated_at":b.sort((a,b)=>new Date(b.updated_at).getTime()-new Date(a.updated_at).getTime());break;case"created_at":b.sort((a,b)=>new Date(b.created_at).getTime()-new Date(a.created_at).getTime())}if(w){let a=w.toLowerCase();b=b.filter(b=>b.title.toLowerCase().includes(a))}return b},[a,d,h,j,k,l,w]);return(0,f.jsxs)("div",{className:"flex flex-col h-full",children:[(0,f.jsxs)("div",{className:"flex items-center gap-1.5 px-1.5 py-1.5 border-b border-[var(--border)]",children:[(0,f.jsx)("div",{className:"flex-1",children:(0,f.jsx)(r,{align:"start",trigger:(0,f.jsxs)("button",{type:"button",className:"btn btn-sm w-full",title:"Add content to the knowledge base",children:["New ",(0,f.jsx)("span",{className:"opacity-60 text-xs",children:"▾"})]}),items:[{label:"New File",icon:(0,f.jsx)("span",{children:"+"}),onSelect:v},{label:"Upload Files",icon:(0,f.jsx)("span",{children:"↑"}),onSelect:()=>A(!0)},{label:"Clip URL",icon:(0,f.jsx)(G,{className:"w-3.5 h-3.5","aria-hidden":!0}),onSelect:()=>V(!0)}]})}),"projects"===k&&j&&(0,f.jsx)("div",{className:"flex-1",children:(0,f.jsx)(r,{align:"start",trigger:(0,f.jsxs)("button",{type:"button",className:"btn btn-sm w-full",title:"Project actions",children:["Project ",(0,f.jsx)("span",{className:"opacity-60 text-xs",children:"▾"})]}),items:[{label:"Export ZIP",icon:(0,f.jsx)("span",{children:"↓"}),onSelect:()=>{let a=h?`/api/export/zip?project_id=${j.id}&folder=${encodeURIComponent(h)}`:`/api/export/zip?project_id=${j.id}`,b=document.createElement("a");b.href=a,b.download="",document.body.appendChild(b),b.click(),b.remove()}},{label:"Sync Project",icon:(0,f.jsx)(H,{className:"w-3.5 h-3.5","aria-hidden":!0}),onSelect:m},{label:"Scan for New Files",icon:(0,f.jsx)(I,{className:"w-3.5 h-3.5","aria-hidden":!0}),onSelect:t},{label:"Onboard Agent",icon:(0,f.jsx)("span",{children:"✨"}),onSelect:()=>X(!0)},...!h&&n?[{label:"Unregister",icon:(0,f.jsx)(J.A,{className:"w-3.5 h-3.5","aria-hidden":!0}),onSelect:n,destructive:!0}]:[]]})}),(0,f.jsx)("button",{type:"button",onClick:()=>{D(a=>!a),R(new Set)},className:"btn btn-sm flex-1",title:"Toggle multi-select",children:C?"Selected":"Select"}),(0,f.jsx)("button",{type:"button",onClick:t,disabled:u,className:`btn btn-sm ${u?"opacity-50":""}`,title:"Refresh (scan disk for changes)","aria-label":"Refresh",children:u?"...":(0,f.jsx)(H,{className:"w-4 h-4","aria-hidden":!0})})]}),(0,f.jsxs)("div",{className:"bp-annotation bp-dashed px-3 py-2 flex items-center justify-between text-[11px] uppercase tracking-wider text-[var(--text-secondary)] border-b border-[var(--border)]",children:[(0,f.jsxs)("span",{children:[Y.length," ",1===Y.length?"file":"files",(()=>{var a;let b=Y.reduce((a,b)=>a+(b.est_tokens??0),0);return b>0?` \xb7 ~${(a=b)<1e3?String(a):a<1e4?`${(a/1e3).toFixed(1)}k`:a<1e6?`${Math.round(a/1e3)}k`:`${(a/1e6).toFixed(1)}M`} tok`:""})()]}),(0,f.jsx)("div",{className:"flex items-center gap-2",children:(0,f.jsxs)("select",{value:d,onChange:a=>e(a.target.value),className:"bg-transparent text-[11px] uppercase tracking-wider focus:outline-none cursor-pointer",children:[(0,f.jsx)("option",{value:"updated_at",className:"bg-[var(--bg-primary)] text-[var(--text-primary)]",children:"updated"}),(0,f.jsx)("option",{value:"created_at",className:"bg-[var(--bg-primary)] text-[var(--text-primary)]",children:"created"}),(0,f.jsx)("option",{value:"name",className:"bg-[var(--bg-primary)] text-[var(--text-primary)]",children:"name"})]})})]}),(a.length>10||""!==w.trim())&&(0,f.jsx)(K,{value:w,onChange:y}),(()=>{let a=new Set(Y.map(a=>a.id)),d=[...N].filter(b=>a.has(b)),e=j?String(j.id):"kb",g=async()=>{if(0===d.length||E)return;F(!0);let a=[];for(let b of d)try{let c=await fetch(`/api/files/${b}`,{method:"DELETE"});if(!c.ok){let d=await c.json().catch(()=>({}));a.push({id:b,error:d?.error??`HTTP ${c.status}`})}}catch(c){a.push({id:b,error:c?.message??"Network error"})}F(!1),M(!1),R(new Set),t();let b=d.length-a.length;a.length>0?(console.error("[bulk-delete] failures:",a),b>0&&i.o.success(`Deleted ${b} file(s)`),i.o.error(`${a.length} file(s) failed to delete: `+a.slice(0,5).map(a=>`#${a.id} (${a.error})`).join(", ")+(a.length>5?`, …and ${a.length-5} more (see console)`:""))):i.o.success(`Deleted ${b} file(s)`)};return(0,f.jsxs)("div",{className:"flex-1 overflow-y-auto",children:[C&&d.length>0&&(0,f.jsxs)("div",{className:"sticky top-0 z-10 px-3 py-2 bg-[var(--bg-secondary)] border-b border-amber-accent/40 flex items-center justify-between gap-2 text-[11px]",children:[(0,f.jsxs)("span",{className:"whitespace-nowrap shrink-0",children:[d.length," selected"]}),(0,f.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[(0,f.jsx)("a",{href:`/api/export/zip?file_ids=${d.join(",")}&scope=${e}`,download:!0,className:"px-2 py-1 bg-amber-accent text-black font-bold rounded whitespace-nowrap leading-none",title:"Download selected files as ZIP",children:"ZIP"}),(0,f.jsx)("button",{type:"button",onClick:()=>M(!0),disabled:E,className:`px-2 py-1 bg-[var(--danger)] text-white font-bold rounded whitespace-nowrap leading-none ${E?"opacity-50":"hover:bg-[color-mix(in_srgb,var(--danger)_85%,black)]"}`,title:`Delete ${d.length} selected file(s)`,children:E?"…":"Delete"}),(0,f.jsx)("button",{type:"button",onClick:()=>R(new Set),className:"px-2 py-1 border border-[var(--border)] rounded whitespace-nowrap leading-none hover:bg-[var(--bg-tertiary)]",title:"Clear selection",children:"Clear"})]})]}),(0,f.jsx)(U.T,{open:L,onClose:()=>M(!1),onConfirm:g,title:`Delete ${d.length} file${1===d.length?"":"s"}?`,message:"Knowledge Base files will be removed from disk and the deletion will be committed to git (recoverable via Time Travel). Project files are only un-indexed; the source file on disk is left intact.",confirmLabel:`Delete ${d.length} file${1===d.length?"":"s"}`,destructive:!0,loading:E}),Y.length>0?Y.map(a=>(0,f.jsx)(O,{id:a.id,title:a.title,updatedAt:a.updated_at,active:a.id===b,onClick:()=>c(a.id),estTokens:a.est_tokens,favorite:a.favorite,tags:a.tags??void 0,selectMode:C,selected:N.has(a.id),onToggleSelect:()=>{R(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c})}},a.id)):p||"projects"===k&&!j?(0,f.jsx)("div",{"aria-label":"Loading files",role:"status",children:[0,1,2,3].map(a=>(0,f.jsxs)("div",{className:"px-3 py-2 border-b border-[var(--bg-tertiary)]",children:[(0,f.jsx)("div",{className:"skeleton h-3.5",style:{width:`${60+13*a%30}%`}}),(0,f.jsx)("div",{className:"skeleton h-2.5 mt-2",style:{width:`${30+7*a%20}%`}})]},a))}):k?(0,f.jsx)(B,{icon:(0,f.jsx)(x,{className:"w-16 h-16 opacity-30 dark-icon","aria-hidden":!0}),title:"Folder is empty",hint:"This folder doesn't contain any indexed context files.",action:"knowledge"===k&&h&&o?(0,f.jsxs)("div",{className:"flex flex-col items-center gap-3",children:[(0,f.jsx)("div",{className:"h-px w-16 bg-[var(--border)]"}),(0,f.jsx)("button",{onClick:o,className:"px-6 py-2.5 bg-[var(--danger-soft)] text-[var(--danger)] border border-[var(--danger)]/30 rounded-lg text-sm font-bold hover:bg-[var(--danger)]/20 transition-all btn-press shadow-sm",children:"DELETE THIS FOLDER"}),(0,f.jsx)("p",{className:"text-[11px] text-[var(--muted)] uppercase tracking-widest font-bold",children:"Permanent Action"})]}):void 0}):(0,f.jsx)(B,{icon:(0,f.jsx)(x,{className:"w-16 h-16 opacity-30 dark-icon","aria-hidden":!0}),title:"No Selection",hint:"Please select a project or the Knowledge Base from the sidebar to view files."})]})})(),(0,f.jsx)(P,{open:z,onClose:()=>A(!1),projects:q??[],defaultProjectId:"projects"===k&&j?j.id:null,defaultFolder:h??"",onUploaded:()=>{A(!1),s?.()}}),(0,f.jsx)(Q,{open:S,onClose:()=>V(!1),onClipped:()=>{t()}}),j&&(0,f.jsx)(T,{isOpen:W,onClose:()=>X(!1),projectId:j.id,projectName:j.name,onOnboarded:()=>{t()}})]})}let W=(0,k.A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);function X(a){if(a)throw a}var Y=c(80981);function Z(a){if("object"!=typeof a||null===a)return!1;let b=Object.getPrototypeOf(a);return(null===b||b===Object.prototype||null===Object.getPrototypeOf(b))&&!(Symbol.toStringTag in a)&&!(Symbol.iterator in a)}function $(a){return a&&"object"==typeof a?"position"in a||"type"in a?aa(a.position):"start"in a||"end"in a?aa(a):"line"in a||"column"in a?_(a):"":""}function _(a){return ab(a&&a.line)+":"+ab(a&&a.column)}function aa(a){return _(a&&a.start)+"-"+_(a&&a.end)}function ab(a){return a&&"number"==typeof a?a:1}class ac extends Error{constructor(a,b,c){super(),"string"==typeof b&&(c=b,b=void 0);let d="",e={},f=!1;if(b&&(e="line"in b&&"column"in b||"start"in b&&"end"in b?{place:b}:"type"in b?{ancestors:[b],place:b.position}:{...b}),"string"==typeof a?d=a:!e.cause&&a&&(f=!0,d=a.message,e.cause=a),!e.ruleId&&!e.source&&"string"==typeof c){let a=c.indexOf(":");-1===a?e.ruleId=c:(e.source=c.slice(0,a),e.ruleId=c.slice(a+1))}if(!e.place&&e.ancestors&&e.ancestors){let a=e.ancestors[e.ancestors.length-1];a&&(e.place=a.position)}let g=e.place&&"start"in e.place?e.place.start:e.place;this.ancestors=e.ancestors||void 0,this.cause=e.cause||void 0,this.column=g?g.column:void 0,this.fatal=void 0,this.file="",this.message=d,this.line=g?g.line:void 0,this.name=$(e.place)||"1:1",this.place=e.place||void 0,this.reason=this.message,this.ruleId=e.ruleId||void 0,this.source=e.source||void 0,this.stack=f&&e.cause&&"string"==typeof e.cause.stack?e.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}ac.prototype.file="",ac.prototype.name="",ac.prototype.reason="",ac.prototype.message="",ac.prototype.stack="",ac.prototype.column=void 0,ac.prototype.line=void 0,ac.prototype.ancestors=void 0,ac.prototype.cause=void 0,ac.prototype.fatal=void 0,ac.prototype.place=void 0,ac.prototype.ruleId=void 0,ac.prototype.source=void 0;var ad=c(76760);let ae=require("node:process");function af(a){return!!(null!==a&&"object"==typeof a&&"href"in a&&a.href&&"protocol"in a&&a.protocol&&void 0===a.auth)}var ag=c(73136);let ah=["history","path","basename","stem","extname","dirname"];class ai{constructor(a){let b,c;b=a?af(a)?{path:a}:"string"==typeof a||function(a){return!!(a&&"object"==typeof a&&"byteLength"in a&&"byteOffset"in a)}(a)?{value:a}:a:{},this.cwd="cwd"in b?"":ae.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let d=-1;for(;++d<ah.length;){let a=ah[d];a in b&&void 0!==b[a]&&null!==b[a]&&(this[a]="history"===a?[...b[a]]:b[a])}for(c in b)ah.includes(c)||(this[c]=b[c])}get basename(){return"string"==typeof this.path?ad.basename(this.path):void 0}set basename(a){ak(a,"basename"),aj(a,"basename"),this.path=ad.join(this.dirname||"",a)}get dirname(){return"string"==typeof this.path?ad.dirname(this.path):void 0}set dirname(a){al(this.basename,"dirname"),this.path=ad.join(a||"",this.basename)}get extname(){return"string"==typeof this.path?ad.extname(this.path):void 0}set extname(a){if(aj(a,"extname"),al(this.dirname,"extname"),a){if(46!==a.codePointAt(0))throw Error("`extname` must start with `.`");if(a.includes(".",1))throw Error("`extname` cannot contain multiple dots")}this.path=ad.join(this.dirname,this.stem+(a||""))}get path(){return this.history[this.history.length-1]}set path(a){af(a)&&(a=(0,ag.fileURLToPath)(a)),ak(a,"path"),this.path!==a&&this.history.push(a)}get stem(){return"string"==typeof this.path?ad.basename(this.path,this.extname):void 0}set stem(a){ak(a,"stem"),aj(a,"stem"),this.path=ad.join(this.dirname||"",a+(this.extname||""))}fail(a,b,c){let d=this.message(a,b,c);throw d.fatal=!0,d}info(a,b,c){let d=this.message(a,b,c);return d.fatal=void 0,d}message(a,b,c){let d=new ac(a,b,c);return this.path&&(d.name=this.path+":"+d.name,d.file=this.path),d.fatal=!1,this.messages.push(d),d}toString(a){return void 0===this.value?"":"string"==typeof this.value?this.value:new TextDecoder(a||void 0).decode(this.value)}}function aj(a,b){if(a&&a.includes(ad.sep))throw Error("`"+b+"` cannot be a path: did not expect `"+ad.sep+"`")}function ak(a,b){if(!a)throw Error("`"+b+"` cannot be empty")}function al(a,b){if(!a)throw Error("Setting `"+b+"` requires `path` to be set too")}let am=function(a){let b=this.constructor.prototype,c=b[a],d=function(){return c.apply(d,arguments)};return Object.setPrototypeOf(d,b),d},an={}.hasOwnProperty;class ao extends am{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=function(){let a=[],b={run:function(...b){let c=-1,d=b.pop();if("function"!=typeof d)throw TypeError("Expected function as last argument, not "+d);!function e(f,...g){let h=a[++c],i=-1;if(f)return void d(f);for(;++i<b.length;)(null===g[i]||void 0===g[i])&&(g[i]=b[i]);b=g,h?(function(a,b){let c;return function(...b){let f,g=a.length>b.length;g&&b.push(d);try{f=a.apply(this,b)}catch(a){if(g&&c)throw a;return d(a)}g||(f&&f.then&&"function"==typeof f.then?f.then(e,d):f instanceof Error?d(f):e(f))};function d(a,...e){c||(c=!0,b(a,...e))}function e(a){d(null,a)}})(h,e)(...g):d(null,...g)}(null,...b)},use:function(c){if("function"!=typeof c)throw TypeError("Expected `middelware` to be a function, not "+c);return a.push(c),b}};return b}()}copy(){let a=new ao,b=-1;for(;++b<this.attachers.length;){let c=this.attachers[b];a.use(...c)}return a.data(Y(!0,{},this.namespace)),a}data(a,b){return"string"==typeof a?2==arguments.length?(as("data",this.frozen),this.namespace[a]=b,this):an.call(this.namespace,a)&&this.namespace[a]||void 0:a?(as("data",this.frozen),this.namespace=a,this):this.namespace}freeze(){if(this.frozen)return this;for(;++this.freezeIndex<this.attachers.length;){let[a,...b]=this.attachers[this.freezeIndex];if(!1===b[0])continue;!0===b[0]&&(b[0]=void 0);let c=a.call(this,...b);"function"==typeof c&&this.transformers.use(c)}return this.frozen=!0,this.freezeIndex=1/0,this}parse(a){this.freeze();let b=av(a),c=this.parser||this.Parser;return aq("parse",c),c(String(b),b)}process(a,b){let c=this;return this.freeze(),aq("process",this.parser||this.Parser),ar("process",this.compiler||this.Compiler),b?d(void 0,b):new Promise(d);function d(d,e){let f=av(a),g=c.parse(f);function h(a,c){a||!c?e(a):d?d(c):b(void 0,c)}c.run(g,f,function(a,b,d){var e,f;if(a||!b||!d)return h(a);let g=c.stringify(b,d);"string"==typeof(e=g)||(f=e)&&"object"==typeof f&&"byteLength"in f&&"byteOffset"in f?d.value=g:d.result=g,h(a,d)})}}processSync(a){let b,c=!1;return this.freeze(),aq("processSync",this.parser||this.Parser),ar("processSync",this.compiler||this.Compiler),this.process(a,function(a,d){c=!0,X(a),b=d}),au("processSync","process",c),b}run(a,b,c){at(a),this.freeze();let d=this.transformers;return c||"function"!=typeof b||(c=b,b=void 0),c?e(void 0,c):new Promise(e);function e(e,f){let g=av(b);d.run(a,g,function(b,d,g){let h=d||a;b?f(b):e?e(h):c(void 0,h,g)})}}runSync(a,b){let c,d=!1;return this.run(a,b,function(a,b){X(a),c=b,d=!0}),au("runSync","run",d),c}stringify(a,b){this.freeze();let c=av(b),d=this.compiler||this.Compiler;return ar("stringify",d),at(a),d(a,c)}use(a,...b){let c=this.attachers,d=this.namespace;if(as("use",this.frozen),null==a);else if("function"==typeof a)g(a,b);else if("object"==typeof a)Array.isArray(a)?f(a):e(a);else throw TypeError("Expected usable value, not `"+a+"`");return this;function e(a){if(!("plugins"in a)&&!("settings"in a))throw Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");f(a.plugins),a.settings&&(d.settings=Y(!0,d.settings,a.settings))}function f(a){let b=-1;if(null==a);else if(Array.isArray(a))for(;++b<a.length;){var c=a[b];if("function"==typeof c)g(c,[]);else if("object"==typeof c)if(Array.isArray(c)){let[a,...b]=c;g(a,b)}else e(c);else throw TypeError("Expected usable value, not `"+c+"`")}else throw TypeError("Expected a list of plugins, not `"+a+"`")}function g(a,b){let d=-1,e=-1;for(;++d<c.length;)if(c[d][0]===a){e=d;break}if(-1===e)c.push([a,...b]);else if(b.length>0){let[d,...f]=b,g=c[e][1];Z(g)&&Z(d)&&(d=Y(!0,g,d)),c[e]=[a,d,...f]}}}}let ap=new ao().freeze();function aq(a,b){if("function"!=typeof b)throw TypeError("Cannot `"+a+"` without `parser`")}function ar(a,b){if("function"!=typeof b)throw TypeError("Cannot `"+a+"` without `compiler`")}function as(a,b){if(b)throw Error("Cannot call `"+a+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function at(a){if(!Z(a)||"string"!=typeof a.type)throw TypeError("Expected node, got `"+a+"`")}function au(a,b,c){if(!c)throw Error("`"+a+"` finished async. Use `"+b+"` instead")}function av(a){var b;return(b=a)&&"object"==typeof b&&"message"in b&&"messages"in b?a:new ai(a)}let aw={};function ax(a,b){let c=b||aw;return ay(a,"boolean"!=typeof c.includeImageAlt||c.includeImageAlt,"boolean"!=typeof c.includeHtml||c.includeHtml)}function ay(a,b,c){var d;if((d=a)&&"object"==typeof d){if("value"in a)return"html"!==a.type||c?a.value:"";if(b&&"alt"in a&&a.alt)return a.alt;if("children"in a)return az(a.children,b,c)}return Array.isArray(a)?az(a,b,c):""}function az(a,b,c){let d=[],e=-1;for(;++e<a.length;)d[e]=ay(a[e],b,c);return d.join("")}function aA(a,b,c,d){let e,f=a.length,g=0;if(b=b<0?-b>f?0:f+b:b>f?f:b,c=c>0?c:0,d.length<1e4)(e=Array.from(d)).unshift(b,c),a.splice(...e);else for(c&&a.splice(b,c);g<d.length;)(e=d.slice(g,g+1e4)).unshift(b,0),a.splice(...e),g+=1e4,b+=1e4}function aB(a,b){return a.length>0?(aA(a,a.length,0,b),a):b}class aC{constructor(a){this.left=a?[...a]:[],this.right=[]}get(a){if(a<0||a>=this.left.length+this.right.length)throw RangeError("Cannot access index `"+a+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return a<this.left.length?this.left[a]:this.right[this.right.length-a+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(a,b){let c=null==b?1/0:b;return c<this.left.length?this.left.slice(a,c):a>this.left.length?this.right.slice(this.right.length-c+this.left.length,this.right.length-a+this.left.length).reverse():this.left.slice(a).concat(this.right.slice(this.right.length-c+this.left.length).reverse())}splice(a,b,c){this.setCursor(Math.trunc(a));let d=this.right.splice(this.right.length-(b||0),1/0);return c&&aD(this.left,c),d.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(a){this.setCursor(1/0),this.left.push(a)}pushMany(a){this.setCursor(1/0),aD(this.left,a)}unshift(a){this.setCursor(0),this.right.push(a)}unshiftMany(a){this.setCursor(0),aD(this.right,a.reverse())}setCursor(a){if(a!==this.left.length&&(!(a>this.left.length)||0!==this.right.length)&&(!(a<0)||0!==this.left.length))if(a<this.left.length){let b=this.left.splice(a,1/0);aD(this.right,b.reverse())}else{let b=this.right.splice(this.left.length+this.right.length-a,1/0);aD(this.left,b.reverse())}}}function aD(a,b){let c=0;if(b.length<1e4)a.push(...b);else for(;c<b.length;)a.push(...b.slice(c,c+1e4)),c+=1e4}function aE(a){let b,c,d,e,f,g,h,i={},j=-1,k=new aC(a);for(;++j<k.length;){for(;j in i;)j=i[j];if(b=k.get(j),j&&"chunkFlow"===b[1].type&&"listItemPrefix"===k.get(j-1)[1].type&&((d=0)<(g=b[1]._tokenizer.events).length&&"lineEndingBlank"===g[d][1].type&&(d+=2),d<g.length&&"content"===g[d][1].type))for(;++d<g.length&&"content"!==g[d][1].type;)"chunkText"===g[d][1].type&&(g[d][1]._isInFirstContentOfListItem=!0,d++);if("enter"===b[0])b[1].contentType&&(Object.assign(i,function(a,b){let c,d,e=a.get(b)[1],f=a.get(b)[2],g=b-1,h=[],i=e._tokenizer;!i&&(i=f.parser[e.contentType](e.start),e._contentTypeTextTrailing&&(i._contentTypeTextTrailing=!0));let j=i.events,k=[],l={},m=-1,n=e,o=0,p=0,q=[0];for(;n;){for(;a.get(++g)[1]!==n;);h.push(g),!n._tokenizer&&(c=f.sliceStream(n),n.next||c.push(null),d&&i.defineSkip(n.start),n._isInFirstContentOfListItem&&(i._gfmTasklistFirstContentOfListItem=!0),i.write(c),n._isInFirstContentOfListItem&&(i._gfmTasklistFirstContentOfListItem=void 0)),d=n,n=n.next}for(n=e;++m<j.length;)"exit"===j[m][0]&&"enter"===j[m-1][0]&&j[m][1].type===j[m-1][1].type&&j[m][1].start.line!==j[m][1].end.line&&(p=m+1,q.push(p),n._tokenizer=void 0,n.previous=void 0,n=n.next);for(i.events=[],n?(n._tokenizer=void 0,n.previous=void 0):q.pop(),m=q.length;m--;){let b=j.slice(q[m],q[m+1]),c=h.pop();k.push([c,c+b.length-1]),a.splice(c,2,b)}for(k.reverse(),m=-1;++m<k.length;)l[o+k[m][0]]=o+k[m][1],o+=k[m][1]-k[m][0]-1;return l}(k,j)),j=i[j],h=!0);else if(b[1]._container){for(d=j,c=void 0;d--;)if("lineEnding"===(e=k.get(d))[1].type||"lineEndingBlank"===e[1].type)"enter"===e[0]&&(c&&(k.get(c)[1].type="lineEndingBlank"),e[1].type="lineEnding",c=d);else if("linePrefix"===e[1].type||"listItemIndent"===e[1].type);else break;c&&(b[1].end={...k.get(c)[1].start},(f=k.slice(c,j)).unshift(b),k.splice(c,j-c+1,f))}}return aA(a,0,1/0,k.slice(0)),!h}let aF={}.hasOwnProperty;function aG(a){let b={},c=-1;for(;++c<a.length;)!function(a,b){let c;for(c in b){let d,e=(aF.call(a,c)?a[c]:void 0)||(a[c]={}),f=b[c];if(f)for(d in f){aF.call(e,d)||(e[d]=[]);let a=f[d];!function(a,b){let c=-1,d=[];for(;++c<b.length;)("after"===b[c].add?a:d).push(b[c]);aA(a,0,0,d)}(e[d],Array.isArray(a)?a:a?[a]:[])}}}(b,a[c]);return b}let aH=aT(/[A-Za-z]/),aI=aT(/[\dA-Za-z]/),aJ=aT(/[#-'*+\--9=?A-Z^-~]/);function aK(a){return null!==a&&(a<32||127===a)}let aL=aT(/\d/),aM=aT(/[\dA-Fa-f]/),aN=aT(/[!-/:-@[-`{-~]/);function aO(a){return null!==a&&a<-2}function aP(a){return null!==a&&(a<0||32===a)}function aQ(a){return -2===a||-1===a||32===a}let aR=aT(/\p{P}|\p{S}/u),aS=aT(/\s/);function aT(a){return function(b){return null!==b&&b>-1&&a.test(String.fromCharCode(b))}}function aU(a,b,c,d){let e=d?d-1:1/0,f=0;return function(d){return aQ(d)?(a.enter(c),function d(g){return aQ(g)&&f++<e?(a.consume(g),d):(a.exit(c),b(g))}(d)):b(d)}}let aV={tokenize:function(a){let b,c=a.attempt(this.parser.constructs.contentInitial,function(b){return null===b?void a.consume(b):(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),aU(a,c,"linePrefix"))},function(c){return a.enter("paragraph"),function c(d){let e=a.enter("chunkText",{contentType:"text",previous:b});return b&&(b.next=e),b=e,function b(d){if(null===d){a.exit("chunkText"),a.exit("paragraph"),a.consume(d);return}return aO(d)?(a.consume(d),a.exit("chunkText"),c):(a.consume(d),b)}(d)}(c)});return c}},aW={tokenize:function(a){let b,c,d,e=this,f=[],g=0;return h;function h(b){if(g<f.length){let c=f[g];return e.containerState=c[1],a.attempt(c[0].continuation,i,j)(b)}return j(b)}function i(a){if(g++,e.containerState._closeFlow){let c;e.containerState._closeFlow=void 0,b&&r();let d=e.events.length,f=d;for(;f--;)if("exit"===e.events[f][0]&&"chunkFlow"===e.events[f][1].type){c=e.events[f][1].end;break}q(g);let h=d;for(;h<e.events.length;)e.events[h][1].end={...c},h++;return aA(e.events,f+1,0,e.events.slice(d)),e.events.length=h,j(a)}return h(a)}function j(c){if(g===f.length){if(!b)return m(c);if(b.currentConstruct&&b.currentConstruct.concrete)return o(c);e.interrupt=!!(b.currentConstruct&&!b._gfmTableDynamicInterruptHack)}return e.containerState={},a.check(aX,k,l)(c)}function k(a){return b&&r(),q(g),m(a)}function l(a){return e.parser.lazy[e.now().line]=g!==f.length,d=e.now().offset,o(a)}function m(b){return e.containerState={},a.attempt(aX,n,o)(b)}function n(a){return g++,f.push([e.currentConstruct,e.containerState]),m(a)}function o(d){if(null===d){b&&r(),q(0),a.consume(d);return}return b=b||e.parser.flow(e.now()),a.enter("chunkFlow",{_tokenizer:b,contentType:"flow",previous:c}),function b(c){if(null===c){p(a.exit("chunkFlow"),!0),q(0),a.consume(c);return}return aO(c)?(a.consume(c),p(a.exit("chunkFlow")),g=0,e.interrupt=void 0,h):(a.consume(c),b)}(d)}function p(a,f){let h=e.sliceStream(a);if(f&&h.push(null),a.previous=c,c&&(c.next=a),c=a,b.defineSkip(a.start),b.write(h),e.parser.lazy[a.start.line]){let a,c,f=b.events.length;for(;f--;)if(b.events[f][1].start.offset<d&&(!b.events[f][1].end||b.events[f][1].end.offset>d))return;let h=e.events.length,i=h;for(;i--;)if("exit"===e.events[i][0]&&"chunkFlow"===e.events[i][1].type){if(a){c=e.events[i][1].end;break}a=!0}for(q(g),f=h;f<e.events.length;)e.events[f][1].end={...c},f++;aA(e.events,i+1,0,e.events.slice(h)),e.events.length=f}}function q(b){let c=f.length;for(;c-- >b;){let b=f[c];e.containerState=b[1],b[0].exit.call(e,a)}f.length=b}function r(){b.write([null]),c=void 0,b=void 0,e.containerState._closeFlow=void 0}}},aX={tokenize:function(a,b,c){return aU(a,a.attempt(this.parser.constructs.document,b,c),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}},aY={partial:!0,tokenize:function(a,b,c){return function(b){return aQ(b)?aU(a,d,"linePrefix")(b):d(b)};function d(a){return null===a||aO(a)?b(a):c(a)}}},aZ={resolve:function(a){return aE(a),a},tokenize:function(a,b){let c;return function(b){return a.enter("content"),c=a.enter("chunkContent",{contentType:"content"}),d(b)};function d(b){return null===b?e(b):aO(b)?a.check(a$,f,e)(b):(a.consume(b),d)}function e(c){return a.exit("chunkContent"),a.exit("content"),b(c)}function f(b){return a.consume(b),a.exit("chunkContent"),c.next=a.enter("chunkContent",{contentType:"content",previous:c}),c=c.next,d}}},a$={partial:!0,tokenize:function(a,b,c){let d=this;return function(b){return a.exit("chunkContent"),a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),aU(a,e,"linePrefix")};function e(e){if(null===e||aO(e))return c(e);let f=d.events[d.events.length-1];return!d.parser.constructs.disable.null.includes("codeIndented")&&f&&"linePrefix"===f[1].type&&f[2].sliceSerialize(f[1],!0).length>=4?b(e):a.interrupt(d.parser.constructs.flow,c,b)(e)}}},a_={tokenize:function(a){let b=this,c=a.attempt(aY,function(d){return null===d?void a.consume(d):(a.enter("lineEndingBlank"),a.consume(d),a.exit("lineEndingBlank"),b.currentConstruct=void 0,c)},a.attempt(this.parser.constructs.flowInitial,d,aU(a,a.attempt(this.parser.constructs.flow,d,a.attempt(aZ,d)),"linePrefix")));return c;function d(d){return null===d?void a.consume(d):(a.enter("lineEnding"),a.consume(d),a.exit("lineEnding"),b.currentConstruct=void 0,c)}}},a0={resolveAll:a4()},a1=a3("string"),a2=a3("text");function a3(a){return{resolveAll:a4("text"===a?a5:void 0),tokenize:function(b){let c=this,d=this.parser.constructs[a],e=b.attempt(d,f,g);return f;function f(a){return i(a)?e(a):g(a)}function g(a){return null===a?void b.consume(a):(b.enter("data"),b.consume(a),h)}function h(a){return i(a)?(b.exit("data"),e(a)):(b.consume(a),h)}function i(a){if(null===a)return!0;let b=d[a],e=-1;if(b)for(;++e<b.length;){let a=b[e];if(!a.previous||a.previous.call(c,c.previous))return!0}return!1}}}}function a4(a){return function(b,c){let d,e=-1;for(;++e<=b.length;)void 0===d?b[e]&&"data"===b[e][1].type&&(d=e,e++):b[e]&&"data"===b[e][1].type||(e!==d+2&&(b[d][1].end=b[e-1][1].end,b.splice(d+2,e-d-2),e=d+2),d=void 0);return a?a(b,c):b}}function a5(a,b){let c=0;for(;++c<=a.length;)if((c===a.length||"lineEnding"===a[c][1].type)&&"data"===a[c-1][1].type){let d,e=a[c-1][1],f=b.sliceStream(e),g=f.length,h=-1,i=0;for(;g--;){let a=f[g];if("string"==typeof a){for(h=a.length;32===a.charCodeAt(h-1);)i++,h--;if(h)break;h=-1}else if(-2===a)d=!0,i++;else if(-1===a);else{g++;break}}if(b._contentTypeTextTrailing&&c===a.length&&(i=0),i){let f={type:c===a.length||d||i<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:g?h:e.start._bufferIndex+h,_index:e.start._index+g,line:e.end.line,column:e.end.column-i,offset:e.end.offset-i},end:{...e.end}};e.end={...f.start},e.start.offset===e.end.offset?Object.assign(e,f):(a.splice(c,0,["enter",f,b],["exit",f,b]),c+=2)}c++}return a}let a6={name:"thematicBreak",tokenize:function(a,b,c){let d,e=0;return function(f){var g;return a.enter("thematicBreak"),d=g=f,function f(g){return g===d?(a.enter("thematicBreakSequence"),function b(c){return c===d?(a.consume(c),e++,b):(a.exit("thematicBreakSequence"),aQ(c)?aU(a,f,"whitespace")(c):f(c))}(g)):e>=3&&(null===g||aO(g))?(a.exit("thematicBreak"),b(g)):c(g)}(g)}}},a7={continuation:{tokenize:function(a,b,c){let d=this;return d.containerState._closeFlow=void 0,a.check(aY,function(c){return d.containerState.furtherBlankLines=d.containerState.furtherBlankLines||d.containerState.initialBlankLine,aU(a,b,"listItemIndent",d.containerState.size+1)(c)},function(c){return d.containerState.furtherBlankLines||!aQ(c)?(d.containerState.furtherBlankLines=void 0,d.containerState.initialBlankLine=void 0,e(c)):(d.containerState.furtherBlankLines=void 0,d.containerState.initialBlankLine=void 0,a.attempt(a9,b,e)(c))});function e(e){return d.containerState._closeFlow=!0,d.interrupt=void 0,aU(a,a.attempt(a7,b,c),"linePrefix",d.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(e)}}},exit:function(a){a.exit(this.containerState.type)},name:"list",tokenize:function(a,b,c){let d=this,e=d.events[d.events.length-1],f=e&&"linePrefix"===e[1].type?e[2].sliceSerialize(e[1],!0).length:0,g=0;return function(b){let e=d.containerState.type||(42===b||43===b||45===b?"listUnordered":"listOrdered");if("listUnordered"===e?!d.containerState.marker||b===d.containerState.marker:aL(b)){if(d.containerState.type||(d.containerState.type=e,a.enter(e,{_container:!0})),"listUnordered"===e)return a.enter("listItemPrefix"),42===b||45===b?a.check(a6,c,h)(b):h(b);if(!d.interrupt||49===b)return a.enter("listItemPrefix"),a.enter("listItemValue"),function b(e){return aL(e)&&++g<10?(a.consume(e),b):(!d.interrupt||g<2)&&(d.containerState.marker?e===d.containerState.marker:41===e||46===e)?(a.exit("listItemValue"),h(e)):c(e)}(b)}return c(b)};function h(b){return a.enter("listItemMarker"),a.consume(b),a.exit("listItemMarker"),d.containerState.marker=d.containerState.marker||b,a.check(aY,d.interrupt?c:i,a.attempt(a8,k,j))}function i(a){return d.containerState.initialBlankLine=!0,f++,k(a)}function j(b){return aQ(b)?(a.enter("listItemPrefixWhitespace"),a.consume(b),a.exit("listItemPrefixWhitespace"),k):c(b)}function k(c){return d.containerState.size=f+d.sliceSerialize(a.exit("listItemPrefix"),!0).length,b(c)}}},a8={partial:!0,tokenize:function(a,b,c){let d=this;return aU(a,function(a){let e=d.events[d.events.length-1];return!aQ(a)&&e&&"listItemPrefixWhitespace"===e[1].type?b(a):c(a)},"listItemPrefixWhitespace",d.parser.constructs.disable.null.includes("codeIndented")?void 0:5)}},a9={partial:!0,tokenize:function(a,b,c){let d=this;return aU(a,function(a){let e=d.events[d.events.length-1];return e&&"listItemIndent"===e[1].type&&e[2].sliceSerialize(e[1],!0).length===d.containerState.size?b(a):c(a)},"listItemIndent",d.containerState.size+1)}},ba={continuation:{tokenize:function(a,b,c){let d=this;return function(b){return aQ(b)?aU(a,e,"linePrefix",d.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(b):e(b)};function e(d){return a.attempt(ba,b,c)(d)}}},exit:function(a){a.exit("blockQuote")},name:"blockQuote",tokenize:function(a,b,c){let d=this;return function(b){if(62===b){let c=d.containerState;return c.open||(a.enter("blockQuote",{_container:!0}),c.open=!0),a.enter("blockQuotePrefix"),a.enter("blockQuoteMarker"),a.consume(b),a.exit("blockQuoteMarker"),e}return c(b)};function e(c){return aQ(c)?(a.enter("blockQuotePrefixWhitespace"),a.consume(c),a.exit("blockQuotePrefixWhitespace"),a.exit("blockQuotePrefix"),b):(a.exit("blockQuotePrefix"),b(c))}}};function bb(a,b,c,d,e,f,g,h,i){let j=i||1/0,k=0;return function(b){return 60===b?(a.enter(d),a.enter(e),a.enter(f),a.consume(b),a.exit(f),l):null===b||32===b||41===b||aK(b)?c(b):(a.enter(d),a.enter(g),a.enter(h),a.enter("chunkString",{contentType:"string"}),o(b))};function l(c){return 62===c?(a.enter(f),a.consume(c),a.exit(f),a.exit(e),a.exit(d),b):(a.enter(h),a.enter("chunkString",{contentType:"string"}),m(c))}function m(b){return 62===b?(a.exit("chunkString"),a.exit(h),l(b)):null===b||60===b||aO(b)?c(b):(a.consume(b),92===b?n:m)}function n(b){return 60===b||62===b||92===b?(a.consume(b),m):m(b)}function o(e){return!k&&(null===e||41===e||aP(e))?(a.exit("chunkString"),a.exit(h),a.exit(g),a.exit(d),b(e)):k<j&&40===e?(a.consume(e),k++,o):41===e?(a.consume(e),k--,o):null===e||32===e||40===e||aK(e)?c(e):(a.consume(e),92===e?p:o)}function p(b){return 40===b||41===b||92===b?(a.consume(b),o):o(b)}}function bc(a,b,c,d,e,f){let g,h=this,i=0;return function(b){return a.enter(d),a.enter(e),a.consume(b),a.exit(e),a.enter(f),j};function j(l){return i>999||null===l||91===l||93===l&&!g||94===l&&!i&&"_hiddenFootnoteSupport"in h.parser.constructs?c(l):93===l?(a.exit(f),a.enter(e),a.consume(l),a.exit(e),a.exit(d),b):aO(l)?(a.enter("lineEnding"),a.consume(l),a.exit("lineEnding"),j):(a.enter("chunkString",{contentType:"string"}),k(l))}function k(b){return null===b||91===b||93===b||aO(b)||i++>999?(a.exit("chunkString"),j(b)):(a.consume(b),g||(g=!aQ(b)),92===b?l:k)}function l(b){return 91===b||92===b||93===b?(a.consume(b),i++,k):k(b)}}function bd(a,b,c,d,e,f){let g;return function(b){return 34===b||39===b||40===b?(a.enter(d),a.enter(e),a.consume(b),a.exit(e),g=40===b?41:b,h):c(b)};function h(c){return c===g?(a.enter(e),a.consume(c),a.exit(e),a.exit(d),b):(a.enter(f),i(c))}function i(b){return b===g?(a.exit(f),h(g)):null===b?c(b):aO(b)?(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),aU(a,i,"linePrefix")):(a.enter("chunkString",{contentType:"string"}),j(b))}function j(b){return b===g||null===b||aO(b)?(a.exit("chunkString"),i(b)):(a.consume(b),92===b?k:j)}function k(b){return b===g||92===b?(a.consume(b),j):j(b)}}function be(a,b){let c;return function d(e){return aO(e)?(a.enter("lineEnding"),a.consume(e),a.exit("lineEnding"),c=!0,d):aQ(e)?aU(a,d,c?"linePrefix":"lineSuffix")(e):b(e)}}function bf(a){return a.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}let bg={partial:!0,tokenize:function(a,b,c){return function(b){return aP(b)?be(a,d)(b):c(b)};function d(b){return bd(a,e,c,"definitionTitle","definitionTitleMarker","definitionTitleString")(b)}function e(b){return aQ(b)?aU(a,f,"whitespace")(b):f(b)}function f(a){return null===a||aO(a)?b(a):c(a)}}},bh={name:"codeIndented",tokenize:function(a,b,c){let d=this;return function(b){return a.enter("codeIndented"),aU(a,e,"linePrefix",5)(b)};function e(b){let e=d.events[d.events.length-1];return e&&"linePrefix"===e[1].type&&e[2].sliceSerialize(e[1],!0).length>=4?function b(c){return null===c?f(c):aO(c)?a.attempt(bi,b,f)(c):(a.enter("codeFlowValue"),function c(d){return null===d||aO(d)?(a.exit("codeFlowValue"),b(d)):(a.consume(d),c)}(c))}(b):c(b)}function f(c){return a.exit("codeIndented"),b(c)}}},bi={partial:!0,tokenize:function(a,b,c){let d=this;return e;function e(b){return d.parser.lazy[d.now().line]?c(b):aO(b)?(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),e):aU(a,f,"linePrefix",5)(b)}function f(a){let f=d.events[d.events.length-1];return f&&"linePrefix"===f[1].type&&f[2].sliceSerialize(f[1],!0).length>=4?b(a):aO(a)?e(a):c(a)}}},bj={name:"setextUnderline",resolveTo:function(a,b){let c,d,e,f=a.length;for(;f--;)if("enter"===a[f][0]){if("content"===a[f][1].type){c=f;break}"paragraph"===a[f][1].type&&(d=f)}else"content"===a[f][1].type&&a.splice(f,1),e||"definition"!==a[f][1].type||(e=f);let g={type:"setextHeading",start:{...a[c][1].start},end:{...a[a.length-1][1].end}};return a[d][1].type="setextHeadingText",e?(a.splice(d,0,["enter",g,b]),a.splice(e+1,0,["exit",a[c][1],b]),a[c][1].end={...a[e][1].end}):a[c][1]=g,a.push(["exit",g,b]),a},tokenize:function(a,b,c){let d,e=this;return function(b){var g;let h,i=e.events.length;for(;i--;)if("lineEnding"!==e.events[i][1].type&&"linePrefix"!==e.events[i][1].type&&"content"!==e.events[i][1].type){h="paragraph"===e.events[i][1].type;break}return!e.parser.lazy[e.now().line]&&(e.interrupt||h)?(a.enter("setextHeadingLine"),d=b,g=b,a.enter("setextHeadingLineSequence"),function b(c){return c===d?(a.consume(c),b):(a.exit("setextHeadingLineSequence"),aQ(c)?aU(a,f,"lineSuffix")(c):f(c))}(g)):c(b)};function f(d){return null===d||aO(d)?(a.exit("setextHeadingLine"),b(d)):c(d)}}},bk=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],bl=["pre","script","style","textarea"],bm={partial:!0,tokenize:function(a,b,c){return function(d){return a.enter("lineEnding"),a.consume(d),a.exit("lineEnding"),a.attempt(aY,b,c)}}},bn={partial:!0,tokenize:function(a,b,c){let d=this;return function(b){return aO(b)?(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),e):c(b)};function e(a){return d.parser.lazy[d.now().line]?c(a):b(a)}}},bo={partial:!0,tokenize:function(a,b,c){let d=this;return function(b){return null===b?c(b):(a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),e)};function e(a){return d.parser.lazy[d.now().line]?c(a):b(a)}}},bp={concrete:!0,name:"codeFenced",tokenize:function(a,b,c){let d,e=this,f={partial:!0,tokenize:function(a,b,c){let f=0;return function(b){return a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),g};function g(b){return a.enter("codeFencedFence"),aQ(b)?aU(a,i,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(b):i(b)}function i(b){return b===d?(a.enter("codeFencedFenceSequence"),function b(e){return e===d?(f++,a.consume(e),b):f>=h?(a.exit("codeFencedFenceSequence"),aQ(e)?aU(a,j,"whitespace")(e):j(e)):c(e)}(b)):c(b)}function j(d){return null===d||aO(d)?(a.exit("codeFencedFence"),b(d)):c(d)}}},g=0,h=0;return function(b){var f=b;let j=e.events[e.events.length-1];return g=j&&"linePrefix"===j[1].type?j[2].sliceSerialize(j[1],!0).length:0,d=f,a.enter("codeFenced"),a.enter("codeFencedFence"),a.enter("codeFencedFenceSequence"),function b(e){return e===d?(h++,a.consume(e),b):h<3?c(e):(a.exit("codeFencedFenceSequence"),aQ(e)?aU(a,i,"whitespace")(e):i(e))}(f)};function i(f){return null===f||aO(f)?(a.exit("codeFencedFence"),e.interrupt?b(f):a.check(bo,k,o)(f)):(a.enter("codeFencedFenceInfo"),a.enter("chunkString",{contentType:"string"}),function b(e){return null===e||aO(e)?(a.exit("chunkString"),a.exit("codeFencedFenceInfo"),i(e)):aQ(e)?(a.exit("chunkString"),a.exit("codeFencedFenceInfo"),aU(a,j,"whitespace")(e)):96===e&&e===d?c(e):(a.consume(e),b)}(f))}function j(b){return null===b||aO(b)?i(b):(a.enter("codeFencedFenceMeta"),a.enter("chunkString",{contentType:"string"}),function b(e){return null===e||aO(e)?(a.exit("chunkString"),a.exit("codeFencedFenceMeta"),i(e)):96===e&&e===d?c(e):(a.consume(e),b)}(b))}function k(b){return a.attempt(f,o,l)(b)}function l(b){return a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),m}function m(b){return g>0&&aQ(b)?aU(a,n,"linePrefix",g+1)(b):n(b)}function n(b){return null===b||aO(b)?a.check(bo,k,o)(b):(a.enter("codeFlowValue"),function b(c){return null===c||aO(c)?(a.exit("codeFlowValue"),n(c)):(a.consume(c),b)}(b))}function o(c){return a.exit("codeFenced"),b(c)}}},bq={AElig:"\xc6",AMP:"&",Aacute:"\xc1",Abreve:"Ă",Acirc:"\xc2",Acy:"А",Afr:"\uD835\uDD04",Agrave:"\xc0",Alpha:"Α",Amacr:"Ā",And:"⩓",Aogon:"Ą",Aopf:"\uD835\uDD38",ApplyFunction:"",Aring:"\xc5",Ascr:"\uD835\uDC9C",Assign:"≔",Atilde:"\xc3",Auml:"\xc4",Backslash:"∖",Barv:"⫧",Barwed:"⌆",Bcy:"Б",Because:"∵",Bernoullis:"ℬ",Beta:"Β",Bfr:"\uD835\uDD05",Bopf:"\uD835\uDD39",Breve:"˘",Bscr:"ℬ",Bumpeq:"≎",CHcy:"Ч",COPY:"\xa9",Cacute:"Ć",Cap:"⋒",CapitalDifferentialD:"ⅅ",Cayleys:"ℭ",Ccaron:"Č",Ccedil:"\xc7",Ccirc:"Ĉ",Cconint:"∰",Cdot:"Ċ",Cedilla:"\xb8",CenterDot:"\xb7",Cfr:"ℭ",Chi:"Χ",CircleDot:"⊙",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",Colon:"∷",Colone:"⩴",Congruent:"≡",Conint:"∯",ContourIntegral:"∮",Copf:"ℂ",Coproduct:"∐",CounterClockwiseContourIntegral:"∳",Cross:"⨯",Cscr:"\uD835\uDC9E",Cup:"⋓",CupCap:"≍",DD:"ⅅ",DDotrahd:"⤑",DJcy:"Ђ",DScy:"Ѕ",DZcy:"Џ",Dagger:"‡",Darr:"↡",Dashv:"⫤",Dcaron:"Ď",Dcy:"Д",Del:"∇",Delta:"Δ",Dfr:"\uD835\uDD07",DiacriticalAcute:"\xb4",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",Diamond:"⋄",DifferentialD:"ⅆ",Dopf:"\uD835\uDD3B",Dot:"\xa8",DotDot:"⃜",DotEqual:"≐",DoubleContourIntegral:"∯",DoubleDot:"\xa8",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",Downarrow:"⇓",Dscr:"\uD835\uDC9F",Dstrok:"Đ",ENG:"Ŋ",ETH:"\xd0",Eacute:"\xc9",Ecaron:"Ě",Ecirc:"\xca",Ecy:"Э",Edot:"Ė",Efr:"\uD835\uDD08",Egrave:"\xc8",Element:"∈",Emacr:"Ē",EmptySmallSquare:"◻",EmptyVerySmallSquare:"▫",Eogon:"Ę",Eopf:"\uD835\uDD3C",Epsilon:"Ε",Equal:"⩵",EqualTilde:"≂",Equilibrium:"⇌",Escr:"ℰ",Esim:"⩳",Eta:"Η",Euml:"\xcb",Exists:"∃",ExponentialE:"ⅇ",Fcy:"Ф",Ffr:"\uD835\uDD09",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",Fopf:"\uD835\uDD3D",ForAll:"∀",Fouriertrf:"ℱ",Fscr:"ℱ",GJcy:"Ѓ",GT:">",Gamma:"Γ",Gammad:"Ϝ",Gbreve:"Ğ",Gcedil:"Ģ",Gcirc:"Ĝ",Gcy:"Г",Gdot:"Ġ",Gfr:"\uD835\uDD0A",Gg:"⋙",Gopf:"\uD835\uDD3E",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"\uD835\uDCA2",Gt:"≫",HARDcy:"Ъ",Hacek:"ˇ",Hat:"^",Hcirc:"Ĥ",Hfr:"ℌ",HilbertSpace:"ℋ",Hopf:"ℍ",HorizontalLine:"─",Hscr:"ℋ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",IEcy:"Е",IJlig:"IJ",IOcy:"Ё",Iacute:"\xcd",Icirc:"\xce",Icy:"И",Idot:"İ",Ifr:"ℑ",Igrave:"\xcc",Im:"ℑ",Imacr:"Ī",ImaginaryI:"ⅈ",Implies:"⇒",Int:"∬",Integral:"∫",Intersection:"⋂",InvisibleComma:"",InvisibleTimes:"",Iogon:"Į",Iopf:"\uD835\uDD40",Iota:"Ι",Iscr:"ℐ",Itilde:"Ĩ",Iukcy:"І",Iuml:"\xcf",Jcirc:"Ĵ",Jcy:"Й",Jfr:"\uD835\uDD0D",Jopf:"\uD835\uDD41",Jscr:"\uD835\uDCA5",Jsercy:"Ј",Jukcy:"Є",KHcy:"Х",KJcy:"Ќ",Kappa:"Κ",Kcedil:"Ķ",Kcy:"К",Kfr:"\uD835\uDD0E",Kopf:"\uD835\uDD42",Kscr:"\uD835\uDCA6",LJcy:"Љ",LT:"<",Lacute:"Ĺ",Lambda:"Λ",Lang:"⟪",Laplacetrf:"ℒ",Larr:"↞",Lcaron:"Ľ",Lcedil:"Ļ",Lcy:"Л",LeftAngleBracket:"⟨",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",LeftRightArrow:"↔",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",Leftarrow:"⇐",Leftrightarrow:"⇔",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",LessLess:"⪡",LessSlantEqual:"⩽",LessTilde:"≲",Lfr:"\uD835\uDD0F",Ll:"⋘",Lleftarrow:"⇚",Lmidot:"Ŀ",LongLeftArrow:"⟵",LongLeftRightArrow:"⟷",LongRightArrow:"⟶",Longleftarrow:"⟸",Longleftrightarrow:"⟺",Longrightarrow:"⟹",Lopf:"\uD835\uDD43",LowerLeftArrow:"↙",LowerRightArrow:"↘",Lscr:"ℒ",Lsh:"↰",Lstrok:"Ł",Lt:"≪",Map:"⤅",Mcy:"М",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"\uD835\uDD10",MinusPlus:"∓",Mopf:"\uD835\uDD44",Mscr:"ℳ",Mu:"Μ",NJcy:"Њ",Nacute:"Ń",Ncaron:"Ň",Ncedil:"Ņ",Ncy:"Н",NegativeMediumSpace:"",NegativeThickSpace:"",NegativeThinSpace:"",NegativeVeryThinSpace:"",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",Nfr:"\uD835\uDD11",NoBreak:"",NonBreakingSpace:"\xa0",Nopf:"ℕ",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",Nscr:"\uD835\uDCA9",Ntilde:"\xd1",Nu:"Ν",OElig:"Œ",Oacute:"\xd3",Ocirc:"\xd4",Ocy:"О",Odblac:"Ő",Ofr:"\uD835\uDD12",Ograve:"\xd2",Omacr:"Ō",Omega:"Ω",Omicron:"Ο",Oopf:"\uD835\uDD46",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",Or:"⩔",Oscr:"\uD835\uDCAA",Oslash:"\xd8",Otilde:"\xd5",Otimes:"⨷",Ouml:"\xd6",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",PartialD:"∂",Pcy:"П",Pfr:"\uD835\uDD13",Phi:"Φ",Pi:"Π",PlusMinus:"\xb1",Poincareplane:"ℌ",Popf:"ℙ",Pr:"⪻",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",Prime:"″",Product:"∏",Proportion:"∷",Proportional:"∝",Pscr:"\uD835\uDCAB",Psi:"Ψ",QUOT:'"',Qfr:"\uD835\uDD14",Qopf:"ℚ",Qscr:"\uD835\uDCAC",RBarr:"⤐",REG:"\xae",Racute:"Ŕ",Rang:"⟫",Rarr:"↠",Rarrtl:"⤖",Rcaron:"Ř",Rcedil:"Ŗ",Rcy:"Р",Re:"ℜ",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",Rfr:"ℜ",Rho:"Ρ",RightAngleBracket:"⟩",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",Rightarrow:"⇒",Ropf:"ℝ",RoundImplies:"⥰",Rrightarrow:"⇛",Rscr:"ℛ",Rsh:"↱",RuleDelayed:"⧴",SHCHcy:"Щ",SHcy:"Ш",SOFTcy:"Ь",Sacute:"Ś",Sc:"⪼",Scaron:"Š",Scedil:"Ş",Scirc:"Ŝ",Scy:"С",Sfr:"\uD835\uDD16",ShortDownArrow:"↓",ShortLeftArrow:"←",ShortRightArrow:"→",ShortUpArrow:"↑",Sigma:"Σ",SmallCircle:"∘",Sopf:"\uD835\uDD4A",Sqrt:"√",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",Sscr:"\uD835\uDCAE",Star:"⋆",Sub:"⋐",Subset:"⋐",SubsetEqual:"⊆",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",SuchThat:"∋",Sum:"∑",Sup:"⋑",Superset:"⊃",SupersetEqual:"⊇",Supset:"⋑",THORN:"\xde",TRADE:"™",TSHcy:"Ћ",TScy:"Ц",Tab:" ",Tau:"Τ",Tcaron:"Ť",Tcedil:"Ţ",Tcy:"Т",Tfr:"\uD835\uDD17",Therefore:"∴",Theta:"Θ",ThickSpace:" ",ThinSpace:" ",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",Topf:"\uD835\uDD4B",TripleDot:"⃛",Tscr:"\uD835\uDCAF",Tstrok:"Ŧ",Uacute:"\xda",Uarr:"↟",Uarrocir:"⥉",Ubrcy:"Ў",Ubreve:"Ŭ",Ucirc:"\xdb",Ucy:"У",Udblac:"Ű",Ufr:"\uD835\uDD18",Ugrave:"\xd9",Umacr:"Ū",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",Uopf:"\uD835\uDD4C",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",UpEquilibrium:"⥮",UpTee:"⊥",UpTeeArrow:"↥",Uparrow:"⇑",Updownarrow:"⇕",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",Upsilon:"Υ",Uring:"Ů",Uscr:"\uD835\uDCB0",Utilde:"Ũ",Uuml:"\xdc",VDash:"⊫",Vbar:"⫫",Vcy:"В",Vdash:"⊩",Vdashl:"⫦",Vee:"⋁",Verbar:"‖",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"\uD835\uDD19",Vopf:"\uD835\uDD4D",Vscr:"\uD835\uDCB1",Vvdash:"⊪",Wcirc:"Ŵ",Wedge:"⋀",Wfr:"\uD835\uDD1A",Wopf:"\uD835\uDD4E",Wscr:"\uD835\uDCB2",Xfr:"\uD835\uDD1B",Xi:"Ξ",Xopf:"\uD835\uDD4F",Xscr:"\uD835\uDCB3",YAcy:"Я",YIcy:"Ї",YUcy:"Ю",Yacute:"\xdd",Ycirc:"Ŷ",Ycy:"Ы",Yfr:"\uD835\uDD1C",Yopf:"\uD835\uDD50",Yscr:"\uD835\uDCB4",Yuml:"Ÿ",ZHcy:"Ж",Zacute:"Ź",Zcaron:"Ž",Zcy:"З",Zdot:"Ż",ZeroWidthSpace:"",Zeta:"Ζ",Zfr:"ℨ",Zopf:"ℤ",Zscr:"\uD835\uDCB5",aacute:"\xe1",abreve:"ă",ac:"∾",acE:"∾̳",acd:"∿",acirc:"\xe2",acute:"\xb4",acy:"а",aelig:"\xe6",af:"",afr:"\uD835\uDD1E",agrave:"\xe0",alefsym:"ℵ",aleph:"ℵ",alpha:"α",amacr:"ā",amalg:"⨿",amp:"&",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"\xc5",angzarr:"⍼",aogon:"ą",aopf:"\uD835\uDD52",ap:"≈",apE:"⩰",apacir:"⩯",ape:"≊",apid:"≋",apos:"'",approx:"≈",approxeq:"≊",aring:"\xe5",ascr:"\uD835\uDCB6",ast:"*",asymp:"≈",asympeq:"≍",atilde:"\xe3",auml:"\xe4",awconint:"∳",awint:"⨑",bNot:"⫭",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",barvee:"⊽",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",beta:"β",beth:"ℶ",between:"≬",bfr:"\uD835\uDD1F",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bopf:"\uD835\uDD53",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxDL:"╗",boxDR:"╔",boxDl:"╖",boxDr:"╓",boxH:"═",boxHD:"╦",boxHU:"╩",boxHd:"╤",boxHu:"╧",boxUL:"╝",boxUR:"╚",boxUl:"╜",boxUr:"╙",boxV:"║",boxVH:"╬",boxVL:"╣",boxVR:"╠",boxVh:"╫",boxVl:"╢",boxVr:"╟",boxbox:"⧉",boxdL:"╕",boxdR:"╒",boxdl:"┐",boxdr:"┌",boxh:"─",boxhD:"╥",boxhU:"╨",boxhd:"┬",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxuL:"╛",boxuR:"╘",boxul:"┘",boxur:"└",boxv:"│",boxvH:"╪",boxvL:"╡",boxvR:"╞",boxvh:"┼",boxvl:"┤",boxvr:"├",bprime:"‵",breve:"˘",brvbar:"\xa6",bscr:"\uD835\uDCB7",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",bumpeq:"≏",cacute:"ć",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",caps:"∩︀",caret:"⁁",caron:"ˇ",ccaps:"⩍",ccaron:"č",ccedil:"\xe7",ccirc:"ĉ",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",cedil:"\xb8",cemptyv:"⦲",cent:"\xa2",centerdot:"\xb7",cfr:"\uD835\uDD20",chcy:"ч",check:"✓",checkmark:"✓",chi:"χ",cir:"○",cirE:"⧃",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledR:"\xae",circledS:"Ⓢ",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",clubs:"♣",clubsuit:"♣",colon:":",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",conint:"∮",copf:"\uD835\uDD54",coprod:"∐",copy:"\xa9",copysr:"℗",crarr:"↵",cross:"✗",cscr:"\uD835\uDCB8",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",cupbrcap:"⩈",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"\xa4",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dArr:"⇓",dHar:"⥥",dagger:"†",daleth:"ℸ",darr:"↓",dash:"‐",dashv:"⊣",dbkarow:"⤏",dblac:"˝",dcaron:"ď",dcy:"д",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",ddotseq:"⩷",deg:"\xb0",delta:"δ",demptyv:"⦱",dfisht:"⥿",dfr:"\uD835\uDD21",dharl:"⇃",dharr:"⇂",diam:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"\xa8",digamma:"ϝ",disin:"⋲",div:"\xf7",divide:"\xf7",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"\uD835\uDD55",dot:"˙",doteq:"≐",doteqdot:"≑",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",downarrow:"↓",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"\uD835\uDCB9",dscy:"ѕ",dsol:"⧶",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",dzigrarr:"⟿",eDDot:"⩷",eDot:"≑",eacute:"\xe9",easter:"⩮",ecaron:"ě",ecir:"≖",ecirc:"\xea",ecolon:"≕",ecy:"э",edot:"ė",ee:"ⅇ",efDot:"≒",efr:"\uD835\uDD22",eg:"⪚",egrave:"\xe8",egs:"⪖",egsdot:"⪘",el:"⪙",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",empty:"∅",emptyset:"∅",emptyv:"∅",emsp13:" ",emsp14:" ",emsp:" ",eng:"ŋ",ensp:" ",eogon:"ę",eopf:"\uD835\uDD56",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",equals:"=",equest:"≟",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erDot:"≓",erarr:"⥱",escr:"ℯ",esdot:"≐",esim:"≂",eta:"η",eth:"\xf0",euml:"\xeb",euro:"€",excl:"!",exist:"∃",expectation:"ℰ",exponentiale:"ⅇ",fallingdotseq:"≒",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"\uD835\uDD23",filig:"fi",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"\uD835\uDD57",forall:"∀",fork:"⋔",forkv:"⫙",fpartint:"⨍",frac12:"\xbd",frac13:"⅓",frac14:"\xbc",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"\xbe",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"\uD835\uDCBB",gE:"≧",gEl:"⪌",gacute:"ǵ",gamma:"γ",gammad:"ϝ",gap:"⪆",gbreve:"ğ",gcirc:"ĝ",gcy:"г",gdot:"ġ",ge:"≥",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"\uD835\uDD24",gg:"≫",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",gl:"≷",glE:"⪒",gla:"⪥",glj:"⪤",gnE:"≩",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"\uD835\uDD58",grave:"`",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",hArr:"⇔",hairsp:" ",half:"\xbd",hamilt:"ℋ",hardcy:"ъ",harr:"↔",harrcir:"⥈",harrw:"↭",hbar:"ℏ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"\uD835\uDD25",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"\uD835\uDD59",horbar:"―",hscr:"\uD835\uDCBD",hslash:"ℏ",hstrok:"ħ",hybull:"⁃",hyphen:"‐",iacute:"\xed",ic:"",icirc:"\xee",icy:"и",iecy:"е",iexcl:"\xa1",iff:"⇔",ifr:"\uD835\uDD26",igrave:"\xec",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",imacr:"ī",image:"ℑ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",intcal:"⊺",integers:"ℤ",intercal:"⊺",intlarhk:"⨗",intprod:"⨼",iocy:"ё",iogon:"į",iopf:"\uD835\uDD5A",iota:"ι",iprod:"⨼",iquest:"\xbf",iscr:"\uD835\uDCBE",isin:"∈",isinE:"⋹",isindot:"⋵",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"",itilde:"ĩ",iukcy:"і",iuml:"\xef",jcirc:"ĵ",jcy:"й",jfr:"\uD835\uDD27",jmath:"ȷ",jopf:"\uD835\uDD5B",jscr:"\uD835\uDCBF",jsercy:"ј",jukcy:"є",kappa:"κ",kappav:"ϰ",kcedil:"ķ",kcy:"к",kfr:"\uD835\uDD28",kgreen:"ĸ",khcy:"х",kjcy:"ќ",kopf:"\uD835\uDD5C",kscr:"\uD835\uDCC0",lAarr:"⇚",lArr:"⇐",lAtail:"⤛",lBarr:"⤎",lE:"≦",lEg:"⪋",lHar:"⥢",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",laquo:"\xab",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",late:"⪭",lates:"⪭︀",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",lcedil:"ļ",lceil:"⌈",lcub:"{",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",leftarrow:"←",leftarrowtail:"↢",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",leftthreetimes:"⋋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",lessgtr:"≶",lesssim:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"\uD835\uDD29",lg:"≶",lgE:"⪑",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",ll:"≪",llarr:"⇇",llcorner:"⌞",llhard:"⥫",lltri:"◺",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnE:"≨",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",longleftrightarrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"\uD835\uDD5D",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"",lrtri:"⊿",lsaquo:"‹",lscr:"\uD835\uDCC1",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltrPar:"⦖",ltri:"◃",ltrie:"⊴",ltrif:"◂",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",mDDot:"∺",macr:"\xaf",male:"♂",malt:"✠",maltese:"✠",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",mdash:"—",measuredangle:"∡",mfr:"\uD835\uDD2A",mho:"℧",micro:"\xb5",mid:"∣",midast:"*",midcir:"⫰",middot:"\xb7",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"\uD835\uDD5E",mp:"∓",mscr:"\uD835\uDCC2",mstpos:"∾",mu:"μ",multimap:"⊸",mumap:"⊸",nGg:"⋙̸",nGt:"≫⃒",nGtv:"≫̸",nLeftarrow:"⇍",nLeftrightarrow:"⇎",nLl:"⋘̸",nLt:"≪⃒",nLtv:"≪̸",nRightarrow:"⇏",nVDash:"⊯",nVdash:"⊮",nabla:"∇",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:"\xa0",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",ndash:"–",ne:"≠",neArr:"⇗",nearhk:"⤤",nearr:"↗",nearrow:"↗",nedot:"≐̸",nequiv:"≢",nesear:"⤨",nesim:"≂̸",nexist:"∄",nexists:"∄",nfr:"\uD835\uDD2B",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",ngsim:"≵",ngt:"≯",ngtr:"≯",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",nlArr:"⇍",nlE:"≦̸",nlarr:"↚",nldr:"‥",nle:"≰",nleftarrow:"↚",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nlsim:"≴",nlt:"≮",nltri:"⋪",nltrie:"⋬",nmid:"∤",nopf:"\uD835\uDD5F",not:"\xac",notin:"∉",notinE:"⋹̸",notindot:"⋵̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"\uD835\uDCC3",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"\xf1",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",num:"#",numero:"№",numsp:" ",nvDash:"⊭",nvHarr:"⤄",nvap:"≍⃒",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwArr:"⇖",nwarhk:"⤣",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",oS:"Ⓢ",oacute:"\xf3",oast:"⊛",ocir:"⊚",ocirc:"\xf4",ocy:"о",odash:"⊝",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",ofcir:"⦿",ofr:"\uD835\uDD2C",ogon:"˛",ograve:"\xf2",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",omega:"ω",omicron:"ο",omid:"⦶",ominus:"⊖",oopf:"\uD835\uDD60",opar:"⦷",operp:"⦹",oplus:"⊕",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"\xaa",ordm:"\xba",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oscr:"ℴ",oslash:"\xf8",osol:"⊘",otilde:"\xf5",otimes:"⊗",otimesas:"⨶",ouml:"\xf6",ovbar:"⌽",par:"∥",para:"\xb6",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"\uD835\uDD2D",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",plusmn:"\xb1",plussim:"⨦",plustwo:"⨧",pm:"\xb1",pointint:"⨕",popf:"\uD835\uDD61",pound:"\xa3",pr:"≺",prE:"⪳",prap:"⪷",prcue:"≼",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",primes:"ℙ",prnE:"⪵",prnap:"⪹",prnsim:"⋨",prod:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"\uD835\uDCC5",psi:"ψ",puncsp:" ",qfr:"\uD835\uDD2E",qint:"⨌",qopf:"\uD835\uDD62",qprime:"⁗",qscr:"\uD835\uDCC6",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',rAarr:"⇛",rArr:"⇒",rAtail:"⤜",rBarr:"⤏",rHar:"⥤",race:"∽̱",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"\xbb",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",rarrw:"↝",ratail:"⤚",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",rcedil:"ŗ",rceil:"⌉",rcub:"}",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"\xae",rfisht:"⥽",rfloor:"⌋",rfr:"\uD835\uDD2F",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",rhov:"ϱ",rightarrow:"→",rightarrowtail:"↣",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",rightthreetimes:"⋌",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"\uD835\uDD63",roplus:"⨮",rotimes:"⨵",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",rsaquo:"›",rscr:"\uD835\uDCC7",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",ruluhar:"⥨",rx:"℞",sacute:"ś",sbquo:"‚",sc:"≻",scE:"⪴",scap:"⪸",scaron:"š",sccue:"≽",sce:"⪰",scedil:"ş",scirc:"ŝ",scnE:"⪶",scnap:"⪺",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",seArr:"⇘",searhk:"⤥",searr:"↘",searrow:"↘",sect:"\xa7",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"\uD835\uDD30",sfrown:"⌢",sharp:"♯",shchcy:"щ",shcy:"ш",shortmid:"∣",shortparallel:"∥",shy:"\xad",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"\uD835\uDD64",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",squarf:"▪",squf:"▪",srarr:"→",sscr:"\uD835\uDCC8",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"\xaf",sub:"⊂",subE:"⫅",subdot:"⪽",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",sum:"∑",sung:"♪",sup1:"\xb9",sup2:"\xb2",sup3:"\xb3",sup:"⊃",supE:"⫆",supdot:"⪾",supdsub:"⫘",supe:"⊇",supedot:"⫄",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swArr:"⇙",swarhk:"⤦",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"\xdf",target:"⌖",tau:"τ",tbrk:"⎴",tcaron:"ť",tcedil:"ţ",tcy:"т",tdot:"⃛",telrec:"⌕",tfr:"\uD835\uDD31",there4:"∴",therefore:"∴",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",thinsp:" ",thkap:"≈",thksim:"∼",thorn:"\xfe",tilde:"˜",times:"\xd7",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"\uD835\uDD65",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"\uD835\uDCC9",tscy:"ц",tshcy:"ћ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uArr:"⇑",uHar:"⥣",uacute:"\xfa",uarr:"↑",ubrcy:"ў",ubreve:"ŭ",ucirc:"\xfb",ucy:"у",udarr:"⇅",udblac:"ű",udhar:"⥮",ufisht:"⥾",ufr:"\uD835\uDD32",ugrave:"\xf9",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",uml:"\xa8",uogon:"ų",uopf:"\uD835\uDD66",uparrow:"↑",updownarrow:"↕",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",upsi:"υ",upsih:"ϒ",upsilon:"υ",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",urtri:"◹",uscr:"\uD835\uDCCA",utdot:"⋰",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"\xfc",uwangle:"⦧",vArr:"⇕",vBar:"⫨",vBarv:"⫩",vDash:"⊨",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vcy:"в",vdash:"⊢",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",vert:"|",vfr:"\uD835\uDD33",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"\uD835\uDD67",vprop:"∝",vrtri:"⊳",vscr:"\uD835\uDCCB",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",vzigzag:"⦚",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",wedgeq:"≙",weierp:"℘",wfr:"\uD835\uDD34",wopf:"\uD835\uDD68",wp:"℘",wr:"≀",wreath:"≀",wscr:"\uD835\uDCCC",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"\uD835\uDD35",xhArr:"⟺",xharr:"⟷",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"\uD835\uDD69",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",xscr:"\uD835\uDCCD",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"\xfd",yacy:"я",ycirc:"ŷ",ycy:"ы",yen:"\xa5",yfr:"\uD835\uDD36",yicy:"ї",yopf:"\uD835\uDD6A",yscr:"\uD835\uDCCE",yucy:"ю",yuml:"\xff",zacute:"ź",zcaron:"ž",zcy:"з",zdot:"ż",zeetrf:"ℨ",zeta:"ζ",zfr:"\uD835\uDD37",zhcy:"ж",zigrarr:"⇝",zopf:"\uD835\uDD6B",zscr:"\uD835\uDCCF",zwj:"",zwnj:""},br={}.hasOwnProperty;function bs(a){return!!br.call(bq,a)&&bq[a]}let bt={name:"characterReference",tokenize:function(a,b,c){let d,e,f=this,g=0;return function(b){return a.enter("characterReference"),a.enter("characterReferenceMarker"),a.consume(b),a.exit("characterReferenceMarker"),h};function h(b){return 35===b?(a.enter("characterReferenceMarkerNumeric"),a.consume(b),a.exit("characterReferenceMarkerNumeric"),i):(a.enter("characterReferenceValue"),d=31,e=aI,j(b))}function i(b){return 88===b||120===b?(a.enter("characterReferenceMarkerHexadecimal"),a.consume(b),a.exit("characterReferenceMarkerHexadecimal"),a.enter("characterReferenceValue"),d=6,e=aM,j):(a.enter("characterReferenceValue"),d=7,e=aL,j(b))}function j(h){if(59===h&&g){let d=a.exit("characterReferenceValue");return e!==aI||bs(f.sliceSerialize(d))?(a.enter("characterReferenceMarker"),a.consume(h),a.exit("characterReferenceMarker"),a.exit("characterReference"),b):c(h)}return e(h)&&g++<d?(a.consume(h),j):c(h)}}},bu={name:"characterEscape",tokenize:function(a,b,c){return function(b){return a.enter("characterEscape"),a.enter("escapeMarker"),a.consume(b),a.exit("escapeMarker"),d};function d(d){return aN(d)?(a.enter("characterEscapeValue"),a.consume(d),a.exit("characterEscapeValue"),a.exit("characterEscape"),b):c(d)}}},bv={name:"lineEnding",tokenize:function(a,b){return function(c){return a.enter("lineEnding"),a.consume(c),a.exit("lineEnding"),aU(a,b,"linePrefix")}}};function bw(a,b,c){let d=[],e=-1;for(;++e<a.length;){let f=a[e].resolveAll;f&&!d.includes(f)&&(b=f(b,c),d.push(f))}return b}let bx={name:"labelEnd",resolveAll:function(a){let b=-1,c=[];for(;++b<a.length;){let d=a[b][1];if(c.push(a[b]),"labelImage"===d.type||"labelLink"===d.type||"labelEnd"===d.type){let a="labelImage"===d.type?4:2;d.type="data",b+=a}}return a.length!==c.length&&aA(a,0,a.length,c),a},resolveTo:function(a,b){let c,d,e,f,g=a.length,h=0;for(;g--;)if(c=a[g][1],d){if("link"===c.type||"labelLink"===c.type&&c._inactive)break;"enter"===a[g][0]&&"labelLink"===c.type&&(c._inactive=!0)}else if(e){if("enter"===a[g][0]&&("labelImage"===c.type||"labelLink"===c.type)&&!c._balanced&&(d=g,"labelLink"!==c.type)){h=2;break}}else"labelEnd"===c.type&&(e=g);let i={type:"labelLink"===a[d][1].type?"link":"image",start:{...a[d][1].start},end:{...a[a.length-1][1].end}},j={type:"label",start:{...a[d][1].start},end:{...a[e][1].end}},k={type:"labelText",start:{...a[d+h+2][1].end},end:{...a[e-2][1].start}};return f=aB(f=[["enter",i,b],["enter",j,b]],a.slice(d+1,d+h+3)),f=aB(f,[["enter",k,b]]),f=aB(f,bw(b.parser.constructs.insideSpan.null,a.slice(d+h+4,e-3),b)),f=aB(f,[["exit",k,b],a[e-2],a[e-1],["exit",j,b]]),f=aB(f,a.slice(e+1)),f=aB(f,[["exit",i,b]]),aA(a,d,a.length,f),a},tokenize:function(a,b,c){let d,e,f=this,g=f.events.length;for(;g--;)if(("labelImage"===f.events[g][1].type||"labelLink"===f.events[g][1].type)&&!f.events[g][1]._balanced){d=f.events[g][1];break}return function(b){return d?d._inactive?k(b):(e=f.parser.defined.includes(bf(f.sliceSerialize({start:d.end,end:f.now()}))),a.enter("labelEnd"),a.enter("labelMarker"),a.consume(b),a.exit("labelMarker"),a.exit("labelEnd"),h):c(b)};function h(b){return 40===b?a.attempt(by,j,e?j:k)(b):91===b?a.attempt(bz,j,e?i:k)(b):e?j(b):k(b)}function i(b){return a.attempt(bA,j,k)(b)}function j(a){return b(a)}function k(a){return d._balanced=!0,c(a)}}},by={tokenize:function(a,b,c){return function(b){return a.enter("resource"),a.enter("resourceMarker"),a.consume(b),a.exit("resourceMarker"),d};function d(b){return aP(b)?be(a,e)(b):e(b)}function e(b){return 41===b?j(b):bb(a,f,g,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(b)}function f(b){return aP(b)?be(a,h)(b):j(b)}function g(a){return c(a)}function h(b){return 34===b||39===b||40===b?bd(a,i,c,"resourceTitle","resourceTitleMarker","resourceTitleString")(b):j(b)}function i(b){return aP(b)?be(a,j)(b):j(b)}function j(d){return 41===d?(a.enter("resourceMarker"),a.consume(d),a.exit("resourceMarker"),a.exit("resource"),b):c(d)}}},bz={tokenize:function(a,b,c){let d=this;return function(b){return bc.call(d,a,e,f,"reference","referenceMarker","referenceString")(b)};function e(a){return d.parser.defined.includes(bf(d.sliceSerialize(d.events[d.events.length-1][1]).slice(1,-1)))?b(a):c(a)}function f(a){return c(a)}}},bA={tokenize:function(a,b,c){return function(b){return a.enter("reference"),a.enter("referenceMarker"),a.consume(b),a.exit("referenceMarker"),d};function d(d){return 93===d?(a.enter("referenceMarker"),a.consume(d),a.exit("referenceMarker"),a.exit("reference"),b):c(d)}}},bB={name:"labelStartImage",resolveAll:bx.resolveAll,tokenize:function(a,b,c){let d=this;return function(b){return a.enter("labelImage"),a.enter("labelImageMarker"),a.consume(b),a.exit("labelImageMarker"),e};function e(b){return 91===b?(a.enter("labelMarker"),a.consume(b),a.exit("labelMarker"),a.exit("labelImage"),f):c(b)}function f(a){return 94===a&&"_hiddenFootnoteSupport"in d.parser.constructs?c(a):b(a)}}};function bC(a){return null===a||aP(a)||aS(a)?1:aR(a)?2:void 0}let bD={name:"attention",resolveAll:function(a,b){let c,d,e,f,g,h,i,j,k=-1;for(;++k<a.length;)if("enter"===a[k][0]&&"attentionSequence"===a[k][1].type&&a[k][1]._close){for(c=k;c--;)if("exit"===a[c][0]&&"attentionSequence"===a[c][1].type&&a[c][1]._open&&b.sliceSerialize(a[c][1]).charCodeAt(0)===b.sliceSerialize(a[k][1]).charCodeAt(0)){if((a[c][1]._close||a[k][1]._open)&&(a[k][1].end.offset-a[k][1].start.offset)%3&&!((a[c][1].end.offset-a[c][1].start.offset+a[k][1].end.offset-a[k][1].start.offset)%3))continue;h=a[c][1].end.offset-a[c][1].start.offset>1&&a[k][1].end.offset-a[k][1].start.offset>1?2:1;let l={...a[c][1].end},m={...a[k][1].start};bE(l,-h),bE(m,h),f={type:h>1?"strongSequence":"emphasisSequence",start:l,end:{...a[c][1].end}},g={type:h>1?"strongSequence":"emphasisSequence",start:{...a[k][1].start},end:m},e={type:h>1?"strongText":"emphasisText",start:{...a[c][1].end},end:{...a[k][1].start}},d={type:h>1?"strong":"emphasis",start:{...f.start},end:{...g.end}},a[c][1].end={...f.start},a[k][1].start={...g.end},i=[],a[c][1].end.offset-a[c][1].start.offset&&(i=aB(i,[["enter",a[c][1],b],["exit",a[c][1],b]])),i=aB(i,[["enter",d,b],["enter",f,b],["exit",f,b],["enter",e,b]]),i=aB(i,bw(b.parser.constructs.insideSpan.null,a.slice(c+1,k),b)),i=aB(i,[["exit",e,b],["enter",g,b],["exit",g,b],["exit",d,b]]),a[k][1].end.offset-a[k][1].start.offset?(j=2,i=aB(i,[["enter",a[k][1],b],["exit",a[k][1],b]])):j=0,aA(a,c-1,k-c+3,i),k=c+i.length-j-2;break}}for(k=-1;++k<a.length;)"attentionSequence"===a[k][1].type&&(a[k][1].type="data");return a},tokenize:function(a,b){let c,d=this.parser.constructs.attentionMarkers.null,e=this.previous,f=bC(e);return function(g){return c=g,a.enter("attentionSequence"),function g(h){if(h===c)return a.consume(h),g;let i=a.exit("attentionSequence"),j=bC(h),k=!j||2===j&&f||d.includes(h),l=!f||2===f&&j||d.includes(e);return i._open=!!(42===c?k:k&&(f||!l)),i._close=!!(42===c?l:l&&(j||!k)),b(h)}(g)}}};function bE(a,b){a.column+=b,a.offset+=b,a._bufferIndex+=b}let bF={name:"labelStartLink",resolveAll:bx.resolveAll,tokenize:function(a,b,c){let d=this;return function(b){return a.enter("labelLink"),a.enter("labelMarker"),a.consume(b),a.exit("labelMarker"),a.exit("labelLink"),e};function e(a){return 94===a&&"_hiddenFootnoteSupport"in d.parser.constructs?c(a):b(a)}}},bG={42:a7,43:a7,45:a7,48:a7,49:a7,50:a7,51:a7,52:a7,53:a7,54:a7,55:a7,56:a7,57:a7,62:ba},bH={91:{name:"definition",tokenize:function(a,b,c){let d,e=this;return function(b){var d;return a.enter("definition"),d=b,bc.call(e,a,f,c,"definitionLabel","definitionLabelMarker","definitionLabelString")(d)};function f(b){return(d=bf(e.sliceSerialize(e.events[e.events.length-1][1]).slice(1,-1)),58===b)?(a.enter("definitionMarker"),a.consume(b),a.exit("definitionMarker"),g):c(b)}function g(b){return aP(b)?be(a,h)(b):h(b)}function h(b){return bb(a,i,c,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(b)}function i(b){return a.attempt(bg,j,j)(b)}function j(b){return aQ(b)?aU(a,k,"whitespace")(b):k(b)}function k(f){return null===f||aO(f)?(a.exit("definition"),e.parser.defined.push(d),b(f)):c(f)}}}},bI={[-2]:bh,[-1]:bh,32:bh},bJ={35:{name:"headingAtx",resolve:function(a,b){let c,d,e=a.length-2,f=3;return"whitespace"===a[3][1].type&&(f+=2),e-2>f&&"whitespace"===a[e][1].type&&(e-=2),"atxHeadingSequence"===a[e][1].type&&(f===e-1||e-4>f&&"whitespace"===a[e-2][1].type)&&(e-=f+1===e?2:4),e>f&&(c={type:"atxHeadingText",start:a[f][1].start,end:a[e][1].end},d={type:"chunkText",start:a[f][1].start,end:a[e][1].end,contentType:"text"},aA(a,f,e-f+1,[["enter",c,b],["enter",d,b],["exit",d,b],["exit",c,b]])),a},tokenize:function(a,b,c){let d=0;return function(e){var f;return a.enter("atxHeading"),f=e,a.enter("atxHeadingSequence"),function e(f){return 35===f&&d++<6?(a.consume(f),e):null===f||aP(f)?(a.exit("atxHeadingSequence"),function c(d){return 35===d?(a.enter("atxHeadingSequence"),function b(d){return 35===d?(a.consume(d),b):(a.exit("atxHeadingSequence"),c(d))}(d)):null===d||aO(d)?(a.exit("atxHeading"),b(d)):aQ(d)?aU(a,c,"whitespace")(d):(a.enter("atxHeadingText"),function b(d){return null===d||35===d||aP(d)?(a.exit("atxHeadingText"),c(d)):(a.consume(d),b)}(d))}(f)):c(f)}(f)}}},42:a6,45:[bj,a6],60:{concrete:!0,name:"htmlFlow",resolveTo:function(a){let b=a.length;for(;b--&&("enter"!==a[b][0]||"htmlFlow"!==a[b][1].type););return b>1&&"linePrefix"===a[b-2][1].type&&(a[b][1].start=a[b-2][1].start,a[b+1][1].start=a[b-2][1].start,a.splice(b-2,2)),a},tokenize:function(a,b,c){let d,e,f,g,h,i=this;return function(b){var c;return c=b,a.enter("htmlFlow"),a.enter("htmlFlowData"),a.consume(c),j};function j(g){return 33===g?(a.consume(g),k):47===g?(a.consume(g),e=!0,n):63===g?(a.consume(g),d=3,i.interrupt?b:G):aH(g)?(a.consume(g),f=String.fromCharCode(g),o):c(g)}function k(e){return 45===e?(a.consume(e),d=2,l):91===e?(a.consume(e),d=5,g=0,m):aH(e)?(a.consume(e),d=4,i.interrupt?b:G):c(e)}function l(d){return 45===d?(a.consume(d),i.interrupt?b:G):c(d)}function m(d){let e="CDATA[";return d===e.charCodeAt(g++)?(a.consume(d),g===e.length)?i.interrupt?b:y:m:c(d)}function n(b){return aH(b)?(a.consume(b),f=String.fromCharCode(b),o):c(b)}function o(g){if(null===g||47===g||62===g||aP(g)){let h=47===g,j=f.toLowerCase();return!h&&!e&&bl.includes(j)?(d=1,i.interrupt?b(g):y(g)):bk.includes(f.toLowerCase())?(d=6,h)?(a.consume(g),p):i.interrupt?b(g):y(g):(d=7,i.interrupt&&!i.parser.lazy[i.now().line]?c(g):e?function b(c){return aQ(c)?(a.consume(c),b):w(c)}(g):q(g))}return 45===g||aI(g)?(a.consume(g),f+=String.fromCharCode(g),o):c(g)}function p(d){return 62===d?(a.consume(d),i.interrupt?b:y):c(d)}function q(b){return 47===b?(a.consume(b),w):58===b||95===b||aH(b)?(a.consume(b),r):aQ(b)?(a.consume(b),q):w(b)}function r(b){return 45===b||46===b||58===b||95===b||aI(b)?(a.consume(b),r):s(b)}function s(b){return 61===b?(a.consume(b),t):aQ(b)?(a.consume(b),s):q(b)}function t(b){return null===b||60===b||61===b||62===b||96===b?c(b):34===b||39===b?(a.consume(b),h=b,u):aQ(b)?(a.consume(b),t):function b(c){return null===c||34===c||39===c||47===c||60===c||61===c||62===c||96===c||aP(c)?s(c):(a.consume(c),b)}(b)}function u(b){return b===h?(a.consume(b),h=null,v):null===b||aO(b)?c(b):(a.consume(b),u)}function v(a){return 47===a||62===a||aQ(a)?q(a):c(a)}function w(b){return 62===b?(a.consume(b),x):c(b)}function x(b){return null===b||aO(b)?y(b):aQ(b)?(a.consume(b),x):c(b)}function y(b){return 45===b&&2===d?(a.consume(b),C):60===b&&1===d?(a.consume(b),D):62===b&&4===d?(a.consume(b),H):63===b&&3===d?(a.consume(b),G):93===b&&5===d?(a.consume(b),F):aO(b)&&(6===d||7===d)?(a.exit("htmlFlowData"),a.check(bm,I,z)(b)):null===b||aO(b)?(a.exit("htmlFlowData"),z(b)):(a.consume(b),y)}function z(b){return a.check(bn,A,I)(b)}function A(b){return a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),B}function B(b){return null===b||aO(b)?z(b):(a.enter("htmlFlowData"),y(b))}function C(b){return 45===b?(a.consume(b),G):y(b)}function D(b){return 47===b?(a.consume(b),f="",E):y(b)}function E(b){if(62===b){let c=f.toLowerCase();return bl.includes(c)?(a.consume(b),H):y(b)}return aH(b)&&f.length<8?(a.consume(b),f+=String.fromCharCode(b),E):y(b)}function F(b){return 93===b?(a.consume(b),G):y(b)}function G(b){return 62===b?(a.consume(b),H):45===b&&2===d?(a.consume(b),G):y(b)}function H(b){return null===b||aO(b)?(a.exit("htmlFlowData"),I(b)):(a.consume(b),H)}function I(c){return a.exit("htmlFlow"),b(c)}}},61:bj,95:a6,96:bp,126:bp},bK={38:bt,92:bu},bL={[-5]:bv,[-4]:bv,[-3]:bv,33:bB,38:bt,42:bD,60:[{name:"autolink",tokenize:function(a,b,c){let d=0;return function(b){return a.enter("autolink"),a.enter("autolinkMarker"),a.consume(b),a.exit("autolinkMarker"),a.enter("autolinkProtocol"),e};function e(b){return aH(b)?(a.consume(b),f):64===b?c(b):h(b)}function f(b){return 43===b||45===b||46===b||aI(b)?(d=1,function b(c){return 58===c?(a.consume(c),d=0,g):(43===c||45===c||46===c||aI(c))&&d++<32?(a.consume(c),b):(d=0,h(c))}(b)):h(b)}function g(d){return 62===d?(a.exit("autolinkProtocol"),a.enter("autolinkMarker"),a.consume(d),a.exit("autolinkMarker"),a.exit("autolink"),b):null===d||32===d||60===d||aK(d)?c(d):(a.consume(d),g)}function h(b){return 64===b?(a.consume(b),i):aJ(b)?(a.consume(b),h):c(b)}function i(e){return aI(e)?function e(f){return 46===f?(a.consume(f),d=0,i):62===f?(a.exit("autolinkProtocol").type="autolinkEmail",a.enter("autolinkMarker"),a.consume(f),a.exit("autolinkMarker"),a.exit("autolink"),b):function b(f){if((45===f||aI(f))&&d++<63){let c=45===f?b:e;return a.consume(f),c}return c(f)}(f)}(e):c(e)}}},{name:"htmlText",tokenize:function(a,b,c){let d,e,f,g=this;return function(b){return a.enter("htmlText"),a.enter("htmlTextData"),a.consume(b),h};function h(b){return 33===b?(a.consume(b),i):47===b?(a.consume(b),u):63===b?(a.consume(b),s):aH(b)?(a.consume(b),w):c(b)}function i(b){return 45===b?(a.consume(b),j):91===b?(a.consume(b),e=0,n):aH(b)?(a.consume(b),r):c(b)}function j(b){return 45===b?(a.consume(b),m):c(b)}function k(b){return null===b?c(b):45===b?(a.consume(b),l):aO(b)?(f=k,E(b)):(a.consume(b),k)}function l(b){return 45===b?(a.consume(b),m):k(b)}function m(a){return 62===a?D(a):45===a?l(a):k(a)}function n(b){let d="CDATA[";return b===d.charCodeAt(e++)?(a.consume(b),e===d.length?o:n):c(b)}function o(b){return null===b?c(b):93===b?(a.consume(b),p):aO(b)?(f=o,E(b)):(a.consume(b),o)}function p(b){return 93===b?(a.consume(b),q):o(b)}function q(b){return 62===b?D(b):93===b?(a.consume(b),q):o(b)}function r(b){return null===b||62===b?D(b):aO(b)?(f=r,E(b)):(a.consume(b),r)}function s(b){return null===b?c(b):63===b?(a.consume(b),t):aO(b)?(f=s,E(b)):(a.consume(b),s)}function t(a){return 62===a?D(a):s(a)}function u(b){return aH(b)?(a.consume(b),v):c(b)}function v(b){return 45===b||aI(b)?(a.consume(b),v):function b(c){return aO(c)?(f=b,E(c)):aQ(c)?(a.consume(c),b):D(c)}(b)}function w(b){return 45===b||aI(b)?(a.consume(b),w):47===b||62===b||aP(b)?x(b):c(b)}function x(b){return 47===b?(a.consume(b),D):58===b||95===b||aH(b)?(a.consume(b),y):aO(b)?(f=x,E(b)):aQ(b)?(a.consume(b),x):D(b)}function y(b){return 45===b||46===b||58===b||95===b||aI(b)?(a.consume(b),y):function b(c){return 61===c?(a.consume(c),z):aO(c)?(f=b,E(c)):aQ(c)?(a.consume(c),b):x(c)}(b)}function z(b){return null===b||60===b||61===b||62===b||96===b?c(b):34===b||39===b?(a.consume(b),d=b,A):aO(b)?(f=z,E(b)):aQ(b)?(a.consume(b),z):(a.consume(b),B)}function A(b){return b===d?(a.consume(b),d=void 0,C):null===b?c(b):aO(b)?(f=A,E(b)):(a.consume(b),A)}function B(b){return null===b||34===b||39===b||60===b||61===b||96===b?c(b):47===b||62===b||aP(b)?x(b):(a.consume(b),B)}function C(a){return 47===a||62===a||aP(a)?x(a):c(a)}function D(d){return 62===d?(a.consume(d),a.exit("htmlTextData"),a.exit("htmlText"),b):c(d)}function E(b){return a.exit("htmlTextData"),a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),F}function F(b){return aQ(b)?aU(a,G,"linePrefix",g.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(b):G(b)}function G(b){return a.enter("htmlTextData"),f(b)}}}],91:bF,92:[{name:"hardBreakEscape",tokenize:function(a,b,c){return function(b){return a.enter("hardBreakEscape"),a.consume(b),d};function d(d){return aO(d)?(a.exit("hardBreakEscape"),b(d)):c(d)}}},bu],93:bx,95:bD,96:{name:"codeText",previous:function(a){return 96!==a||"characterEscape"===this.events[this.events.length-1][1].type},resolve:function(a){let b,c,d=a.length-4,e=3;if(("lineEnding"===a[3][1].type||"space"===a[e][1].type)&&("lineEnding"===a[d][1].type||"space"===a[d][1].type)){for(b=e;++b<d;)if("codeTextData"===a[b][1].type){a[e][1].type="codeTextPadding",a[d][1].type="codeTextPadding",e+=2,d-=2;break}}for(b=e-1,d++;++b<=d;)void 0===c?b!==d&&"lineEnding"!==a[b][1].type&&(c=b):(b===d||"lineEnding"===a[b][1].type)&&(a[c][1].type="codeTextData",b!==c+2&&(a[c][1].end=a[b-1][1].end,a.splice(c+2,b-c-2),d-=b-c-2,b=c+2),c=void 0);return a},tokenize:function(a,b,c){let d,e,f=0;return function(b){return a.enter("codeText"),a.enter("codeTextSequence"),function b(c){return 96===c?(a.consume(c),f++,b):(a.exit("codeTextSequence"),g(c))}(b)};function g(i){return null===i?c(i):32===i?(a.enter("space"),a.consume(i),a.exit("space"),g):96===i?(e=a.enter("codeTextSequence"),d=0,function c(g){return 96===g?(a.consume(g),d++,c):d===f?(a.exit("codeTextSequence"),a.exit("codeText"),b(g)):(e.type="codeTextData",h(g))}(i)):aO(i)?(a.enter("lineEnding"),a.consume(i),a.exit("lineEnding"),g):(a.enter("codeTextData"),h(i))}function h(b){return null===b||32===b||96===b||aO(b)?(a.exit("codeTextData"),g(b)):(a.consume(b),h)}}}},bM={null:[bD,a0]},bN={null:[42,95]},bO={null:[]},bP=/[\0\t\n\r]/g;function bQ(a,b){let c=Number.parseInt(a,b);return c<9||11===c||c>13&&c<32||c>126&&c<160||c>55295&&c<57344||c>64975&&c<65008||(65535&c)==65535||(65535&c)==65534||c>1114111?"�":String.fromCodePoint(c)}let bR=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function bS(a){return a.replace(bR,bT)}function bT(a,b,c){if(b)return b;if(35===c.charCodeAt(0)){let a=c.charCodeAt(1),b=120===a||88===a;return bQ(c.slice(b?2:1),b?16:10)}return bs(c)||a}let bU={}.hasOwnProperty;function bV(a){return{line:a.line,column:a.column,offset:a.offset}}function bW(a,b){if(a)throw Error("Cannot close `"+a.type+"` ("+$({start:a.start,end:a.end})+"): a different token (`"+b.type+"`, "+$({start:b.start,end:b.end})+") is open");throw Error("Cannot close document, a token (`"+b.type+"`, "+$({start:b.start,end:b.end})+") is still open")}function bX(a){let b=this;b.parser=function(c){var e,f;let g,h,i,j;return"object"==typeof(e={...b.data("settings"),...a,extensions:b.data("micromarkExtensions")||[],mdastExtensions:b.data("fromMarkdownExtensions")||[]})&&(f=e,e=void 0),(function(a){let b={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:d(r),autolinkProtocol:j,autolinkEmail:j,atxHeading:d(o),blockQuote:d(function(){return{type:"blockquote",children:[]}}),characterEscape:j,characterReference:j,codeFenced:d(n),codeFencedFenceInfo:e,codeFencedFenceMeta:e,codeIndented:d(n,e),codeText:d(function(){return{type:"inlineCode",value:""}},e),codeTextData:j,data:j,codeFlowValue:j,definition:d(function(){return{type:"definition",identifier:"",label:null,title:null,url:""}}),definitionDestinationString:e,definitionLabelString:e,definitionTitleString:e,emphasis:d(function(){return{type:"emphasis",children:[]}}),hardBreakEscape:d(p),hardBreakTrailing:d(p),htmlFlow:d(q,e),htmlFlowData:j,htmlText:d(q,e),htmlTextData:j,image:d(function(){return{type:"image",title:null,url:"",alt:null}}),label:e,link:d(r),listItem:d(function(a){return{type:"listItem",spread:a._spread,checked:null,children:[]}}),listItemValue:function(a){this.data.expectingFirstListItemValue&&(this.stack[this.stack.length-2].start=Number.parseInt(this.sliceSerialize(a),10),this.data.expectingFirstListItemValue=void 0)},listOrdered:d(s,function(){this.data.expectingFirstListItemValue=!0}),listUnordered:d(s),paragraph:d(function(){return{type:"paragraph",children:[]}}),reference:function(){this.data.referenceType="collapsed"},referenceString:e,resourceDestinationString:e,resourceTitleString:e,setextHeading:d(o),strong:d(function(){return{type:"strong",children:[]}}),thematicBreak:d(function(){return{type:"thematicBreak"}})},exit:{atxHeading:g(),atxHeadingSequence:function(a){let b=this.stack[this.stack.length-1];b.depth||(b.depth=this.sliceSerialize(a).length)},autolink:g(),autolinkEmail:function(a){k.call(this,a),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(a)},autolinkProtocol:function(a){k.call(this,a),this.stack[this.stack.length-1].url=this.sliceSerialize(a)},blockQuote:g(),characterEscapeValue:k,characterReferenceMarkerHexadecimal:m,characterReferenceMarkerNumeric:m,characterReferenceValue:function(a){let b,c=this.sliceSerialize(a),d=this.data.characterReferenceType;d?(b=bQ(c,"characterReferenceMarkerNumeric"===d?10:16),this.data.characterReferenceType=void 0):b=bs(c);let e=this.stack[this.stack.length-1];e.value+=b},characterReference:function(a){this.stack.pop().position.end=bV(a.end)},codeFenced:g(function(){let a=this.resume();this.stack[this.stack.length-1].value=a.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}),codeFencedFence:function(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)},codeFencedFenceInfo:function(){let a=this.resume();this.stack[this.stack.length-1].lang=a},codeFencedFenceMeta:function(){let a=this.resume();this.stack[this.stack.length-1].meta=a},codeFlowValue:k,codeIndented:g(function(){let a=this.resume();this.stack[this.stack.length-1].value=a.replace(/(\r?\n|\r)$/g,"")}),codeText:g(function(){let a=this.resume();this.stack[this.stack.length-1].value=a}),codeTextData:k,data:k,definition:g(),definitionDestinationString:function(){let a=this.resume();this.stack[this.stack.length-1].url=a},definitionLabelString:function(a){let b=this.resume(),c=this.stack[this.stack.length-1];c.label=b,c.identifier=bf(this.sliceSerialize(a)).toLowerCase()},definitionTitleString:function(){let a=this.resume();this.stack[this.stack.length-1].title=a},emphasis:g(),hardBreakEscape:g(l),hardBreakTrailing:g(l),htmlFlow:g(function(){let a=this.resume();this.stack[this.stack.length-1].value=a}),htmlFlowData:k,htmlText:g(function(){let a=this.resume();this.stack[this.stack.length-1].value=a}),htmlTextData:k,image:g(function(){let a=this.stack[this.stack.length-1];if(this.data.inReference){let b=this.data.referenceType||"shortcut";a.type+="Reference",a.referenceType=b,delete a.url,delete a.title}else delete a.identifier,delete a.label;this.data.referenceType=void 0}),label:function(){let a=this.stack[this.stack.length-1],b=this.resume(),c=this.stack[this.stack.length-1];this.data.inReference=!0,"link"===c.type?c.children=a.children:c.alt=b},labelText:function(a){let b=this.sliceSerialize(a),c=this.stack[this.stack.length-2];c.label=bS(b),c.identifier=bf(b).toLowerCase()},lineEnding:function(a){let c=this.stack[this.stack.length-1];if(this.data.atHardBreak){c.children[c.children.length-1].position.end=bV(a.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&b.canContainEols.includes(c.type)&&(j.call(this,a),k.call(this,a))},link:g(function(){let a=this.stack[this.stack.length-1];if(this.data.inReference){let b=this.data.referenceType||"shortcut";a.type+="Reference",a.referenceType=b,delete a.url,delete a.title}else delete a.identifier,delete a.label;this.data.referenceType=void 0}),listItem:g(),listOrdered:g(),listUnordered:g(),paragraph:g(),referenceString:function(a){let b=this.resume(),c=this.stack[this.stack.length-1];c.label=b,c.identifier=bf(this.sliceSerialize(a)).toLowerCase(),this.data.referenceType="full"},resourceDestinationString:function(){let a=this.resume();this.stack[this.stack.length-1].url=a},resourceTitleString:function(){let a=this.resume();this.stack[this.stack.length-1].title=a},resource:function(){this.data.inReference=void 0},setextHeading:g(function(){this.data.setextHeadingSlurpLineEnding=void 0}),setextHeadingLineSequence:function(a){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(a).codePointAt(0)?1:2},setextHeadingText:function(){this.data.setextHeadingSlurpLineEnding=!0},strong:g(),thematicBreak:g()}};!function a(b,c){let d=-1;for(;++d<c.length;){let e=c[d];Array.isArray(e)?a(b,e):function(a,b){let c;for(c in b)if(bU.call(b,c))switch(c){case"canContainEols":{let d=b[c];d&&a[c].push(...d);break}case"transforms":{let d=b[c];d&&a[c].push(...d);break}case"enter":case"exit":{let d=b[c];d&&Object.assign(a[c],d)}}}(b,e)}}(b,(a||{}).mdastExtensions||[]);let c={};return function(a){let d={type:"root",children:[]},g={stack:[d],tokenStack:[],config:b,enter:f,exit:h,buffer:e,resume:i,data:c},j=[],k=-1;for(;++k<a.length;)("listOrdered"===a[k][1].type||"listUnordered"===a[k][1].type)&&("enter"===a[k][0]?j.push(k):k=function(a,b,c){let d,e,f,g,h=b-1,i=-1,j=!1;for(;++h<=c;){let b=a[h];switch(b[1].type){case"listUnordered":case"listOrdered":case"blockQuote":"enter"===b[0]?i++:i--,g=void 0;break;case"lineEndingBlank":"enter"===b[0]&&(!d||g||i||f||(f=h),g=void 0);break;case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:g=void 0}if(!i&&"enter"===b[0]&&"listItemPrefix"===b[1].type||-1===i&&"exit"===b[0]&&("listUnordered"===b[1].type||"listOrdered"===b[1].type)){if(d){let g=h;for(e=void 0;g--;){let b=a[g];if("lineEnding"===b[1].type||"lineEndingBlank"===b[1].type){if("exit"===b[0])continue;e&&(a[e][1].type="lineEndingBlank",j=!0),b[1].type="lineEnding",e=g}else if("linePrefix"===b[1].type||"blockQuotePrefix"===b[1].type||"blockQuotePrefixWhitespace"===b[1].type||"blockQuoteMarker"===b[1].type||"listItemIndent"===b[1].type);else break}f&&(!e||f<e)&&(d._spread=!0),d.end=Object.assign({},e?a[e][1].start:b[1].end),a.splice(e||h,0,["exit",d,b[2]]),h++,c++}if("listItemPrefix"===b[1].type){let e={type:"listItem",_spread:!1,start:Object.assign({},b[1].start),end:void 0};d=e,a.splice(h,0,["enter",e,b[2]]),h++,c++,f=void 0,g=!0}}}return a[b][1]._spread=j,c}(a,j.pop(),k));for(k=-1;++k<a.length;){let c=b[a[k][0]];bU.call(c,a[k][1].type)&&c[a[k][1].type].call(Object.assign({sliceSerialize:a[k][2].sliceSerialize},g),a[k][1])}if(g.tokenStack.length>0){let a=g.tokenStack[g.tokenStack.length-1];(a[1]||bW).call(g,void 0,a[0])}for(d.position={start:bV(a.length>0?a[0][1].start:{line:1,column:1,offset:0}),end:bV(a.length>0?a[a.length-2][1].end:{line:1,column:1,offset:0})},k=-1;++k<b.transforms.length;)d=b.transforms[k](d)||d;return d};function d(a,b){return function(c){f.call(this,a(c),c),b&&b.call(this,c)}}function e(){this.stack.push({type:"fragment",children:[]})}function f(a,b,c){this.stack[this.stack.length-1].children.push(a),this.stack.push(a),this.tokenStack.push([b,c||void 0]),a.position={start:bV(b.start),end:void 0}}function g(a){return function(b){a&&a.call(this,b),h.call(this,b)}}function h(a,b){let c=this.stack.pop(),d=this.tokenStack.pop();if(d)d[0].type!==a.type&&(b?b.call(this,a,d[0]):(d[1]||bW).call(this,a,d[0]));else throw Error("Cannot close `"+a.type+"` ("+$({start:a.start,end:a.end})+"): it’s not open");c.position.end=bV(a.end)}function i(){return ax(this.stack.pop())}function j(a){let b=this.stack[this.stack.length-1].children,c=b[b.length-1];c&&"text"===c.type||((c={type:"text",value:""}).position={start:bV(a.start),end:void 0},b.push(c)),this.stack.push(c)}function k(a){let b=this.stack.pop();b.value+=this.sliceSerialize(a),b.position.end=bV(a.end)}function l(){this.data.atHardBreak=!0}function m(a){this.data.characterReferenceType=a.type}function n(){return{type:"code",lang:null,meta:null,value:""}}function o(){return{type:"heading",depth:0,children:[]}}function p(){return{type:"break"}}function q(){return{type:"html",value:""}}function r(){return{type:"link",title:null,url:"",children:[]}}function s(a){return{type:"list",ordered:"listOrdered"===a.type,start:null,spread:a._spread,children:[]}}})(f)(function(a){for(;!aE(a););return a}((function(a){let b={constructs:aG([d,...(a||{}).extensions||[]]),content:c(aV),defined:[],document:c(aW),flow:c(a_),lazy:{},string:c(a1),text:c(a2)};return b;function c(a){return function(c){return function(a,b,c){let d={_bufferIndex:-1,_index:0,line:c&&c.line||1,column:c&&c.column||1,offset:c&&c.offset||0},e={},f=[],g=[],h=[],i={attempt:o(function(a,b){p(a,b.from)}),check:o(n),consume:function(a){aO(a)?(d.line++,d.column=1,d.offset+=-3===a?2:1,q()):-1!==a&&(d.column++,d.offset++),d._bufferIndex<0?d._index++:(d._bufferIndex++,d._bufferIndex===g[d._index].length&&(d._bufferIndex=-1,d._index++)),j.previous=a},enter:function(a,b){let c=b||{};return c.type=a,c.start=m(),j.events.push(["enter",c,j]),h.push(c),c},exit:function(a){let b=h.pop();return b.end=m(),j.events.push(["exit",b,j]),b},interrupt:o(n,{interrupt:!0})},j={code:null,containerState:{},defineSkip:function(a){e[a.line]=a.column,q()},events:[],now:m,parser:a,previous:null,sliceSerialize:function(a,b){return function(a,b){let c,d=-1,e=[];for(;++d<a.length;){let f,g=a[d];if("string"==typeof g)f=g;else switch(g){case -5:f="\r";break;case -4:f="\n";break;case -3:f="\r\n";break;case -2:f=b?" ":" ";break;case -1:if(!b&&c)continue;f=" ";break;default:f=String.fromCharCode(g)}c=-2===g,e.push(f)}return e.join("")}(l(a),b)},sliceStream:l,write:function(a){return(g=aB(g,a),function(){let a;for(;d._index<g.length;){let c=g[d._index];if("string"==typeof c)for(a=d._index,d._bufferIndex<0&&(d._bufferIndex=0);d._index===a&&d._bufferIndex<c.length;){var b;b=c.charCodeAt(d._bufferIndex),k=k(b)}else k=k(c)}}(),null!==g[g.length-1])?[]:(p(b,0),j.events=bw(f,j.events,j),j.events)}},k=b.tokenize.call(j,i);return b.resolveAll&&f.push(b),j;function l(a){return function(a,b){let c,d=b.start._index,e=b.start._bufferIndex,f=b.end._index,g=b.end._bufferIndex;if(d===f)c=[a[d].slice(e,g)];else{if(c=a.slice(d,f),e>-1){let a=c[0];"string"==typeof a?c[0]=a.slice(e):c.shift()}g>0&&c.push(a[f].slice(0,g))}return c}(g,a)}function m(){let{_bufferIndex:a,_index:b,line:c,column:e,offset:f}=d;return{_bufferIndex:a,_index:b,line:c,column:e,offset:f}}function n(a,b){b.restore()}function o(a,b){return function(c,e,f){var g;let k,l,n,o;return Array.isArray(c)?p(c):"tokenize"in c?p([c]):(g=c,function(a){let b=null!==a&&g[a],c=null!==a&&g.null;return p([...Array.isArray(b)?b:b?[b]:[],...Array.isArray(c)?c:c?[c]:[]])(a)});function p(a){return(k=a,l=0,0===a.length)?f:r(a[l])}function r(a){return function(c){return(o=function(){let a=m(),b=j.previous,c=j.currentConstruct,e=j.events.length,f=Array.from(h);return{from:e,restore:function(){d=a,j.previous=b,j.currentConstruct=c,j.events.length=e,h=f,q()}}}(),n=a,a.partial||(j.currentConstruct=a),a.name&&j.parser.constructs.disable.null.includes(a.name))?t(c):a.tokenize.call(b?Object.assign(Object.create(j),b):j,i,s,t)(c)}}function s(b){return a(n,o),e}function t(a){return(o.restore(),++l<k.length)?r(k[l]):f}}}function p(a,b){a.resolveAll&&!f.includes(a)&&f.push(a),a.resolve&&aA(j.events,b,j.events.length-b,a.resolve(j.events.slice(b),j)),a.resolveTo&&(j.events=a.resolveTo(j.events,j))}function q(){d.line in e&&d.column<2&&(d.column=e[d.line],d.offset+=e[d.line]-1)}}(b,a,c)}}})(f).document().write((h=1,i="",j=!0,function(a,b,c){let d,e,f,k,l,m=[];for(a=i+("string"==typeof a?a.toString():new TextDecoder(b||void 0).decode(a)),f=0,i="",j&&(65279===a.charCodeAt(0)&&f++,j=void 0);f<a.length;){if(bP.lastIndex=f,k=(d=bP.exec(a))&&void 0!==d.index?d.index:a.length,l=a.charCodeAt(k),!d){i=a.slice(f);break}if(10===l&&f===k&&g)m.push(-3),g=void 0;else switch(g&&(m.push(-5),g=void 0),f<k&&(m.push(a.slice(f,k)),h+=k-f),l){case 0:m.push(65533),h++;break;case 9:for(e=4*Math.ceil(h/4),m.push(-2);h++<e;)m.push(-1);break;case 10:m.push(-4),h=1;break;default:g=!0,h=1}f=k+1}return c&&(g&&m.push(-5),i&&m.push(i),m.push(null)),m})(c,e,!0))))}}function bY(a,b){let c=String(a);if("string"!=typeof b)throw TypeError("Expected character");let d=0,e=c.indexOf(b);for(;-1!==e;)d++,e=c.indexOf(b,e+b.length);return d}let bZ=function(a){var b,c;if(null==a)return b_;if("function"==typeof a)return b$(a);if("object"==typeof a){return Array.isArray(a)?function(a){let b=[],c=-1;for(;++c<a.length;)b[c]=bZ(a[c]);return b$(function(...a){let c=-1;for(;++c<b.length;)if(b[c].apply(this,a))return!0;return!1})}(a):(b=a,b$(function(a){let c;for(c in b)if(a[c]!==b[c])return!1;return!0}))}if("string"==typeof a){return c=a,b$(function(a){return a&&a.type===c})}throw Error("Expected function, string, or object as test")};function b$(a){return function(b,c,d){return!!(function(a){return null!==a&&"object"==typeof a&&"type"in a}(b)&&a.call(this,b,"number"==typeof c?c:void 0,d||void 0))}}function b_(){return!0}let b0=[];function b1(a,b,c,d){let e;"function"==typeof b&&"function"!=typeof c?(d=c,c=b):e=b;let f=bZ(e),g=d?-1:1;(function a(e,h,i){let j=e&&"object"==typeof e?e:{};if("string"==typeof j.type){let a="string"==typeof j.tagName?j.tagName:"string"==typeof j.name?j.name:void 0;Object.defineProperty(k,"name",{value:"node (\x1b[33m"+e.type+(a?"<"+a+">":"")+"\x1b[39m)"})}return k;function k(){var j;let k,l,m,n=b0;if((!b||f(e,h,i[i.length-1]||void 0))&&!1===(n=Array.isArray(j=c(e,i))?j:"number"==typeof j?[!0,j]:null==j?b0:[j])[0])return n;if("children"in e&&e.children&&e.children&&"skip"!==n[0])for(l=(d?e.children.length:-1)+g,m=i.concat(e);l>-1&&l<e.children.length;){if(!1===(k=a(e.children[l],l,m)())[0])return k;l="number"==typeof k[1]?k[1]:l+g}return n}})(a,void 0,[])()}let b2="phrasing",b3=["autolink","link","image","label"];function b4(a){this.enter({type:"link",title:null,url:"",children:[]},a)}function b5(a){this.config.enter.autolinkProtocol.call(this,a)}function b6(a){this.config.exit.autolinkProtocol.call(this,a)}function b7(a){this.config.exit.data.call(this,a);let b=this.stack[this.stack.length-1];b.type,b.url="http://"+this.sliceSerialize(a)}function b8(a){this.config.exit.autolinkEmail.call(this,a)}function b9(a){this.exit(a)}function ca(a){!function(a,b,c){let d=bZ((c||{}).ignore||[]),e=function(a){let b=[];if(!Array.isArray(a))throw TypeError("Expected find and replace tuple or list of tuples");let c=!a[0]||Array.isArray(a[0])?a:[a],d=-1;for(;++d<c.length;){var e;let a=c[d];b.push(["string"==typeof(e=a[0])?RegExp(function(a){if("string"!=typeof a)throw TypeError("Expected a string");return a.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}(e),"g"):e,function(a){return"function"==typeof a?a:function(){return a}}(a[1])])}return b}(b),f=-1;for(;++f<e.length;)b1(a,"text",g);function g(a,b){let c,g=-1;for(;++g<b.length;){let a=b[g],e=c?c.children:void 0;if(d(a,e?e.indexOf(a):void 0,c))return;c=a}if(c)return function(a,b){let c=b[b.length-1],d=e[f][0],g=e[f][1],h=0,i=c.children.indexOf(a),j=!1,k=[];d.lastIndex=0;let l=d.exec(a.value);for(;l;){let c=l.index,e={index:l.index,input:l.input,stack:[...b,a]},f=g(...l,e);if("string"==typeof f&&(f=f.length>0?{type:"text",value:f}:void 0),!1===f?d.lastIndex=c+1:(h!==c&&k.push({type:"text",value:a.value.slice(h,c)}),Array.isArray(f)?k.push(...f):f&&k.push(f),h=c+l[0].length,j=!0),!d.global)break;l=d.exec(a.value)}return j?(h<a.value.length&&k.push({type:"text",value:a.value.slice(h)}),c.children.splice(i,1,...k)):k=[a],i+k.length}(a,b)}}(a,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,cb],[/(?<=^|\s|\p{P}|\p{S})([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/gu,cc]],{ignore:["link","linkReference"]})}function cb(a,b,c,d,e){let f="";if(!cd(e)||(/^w/i.test(b)&&(c=b+c,b="",f="http://"),!function(a){let b=a.split(".");return!(b.length<2||b[b.length-1]&&(/_/.test(b[b.length-1])||!/[a-zA-Z\d]/.test(b[b.length-1]))||b[b.length-2]&&(/_/.test(b[b.length-2])||!/[a-zA-Z\d]/.test(b[b.length-2])))}(c)))return!1;let g=function(a){let b=/[!"&'),.:;<>?\]}]+$/.exec(a);if(!b)return[a,void 0];a=a.slice(0,b.index);let c=b[0],d=c.indexOf(")"),e=bY(a,"("),f=bY(a,")");for(;-1!==d&&e>f;)a+=c.slice(0,d+1),d=(c=c.slice(d+1)).indexOf(")"),f++;return[a,c]}(c+d);if(!g[0])return!1;let h={type:"link",title:null,url:f+b+g[0],children:[{type:"text",value:b+g[0]}]};return g[1]?[h,{type:"text",value:g[1]}]:h}function cc(a,b,c,d){return!(!cd(d,!0)||/[-\d_]$/.test(c))&&{type:"link",title:null,url:"mailto:"+b+"@"+c,children:[{type:"text",value:b+"@"+c}]}}function cd(a,b){let c=a.input.charCodeAt(a.index-1);return(0===a.index||aS(c)||aR(c))&&(!b||47!==c)}function ce(){this.buffer()}function cf(a){this.enter({type:"footnoteReference",identifier:"",label:""},a)}function cg(){this.buffer()}function ch(a){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},a)}function ci(a){let b=this.resume(),c=this.stack[this.stack.length-1];c.type,c.identifier=bf(this.sliceSerialize(a)).toLowerCase(),c.label=b}function cj(a){this.exit(a)}function ck(a){let b=this.resume(),c=this.stack[this.stack.length-1];c.type,c.identifier=bf(this.sliceSerialize(a)).toLowerCase(),c.label=b}function cl(a){this.exit(a)}function cm(a,b,c,d){let e=c.createTracker(d),f=e.move("[^"),g=c.enter("footnoteReference"),h=c.enter("reference");return f+=e.move(c.safe(c.associationId(a),{after:"]",before:f})),h(),g(),f+=e.move("]")}function cn(a,b,c){return 0===b?a:co(a,b,c)}function co(a,b,c){return(c?"":" ")+a}cm.peek=function(){return"["};let cp=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];function cq(a){this.enter({type:"delete",children:[]},a)}function cr(a){this.exit(a)}function cs(a,b,c,d){let e=c.createTracker(d),f=c.enter("strikethrough"),g=e.move("~~");return g+=c.containerPhrasing(a,{...e.current(),before:g,after:"~"}),g+=e.move("~~"),f(),g}function ct(a){return a.length}function cu(a){let b="string"==typeof a?a.codePointAt(0):0;return 67===b||99===b?99:76===b||108===b?108:114*(82===b||114===b)}function cv(a,b,c){return">"+(c?"":" ")+a}function cw(a,b){return cx(a,b.inConstruct,!0)&&!cx(a,b.notInConstruct,!1)}function cx(a,b,c){if("string"==typeof b&&(b=[b]),!b||0===b.length)return c;let d=-1;for(;++d<b.length;)if(a.includes(b[d]))return!0;return!1}function cy(a,b,c,d){let e=-1;for(;++e<c.unsafe.length;)if("\n"===c.unsafe[e].character&&cw(c.stack,c.unsafe[e]))return/[ \t]/.test(d.before)?"":" ";return"\\\n"}function cz(a,b){return!!(!1===b.options.fences&&a.value&&!a.lang&&/[^ \r\n]/.test(a.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(a.value))}function cA(a,b,c){return(c?"":" ")+a}function cB(a){let b=a.options.quote||'"';if('"'!==b&&"'"!==b)throw Error("Cannot serialize title with `"+b+"` for `options.quote`, expected `\"`, or `'`");return b}function cC(a){return"&#x"+a.toString(16).toUpperCase()+";"}function cD(a,b,c){let d=bC(a),e=bC(b);return void 0===d?void 0===e?"_"===c?{inside:!0,outside:!0}:{inside:!1,outside:!1}:1===e?{inside:!0,outside:!0}:{inside:!1,outside:!0}:1===d?void 0===e?{inside:!1,outside:!1}:1===e?{inside:!0,outside:!0}:{inside:!1,outside:!1}:void 0===e?{inside:!1,outside:!1}:1===e?{inside:!0,outside:!1}:{inside:!1,outside:!1}}function cE(a,b,c,d){let e=function(a){let b=a.options.emphasis||"*";if("*"!==b&&"_"!==b)throw Error("Cannot serialize emphasis with `"+b+"` for `options.emphasis`, expected `*`, or `_`");return b}(c),f=c.enter("emphasis"),g=c.createTracker(d),h=g.move(e),i=g.move(c.containerPhrasing(a,{after:e,before:h,...g.current()})),j=i.charCodeAt(0),k=cD(d.before.charCodeAt(d.before.length-1),j,e);k.inside&&(i=cC(j)+i.slice(1));let l=i.charCodeAt(i.length-1),m=cD(d.after.charCodeAt(0),l,e);m.inside&&(i=i.slice(0,-1)+cC(l));let n=g.move(e);return f(),c.attentionEncodeSurroundingInfo={after:m.outside,before:k.outside},h+i+n}function cF(a,b,c,d){let e,f,g;"function"==typeof b&&"function"!=typeof c?(f=void 0,g=b,e=c):(f=b,g=c,e=d),b1(a,f,function(a,b){let c=b[b.length-1],d=c?c.children.indexOf(a):void 0;return g(a,d,c)},e)}function cG(a,b){let c=!1;return cF(a,function(a){if("value"in a&&/\r?\n|\r/.test(a.value)||"break"===a.type)return c=!0,!1}),!!((!a.depth||a.depth<3)&&ax(a)&&(b.options.setext||c))}function cH(a){return a.value||""}function cI(a,b,c,d){let e=cB(c),f='"'===e?"Quote":"Apostrophe",g=c.enter("image"),h=c.enter("label"),i=c.createTracker(d),j=i.move("![");return j+=i.move(c.safe(a.alt,{before:j,after:"]",...i.current()})),j+=i.move("]("),h(),!a.url&&a.title||/[\0- \u007F]/.test(a.url)?(h=c.enter("destinationLiteral"),j+=i.move("<"),j+=i.move(c.safe(a.url,{before:j,after:">",...i.current()})),j+=i.move(">")):(h=c.enter("destinationRaw"),j+=i.move(c.safe(a.url,{before:j,after:a.title?" ":")",...i.current()}))),h(),a.title&&(h=c.enter(`title${f}`),j+=i.move(" "+e),j+=i.move(c.safe(a.title,{before:j,after:e,...i.current()})),j+=i.move(e),h()),j+=i.move(")"),g(),j}function cJ(a,b,c,d){let e=a.referenceType,f=c.enter("imageReference"),g=c.enter("label"),h=c.createTracker(d),i=h.move("!["),j=c.safe(a.alt,{before:i,after:"]",...h.current()});i+=h.move(j+"]["),g();let k=c.stack;c.stack=[],g=c.enter("reference");let l=c.safe(c.associationId(a),{before:i,after:"]",...h.current()});return g(),c.stack=k,f(),"full"!==e&&j&&j===l?"shortcut"===e?i=i.slice(0,-1):i+=h.move("]"):i+=h.move(l+"]"),i}function cK(a,b,c){let d=a.value||"",e="`",f=-1;for(;RegExp("(^|[^`])"+e+"([^`]|$)").test(d);)e+="`";for(/[^ \r\n]/.test(d)&&(/^[ \r\n]/.test(d)&&/[ \r\n]$/.test(d)||/^`|`$/.test(d))&&(d=" "+d+" ");++f<c.unsafe.length;){let a,b=c.unsafe[f],e=c.compilePattern(b);if(b.atBreak)for(;a=e.exec(d);){let b=a.index;10===d.charCodeAt(b)&&13===d.charCodeAt(b-1)&&b--,d=d.slice(0,b)+" "+d.slice(a.index+1)}}return e+d+e}function cL(a,b){let c=ax(a);return!!(!b.options.resourceLink&&a.url&&!a.title&&a.children&&1===a.children.length&&"text"===a.children[0].type&&(c===a.url||"mailto:"+c===a.url)&&/^[a-z][a-z+.-]+:/i.test(a.url)&&!/[\0- <>\u007F]/.test(a.url))}function cM(a,b,c,d){let e,f,g=cB(c),h='"'===g?"Quote":"Apostrophe",i=c.createTracker(d);if(cL(a,c)){let b=c.stack;c.stack=[],e=c.enter("autolink");let d=i.move("<");return d+=i.move(c.containerPhrasing(a,{before:d,after:">",...i.current()})),d+=i.move(">"),e(),c.stack=b,d}e=c.enter("link"),f=c.enter("label");let j=i.move("[");return j+=i.move(c.containerPhrasing(a,{before:j,after:"](",...i.current()})),j+=i.move("]("),f(),!a.url&&a.title||/[\0- \u007F]/.test(a.url)?(f=c.enter("destinationLiteral"),j+=i.move("<"),j+=i.move(c.safe(a.url,{before:j,after:">",...i.current()})),j+=i.move(">")):(f=c.enter("destinationRaw"),j+=i.move(c.safe(a.url,{before:j,after:a.title?" ":")",...i.current()}))),f(),a.title&&(f=c.enter(`title${h}`),j+=i.move(" "+g),j+=i.move(c.safe(a.title,{before:j,after:g,...i.current()})),j+=i.move(g),f()),j+=i.move(")"),e(),j}function cN(a,b,c,d){let e=a.referenceType,f=c.enter("linkReference"),g=c.enter("label"),h=c.createTracker(d),i=h.move("["),j=c.containerPhrasing(a,{before:i,after:"]",...h.current()});i+=h.move(j+"]["),g();let k=c.stack;c.stack=[],g=c.enter("reference");let l=c.safe(c.associationId(a),{before:i,after:"]",...h.current()});return g(),c.stack=k,f(),"full"!==e&&j&&j===l?"shortcut"===e?i=i.slice(0,-1):i+=h.move("]"):i+=h.move(l+"]"),i}function cO(a){let b=a.options.bullet||"*";if("*"!==b&&"+"!==b&&"-"!==b)throw Error("Cannot serialize items with `"+b+"` for `options.bullet`, expected `*`, `+`, or `-`");return b}function cP(a){let b=a.options.rule||"*";if("*"!==b&&"-"!==b&&"_"!==b)throw Error("Cannot serialize rules with `"+b+"` for `options.rule`, expected `*`, `-`, or `_`");return b}cs.peek=function(){return"~"},cE.peek=function(a,b,c){return c.options.emphasis||"*"},cH.peek=function(){return"<"},cI.peek=function(){return"!"},cJ.peek=function(){return"!"},cK.peek=function(){return"`"},cM.peek=function(a,b,c){return cL(a,c)?"<":"["},cN.peek=function(){return"["};let cQ=bZ(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function cR(a,b,c,d){let e=function(a){let b=a.options.strong||"*";if("*"!==b&&"_"!==b)throw Error("Cannot serialize strong with `"+b+"` for `options.strong`, expected `*`, or `_`");return b}(c),f=c.enter("strong"),g=c.createTracker(d),h=g.move(e+e),i=g.move(c.containerPhrasing(a,{after:e,before:h,...g.current()})),j=i.charCodeAt(0),k=cD(d.before.charCodeAt(d.before.length-1),j,e);k.inside&&(i=cC(j)+i.slice(1));let l=i.charCodeAt(i.length-1),m=cD(d.after.charCodeAt(0),l,e);m.inside&&(i=i.slice(0,-1)+cC(l));let n=g.move(e+e);return f(),c.attentionEncodeSurroundingInfo={after:m.outside,before:k.outside},h+i+n}cR.peek=function(a,b,c){return c.options.strong||"*"};let cS={blockquote:function(a,b,c,d){let e=c.enter("blockquote"),f=c.createTracker(d);f.move("> "),f.shift(2);let g=c.indentLines(c.containerFlow(a,f.current()),cv);return e(),g},break:cy,code:function(a,b,c,d){let e=function(a){let b=a.options.fence||"`";if("`"!==b&&"~"!==b)throw Error("Cannot serialize code with `"+b+"` for `options.fence`, expected `` ` `` or `~`");return b}(c),f=a.value||"",g="`"===e?"GraveAccent":"Tilde";if(cz(a,c)){let a=c.enter("codeIndented"),b=c.indentLines(f,cA);return a(),b}let h=c.createTracker(d),i=e.repeat(Math.max(function(a,b){let c=String(a),d=c.indexOf(b),e=d,f=0,g=0;if("string"!=typeof b)throw TypeError("Expected substring");for(;-1!==d;)d===e?++f>g&&(g=f):f=1,e=d+b.length,d=c.indexOf(b,e);return g}(f,e)+1,3)),j=c.enter("codeFenced"),k=h.move(i);if(a.lang){let b=c.enter(`codeFencedLang${g}`);k+=h.move(c.safe(a.lang,{before:k,after:" ",encode:["`"],...h.current()})),b()}if(a.lang&&a.meta){let b=c.enter(`codeFencedMeta${g}`);k+=h.move(" "),k+=h.move(c.safe(a.meta,{before:k,after:"\n",encode:["`"],...h.current()})),b()}return k+=h.move("\n"),f&&(k+=h.move(f+"\n")),k+=h.move(i),j(),k},definition:function(a,b,c,d){let e=cB(c),f='"'===e?"Quote":"Apostrophe",g=c.enter("definition"),h=c.enter("label"),i=c.createTracker(d),j=i.move("[");return j+=i.move(c.safe(c.associationId(a),{before:j,after:"]",...i.current()})),j+=i.move("]: "),h(),!a.url||/[\0- \u007F]/.test(a.url)?(h=c.enter("destinationLiteral"),j+=i.move("<"),j+=i.move(c.safe(a.url,{before:j,after:">",...i.current()})),j+=i.move(">")):(h=c.enter("destinationRaw"),j+=i.move(c.safe(a.url,{before:j,after:a.title?" ":"\n",...i.current()}))),h(),a.title&&(h=c.enter(`title${f}`),j+=i.move(" "+e),j+=i.move(c.safe(a.title,{before:j,after:e,...i.current()})),j+=i.move(e),h()),g(),j},emphasis:cE,hardBreak:cy,heading:function(a,b,c,d){let e=Math.max(Math.min(6,a.depth||1),1),f=c.createTracker(d);if(cG(a,c)){let b=c.enter("headingSetext"),d=c.enter("phrasing"),g=c.containerPhrasing(a,{...f.current(),before:"\n",after:"\n"});return d(),b(),g+"\n"+(1===e?"=":"-").repeat(g.length-(Math.max(g.lastIndexOf("\r"),g.lastIndexOf("\n"))+1))}let g="#".repeat(e),h=c.enter("headingAtx"),i=c.enter("phrasing");f.move(g+" ");let j=c.containerPhrasing(a,{before:"# ",after:"\n",...f.current()});return/^[\t ]/.test(j)&&(j=cC(j.charCodeAt(0))+j.slice(1)),j=j?g+" "+j:g,c.options.closeAtx&&(j+=" "+g),i(),h(),j},html:cH,image:cI,imageReference:cJ,inlineCode:cK,link:cM,linkReference:cN,list:function(a,b,c,d){let e=c.enter("list"),f=c.bulletCurrent,g=a.ordered?function(a){let b=a.options.bulletOrdered||".";if("."!==b&&")"!==b)throw Error("Cannot serialize items with `"+b+"` for `options.bulletOrdered`, expected `.` or `)`");return b}(c):cO(c),h=a.ordered?"."===g?")":".":function(a){let b=cO(a),c=a.options.bulletOther;if(!c)return"*"===b?"-":"*";if("*"!==c&&"+"!==c&&"-"!==c)throw Error("Cannot serialize items with `"+c+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(c===b)throw Error("Expected `bullet` (`"+b+"`) and `bulletOther` (`"+c+"`) to be different");return c}(c),i=!!b&&!!c.bulletLastUsed&&g===c.bulletLastUsed;if(!a.ordered){let b=a.children?a.children[0]:void 0;if("*"!==g&&"-"!==g||!b||b.children&&b.children[0]||"list"!==c.stack[c.stack.length-1]||"listItem"!==c.stack[c.stack.length-2]||"list"!==c.stack[c.stack.length-3]||"listItem"!==c.stack[c.stack.length-4]||0!==c.indexStack[c.indexStack.length-1]||0!==c.indexStack[c.indexStack.length-2]||0!==c.indexStack[c.indexStack.length-3]||(i=!0),cP(c)===g&&b){let b=-1;for(;++b<a.children.length;){let c=a.children[b];if(c&&"listItem"===c.type&&c.children&&c.children[0]&&"thematicBreak"===c.children[0].type){i=!0;break}}}}i&&(g=h),c.bulletCurrent=g;let j=c.containerFlow(a,d);return c.bulletLastUsed=g,c.bulletCurrent=f,e(),j},listItem:function(a,b,c,d){let e=function(a){let b=a.options.listItemIndent||"one";if("tab"!==b&&"one"!==b&&"mixed"!==b)throw Error("Cannot serialize items with `"+b+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return b}(c),f=c.bulletCurrent||cO(c);b&&"list"===b.type&&b.ordered&&(f=("number"==typeof b.start&&b.start>-1?b.start:1)+(!1===c.options.incrementListMarker?0:b.children.indexOf(a))+f);let g=f.length+1;("tab"===e||"mixed"===e&&(b&&"list"===b.type&&b.spread||a.spread))&&(g=4*Math.ceil(g/4));let h=c.createTracker(d);h.move(f+" ".repeat(g-f.length)),h.shift(g);let i=c.enter("listItem"),j=c.indentLines(c.containerFlow(a,h.current()),function(a,b,c){return b?(c?"":" ".repeat(g))+a:(c?f:f+" ".repeat(g-f.length))+a});return i(),j},paragraph:function(a,b,c,d){let e=c.enter("paragraph"),f=c.enter("phrasing"),g=c.containerPhrasing(a,d);return f(),e(),g},root:function(a,b,c,d){return(a.children.some(function(a){return cQ(a)})?c.containerPhrasing:c.containerFlow).call(c,a,d)},strong:cR,text:function(a,b,c,d){return c.safe(a.value,d)},thematicBreak:function(a,b,c){let d=(cP(c)+(c.options.ruleSpaces?" ":"")).repeat(function(a){let b=a.options.ruleRepetition||3;if(b<3)throw Error("Cannot serialize rules with repetition `"+b+"` for `options.ruleRepetition`, expected `3` or more");return b}(c));return c.options.ruleSpaces?d.slice(0,-1):d}};function cT(a){let b=a._align;this.enter({type:"table",align:b.map(function(a){return"none"===a?null:a}),children:[]},a),this.data.inTable=!0}function cU(a){this.exit(a),this.data.inTable=void 0}function cV(a){this.enter({type:"tableRow",children:[]},a)}function cW(a){this.exit(a)}function cX(a){this.enter({type:"tableCell",children:[]},a)}function cY(a){let b=this.resume();this.data.inTable&&(b=b.replace(/\\([\\|])/g,cZ));let c=this.stack[this.stack.length-1];c.type,c.value=b,this.exit(a)}function cZ(a,b){return"|"===b?b:a}function c$(a){let b=this.stack[this.stack.length-2];b.type,b.checked="taskListCheckValueChecked"===a.type}function c_(a){let b=this.stack[this.stack.length-2];if(b&&"listItem"===b.type&&"boolean"==typeof b.checked){let a=this.stack[this.stack.length-1];a.type;let c=a.children[0];if(c&&"text"===c.type){let d,e=b.children,f=-1;for(;++f<e.length;){let a=e[f];if("paragraph"===a.type){d=a;break}}d===a&&(c.value=c.value.slice(1),0===c.value.length?a.children.shift():a.position&&c.position&&"number"==typeof c.position.start.offset&&(c.position.start.column++,c.position.start.offset++,a.position.start=Object.assign({},c.position.start)))}}this.exit(a)}function c0(a,b,c,d){let e=a.children[0],f="boolean"==typeof a.checked&&e&&"paragraph"===e.type,g="["+(a.checked?"x":" ")+"] ",h=c.createTracker(d);f&&h.move(g);let i=cS.listItem(a,b,c,{...d,...h.current()});return f&&(i=i.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,function(a){return a+g})),i}let c1={tokenize:function(a,b,c){let d=0;return function b(f){return(87===f||119===f)&&d<3?(d++,a.consume(f),b):46===f&&3===d?(a.consume(f),e):c(f)};function e(a){return null===a?c(a):b(a)}},partial:!0},c2={tokenize:function(a,b,c){let d,e,f;return g;function g(b){return 46===b||95===b?a.check(c4,i,h)(b):null===b||aP(b)||aS(b)||45!==b&&aR(b)?i(b):(f=!0,a.consume(b),g)}function h(b){return 95===b?d=!0:(e=d,d=void 0),a.consume(b),g}function i(a){return e||d||!f?c(a):b(a)}},partial:!0},c3={tokenize:function(a,b){let c=0,d=0;return e;function e(g){return 40===g?(c++,a.consume(g),e):41===g&&d<c?f(g):33===g||34===g||38===g||39===g||41===g||42===g||44===g||46===g||58===g||59===g||60===g||63===g||93===g||95===g||126===g?a.check(c4,b,f)(g):null===g||aP(g)||aS(g)?b(g):(a.consume(g),e)}function f(b){return 41===b&&d++,a.consume(b),e}},partial:!0},c4={tokenize:function(a,b,c){return d;function d(g){return 33===g||34===g||39===g||41===g||42===g||44===g||46===g||58===g||59===g||63===g||95===g||126===g?(a.consume(g),d):38===g?(a.consume(g),f):93===g?(a.consume(g),e):60===g||null===g||aP(g)||aS(g)?b(g):c(g)}function e(a){return null===a||40===a||91===a||aP(a)||aS(a)?b(a):d(a)}function f(b){return aH(b)?function b(e){return 59===e?(a.consume(e),d):aH(e)?(a.consume(e),b):c(e)}(b):c(b)}},partial:!0},c5={tokenize:function(a,b,c){return function(b){return a.consume(b),d};function d(a){return aI(a)?c(a):b(a)}},partial:!0},c6={name:"wwwAutolink",tokenize:function(a,b,c){let d=this;return function(b){return 87!==b&&119!==b||!db.call(d,d.previous)||df(d.events)?c(b):(a.enter("literalAutolink"),a.enter("literalAutolinkWww"),a.check(c1,a.attempt(c2,a.attempt(c3,e),c),c)(b))};function e(c){return a.exit("literalAutolinkWww"),a.exit("literalAutolink"),b(c)}},previous:db},c7={name:"protocolAutolink",tokenize:function(a,b,c){let d=this,e="",f=!1;return function(b){return(72===b||104===b)&&dc.call(d,d.previous)&&!df(d.events)?(a.enter("literalAutolink"),a.enter("literalAutolinkHttp"),e+=String.fromCodePoint(b),a.consume(b),g):c(b)};function g(b){if(aH(b)&&e.length<5)return e+=String.fromCodePoint(b),a.consume(b),g;if(58===b){let c=e.toLowerCase();if("http"===c||"https"===c)return a.consume(b),h}return c(b)}function h(b){return 47===b?(a.consume(b),f)?i:(f=!0,h):c(b)}function i(b){return null===b||aK(b)||aP(b)||aS(b)||aR(b)?c(b):a.attempt(c2,a.attempt(c3,j),c)(b)}function j(c){return a.exit("literalAutolinkHttp"),a.exit("literalAutolink"),b(c)}},previous:dc},c8={name:"emailAutolink",tokenize:function(a,b,c){let d,e,f=this;return function(b){return!de(b)||!dd.call(f,f.previous)||df(f.events)?c(b):(a.enter("literalAutolink"),a.enter("literalAutolinkEmail"),function b(d){return de(d)?(a.consume(d),b):64===d?(a.consume(d),g):c(d)}(b))};function g(b){return 46===b?a.check(c5,i,h)(b):45===b||95===b||aI(b)?(e=!0,a.consume(b),g):i(b)}function h(b){return a.consume(b),d=!0,g}function i(g){return e&&d&&aH(f.previous)?(a.exit("literalAutolinkEmail"),a.exit("literalAutolink"),b(g)):c(g)}},previous:dd},c9={},da=48;for(;da<123;)c9[da]=c8,58==++da?da=65:91===da&&(da=97);function db(a){return null===a||40===a||42===a||95===a||91===a||93===a||126===a||aP(a)}function dc(a){return!aH(a)}function dd(a){return!(47===a||de(a))}function de(a){return 43===a||45===a||46===a||95===a||aI(a)}function df(a){let b=a.length,c=!1;for(;b--;){let d=a[b][1];if(("labelLink"===d.type||"labelImage"===d.type)&&!d._balanced){c=!0;break}if(d._gfmAutolinkLiteralWalkedInto){c=!1;break}}return a.length>0&&!c&&(a[a.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),c}c9[43]=c8,c9[45]=c8,c9[46]=c8,c9[95]=c8,c9[72]=[c8,c7],c9[104]=[c8,c7],c9[87]=[c8,c6],c9[119]=[c8,c6];let dg={tokenize:function(a,b,c){let d=this;return aU(a,function(a){let e=d.events[d.events.length-1];return e&&"gfmFootnoteDefinitionIndent"===e[1].type&&4===e[2].sliceSerialize(e[1],!0).length?b(a):c(a)},"gfmFootnoteDefinitionIndent",5)},partial:!0};function dh(a,b,c){let d,e=this,f=e.events.length,g=e.parser.gfmFootnotes||(e.parser.gfmFootnotes=[]);for(;f--;){let a=e.events[f][1];if("labelImage"===a.type){d=a;break}if("gfmFootnoteCall"===a.type||"labelLink"===a.type||"label"===a.type||"image"===a.type||"link"===a.type)break}return function(f){if(!d||!d._balanced)return c(f);let h=bf(e.sliceSerialize({start:d.end,end:e.now()}));return 94===h.codePointAt(0)&&g.includes(h.slice(1))?(a.enter("gfmFootnoteCallLabelMarker"),a.consume(f),a.exit("gfmFootnoteCallLabelMarker"),b(f)):c(f)}}function di(a,b){let c=a.length;for(;c--;)if("labelImage"===a[c][1].type&&"enter"===a[c][0]){a[c][1];break}a[c+1][1].type="data",a[c+3][1].type="gfmFootnoteCallLabelMarker";let d={type:"gfmFootnoteCall",start:Object.assign({},a[c+3][1].start),end:Object.assign({},a[a.length-1][1].end)},e={type:"gfmFootnoteCallMarker",start:Object.assign({},a[c+3][1].end),end:Object.assign({},a[c+3][1].end)};e.end.column++,e.end.offset++,e.end._bufferIndex++;let f={type:"gfmFootnoteCallString",start:Object.assign({},e.end),end:Object.assign({},a[a.length-1][1].start)},g={type:"chunkString",contentType:"string",start:Object.assign({},f.start),end:Object.assign({},f.end)},h=[a[c+1],a[c+2],["enter",d,b],a[c+3],a[c+4],["enter",e,b],["exit",e,b],["enter",f,b],["enter",g,b],["exit",g,b],["exit",f,b],a[a.length-2],a[a.length-1],["exit",d,b]];return a.splice(c,a.length-c+1,...h),a}function dj(a,b,c){let d,e=this,f=e.parser.gfmFootnotes||(e.parser.gfmFootnotes=[]),g=0;return function(b){return a.enter("gfmFootnoteCall"),a.enter("gfmFootnoteCallLabelMarker"),a.consume(b),a.exit("gfmFootnoteCallLabelMarker"),h};function h(b){return 94!==b?c(b):(a.enter("gfmFootnoteCallMarker"),a.consume(b),a.exit("gfmFootnoteCallMarker"),a.enter("gfmFootnoteCallString"),a.enter("chunkString").contentType="string",i)}function i(h){if(g>999||93===h&&!d||null===h||91===h||aP(h))return c(h);if(93===h){a.exit("chunkString");let d=a.exit("gfmFootnoteCallString");return f.includes(bf(e.sliceSerialize(d)))?(a.enter("gfmFootnoteCallLabelMarker"),a.consume(h),a.exit("gfmFootnoteCallLabelMarker"),a.exit("gfmFootnoteCall"),b):c(h)}return aP(h)||(d=!0),g++,a.consume(h),92===h?j:i}function j(b){return 91===b||92===b||93===b?(a.consume(b),g++,i):i(b)}}function dk(a,b,c){let d,e,f=this,g=f.parser.gfmFootnotes||(f.parser.gfmFootnotes=[]),h=0;return function(b){return a.enter("gfmFootnoteDefinition")._container=!0,a.enter("gfmFootnoteDefinitionLabel"),a.enter("gfmFootnoteDefinitionLabelMarker"),a.consume(b),a.exit("gfmFootnoteDefinitionLabelMarker"),i};function i(b){return 94===b?(a.enter("gfmFootnoteDefinitionMarker"),a.consume(b),a.exit("gfmFootnoteDefinitionMarker"),a.enter("gfmFootnoteDefinitionLabelString"),a.enter("chunkString").contentType="string",j):c(b)}function j(b){if(h>999||93===b&&!e||null===b||91===b||aP(b))return c(b);if(93===b){a.exit("chunkString");let c=a.exit("gfmFootnoteDefinitionLabelString");return d=bf(f.sliceSerialize(c)),a.enter("gfmFootnoteDefinitionLabelMarker"),a.consume(b),a.exit("gfmFootnoteDefinitionLabelMarker"),a.exit("gfmFootnoteDefinitionLabel"),l}return aP(b)||(e=!0),h++,a.consume(b),92===b?k:j}function k(b){return 91===b||92===b||93===b?(a.consume(b),h++,j):j(b)}function l(b){return 58===b?(a.enter("definitionMarker"),a.consume(b),a.exit("definitionMarker"),g.includes(d)||g.push(d),aU(a,m,"gfmFootnoteDefinitionWhitespace")):c(b)}function m(a){return b(a)}}function dl(a,b,c){return a.check(aY,b,a.attempt(dg,b,c))}function dm(a){a.exit("gfmFootnoteDefinition")}class dn{constructor(){this.map=[]}add(a,b,c){!function(a,b,c,d){let e=0;if(0!==c||0!==d.length){for(;e<a.map.length;){if(a.map[e][0]===b){a.map[e][1]+=c,a.map[e][2].push(...d);return}e+=1}a.map.push([b,c,d])}}(this,a,b,c)}consume(a){if(this.map.sort(function(a,b){return a[0]-b[0]}),0===this.map.length)return;let b=this.map.length,c=[];for(;b>0;)b-=1,c.push(a.slice(this.map[b][0]+this.map[b][1]),this.map[b][2]),a.length=this.map[b][0];c.push(a.slice()),a.length=0;let d=c.pop();for(;d;){for(let b of d)a.push(b);d=c.pop()}this.map.length=0}}function dp(a,b,c){let d,e=this,f=0,g=0;return function(a){let b=e.events.length-1;for(;b>-1;){let a=e.events[b][1].type;if("lineEnding"===a||"linePrefix"===a)b--;else break}let d=b>-1?e.events[b][1].type:null,f="tableHead"===d||"tableRow"===d?s:h;return f===s&&e.parser.lazy[e.now().line]?c(a):f(a)};function h(b){var c;return a.enter("tableHead"),a.enter("tableRow"),124===(c=b)||(d=!0,g+=1),i(c)}function i(b){return null===b?c(b):aO(b)?g>1?(g=0,e.interrupt=!0,a.exit("tableRow"),a.enter("lineEnding"),a.consume(b),a.exit("lineEnding"),l):c(b):aQ(b)?aU(a,i,"whitespace")(b):(g+=1,d&&(d=!1,f+=1),124===b)?(a.enter("tableCellDivider"),a.consume(b),a.exit("tableCellDivider"),d=!0,i):(a.enter("data"),j(b))}function j(b){return null===b||124===b||aP(b)?(a.exit("data"),i(b)):(a.consume(b),92===b?k:j)}function k(b){return 92===b||124===b?(a.consume(b),j):j(b)}function l(b){return(e.interrupt=!1,e.parser.lazy[e.now().line])?c(b):(a.enter("tableDelimiterRow"),d=!1,aQ(b))?aU(a,m,"linePrefix",e.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(b):m(b)}function m(b){return 45===b||58===b?o(b):124===b?(d=!0,a.enter("tableCellDivider"),a.consume(b),a.exit("tableCellDivider"),n):c(b)}function n(b){return aQ(b)?aU(a,o,"whitespace")(b):o(b)}function o(b){return 58===b?(g+=1,d=!0,a.enter("tableDelimiterMarker"),a.consume(b),a.exit("tableDelimiterMarker"),p):45===b?(g+=1,p(b)):null===b||aO(b)?r(b):c(b)}function p(b){return 45===b?(a.enter("tableDelimiterFiller"),function b(c){return 45===c?(a.consume(c),b):58===c?(d=!0,a.exit("tableDelimiterFiller"),a.enter("tableDelimiterMarker"),a.consume(c),a.exit("tableDelimiterMarker"),q):(a.exit("tableDelimiterFiller"),q(c))}(b)):c(b)}function q(b){return aQ(b)?aU(a,r,"whitespace")(b):r(b)}function r(e){if(124===e)return m(e);if(null===e||aO(e))return d&&f===g?(a.exit("tableDelimiterRow"),a.exit("tableHead"),b(e)):c(e);return c(e)}function s(b){return a.enter("tableRow"),t(b)}function t(c){return 124===c?(a.enter("tableCellDivider"),a.consume(c),a.exit("tableCellDivider"),t):null===c||aO(c)?(a.exit("tableRow"),b(c)):aQ(c)?aU(a,t,"whitespace")(c):(a.enter("data"),u(c))}function u(b){return null===b||124===b||aP(b)?(a.exit("data"),t(b)):(a.consume(b),92===b?v:u)}function v(b){return 92===b||124===b?(a.consume(b),u):u(b)}}function dq(a,b){let c,d,e,f=-1,g=!0,h=0,i=[0,0,0,0],j=[0,0,0,0],k=!1,l=0,m=new dn;for(;++f<a.length;){let n=a[f],o=n[1];"enter"===n[0]?"tableHead"===o.type?(k=!1,0!==l&&(ds(m,b,l,c,d),d=void 0,l=0),c={type:"table",start:Object.assign({},o.start),end:Object.assign({},o.end)},m.add(f,0,[["enter",c,b]])):"tableRow"===o.type||"tableDelimiterRow"===o.type?(g=!0,e=void 0,i=[0,0,0,0],j=[0,f+1,0,0],k&&(k=!1,d={type:"tableBody",start:Object.assign({},o.start),end:Object.assign({},o.end)},m.add(f,0,[["enter",d,b]])),h="tableDelimiterRow"===o.type?2:d?3:1):h&&("data"===o.type||"tableDelimiterMarker"===o.type||"tableDelimiterFiller"===o.type)?(g=!1,0===j[2]&&(0!==i[1]&&(j[0]=j[1],e=dr(m,b,i,h,void 0,e),i=[0,0,0,0]),j[2]=f)):"tableCellDivider"===o.type&&(g?g=!1:(0!==i[1]&&(j[0]=j[1],e=dr(m,b,i,h,void 0,e)),j=[(i=j)[1],f,0,0])):"tableHead"===o.type?(k=!0,l=f):"tableRow"===o.type||"tableDelimiterRow"===o.type?(l=f,0!==i[1]?(j[0]=j[1],e=dr(m,b,i,h,f,e)):0!==j[1]&&(e=dr(m,b,j,h,f,e)),h=0):h&&("data"===o.type||"tableDelimiterMarker"===o.type||"tableDelimiterFiller"===o.type)&&(j[3]=f)}for(0!==l&&ds(m,b,l,c,d),m.consume(b.events),f=-1;++f<b.events.length;){let a=b.events[f];"enter"===a[0]&&"table"===a[1].type&&(a[1]._align=function(a,b){let c=!1,d=[];for(;b<a.length;){let e=a[b];if(c){if("enter"===e[0])"tableContent"===e[1].type&&d.push("tableDelimiterMarker"===a[b+1][1].type?"left":"none");else if("tableContent"===e[1].type){if("tableDelimiterMarker"===a[b-1][1].type){let a=d.length-1;d[a]="left"===d[a]?"center":"right"}}else if("tableDelimiterRow"===e[1].type)break}else"enter"===e[0]&&"tableDelimiterRow"===e[1].type&&(c=!0);b+=1}return d}(b.events,f))}return a}function dr(a,b,c,d,e,f){0!==c[0]&&(f.end=Object.assign({},dt(b.events,c[0])),a.add(c[0],0,[["exit",f,b]]));let g=dt(b.events,c[1]);if(f={type:1===d?"tableHeader":2===d?"tableDelimiter":"tableData",start:Object.assign({},g),end:Object.assign({},g)},a.add(c[1],0,[["enter",f,b]]),0!==c[2]){let e=dt(b.events,c[2]),f=dt(b.events,c[3]),g={type:"tableContent",start:Object.assign({},e),end:Object.assign({},f)};if(a.add(c[2],0,[["enter",g,b]]),2!==d){let d=b.events[c[2]],e=b.events[c[3]];if(d[1].end=Object.assign({},e[1].end),d[1].type="chunkText",d[1].contentType="text",c[3]>c[2]+1){let b=c[2]+1,d=c[3]-c[2]-1;a.add(b,d,[])}}a.add(c[3]+1,0,[["exit",g,b]])}return void 0!==e&&(f.end=Object.assign({},dt(b.events,e)),a.add(e,0,[["exit",f,b]]),f=void 0),f}function ds(a,b,c,d,e){let f=[],g=dt(b.events,c);e&&(e.end=Object.assign({},g),f.push(["exit",e,b])),d.end=Object.assign({},g),f.push(["exit",d,b]),a.add(c+1,0,f)}function dt(a,b){let c=a[b],d="enter"===c[0]?"start":"end";return c[1][d]}let du={name:"tasklistCheck",tokenize:function(a,b,c){let d=this;return function(b){return null===d.previous&&d._gfmTasklistFirstContentOfListItem?(a.enter("taskListCheck"),a.enter("taskListCheckMarker"),a.consume(b),a.exit("taskListCheckMarker"),e):c(b)};function e(b){return aP(b)?(a.enter("taskListCheckValueUnchecked"),a.consume(b),a.exit("taskListCheckValueUnchecked"),f):88===b||120===b?(a.enter("taskListCheckValueChecked"),a.consume(b),a.exit("taskListCheckValueChecked"),f):c(b)}function f(b){return 93===b?(a.enter("taskListCheckMarker"),a.consume(b),a.exit("taskListCheckMarker"),a.exit("taskListCheck"),g):c(b)}function g(d){return aO(d)?b(d):aQ(d)?a.check({tokenize:dv},b,c)(d):c(d)}}};function dv(a,b,c){return aU(a,function(a){return null===a?c(a):b(a)},"whitespace")}let dw={};function dx(a){let b,c=a||dw,d=this.data(),e=d.micromarkExtensions||(d.micromarkExtensions=[]),f=d.fromMarkdownExtensions||(d.fromMarkdownExtensions=[]),g=d.toMarkdownExtensions||(d.toMarkdownExtensions=[]);e.push(aG([{text:c9},{document:{91:{name:"gfmFootnoteDefinition",tokenize:dk,continuation:{tokenize:dl},exit:dm}},text:{91:{name:"gfmFootnoteCall",tokenize:dj},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:dh,resolveTo:di}}},function(a){let b=(a||{}).singleTilde,c={name:"strikethrough",tokenize:function(a,c,d){let e=this.previous,f=this.events,g=0;return function(h){return 126===e&&"characterEscape"!==f[f.length-1][1].type?d(h):(a.enter("strikethroughSequenceTemporary"),function f(h){let i=bC(e);if(126===h)return g>1?d(h):(a.consume(h),g++,f);if(g<2&&!b)return d(h);let j=a.exit("strikethroughSequenceTemporary"),k=bC(h);return j._open=!k||2===k&&!!i,j._close=!i||2===i&&!!k,c(h)}(h))}},resolveAll:function(a,b){let c=-1;for(;++c<a.length;)if("enter"===a[c][0]&&"strikethroughSequenceTemporary"===a[c][1].type&&a[c][1]._close){let d=c;for(;d--;)if("exit"===a[d][0]&&"strikethroughSequenceTemporary"===a[d][1].type&&a[d][1]._open&&a[c][1].end.offset-a[c][1].start.offset==a[d][1].end.offset-a[d][1].start.offset){a[c][1].type="strikethroughSequence",a[d][1].type="strikethroughSequence";let e={type:"strikethrough",start:Object.assign({},a[d][1].start),end:Object.assign({},a[c][1].end)},f={type:"strikethroughText",start:Object.assign({},a[d][1].end),end:Object.assign({},a[c][1].start)},g=[["enter",e,b],["enter",a[d][1],b],["exit",a[d][1],b],["enter",f,b]],h=b.parser.constructs.insideSpan.null;h&&aA(g,g.length,0,bw(h,a.slice(d+1,c),b)),aA(g,g.length,0,[["exit",f,b],["enter",a[c][1],b],["exit",a[c][1],b],["exit",e,b]]),aA(a,d-1,c-d+3,g),c=d+g.length-2;break}}for(c=-1;++c<a.length;)"strikethroughSequenceTemporary"===a[c][1].type&&(a[c][1].type="data");return a}};return null==b&&(b=!0),{text:{126:c},insideSpan:{null:[c]},attentionMarkers:{null:[126]}}}(c),{flow:{null:{name:"table",tokenize:dp,resolveAll:dq}}},{text:{91:du}}])),f.push([{transforms:[ca],enter:{literalAutolink:b4,literalAutolinkEmail:b5,literalAutolinkHttp:b5,literalAutolinkWww:b5},exit:{literalAutolink:b9,literalAutolinkEmail:b8,literalAutolinkHttp:b6,literalAutolinkWww:b7}},{enter:{gfmFootnoteCallString:ce,gfmFootnoteCall:cf,gfmFootnoteDefinitionLabelString:cg,gfmFootnoteDefinition:ch},exit:{gfmFootnoteCallString:ci,gfmFootnoteCall:cj,gfmFootnoteDefinitionLabelString:ck,gfmFootnoteDefinition:cl}},{canContainEols:["delete"],enter:{strikethrough:cq},exit:{strikethrough:cr}},{enter:{table:cT,tableData:cX,tableHeader:cX,tableRow:cV},exit:{codeText:cY,table:cU,tableData:cW,tableHeader:cW,tableRow:cW}},{exit:{taskListCheckValueChecked:c$,taskListCheckValueUnchecked:c$,paragraph:c_}}]),g.push({extensions:[{unsafe:[{character:"@",before:"[+\\-.\\w]",after:"[\\-.\\w]",inConstruct:b2,notInConstruct:b3},{character:".",before:"[Ww]",after:"[\\-.\\w]",inConstruct:b2,notInConstruct:b3},{character:":",before:"[ps]",after:"\\/",inConstruct:b2,notInConstruct:b3}]},(b=!1,c&&c.firstLineBlank&&(b=!0),{handlers:{footnoteDefinition:function(a,c,d,e){let f=d.createTracker(e),g=f.move("[^"),h=d.enter("footnoteDefinition"),i=d.enter("label");return g+=f.move(d.safe(d.associationId(a),{before:g,after:"]"})),i(),g+=f.move("]:"),a.children&&a.children.length>0&&(f.shift(4),g+=f.move((b?"\n":" ")+d.indentLines(d.containerFlow(a,f.current()),b?co:cn))),h(),g},footnoteReference:cm},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]}),{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:cp}],handlers:{delete:cs}},function(a){let b=a||{},c=b.tableCellPadding,d=b.tablePipeAlign,e=b.stringLength,f=c?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:"\n",inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:function(a,b,c){let d=cS.inlineCode(a,b,c);return c.stack.includes("tableCell")&&(d=d.replace(/\|/g,"\\$&")),d},table:function(a,b,c,d){return h(function(a,b,c){let d=a.children,e=-1,f=[],g=b.enter("table");for(;++e<d.length;)f[e]=i(d[e],b,c);return g(),f}(a,c,d),a.align)},tableCell:g,tableRow:function(a,b,c,d){let e=h([i(a,c,d)]);return e.slice(0,e.indexOf("\n"))}}};function g(a,b,c,d){let e=c.enter("tableCell"),g=c.enter("phrasing"),h=c.containerPhrasing(a,{...d,before:f,after:f});return g(),e(),h}function h(a,b){return function(a,b){let c=b||{},d=(c.align||[]).concat(),e=c.stringLength||ct,f=[],g=[],h=[],i=[],j=0,k=-1;for(;++k<a.length;){let b=[],d=[],f=-1;for(a[k].length>j&&(j=a[k].length);++f<a[k].length;){var l;let g=null==(l=a[k][f])?"":String(l);if(!1!==c.alignDelimiters){let a=e(g);d[f]=a,(void 0===i[f]||a>i[f])&&(i[f]=a)}b.push(g)}g[k]=b,h[k]=d}let m=-1;if("object"==typeof d&&"length"in d)for(;++m<j;)f[m]=cu(d[m]);else{let a=cu(d);for(;++m<j;)f[m]=a}m=-1;let n=[],o=[];for(;++m<j;){let a=f[m],b="",d="";99===a?(b=":",d=":"):108===a?b=":":114===a&&(d=":");let e=!1===c.alignDelimiters?1:Math.max(1,i[m]-b.length-d.length),g=b+"-".repeat(e)+d;!1!==c.alignDelimiters&&((e=b.length+e+d.length)>i[m]&&(i[m]=e),o[m]=e),n[m]=g}g.splice(1,0,n),h.splice(1,0,o),k=-1;let p=[];for(;++k<g.length;){let a=g[k],b=h[k];m=-1;let d=[];for(;++m<j;){let e=a[m]||"",g="",h="";if(!1!==c.alignDelimiters){let a=i[m]-(b[m]||0),c=f[m];114===c?g=" ".repeat(a):99===c?a%2?(g=" ".repeat(a/2+.5),h=" ".repeat(a/2-.5)):h=g=" ".repeat(a/2):h=" ".repeat(a)}!1===c.delimiterStart||m||d.push("|"),!1!==c.padding&&(!1!==c.alignDelimiters||""!==e)&&(!1!==c.delimiterStart||m)&&d.push(" "),!1!==c.alignDelimiters&&d.push(g),d.push(e),!1!==c.alignDelimiters&&d.push(h),!1!==c.padding&&d.push(" "),(!1!==c.delimiterEnd||m!==j-1)&&d.push("|")}p.push(!1===c.delimiterEnd?d.join("").replace(/ +$/,""):d.join(""))}return p.join("\n")}(a,{align:b,alignDelimiters:d,padding:c,stringLength:e})}function i(a,b,c){let d=a.children,e=-1,f=[],h=b.enter("tableRow");for(;++e<d.length;)f[e]=g(d[e],a,b,c);return h(),f}}(c),{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:c0}}]})}let dy={}.hasOwnProperty,dz={}.hasOwnProperty,dA=[function(a,b,c,d){if("code"===b.type&&cz(b,d)&&("list"===a.type||a.type===b.type&&cz(a,d)))return!1;if("spread"in c&&"boolean"==typeof c.spread){if("paragraph"===a.type&&(a.type===b.type||"definition"===b.type||"heading"===b.type&&cG(b,d)))return;return+!!c.spread}}],dB=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"],dC=[{character:" ",after:"[\\r\\n]",inConstruct:"phrasing"},{character:" ",before:"[\\r\\n]",inConstruct:"phrasing"},{character:" ",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde"]},{character:"\r",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde","codeFencedMetaGraveAccent","codeFencedMetaTilde","destinationLiteral","headingAtx"]},{character:"\n",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde","codeFencedMetaGraveAccent","codeFencedMetaTilde","destinationLiteral","headingAtx"]},{character:" ",after:"[\\r\\n]",inConstruct:"phrasing"},{character:" ",before:"[\\r\\n]",inConstruct:"phrasing"},{character:" ",inConstruct:["codeFencedLangGraveAccent","codeFencedLangTilde"]},{character:"!",after:"\\[",inConstruct:"phrasing",notInConstruct:dB},{character:'"',inConstruct:"titleQuote"},{atBreak:!0,character:"#"},{character:"#",inConstruct:"headingAtx",after:"(?:[\r\n]|$)"},{character:"&",after:"[#A-Za-z]",inConstruct:"phrasing"},{character:"'",inConstruct:"titleApostrophe"},{character:"(",inConstruct:"destinationRaw"},{before:"\\]",character:"(",inConstruct:"phrasing",notInConstruct:dB},{atBreak:!0,before:"\\d+",character:")"},{character:")",inConstruct:"destinationRaw"},{atBreak:!0,character:"*",after:"(?:[ \r\n*])"},{character:"*",inConstruct:"phrasing",notInConstruct:dB},{atBreak:!0,character:"+",after:"(?:[ \r\n])"},{atBreak:!0,character:"-",after:"(?:[ \r\n-])"},{atBreak:!0,before:"\\d+",character:".",after:"(?:[ \r\n]|$)"},{atBreak:!0,character:"<",after:"[!/?A-Za-z]"},{character:"<",after:"[!/?A-Za-z]",inConstruct:"phrasing",notInConstruct:dB},{character:"<",inConstruct:"destinationLiteral"},{atBreak:!0,character:"="},{atBreak:!0,character:">"},{character:">",inConstruct:"destinationLiteral"},{atBreak:!0,character:"["},{character:"[",inConstruct:"phrasing",notInConstruct:dB},{character:"[",inConstruct:["label","reference"]},{character:"\\",after:"[\\r\\n]",inConstruct:"phrasing"},{character:"]",inConstruct:["label","reference"]},{atBreak:!0,character:"_"},{character:"_",inConstruct:"phrasing",notInConstruct:dB},{atBreak:!0,character:"`"},{character:"`",inConstruct:["codeFencedLangGraveAccent","codeFencedMetaGraveAccent"]},{character:"`",inConstruct:"phrasing",notInConstruct:dB},{atBreak:!0,character:"~"}];function dD(a){return a.label||!a.identifier?a.label||"":bS(a.identifier)}function dE(a){if(!a._compiled){let b=(a.atBreak?"[\\r\\n][\\t ]*":"")+(a.before?"(?:"+a.before+")":"");a._compiled=RegExp((b?"("+b+")":"")+(/[|\\{}()[\]^$+*?.-]/.test(a.character)?"\\":"")+a.character+(a.after?"(?:"+a.after+")":""),"g")}return a._compiled}let dF=/\r?\n|\r/g;function dG(a,b){let c,d=[],e=0,f=0;for(;c=dF.exec(a);)g(a.slice(e,c.index)),d.push(c[0]),e=c.index+c[0].length,f++;return g(a.slice(e)),d.join("");function g(a){d.push(b(a,f,!a))}}function dH(a,b){return a-b}function dI(a,b){let c,d=/\\(?=[!-/:-@[-`{-~])/g,e=[],f=[],g=a+b,h=-1,i=0;for(;c=d.exec(g);)e.push(c.index);for(;++h<e.length;)i!==e[h]&&f.push(a.slice(i,e[h])),f.push("\\"),i=e[h];return f.push(a.slice(i)),f.join("")}function dJ(a){let b=a||{},c=b.now||{},d=b.lineShift||0,e=c.line||1,f=c.column||1;return{move:function(a){let b=a||"",c=b.split(/\r?\n|\r/g),g=c[c.length-1];return e+=c.length-1,f=1===c.length?f+g.length:1+g.length+d,b},current:function(){return{now:{line:e,column:f},lineShift:d}},shift:function(a){d+=a}}}function dK(a){throw Error("Cannot handle value `"+a+"`, expected node")}function dL(a){throw Error("Cannot handle unknown node `"+a.type+"`")}function dM(a,b){if("definition"===a.type&&a.type===b.type)return 0}function dN(a,b){return function(a,b,c){let d,e=b.indexStack,f=a.children||[],g=[],h=-1,i=c.before;e.push(-1);let j=b.createTracker(c);for(;++h<f.length;){let k,l=f[h];if(e[e.length-1]=h,h+1<f.length){let c=b.handle.handlers[f[h+1].type];c&&c.peek&&(c=c.peek),k=c?c(f[h+1],a,b,{before:"",after:"",...j.current()}).charAt(0):""}else k=c.after;g.length>0&&("\r"===i||"\n"===i)&&"html"===l.type&&(g[g.length-1]=g[g.length-1].replace(/(\r?\n|\r)$/," "),i=" ",(j=b.createTracker(c)).move(g.join("")));let m=b.handle(l,a,b,{...j.current(),after:k,before:i});d&&d===m.slice(0,1)&&(m=cC(d.charCodeAt(0))+m.slice(1));let n=b.attentionEncodeSurroundingInfo;b.attentionEncodeSurroundingInfo=void 0,d=void 0,n&&(g.length>0&&n.before&&i===g[g.length-1].slice(-1)&&(g[g.length-1]=g[g.length-1].slice(0,-1)+cC(i.charCodeAt(0))),n.after&&(d=k)),j.move(m),g.push(m),i=m.slice(-1)}return e.pop(),g.join("")}(a,this,b)}function dO(a,b){return function(a,b,c){let d=b.indexStack,e=a.children||[],f=b.createTracker(c),g=[],h=-1;for(d.push(-1);++h<e.length;){let c=e[h];d[d.length-1]=h,g.push(f.move(b.handle(c,a,b,{before:"\n",after:"\n",...f.current()}))),"list"!==c.type&&(b.bulletLastUsed=void 0),h<e.length-1&&g.push(f.move(function(a,b,c,d){let e=d.join.length;for(;e--;){let f=d.join[e](a,b,c,d);if(!0===f||1===f)break;if("number"==typeof f)return"\n".repeat(1+f);if(!1===f)return"\n\n\x3c!----\x3e\n\n"}return"\n\n"}(c,e[h+1],a,b)))}return d.pop(),g.join("")}(a,this,b)}function dP(a,b){return function(a,b,c){let d=(c.before||"")+(b||"")+(c.after||""),e=[],f=[],g={},h=-1;for(;++h<a.unsafe.length;){let b,c=a.unsafe[h];if(!cw(a.stack,c))continue;let f=a.compilePattern(c);for(;b=f.exec(d);){let a="before"in c||!!c.atBreak,d="after"in c,f=b.index+(a?b[1].length:0);e.includes(f)?(g[f].before&&!a&&(g[f].before=!1),g[f].after&&!d&&(g[f].after=!1)):(e.push(f),g[f]={before:a,after:d})}}e.sort(dH);let i=c.before?c.before.length:0,j=d.length-(c.after?c.after.length:0);for(h=-1;++h<e.length;){let a=e[h];!(a<i)&&!(a>=j)&&(!(a+1<j)||e[h+1]!==a+1||!g[a].after||g[a+1].before||g[a+1].after)&&(e[h-1]!==a-1||!g[a].before||g[a-1].before||g[a-1].after)&&(i!==a&&f.push(dI(d.slice(i,a),"\\")),i=a,!/[!-/:-@[-`{-~]/.test(d.charAt(a))||c.encode&&c.encode.includes(d.charAt(a))?(f.push(cC(d.charCodeAt(a))),i++):f.push("\\"))}return f.push(dI(d.slice(i,j),c.after)),f.join("")}(this,a,b)}function dQ(a){let b=this;b.compiler=function(c){var d={...b.data("settings"),...a,extensions:b.data("toMarkdownExtensions")||[]};let e={associationId:dD,containerPhrasing:dN,containerFlow:dO,createTracker:dJ,compilePattern:dE,enter:function(a){return e.stack.push(a),function(){e.stack.pop()}},handlers:{...cS},handle:void 0,indentLines:dG,indexStack:[],join:[...dA],options:{},safe:dP,stack:[],unsafe:[...dC]};!function a(b,c){var d,e,f,g;let h,i=-1;if(c.extensions)for(;++i<c.extensions.length;)a(b,c.extensions[i]);for(h in c)if(dz.call(c,h))switch(h){case"extensions":break;case"unsafe":case"join":d=b[h],(e=c[h])&&d.push(...e);break;case"handlers":f=b[h],(g=c[h])&&Object.assign(f,g);break;default:b.options[h]=c[h]}return b}(e,d||{}),e.options.tightDefinitions&&e.join.push(dM),e.handle=function(a,b){let c=b||{};function d(b,...c){let e=d.invalid,f=d.handlers;if(b&&dy.call(b,a)){let c=String(b[a]);e=dy.call(f,c)?f[c]:d.unknown}if(e)return e.call(this,b,...c)}return d.handlers=c.handlers||{},d.invalid=c.invalid,d.unknown=c.unknown,d}("type",{invalid:dK,unknown:dL,handlers:e.handlers});let f=e.handle(c,void 0,e,{before:"\n",after:"\n",now:{line:1,column:1},lineShift:0});return f&&10!==f.charCodeAt(f.length-1)&&13!==f.charCodeAt(f.length-1)&&(f+="\n"),f}}let dR={blockquote:dX,break:function(){return{type:"text",value:"\n"}},code:dY,definition:dY,delete:dX,emphasis:dX,footnoteReference:dY,footnoteDefinition:dY,heading:function(a){return{type:"paragraph",children:a.children}},html:dY,image:dV,imageReference:dV,inlineCode:dW,list:dX,listItem:dX,link:dX,linkReference:dX,strong:dX,table:dY,tableCell:dY,text:dW,thematicBreak:dY,toml:dY,yaml:dY},dS={},dT=[];function dU(a){let b={...dR},c=a||dS,d=c.keep||dT,e=c.remove||dT,f=-1;for(;++f<e.length;){let a=e[f];"string"==typeof a?b[a]=dY:b[a[0]]=a[1]}let g={};if(0===d.length)g=b;else{let a;for(a in b)d.includes(a)||(g[a]=b[a]);for(f=-1;++f<d.length;)if(!Object.hasOwn(b,a=d[f]))throw Error("Unknown node type `"+a+"` in `keep`, use a replace tuple with a handle instead: `remove: [['"+a+"', handle]]`")}return function(a){return h(a)};function h(a){let b=a.type,c=a;if(Object.hasOwn(g,b)){let a=g[b];a&&(c=a(c)||void 0)}return(c=Array.isArray(c)?i(c):c)&&"children"in c&&(c.children=i(c.children)),c}function i(a){let b=-1,c=[];for(;++b<a.length;){let d=h(a[b]);Array.isArray(d)?c.push(...i(d)):d&&c.push(d)}var d=c;let e,f=-1,g=[];for(;++f<d.length;){let a=d[f];e&&a.type===e.type&&"value"in a&&"value"in e?e.value+=a.value:(g.push(a),e=a)}return g}}function dV(a){let b="title"in a?a.title:"",c=a.alt||b||"";return c?{type:"text",value:c}:void 0}function dW(a){return{type:"text",value:a.value}}function dX(a){return a.children}function dY(){}let dZ=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,d$=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,d_={};function d0(a,b){return((b||d_).jsx?d$:dZ).test(a)}let d1=/[ \t\n\f\r]/g;function d2(a){return""===a.replace(d1,"")}class d3{constructor(a,b,c){this.normal=b,this.property=a,c&&(this.space=c)}}function d4(a,b){let c={},d={};for(let b of a)Object.assign(c,b.property),Object.assign(d,b.normal);return new d3(c,d,b)}function d5(a){return a.toLowerCase()}d3.prototype.normal={},d3.prototype.property={},d3.prototype.space=void 0;class d6{constructor(a,b){this.attribute=b,this.property=a}}d6.prototype.attribute="",d6.prototype.booleanish=!1,d6.prototype.boolean=!1,d6.prototype.commaOrSpaceSeparated=!1,d6.prototype.commaSeparated=!1,d6.prototype.defined=!1,d6.prototype.mustUseProperty=!1,d6.prototype.number=!1,d6.prototype.overloadedBoolean=!1,d6.prototype.property="",d6.prototype.spaceSeparated=!1,d6.prototype.space=void 0;let d7=0,d8=ef(),d9=ef(),ea=ef(),eb=ef(),ec=ef(),ed=ef(),ee=ef();function ef(){return 2**++d7}let eg=Object.keys(e);class eh extends d6{constructor(a,b,c,d){let f=-1;if(super(a,b),function(a,b,c){c&&(a[b]=c)}(this,"space",d),"number"==typeof c)for(;++f<eg.length;){let a=eg[f];!function(a,b,c){c&&(a[b]=c)}(this,eg[f],(c&e[a])===e[a])}}}function ei(a){let b={},c={};for(let[d,e]of Object.entries(a.properties)){let f=new eh(d,a.transform(a.attributes||{},d),e,a.space);a.mustUseProperty&&a.mustUseProperty.includes(d)&&(f.mustUseProperty=!0),b[d]=f,c[d5(d)]=d,c[d5(f.attribute)]=d}return new d3(b,c,a.space)}eh.prototype.defined=!0;let ej=ei({properties:{ariaActiveDescendant:null,ariaAtomic:d9,ariaAutoComplete:null,ariaBusy:d9,ariaChecked:d9,ariaColCount:eb,ariaColIndex:eb,ariaColSpan:eb,ariaControls:ec,ariaCurrent:null,ariaDescribedBy:ec,ariaDetails:null,ariaDisabled:d9,ariaDropEffect:ec,ariaErrorMessage:null,ariaExpanded:d9,ariaFlowTo:ec,ariaGrabbed:d9,ariaHasPopup:null,ariaHidden:d9,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:ec,ariaLevel:eb,ariaLive:null,ariaModal:d9,ariaMultiLine:d9,ariaMultiSelectable:d9,ariaOrientation:null,ariaOwns:ec,ariaPlaceholder:null,ariaPosInSet:eb,ariaPressed:d9,ariaReadOnly:d9,ariaRelevant:null,ariaRequired:d9,ariaRoleDescription:ec,ariaRowCount:eb,ariaRowIndex:eb,ariaRowSpan:eb,ariaSelected:d9,ariaSetSize:eb,ariaSort:null,ariaValueMax:eb,ariaValueMin:eb,ariaValueNow:eb,ariaValueText:null,role:null},transform:(a,b)=>"role"===b?b:"aria-"+b.slice(4).toLowerCase()});function ek(a,b){return b in a?a[b]:b}function el(a,b){return ek(a,b.toLowerCase())}let em=ei({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:ed,acceptCharset:ec,accessKey:ec,action:null,allow:null,allowFullScreen:d8,allowPaymentRequest:d8,allowUserMedia:d8,alt:null,as:null,async:d8,autoCapitalize:null,autoComplete:ec,autoFocus:d8,autoPlay:d8,blocking:ec,capture:null,charSet:null,checked:d8,cite:null,className:ec,cols:eb,colSpan:null,content:null,contentEditable:d9,controls:d8,controlsList:ec,coords:eb|ed,crossOrigin:null,data:null,dateTime:null,decoding:null,default:d8,defer:d8,dir:null,dirName:null,disabled:d8,download:ea,draggable:d9,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:d8,formTarget:null,headers:ec,height:eb,hidden:ea,high:eb,href:null,hrefLang:null,htmlFor:ec,httpEquiv:ec,id:null,imageSizes:null,imageSrcSet:null,inert:d8,inputMode:null,integrity:null,is:null,isMap:d8,itemId:null,itemProp:ec,itemRef:ec,itemScope:d8,itemType:ec,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:d8,low:eb,manifest:null,max:null,maxLength:eb,media:null,method:null,min:null,minLength:eb,multiple:d8,muted:d8,name:null,nonce:null,noModule:d8,noValidate:d8,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:d8,optimum:eb,pattern:null,ping:ec,placeholder:null,playsInline:d8,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:d8,referrerPolicy:null,rel:ec,required:d8,reversed:d8,rows:eb,rowSpan:eb,sandbox:ec,scope:null,scoped:d8,seamless:d8,selected:d8,shadowRootClonable:d8,shadowRootDelegatesFocus:d8,shadowRootMode:null,shape:null,size:eb,sizes:null,slot:null,span:eb,spellCheck:d9,src:null,srcDoc:null,srcLang:null,srcSet:null,start:eb,step:null,style:null,tabIndex:eb,target:null,title:null,translate:null,type:null,typeMustMatch:d8,useMap:null,value:d9,width:eb,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:ec,axis:null,background:null,bgColor:null,border:eb,borderColor:null,bottomMargin:eb,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:d8,declare:d8,event:null,face:null,frame:null,frameBorder:null,hSpace:eb,leftMargin:eb,link:null,longDesc:null,lowSrc:null,marginHeight:eb,marginWidth:eb,noResize:d8,noHref:d8,noShade:d8,noWrap:d8,object:null,profile:null,prompt:null,rev:null,rightMargin:eb,rules:null,scheme:null,scrolling:d9,standby:null,summary:null,text:null,topMargin:eb,valueType:null,version:null,vAlign:null,vLink:null,vSpace:eb,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:d8,disableRemotePlayback:d8,prefix:null,property:null,results:eb,security:null,unselectable:null},space:"html",transform:el}),en=ei({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:ee,accentHeight:eb,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:eb,amplitude:eb,arabicForm:null,ascent:eb,attributeName:null,attributeType:null,azimuth:eb,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:eb,by:null,calcMode:null,capHeight:eb,className:ec,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:eb,diffuseConstant:eb,direction:null,display:null,dur:null,divisor:eb,dominantBaseline:null,download:d8,dx:null,dy:null,edgeMode:null,editable:null,elevation:eb,enableBackground:null,end:null,event:null,exponent:eb,externalResourcesRequired:null,fill:null,fillOpacity:eb,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:ed,g2:ed,glyphName:ed,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:eb,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:eb,horizOriginX:eb,horizOriginY:eb,id:null,ideographic:eb,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:eb,k:eb,k1:eb,k2:eb,k3:eb,k4:eb,kernelMatrix:ee,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:eb,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:eb,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:eb,overlineThickness:eb,paintOrder:null,panose1:null,path:null,pathLength:eb,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:ec,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:eb,pointsAtY:eb,pointsAtZ:eb,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:ee,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:ee,rev:ee,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:ee,requiredFeatures:ee,requiredFonts:ee,requiredFormats:ee,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:eb,specularExponent:eb,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:eb,strikethroughThickness:eb,string:null,stroke:null,strokeDashArray:ee,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:eb,strokeOpacity:eb,strokeWidth:null,style:null,surfaceScale:eb,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:ee,tabIndex:eb,tableValues:null,target:null,targetX:eb,targetY:eb,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:ee,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:eb,underlineThickness:eb,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:eb,values:null,vAlphabetic:eb,vMathematical:eb,vectorEffect:null,vHanging:eb,vIdeographic:eb,version:null,vertAdvY:eb,vertOriginX:eb,vertOriginY:eb,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:eb,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:ek}),eo=ei({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform:(a,b)=>"xlink:"+b.slice(5).toLowerCase()}),ep=ei({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:el}),eq=ei({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform:(a,b)=>"xml:"+b.slice(3).toLowerCase()}),er=d4([ej,em,eo,ep,eq],"html"),es=d4([ej,en,eo,ep,eq],"svg"),et=/[A-Z]/g,eu=/-[a-z]/g,ev=/^data[-\w.:]+$/i;function ew(a){return"-"+a.toLowerCase()}function ex(a){return a.charAt(1).toUpperCase()}let ey={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"};var ez=c(16184);let eA=eC("end"),eB=eC("start");function eC(a){return function(b){let c=b&&b.position&&b.position[a]||{};if("number"==typeof c.line&&c.line>0&&"number"==typeof c.column&&c.column>0)return{line:c.line,column:c.column,offset:"number"==typeof c.offset&&c.offset>-1?c.offset:void 0}}}let eD={}.hasOwnProperty,eE=new Map,eF=/[A-Z]/g,eG=new Set(["table","tbody","thead","tfoot","tr"]),eH=new Set(["td","th"]),eI="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function eJ(a,b,c){return"element"===b.type?function(a,b,c){let d=a.schema;"svg"===b.tagName.toLowerCase()&&"html"===d.space&&(a.schema=es),a.ancestors.push(b);let e=eN(a,b.tagName,!1),f=function(a,b){let c,d,e={};for(d in b.properties)if("children"!==d&&eD.call(b.properties,d)){let f=function(a,b,c){let d=function(a,b){let c=d5(b),d=b,e=d6;if(c in a.normal)return a.property[a.normal[c]];if(c.length>4&&"data"===c.slice(0,4)&&ev.test(b)){if("-"===b.charAt(4)){let a=b.slice(5).replace(eu,ex);d="data"+a.charAt(0).toUpperCase()+a.slice(1)}else{let a=b.slice(4);if(!eu.test(a)){let c=a.replace(et,ew);"-"!==c.charAt(0)&&(c="-"+c),b="data"+c}}e=eh}return new e(d,b)}(a.schema,b);if(!(null==c||"number"==typeof c&&Number.isNaN(c))){if(Array.isArray(c)&&(c=d.commaSeparated?function(a,b){let c={};return(""===a[a.length-1]?[...a,""]:a).join((c.padRight?" ":"")+","+(!1===c.padLeft?"":" ")).trim()}(c):c.join(" ").trim()),"style"===d.property){let b="object"==typeof c?c:function(a,b){try{return ez(b,{reactCompat:!0})}catch(c){if(a.ignoreInvalidStyle)return{};let b=new ac("Cannot parse `style` attribute",{ancestors:a.ancestors,cause:c,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw b.file=a.filePath||void 0,b.url=eI+"#cannot-parse-style-attribute",b}}(a,String(c));return"css"===a.stylePropertyNameCase&&(b=function(a){let b,c={};for(b in a)eD.call(a,b)&&(c[function(a){let b=a.replace(eF,eP);return"ms-"===b.slice(0,3)&&(b="-"+b),b}(b)]=a[b]);return c}(b)),["style",b]}return["react"===a.elementAttributeNameCase&&d.space?ey[d.property]||d.property:d.attribute,c]}}(a,d,b.properties[d]);if(f){let[d,g]=f;a.tableCellAlignToStyle&&"align"===d&&"string"==typeof g&&eH.has(b.tagName)?c=g:e[d]=g}}return c&&((e.style||(e.style={}))["css"===a.stylePropertyNameCase?"text-align":"textAlign"]=c),e}(a,b),g=eM(a,b);return eG.has(b.tagName)&&(g=g.filter(function(a){return"string"!=typeof a||!("object"==typeof a?"text"===a.type&&d2(a.value):d2(a))})),eK(a,f,e,b),eL(f,g),a.ancestors.pop(),a.schema=d,a.create(b,e,f,c)}(a,b,c):"mdxFlowExpression"===b.type||"mdxTextExpression"===b.type?function(a,b){if(b.data&&b.data.estree&&a.evaluater){let c=b.data.estree.body[0];return c.type,a.evaluater.evaluateExpression(c.expression)}eO(a,b.position)}(a,b):"mdxJsxFlowElement"===b.type||"mdxJsxTextElement"===b.type?function(a,b,c){let d=a.schema;"svg"===b.name&&"html"===d.space&&(a.schema=es),a.ancestors.push(b);let e=null===b.name?a.Fragment:eN(a,b.name,!0),f=function(a,b){let c={};for(let d of b.attributes)if("mdxJsxExpressionAttribute"===d.type)if(d.data&&d.data.estree&&a.evaluater){let b=d.data.estree.body[0];b.type;let e=b.expression;e.type;let f=e.properties[0];f.type,Object.assign(c,a.evaluater.evaluateExpression(f.argument))}else eO(a,b.position);else{let e,f=d.name;if(d.value&&"object"==typeof d.value)if(d.value.data&&d.value.data.estree&&a.evaluater){let b=d.value.data.estree.body[0];b.type,e=a.evaluater.evaluateExpression(b.expression)}else eO(a,b.position);else e=null===d.value||d.value;c[f]=e}return c}(a,b),g=eM(a,b);return eK(a,f,e,b),eL(f,g),a.ancestors.pop(),a.schema=d,a.create(b,e,f,c)}(a,b,c):"mdxjsEsm"===b.type?function(a,b){if(b.data&&b.data.estree&&a.evaluater)return a.evaluater.evaluateProgram(b.data.estree);eO(a,b.position)}(a,b):"root"===b.type?function(a,b,c){let d={};return eL(d,eM(a,b)),a.create(b,a.Fragment,d,c)}(a,b,c):"text"===b.type?b.value:void 0}function eK(a,b,c,d){"string"!=typeof c&&c!==a.Fragment&&a.passNode&&(b.node=d)}function eL(a,b){if(b.length>0){let c=b.length>1?b:b[0];c&&(a.children=c)}}function eM(a,b){let c=[],d=-1,e=a.passKeys?new Map:eE;for(;++d<b.children.length;){let f,g=b.children[d];if(a.passKeys){let a="element"===g.type?g.tagName:"mdxJsxFlowElement"===g.type||"mdxJsxTextElement"===g.type?g.name:void 0;if(a){let b=e.get(a)||0;f=a+"-"+b,e.set(a,b+1)}}let h=eJ(a,g,f);void 0!==h&&c.push(h)}return c}function eN(a,b,c){let d;if(c)if(b.includes(".")){let a,c=b.split("."),e=-1;for(;++e<c.length;){let b=d0(c[e])?{type:"Identifier",name:c[e]}:{type:"Literal",value:c[e]};a=a?{type:"MemberExpression",object:a,property:b,computed:!!(e&&"Literal"===b.type),optional:!1}:b}d=a}else d=d0(b)&&!/^[a-z]/.test(b)?{type:"Identifier",name:b}:{type:"Literal",value:b};else d={type:"Literal",value:b};if("Literal"===d.type){let b=d.value;return eD.call(a.components,b)?a.components[b]:b}if(a.evaluater)return a.evaluater.evaluateExpression(d);eO(a)}function eO(a,b){let c=new ac("Cannot handle MDX estrees without `createEvaluater`",{ancestors:a.ancestors,place:b,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw c.file=a.filePath||void 0,c.url=eI+"#cannot-handle-mdx-estrees-without-createevaluater",c}function eP(a){return"-"+a.toLowerCase()}let eQ={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]},eR="object"==typeof self?self:globalThis,eS=(a,b)=>{switch(a){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw TypeError("unable to deserialize "+a)}return new eR[a](b)},eT=a=>((a,b)=>{let c=(b,c)=>(a.set(c,b),b),d=e=>{if(a.has(e))return a.get(e);let[f,g]=b[e];switch(f){case 0:case -1:return c(g,e);case 1:{let a=c([],e);for(let b of g)a.push(d(b));return a}case 2:{let a=c({},e);for(let[b,c]of g)a[d(b)]=d(c);return a}case 3:return c(new Date(g),e);case 4:{let{source:a,flags:b}=g;return c(new RegExp(a,b),e)}case 5:{let a=c(new Map,e);for(let[b,c]of g)a.set(d(b),d(c));return a}case 6:{let a=c(new Set,e);for(let b of g)a.add(d(b));return a}case 7:{let{name:a,message:b}=g;return c(eS(a,b),e)}case 8:return c(BigInt(g),e);case"BigInt":return c(Object(BigInt(g)),e);case"ArrayBuffer":return c(new Uint8Array(g).buffer,g);case"DataView":{let{buffer:a}=new Uint8Array(g);return c(new DataView(a),g)}}return c(eS(f,g),e)};return d})(new Map,a)(0),{toString:eU}={},{keys:eV}=Object,eW=a=>{let b=typeof a;if("object"!==b||!a)return[0,b];let c=eU.call(a).slice(8,-1);switch(c){case"Array":return[1,""];case"Object":return[2,""];case"Date":return[3,""];case"RegExp":return[4,""];case"Map":return[5,""];case"Set":return[6,""];case"DataView":return[1,c]}return c.includes("Array")?[1,c]:c.includes("Error")?[7,c]:[2,c]},eX=([a,b])=>0===a&&("function"===b||"symbol"===b),eY=(a,{json:b,lossy:c}={})=>{let d=[];return((a,b,c,d)=>{let e=(a,b)=>{let e=d.push(a)-1;return c.set(b,e),e},f=d=>{if(c.has(d))return c.get(d);let[g,h]=eW(d);switch(g){case 0:{let b=d;switch(h){case"bigint":g=8,b=d.toString();break;case"function":case"symbol":if(a)throw TypeError("unable to serialize "+h);b=null;break;case"undefined":return e([-1],d)}return e([g,b],d)}case 1:{if(h){let a=d;return"DataView"===h?a=new Uint8Array(d.buffer):"ArrayBuffer"===h&&(a=new Uint8Array(d)),e([h,[...a]],d)}let a=[],b=e([g,a],d);for(let b of d)a.push(f(b));return b}case 2:{if(h)switch(h){case"BigInt":return e([h,d.toString()],d);case"Boolean":case"Number":case"String":return e([h,d.valueOf()],d)}if(b&&"toJSON"in d)return f(d.toJSON());let c=[],i=e([g,c],d);for(let b of eV(d))(a||!eX(eW(d[b])))&&c.push([f(b),f(d[b])]);return i}case 3:return e([g,d.toISOString()],d);case 4:{let{source:a,flags:b}=d;return e([g,{source:a,flags:b}],d)}case 5:{let b=[],c=e([g,b],d);for(let[c,e]of d)(a||!(eX(eW(c))||eX(eW(e))))&&b.push([f(c),f(e)]);return c}case 6:{let b=[],c=e([g,b],d);for(let c of d)(a||!eX(eW(c)))&&b.push(f(c));return c}}let{message:i}=d;return e([g,{name:h,message:i}],d)};return f})(!(b||c),!!b,new Map,d)(a),d},eZ="function"==typeof structuredClone?(a,b)=>b&&("json"in b||"lossy"in b)?eT(eY(a,b)):structuredClone(a):(a,b)=>eT(eY(a,b));function e$(a){let b=[],c=-1,d=0,e=0;for(;++c<a.length;){let f=a.charCodeAt(c),g="";if(37===f&&aI(a.charCodeAt(c+1))&&aI(a.charCodeAt(c+2)))e=2;else if(f<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(f))||(g=String.fromCharCode(f));else if(f>55295&&f<57344){let b=a.charCodeAt(c+1);f<56320&&b>56319&&b<57344?(g=String.fromCharCode(f,b),e=1):g="�"}else g=String.fromCharCode(f);g&&(b.push(a.slice(d,c),encodeURIComponent(g)),d=c+e+1,g=""),e&&(c+=e,e=0)}return b.join("")+a.slice(d)}function e_(a,b){let c=[{type:"text",value:"↩"}];return b>1&&c.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(b)}]}),c}function e0(a,b){return"Back to reference "+(a+1)+(b>1?"-"+b:"")}function e1(a,b){let c=b.referenceType,d="]";if("collapsed"===c?d+="[]":"full"===c&&(d+="["+(b.label||b.identifier)+"]"),"imageReference"===b.type)return[{type:"text",value:"!["+b.alt+d}];let e=a.all(b),f=e[0];f&&"text"===f.type?f.value="["+f.value:e.unshift({type:"text",value:"["});let g=e[e.length-1];return g&&"text"===g.type?g.value+=d:e.push({type:"text",value:d}),e}function e2(a){let b=a.spread;return null==b?a.children.length>1:b}function e3(a,b,c){let d=0,e=a.length;if(b){let b=a.codePointAt(d);for(;9===b||32===b;)d++,b=a.codePointAt(d)}if(c){let b=a.codePointAt(e-1);for(;9===b||32===b;)e--,b=a.codePointAt(e-1)}return e>d?a.slice(d,e):""}let e4={blockquote:function(a,b){let c={type:"element",tagName:"blockquote",properties:{},children:a.wrap(a.all(b),!0)};return a.patch(b,c),a.applyData(b,c)},break:function(a,b){let c={type:"element",tagName:"br",properties:{},children:[]};return a.patch(b,c),[a.applyData(b,c),{type:"text",value:"\n"}]},code:function(a,b){let c=b.value?b.value+"\n":"",d={},e=b.lang?b.lang.split(/\s+/):[];e.length>0&&(d.className=["language-"+e[0]]);let f={type:"element",tagName:"code",properties:d,children:[{type:"text",value:c}]};return b.meta&&(f.data={meta:b.meta}),a.patch(b,f),f={type:"element",tagName:"pre",properties:{},children:[f=a.applyData(b,f)]},a.patch(b,f),f},delete:function(a,b){let c={type:"element",tagName:"del",properties:{},children:a.all(b)};return a.patch(b,c),a.applyData(b,c)},emphasis:function(a,b){let c={type:"element",tagName:"em",properties:{},children:a.all(b)};return a.patch(b,c),a.applyData(b,c)},footnoteReference:function(a,b){let c,d="string"==typeof a.options.clobberPrefix?a.options.clobberPrefix:"user-content-",e=String(b.identifier).toUpperCase(),f=e$(e.toLowerCase()),g=a.footnoteOrder.indexOf(e),h=a.footnoteCounts.get(e);void 0===h?(h=0,a.footnoteOrder.push(e),c=a.footnoteOrder.length):c=g+1,h+=1,a.footnoteCounts.set(e,h);let i={type:"element",tagName:"a",properties:{href:"#"+d+"fn-"+f,id:d+"fnref-"+f+(h>1?"-"+h:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(c)}]};a.patch(b,i);let j={type:"element",tagName:"sup",properties:{},children:[i]};return a.patch(b,j),a.applyData(b,j)},heading:function(a,b){let c={type:"element",tagName:"h"+b.depth,properties:{},children:a.all(b)};return a.patch(b,c),a.applyData(b,c)},html:function(a,b){if(a.options.allowDangerousHtml){let c={type:"raw",value:b.value};return a.patch(b,c),a.applyData(b,c)}},imageReference:function(a,b){let c=String(b.identifier).toUpperCase(),d=a.definitionById.get(c);if(!d)return e1(a,b);let e={src:e$(d.url||""),alt:b.alt};null!==d.title&&void 0!==d.title&&(e.title=d.title);let f={type:"element",tagName:"img",properties:e,children:[]};return a.patch(b,f),a.applyData(b,f)},image:function(a,b){let c={src:e$(b.url)};null!==b.alt&&void 0!==b.alt&&(c.alt=b.alt),null!==b.title&&void 0!==b.title&&(c.title=b.title);let d={type:"element",tagName:"img",properties:c,children:[]};return a.patch(b,d),a.applyData(b,d)},inlineCode:function(a,b){let c={type:"text",value:b.value.replace(/\r?\n|\r/g," ")};a.patch(b,c);let d={type:"element",tagName:"code",properties:{},children:[c]};return a.patch(b,d),a.applyData(b,d)},linkReference:function(a,b){let c=String(b.identifier).toUpperCase(),d=a.definitionById.get(c);if(!d)return e1(a,b);let e={href:e$(d.url||"")};null!==d.title&&void 0!==d.title&&(e.title=d.title);let f={type:"element",tagName:"a",properties:e,children:a.all(b)};return a.patch(b,f),a.applyData(b,f)},link:function(a,b){let c={href:e$(b.url)};null!==b.title&&void 0!==b.title&&(c.title=b.title);let d={type:"element",tagName:"a",properties:c,children:a.all(b)};return a.patch(b,d),a.applyData(b,d)},listItem:function(a,b,c){let d=a.all(b),e=c?function(a){let b=!1;if("list"===a.type){b=a.spread||!1;let c=a.children,d=-1;for(;!b&&++d<c.length;)b=e2(c[d])}return b}(c):e2(b),f={},g=[];if("boolean"==typeof b.checked){let a,c=d[0];c&&"element"===c.type&&"p"===c.tagName?a=c:(a={type:"element",tagName:"p",properties:{},children:[]},d.unshift(a)),a.children.length>0&&a.children.unshift({type:"text",value:" "}),a.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:b.checked,disabled:!0},children:[]}),f.className=["task-list-item"]}let h=-1;for(;++h<d.length;){let a=d[h];(e||0!==h||"element"!==a.type||"p"!==a.tagName)&&g.push({type:"text",value:"\n"}),"element"!==a.type||"p"!==a.tagName||e?g.push(a):g.push(...a.children)}let i=d[d.length-1];i&&(e||"element"!==i.type||"p"!==i.tagName)&&g.push({type:"text",value:"\n"});let j={type:"element",tagName:"li",properties:f,children:g};return a.patch(b,j),a.applyData(b,j)},list:function(a,b){let c={},d=a.all(b),e=-1;for("number"==typeof b.start&&1!==b.start&&(c.start=b.start);++e<d.length;){let a=d[e];if("element"===a.type&&"li"===a.tagName&&a.properties&&Array.isArray(a.properties.className)&&a.properties.className.includes("task-list-item")){c.className=["contains-task-list"];break}}let f={type:"element",tagName:b.ordered?"ol":"ul",properties:c,children:a.wrap(d,!0)};return a.patch(b,f),a.applyData(b,f)},paragraph:function(a,b){let c={type:"element",tagName:"p",properties:{},children:a.all(b)};return a.patch(b,c),a.applyData(b,c)},root:function(a,b){let c={type:"root",children:a.wrap(a.all(b))};return a.patch(b,c),a.applyData(b,c)},strong:function(a,b){let c={type:"element",tagName:"strong",properties:{},children:a.all(b)};return a.patch(b,c),a.applyData(b,c)},table:function(a,b){let c=a.all(b),d=c.shift(),e=[];if(d){let c={type:"element",tagName:"thead",properties:{},children:a.wrap([d],!0)};a.patch(b.children[0],c),e.push(c)}if(c.length>0){let d={type:"element",tagName:"tbody",properties:{},children:a.wrap(c,!0)},f=eB(b.children[1]),g=eA(b.children[b.children.length-1]);f&&g&&(d.position={start:f,end:g}),e.push(d)}let f={type:"element",tagName:"table",properties:{},children:a.wrap(e,!0)};return a.patch(b,f),a.applyData(b,f)},tableCell:function(a,b){let c={type:"element",tagName:"td",properties:{},children:a.all(b)};return a.patch(b,c),a.applyData(b,c)},tableRow:function(a,b,c){let d=c?c.children:void 0,e=0===(d?d.indexOf(b):1)?"th":"td",f=c&&"table"===c.type?c.align:void 0,g=f?f.length:b.children.length,h=-1,i=[];for(;++h<g;){let c=b.children[h],d={},g=f?f[h]:void 0;g&&(d.align=g);let j={type:"element",tagName:e,properties:d,children:[]};c&&(j.children=a.all(c),a.patch(c,j),j=a.applyData(c,j)),i.push(j)}let j={type:"element",tagName:"tr",properties:{},children:a.wrap(i,!0)};return a.patch(b,j),a.applyData(b,j)},text:function(a,b){let c={type:"text",value:function(a){let b=String(a),c=/\r?\n|\r/g,d=c.exec(b),e=0,f=[];for(;d;)f.push(e3(b.slice(e,d.index),e>0,!0),d[0]),e=d.index+d[0].length,d=c.exec(b);return f.push(e3(b.slice(e),e>0,!1)),f.join("")}(String(b.value))};return a.patch(b,c),a.applyData(b,c)},thematicBreak:function(a,b){let c={type:"element",tagName:"hr",properties:{},children:[]};return a.patch(b,c),a.applyData(b,c)},toml:e5,yaml:e5,definition:e5,footnoteDefinition:e5};function e5(){}let e6={}.hasOwnProperty,e7={};function e8(a,b){a.position&&(b.position=function(a){let b=eB(a),c=eA(a);if(b&&c)return{start:b,end:c}}(a))}function e9(a,b){let c=b;if(a&&a.data){let b=a.data.hName,d=a.data.hChildren,e=a.data.hProperties;"string"==typeof b&&("element"===c.type?c.tagName=b:c={type:"element",tagName:b,properties:{},children:"children"in c?c.children:[c]}),"element"===c.type&&e&&Object.assign(c.properties,eZ(e)),"children"in c&&c.children&&null!=d&&(c.children=d)}return c}function fa(a,b){let c=[],d=-1;for(b&&c.push({type:"text",value:"\n"});++d<a.length;)d&&c.push({type:"text",value:"\n"}),c.push(a[d]);return b&&a.length>0&&c.push({type:"text",value:"\n"}),c}function fb(a){let b=0,c=a.charCodeAt(b);for(;9===c||32===c;)b++,c=a.charCodeAt(b);return a.slice(b)}function fc(a,b){let c=function(a,b){let c=b||e7,d=new Map,e=new Map,f={all:function(a){let b=[];if("children"in a){let c=a.children,d=-1;for(;++d<c.length;){let e=f.one(c[d],a);if(e){if(d&&"break"===c[d-1].type&&(Array.isArray(e)||"text"!==e.type||(e.value=fb(e.value)),!Array.isArray(e)&&"element"===e.type)){let a=e.children[0];a&&"text"===a.type&&(a.value=fb(a.value))}Array.isArray(e)?b.push(...e):b.push(e)}}}return b},applyData:e9,definitionById:d,footnoteById:e,footnoteCounts:new Map,footnoteOrder:[],handlers:{...e4,...c.handlers},one:function(a,b){let c=a.type,d=f.handlers[c];if(e6.call(f.handlers,c)&&d)return d(f,a,b);if(f.options.passThrough&&f.options.passThrough.includes(c)){if("children"in a){let{children:b,...c}=a,d=eZ(c);return d.children=f.all(a),d}return eZ(a)}return(f.options.unknownHandler||function(a,b){let c=b.data||{},d="value"in b&&!(e6.call(c,"hProperties")||e6.call(c,"hChildren"))?{type:"text",value:b.value}:{type:"element",tagName:"div",properties:{},children:a.all(b)};return a.patch(b,d),a.applyData(b,d)})(f,a,b)},options:c,patch:e8,wrap:fa};return cF(a,function(a){if("definition"===a.type||"footnoteDefinition"===a.type){let b="definition"===a.type?d:e,c=String(a.identifier).toUpperCase();b.has(c)||b.set(c,a)}}),f}(a,b),d=c.one(a,void 0),e=function(a){let b="string"==typeof a.options.clobberPrefix?a.options.clobberPrefix:"user-content-",c=a.options.footnoteBackContent||e_,d=a.options.footnoteBackLabel||e0,e=a.options.footnoteLabel||"Footnotes",f=a.options.footnoteLabelTagName||"h2",g=a.options.footnoteLabelProperties||{className:["sr-only"]},h=[],i=-1;for(;++i<a.footnoteOrder.length;){let e=a.footnoteById.get(a.footnoteOrder[i]);if(!e)continue;let f=a.all(e),g=String(e.identifier).toUpperCase(),j=e$(g.toLowerCase()),k=0,l=[],m=a.footnoteCounts.get(g);for(;void 0!==m&&++k<=m;){l.length>0&&l.push({type:"text",value:" "});let a="string"==typeof c?c:c(i,k);"string"==typeof a&&(a={type:"text",value:a}),l.push({type:"element",tagName:"a",properties:{href:"#"+b+"fnref-"+j+(k>1?"-"+k:""),dataFootnoteBackref:"",ariaLabel:"string"==typeof d?d:d(i,k),className:["data-footnote-backref"]},children:Array.isArray(a)?a:[a]})}let n=f[f.length-1];if(n&&"element"===n.type&&"p"===n.tagName){let a=n.children[n.children.length-1];a&&"text"===a.type?a.value+=" ":n.children.push({type:"text",value:" "}),n.children.push(...l)}else f.push(...l);let o={type:"element",tagName:"li",properties:{id:b+"fn-"+j},children:a.wrap(f,!0)};a.patch(e,o),h.push(o)}if(0!==h.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:f,properties:{...eZ(g),id:"footnote-label"},children:[{type:"text",value:e}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:a.wrap(h,!0)},{type:"text",value:"\n"}]}}(c),f=Array.isArray(d)?{type:"root",children:d}:d||{type:"root",children:[]};return e&&f.children.push({type:"text",value:"\n"},e),f}function fd(a,b){return a&&"run"in a?async function(c,d){let e=fc(c,{file:d,...b});await a.run(e,d)}:function(c,d){return fc(c,{file:d,...a||b})}}let fe=[],ff={allowDangerousHtml:!0},fg=/^(https?|ircs?|mailto|xmpp)$/i,fh=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function fi(a){let b=function(a){let b=a.rehypePlugins||fe,c=a.remarkPlugins||fe,d=a.remarkRehypeOptions?{...a.remarkRehypeOptions,...ff}:ff;return ap().use(bX).use(c).use(fd,d).use(b)}(a),c=function(a){let b=a.children||"",c=new ai;return"string"==typeof b&&(c.value=b),c}(a);return function(a,b){let c=b.allowedElements,d=b.allowElement,e=b.components,g=b.disallowedElements,h=b.skipHtml,i=b.unwrapDisallowed,j=b.urlTransform||fj;for(let a of fh)Object.hasOwn(b,a.from)&&(a.from,a.to&&a.to,a.id);return b.className&&(a={type:"element",tagName:"div",properties:{className:b.className},children:"root"===a.type?a.children:[a]}),cF(a,function(a,b,e){if("raw"===a.type&&e&&"number"==typeof b)return h?e.children.splice(b,1):e.children[b]={type:"text",value:a.value},b;if("element"===a.type){let b;for(b in eQ)if(Object.hasOwn(eQ,b)&&Object.hasOwn(a.properties,b)){let c=a.properties[b],d=eQ[b];(null===d||d.includes(a.tagName))&&(a.properties[b]=j(String(c||""),b,a))}}if("element"===a.type){let f=c?!c.includes(a.tagName):!!g&&g.includes(a.tagName);if(!f&&d&&"number"==typeof b&&(f=!d(a,b,e)),f&&e&&"number"==typeof b)return i&&a.children?e.children.splice(b,1,...a.children):e.children.splice(b,1),b}}),function(a,b){var c,d,e,f;let g;if(!b||void 0===b.Fragment)throw TypeError("Expected `Fragment` in options");let h=b.filePath||void 0;if(b.development){if("function"!=typeof b.jsxDEV)throw TypeError("Expected `jsxDEV` in options when `development: true`");c=h,d=b.jsxDEV,g=function(a,b,e,f){let g=Array.isArray(e.children),h=eB(a);return d(b,e,f,g,{columnNumber:h?h.column-1:void 0,fileName:c,lineNumber:h?h.line:void 0},void 0)}}else{if("function"!=typeof b.jsx)throw TypeError("Expected `jsx` in production options");if("function"!=typeof b.jsxs)throw TypeError("Expected `jsxs` in production options");e=b.jsx,f=b.jsxs,g=function(a,b,c,d){let g=Array.isArray(c.children)?f:e;return d?g(b,c,d):g(b,c)}}let i={Fragment:b.Fragment,ancestors:[],components:b.components||{},create:g,elementAttributeNameCase:b.elementAttributeNameCase||"react",evaluater:b.createEvaluater?b.createEvaluater():void 0,filePath:h,ignoreInvalidStyle:b.ignoreInvalidStyle||!1,passKeys:!1!==b.passKeys,passNode:b.passNode||!1,schema:"svg"===b.space?es:er,stylePropertyNameCase:b.stylePropertyNameCase||"dom",tableCellAlignToStyle:!1!==b.tableCellAlignToStyle},j=eJ(i,a,void 0);return j&&"string"!=typeof j?j:i.create(a,i.Fragment,{children:j||void 0},void 0)}(a,{Fragment:f.Fragment,components:e,ignoreInvalidStyle:!0,jsx:f.jsx,jsxs:f.jsxs,passKeys:!0,passNode:!0})}(b.runSync(b.parse(c),c),a)}function fj(a){let b=a.indexOf(":"),c=a.indexOf("?"),d=a.indexOf("#"),e=a.indexOf("/");return -1===b||-1!==e&&b>e||-1!==c&&b>c||-1!==d&&b>d||fg.test(a.slice(0,b))?a:""}function fk({source:a,className:b,filename:c}){let d=(0,g.useRef)(null),[e,h]=(0,g.useState)(null),[i,k]=(0,g.useState)(null),{resolvedTheme:l}=(0,j.D)(),m=c&&(c.split(/[\\/]/).pop()?.trim()??"").replace(/\.(mmd|md|markdown)$/i,"").trim()||"diagram",n=!!i&&!e;return(0,f.jsxs)("div",{className:b,children:[n&&(0,f.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,f.jsx)("button",{type:"button",onClick:()=>{if(!i)return;let a=d.current?.querySelector("svg");if(!a)return void h("SVG export failed: rendered SVG not found");let b=a.cloneNode(!0);b.setAttribute("xmlns","http://www.w3.org/2000/svg"),b.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink");let c=new XMLSerializer().serializeToString(b),e=new Blob([c.startsWith("<?xml")?c:`<?xml version="1.0" encoding="UTF-8"?>
|
|
6
|
-
${c}`],{type:"image/svg+xml;charset=utf-8"}),f=URL.createObjectURL(e),g=document.createElement("a");g.href=f,g.download=`${m}.svg`,document.body.appendChild(g),g.click(),document.body.removeChild(g),URL.revokeObjectURL(f)},className:"btn btn-sm","aria-label":"Export diagram as SVG",title:"Export as SVG",children:"SVG"}),(0,f.jsx)("button",{type:"button",onClick:()=>{if(!i)return;let a=d.current?.querySelector("svg");if(!a)return void h("PNG export failed: rendered SVG not found");let b=800,c=600,e=a.viewBox?.baseVal;if(e&&e.width>0&&e.height>0)b=e.width,c=e.height;else try{let d=a.getBBox();d.width>0&&d.height>0&&(b=d.width,c=d.height)}catch{}let f=a.cloneNode(!0);f.setAttribute("xmlns","http://www.w3.org/2000/svg"),f.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),f.setAttribute("width",String(b)),f.setAttribute("height",String(c));let g=new XMLSerializer().serializeToString(f),j=new TextEncoder().encode(g),k="";for(let a=0;a<j.length;a++)k+=String.fromCharCode(j[a]);let n=`data:image/svg+xml;base64,${btoa(k)}`,o=document.createElement("canvas");o.width=Math.max(1,Math.round(2*b)),o.height=Math.max(1,Math.round(2*c));let p=o.getContext("2d");if(!p)return void h("PNG export failed: 2D canvas context unavailable");let q=new Image;q.onload=()=>{p.fillStyle="light"===l?"#ffffff":"#1f2937",p.fillRect(0,0,o.width,o.height),p.drawImage(q,0,0,o.width,o.height);try{o.toBlob(a=>{if(!a)return void h("PNG export failed: canvas returned empty blob");let b=URL.createObjectURL(a),c=document.createElement("a");c.href=b,c.download=`${m}.png`,document.body.appendChild(c),c.click(),document.body.removeChild(c),URL.revokeObjectURL(b)},"image/png")}catch(b){let a=b instanceof Error?b.message:String(b);h(`PNG export failed: ${a}`)}},q.onerror=()=>{h("PNG export failed: SVG could not be loaded as an image (it may reference external resources or unsupported features)")},q.src=n},className:"btn btn-sm","aria-label":"Export diagram as PNG",title:"Export as PNG (2x)",children:"PNG"})]}),e&&(0,f.jsxs)("pre",{className:"text-[var(--danger)] whitespace-pre-wrap mb-2 text-sm",children:["Mermaid render error: ",e]}),(0,f.jsx)("div",{ref:d}),e&&(0,f.jsx)("pre",{className:"mt-2 p-3 bg-zinc-900 text-zinc-100 text-xs overflow-x-auto",children:a})]})}function fl({content:a,className:b}){return(0,f.jsx)("div",{className:`prose dark:prose-invert max-w-none text-[var(--text-primary)] ${b||""}`,children:(0,f.jsx)(fi,{remarkPlugins:[dx],components:{h1:({children:a})=>(0,f.jsx)("h1",{className:"text-3xl font-black mb-6 bg-gradient-to-r from-[var(--accent)] via-amber-accent-light to-[var(--accent)] bg-clip-text text-transparent drop-shadow-[0_0_15px_color-mix(in_srgb,var(--accent)_20%,transparent)] font-title tracking-tight",children:a}),h2:({children:a})=>(0,f.jsx)("h2",{className:"text-amber-accent-light text-2xl font-bold mb-4 mt-8 border-b border-amber-accent/10 pb-2",children:a}),h3:({children:a})=>(0,f.jsx)("h3",{className:"text-amber-accent-light text-xl font-bold mb-3 mt-6",children:a}),h4:({children:a})=>(0,f.jsx)("h4",{className:"text-amber-accent-light text-lg font-semibold mb-2 mt-4",children:a}),h5:({children:a})=>(0,f.jsx)("h5",{className:"text-amber-accent-light text-base font-semibold mb-2",children:a}),h6:({children:a})=>(0,f.jsx)("h6",{className:"text-amber-accent-light text-sm font-semibold mb-2",children:a}),blockquote:({children:a})=>(0,f.jsx)("blockquote",{className:"border-l-4 border-amber-accent/30 bg-amber-accent/5 px-6 py-3 rounded-r-lg my-8 text-[var(--text-secondary)] italic leading-relaxed",children:a}),strong:({children:a})=>(0,f.jsx)("strong",{className:"font-bold text-amber-accent-light",children:a}),code:({className:a,children:b,...c})=>"language-mermaid"===a?(0,f.jsx)(fk,{source:String(b).replace(/\n$/,""),className:"my-4"}):(0,f.jsx)("code",{className:a,...c,children:b})},children:a})})}function fm({content:a,onChange:b}){let c=(0,g.useRef)(null);return(0,f.jsx)("div",{className:"flex flex-col h-full bg-[var(--bg-primary)]",children:(0,f.jsx)("textarea",{ref:c,value:a,onChange:a=>b(a.target.value),className:"flex-1 w-full p-8 bg-transparent border-none outline-none resize-none font-mono text-[14px] text-[var(--text-primary)] leading-relaxed scrollbar-thin",placeholder:"Start typing your markdown...",spellCheck:!1})})}function fn({open:a,title:b,onClose:c,onConfirm:d,loading:e}){return(0,f.jsx)(U.T,{open:a,onClose:c,onConfirm:d,title:"Delete file",message:(0,f.jsxs)(f.Fragment,{children:['Delete "',(0,f.jsx)("span",{className:"font-bold text-[var(--text-primary)]",children:b}),'"? Knowledge Base files are recoverable from git history (Time Travel). Project files are only removed from the index — the file on disk is untouched.']}),confirmLabel:"Delete",destructive:!0,loading:e})}function fo({open:a,onClose:b,title:c,body:d,detail:e}){return(0,f.jsxs)(R.l,{open:a,onClose:b,title:c,children:[(0,f.jsx)("p",{className:"text-sm text-[var(--text-primary)] mb-4 leading-relaxed",children:d}),e&&(0,f.jsxs)("div",{className:"bg-[var(--danger-soft)] border border-[var(--danger)]/20 rounded-lg p-4 mb-6",children:[(0,f.jsx)("p",{className:"text-[11px] text-[var(--danger)] uppercase tracking-tighter font-bold mb-2 opacity-70",children:"Detail:"}),(0,f.jsx)("pre",{className:"text-[12px] font-mono text-[var(--danger)] whitespace-pre-wrap break-words leading-tight overflow-x-auto max-h-48 custom-scrollbar",children:e})]}),(0,f.jsx)("div",{className:"flex justify-end",children:(0,f.jsx)("button",{onClick:b,className:"btn btn-md btn-destructive",children:"Got it"})})]})}let fp=({className:a})=>(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",className:a,children:[(0,f.jsx)("path",{d:"M3 6h18"}),(0,f.jsx)("path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"}),(0,f.jsx)("path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"})]}),fq=({className:a})=>(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:a,children:[(0,f.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,f.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,f.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]});function fr(a,b,c){let d=new Blob([a],{type:c}),e=URL.createObjectURL(d),f=document.createElement("a");f.href=e,f.download=b,document.body.appendChild(f),f.click(),f.remove(),URL.revokeObjectURL(e)}let fs=({filled:a,className:b})=>(0,f.jsx)("svg",{viewBox:"0 0 24 24",fill:a?"currentColor":"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:b,children:(0,f.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"})});function ft({fileId:a,onDelete:b,onChanged:c,onDirtyChange:d}){var e;let[h,j]=(0,g.useState)(null),[k,l]=(0,g.useState)(null),[m,n]=(0,g.useState)(!1),[o,p]=(0,g.useState)(!1),[q,s]=(0,g.useState)([]),[t,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(""),[y,z]=(0,g.useState)(!1),[A,C]=(0,g.useState)(!1),[D,E]=(0,g.useState)(!1),[F,G]=(0,g.useState)(!1),[H,J]=(0,g.useState)(!1),[K,L]=(0,g.useState)(""),[M,N]=(0,g.useState)(""),[O,P]=(0,g.useState)(void 0),[Q,R]=(0,g.useState)(!1),[S,T]=(0,g.useState)(!1),U=()=>(h?.title||"untitled").replace(/\.(md|mmd)$/i,""),V=async()=>{h&&(fr(String(await ap().use(bX).use(dx).use(dU,{keep:["code","inlineCode","table","tableCell"]}).use(dQ).process(h.content)),`${U()}.txt`,"text/plain"),i.o.success("Exported text"))},[X,Y]=(0,g.useState)(!1),Z=async()=>{if(!h)return;Y(!0);let a=i.o.loading("Generating PDF…");try{let b=await fetch(`/api/files/${h.id}/export-pdf`);if(!b.ok){let c=await b.text(),d=`Failed to export PDF (HTTP ${b.status})`;try{let a=JSON.parse(c);a?.error&&(d=a.error)}catch{console.error("[export-pdf] non-JSON error response:",c)}i.o.error(d,{id:a});return}let c=b.headers.get("content-disposition")||"",d=/filename="([^"]+)"/.exec(c),e=d?.[1]??`${U()}.pdf`,f=await b.blob(),g=URL.createObjectURL(f),j=document.createElement("a");j.href=g,j.download=e,document.body.appendChild(j),j.click(),j.remove(),URL.revokeObjectURL(g),i.o.success("Exported PDF",{id:a})}catch(b){console.error("[export-pdf] request failed:",b),i.o.error("Failed to export PDF — check the browser console for details.",{id:a})}finally{Y(!1)}},$=async()=>{if(a){R(!0);try{let b=await fetch(`/api/files/${a}`);if(b.ok){let a=await b.json();j(a),w(a.content)}else i.o.error(`Failed to refresh file (HTTP ${b.status})`)}catch(a){i.o.error(`Failed to refresh file: ${a?.message??"Network error"}`)}finally{R(!1)}}},_=(0,g.useRef)(a);(0,g.useRef)(d);let aa=async()=>{if(null!=a){T(!0);try{let d=await fetch(`/api/files/${a}`,{method:"DELETE"});if(d.ok)l(null),j(null),b(a).catch(a=>console.error("onDelete after orphan remove failed:",a)),c?.();else{let a=await d.json().catch(()=>({}));l({kind:"http",message:a?.error??`Remove failed: HTTP ${d.status}`,status:d.status})}}catch(a){l({kind:"network",message:a?.message??"Network error while removing orphan row"})}finally{T(!1)}}},ab=async()=>{if(a){u(!0);try{let b=await fetch(`/api/files/${a}/history`);if(b.ok){let c=await b.json();if(_.current!==a)return;s(c)}}catch(a){console.error("Failed to fetch history:",a)}finally{_.current===a&&u(!1)}}},ac=async b=>{if(a)try{let c=await fetch(`/api/files/${a}/history/restore`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({hash:b})});if(c.ok){let b=await c.json();if(_.current!==a)return;j(c=>c&&c.id===a?{...c,content:b.content}:c),w(b.content),p(!1),i.o.success("Restored from history")}else{let a=await c.json().catch(()=>({}));i.o.error(a?.error||"Failed to restore version")}}catch(a){i.o.error(`Failed to restore version: ${a?.message??"Network error"}`)}},ad=()=>{n(!1),w(h?.content||"")},ae=async()=>{if(!h)return;let a=h.id;try{C(!0);let b=await fetch(`/api/files/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:v,expected_updated_at:h.updated_at})});if(b.ok){let c=await b.json();if(_.current!==a){c.git_warning&&console.warn(`[kontexta] git_warning for stale file ${a}:`,c.git_warning);return}j(c),n(!1),i.o.success("Saved"),c.git_warning&&(L("Git commit failed"),N("Your changes were saved to the database, but Kontexta could not create a Git history entry for this file."),P(c.git_warning),J(!0))}else if(409===b.status){let c,d;try{let a=await b.json();c=a?.current?.content,d=a?.current?.updated_at}catch{}_.current===a&&(void 0!==c&&void 0!==d&&j(a=>a?{...a,content:c,updated_at:d}:a),L("File changed on disk"),N("This file was NOT saved — it was modified elsewhere since you opened it. Disk content has been reloaded below; your edits are still in the editor. Click Save again to overwrite with your edits."),P(void 0),J(!0))}else{let c=`Save failed (${b.status})`;try{let a=await b.json();a?.error&&(c=a.error)}catch{}_.current===a&&(L("Save failed"),N("Your changes were NOT saved."),P(c),J(!0))}}catch(b){console.error("Failed to save file:",b),_.current===a&&(L("Save failed"),N("Your changes were NOT saved — a network error occurred."),P(b?.message??"Network error while saving"),J(!0))}finally{_.current===a&&C(!1)}},af=async()=>{if(h){G(!0);try{await b(h.id),j(null),E(!1)}finally{G(!1)}}};if(!a)return(0,f.jsx)("div",{className:"h-full flex flex-col items-center justify-center animate-fade-in",children:(0,f.jsx)(B,{icon:(0,f.jsx)(x,{className:"w-16 h-16 opacity-40 dark-icon","aria-hidden":!0}),title:"Select a file to preview",hint:"Choose a file from the list on the left"})});if(y)return(0,f.jsxs)("div",{className:"h-full flex flex-col animate-fade-in",children:[(0,f.jsxs)("div",{className:"border-b border-[var(--border)] px-6 py-4",children:[(0,f.jsx)("div",{className:"skeleton h-6 w-48 mb-2"}),(0,f.jsx)("div",{className:"skeleton h-4 w-32"})]}),(0,f.jsxs)("div",{className:"flex-1 p-6 space-y-4",children:[(0,f.jsx)("div",{className:"skeleton h-4 w-full"}),(0,f.jsx)("div",{className:"skeleton h-4 w-5/6"}),(0,f.jsx)("div",{className:"skeleton h-4 w-4/6"}),(0,f.jsx)("div",{className:"skeleton h-4 w-full"}),(0,f.jsx)("div",{className:"skeleton h-4 w-3/4"})]})]});if(!h)return k?.kind==="disk_missing"?(0,f.jsxs)("div",{className:"h-full flex flex-col items-center justify-center text-[var(--text-secondary)] gap-4 animate-fade-in p-8",children:[(0,f.jsx)(W,{className:"w-16 h-16 opacity-40 dark-icon","aria-hidden":!0}),(0,f.jsxs)("div",{className:"text-center max-w-lg",children:[(0,f.jsx)("p",{className:"text-lg font-bold text-[var(--text-primary)]",children:"File is missing on disk"}),(0,f.jsx)("p",{className:"text-sm font-medium text-[var(--text-secondary)] mt-2",children:"The index still has a row for this file, but the file at the path below no longer exists. This usually happens when the file was deleted while the watcher wasn't running."}),k.path&&(0,f.jsx)("pre",{className:"mt-3 p-2 bg-[var(--bg-tertiary)] text-[var(--text-primary)] text-xs overflow-x-auto rounded",children:k.path}),(0,f.jsx)("button",{type:"button",className:"btn btn-sm mt-4",onClick:aa,disabled:S,children:S?"Removing…":"Remove from index"})]})]}):k?(0,f.jsxs)("div",{className:"h-full flex flex-col items-center justify-center text-[var(--text-secondary)] gap-3 animate-fade-in p-8",children:[(0,f.jsx)(W,{className:"w-16 h-16 opacity-40 dark-icon","aria-hidden":!0}),(0,f.jsxs)("div",{className:"text-center max-w-lg",children:[(0,f.jsxs)("p",{className:"text-lg font-bold text-[var(--text-primary)]",children:["Failed to load file",k.status?` (HTTP ${k.status})`:""]}),(0,f.jsx)("p",{className:"text-sm font-medium text-[var(--text-secondary)] mt-2 break-words",children:k.message})]})]}):(0,f.jsx)("div",{className:"h-full flex flex-col items-center justify-center animate-fade-in",children:(0,f.jsx)(B,{icon:(0,f.jsx)(I,{className:"w-16 h-16 opacity-40 dark-icon","aria-hidden":!0}),title:"File not found",hint:"This file may have been moved or deleted"})});return(0,f.jsxs)("div",{className:"h-full flex flex-col animate-fade-in",children:[(0,f.jsxs)("div",{className:"h-10 px-4 border-b border-[var(--border)] flex items-center gap-4 text-[14px] sticky top-0 bg-[var(--bg-primary)] z-10",children:[["view","edit","history"].map(a=>{let b="view"===a&&!m&&!o||"edit"===a&&m||"history"===a&&o;return(0,f.jsx)("button",{onClick:()=>{if("edit"===a){m||(n(!0),w(h?.content||""));return}m&&ad(),p("history"===a),"history"===a&&ab()},className:`btn btn-sm -mb-px py-2 border-b-2 transition-colors ${b?"border-[var(--accent)]":""}`,children:a[0].toUpperCase()+a.slice(1)},a)}),(0,f.jsx)("div",{className:"ml-auto flex items-center gap-3 text-[12px] text-[var(--text-secondary)] font-mono",children:m?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("button",{onClick:ae,disabled:A,className:"btn btn-md",children:A?"Saving...":"Save"}),(0,f.jsx)("button",{onClick:ad,disabled:A,className:"btn btn-md",children:"Cancel"})]}):(0,f.jsxs)(f.Fragment,{children:[h?.updated_at&&(0,f.jsxs)("span",{children:["edited ",function(a){if(!a)return"";let b=new Date(a).getTime();if(!isFinite(b))return a;let c=Math.floor((Date.now()-b)/1e3);return c<60?`${c}s ago`:c<3600?`${Math.floor(c/60)}m ago`:c<86400?`${Math.floor(c/3600)}h ago`:`${Math.floor(c/86400)}d ago`}(h.updated_at)]}),h?.content&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("span",{className:"text-[var(--border)]",children:"\xb7"}),(0,f.jsxs)("span",{title:`~${Math.max(1,Math.ceil(h.content.length/4)).toLocaleString()} tokens (heuristic: chars/4)`,children:["~",(e=Math.max(1,Math.ceil(h.content.length/4)))<1e3?String(e):e<1e4?`${(e/1e3).toFixed(1)}k`:e<1e6?`${Math.round(e/1e3)}k`:`${(e/1e6).toFixed(1)}M`," tok"]})]}),(0,f.jsx)("button",{onClick:$,disabled:Q,className:"btn btn-md","aria-label":"Refresh file",title:"Refresh file content",children:(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:`w-4 h-4 opacity-70 ${Q?"animate-spin":""}`,children:[(0,f.jsx)("path",{d:"M21 2v6h-6"}),(0,f.jsx)("path",{d:"M3 12a9 9 0 0 1 15-6.7L21 8"}),(0,f.jsx)("path",{d:"M3 22v-6h6"}),(0,f.jsx)("path",{d:"M21 12a9 9 0 0 1-15 6.7L3 16"})]})}),(0,f.jsx)("button",{onClick:async()=>{if(!h)return;let a=!h.favorite;j({...h,favorite:a});try{if(!(await fetch(`/api/files/${h.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({favorite:a})})).ok)throw Error("PATCH failed");c?.()}catch(b){j({...h,favorite:!a}),i.o.error(`Failed to update favorite: ${b?.message??"Network error"}`)}},className:"btn btn-md","aria-label":h?.favorite?"Unfavorite":"Favorite",title:h?.favorite?"Remove from favorites":"Add to favorites",children:(0,f.jsx)(fs,{filled:!!h?.favorite,className:`w-4 h-4 ${h?.favorite?"text-amber-accent":"opacity-60"}`})}),(0,f.jsx)(r,{trigger:(0,f.jsx)("button",{disabled:X,className:"btn btn-md","aria-label":"Export file",title:X?"Generating PDF…":"Export file",children:(0,f.jsx)(fq,{className:`w-4 h-4 opacity-70 ${X?"animate-pulse":""}`})}),items:[{label:"Markdown (.md)",onSelect:()=>{h&&(fr(h.content,`${U()}.md`,"text/markdown"),i.o.success("Exported Markdown"))}},{label:"Text (.txt)",onSelect:()=>{V()}},{label:"PDF",onSelect:Z}]}),(0,f.jsx)("button",{onClick:()=>E(!0),className:"btn btn-md btn-destructive","aria-label":"Delete file",title:"Delete file",children:(0,f.jsx)(fp,{className:"w-4 h-4 opacity-70"})})]})})]}),!m&&!o&&(0,f.jsxs)("div",{className:"px-4 py-2 border-b border-[var(--border)] flex flex-wrap items-center gap-2 text-[12px]",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] uppercase tracking-wider text-[10px] font-bold",children:"Tags"}),(h?.tags??[]).map(a=>(0,f.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded bg-amber-accent/10 border border-amber-accent/30 text-[var(--text-primary)]",children:[a,(0,f.jsx)("button",{"aria-label":`Remove tag ${a}`,title:`Remove tag ${a}`,onClick:async()=>{if(!h)return;let b=h.id,d=h.tags,e=d.filter(b=>b!==a);j(a=>a&&a.id===b?{...a,tags:e}:a);try{if(!(await fetch(`/api/files/${b}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tags:e})})).ok)throw Error("PATCH failed");c?.()}catch(a){j(a=>a&&a.id===b?{...a,tags:d}:a),i.o.error(`Failed to remove tag: ${a?.message??"Network error"}`)}},className:"text-[var(--text-secondary)] hover:text-[var(--danger)]",children:"\xd7"})]},a)),(0,f.jsx)("input",{type:"text",placeholder:"add tag…",className:"bg-transparent border-b border-transparent focus:border-amber-accent/40 outline-none px-1 py-0.5 w-24",onKeyDown:async a=>{if("Enter"!==a.key||!h)return;let b=(a.currentTarget.value||"").trim();if(!b)return;let d=b.toLowerCase().replace(/\s+/g,"-");if(h.tags.includes(d)){a.currentTarget.value="";return}let e=h.id,f=h.tags,g=[...f,d];j(a=>a&&a.id===e?{...a,tags:g}:a),a.currentTarget.value="";try{if(!(await fetch(`/api/files/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tags:g})})).ok)throw Error("PATCH failed");c?.()}catch(a){j(a=>a&&a.id===e?{...a,tags:f}:a),i.o.error(`Failed to add tag: ${a?.message??"Network error"}`)}}})]}),(0,f.jsx)("div",{className:"flex-1 overflow-hidden",children:m?(0,f.jsx)(fm,{content:v,onChange:w}):o?(0,f.jsx)("div",{className:"h-full overflow-auto bg-[var(--bg-secondary)] p-6",children:(0,f.jsxs)("div",{className:"max-w-2xl mx-auto space-y-4",children:[(0,f.jsx)("h3",{className:"text-sm font-bold text-[var(--text-secondary)] uppercase tracking-widest mb-6",children:"Version History (Time Travel)"}),t?(0,f.jsx)("div",{className:"space-y-4",children:[1,2,3].map(a=>(0,f.jsx)("div",{className:"skeleton h-20 w-full rounded-lg"},a))}):0===q.length?(0,f.jsx)("div",{className:"text-center py-12",children:(0,f.jsx)("p",{className:"text-[var(--muted)]",children:"No version history found for this file."})}):(0,f.jsx)("div",{className:"space-y-3",children:q.map(a=>(0,f.jsxs)("div",{className:"bg-white dark:bg-[#1a1a1a] border border-[var(--border)] rounded-lg p-4 flex items-center justify-between hover:border-amber-accent/50 transition-colors shadow-sm",children:[(0,f.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,f.jsx)("p",{className:"text-sm font-bold text-[var(--text-primary)] truncate",children:a.message}),(0,f.jsxs)("div",{className:"flex items-center gap-3 mt-1 text-[10px] text-[var(--text-secondary)] uppercase tracking-tighter font-bold",children:[(0,f.jsx)("span",{children:new Date(a.date).toLocaleString()}),(0,f.jsx)("span",{className:"opacity-30",children:"•"}),(0,f.jsx)("span",{className:"font-mono text-amber-accent",children:a.hash.substring(0,7)})]})]}),(0,f.jsx)("button",{onClick:()=>ac(a.hash),className:"ml-4 btn btn-md",children:"RESTORE"})]},a.hash))})]})}):(0,f.jsx)("div",{className:"h-full overflow-auto",children:h.path.endsWith(".mmd")?(0,f.jsx)(fk,{source:h.content,className:"p-8",filename:h.title}):(0,f.jsx)(fl,{content:h.content,className:"p-8"})})}),(0,f.jsx)(fn,{open:D,title:h.title,onClose:()=>E(!1),onConfirm:af,loading:F}),(0,f.jsx)(fo,{open:H,onClose:()=>J(!1),title:K,body:M,detail:O})]},a)}function fu({open:a,onClose:b,onSelectFile:c}){let[d,e]=(0,g.useState)(""),[h,i]=(0,g.useState)([]),[j,k]=(0,g.useState)(0),[l,m]=(0,g.useState)(!1),n=(0,g.useRef)(null);return(0,g.useRef)(void 0),(0,f.jsx)(R.l,{open:a,onClose:b,title:"Search",hideHeader:!0,widthClass:"max-w-[560px]",positionClass:"left-1/2 top-[20vh] -translate-x-1/2",children:(0,f.jsxs)("div",{className:"-m-5 overflow-hidden rounded-xl",children:[(0,f.jsx)("div",{className:"relative",children:(0,f.jsx)("input",{ref:n,type:"text",value:d,onChange:a=>e(a.target.value),onKeyDown:a=>{"Escape"===a.key?b():"ArrowDown"===a.key?(a.preventDefault(),k(a=>Math.min(a+1,h.length-1))):"ArrowUp"===a.key?(a.preventDefault(),k(a=>Math.max(a-1,0))):"Enter"===a.key&&h.length>0&&(a.preventDefault(),c(h[j]))},placeholder:"Search context files...",className:"w-full px-6 py-5 text-base bg-transparent border-b border-[var(--border)] outline-none text-[var(--text-primary)] placeholder:text-[var(--text-secondary)] focus:ring-1 focus:ring-amber-accent/30 transition-all"})}),(0,f.jsxs)("div",{className:"max-h-[400px] overflow-y-auto scrollbar-thin",children:[l&&(0,f.jsx)("div",{className:"p-6 space-y-4",children:[1,2,3].map(a=>(0,f.jsxs)("div",{className:"flex flex-col gap-2 px-1",children:[(0,f.jsx)("div",{className:"skeleton h-4 w-3/4 opacity-20"}),(0,f.jsx)("div",{className:"skeleton h-3 w-1/4 opacity-10"})]},a))}),!l&&d&&0===h.length&&(0,f.jsxs)("div",{className:"flex flex-col items-center py-12 text-[var(--text-secondary)] gap-3",children:[(0,f.jsx)(I,{className:"w-8 h-8 opacity-30","aria-hidden":!0}),(0,f.jsx)("p",{className:"text-sm font-medium",children:"No results found"}),(0,f.jsx)("p",{className:"text-xs opacity-60 italic",children:"Try a different search term"})]}),!l&&h.length>0&&(0,f.jsx)("div",{className:"p-1",children:h.map((a,b)=>(0,f.jsxs)("button",{onClick:()=>{c(a)},onMouseEnter:()=>k(b),className:`w-full px-5 py-4 text-left rounded-lg transition-all duration-200 flex flex-col gap-1 ${b===j?"bg-[var(--accent-soft)]":"hover:bg-[var(--accent-soft)]/60"}`,children:[(0,f.jsx)("div",{className:"text-sm font-semibold transition-colors text-[var(--text-primary)]",children:a.title}),(0,f.jsxs)("div",{className:"text-xs transition-colors text-[var(--text-secondary)]",children:[a.storage_type," \xb7 ",a.path]})]},a.id))})]})]})})}function fv({open:a,onClose:b}){let[c,d]=(0,g.useState)(null),[e,h]=(0,g.useState)(!1);return(0,f.jsx)(R.l,{open:a,onClose:b,title:"About Kontexta",widthClass:"max-w-xl",hideHeader:!0,children:(0,f.jsxs)("div",{className:"-m-5 flex flex-col max-h-[75vh] overflow-hidden",children:[(0,f.jsxs)("div",{className:"p-6 text-center border-b border-[var(--border)] shrink-0",children:[(0,f.jsx)("div",{className:"flex justify-center -mb-3",children:(0,f.jsx)(o.H,{size:"lg"})}),(0,f.jsx)("h1",{className:"text-3xl font-extrabold tracking-[4px] font-[family-name:var(--font-title)] text-[var(--accent)] dark:text-[var(--text-primary)] drop-shadow-[0_0_14px_color-mix(in_srgb,var(--accent)_55%,transparent)] dark:drop-shadow-none",children:"KONTEXTA"}),(0,f.jsxs)("p",{className:"text-sm font-medium text-[var(--text-secondary)] mt-2",children:["by ",c?.author||"Safiyu"," • v",c?.version||"0.1.0"]}),(0,f.jsx)("p",{className:"text-sm text-[var(--text-secondary)] mt-2",children:"A modern context management system for AI-assisted development"})]}),(0,f.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto prose-sm",children:[e&&(0,f.jsxs)("div",{className:"p-6 space-y-3",children:[(0,f.jsx)("div",{className:"skeleton h-4 w-full"}),(0,f.jsx)("div",{className:"skeleton h-4 w-5/6"}),(0,f.jsx)("div",{className:"skeleton h-4 w-4/6"})]}),!e&&c?.changelog&&(0,f.jsx)(fl,{content:c.changelog,className:"p-6 prose-sm text-[var(--accent)] marker:text-[var(--accent)] [&_*]:!text-[var(--accent)]"}),!e&&!c?.changelog&&(0,f.jsx)("div",{className:"p-6 text-center text-[var(--text-secondary)]",children:"No changelog available"})]}),(0,f.jsx)("div",{className:"p-3 border-t border-[var(--border)] text-center shrink-0",children:(0,f.jsx)("button",{onClick:b,className:"btn btn-md",children:"Close"})})]})})}function fw({open:a,onClose:b,onCreate:c,currentProjectId:d,availableFolders:e}){let[h,i]=(0,g.useState)(""),[j,k]=(0,g.useState)(""),[l,m]=(0,g.useState)(""),[n,o]=(0,g.useState)(d?"project":"knowledge"),[p,q]=(0,g.useState)(!1),r=async a=>{if(a.preventDefault(),h.trim()){q(!0);try{await c(h,j,n,l||void 0)&&(i(""),k(""),m(""),b())}catch(a){console.error("Failed to create file:",a)}finally{q(!1)}}};return(0,f.jsx)(R.l,{open:a,onClose:b,title:"New file",widthClass:"max-w-lg",children:(0,f.jsxs)("form",{onSubmit:r,children:[(0,f.jsxs)("div",{className:"space-y-4",children:[(0,f.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"TITLE"}),(0,f.jsx)("input",{type:"text",value:h,onChange:a=>i(a.target.value),placeholder:"e.g. Architecture Overview",className:"w-full bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50",required:!0,autoFocus:!0})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"FOLDER"}),e.length>0?(0,f.jsxs)("select",{value:l,onChange:a=>m(a.target.value),className:"w-full bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50 cursor-pointer",children:[(0,f.jsx)("option",{value:"",children:"— Root level —"}),e.map(a=>(0,f.jsx)("option",{value:a,children:a},a))]}):(0,f.jsx)("input",{type:"text",value:l,onChange:a=>m(a.target.value),placeholder:"No folders yet — type to create",className:"w-full bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50"})]})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"DESTINATION"}),(0,f.jsxs)("div",{className:"flex gap-3",children:[(0,f.jsx)("button",{type:"button",onClick:()=>o("knowledge"),className:`btn btn-sm flex-1 ${"knowledge"===n?"border-[var(--accent)]":""}`,children:"KNOWLEDGE BASE"}),d&&(0,f.jsx)("button",{type:"button",onClick:()=>o("project"),className:`btn btn-sm flex-1 ${"project"===n?"border-[var(--accent)]":""}`,children:"PROJECT ROOT"})]})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"CONTENT (MARKDOWN)"}),(0,f.jsx)("textarea",{value:j,onChange:a=>k(a.target.value),placeholder:"# Introduction\nStart typing here...",rows:8,className:"w-full bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50 font-mono resize-none"})]})]}),(0,f.jsxs)("div",{className:"flex justify-end gap-3 mt-5",children:[(0,f.jsx)("button",{type:"button",onClick:b,className:"btn btn-md",children:"CANCEL"}),(0,f.jsx)("button",{type:"submit",disabled:p||!h.trim(),className:"btn btn-md",children:p?"CREATING...":"CREATE FILE"})]})]})})}function fx({open:a,onClose:b,onCreate:c}){let[d,e]=(0,g.useState)(""),[h,i]=(0,g.useState)(!1),j=async a=>{if(a.preventDefault(),d.trim()){i(!0);try{await c(d)&&(e(""),b())}catch(a){console.error("Failed to create folder:",a)}finally{i(!1)}}};return(0,f.jsx)(R.l,{open:a,onClose:b,title:"New folder",children:(0,f.jsxs)("form",{onSubmit:j,children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"FOLDER NAME"}),(0,f.jsx)("input",{type:"text",value:d,onChange:a=>e(a.target.value),placeholder:"e.g. documentation",className:"w-full bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50",autoFocus:!0,required:!0}),(0,f.jsx)("p",{className:"text-[10px] text-[var(--text-secondary)] mt-2 italic",children:"Folder will be created in the Knowledge Base."}),(0,f.jsxs)("div",{className:"flex justify-end gap-3 mt-5",children:[(0,f.jsx)("button",{type:"button",onClick:b,className:"btn btn-md",children:"CANCEL"}),(0,f.jsx)("button",{type:"submit",disabled:h||!d.trim(),className:"btn btn-md",children:h?"CREATING...":"CREATE FOLDER"})]})]})})}function fy({open:a,folderName:b,onClose:c,onConfirm:d,loading:e}){return(0,f.jsx)(U.T,{open:a,onClose:c,onConfirm:d,title:"Delete folder",message:(0,f.jsxs)(f.Fragment,{children:["Are you sure you want to delete the folder"," ",(0,f.jsxs)("span",{className:"font-bold text-[var(--text-primary)]",children:['"',b,'"']}),"? This will permanently remove the directory from your disk."]}),confirmLabel:"Delete folder",destructive:!0,loading:e})}function fz({isOpen:a,onClose:b,onConfirm:c,projectName:d}){return(0,f.jsx)(U.T,{open:a,onClose:b,onConfirm:c,title:"Unregister project",message:(0,f.jsxs)(f.Fragment,{children:["Are you sure you want to remove ",(0,f.jsxs)("span",{className:"font-bold text-[var(--text-primary)]",children:['"',d,'"']})," from Kontexta?",(0,f.jsx)("br",{}),(0,f.jsx)("br",{}),"This will remove all associated context files from your AI's memory, but your"," ",(0,f.jsx)("span",{className:"text-amber-accent font-bold",children:"actual source code will remain safe"})," on your disk.",(0,f.jsx)("br",{}),(0,f.jsx)("br",{}),(0,f.jsx)("span",{className:"text-[10px] uppercase tracking-widest font-bold",children:"This action is permanent for Kontexta metadata."})]}),confirmLabel:"Unregister",destructive:!0})}function fA({schema:a}){let b=a.properties??{},c=new Set(a.required??[]),d=Object.entries(b);return 0===d.length?(0,f.jsx)("div",{className:"text-sm text-[var(--text-secondary)] italic",children:"No parameters."}):(0,f.jsxs)("table",{className:"w-full text-sm border-collapse",children:[(0,f.jsx)("thead",{children:(0,f.jsxs)("tr",{className:"border-b border-[var(--border)] text-left text-xs uppercase text-[var(--text-secondary)]",children:[(0,f.jsx)("th",{className:"py-1 pr-3",children:"Param"}),(0,f.jsx)("th",{className:"py-1 pr-3",children:"Type"}),(0,f.jsx)("th",{className:"py-1 pr-3",children:"Required"}),(0,f.jsx)("th",{className:"py-1",children:"Notes"})]})}),(0,f.jsx)("tbody",{children:d.map(([a,b])=>(0,f.jsxs)("tr",{className:"border-b border-[var(--border)]",children:[(0,f.jsx)("td",{className:"py-1 pr-3 font-mono",children:a}),(0,f.jsx)("td",{className:"py-1 pr-3",children:b.enum?"enum":"array"===b.type&&b.items?.type?`${b.items.type}[]`:b.type??"any"}),(0,f.jsx)("td",{className:"py-1 pr-3",children:c.has(a)?"required":"optional"}),(0,f.jsx)("td",{className:"py-1",children:function(a){let b=[];return a.enum&&b.push(a.enum.map(a=>String(a)).join(" | ")),void 0!==a.default&&b.push(`default: ${JSON.stringify(a.default)}`),void 0!==a.minimum&&b.push(`min: ${a.minimum}`),void 0!==a.maximum&&b.push(`max: ${a.maximum}`),a.description&&b.push(a.description),b.join(" — ")}(b)})]},a))})]})}function fB({tool:a}){return(0,f.jsxs)("div",{id:a.name,className:"border border-[var(--border)] rounded-md p-4 mb-3 bg-[var(--bg-secondary)]",children:[(0,f.jsxs)("div",{className:"flex items-baseline justify-between gap-3 mb-2",children:[(0,f.jsx)("h3",{className:"font-mono text-base font-semibold",children:a.name}),(0,f.jsx)("a",{href:`#${a.name}`,className:"text-xs text-[var(--text-secondary)]",title:"permalink",children:"\xa7"})]}),(0,f.jsx)("p",{className:"text-sm whitespace-pre-wrap mb-3",children:a.description}),(0,f.jsx)(fA,{schema:a.inputSchema})]})}function fC(){let[a,b]=(0,g.useState)(null),[c,d]=(0,g.useState)(""),e=(0,g.useMemo)(()=>{if(!a)return[];let b=c.trim().toLowerCase();return a.tools.filter(a=>!b||a.name.toLowerCase().includes(b)||a.description.toLowerCase().includes(b))},[a,c]),h=(0,g.useMemo)(()=>{if(!a)return new Map;let b=new Map;for(let c of a.categoryOrder)b.set(c,[]);for(let a of e){let c=b.get(a.category)??[];c.push(a),b.set(a.category,c)}return b},[a,e]);return a?(0,f.jsxs)("div",{className:"max-w-4xl mx-auto",children:[(0,f.jsx)("input",{type:"search",value:c,onChange:a=>d(a.target.value),placeholder:"Search tools…",className:"w-full px-3 py-2 mb-4 bg-[var(--bg-secondary)] border border-[var(--border)] rounded sticky top-0 z-10"}),[...h.entries()].map(([a,b])=>0===b.length?null:(0,f.jsxs)("section",{className:"mb-6",children:[(0,f.jsx)("h2",{className:"text-xs uppercase tracking-wider text-[var(--text-secondary)] mb-2",children:a}),b.map(a=>(0,f.jsx)(fB,{tool:a},a.name))]},a))]}):(0,f.jsx)("div",{className:"text-sm",children:"Loading…"})}function fD({body:a,configPath:b,notes:c}){let[d,e]=(0,g.useState)(!1),h=async()=>{try{if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(a);else{let b=document.createElement("textarea");b.value=a,b.style.position="fixed",b.style.left="-9999px",document.body.appendChild(b),b.select(),document.execCommand("copy"),document.body.removeChild(b)}}catch{}e(!0),setTimeout(()=>e(!1),1500)};return(0,f.jsxs)("div",{className:"flex flex-col gap-3",children:[b&&(0,f.jsxs)("div",{className:"p-3 bg-[var(--bg-secondary)] border border-[var(--accent-soft)] rounded text-xs",children:[(0,f.jsx)("div",{className:"text-[var(--text-secondary)] mb-1 uppercase tracking-wider font-bold",children:"Configuration Path"}),(0,f.jsx)("div",{className:"font-mono break-all",children:b})]}),(0,f.jsxs)("div",{className:"relative",children:[(0,f.jsx)("pre",{className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded p-3 text-xs overflow-x-auto whitespace-pre",children:a}),(0,f.jsx)("button",{onClick:h,className:"absolute top-2 right-2 px-2 py-1 text-xs bg-[var(--bg-primary)] border border-[var(--border)] rounded hover:border-[var(--accent)] transition-colors",children:d?"Copied":"Copy"})]}),c&&c.length>0&&(0,f.jsx)("div",{className:"text-xs text-[var(--text-secondary)] px-1",children:(0,f.jsx)("ul",{className:"list-disc list-inside space-y-1",children:c.map((a,b)=>(0,f.jsx)("li",{children:a},b))})})]})}let fE=[{id:"claude-code",label:"Claude Code"},{id:"claude-desktop",label:"Claude Desktop"},{id:"cursor",label:"Cursor"},{id:"codex",label:"Codex"},{id:"gemini",label:"Gemini"},{id:"antigravity",label:"Antigravity"},{id:"continue",label:"Continue"},{id:"aider",label:"Aider"},{id:"cline",label:"Cline"},{id:"copilot",label:"GitHub Copilot (VS Code Insider)"},{id:"generic",label:"Generic JSON"}],fF=[{id:"docker",label:"Docker"},{id:"npm",label:"npm (npx)"},{id:"source",label:"Source build"}];function fG(){let[a,b]=(0,g.useState)("claude-code"),[c,d]=(0,g.useState)("docker"),[e,h]=(0,g.useState)(null),[i,j]=(0,g.useState)(null),[k,l]=(0,g.useState)(null);return(0,f.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,f.jsxs)("div",{className:"flex gap-3 mb-4",children:[(0,f.jsxs)("label",{className:"flex flex-col text-xs",children:[(0,f.jsx)("span",{className:"mb-1 text-[var(--text-secondary)]",children:"AI client"}),(0,f.jsx)("select",{"aria-label":"AI client",value:a,onChange:a=>b(a.target.value),className:"px-2 py-1 bg-[var(--bg-secondary)] border border-[var(--border)] rounded",children:fE.map(a=>(0,f.jsx)("option",{value:a.id,children:a.label},a.id))})]}),(0,f.jsxs)("label",{className:"flex flex-col text-xs",children:[(0,f.jsx)("span",{className:"mb-1 text-[var(--text-secondary)]",children:"Install method"}),(0,f.jsx)("select",{"aria-label":"Install method",value:c,onChange:a=>d(a.target.value),className:"px-2 py-1 bg-[var(--bg-secondary)] border border-[var(--border)] rounded",children:fF.map(a=>(0,f.jsxs)("option",{value:a.id,children:[a.label,i===a.id?" (current)":""]},a.id))})]})]}),k&&(0,f.jsxs)("div",{className:"mb-3 text-xs text-[var(--text-secondary)] flex items-center gap-1.5",children:[(0,f.jsx)(w,{className:"w-3.5 h-3.5 opacity-60","aria-hidden":!0}),(0,f.jsxs)("span",{children:["Data directory:"," ",(0,f.jsx)("code",{className:"text-[var(--text-primary)] font-mono",children:k.isDefaultDir?k.defaultDirDisplay:k.dataDir}),k.isDefaultDir&&(0,f.jsx)("span",{className:"ml-1 opacity-60",children:"(OS default)"})]})]}),e&&(0,f.jsx)(fD,{body:e.body,configPath:e.configPath,notes:e.notes})]})}let fH=/\{\{([a-zA-Z_][a-zA-Z0-9_]*)\}\}/g;function fI({value:a,onChange:b,declaredParams:c}){let[d,e]=(0,g.useState)(""),h=new Set(c);return(0,f.jsxs)("div",{className:"flex flex-wrap items-center gap-1",children:[a.map((c,d)=>{let e=(a=>{let b;for(fH.lastIndex=0;b=fH.exec(a);)if(!h.has(b[1]))return!1;return!0})(c);return(0,f.jsxs)("span",{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs font-mono border ${e?"border-[var(--border)] bg-[var(--bg-secondary)]":"border-[var(--danger)] text-[var(--danger)]"}`,children:[c,(0,f.jsx)("button",{"aria-label":`remove ${c}`,onClick:()=>b(a.filter((a,b)=>b!==d)),className:"text-[var(--text-secondary)] hover:text-[var(--danger)]",children:"\xd7"})]},d)}),(0,f.jsx)("input",{value:d,onChange:a=>e(a.target.value),onKeyDown:c=>{("Enter"===c.key||"Tab"===c.key||","===c.key||" "===c.key&&d.trim().length>0)&&d.trim().length>0&&(c.preventDefault(),b([...a,d.trim()]),e(""))},onBlur:()=>{d.trim().length>0&&(b([...a,d.trim()]),e(""))},placeholder:"+ arg (Enter)",className:"px-2 py-0.5 text-xs bg-transparent border border-dashed border-[var(--border)] rounded font-mono w-32"})]})}function fJ({pattern:a}){let[b,c]=(0,g.useState)(""),[d,e]=(0,g.useState)(null);return(0,f.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,f.jsx)("input",{value:b,onChange:a=>c(a.target.value),placeholder:"sample value",className:"px-2 py-0.5 text-xs bg-[var(--bg-primary)] border border-[var(--border)] rounded font-mono"}),d?.error&&(0,f.jsx)("span",{className:"text-xs text-[var(--danger)]",children:"invalid pattern"}),d?.matches===!0&&(0,f.jsx)("span",{className:"text-xs text-[var(--success)]",children:"✓ matches"}),d?.matches===!1&&(0,f.jsx)("span",{className:"text-xs text-[var(--text-secondary)]",children:"no match"})]})}function fK({name:a,def:b,onChange:c,onRename:d,onDelete:e}){return(0,f.jsxs)("div",{className:"border border-[var(--border)] rounded p-2 mb-2 text-xs space-y-1",children:[(0,f.jsxs)("div",{className:"flex gap-2 items-center",children:[(0,f.jsx)("input",{value:a,onChange:b=>d(a,b.target.value),className:"px-2 py-0.5 bg-[var(--bg-primary)] border border-[var(--border)] rounded font-mono",title:"Param name. Reference in command argv as {{name}}."}),(0,f.jsxs)("select",{value:b.type,onChange:d=>c(a,{...b,type:d.target.value}),className:"px-1 py-0.5 bg-[var(--bg-primary)] border border-[var(--border)] rounded",title:"JSON type the agent must supply.",children:[(0,f.jsx)("option",{value:"string",children:"string"}),(0,f.jsx)("option",{value:"number",children:"number"}),(0,f.jsx)("option",{value:"boolean",children:"boolean"})]}),(0,f.jsxs)("label",{className:"flex items-center gap-1",title:"If unchecked, default is used (or empty/0/false).",children:[(0,f.jsx)("input",{type:"checkbox",checked:!!b.required,onChange:d=>c(a,{...b,required:d.target.checked})})," required"]}),(0,f.jsx)("button",{onClick:e,className:"ml-auto text-[var(--text-secondary)] hover:text-[var(--danger)]","aria-label":`delete param ${a}`,children:"\xd7"})]}),"string"===b.type&&(0,f.jsxs)("div",{children:[(0,f.jsx)("input",{value:b.pattern??"",onChange:d=>c(a,{...b,pattern:d.target.value||void 0}),placeholder:"^[a-zA-Z0-9_-]+$",className:"w-full px-2 py-0.5 bg-[var(--bg-primary)] border border-[var(--border)] rounded font-mono"}),(0,f.jsxs)("span",{className:"block text-[10px] text-[var(--text-secondary)] mt-0.5",children:["re2 regex (linear-time, ReDoS-proof). Empty values always pass. Without an explicit pattern, strings get the default ",(0,f.jsx)("code",{children:"^[^-].*"})," which blocks values starting with a dash (argv-injection guard)."]}),b.pattern&&(0,f.jsx)(fJ,{pattern:b.pattern})]}),"number"===b.type&&(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{className:"flex gap-2",children:[(0,f.jsx)("input",{type:"number",placeholder:"min",value:b.min??"",onChange:d=>c(a,{...b,min:""===d.target.value?void 0:Number(d.target.value)}),className:"px-2 py-0.5 bg-[var(--bg-primary)] border border-[var(--border)] rounded w-24"}),(0,f.jsx)("input",{type:"number",placeholder:"max",value:b.max??"",onChange:d=>c(a,{...b,max:""===d.target.value?void 0:Number(d.target.value)}),className:"px-2 py-0.5 bg-[var(--bg-primary)] border border-[var(--border)] rounded w-24"})]}),(0,f.jsx)("span",{className:"block text-[10px] text-[var(--text-secondary)] mt-0.5",children:"Inclusive bounds. NaN, Infinity, and values outside JS safe-integer range are rejected automatically."})]}),"boolean"===b.type&&(0,f.jsxs)("span",{className:"block text-[10px] text-[var(--text-secondary)] mt-0.5",children:["Strict ",(0,f.jsx)("code",{children:"true"})," / ",(0,f.jsx)("code",{children:"false"})," only. No truthy coercion."]})]})}let fL=/^[a-z][a-z0-9-]*$/;function fM({initial:a,projectName:b,onSave:c,onCancel:d,inline:e}){let[h,i]=(0,g.useState)(a?.name??""),[j,k]=(0,g.useState)(()=>{let b=a?.def??{description:"",command:[]};return Array.isArray(b.command)||(b.command=[]),b}),l=Object.keys(j.params??{}),m=fL.test(h)&&j.description.trim().length>0&&j.command.length>0&&!j.command[0].includes("{{"),n=a=>k({...j,params:a({...j.params??{}})});return(0,f.jsxs)("div",{className:e?"space-y-6":"space-y-4",children:[!e&&(0,f.jsx)("h2",{className:"text-lg font-semibold",children:a?"Edit tool":"Add tool"}),(0,f.jsxs)("div",{className:"grid gap-6",children:[(0,f.jsxs)("section",{className:"space-y-4",children:[(0,f.jsxs)("label",{className:"block text-xs",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] font-bold uppercase tracking-wider",children:"Tool name"}),(0,f.jsx)("input",{"aria-label":"name",value:h,onChange:a=>i(a.target.value),placeholder:"e.g. run-tests",className:"w-full mt-1 px-3 py-2 bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg font-mono focus:border-[var(--accent)] outline-none transition"}),(0,f.jsxs)("span",{className:"block text-[10px] text-[var(--text-secondary)] mt-1.5 leading-relaxed",children:["Lowercase letters, digits, hyphens. Kontexta namespaces it automatically — the agent sees"," ",(0,f.jsxs)("code",{className:"text-[var(--accent)]",children:[b??"<project>","__",h||"<name>"]})]}),h&&!fL.test(h)&&(0,f.jsx)("span",{className:"text-[var(--danger)] text-[10px]",children:"must match ^[a-z][a-z0-9-]*$"})]}),(0,f.jsxs)("label",{className:"block text-xs",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] font-bold uppercase tracking-wider",children:"Description"}),(0,f.jsx)("input",{"aria-label":"description",value:j.description,onChange:a=>k({...j,description:a.target.value}),className:"w-full mt-1 px-3 py-2 bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg focus:border-[var(--accent)] outline-none transition",placeholder:"Describe what this tool does..."}),(0,f.jsx)("span",{className:"block text-[10px] text-[var(--text-secondary)] mt-1.5 leading-relaxed",children:"What the agent sees when deciding whether to call this tool. Be specific."})]})]}),(0,f.jsxs)("section",{className:"space-y-3",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] text-xs font-bold uppercase tracking-wider",children:"Command argv"}),(0,f.jsx)("div",{className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg p-3",children:(0,f.jsx)(fI,{value:j.command,onChange:a=>k({...j,command:a}),declaredParams:l})}),(0,f.jsxs)("span",{className:"block text-[10px] text-[var(--text-secondary)] leading-relaxed",children:["argv passed to ",(0,f.jsx)("code",{children:"spawn"})," (no shell). argv[0] is the executable. Subsequent items can use ",(0,f.jsx)("code",{children:"{{paramName}}"}),"."]})]}),(0,f.jsxs)("section",{className:"grid grid-cols-3 gap-4",children:[(0,f.jsxs)("label",{className:"text-xs",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] font-bold uppercase tracking-wider",children:"Timeout (ms)"}),(0,f.jsx)("input",{type:"number",value:j.timeout??"",onChange:a=>k({...j,timeout:""===a.target.value?void 0:Number(a.target.value)}),className:"w-full mt-1 px-3 py-2 bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg focus:border-[var(--accent)] outline-none transition",placeholder:"60000"})]}),(0,f.jsxs)("label",{className:"text-xs",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] font-bold uppercase tracking-wider",children:"Max output"}),(0,f.jsx)("input",{type:"number",value:j.maxOutputBytes??"",onChange:a=>k({...j,maxOutputBytes:""===a.target.value?void 0:Number(a.target.value)}),className:"w-full mt-1 px-3 py-2 bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg focus:border-[var(--accent)] outline-none transition",placeholder:"100000"})]}),(0,f.jsxs)("label",{className:"text-xs",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] font-bold uppercase tracking-wider",children:"Danger"}),(0,f.jsxs)("select",{value:j.danger??"safe",onChange:a=>k({...j,danger:a.target.value}),className:"w-full mt-1 px-3 py-2 bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg focus:border-[var(--accent)] outline-none transition cursor-pointer",children:[(0,f.jsx)("option",{children:"safe"}),(0,f.jsx)("option",{children:"moderate"}),(0,f.jsx)("option",{children:"high"})]})]})]}),(0,f.jsxs)("section",{className:"bg-[var(--bg-secondary)]/50 border border-[var(--border)] rounded-xl p-4",children:[(0,f.jsxs)("div",{className:"flex gap-6 text-xs mb-3",children:[(0,f.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer group",children:[(0,f.jsx)("input",{type:"checkbox",checked:!!j.confirm,onChange:a=>k({...j,confirm:a.target.checked}),className:"rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)]"}),(0,f.jsx)("span",{className:"group-hover:text-[var(--text-primary)] transition",children:"Confirm"})]}),(0,f.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer group",children:[(0,f.jsx)("input",{type:"checkbox",checked:!!j.disabled,onChange:a=>k({...j,disabled:a.target.checked}),className:"rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)]"}),(0,f.jsx)("span",{className:"group-hover:text-[var(--text-primary)] transition",children:"Disabled"})]}),(0,f.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer group",children:[(0,f.jsx)("input",{type:"checkbox",checked:!!j.argSeparator,onChange:a=>k({...j,argSeparator:a.target.checked}),className:"rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)]"}),(0,f.jsx)("span",{className:"group-hover:text-[var(--text-primary)] transition",children:"ArgSeparator"})]})]}),(0,f.jsxs)("ul",{className:"text-[10px] text-[var(--text-secondary)] space-y-1 opacity-80",children:[(0,f.jsxs)("li",{children:["• ",(0,f.jsx)("b",{children:"confirm"})," — Pause for human approval before execution."]}),(0,f.jsxs)("li",{children:["• ",(0,f.jsx)("b",{children:"disabled"})," — Validated but hidden from the agent."]}),(0,f.jsxs)("li",{children:["• ",(0,f.jsx)("b",{children:"argSeparator"})," — Insert ",(0,f.jsx)("code",{children:"--"})," before the first substituted element."]})]})]}),(0,f.jsxs)("section",{className:"space-y-4",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] text-xs font-bold uppercase tracking-wider",children:"Parameters"}),(0,f.jsx)("button",{onClick:()=>n(a=>({...a,[`param${Object.keys(a).length+1}`]:{type:"string"}})),className:"text-[10px] font-bold uppercase tracking-widest px-3 py-1.5 rounded-lg border border-[var(--border)] bg-[var(--bg-secondary)] hover:bg-[var(--accent)] hover:text-black transition-all",children:"+ Add Parameter"})]}),(0,f.jsxs)("div",{className:"space-y-3",children:[Object.entries(j.params??{}).map(([a,b])=>(0,f.jsx)(fK,{name:a,def:b,onChange:(a,b)=>n(c=>({...c,[a]:b})),onRename:(a,b)=>n(c=>{let{[a]:d,...e}=c;return{...e,[b]:d}}),onDelete:()=>n(b=>{let{[a]:c,...d}=b;return d})},a)),0===Object.keys(j.params??{}).length&&(0,f.jsx)("div",{className:"text-center py-8 border border-dashed border-[var(--border)] rounded-xl text-[var(--text-secondary)] text-xs italic",children:"No parameters defined for this tool."})]})]})]}),(0,f.jsxs)("div",{className:`flex justify-end gap-3 pt-6 border-t border-[var(--border)] ${e?"sticky bottom-0 bg-[var(--bg-primary)] py-4 mt-8 z-10":""}`,children:[d&&(0,f.jsx)("button",{onClick:d,className:"btn btn-md",children:"Cancel"}),(0,f.jsx)("button",{disabled:!m,onClick:()=>c(h,j),className:"btn btn-md btn-primary",children:a?.name?"Update Tool":"Create Tool"})]})]})}let fN=[{name:"list-files",oneLiner:"Lists every git-tracked file. Read-only, no params.",def:{description:"List files in the repo (no params, completely safe)",command:["git","ls-files"]}},{name:"run-tests",oneLiner:"Run vitest with an optional regex-validated filter.",def:{description:"Run vitest with optional filter (regex-validated)",command:["npx","vitest","--reporter=verbose","{{filter}}"],timeout:12e4,params:{filter:{type:"string",required:!1,default:"",pattern:"^[a-zA-Z0-9 _/-]*$"}}}},{name:"deploy-staging",oneLiner:"Deploy to staging Cloud Run. Requires human approval.",def:{description:"Deploy to staging Cloud Run (requires human approval)",command:["gcloud","run","deploy","my-service","--region","us-central1"],danger:"moderate",confirm:!0,timeout:18e4}},{name:"remove-temp",oneLiner:"Delete a file under tmp/scratch. Strict pattern + argSeparator.",def:{description:"Delete a temp file under /tmp/scratch (argSeparator guards path)",command:["rm","{{name}}"],argSeparator:!0,workingDir:"tmp/scratch",params:{name:{type:"string",required:!0,pattern:"^[a-zA-Z0-9._-]+$"}}}},{name:"npm-install",oneLiner:"Safely install a new npm package. Restricted to safe package names.",def:{description:"Install a new dependency via npm",command:["npm","install","{{pkg}}"],danger:"moderate",params:{pkg:{type:"string",required:!0,pattern:"^@?[a-z0-9][a-z0-9-._]*$"}}}},{name:"type-check",oneLiner:"Run the TypeScript compiler to catch type errors project-wide.",def:{description:"Run tsc without emitting files to check for type errors.",command:["npx","tsc","--noEmit"],timeout:6e4}},{name:"lint-fix",oneLiner:"Run ESLint to automatically correct code style and auto-fixable errors.",def:{description:"Auto-fix linting and formatting issues.",command:["npx","eslint",".","--fix"],danger:"moderate",timeout:12e4}},{name:"comprehensive-example",oneLiner:"Showcase: params, env, workingDir, confirm, danger, and argSeparator.",def:{description:"A comprehensive example showing off every kontexta.json capability. Use this to understand how to build complex, secure tools.",command:["bash","./scripts/deploy.sh","--target","{{targetEnv}}","--dry-run={{isDryRun}}","--retries={{retries}}"],workingDir:"backend",timeout:3e5,danger:"high",confirm:!0,argSeparator:!0,maxOutputBytes:1048576,env:{FORCE_COLOR:"1",DEBUG:"true"},params:{targetEnv:{type:"string",required:!0,pattern:"^(staging|production|qa)$"},isDryRun:{type:"boolean",required:!1,default:!0},retries:{type:"number",required:!1,default:3,min:0,max:10}}}}];function fO({onSelectTemplate:a,onBlank:b,heading:c}){return(0,f.jsxs)("div",{className:"flex flex-col gap-6 py-2",children:[c&&(0,f.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-widest text-[var(--text-secondary)]",children:c}),(0,f.jsxs)("button",{onClick:b,className:"w-full px-4 py-3 text-xs font-bold uppercase tracking-widest border border-dashed border-[var(--border)] rounded-xl text-[var(--text-secondary)] hover:bg-[var(--accent)]/10 hover:text-[var(--accent)] hover:border-[var(--accent)] transition-all flex items-center justify-center gap-2",children:[(0,f.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,f.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})}),"Start from scratch"]}),(0,f.jsx)("div",{className:"flex flex-col gap-3",children:fN.map(b=>(0,f.jsxs)("button",{onClick:()=>a(b.name,b.def),className:"text-left p-4 border border-[var(--border)] rounded-xl bg-[var(--bg-secondary)]/50 hover:bg-[var(--accent-soft)] hover:border-[var(--accent)] transition-all group shadow-sm hover:shadow-lg active:scale-[0.98]",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,f.jsx)("div",{className:"font-mono font-bold text-[13px] tracking-tight",children:b.name}),(0,f.jsx)("div",{className:"flex gap-1",children:(function(a){let b=[];b.push(a.danger??"safe");let c=Object.keys(a.params??{}).length;return c>0&&b.push(`${c}p`),a.confirm&&b.push("confirm"),a.argSeparator&&b.push("argSep"),a.disabled&&b.push("disabled"),b})(b.def).slice(0,2).map(a=>(0,f.jsx)("span",{className:"text-[9px] font-bold uppercase px-1.5 py-0.5 rounded-md bg-[var(--bg-primary)] text-[var(--text-secondary)] group-hover:text-[var(--text-primary)] border border-[var(--border)]",children:a},a))})]}),(0,f.jsx)("p",{className:"text-xs text-[var(--text-secondary)] group-hover:text-[var(--text-primary)] leading-relaxed line-clamp-2",children:b.oneLiner})]},b.name))})]})}function fP({count:a,errorCount:b,onDiscard:c,onSave:d,inline:e}){let[h,i]=(0,g.useState)("idle"),[j,k]=(0,g.useState)(!1),l=(0,g.useRef)(null),m=a>0||"saved"===h,n=!e&&0===a&&"saved"!==h,o=b>0||"idle"!==h||0===a,p="saving"===h?"Saving...":"saved"===h?"Saved ✓":b>0?`Fix ${b} error(s)`:"Save Changes",q="saved"===h?"All changes saved":1===a?"1 change":`${a} changes`,r=async()=>{if(!o){i("saving");try{await d(),i("saved"),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>i("idle"),2e3)}catch{i("idle")}}},s=()=>k(!0),t=(0,f.jsx)(U.T,{open:j,onClose:()=>k(!1),onConfirm:()=>{k(!1),c()},title:"Discard unsaved changes?",message:1===a?"Your 1 unsaved change will be lost. This action cannot be undone.":`Your ${a} unsaved changes will be lost. This action cannot be undone.`,confirmLabel:"Discard",destructive:!0});return e?(0,f.jsxs)("div",{className:"flex items-center gap-4",children:[m&&(0,f.jsxs)("div",{className:"flex items-center gap-3 animate-fade-in",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--accent)]/10 border border-[var(--accent)]/20",children:[(0,f.jsx)("span",{className:`w-1.5 h-1.5 rounded-full bp-keep-round ${"saved"===h?"bg-[var(--success)]":"bg-[var(--accent)] animate-pulse"}`}),(0,f.jsx)("span",{className:"text-[10px] font-bold uppercase tracking-wider text-[var(--text-primary)]",children:q})]}),(0,f.jsx)("button",{onClick:s,disabled:"idle"!==h||0===a,className:"btn btn-sm btn-destructive",children:"Discard"})]}),(0,f.jsx)("button",{onClick:r,disabled:o,className:"btn btn-sm btn-primary",children:p}),t]}):(0,f.jsxs)("div",{role:"region","aria-label":"Unsaved changes",className:`sticky bottom-0 left-0 right-0 z-30 bg-[var(--bg-secondary)] border-t border-[var(--border)] shadow-[0_-4px_12px_rgba(0,0,0,0.08)] px-4 py-2 flex items-center gap-3 transition-transform duration-200 ${n?"translate-y-full":"translate-y-0"}`,children:[(0,f.jsx)("span",{"aria-hidden":!0,className:"saved"===h?"text-[var(--success)]":"text-[var(--accent)]",children:"saved"===h?"✓":"⚠"}),(0,f.jsx)("span",{className:"text-sm","aria-live":"polite",children:q}),(0,f.jsx)("div",{className:"flex-1"}),(0,f.jsx)("button",{onClick:s,disabled:"idle"!==h||0===a,className:"btn btn-sm btn-destructive",children:"Discard"}),(0,f.jsx)("button",{onClick:r,disabled:o,className:"btn btn-sm btn-primary",children:p}),t]})}function fQ(){(0,h.useSearchParams)();let[a,b]=(0,g.useState)([]),[c,d]=(0,g.useState)(null),[e,i]=(0,g.useState)({}),[j,k]=(0,g.useState)(null),[l,m]=(0,g.useState)(null),[n,o]=(0,g.useState)(null),[p,q]=(0,g.useState)(null),[r,s]=(0,g.useState)(null),[t,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(null),[x,y]=(0,g.useState)(null),[z,A]=(0,g.useState)(!1);(0,g.useRef)(null);let[B,C]=(0,g.useState)(!0),[D,E]=(0,g.useState)({}),F=(0,g.useMemo)(()=>{let a=new Set(Object.keys(D)),b=new Set(Object.keys(e)),c=0;for(let d of b){if(!a.has(d)){c++;continue}JSON.stringify(e[d])!==JSON.stringify(D[d])&&c++}for(let d of a)!b.has(d)&&c++;return c},[e,D]),G=(0,g.useMemo)(()=>{let a=new Map;if(!n)return a;for(let b of[...n.warnings,...n.errors]){let c=b.match(/tool '([^']+)'/);c&&a.set(c[1],b)}return a},[n]),H=(n?.errors.length??0)+G.size,I=async()=>{if(null===c)return;u(!1),s(null);let a=await fetch(`/api/projects/${c}/hands-config`,{method:"DELETE"});if(!a.ok)return void s((await a.json().catch(()=>({}))).error||`Delete failed: HTTP ${a.status}`);i({}),E({}),k(null),m(null),C(!1)},K=async()=>{if(null===c)return;s(null);let a=await fetch(`/api/projects/${c}/hands-config`,{method:"PUT",body:JSON.stringify({config:{version:"1",tools:e},ifMtimeMs:j})});if(409===a.status)return void y({currentMtimeMs:(await a.json()).currentMtimeMs});if(a.ok){k((await a.json()).mtimeMs),E({...e});return}let b=await a.json().catch(()=>({}));s(b.error||(b.errors??[]).join("; ")||`Save failed: HTTP ${a.status}`)},L=async()=>{if(null!==c&&x){A(!0);try{let a=await fetch(`/api/projects/${c}/hands-config`,{method:"PUT",body:JSON.stringify({config:{version:"1",tools:e},ifMtimeMs:x.currentMtimeMs})});if(a.ok){let b=await a.json();k(b.mtimeMs),E({...e})}else{let b=await a.json().catch(()=>({}));s(`Retry failed: ${b.error||(b.errors??[]).join("; ")||`HTTP ${a.status}`}`)}}finally{A(!1),y(null)}}};if(0===a.length)return(0,f.jsxs)("div",{className:"max-w-2xl mx-auto text-sm",children:["No projects registered. ",(0,f.jsx)("a",{href:"/",className:"underline",children:"Register one first"}),"."]});let M=Object.keys(e).length>0;return p||Object.keys(e).length>0&&(Object.keys(e)[0],e[Object.keys(e)[0]]),(0,f.jsxs)("div",{className:"flex flex-col h-full -m-6 overflow-hidden bg-[var(--bg-primary)]",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between px-6 py-3 bg-[var(--bg-secondary)] border-b border-[var(--border)] shadow-sm z-10",children:[(0,f.jsxs)("div",{className:"flex items-center gap-6",children:[(0,f.jsxs)("label",{className:"flex items-center gap-3 text-xs font-bold uppercase tracking-widest text-[var(--text-secondary)]",children:["Project",(0,f.jsx)("select",{value:c??"",onChange:a=>d(Number(a.target.value)),"aria-label":"project",className:"px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] rounded-lg font-mono text-[var(--accent)] outline-none focus:border-[var(--accent)] transition-all cursor-pointer min-w-[220px]",children:a.map(a=>(0,f.jsx)("option",{value:a.id,children:a.name},a.id))})]}),null!==j&&(0,f.jsx)("button",{onClick:()=>u(!0),className:"btn btn-md btn-destructive",title:"Remove kontexta.json from this project",children:"Delete Config"})]}),(0,f.jsx)(fP,{inline:!0,count:F,errorCount:H,onDiscard:()=>{i({...D}),s(null)},onSave:K})]}),(0,f.jsxs)("div",{className:"flex flex-1 overflow-hidden",children:[(0,f.jsxs)("div",{className:"w-[300px] flex flex-col border-r border-[var(--border)] bg-[var(--bg-secondary)]/30",children:[(0,f.jsxs)("div",{className:"p-4 border-b border-[var(--border)] flex items-center justify-between bg-[var(--bg-secondary)]/50",children:[(0,f.jsx)("h4",{className:"text-[10px] font-bold uppercase tracking-[0.2em] text-[var(--text-secondary)]",children:"Registry"}),(0,f.jsx)("button",{onClick:()=>{q({name:"",def:{description:"",command:[],params:{},danger:"safe"}})},className:"p-1 rounded hover:bg-[var(--accent)] hover:text-black transition-colors",title:"Add tool from scratch",children:(0,f.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,f.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})})})]}),(0,f.jsxs)("div",{className:"flex-1 overflow-y-auto p-2 space-y-1 custom-scrollbar",children:[Object.entries(e).map(([a,b])=>(0,f.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>q({name:a,def:b}),onKeyDown:c=>{("Enter"===c.key||" "===c.key)&&(c.preventDefault(),q({name:a,def:b}))},className:`w-full group flex items-center justify-between px-3 py-2 rounded-lg transition-all border cursor-pointer outline-none focus:ring-1 focus:ring-[var(--accent)] ${p?.name===a?"bg-[var(--accent)] text-black border-transparent shadow-lg":"border-transparent text-[var(--text-secondary)] hover:bg-[var(--accent)]/10 hover:text-[var(--text-primary)]"}`,children:[(0,f.jsxs)("div",{className:"flex items-center gap-3 overflow-hidden",children:[(0,f.jsx)("div",{className:`w-1.5 h-1.5 rounded-full bp-keep-round flex-shrink-0 ${p?.name===a?"bg-black":"bg-[var(--accent)]"}`}),(0,f.jsx)("span",{className:"font-mono text-[13px] truncate",children:a})]}),(0,f.jsxs)("div",{className:"flex items-center gap-2",children:[G.has(a)&&(0,f.jsx)("span",{className:"w-2 h-2 rounded-full bp-keep-round bg-[var(--danger)] animate-pulse",title:G.get(a)}),(0,f.jsx)("button",{onClick:b=>{b.stopPropagation(),w(a)},className:`opacity-0 group-hover:opacity-100 p-1 rounded hover:bg-[var(--danger)] hover:text-white transition-all ${p?.name===a?"text-black hover:bg-black/20":""}`,title:"Delete tool",children:(0,f.jsx)("svg",{className:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,f.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]},a)),!M&&(0,f.jsx)("div",{className:"text-center py-8 px-4 text-xs text-[var(--text-secondary)] italic border border-dashed border-[var(--border)] rounded-xl m-2",children:"No tools defined yet."})]})]}),(0,f.jsxs)("div",{className:"flex-1 overflow-y-auto bg-[var(--bg-primary)] custom-scrollbar relative border-r border-[var(--border)]",children:[l&&(0,f.jsxs)("div",{className:"m-6 p-4 bg-[var(--danger-soft)] border border-[var(--danger)]/50 rounded-xl text-sm text-[var(--danger)] animate-fade-in",children:[(0,f.jsx)("span",{className:"font-bold block mb-1",children:"Configuration Error"}),"kontexta.json failed to parse: ",l,". Fix the file manually before continuing."]}),r&&(0,f.jsxs)("div",{className:"m-6 p-4 bg-[var(--danger-soft)] border border-[var(--danger)]/50 rounded-xl text-sm text-[var(--danger)] animate-fade-in",children:[r,(0,f.jsx)("button",{onClick:()=>s(null),className:"ml-2 text-[var(--danger)] hover:opacity-80","aria-label":"Dismiss error",children:(0,f.jsx)(J.A,{className:"w-4 h-4","aria-hidden":!0})})]}),(0,f.jsx)("div",{className:"p-8 max-w-4xl mx-auto",children:p?(0,f.jsxs)("div",{className:"animate-fade-in",children:[(0,f.jsxs)("header",{className:"mb-8 border-b border-[var(--border)] pb-6",children:[(0,f.jsx)("div",{className:"inline-flex items-center px-2 py-0.5 rounded bg-[var(--accent)]/10 border border-[var(--accent)]/20 text-[var(--accent)] text-[10px] font-bold uppercase tracking-wider mb-3",children:p.name?"Editor":"New Tool"}),(0,f.jsx)("h3",{className:"text-3xl font-title font-extrabold text-[var(--text-primary)] tracking-tight",children:p.name||"Untitled Tool"})]}),(0,f.jsx)(fM,{inline:!0,initial:p,projectName:a.find(a=>a.id===c)?.name,onSave:(a,b)=>{i(c=>{let d={};for(let[e,f]of Object.entries(c))p&&e===p.name?d[a]=b:d[e]=f;return p&&p.name in c||(d[a]=b),d}),q(null)}})]},p.name||"new-tool"):(0,f.jsxs)("div",{className:"h-full flex flex-col items-center justify-center text-center py-20 animate-fade-in",children:[(0,f.jsx)("div",{className:"w-16 h-16 rounded-full bp-keep-round bg-[var(--bg-secondary)] flex items-center justify-center mb-6 border border-[var(--border)]",children:(0,f.jsx)("svg",{className:"w-8 h-8 text-[var(--text-secondary)]",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,f.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M11 4a2 2 0 114 0v1a1 1 0 001 1h3a1 1 0 011 1v3a1 1 0 01-1 1h-1a2 2 0 100 4h1a1 1 0 011 1v3a1 1 0 01-1 1h-3a1 1 0 01-1-1v-1a2 2 0 10-4 0v1a1 1 0 01-1 1H7a1 1 0 01-1-1v-3a1 1 0 00-1-1H4a2 2 0 110-4h1a1 1 0 001-1V7a1 1 0 011-1h3a1 1 0 001-1V4z"})})}),(0,f.jsx)("h3",{className:"text-xl font-bold text-[var(--text-primary)] mb-2",children:"Configure Your Tools"}),(0,f.jsxs)("p",{className:"text-sm text-[var(--text-secondary)] max-w-xs mx-auto",children:["Select an existing tool to edit, or use the ",(0,f.jsx)("strong",{children:"Start from scratch"})," button on the right to create a new one."]})]})})]}),(0,f.jsxs)("div",{className:`bg-[var(--bg-secondary)]/30 border-l border-[var(--border)] transition-all duration-300 flex flex-col ${B?"w-[48px]":"w-[350px]"}`,children:[(0,f.jsx)("button",{onClick:()=>C(!B),className:"p-4 border-b border-[var(--border)] flex items-center justify-center hover:bg-[var(--accent)] hover:text-black transition-colors group",title:B?"Expand Template Gallery":"Collapse Template Gallery",children:B?(0,f.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,f.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 6h16M4 12h16m-7 6h7"})}):(0,f.jsxs)("div",{className:"flex items-center gap-3 w-full",children:[(0,f.jsx)("svg",{className:"w-5 h-5 flex-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,f.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})}),(0,f.jsx)("span",{className:"text-[10px] font-bold uppercase tracking-widest truncate",children:"Template Gallery"})]})}),!B&&(0,f.jsx)("div",{className:"flex-1 overflow-y-auto p-4 custom-scrollbar",children:(0,f.jsx)(fO,{heading:M?"Add from template:":"Start with a template:",onSelectTemplate:(a,b)=>{q({name:a,def:b})},onBlank:()=>{q({name:"",def:{description:"",command:[],params:{},danger:"safe"}})}})})]})]}),(0,f.jsx)(U.T,{open:null!==v,onClose:()=>w(null),onConfirm:()=>{v&&(i(a=>{let{[v]:b,...c}=a;return c}),w(null))},title:`Delete tool "${v}"?`,message:"This removes the tool from the draft. Click Save in the top bar to apply.",confirmLabel:"Delete tool",destructive:!0}),(0,f.jsx)(U.T,{open:t,onClose:()=>u(!1),onConfirm:I,title:"Delete kontexta.json?",message:"This removes the configuration file from this project. All Hands tools will be unregistered immediately.",confirmLabel:"Delete file",destructive:!0}),(0,f.jsx)(U.T,{open:null!==x,onClose:()=>y(null),onConfirm:L,title:"Config changed on disk",message:"kontexta.json changed on disk since you loaded it. Overwriting will replace those changes with the version you're editing here.",confirmLabel:"Overwrite",destructive:!0,loading:z})]})}function fR({projectId:a}){let[b,c]=(0,g.useState)(null),[d,e]=(0,g.useState)(null);return d?(0,f.jsxs)("div",{className:"text-sm text-[var(--danger)]",children:["Status error: ",d]}):b?(0,f.jsxs)("section",{className:"border border-[var(--border)] rounded p-3 bg-[var(--bg-secondary)] text-sm",children:[(0,f.jsx)("h3",{className:"font-medium mb-2",children:"Journal status"}),(0,f.jsxs)("div",{className:"space-y-1",children:[(0,f.jsxs)("div",{children:["Project: ",(0,f.jsx)("span",{className:"font-mono",children:b.slug})]}),(0,f.jsxs)("div",{children:["Last distilled event:"," ",(0,f.jsx)("span",{className:"font-mono",children:b.high_water?.last_event_ts??"never"})]}),(0,f.jsxs)("div",{children:["Events processed (cumulative): ",b.high_water?.events_processed??0]}),(0,f.jsxs)("div",{children:["Open tasks: ",b.open_tasks_count]}),b.open_tasks.length>0&&(0,f.jsx)("ul",{className:"ml-4 list-disc mt-2",children:b.open_tasks.map(a=>(0,f.jsxs)("li",{children:[(0,f.jsx)("span",{className:"font-mono",children:a.task_slug})," — ",a.status_latest??"(no status)"," —"," ",(0,f.jsx)("span",{className:"text-[var(--text-secondary)]",children:a.last_active_at})]},a.task_slug))})]})]}):(0,f.jsx)("div",{className:"text-sm text-[var(--muted)]",children:"Loading status…"})}let fS={mode:"lenient",retention:{raw_days:90,mechanical_only_days:365,narrative_days:0,archive_cold_after_days:365,purge_archived_after_days:0},ticket_pattern:"[A-Z]+-\\d+",redact:{extra_keys:[],max_arg_size_bytes:1024},webui_scheduler:{enabled:!0,mechanical_distill_interval_minutes:15,housekeep_interval_hours:24}},fT={raw_days:"How long to keep raw JSONL events. Cost of high retention: Increased disk space usage. Low retention saves space but prevents deep auditing of past agent decisions.",mechanical_only_days:"How long to keep basic markdown summaries. Cost of high retention: Increased agent token usage and slower search times as the active index grows. Low retention keeps the index fast but risks losing older context.",narrative_days:"How long to keep rich LLM-generated summaries. Cost of high retention: Significant increase in agent token usage when searching or reading context. Low retention saves token budget but limits human-readable history.",archive_cold_after_days:"When to archive inactive topics. Cost of high retention: Agents will waste tokens reading stale context that clutters search results. Lower values keep the working context sharp.",purge_archived_after_days:"When to permanently delete archived items. Cost of high retention: Increased long-term disk storage. Low retention reclaims space but irreversibly destroys project history. (0 = never delete)."};function fU(){let[a,b]=(0,g.useState)([]),[c,d]=(0,g.useState)(null),[e,h]=(0,g.useState)(fS),[i,j]=(0,g.useState)(null),k=(0,g.useRef)(null),l=(0,g.useMemo)(()=>{var a;return a=k.current??fS,Object.keys(e).reduce((b,c)=>b+ +(JSON.stringify(e[c])!==JSON.stringify(a[c])),0)},[e]);function m(a,b){h({...e,[a]:b})}async function n(){if(null!==c)try{let a=await fetch(`/api/projects/${c}/journal-config`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({journal:e})});if(!a.ok)throw Error(`save failed: ${a.status}`);k.current=e,h({...e})}catch(a){j(a instanceof Error?a.message:String(a))}}return(0,f.jsxs)("div",{className:"space-y-8 max-w-3xl mx-auto",children:[i&&(0,f.jsx)("div",{className:"border border-[var(--danger)]/30 bg-[var(--danger-soft)] text-[var(--danger)] rounded p-2 text-sm",children:i}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-medium mb-2",children:"Project"}),(0,f.jsxs)("select",{value:c??"",onChange:a=>d(Number(a.target.value)),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1 min-w-[200px] text-xs",children:[(0,f.jsx)("option",{value:"",children:"Select project…"}),a.map(a=>(0,f.jsx)("option",{value:a.id,children:a.name},a.id))]})]}),null!==c&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(fR,{projectId:c}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-medium mb-2",children:"Mode"}),(0,f.jsxs)("select",{value:e.mode,onChange:a=>m("mode",a.target.value),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1 text-xs",children:[(0,f.jsx)("option",{value:"lenient",children:"Lenient (recommended)"}),(0,f.jsx)("option",{value:"strict",children:"Strict — block reads when backlog exists"}),(0,f.jsx)("option",{value:"mechanical-only",children:"Mechanical-only — no LLM upgrade"})]}),(0,f.jsxs)("div",{className:"mt-2 p-3 bg-amber-500/5 border border-amber-500/20 rounded text-xs text-[var(--text-secondary)] leading-normal",children:["lenient"===e.mode&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("strong",{children:"Lenient mode"})," is unobtrusive. If undistilled events accumulate, the MCP server automatically runs a fast, background distillation to maintain memory without blocking the agent."]}),"strict"===e.mode&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("strong",{children:"Strict mode"})," enforces memory hygiene. It blocks read tools (like ",(0,f.jsx)("code",{children:"search"})," or ",(0,f.jsx)("code",{children:"read_file"}),") with a ",(0,f.jsx)("code",{children:"JOURNAL_BACKLOG"})," error if undistilled events exist, forcing the agent to summarize its work first. Pass ",(0,f.jsx)("code",{children:"journal_bypass: true"})," to override."]}),"mechanical-only"===e.mode&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("strong",{children:"Mechanical-only mode"})," functions like lenient mode but disables LLM processing. It prevents subagents from upgrading basic markdown logs into richer narratives, saving token costs on large projects."]})]})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-medium mb-2",children:"Retention (days; 0 = forever)"}),(0,f.jsx)("div",{className:"grid grid-cols-2 gap-3 max-w-md",children:["raw_days","mechanical_only_days","narrative_days","archive_cold_after_days","purge_archived_after_days"].map(a=>(0,f.jsxs)("label",{className:"flex flex-col text-xs",children:[(0,f.jsxs)("span",{className:"text-[var(--text-secondary)] flex items-center gap-1 mb-0.5",children:[a,(0,f.jsx)("span",{title:fT[a],className:"cursor-help text-[9px] font-bold text-[var(--muted)] border border-[var(--muted)] rounded-full bp-keep-round w-3.5 h-3.5 inline-flex items-center justify-center opacity-60 hover:opacity-100 transition-opacity",children:"?"})]}),(0,f.jsx)("input",{type:"number",min:0,value:e.retention[a],onChange:b=>m("retention",{...e.retention,[a]:Number(b.target.value)}),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1 text-xs"})]},a))})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-medium mb-2",children:"Ticket pattern (regex)"}),(0,f.jsx)("input",{value:e.ticket_pattern,onChange:a=>m("ticket_pattern",a.target.value),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1 w-full max-w-md font-mono text-xs",placeholder:"[A-Z]+-\\d+"})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-medium mb-2",children:"WebUI scheduler"}),(0,f.jsxs)("label",{className:"flex items-center gap-2 text-xs",children:[(0,f.jsx)("input",{type:"checkbox",checked:e.webui_scheduler.enabled,onChange:a=>m("webui_scheduler",{...e.webui_scheduler,enabled:a.target.checked})}),"Enable scheduled mechanical distillation"]}),(0,f.jsxs)("div",{className:"grid grid-cols-2 gap-3 max-w-md mt-2",children:[(0,f.jsxs)("label",{className:"flex flex-col text-xs",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)]",children:"mechanical_distill_interval_minutes"}),(0,f.jsx)("input",{type:"number",min:1,value:e.webui_scheduler.mechanical_distill_interval_minutes,onChange:a=>m("webui_scheduler",{...e.webui_scheduler,mechanical_distill_interval_minutes:Number(a.target.value)}),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1 text-xs"})]}),(0,f.jsxs)("label",{className:"flex flex-col text-xs",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)]",children:"housekeep_interval_hours"}),(0,f.jsx)("input",{type:"number",min:1,value:e.webui_scheduler.housekeep_interval_hours,onChange:a=>m("webui_scheduler",{...e.webui_scheduler,housekeep_interval_hours:Number(a.target.value)}),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1 text-xs"})]})]})]}),(0,f.jsx)(fP,{count:l,errorCount:0,onSave:n,onDiscard:function(){h(k.current??fS)}})]})]})}let fV=[{id:"install",label:"MCP SERVER CONFIG"},{id:"journal",label:"JOURNAL CONFIG"},{id:"builder",label:"HANDS TOOLS"},{id:"tools",label:"MCP DOCUMENTATION"}];function fW({open:a,onClose:b}){let[c,d]=(0,g.useState)("install");return(0,f.jsx)(R.l,{open:a,onClose:b,title:"Kontexta configuration",widthClass:"max-w-6xl",hideHeader:!0,children:(0,f.jsxs)("div",{className:"-m-5 flex flex-col h-[85vh] overflow-hidden text-[var(--text-secondary)]",children:[(0,f.jsx)("div",{className:"flex items-center border-b border-[var(--border)] pl-4 pr-12 bg-[var(--bg-secondary)] flex-shrink-0",children:(0,f.jsx)("div",{role:"tablist",className:"flex gap-1 flex-1 overflow-x-auto hide-scrollbar",children:fV.map(a=>(0,f.jsx)("button",{role:"tab","aria-selected":c===a.id,onClick:()=>d(a.id),className:`px-4 py-3 transition font-mono font-bold uppercase tracking-wider whitespace-nowrap border-b-2 ${c===a.id?"bg-[var(--accent)] text-black border-transparent":"border-transparent text-[var(--text-secondary)] hover:bg-[var(--accent-soft)] hover:text-[var(--text-primary)] focus:bg-[var(--accent-soft)] focus:text-[var(--text-primary)]"}`,children:a.label},a.id))})}),(0,f.jsxs)("div",{className:"flex-1 overflow-auto p-6 bg-[var(--bg-primary)] animate-fade-in",children:["tools"===c&&(0,f.jsx)(fC,{}),"install"===c&&(0,f.jsx)(fG,{}),"builder"===c&&(0,f.jsx)(fQ,{}),"journal"===c&&(0,f.jsx)(fU,{})]},c)]})})}let fX=[{key:"default",label:"Default",swatches:["#B4781E","#1a1a1a","#e5e5e5","#252525"]},{key:"minimal",label:"Minimal",swatches:["#2563eb","#ffffff","#1a1a1a","#e0e0e0"]},{key:"api-ref",label:"API Ref",swatches:["#0ea5e9","#0c1222","#e2e8f0","#1e293b"]},{key:"flat",label:"Flat",swatches:["#e91e63","#00bcd4","#ff9800","#9c27b0"]},{key:"terminal",label:"Terminal",swatches:["#00ff41","#000000","#33cc33","#1a3a1a"]},{key:"paper",label:"Paper",swatches:["#8b4513","#faf6f1","#2b2620","#d9cdb8"]},{key:"solarized",label:"Solarized",swatches:["#b58900","#268bd2","#2aa198","#dc322f"]},{key:"brutalist",label:"Brutalist",swatches:["#000000","#ffff00","#ffffff","#555555"]},{key:"ocean",label:"Ocean",swatches:["#5eead4","#c4b5fd","#fda4af","#0b1220"]}];function fY({isOpen:a,onClose:b,mode:c="publish",onSwitchToPublish:d,onPublishSuccess:e}){let[h,i]=(0,g.useState)([]),[j,k]=(0,g.useState)([]),[l,m]=(0,g.useState)({folders:[],title:"Kontexta Docs",brand:"Kontexta",tagline:"",hero:!0,theme:"default",llmsTxt:!0,seo:!0}),[n,o]=(0,g.useState)(!1),[p,q]=(0,g.useState)(null),[r,s]=(0,g.useState)(null),[t,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),[x,y]=(0,g.useState)(null),[z,A]=(0,g.useState)([]),[B,C]=(0,g.useState)(null),D=async()=>{if(0===j.length)return void s("Please select at least one folder to publish.");o(!0),s(null),q(null);try{let a=await fetch("/api/publish",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({folders:j,title:l.title,brand:l.brand,tagline:l.tagline,hero:l.hero,theme:l.theme,llmsTxt:l.llmsTxt,seo:l.seo,projectId:B})}),c=await a.json();c.success?(e?.(c),b()):(q(c),s(c.error||"Publish failed"))}catch(a){s(a instanceof Error?a.message:"Publish failed")}finally{o(!1)}},E=null!==B,F=z.find(a=>a.id===B),G="view"===c;return(0,f.jsx)(R.l,{open:a,onClose:b,title:G?"View published site":"Publish documentation",widthClass:G?"max-w-[1400px]":"max-w-2xl",hideHeader:!0,children:(0,f.jsxs)("div",{className:"-m-5 flex flex-col max-h-[80vh] overflow-hidden",children:[(0,f.jsx)("div",{className:"flex items-center justify-between px-6 py-4 border-b border-[var(--border)] shrink-0",children:(0,f.jsxs)("div",{className:"flex items-center gap-3",children:[(0,f.jsxs)("svg",{className:"w-5 h-5 text-[var(--accent)]",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[(0,f.jsx)("path",{d:"M4 4h16v16H4z"}),(0,f.jsx)("path",{d:"M9 9h6v6H9z"}),(0,f.jsx)("path",{d:"M9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 14h3M1 9h3M1 14h3"})]}),(0,f.jsx)("h2",{className:"text-lg font-semibold text-[var(--text-primary)]",children:G?"View published site":"Publish documentation"})]})}),(0,f.jsx)("div",{className:"flex-1 overflow-hidden flex flex-col",children:G?(0,f.jsx)("div",{className:"flex-1 flex flex-col",children:t?(0,f.jsx)("div",{className:"flex items-center justify-center h-full p-8",children:(0,f.jsxs)("div",{className:"text-center space-y-3",children:[(0,f.jsxs)("svg",{className:"w-8 h-8 animate-spin mx-auto text-[var(--accent)]",viewBox:"0 0 24 24",fill:"none",children:[(0,f.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,f.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,f.jsx)("p",{className:"text-sm text-[var(--text-secondary)]",children:"Checking for published site..."})]})}):v?(0,f.jsx)("iframe",{src:"/api/publish/html",title:"Published Site",className:"w-full h-full border-0 bg-white",sandbox:"allow-same-origin allow-scripts allow-popups"}):(0,f.jsx)("div",{className:"flex items-center justify-center h-full p-8",children:(0,f.jsxs)("div",{className:"text-center space-y-4 max-w-md",children:[(0,f.jsxs)("svg",{className:"w-12 h-12 mx-auto text-[var(--text-tertiary)]",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[(0,f.jsx)("path",{d:"M4 4h16v16H4z"}),(0,f.jsx)("path",{d:"M9 9h6v6H9z"}),(0,f.jsx)("path",{d:"M9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 14h3M1 9h3M1 14h3"})]}),(0,f.jsx)("p",{className:"text-sm text-[var(--text-secondary)]",children:"No published site found. Publish some content first to generate a static site."}),(0,f.jsx)("button",{onClick:()=>d?.(),className:"px-4 py-2 rounded-xl text-sm font-medium bg-[var(--accent)] text-white hover:bg-[color-mix(in_srgb,var(--accent)_85%,black)] transition-colors",children:"Create a Publish"})]})})}):(0,f.jsxs)("div",{className:"flex-1 overflow-y-auto p-6 space-y-6",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-2",children:"Source Scope"}),(0,f.jsxs)("div",{className:"flex items-center gap-2",children:[(0,f.jsx)("button",{onClick:()=>C(null),className:`px-3 py-1.5 rounded-lg text-sm font-medium transition-all ${!E?"bg-[var(--accent)]/10 text-[var(--accent)] border border-[var(--accent)]/30":"bg-[var(--bg-tertiary)] text-[var(--text-secondary)] border border-[var(--border)] hover:border-[var(--border)]"}`,children:"Knowledge Base"}),(0,f.jsxs)("button",{onClick:()=>C(z[0]?.id??null),className:`px-3 py-1.5 rounded-lg text-sm font-medium transition-all ${E?"bg-[var(--accent)]/10 text-[var(--accent)] border border-[var(--accent)]/30":"bg-[var(--bg-tertiary)] text-[var(--text-secondary)] border border-[var(--border)] hover:border-[var(--border)]"}`,children:["Project",F&&(0,f.jsxs)("span",{className:"ml-1 text-xs opacity-70",children:["(",F.name,")"]})]})]})]}),E&&(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-2",children:"Select Project"}),(0,f.jsx)("select",{value:B??"",onChange:a=>C(a.target.value?Number(a.target.value):null),className:"w-full px-3 py-2 rounded-xl bg-[var(--bg-tertiary)] border border-[var(--border)] text-[var(--text-primary)] text-sm focus:outline-none focus:ring-2 focus:ring-[var(--accent)]/50",children:z.map(a=>(0,f.jsxs)("option",{value:a.id,children:[a.name," (",a.slug,")"]},a.id))})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-3",children:"Folders to Publish"}),(0,f.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,f.jsx)("button",{onClick:()=>{k([...h])},className:"text-xs text-[var(--accent)] hover:underline",children:"Select All"}),(0,f.jsx)("span",{className:"text-[var(--text-tertiary)]",children:"•"}),(0,f.jsx)("button",{onClick:()=>{k([])},className:"text-xs text-[var(--text-tertiary)] hover:underline",children:"Clear All"})]}),(0,f.jsx)("div",{className:"space-y-2 max-h-48 overflow-y-auto rounded-xl border border-[var(--border)] p-3 bg-[var(--bg-tertiary)]/30",children:0===h.length?(0,f.jsx)("p",{className:"text-sm text-[var(--text-tertiary)] text-center py-4",children:E?`No folders found in ${F?.name??"this project"}`:"No folders found in your vault"}):h.map(a=>{var b;return(0,f.jsxs)("label",{className:"flex items-center gap-3 p-2 rounded-lg hover:bg-[var(--bg-secondary)] cursor-pointer transition-colors",children:[(0,f.jsx)("input",{type:"checkbox",checked:j.includes(a),onChange:()=>{k(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a])},className:"w-4 h-4 rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)] focus:ring-offset-0 bg-[var(--bg-tertiary)]"}),(0,f.jsx)("span",{className:"text-sm text-[var(--text-primary)]",children:(b=E?F?.slug??null:null)?`${b}/${a}`:a})]},a)})}),j.length>0&&(0,f.jsxs)("p",{className:"text-xs text-[var(--text-tertiary)] mt-2",children:[j.length," folder",1!==j.length?"s":""," selected"]})]}),(0,f.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-2",children:"Site Title"}),(0,f.jsx)("input",{type:"text",value:l.title,onChange:a=>m(b=>({...b,title:a.target.value})),className:"w-full px-3 py-2 rounded-xl bg-[var(--bg-tertiary)] border border-[var(--border)] text-[var(--text-primary)] text-sm focus:outline-none focus:ring-2 focus:ring-[var(--accent)]/50"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-2",children:"Brand Name"}),(0,f.jsx)("input",{type:"text",value:l.brand,onChange:a=>m(b=>({...b,brand:a.target.value})),className:"w-full px-3 py-2 rounded-xl bg-[var(--bg-tertiary)] border border-[var(--border)] text-[var(--text-primary)] text-sm focus:outline-none focus:ring-2 focus:ring-[var(--accent)]/50"})]})]}),(0,f.jsxs)("div",{children:[(0,f.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer mb-2",children:[(0,f.jsx)("input",{type:"checkbox",checked:l.hero,onChange:a=>m(b=>({...b,hero:a.target.checked})),className:"w-4 h-4 rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)] focus:ring-offset-0 bg-[var(--bg-tertiary)]"}),(0,f.jsx)("span",{className:"text-sm font-medium text-[var(--text-secondary)]",children:"Show hero on landing page"})]}),l.hero&&(0,f.jsx)("input",{type:"text",value:l.tagline,onChange:a=>m(b=>({...b,tagline:a.target.value})),placeholder:"Optional tagline shown under the title",className:"w-full px-3 py-2 rounded-xl bg-[var(--bg-tertiary)] border border-[var(--border)] text-[var(--text-primary)] text-sm focus:outline-none focus:ring-2 focus:ring-[var(--accent)]/50"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-3",children:"Theme"}),(0,f.jsx)("div",{className:"grid grid-cols-3 gap-3",children:fX.map(({key:a,label:b,swatches:c})=>(0,f.jsxs)("button",{onClick:()=>m(b=>({...b,theme:a})),className:`px-3 py-3 rounded-xl border-2 text-sm font-medium transition-all flex flex-col items-start gap-2 ${l.theme===a?"border-[var(--accent)] bg-[var(--accent)]/10 text-[var(--accent)]":"border-[var(--border)] bg-[var(--bg-tertiary)]/30 text-[var(--text-secondary)] hover:border-[var(--border)]"}`,children:[(0,f.jsx)("span",{children:b}),(0,f.jsx)("span",{className:"flex gap-1",children:c.map((a,b)=>(0,f.jsx)("span",{className:"w-3 h-3 rounded-full bp-keep-round border border-black/10",style:{background:a}},b))})]},a))})]}),(0,f.jsxs)("div",{className:"flex items-center gap-6",children:[(0,f.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,f.jsx)("input",{type:"checkbox",checked:l.llmsTxt,onChange:a=>m(b=>({...b,llmsTxt:a.target.checked})),className:"w-4 h-4 rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)] focus:ring-offset-0 bg-[var(--bg-tertiary)]"}),(0,f.jsx)("span",{className:"text-sm text-[var(--text-primary)]",children:"Generate llms.txt"})]}),(0,f.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,f.jsx)("input",{type:"checkbox",checked:l.seo,onChange:a=>m(b=>({...b,seo:a.target.checked})),className:"w-4 h-4 rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)] focus:ring-offset-0 bg-[var(--bg-tertiary)]"}),(0,f.jsx)("span",{className:"text-sm text-[var(--text-primary)]",children:"SEO Meta Tags"})]})]}),r&&(0,f.jsx)("div",{className:"p-4 rounded-xl bg-[var(--danger-soft)] border border-[var(--danger)]/20",children:(0,f.jsx)("p",{className:"text-sm text-[var(--danger)]",children:r})})]})}),(0,f.jsxs)("div",{className:"flex items-center justify-between gap-3 px-6 py-4 border-t border-[var(--border)] bg-[var(--bg-tertiary)]/30",children:[(0,f.jsx)("div",{className:"text-xs text-[var(--text-secondary)] flex-1",children:!G&&x&&(0,f.jsxs)("span",{title:new Date(x).toLocaleString(),children:["Last built ",function(a){if(!a)return null;let b=new Date(a).getTime();if(!Number.isFinite(b))return null;let c=Date.now()-b;return c<6e4?"just now":c<36e5?`${Math.floor(c/6e4)}m ago`:c<864e5?`${Math.floor(c/36e5)}h ago`:c<6048e5?`${Math.floor(c/864e5)}d ago`:new Date(a).toLocaleDateString()}(x)]})}),(0,f.jsx)("button",{onClick:b,disabled:n,className:"px-4 py-2 rounded-xl text-sm font-medium text-[var(--text-secondary)] hover:bg-[var(--bg-tertiary)] transition-colors disabled:opacity-50",children:"Close"}),!G&&0===j.length&&(0,f.jsx)("span",{className:"text-xs text-[var(--text-secondary)] italic",title:"The orange Publish button is disabled until at least one folder is selected",children:"Select at least one folder to enable Publish"}),!G&&(0,f.jsx)("button",{onClick:D,disabled:n||0===j.length,className:"px-6 py-2 rounded-xl text-sm font-medium bg-[var(--accent)] text-white hover:bg-[color-mix(in_srgb,var(--accent)_85%,black)] transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2",children:n?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("svg",{className:"w-4 h-4 animate-spin",viewBox:"0 0 24 24",fill:"none",children:[(0,f.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,f.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),"Publishing..."]}):(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[(0,f.jsx)("path",{d:"M4 4h16v16H4z"}),(0,f.jsx)("path",{d:"M12 8v8M8 12h8"})]}),"Publish"]})})]})]})})}function fZ(a,b=0){let[c,d]=(0,g.useState)([]),[e,f]=(0,g.useState)(""),[h,i]=(0,g.useState)(!1);return{folders:c,basePath:e,loading:h}}function f$({segments:a}){return 0===a.length?null:(0,f.jsx)("nav",{"aria-label":"Breadcrumb",className:"h-8 px-4 flex items-center gap-1.5 text-[13px] border-b border-[var(--border)] bg-[var(--bg-tertiary)] text-[var(--text-secondary)] select-none",children:a.map((b,c)=>{let d=c===a.length-1;return(0,f.jsxs)("span",{className:"flex items-center gap-1.5",children:[c>0&&(0,f.jsx)(y.A,{className:"w-3.5 h-3.5 opacity-40","aria-hidden":!0}),d||!b.onClick?(0,f.jsx)("span",{className:d?"font-bold text-[var(--text-primary)]":"",children:b.label}):(0,f.jsx)("button",{onClick:b.onClick,className:"hover:text-[var(--accent)] transition-colors",children:b.label})]},`${c}-${b.label}`)})})}function f_({globalRemoteUrl:a,status:b,lastDoneAt:c,stage:d,onOpenConfigure:e}){let[,h]=(0,g.useState)(0),[i,j]=(0,g.useState)(null),k="syncing"===b?"syncing...":"error"===b?"sync failed":"no-remote"===b?"no remote configured":"ok"===b||c?`synced ${function(a){if(!a)return"never";let b=Math.floor((Date.now()-a)/1e3);return b<60?`${b}s ago`:b<3600?`${Math.floor(b/60)}m ago`:b<86400?`${Math.floor(b/3600)}h ago`:`${Math.floor(b/86400)}d ago`}(c)}`:"ready",l=a?a.replace(/^https?:\/\//,"").replace(/\.git$/,""):null;return(0,f.jsxs)("footer",{className:"relative h-7 border-t border-[var(--border)] bg-[var(--bg-secondary)] px-4 flex items-center gap-2.5 text-[13px] text-[var(--text-secondary)] font-mono",children:[(0,f.jsx)("span",{style:{color:"ok"===b?"var(--success)":"syncing"===b?"var(--warning)":"error"===b?"var(--danger)":"var(--text-secondary)"},className:"syncing"===b?"animate-pulse":"",children:"●"}),(0,f.jsx)("span",{children:k}),(0,f.jsx)("span",{className:"text-[var(--border)]",children:"\xb7"}),(0,f.jsxs)("span",{className:`font-medium ${"syncing"===b?"text-[var(--warning)]":""}`,children:["git: ","syncing"===b?d||"working":"clean"]}),l&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("span",{className:"text-[var(--border)]",children:"\xb7"}),(0,f.jsx)("span",{className:"truncate max-w-[260px] opacity-70",children:l})]}),i?.updateAvailable&&(0,f.jsxs)("button",{onClick:e,className:"ml-auto text-[var(--accent)] hover:underline",title:`You're on v${i.currentVersion} — open Configure for update instructions`,children:["⬆ v",i.latestVersion," available"]})]})}function f0({items:a,footer:b}){let[c,d]=(0,g.useState)(null),e=[...a,...b?[b]:[]].find(a=>a.id===c)??null;return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{className:"w-14 shrink-0 bg-[var(--bg-secondary)] border-r border-[var(--border)] flex flex-col items-center py-4 gap-4 z-50",children:[(0,f.jsx)("div",{className:"flex flex-col items-center gap-3 w-full",children:a.map(a=>(0,f.jsx)(f1,{item:a,onPeek:()=>d(a.id)},a.id))}),(0,f.jsx)("div",{className:"flex-1"}),b&&(0,f.jsx)("div",{className:"pt-4 border-t border-[var(--border)] w-full flex flex-col items-center",children:(0,f.jsx)(f1,{item:b,onPeek:()=>d(b.id)})})]}),e?.peek&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{className:"fixed inset-0 z-40 bg-black/20 backdrop-blur-sm transition-all",onClick:()=>d(null)}),(0,f.jsxs)("div",{className:"absolute z-50 left-16 top-16 w-64 max-h-[80vh] overflow-auto bg-[var(--bg-secondary)]/90 backdrop-blur-xl border border-amber-accent/20 rounded-xl shadow-2xl p-4 animate-fade-in",children:[(0,f.jsx)("div",{className:"text-[10px] font-black uppercase tracking-[0.2em] text-amber-accent/70 mb-4",children:e.label}),(0,f.jsx)("div",{className:"scrollbar-thin",children:e.peek})]})]})]})}function f1({item:a,onPeek:b}){let c=a.label.charAt(0).toUpperCase(),d="kb"===a.id;return(0,f.jsxs)("button",{title:a.label,onClick:()=>{a.onClick(),a.peek&&b()},className:`
|
|
6
|
+
${c}`],{type:"image/svg+xml;charset=utf-8"}),f=URL.createObjectURL(e),g=document.createElement("a");g.href=f,g.download=`${m}.svg`,document.body.appendChild(g),g.click(),document.body.removeChild(g),URL.revokeObjectURL(f)},className:"btn btn-sm","aria-label":"Export diagram as SVG",title:"Export as SVG",children:"SVG"}),(0,f.jsx)("button",{type:"button",onClick:()=>{if(!i)return;let a=d.current?.querySelector("svg");if(!a)return void h("PNG export failed: rendered SVG not found");let b=800,c=600,e=a.viewBox?.baseVal;if(e&&e.width>0&&e.height>0)b=e.width,c=e.height;else try{let d=a.getBBox();d.width>0&&d.height>0&&(b=d.width,c=d.height)}catch{}let f=a.cloneNode(!0);f.setAttribute("xmlns","http://www.w3.org/2000/svg"),f.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink"),f.setAttribute("width",String(b)),f.setAttribute("height",String(c));let g=new XMLSerializer().serializeToString(f),j=new TextEncoder().encode(g),k="";for(let a=0;a<j.length;a++)k+=String.fromCharCode(j[a]);let n=`data:image/svg+xml;base64,${btoa(k)}`,o=document.createElement("canvas");o.width=Math.max(1,Math.round(2*b)),o.height=Math.max(1,Math.round(2*c));let p=o.getContext("2d");if(!p)return void h("PNG export failed: 2D canvas context unavailable");let q=new Image;q.onload=()=>{p.fillStyle="light"===l?"#ffffff":"#1f2937",p.fillRect(0,0,o.width,o.height),p.drawImage(q,0,0,o.width,o.height);try{o.toBlob(a=>{if(!a)return void h("PNG export failed: canvas returned empty blob");let b=URL.createObjectURL(a),c=document.createElement("a");c.href=b,c.download=`${m}.png`,document.body.appendChild(c),c.click(),document.body.removeChild(c),URL.revokeObjectURL(b)},"image/png")}catch(b){let a=b instanceof Error?b.message:String(b);h(`PNG export failed: ${a}`)}},q.onerror=()=>{h("PNG export failed: SVG could not be loaded as an image (it may reference external resources or unsupported features)")},q.src=n},className:"btn btn-sm","aria-label":"Export diagram as PNG",title:"Export as PNG (2x)",children:"PNG"})]}),e&&(0,f.jsxs)("pre",{className:"text-[var(--danger)] whitespace-pre-wrap mb-2 text-sm",children:["Mermaid render error: ",e]}),(0,f.jsx)("div",{ref:d}),e&&(0,f.jsx)("pre",{className:"mt-2 p-3 bg-zinc-900 text-zinc-100 text-xs overflow-x-auto",children:a})]})}function fl({content:a,className:b}){return(0,f.jsx)("div",{className:`prose dark:prose-invert max-w-none text-[var(--text-primary)] ${b||""}`,children:(0,f.jsx)(fi,{remarkPlugins:[dx],components:{h1:({children:a})=>(0,f.jsx)("h1",{className:"text-3xl font-black mb-6 bg-gradient-to-r from-[var(--accent)] via-amber-accent-light to-[var(--accent)] bg-clip-text text-transparent drop-shadow-[0_0_15px_color-mix(in_srgb,var(--accent)_20%,transparent)] font-title tracking-tight",children:a}),h2:({children:a})=>(0,f.jsx)("h2",{className:"text-amber-accent-light text-2xl font-bold mb-4 mt-8 border-b border-amber-accent/10 pb-2",children:a}),h3:({children:a})=>(0,f.jsx)("h3",{className:"text-amber-accent-light text-xl font-bold mb-3 mt-6",children:a}),h4:({children:a})=>(0,f.jsx)("h4",{className:"text-amber-accent-light text-lg font-semibold mb-2 mt-4",children:a}),h5:({children:a})=>(0,f.jsx)("h5",{className:"text-amber-accent-light text-base font-semibold mb-2",children:a}),h6:({children:a})=>(0,f.jsx)("h6",{className:"text-amber-accent-light text-sm font-semibold mb-2",children:a}),blockquote:({children:a})=>(0,f.jsx)("blockquote",{className:"border-l-4 border-amber-accent/30 bg-amber-accent/5 px-6 py-3 rounded-r-lg my-8 text-[var(--text-secondary)] italic leading-relaxed",children:a}),strong:({children:a})=>(0,f.jsx)("strong",{className:"font-bold text-amber-accent-light",children:a}),code:({className:a,children:b,...c})=>"language-mermaid"===a?(0,f.jsx)(fk,{source:String(b).replace(/\n$/,""),className:"my-4"}):(0,f.jsx)("code",{className:a,...c,children:b})},children:a})})}function fm({html:a}){let b=(0,g.useMemo)(()=>`<!doctype html><html><head><meta charset="utf-8"><base href="/api/reports/"><style>body{font-family:-apple-system,Segoe UI,Roboto,sans-serif;margin:16px;color:#111}img{max-width:100%}</style></head><body>${a}</body></html>`,[a]);return(0,f.jsx)("iframe",{title:"report",sandbox:"allow-same-origin",srcDoc:b,style:{width:"100%",height:"100%",border:"0",background:"white"}})}function fn({fileId:a,initial:b,expectedUpdatedAt:c,onClose:d,onSaved:e,onDirtyChange:h}){let[j,k]=(0,g.useState)(b),[l,m]=(0,g.useState)(!1),n=j!==b;function o(){(!n||window.confirm("You have unsaved changes. Discard them?"))&&d()}async function p(){m(!0);try{let b=await fetch(`/api/files/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:j,expected_updated_at:c})});if(409===b.status)return void i.o.error("This file changed elsewhere since you opened it — reload before saving to avoid overwriting the newer version.");if(!b.ok){let a=await b.text().catch(()=>"");i.o.error(`Save failed${a?`: ${a}`:""}`);return}let f=await b.json();e(f),d()}catch(a){i.o.error(`Save failed: ${a?.message??String(a)}`)}finally{m(!1)}}return(0,f.jsx)(R.l,{open:!0,onClose:o,title:"Edit HTML source",widthClass:"max-w-4xl",children:(0,f.jsxs)("div",{className:"flex flex-col gap-4",style:{height:"min(70vh, 600px)"},children:[(0,f.jsx)("textarea",{value:j,onChange:a=>{let c=a.target.value;k(c),h?.(c!==b)},className:"flex-1 font-mono text-sm p-3 border border-[var(--border)] rounded resize-none bg-[var(--bg-secondary)] text-[var(--text-primary)]",spellCheck:!1}),(0,f.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,f.jsx)("button",{type:"button",onClick:o,disabled:l,className:"btn btn-md",children:"Cancel"}),(0,f.jsx)("button",{type:"button",onClick:p,disabled:l,className:"btn btn-md",children:l?"Saving...":"Save"})]})]})})}function fo({content:a,onChange:b}){let c=(0,g.useRef)(null);return(0,f.jsx)("div",{className:"flex flex-col h-full bg-[var(--bg-primary)]",children:(0,f.jsx)("textarea",{ref:c,value:a,onChange:a=>b(a.target.value),className:"flex-1 w-full p-8 bg-transparent border-none outline-none resize-none font-mono text-[14px] text-[var(--text-primary)] leading-relaxed scrollbar-thin",placeholder:"Start typing your markdown...",spellCheck:!1})})}function fp({open:a,title:b,onClose:c,onConfirm:d,loading:e}){return(0,f.jsx)(U.T,{open:a,onClose:c,onConfirm:d,title:"Delete file",message:(0,f.jsxs)(f.Fragment,{children:['Delete "',(0,f.jsx)("span",{className:"font-bold text-[var(--text-primary)]",children:b}),'"? Knowledge Base files are recoverable from git history (Time Travel). Project files are only removed from the index — the file on disk is untouched.']}),confirmLabel:"Delete",destructive:!0,loading:e})}function fq({open:a,onClose:b,title:c,body:d,detail:e}){return(0,f.jsxs)(R.l,{open:a,onClose:b,title:c,children:[(0,f.jsx)("p",{className:"text-sm text-[var(--text-primary)] mb-4 leading-relaxed",children:d}),e&&(0,f.jsxs)("div",{className:"bg-[var(--danger-soft)] border border-[var(--danger)]/20 rounded-lg p-4 mb-6",children:[(0,f.jsx)("p",{className:"text-[11px] text-[var(--danger)] uppercase tracking-tighter font-bold mb-2 opacity-70",children:"Detail:"}),(0,f.jsx)("pre",{className:"text-[12px] font-mono text-[var(--danger)] whitespace-pre-wrap break-words leading-tight overflow-x-auto max-h-48 custom-scrollbar",children:e})]}),(0,f.jsx)("div",{className:"flex justify-end",children:(0,f.jsx)("button",{onClick:b,className:"btn btn-md btn-destructive",children:"Got it"})})]})}let fr=({className:a})=>(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",className:a,children:[(0,f.jsx)("path",{d:"M3 6h18"}),(0,f.jsx)("path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"}),(0,f.jsx)("path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"})]}),fs=({className:a})=>(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:a,children:[(0,f.jsx)("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),(0,f.jsx)("polyline",{points:"7 10 12 15 17 10"}),(0,f.jsx)("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]});function ft(a,b,c){let d=new Blob([a],{type:c}),e=URL.createObjectURL(d),f=document.createElement("a");f.href=e,f.download=b,document.body.appendChild(f),f.click(),f.remove(),URL.revokeObjectURL(e)}let fu=({filled:a,className:b})=>(0,f.jsx)("svg",{viewBox:"0 0 24 24",fill:a?"currentColor":"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:b,children:(0,f.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"})});function fv({fileId:a,onDelete:b,onChanged:c,onDirtyChange:d}){var e;let[h,j]=(0,g.useState)(null),[k,l]=(0,g.useState)(null),[m,n]=(0,g.useState)(!1),[o,p]=(0,g.useState)(!1),[q,s]=(0,g.useState)([]),[t,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(""),[y,z]=(0,g.useState)(!1),[A,C]=(0,g.useState)(!1),[D,E]=(0,g.useState)(!1),[F,G]=(0,g.useState)(!1),[H,J]=(0,g.useState)(!1),[K,L]=(0,g.useState)(""),[M,N]=(0,g.useState)(""),[O,P]=(0,g.useState)(void 0),[Q,R]=(0,g.useState)(!1),[S,T]=(0,g.useState)(!1),[U,V]=(0,g.useState)(!1),X=()=>(h?.title||"untitled").replace(/\.(md|mmd|html)$/i,""),Y=async()=>{h&&(ft(String(await ap().use(bX).use(dx).use(dU,{keep:["code","inlineCode","table","tableCell"]}).use(dQ).process(h.content)),`${X()}.txt`,"text/plain"),i.o.success("Exported text"))},[Z,$]=(0,g.useState)(!1),[_,aa]=(0,g.useState)(!1),ab=!!h?.path.endsWith(".html"),ac=async(a,b,c,d)=>{d(!0);let e=i.o.loading(`Generating ${c}…`);try{let d=await fetch(a);if(!d.ok){let a=await d.text(),b=`Failed to export ${c} (HTTP ${d.status})`;try{let c=JSON.parse(a);c?.error&&(b=c.error)}catch{console.error(`[export-${c}] non-JSON error response:`,a)}i.o.error(b,{id:e});return}let f=d.headers.get("content-disposition")||"",g=/filename="([^"]+)"/.exec(f),h=g?.[1]??b,j=await d.blob(),k=URL.createObjectURL(j),l=document.createElement("a");l.href=k,l.download=h,document.body.appendChild(l),l.click(),l.remove(),URL.revokeObjectURL(k),i.o.success(`Exported ${c}`,{id:e})}catch(a){console.error(`[export-${c}] request failed:`,a),i.o.error(`Failed to export ${c} — check the browser console for details.`,{id:e})}finally{d(!1)}},ad=()=>{h&&ac(ab?`/api/files/${h.id}/export-html?format=pdf`:`/api/files/${h.id}/export-pdf`,`${X()}.pdf`,"PDF",$)},ae=async()=>{if(a){R(!0);try{let b=await fetch(`/api/files/${a}`);if(b.ok){let a=await b.json();j(a),w(a.content)}else i.o.error(`Failed to refresh file (HTTP ${b.status})`)}catch(a){i.o.error(`Failed to refresh file: ${a?.message??"Network error"}`)}finally{R(!1)}}},af=(0,g.useRef)(a);(0,g.useRef)(d);let[ag,ah]=(0,g.useState)(!1),ai=async()=>{if(null!=a){T(!0);try{let d=await fetch(`/api/files/${a}`,{method:"DELETE"});if(d.ok)l(null),j(null),b(a).catch(a=>console.error("onDelete after orphan remove failed:",a)),c?.();else{let a=await d.json().catch(()=>({}));l({kind:"http",message:a?.error??`Remove failed: HTTP ${d.status}`,status:d.status})}}catch(a){l({kind:"network",message:a?.message??"Network error while removing orphan row"})}finally{T(!1)}}},aj=async()=>{if(a){u(!0);try{let b=await fetch(`/api/files/${a}/history`);if(b.ok){let c=await b.json();if(af.current!==a)return;s(c)}}catch(a){console.error("Failed to fetch history:",a)}finally{af.current===a&&u(!1)}}},ak=async b=>{if(a)try{let c=await fetch(`/api/files/${a}/history/restore`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({hash:b})});if(c.ok){let b=await c.json();if(af.current!==a)return;j(c=>c&&c.id===a?{...c,content:b.content}:c),w(b.content),p(!1),i.o.success("Restored from history")}else{let a=await c.json().catch(()=>({}));i.o.error(a?.error||"Failed to restore version")}}catch(a){i.o.error(`Failed to restore version: ${a?.message??"Network error"}`)}},al=()=>{n(!1),w(h?.content||"")},am=async()=>{if(!h)return;let a=h.id;try{C(!0);let b=await fetch(`/api/files/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:v,expected_updated_at:h.updated_at})});if(b.ok){let c=await b.json();if(af.current!==a){c.git_warning&&console.warn(`[kontexta] git_warning for stale file ${a}:`,c.git_warning);return}j(c),n(!1),i.o.success("Saved"),c.git_warning&&(L("Git commit failed"),N("Your changes were saved to the database, but Kontexta could not create a Git history entry for this file."),P(c.git_warning),J(!0))}else if(409===b.status){let c,d;try{let a=await b.json();c=a?.current?.content,d=a?.current?.updated_at}catch{}af.current===a&&(void 0!==c&&void 0!==d&&j(a=>a?{...a,content:c,updated_at:d}:a),L("File changed on disk"),N("This file was NOT saved — it was modified elsewhere since you opened it. Disk content has been reloaded below; your edits are still in the editor. Click Save again to overwrite with your edits."),P(void 0),J(!0))}else{let c=`Save failed (${b.status})`;try{let a=await b.json();a?.error&&(c=a.error)}catch{}af.current===a&&(L("Save failed"),N("Your changes were NOT saved."),P(c),J(!0))}}catch(b){console.error("Failed to save file:",b),af.current===a&&(L("Save failed"),N("Your changes were NOT saved — a network error occurred."),P(b?.message??"Network error while saving"),J(!0))}finally{af.current===a&&C(!1)}},an=async()=>{if(h){G(!0);try{await b(h.id),j(null),E(!1)}finally{G(!1)}}};if(!a)return(0,f.jsx)("div",{className:"h-full flex flex-col items-center justify-center animate-fade-in",children:(0,f.jsx)(B,{icon:(0,f.jsx)(x,{className:"w-16 h-16 opacity-40 dark-icon","aria-hidden":!0}),title:"Select a file to preview",hint:"Choose a file from the list on the left"})});if(y)return(0,f.jsxs)("div",{className:"h-full flex flex-col animate-fade-in",children:[(0,f.jsxs)("div",{className:"border-b border-[var(--border)] px-6 py-4",children:[(0,f.jsx)("div",{className:"skeleton h-6 w-48 mb-2"}),(0,f.jsx)("div",{className:"skeleton h-4 w-32"})]}),(0,f.jsxs)("div",{className:"flex-1 p-6 space-y-4",children:[(0,f.jsx)("div",{className:"skeleton h-4 w-full"}),(0,f.jsx)("div",{className:"skeleton h-4 w-5/6"}),(0,f.jsx)("div",{className:"skeleton h-4 w-4/6"}),(0,f.jsx)("div",{className:"skeleton h-4 w-full"}),(0,f.jsx)("div",{className:"skeleton h-4 w-3/4"})]})]});if(!h)return k?.kind==="disk_missing"?(0,f.jsxs)("div",{className:"h-full flex flex-col items-center justify-center text-[var(--text-secondary)] gap-4 animate-fade-in p-8",children:[(0,f.jsx)(W,{className:"w-16 h-16 opacity-40 dark-icon","aria-hidden":!0}),(0,f.jsxs)("div",{className:"text-center max-w-lg",children:[(0,f.jsx)("p",{className:"text-lg font-bold text-[var(--text-primary)]",children:"File is missing on disk"}),(0,f.jsx)("p",{className:"text-sm font-medium text-[var(--text-secondary)] mt-2",children:"The index still has a row for this file, but the file at the path below no longer exists. This usually happens when the file was deleted while the watcher wasn't running."}),k.path&&(0,f.jsx)("pre",{className:"mt-3 p-2 bg-[var(--bg-tertiary)] text-[var(--text-primary)] text-xs overflow-x-auto rounded",children:k.path}),(0,f.jsx)("button",{type:"button",className:"btn btn-sm mt-4",onClick:ai,disabled:S,children:S?"Removing…":"Remove from index"})]})]}):k?(0,f.jsxs)("div",{className:"h-full flex flex-col items-center justify-center text-[var(--text-secondary)] gap-3 animate-fade-in p-8",children:[(0,f.jsx)(W,{className:"w-16 h-16 opacity-40 dark-icon","aria-hidden":!0}),(0,f.jsxs)("div",{className:"text-center max-w-lg",children:[(0,f.jsxs)("p",{className:"text-lg font-bold text-[var(--text-primary)]",children:["Failed to load file",k.status?` (HTTP ${k.status})`:""]}),(0,f.jsx)("p",{className:"text-sm font-medium text-[var(--text-secondary)] mt-2 break-words",children:k.message})]})]}):(0,f.jsx)("div",{className:"h-full flex flex-col items-center justify-center animate-fade-in",children:(0,f.jsx)(B,{icon:(0,f.jsx)(I,{className:"w-16 h-16 opacity-40 dark-icon","aria-hidden":!0}),title:"File not found",hint:"This file may have been moved or deleted"})});let ao=h.path.replace(/\\/g,"/").includes("/publish/");return(0,f.jsxs)("div",{className:"h-full flex flex-col animate-fade-in",children:[(0,f.jsxs)("div",{className:"h-10 px-4 border-b border-[var(--border)] flex items-center gap-4 text-[14px] sticky top-0 bg-[var(--bg-primary)] z-10",children:[["view","edit","history"].filter(a=>"edit"!==a||!h.path.endsWith(".html")&&!ao).map(a=>{let b="view"===a&&!m&&!o||"edit"===a&&m||"history"===a&&o;return(0,f.jsx)("button",{onClick:()=>{if("edit"===a){m||(n(!0),w(h?.content||""));return}m&&al(),p("history"===a),"history"===a&&aj()},className:`btn btn-sm -mb-px py-2 border-b-2 transition-colors ${b?"border-[var(--accent)]":""}`,children:a[0].toUpperCase()+a.slice(1)},a)}),ao&&(0,f.jsx)("span",{className:"inline-flex items-center px-2 py-0.5 rounded bg-amber-accent/10 border border-amber-accent/30 text-[10px] text-[var(--text-primary)] uppercase tracking-wider font-bold",title:"Regenerated on publish",children:"Read-only"}),(0,f.jsx)("div",{className:"ml-auto flex items-center gap-3 text-[12px] text-[var(--text-secondary)] font-mono",children:m?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("button",{onClick:am,disabled:A,className:"btn btn-md",children:A?"Saving...":"Save"}),(0,f.jsx)("button",{onClick:al,disabled:A,className:"btn btn-md",children:"Cancel"})]}):(0,f.jsxs)(f.Fragment,{children:[h?.updated_at&&(0,f.jsxs)("span",{children:["edited ",function(a){if(!a)return"";let b=new Date(a).getTime();if(!isFinite(b))return a;let c=Math.floor((Date.now()-b)/1e3);return c<60?`${c}s ago`:c<3600?`${Math.floor(c/60)}m ago`:c<86400?`${Math.floor(c/3600)}h ago`:`${Math.floor(c/86400)}d ago`}(h.updated_at)]}),h?.content&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("span",{className:"text-[var(--border)]",children:"\xb7"}),(0,f.jsxs)("span",{title:`~${Math.max(1,Math.ceil(h.content.length/4)).toLocaleString()} tokens (heuristic: chars/4)`,children:["~",(e=Math.max(1,Math.ceil(h.content.length/4)))<1e3?String(e):e<1e4?`${(e/1e3).toFixed(1)}k`:e<1e6?`${Math.round(e/1e3)}k`:`${(e/1e6).toFixed(1)}M`," tok"]})]}),(0,f.jsx)("button",{onClick:ae,disabled:Q,className:"btn btn-md","aria-label":"Refresh file",title:"Refresh file content",children:(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:`w-4 h-4 opacity-70 ${Q?"animate-spin":""}`,children:[(0,f.jsx)("path",{d:"M21 2v6h-6"}),(0,f.jsx)("path",{d:"M3 12a9 9 0 0 1 15-6.7L21 8"}),(0,f.jsx)("path",{d:"M3 22v-6h6"}),(0,f.jsx)("path",{d:"M21 12a9 9 0 0 1-15 6.7L3 16"})]})}),h.path.endsWith(".html")&&!ao&&(0,f.jsx)("button",{type:"button",onClick:()=>V(!0),className:"btn btn-md","aria-label":"Edit HTML source",title:"Edit HTML source",children:(0,f.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"w-4 h-4 opacity-70",children:(0,f.jsx)("path",{d:"M17 3a2.83 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"})})}),(0,f.jsx)("button",{onClick:async()=>{if(!h)return;let a=!h.favorite;j({...h,favorite:a});try{if(!(await fetch(`/api/files/${h.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({favorite:a})})).ok)throw Error("PATCH failed");c?.()}catch(b){j({...h,favorite:!a}),i.o.error(`Failed to update favorite: ${b?.message??"Network error"}`)}},className:"btn btn-md","aria-label":h?.favorite?"Unfavorite":"Favorite",title:h?.favorite?"Remove from favorites":"Add to favorites",children:(0,f.jsx)(fu,{filled:!!h?.favorite,className:`w-4 h-4 ${h?.favorite?"text-amber-accent":"opacity-60"}`})}),(0,f.jsx)(r,{trigger:(0,f.jsx)("button",{disabled:Z||_,className:"btn btn-md","aria-label":"Export file",title:Z?"Generating PDF…":_?"Generating PNG…":"Export file",children:(0,f.jsx)(fs,{className:`w-4 h-4 opacity-70 ${Z||_?"animate-pulse":""}`})}),items:ab?[{label:"PDF",onSelect:ad},{label:"PNG",onSelect:()=>{h&&ac(`/api/files/${h.id}/export-html?format=png`,`${X()}.png`,"PNG",aa)}}]:[{label:"Markdown (.md)",onSelect:()=>{h&&(ft(h.content,`${X()}.md`,"text/markdown"),i.o.success("Exported Markdown"))}},{label:"Text (.txt)",onSelect:()=>{Y()}},{label:"PDF",onSelect:ad}]}),(0,f.jsx)("button",{onClick:()=>E(!0),className:"btn btn-md btn-destructive","aria-label":"Delete file",title:"Delete file",children:(0,f.jsx)(fr,{className:"w-4 h-4 opacity-70"})})]})})]}),!m&&!o&&(0,f.jsxs)("div",{className:"px-4 py-2 border-b border-[var(--border)] flex flex-wrap items-center gap-2 text-[12px]",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] uppercase tracking-wider text-[10px] font-bold",children:"Tags"}),(h?.tags??[]).map(a=>(0,f.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded bg-amber-accent/10 border border-amber-accent/30 text-[var(--text-primary)]",children:[a,(0,f.jsx)("button",{"aria-label":`Remove tag ${a}`,title:`Remove tag ${a}`,onClick:async()=>{if(!h)return;let b=h.id,d=h.tags,e=d.filter(b=>b!==a);j(a=>a&&a.id===b?{...a,tags:e}:a);try{if(!(await fetch(`/api/files/${b}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tags:e})})).ok)throw Error("PATCH failed");c?.()}catch(a){j(a=>a&&a.id===b?{...a,tags:d}:a),i.o.error(`Failed to remove tag: ${a?.message??"Network error"}`)}},className:"text-[var(--text-secondary)] hover:text-[var(--danger)]",children:"\xd7"})]},a)),(0,f.jsx)("input",{type:"text",placeholder:"add tag…",className:"bg-transparent border-b border-transparent focus:border-amber-accent/40 outline-none px-1 py-0.5 w-24",onKeyDown:async a=>{if("Enter"!==a.key||!h)return;let b=(a.currentTarget.value||"").trim();if(!b)return;let d=b.toLowerCase().replace(/\s+/g,"-");if(h.tags.includes(d)){a.currentTarget.value="";return}let e=h.id,f=h.tags,g=[...f,d];j(a=>a&&a.id===e?{...a,tags:g}:a),a.currentTarget.value="";try{if(!(await fetch(`/api/files/${e}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tags:g})})).ok)throw Error("PATCH failed");c?.()}catch(a){j(a=>a&&a.id===e?{...a,tags:f}:a),i.o.error(`Failed to add tag: ${a?.message??"Network error"}`)}}})]}),(0,f.jsx)("div",{className:"flex-1 overflow-hidden",children:m?(0,f.jsx)(fo,{content:v,onChange:w}):o?(0,f.jsx)("div",{className:"h-full overflow-auto bg-[var(--bg-secondary)] p-6",children:(0,f.jsxs)("div",{className:"max-w-2xl mx-auto space-y-4",children:[(0,f.jsx)("h3",{className:"text-sm font-bold text-[var(--text-secondary)] uppercase tracking-widest mb-6",children:"Version History (Time Travel)"}),t?(0,f.jsx)("div",{className:"space-y-4",children:[1,2,3].map(a=>(0,f.jsx)("div",{className:"skeleton h-20 w-full rounded-lg"},a))}):0===q.length?(0,f.jsx)("div",{className:"text-center py-12",children:(0,f.jsx)("p",{className:"text-[var(--muted)]",children:"No version history found for this file."})}):(0,f.jsx)("div",{className:"space-y-3",children:q.map(a=>(0,f.jsxs)("div",{className:"bg-white dark:bg-[#1a1a1a] border border-[var(--border)] rounded-lg p-4 flex items-center justify-between hover:border-amber-accent/50 transition-colors shadow-sm",children:[(0,f.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,f.jsx)("p",{className:"text-sm font-bold text-[var(--text-primary)] truncate",children:a.message}),(0,f.jsxs)("div",{className:"flex items-center gap-3 mt-1 text-[10px] text-[var(--text-secondary)] uppercase tracking-tighter font-bold",children:[(0,f.jsx)("span",{children:new Date(a.date).toLocaleString()}),(0,f.jsx)("span",{className:"opacity-30",children:"•"}),(0,f.jsx)("span",{className:"font-mono text-amber-accent",children:a.hash.substring(0,7)})]})]}),(0,f.jsx)("button",{onClick:()=>ak(a.hash),className:"ml-4 btn btn-md",children:"RESTORE"})]},a.hash))})]})}):(0,f.jsx)("div",{className:"h-full overflow-auto",children:h.path.endsWith(".mmd")?(0,f.jsx)(fk,{source:h.content,className:"p-8",filename:h.title}):h.path.endsWith(".html")?(0,f.jsx)(fm,{html:h.content}):(0,f.jsx)(fl,{content:h.content,className:"p-8"})})}),(0,f.jsx)(fp,{open:D,title:h.title,onClose:()=>E(!1),onConfirm:an,loading:F}),(0,f.jsx)(fq,{open:H,onClose:()=>J(!1),title:K,body:M,detail:O}),U&&h&&(0,f.jsx)(fn,{fileId:h.id,initial:h.content,expectedUpdatedAt:h.updated_at,onClose:()=>{V(!1),ah(!1)},onDirtyChange:ah,onSaved:a=>{let b=h.id;if(ah(!1),af.current!==b){a.git_warning&&console.warn(`[kontexta] git_warning for stale file ${b}:`,a.git_warning);return}j(a),a.git_warning&&(L("Git commit failed"),N("Your changes were saved to the database, but Kontexta could not create a Git history entry for this file."),P(a.git_warning),J(!0))}})]},a)}function fw({open:a,onClose:b,onSelectFile:c}){let[d,e]=(0,g.useState)(""),[h,i]=(0,g.useState)([]),[j,k]=(0,g.useState)(0),[l,m]=(0,g.useState)(!1),n=(0,g.useRef)(null);return(0,g.useRef)(void 0),(0,f.jsx)(R.l,{open:a,onClose:b,title:"Search",hideHeader:!0,widthClass:"max-w-[560px]",positionClass:"left-1/2 top-[20vh] -translate-x-1/2",children:(0,f.jsxs)("div",{className:"-m-5 overflow-hidden rounded-xl",children:[(0,f.jsx)("div",{className:"relative",children:(0,f.jsx)("input",{ref:n,type:"text",value:d,onChange:a=>e(a.target.value),onKeyDown:a=>{"Escape"===a.key?b():"ArrowDown"===a.key?(a.preventDefault(),k(a=>Math.min(a+1,h.length-1))):"ArrowUp"===a.key?(a.preventDefault(),k(a=>Math.max(a-1,0))):"Enter"===a.key&&h.length>0&&(a.preventDefault(),c(h[j]))},placeholder:"Search context files...",className:"w-full px-6 py-5 text-base bg-transparent border-b border-[var(--border)] outline-none text-[var(--text-primary)] placeholder:text-[var(--text-secondary)] focus:ring-1 focus:ring-amber-accent/30 transition-all"})}),(0,f.jsxs)("div",{className:"max-h-[400px] overflow-y-auto scrollbar-thin",children:[l&&(0,f.jsx)("div",{className:"p-6 space-y-4",children:[1,2,3].map(a=>(0,f.jsxs)("div",{className:"flex flex-col gap-2 px-1",children:[(0,f.jsx)("div",{className:"skeleton h-4 w-3/4 opacity-20"}),(0,f.jsx)("div",{className:"skeleton h-3 w-1/4 opacity-10"})]},a))}),!l&&d&&0===h.length&&(0,f.jsxs)("div",{className:"flex flex-col items-center py-12 text-[var(--text-secondary)] gap-3",children:[(0,f.jsx)(I,{className:"w-8 h-8 opacity-30","aria-hidden":!0}),(0,f.jsx)("p",{className:"text-sm font-medium",children:"No results found"}),(0,f.jsx)("p",{className:"text-xs opacity-60 italic",children:"Try a different search term"})]}),!l&&h.length>0&&(0,f.jsx)("div",{className:"p-1",children:h.map((a,b)=>(0,f.jsxs)("button",{onClick:()=>{c(a)},onMouseEnter:()=>k(b),className:`w-full px-5 py-4 text-left rounded-lg transition-all duration-200 flex flex-col gap-1 ${b===j?"bg-[var(--accent-soft)]":"hover:bg-[var(--accent-soft)]/60"}`,children:[(0,f.jsx)("div",{className:"text-sm font-semibold transition-colors text-[var(--text-primary)]",children:a.title}),(0,f.jsxs)("div",{className:"text-xs transition-colors text-[var(--text-secondary)]",children:[a.storage_type," \xb7 ",a.path]})]},a.id))})]})]})})}function fx({open:a,onClose:b}){let[c,d]=(0,g.useState)(null),[e,h]=(0,g.useState)(!1);return(0,f.jsx)(R.l,{open:a,onClose:b,title:"About Kontexta",widthClass:"max-w-xl",hideHeader:!0,children:(0,f.jsxs)("div",{className:"-m-5 flex flex-col max-h-[75vh] overflow-hidden",children:[(0,f.jsxs)("div",{className:"p-6 text-center border-b border-[var(--border)] shrink-0",children:[(0,f.jsx)("div",{className:"flex justify-center -mb-3",children:(0,f.jsx)(o.H,{size:"lg"})}),(0,f.jsx)("h1",{className:"text-3xl font-extrabold tracking-[4px] font-[family-name:var(--font-title)] text-[var(--accent)] dark:text-[var(--text-primary)] drop-shadow-[0_0_14px_color-mix(in_srgb,var(--accent)_55%,transparent)] dark:drop-shadow-none",children:"KONTEXTA"}),(0,f.jsxs)("p",{className:"text-sm font-medium text-[var(--text-secondary)] mt-2",children:["by ",c?.author||"Safiyu"," • v",c?.version||"0.1.0"]}),(0,f.jsx)("p",{className:"text-sm text-[var(--text-secondary)] mt-2",children:"A modern context management system for AI-assisted development"})]}),(0,f.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto prose-sm",children:[e&&(0,f.jsxs)("div",{className:"p-6 space-y-3",children:[(0,f.jsx)("div",{className:"skeleton h-4 w-full"}),(0,f.jsx)("div",{className:"skeleton h-4 w-5/6"}),(0,f.jsx)("div",{className:"skeleton h-4 w-4/6"})]}),!e&&c?.changelog&&(0,f.jsx)(fl,{content:c.changelog,className:"p-6 prose-sm text-[var(--accent)] marker:text-[var(--accent)] [&_*]:!text-[var(--accent)]"}),!e&&!c?.changelog&&(0,f.jsx)("div",{className:"p-6 text-center text-[var(--text-secondary)]",children:"No changelog available"})]}),(0,f.jsx)("div",{className:"p-3 border-t border-[var(--border)] text-center shrink-0",children:(0,f.jsx)("button",{onClick:b,className:"btn btn-md",children:"Close"})})]})})}function fy({open:a,onClose:b,onCreate:c,currentProjectId:d,availableFolders:e}){let[h,i]=(0,g.useState)(""),[j,k]=(0,g.useState)(""),[l,m]=(0,g.useState)(""),[n,o]=(0,g.useState)(d?"project":"knowledge"),[p,q]=(0,g.useState)(!1),r=async a=>{if(a.preventDefault(),h.trim()){q(!0);try{await c(h,j,n,l||void 0)&&(i(""),k(""),m(""),b())}catch(a){console.error("Failed to create file:",a)}finally{q(!1)}}};return(0,f.jsx)(R.l,{open:a,onClose:b,title:"New file",widthClass:"max-w-lg",children:(0,f.jsxs)("form",{onSubmit:r,children:[(0,f.jsxs)("div",{className:"space-y-4",children:[(0,f.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"TITLE"}),(0,f.jsx)("input",{type:"text",value:h,onChange:a=>i(a.target.value),placeholder:"e.g. Architecture Overview",className:"w-full bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50",required:!0,autoFocus:!0})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"FOLDER"}),e.length>0?(0,f.jsxs)("select",{value:l,onChange:a=>m(a.target.value),className:"w-full bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50 cursor-pointer",children:[(0,f.jsx)("option",{value:"",children:"— Root level —"}),e.map(a=>(0,f.jsx)("option",{value:a,children:a},a))]}):(0,f.jsx)("input",{type:"text",value:l,onChange:a=>m(a.target.value),placeholder:"No folders yet — type to create",className:"w-full bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50"})]})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"DESTINATION"}),(0,f.jsxs)("div",{className:"flex gap-3",children:[(0,f.jsx)("button",{type:"button",onClick:()=>o("knowledge"),className:`btn btn-sm flex-1 ${"knowledge"===n?"border-[var(--accent)]":""}`,children:"KNOWLEDGE BASE"}),d&&(0,f.jsx)("button",{type:"button",onClick:()=>o("project"),className:`btn btn-sm flex-1 ${"project"===n?"border-[var(--accent)]":""}`,children:"PROJECT ROOT"})]})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"CONTENT (MARKDOWN)"}),(0,f.jsx)("textarea",{value:j,onChange:a=>k(a.target.value),placeholder:"# Introduction\nStart typing here...",rows:8,className:"w-full bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50 font-mono resize-none"})]})]}),(0,f.jsxs)("div",{className:"flex justify-end gap-3 mt-5",children:[(0,f.jsx)("button",{type:"button",onClick:b,className:"btn btn-md",children:"CANCEL"}),(0,f.jsx)("button",{type:"submit",disabled:p||!h.trim(),className:"btn btn-md",children:p?"CREATING...":"CREATE FILE"})]})]})})}function fz({open:a,onClose:b,onCreate:c}){let[d,e]=(0,g.useState)(""),[h,i]=(0,g.useState)(!1),j=async a=>{if(a.preventDefault(),d.trim()){i(!0);try{await c(d)&&(e(""),b())}catch(a){console.error("Failed to create folder:",a)}finally{i(!1)}}};return(0,f.jsx)(R.l,{open:a,onClose:b,title:"New folder",children:(0,f.jsxs)("form",{onSubmit:j,children:[(0,f.jsx)("label",{className:"block text-[10px] font-bold text-[var(--text-secondary)] tracking-widest mb-1.5",children:"FOLDER NAME"}),(0,f.jsx)("input",{type:"text",value:d,onChange:a=>e(a.target.value),placeholder:"e.g. documentation",className:"w-full bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-3 py-2 text-sm text-[var(--text-primary)] outline-none focus:border-amber-accent/50",autoFocus:!0,required:!0}),(0,f.jsx)("p",{className:"text-[10px] text-[var(--text-secondary)] mt-2 italic",children:"Folder will be created in the Knowledge Base."}),(0,f.jsxs)("div",{className:"flex justify-end gap-3 mt-5",children:[(0,f.jsx)("button",{type:"button",onClick:b,className:"btn btn-md",children:"CANCEL"}),(0,f.jsx)("button",{type:"submit",disabled:h||!d.trim(),className:"btn btn-md",children:h?"CREATING...":"CREATE FOLDER"})]})]})})}function fA({open:a,folderName:b,onClose:c,onConfirm:d,loading:e}){return(0,f.jsx)(U.T,{open:a,onClose:c,onConfirm:d,title:"Delete folder",message:(0,f.jsxs)(f.Fragment,{children:["Are you sure you want to delete the folder"," ",(0,f.jsxs)("span",{className:"font-bold text-[var(--text-primary)]",children:['"',b,'"']}),"? This will permanently remove the directory from your disk."]}),confirmLabel:"Delete folder",destructive:!0,loading:e})}function fB({isOpen:a,onClose:b,onConfirm:c,projectName:d}){return(0,f.jsx)(U.T,{open:a,onClose:b,onConfirm:c,title:"Unregister project",message:(0,f.jsxs)(f.Fragment,{children:["Are you sure you want to remove ",(0,f.jsxs)("span",{className:"font-bold text-[var(--text-primary)]",children:['"',d,'"']})," from Kontexta?",(0,f.jsx)("br",{}),(0,f.jsx)("br",{}),"This will remove all associated context files from your AI's memory, but your"," ",(0,f.jsx)("span",{className:"text-amber-accent font-bold",children:"actual source code will remain safe"})," on your disk.",(0,f.jsx)("br",{}),(0,f.jsx)("br",{}),(0,f.jsx)("span",{className:"text-[10px] uppercase tracking-widest font-bold",children:"This action is permanent for Kontexta metadata."})]}),confirmLabel:"Unregister",destructive:!0})}function fC({schema:a}){let b=a.properties??{},c=new Set(a.required??[]),d=Object.entries(b);return 0===d.length?(0,f.jsx)("div",{className:"text-sm text-[var(--text-secondary)] italic",children:"No parameters."}):(0,f.jsxs)("table",{className:"w-full text-sm border-collapse",children:[(0,f.jsx)("thead",{children:(0,f.jsxs)("tr",{className:"border-b border-[var(--border)] text-left text-xs uppercase text-[var(--text-secondary)]",children:[(0,f.jsx)("th",{className:"py-1 pr-3",children:"Param"}),(0,f.jsx)("th",{className:"py-1 pr-3",children:"Type"}),(0,f.jsx)("th",{className:"py-1 pr-3",children:"Required"}),(0,f.jsx)("th",{className:"py-1",children:"Notes"})]})}),(0,f.jsx)("tbody",{children:d.map(([a,b])=>(0,f.jsxs)("tr",{className:"border-b border-[var(--border)]",children:[(0,f.jsx)("td",{className:"py-1 pr-3 font-mono",children:a}),(0,f.jsx)("td",{className:"py-1 pr-3",children:b.enum?"enum":"array"===b.type&&b.items?.type?`${b.items.type}[]`:b.type??"any"}),(0,f.jsx)("td",{className:"py-1 pr-3",children:c.has(a)?"required":"optional"}),(0,f.jsx)("td",{className:"py-1",children:function(a){let b=[];return a.enum&&b.push(a.enum.map(a=>String(a)).join(" | ")),void 0!==a.default&&b.push(`default: ${JSON.stringify(a.default)}`),void 0!==a.minimum&&b.push(`min: ${a.minimum}`),void 0!==a.maximum&&b.push(`max: ${a.maximum}`),a.description&&b.push(a.description),b.join(" — ")}(b)})]},a))})]})}function fD({tool:a}){return(0,f.jsxs)("div",{id:a.name,className:"border border-[var(--border)] rounded-md p-4 mb-3 bg-[var(--bg-secondary)]",children:[(0,f.jsxs)("div",{className:"flex items-baseline justify-between gap-3 mb-2",children:[(0,f.jsx)("h3",{className:"font-mono text-base font-semibold",children:a.name}),(0,f.jsx)("a",{href:`#${a.name}`,className:"text-xs text-[var(--text-secondary)]",title:"permalink",children:"\xa7"})]}),(0,f.jsx)("p",{className:"text-sm whitespace-pre-wrap mb-3",children:a.description}),(0,f.jsx)(fC,{schema:a.inputSchema})]})}function fE(){let[a,b]=(0,g.useState)(null),[c,d]=(0,g.useState)(""),e=(0,g.useMemo)(()=>{if(!a)return[];let b=c.trim().toLowerCase();return a.tools.filter(a=>!b||a.name.toLowerCase().includes(b)||a.description.toLowerCase().includes(b))},[a,c]),h=(0,g.useMemo)(()=>{if(!a)return new Map;let b=new Map;for(let c of a.categoryOrder)b.set(c,[]);for(let a of e){let c=b.get(a.category)??[];c.push(a),b.set(a.category,c)}return b},[a,e]);return a?(0,f.jsxs)("div",{className:"max-w-4xl mx-auto",children:[(0,f.jsx)("input",{type:"search",value:c,onChange:a=>d(a.target.value),placeholder:"Search tools…",className:"w-full px-3 py-2 mb-4 bg-[var(--bg-secondary)] border border-[var(--border)] rounded sticky top-0 z-10"}),[...h.entries()].map(([a,b])=>0===b.length?null:(0,f.jsxs)("section",{className:"mb-6",children:[(0,f.jsx)("h2",{className:"text-xs uppercase tracking-wider text-[var(--text-secondary)] mb-2",children:a}),b.map(a=>(0,f.jsx)(fD,{tool:a},a.name))]},a))]}):(0,f.jsx)("div",{className:"text-sm",children:"Loading…"})}function fF({body:a,configPath:b,notes:c}){let[d,e]=(0,g.useState)(!1),h=async()=>{try{if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(a);else{let b=document.createElement("textarea");b.value=a,b.style.position="fixed",b.style.left="-9999px",document.body.appendChild(b),b.select(),document.execCommand("copy"),document.body.removeChild(b)}}catch{}e(!0),setTimeout(()=>e(!1),1500)};return(0,f.jsxs)("div",{className:"flex flex-col gap-3",children:[b&&(0,f.jsxs)("div",{className:"p-3 bg-[var(--bg-secondary)] border border-[var(--accent-soft)] rounded text-xs",children:[(0,f.jsx)("div",{className:"text-[var(--text-secondary)] mb-1 uppercase tracking-wider font-bold",children:"Configuration Path"}),(0,f.jsx)("div",{className:"font-mono break-all",children:b})]}),(0,f.jsxs)("div",{className:"relative",children:[(0,f.jsx)("pre",{className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded p-3 text-xs overflow-x-auto whitespace-pre",children:a}),(0,f.jsx)("button",{onClick:h,className:"absolute top-2 right-2 px-2 py-1 text-xs bg-[var(--bg-primary)] border border-[var(--border)] rounded hover:border-[var(--accent)] transition-colors",children:d?"Copied":"Copy"})]}),c&&c.length>0&&(0,f.jsx)("div",{className:"text-xs text-[var(--text-secondary)] px-1",children:(0,f.jsx)("ul",{className:"list-disc list-inside space-y-1",children:c.map((a,b)=>(0,f.jsx)("li",{children:a},b))})})]})}let fG=[{id:"claude-code",label:"Claude Code"},{id:"claude-desktop",label:"Claude Desktop"},{id:"cursor",label:"Cursor"},{id:"codex",label:"Codex"},{id:"gemini",label:"Gemini"},{id:"antigravity",label:"Antigravity"},{id:"continue",label:"Continue"},{id:"aider",label:"Aider"},{id:"cline",label:"Cline"},{id:"copilot",label:"GitHub Copilot (VS Code Insider)"},{id:"generic",label:"Generic JSON"}],fH=[{id:"docker",label:"Docker"},{id:"npm",label:"npm (npx)"},{id:"source",label:"Source build"}];function fI(){let[a,b]=(0,g.useState)("claude-code"),[c,d]=(0,g.useState)("docker"),[e,h]=(0,g.useState)(null),[i,j]=(0,g.useState)(null),[k,l]=(0,g.useState)(null);return(0,f.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,f.jsxs)("div",{className:"flex gap-3 mb-4",children:[(0,f.jsxs)("label",{className:"flex flex-col text-xs",children:[(0,f.jsx)("span",{className:"mb-1 text-[var(--text-secondary)]",children:"AI client"}),(0,f.jsx)("select",{"aria-label":"AI client",value:a,onChange:a=>b(a.target.value),className:"px-2 py-1 bg-[var(--bg-secondary)] border border-[var(--border)] rounded",children:fG.map(a=>(0,f.jsx)("option",{value:a.id,children:a.label},a.id))})]}),(0,f.jsxs)("label",{className:"flex flex-col text-xs",children:[(0,f.jsx)("span",{className:"mb-1 text-[var(--text-secondary)]",children:"Install method"}),(0,f.jsx)("select",{"aria-label":"Install method",value:c,onChange:a=>d(a.target.value),className:"px-2 py-1 bg-[var(--bg-secondary)] border border-[var(--border)] rounded",children:fH.map(a=>(0,f.jsxs)("option",{value:a.id,children:[a.label,i===a.id?" (current)":""]},a.id))})]})]}),k&&(0,f.jsxs)("div",{className:"mb-3 text-xs text-[var(--text-secondary)] flex items-center gap-1.5",children:[(0,f.jsx)(w,{className:"w-3.5 h-3.5 opacity-60","aria-hidden":!0}),(0,f.jsxs)("span",{children:["Data directory:"," ",(0,f.jsx)("code",{className:"text-[var(--text-primary)] font-mono",children:k.isDefaultDir?k.defaultDirDisplay:k.dataDir}),k.isDefaultDir&&(0,f.jsx)("span",{className:"ml-1 opacity-60",children:"(OS default)"})]})]}),e&&(0,f.jsx)(fF,{body:e.body,configPath:e.configPath,notes:e.notes})]})}let fJ=/\{\{([a-zA-Z_][a-zA-Z0-9_]*)\}\}/g;function fK({value:a,onChange:b,declaredParams:c}){let[d,e]=(0,g.useState)(""),h=new Set(c);return(0,f.jsxs)("div",{className:"flex flex-wrap items-center gap-1",children:[a.map((c,d)=>{let e=(a=>{let b;for(fJ.lastIndex=0;b=fJ.exec(a);)if(!h.has(b[1]))return!1;return!0})(c);return(0,f.jsxs)("span",{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs font-mono border ${e?"border-[var(--border)] bg-[var(--bg-secondary)]":"border-[var(--danger)] text-[var(--danger)]"}`,children:[c,(0,f.jsx)("button",{"aria-label":`remove ${c}`,onClick:()=>b(a.filter((a,b)=>b!==d)),className:"text-[var(--text-secondary)] hover:text-[var(--danger)]",children:"\xd7"})]},d)}),(0,f.jsx)("input",{value:d,onChange:a=>e(a.target.value),onKeyDown:c=>{("Enter"===c.key||"Tab"===c.key||","===c.key||" "===c.key&&d.trim().length>0)&&d.trim().length>0&&(c.preventDefault(),b([...a,d.trim()]),e(""))},onBlur:()=>{d.trim().length>0&&(b([...a,d.trim()]),e(""))},placeholder:"+ arg (Enter)",className:"px-2 py-0.5 text-xs bg-transparent border border-dashed border-[var(--border)] rounded font-mono w-32"})]})}function fL({pattern:a}){let[b,c]=(0,g.useState)(""),[d,e]=(0,g.useState)(null);return(0,f.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,f.jsx)("input",{value:b,onChange:a=>c(a.target.value),placeholder:"sample value",className:"px-2 py-0.5 text-xs bg-[var(--bg-primary)] border border-[var(--border)] rounded font-mono"}),d?.error&&(0,f.jsx)("span",{className:"text-xs text-[var(--danger)]",children:"invalid pattern"}),d?.matches===!0&&(0,f.jsx)("span",{className:"text-xs text-[var(--success)]",children:"✓ matches"}),d?.matches===!1&&(0,f.jsx)("span",{className:"text-xs text-[var(--text-secondary)]",children:"no match"})]})}function fM({name:a,def:b,onChange:c,onRename:d,onDelete:e}){return(0,f.jsxs)("div",{className:"border border-[var(--border)] rounded p-2 mb-2 text-xs space-y-1",children:[(0,f.jsxs)("div",{className:"flex gap-2 items-center",children:[(0,f.jsx)("input",{value:a,onChange:b=>d(a,b.target.value),className:"px-2 py-0.5 bg-[var(--bg-primary)] border border-[var(--border)] rounded font-mono",title:"Param name. Reference in command argv as {{name}}."}),(0,f.jsxs)("select",{value:b.type,onChange:d=>c(a,{...b,type:d.target.value}),className:"px-1 py-0.5 bg-[var(--bg-primary)] border border-[var(--border)] rounded",title:"JSON type the agent must supply.",children:[(0,f.jsx)("option",{value:"string",children:"string"}),(0,f.jsx)("option",{value:"number",children:"number"}),(0,f.jsx)("option",{value:"boolean",children:"boolean"})]}),(0,f.jsxs)("label",{className:"flex items-center gap-1",title:"If unchecked, default is used (or empty/0/false).",children:[(0,f.jsx)("input",{type:"checkbox",checked:!!b.required,onChange:d=>c(a,{...b,required:d.target.checked})})," required"]}),(0,f.jsx)("button",{onClick:e,className:"ml-auto text-[var(--text-secondary)] hover:text-[var(--danger)]","aria-label":`delete param ${a}`,children:"\xd7"})]}),"string"===b.type&&(0,f.jsxs)("div",{children:[(0,f.jsx)("input",{value:b.pattern??"",onChange:d=>c(a,{...b,pattern:d.target.value||void 0}),placeholder:"^[a-zA-Z0-9_-]+$",className:"w-full px-2 py-0.5 bg-[var(--bg-primary)] border border-[var(--border)] rounded font-mono"}),(0,f.jsxs)("span",{className:"block text-[10px] text-[var(--text-secondary)] mt-0.5",children:["re2 regex (linear-time, ReDoS-proof). Empty values always pass. Without an explicit pattern, strings get the default ",(0,f.jsx)("code",{children:"^[^-].*"})," which blocks values starting with a dash (argv-injection guard)."]}),b.pattern&&(0,f.jsx)(fL,{pattern:b.pattern})]}),"number"===b.type&&(0,f.jsxs)("div",{children:[(0,f.jsxs)("div",{className:"flex gap-2",children:[(0,f.jsx)("input",{type:"number",placeholder:"min",value:b.min??"",onChange:d=>c(a,{...b,min:""===d.target.value?void 0:Number(d.target.value)}),className:"px-2 py-0.5 bg-[var(--bg-primary)] border border-[var(--border)] rounded w-24"}),(0,f.jsx)("input",{type:"number",placeholder:"max",value:b.max??"",onChange:d=>c(a,{...b,max:""===d.target.value?void 0:Number(d.target.value)}),className:"px-2 py-0.5 bg-[var(--bg-primary)] border border-[var(--border)] rounded w-24"})]}),(0,f.jsx)("span",{className:"block text-[10px] text-[var(--text-secondary)] mt-0.5",children:"Inclusive bounds. NaN, Infinity, and values outside JS safe-integer range are rejected automatically."})]}),"boolean"===b.type&&(0,f.jsxs)("span",{className:"block text-[10px] text-[var(--text-secondary)] mt-0.5",children:["Strict ",(0,f.jsx)("code",{children:"true"})," / ",(0,f.jsx)("code",{children:"false"})," only. No truthy coercion."]})]})}let fN=/^[a-z][a-z0-9-]*$/;function fO({initial:a,projectName:b,onSave:c,onCancel:d,inline:e}){let[h,i]=(0,g.useState)(a?.name??""),[j,k]=(0,g.useState)(()=>{let b=a?.def??{description:"",command:[]};return Array.isArray(b.command)||(b.command=[]),b}),l=Object.keys(j.params??{}),m=fN.test(h)&&j.description.trim().length>0&&j.command.length>0&&!j.command[0].includes("{{"),n=a=>k({...j,params:a({...j.params??{}})});return(0,f.jsxs)("div",{className:e?"space-y-6":"space-y-4",children:[!e&&(0,f.jsx)("h2",{className:"text-lg font-semibold",children:a?"Edit tool":"Add tool"}),(0,f.jsxs)("div",{className:"grid gap-6",children:[(0,f.jsxs)("section",{className:"space-y-4",children:[(0,f.jsxs)("label",{className:"block text-xs",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] font-bold uppercase tracking-wider",children:"Tool name"}),(0,f.jsx)("input",{"aria-label":"name",value:h,onChange:a=>i(a.target.value),placeholder:"e.g. run-tests",className:"w-full mt-1 px-3 py-2 bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg font-mono focus:border-[var(--accent)] outline-none transition"}),(0,f.jsxs)("span",{className:"block text-[10px] text-[var(--text-secondary)] mt-1.5 leading-relaxed",children:["Lowercase letters, digits, hyphens. Kontexta namespaces it automatically — the agent sees"," ",(0,f.jsxs)("code",{className:"text-[var(--accent)]",children:[b??"<project>","__",h||"<name>"]})]}),h&&!fN.test(h)&&(0,f.jsx)("span",{className:"text-[var(--danger)] text-[10px]",children:"must match ^[a-z][a-z0-9-]*$"})]}),(0,f.jsxs)("label",{className:"block text-xs",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] font-bold uppercase tracking-wider",children:"Description"}),(0,f.jsx)("input",{"aria-label":"description",value:j.description,onChange:a=>k({...j,description:a.target.value}),className:"w-full mt-1 px-3 py-2 bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg focus:border-[var(--accent)] outline-none transition",placeholder:"Describe what this tool does..."}),(0,f.jsx)("span",{className:"block text-[10px] text-[var(--text-secondary)] mt-1.5 leading-relaxed",children:"What the agent sees when deciding whether to call this tool. Be specific."})]})]}),(0,f.jsxs)("section",{className:"space-y-3",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] text-xs font-bold uppercase tracking-wider",children:"Command argv"}),(0,f.jsx)("div",{className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg p-3",children:(0,f.jsx)(fK,{value:j.command,onChange:a=>k({...j,command:a}),declaredParams:l})}),(0,f.jsxs)("span",{className:"block text-[10px] text-[var(--text-secondary)] leading-relaxed",children:["argv passed to ",(0,f.jsx)("code",{children:"spawn"})," (no shell). argv[0] is the executable. Subsequent items can use ",(0,f.jsx)("code",{children:"{{paramName}}"}),"."]})]}),(0,f.jsxs)("section",{className:"grid grid-cols-3 gap-4",children:[(0,f.jsxs)("label",{className:"text-xs",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] font-bold uppercase tracking-wider",children:"Timeout (ms)"}),(0,f.jsx)("input",{type:"number",value:j.timeout??"",onChange:a=>k({...j,timeout:""===a.target.value?void 0:Number(a.target.value)}),className:"w-full mt-1 px-3 py-2 bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg focus:border-[var(--accent)] outline-none transition",placeholder:"60000"})]}),(0,f.jsxs)("label",{className:"text-xs",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] font-bold uppercase tracking-wider",children:"Max output"}),(0,f.jsx)("input",{type:"number",value:j.maxOutputBytes??"",onChange:a=>k({...j,maxOutputBytes:""===a.target.value?void 0:Number(a.target.value)}),className:"w-full mt-1 px-3 py-2 bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg focus:border-[var(--accent)] outline-none transition",placeholder:"100000"})]}),(0,f.jsxs)("label",{className:"text-xs",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] font-bold uppercase tracking-wider",children:"Danger"}),(0,f.jsxs)("select",{value:j.danger??"safe",onChange:a=>k({...j,danger:a.target.value}),className:"w-full mt-1 px-3 py-2 bg-[var(--bg-secondary)] border border-[var(--border)] rounded-lg focus:border-[var(--accent)] outline-none transition cursor-pointer",children:[(0,f.jsx)("option",{children:"safe"}),(0,f.jsx)("option",{children:"moderate"}),(0,f.jsx)("option",{children:"high"})]})]})]}),(0,f.jsxs)("section",{className:"bg-[var(--bg-secondary)]/50 border border-[var(--border)] rounded-xl p-4",children:[(0,f.jsxs)("div",{className:"flex gap-6 text-xs mb-3",children:[(0,f.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer group",children:[(0,f.jsx)("input",{type:"checkbox",checked:!!j.confirm,onChange:a=>k({...j,confirm:a.target.checked}),className:"rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)]"}),(0,f.jsx)("span",{className:"group-hover:text-[var(--text-primary)] transition",children:"Confirm"})]}),(0,f.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer group",children:[(0,f.jsx)("input",{type:"checkbox",checked:!!j.disabled,onChange:a=>k({...j,disabled:a.target.checked}),className:"rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)]"}),(0,f.jsx)("span",{className:"group-hover:text-[var(--text-primary)] transition",children:"Disabled"})]}),(0,f.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer group",children:[(0,f.jsx)("input",{type:"checkbox",checked:!!j.argSeparator,onChange:a=>k({...j,argSeparator:a.target.checked}),className:"rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)]"}),(0,f.jsx)("span",{className:"group-hover:text-[var(--text-primary)] transition",children:"ArgSeparator"})]})]}),(0,f.jsxs)("ul",{className:"text-[10px] text-[var(--text-secondary)] space-y-1 opacity-80",children:[(0,f.jsxs)("li",{children:["• ",(0,f.jsx)("b",{children:"confirm"})," — Pause for human approval before execution."]}),(0,f.jsxs)("li",{children:["• ",(0,f.jsx)("b",{children:"disabled"})," — Validated but hidden from the agent."]}),(0,f.jsxs)("li",{children:["• ",(0,f.jsx)("b",{children:"argSeparator"})," — Insert ",(0,f.jsx)("code",{children:"--"})," before the first substituted element."]})]})]}),(0,f.jsxs)("section",{className:"space-y-4",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)] text-xs font-bold uppercase tracking-wider",children:"Parameters"}),(0,f.jsx)("button",{onClick:()=>n(a=>({...a,[`param${Object.keys(a).length+1}`]:{type:"string"}})),className:"text-[10px] font-bold uppercase tracking-widest px-3 py-1.5 rounded-lg border border-[var(--border)] bg-[var(--bg-secondary)] hover:bg-[var(--accent)] hover:text-black transition-all",children:"+ Add Parameter"})]}),(0,f.jsxs)("div",{className:"space-y-3",children:[Object.entries(j.params??{}).map(([a,b])=>(0,f.jsx)(fM,{name:a,def:b,onChange:(a,b)=>n(c=>({...c,[a]:b})),onRename:(a,b)=>n(c=>{let{[a]:d,...e}=c;return{...e,[b]:d}}),onDelete:()=>n(b=>{let{[a]:c,...d}=b;return d})},a)),0===Object.keys(j.params??{}).length&&(0,f.jsx)("div",{className:"text-center py-8 border border-dashed border-[var(--border)] rounded-xl text-[var(--text-secondary)] text-xs italic",children:"No parameters defined for this tool."})]})]})]}),(0,f.jsxs)("div",{className:`flex justify-end gap-3 pt-6 border-t border-[var(--border)] ${e?"sticky bottom-0 bg-[var(--bg-primary)] py-4 mt-8 z-10":""}`,children:[d&&(0,f.jsx)("button",{onClick:d,className:"btn btn-md",children:"Cancel"}),(0,f.jsx)("button",{disabled:!m,onClick:()=>c(h,j),className:"btn btn-md btn-primary",children:a?.name?"Update Tool":"Create Tool"})]})]})}let fP=[{name:"list-files",oneLiner:"Lists every git-tracked file. Read-only, no params.",def:{description:"List files in the repo (no params, completely safe)",command:["git","ls-files"]}},{name:"run-tests",oneLiner:"Run vitest with an optional regex-validated filter.",def:{description:"Run vitest with optional filter (regex-validated)",command:["npx","vitest","--reporter=verbose","{{filter}}"],timeout:12e4,params:{filter:{type:"string",required:!1,default:"",pattern:"^[a-zA-Z0-9 _/-]*$"}}}},{name:"deploy-staging",oneLiner:"Deploy to staging Cloud Run. Requires human approval.",def:{description:"Deploy to staging Cloud Run (requires human approval)",command:["gcloud","run","deploy","my-service","--region","us-central1"],danger:"moderate",confirm:!0,timeout:18e4}},{name:"remove-temp",oneLiner:"Delete a file under tmp/scratch. Strict pattern + argSeparator.",def:{description:"Delete a temp file under /tmp/scratch (argSeparator guards path)",command:["rm","{{name}}"],argSeparator:!0,workingDir:"tmp/scratch",params:{name:{type:"string",required:!0,pattern:"^[a-zA-Z0-9._-]+$"}}}},{name:"npm-install",oneLiner:"Safely install a new npm package. Restricted to safe package names.",def:{description:"Install a new dependency via npm",command:["npm","install","{{pkg}}"],danger:"moderate",params:{pkg:{type:"string",required:!0,pattern:"^@?[a-z0-9][a-z0-9-._]*$"}}}},{name:"type-check",oneLiner:"Run the TypeScript compiler to catch type errors project-wide.",def:{description:"Run tsc without emitting files to check for type errors.",command:["npx","tsc","--noEmit"],timeout:6e4}},{name:"lint-fix",oneLiner:"Run ESLint to automatically correct code style and auto-fixable errors.",def:{description:"Auto-fix linting and formatting issues.",command:["npx","eslint",".","--fix"],danger:"moderate",timeout:12e4}},{name:"comprehensive-example",oneLiner:"Showcase: params, env, workingDir, confirm, danger, and argSeparator.",def:{description:"A comprehensive example showing off every kontexta.json capability. Use this to understand how to build complex, secure tools.",command:["bash","./scripts/deploy.sh","--target","{{targetEnv}}","--dry-run={{isDryRun}}","--retries={{retries}}"],workingDir:"backend",timeout:3e5,danger:"high",confirm:!0,argSeparator:!0,maxOutputBytes:1048576,env:{FORCE_COLOR:"1",DEBUG:"true"},params:{targetEnv:{type:"string",required:!0,pattern:"^(staging|production|qa)$"},isDryRun:{type:"boolean",required:!1,default:!0},retries:{type:"number",required:!1,default:3,min:0,max:10}}}}];function fQ({onSelectTemplate:a,onBlank:b,heading:c}){return(0,f.jsxs)("div",{className:"flex flex-col gap-6 py-2",children:[c&&(0,f.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-widest text-[var(--text-secondary)]",children:c}),(0,f.jsxs)("button",{onClick:b,className:"w-full px-4 py-3 text-xs font-bold uppercase tracking-widest border border-dashed border-[var(--border)] rounded-xl text-[var(--text-secondary)] hover:bg-[var(--accent)]/10 hover:text-[var(--accent)] hover:border-[var(--accent)] transition-all flex items-center justify-center gap-2",children:[(0,f.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,f.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})}),"Start from scratch"]}),(0,f.jsx)("div",{className:"flex flex-col gap-3",children:fP.map(b=>(0,f.jsxs)("button",{onClick:()=>a(b.name,b.def),className:"text-left p-4 border border-[var(--border)] rounded-xl bg-[var(--bg-secondary)]/50 hover:bg-[var(--accent-soft)] hover:border-[var(--accent)] transition-all group shadow-sm hover:shadow-lg active:scale-[0.98]",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,f.jsx)("div",{className:"font-mono font-bold text-[13px] tracking-tight",children:b.name}),(0,f.jsx)("div",{className:"flex gap-1",children:(function(a){let b=[];b.push(a.danger??"safe");let c=Object.keys(a.params??{}).length;return c>0&&b.push(`${c}p`),a.confirm&&b.push("confirm"),a.argSeparator&&b.push("argSep"),a.disabled&&b.push("disabled"),b})(b.def).slice(0,2).map(a=>(0,f.jsx)("span",{className:"text-[9px] font-bold uppercase px-1.5 py-0.5 rounded-md bg-[var(--bg-primary)] text-[var(--text-secondary)] group-hover:text-[var(--text-primary)] border border-[var(--border)]",children:a},a))})]}),(0,f.jsx)("p",{className:"text-xs text-[var(--text-secondary)] group-hover:text-[var(--text-primary)] leading-relaxed line-clamp-2",children:b.oneLiner})]},b.name))})]})}function fR({count:a,errorCount:b,onDiscard:c,onSave:d,inline:e}){let[h,i]=(0,g.useState)("idle"),[j,k]=(0,g.useState)(!1),l=(0,g.useRef)(null),m=a>0||"saved"===h,n=!e&&0===a&&"saved"!==h,o=b>0||"idle"!==h||0===a,p="saving"===h?"Saving...":"saved"===h?"Saved ✓":b>0?`Fix ${b} error(s)`:"Save Changes",q="saved"===h?"All changes saved":1===a?"1 change":`${a} changes`,r=async()=>{if(!o){i("saving");try{await d(),i("saved"),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>i("idle"),2e3)}catch{i("idle")}}},s=()=>k(!0),t=(0,f.jsx)(U.T,{open:j,onClose:()=>k(!1),onConfirm:()=>{k(!1),c()},title:"Discard unsaved changes?",message:1===a?"Your 1 unsaved change will be lost. This action cannot be undone.":`Your ${a} unsaved changes will be lost. This action cannot be undone.`,confirmLabel:"Discard",destructive:!0});return e?(0,f.jsxs)("div",{className:"flex items-center gap-4",children:[m&&(0,f.jsxs)("div",{className:"flex items-center gap-3 animate-fade-in",children:[(0,f.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 rounded-lg bg-[var(--accent)]/10 border border-[var(--accent)]/20",children:[(0,f.jsx)("span",{className:`w-1.5 h-1.5 rounded-full bp-keep-round ${"saved"===h?"bg-[var(--success)]":"bg-[var(--accent)] animate-pulse"}`}),(0,f.jsx)("span",{className:"text-[10px] font-bold uppercase tracking-wider text-[var(--text-primary)]",children:q})]}),(0,f.jsx)("button",{onClick:s,disabled:"idle"!==h||0===a,className:"btn btn-sm btn-destructive",children:"Discard"})]}),(0,f.jsx)("button",{onClick:r,disabled:o,className:"btn btn-sm btn-primary",children:p}),t]}):(0,f.jsxs)("div",{role:"region","aria-label":"Unsaved changes",className:`sticky bottom-0 left-0 right-0 z-30 bg-[var(--bg-secondary)] border-t border-[var(--border)] shadow-[0_-4px_12px_rgba(0,0,0,0.08)] px-4 py-2 flex items-center gap-3 transition-transform duration-200 ${n?"translate-y-full":"translate-y-0"}`,children:[(0,f.jsx)("span",{"aria-hidden":!0,className:"saved"===h?"text-[var(--success)]":"text-[var(--accent)]",children:"saved"===h?"✓":"⚠"}),(0,f.jsx)("span",{className:"text-sm","aria-live":"polite",children:q}),(0,f.jsx)("div",{className:"flex-1"}),(0,f.jsx)("button",{onClick:s,disabled:"idle"!==h||0===a,className:"btn btn-sm btn-destructive",children:"Discard"}),(0,f.jsx)("button",{onClick:r,disabled:o,className:"btn btn-sm btn-primary",children:p}),t]})}function fS(){(0,h.useSearchParams)();let[a,b]=(0,g.useState)([]),[c,d]=(0,g.useState)(null),[e,i]=(0,g.useState)({}),[j,k]=(0,g.useState)(null),[l,m]=(0,g.useState)(null),[n,o]=(0,g.useState)(null),[p,q]=(0,g.useState)(null),[r,s]=(0,g.useState)(null),[t,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(null),[x,y]=(0,g.useState)(null),[z,A]=(0,g.useState)(!1);(0,g.useRef)(null);let[B,C]=(0,g.useState)(!0),[D,E]=(0,g.useState)({}),F=(0,g.useMemo)(()=>{let a=new Set(Object.keys(D)),b=new Set(Object.keys(e)),c=0;for(let d of b){if(!a.has(d)){c++;continue}JSON.stringify(e[d])!==JSON.stringify(D[d])&&c++}for(let d of a)!b.has(d)&&c++;return c},[e,D]),G=(0,g.useMemo)(()=>{let a=new Map;if(!n)return a;for(let b of[...n.warnings,...n.errors]){let c=b.match(/tool '([^']+)'/);c&&a.set(c[1],b)}return a},[n]),H=(n?.errors.length??0)+G.size,I=async()=>{if(null===c)return;u(!1),s(null);let a=await fetch(`/api/projects/${c}/hands-config`,{method:"DELETE"});if(!a.ok)return void s((await a.json().catch(()=>({}))).error||`Delete failed: HTTP ${a.status}`);i({}),E({}),k(null),m(null),C(!1)},K=async()=>{if(null===c)return;s(null);let a=await fetch(`/api/projects/${c}/hands-config`,{method:"PUT",body:JSON.stringify({config:{version:"1",tools:e},ifMtimeMs:j})});if(409===a.status)return void y({currentMtimeMs:(await a.json()).currentMtimeMs});if(a.ok){k((await a.json()).mtimeMs),E({...e});return}let b=await a.json().catch(()=>({}));s(b.error||(b.errors??[]).join("; ")||`Save failed: HTTP ${a.status}`)},L=async()=>{if(null!==c&&x){A(!0);try{let a=await fetch(`/api/projects/${c}/hands-config`,{method:"PUT",body:JSON.stringify({config:{version:"1",tools:e},ifMtimeMs:x.currentMtimeMs})});if(a.ok){let b=await a.json();k(b.mtimeMs),E({...e})}else{let b=await a.json().catch(()=>({}));s(`Retry failed: ${b.error||(b.errors??[]).join("; ")||`HTTP ${a.status}`}`)}}finally{A(!1),y(null)}}};if(0===a.length)return(0,f.jsxs)("div",{className:"max-w-2xl mx-auto text-sm",children:["No projects registered. ",(0,f.jsx)("a",{href:"/",className:"underline",children:"Register one first"}),"."]});let M=Object.keys(e).length>0;return p||Object.keys(e).length>0&&(Object.keys(e)[0],e[Object.keys(e)[0]]),(0,f.jsxs)("div",{className:"flex flex-col h-full -m-6 overflow-hidden bg-[var(--bg-primary)]",children:[(0,f.jsxs)("div",{className:"flex items-center justify-between px-6 py-3 bg-[var(--bg-secondary)] border-b border-[var(--border)] shadow-sm z-10",children:[(0,f.jsxs)("div",{className:"flex items-center gap-6",children:[(0,f.jsxs)("label",{className:"flex items-center gap-3 text-xs font-bold uppercase tracking-widest text-[var(--text-secondary)]",children:["Project",(0,f.jsx)("select",{value:c??"",onChange:a=>d(Number(a.target.value)),"aria-label":"project",className:"px-3 py-1.5 bg-[var(--bg-primary)] border border-[var(--border)] rounded-lg font-mono text-[var(--accent)] outline-none focus:border-[var(--accent)] transition-all cursor-pointer min-w-[220px]",children:a.map(a=>(0,f.jsx)("option",{value:a.id,children:a.name},a.id))})]}),null!==j&&(0,f.jsx)("button",{onClick:()=>u(!0),className:"btn btn-md btn-destructive",title:"Remove kontexta.json from this project",children:"Delete Config"})]}),(0,f.jsx)(fR,{inline:!0,count:F,errorCount:H,onDiscard:()=>{i({...D}),s(null)},onSave:K})]}),(0,f.jsxs)("div",{className:"flex flex-1 overflow-hidden",children:[(0,f.jsxs)("div",{className:"w-[300px] flex flex-col border-r border-[var(--border)] bg-[var(--bg-secondary)]/30",children:[(0,f.jsxs)("div",{className:"p-4 border-b border-[var(--border)] flex items-center justify-between bg-[var(--bg-secondary)]/50",children:[(0,f.jsx)("h4",{className:"text-[10px] font-bold uppercase tracking-[0.2em] text-[var(--text-secondary)]",children:"Registry"}),(0,f.jsx)("button",{onClick:()=>{q({name:"",def:{description:"",command:[],params:{},danger:"safe"}})},className:"p-1 rounded hover:bg-[var(--accent)] hover:text-black transition-colors",title:"Add tool from scratch",children:(0,f.jsx)("svg",{className:"w-4 h-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,f.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})})})]}),(0,f.jsxs)("div",{className:"flex-1 overflow-y-auto p-2 space-y-1 custom-scrollbar",children:[Object.entries(e).map(([a,b])=>(0,f.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>q({name:a,def:b}),onKeyDown:c=>{("Enter"===c.key||" "===c.key)&&(c.preventDefault(),q({name:a,def:b}))},className:`w-full group flex items-center justify-between px-3 py-2 rounded-lg transition-all border cursor-pointer outline-none focus:ring-1 focus:ring-[var(--accent)] ${p?.name===a?"bg-[var(--accent)] text-black border-transparent shadow-lg":"border-transparent text-[var(--text-secondary)] hover:bg-[var(--accent)]/10 hover:text-[var(--text-primary)]"}`,children:[(0,f.jsxs)("div",{className:"flex items-center gap-3 overflow-hidden",children:[(0,f.jsx)("div",{className:`w-1.5 h-1.5 rounded-full bp-keep-round flex-shrink-0 ${p?.name===a?"bg-black":"bg-[var(--accent)]"}`}),(0,f.jsx)("span",{className:"font-mono text-[13px] truncate",children:a})]}),(0,f.jsxs)("div",{className:"flex items-center gap-2",children:[G.has(a)&&(0,f.jsx)("span",{className:"w-2 h-2 rounded-full bp-keep-round bg-[var(--danger)] animate-pulse",title:G.get(a)}),(0,f.jsx)("button",{onClick:b=>{b.stopPropagation(),w(a)},className:`opacity-0 group-hover:opacity-100 p-1 rounded hover:bg-[var(--danger)] hover:text-white transition-all ${p?.name===a?"text-black hover:bg-black/20":""}`,title:"Delete tool",children:(0,f.jsx)("svg",{className:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,f.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]},a)),!M&&(0,f.jsx)("div",{className:"text-center py-8 px-4 text-xs text-[var(--text-secondary)] italic border border-dashed border-[var(--border)] rounded-xl m-2",children:"No tools defined yet."})]})]}),(0,f.jsxs)("div",{className:"flex-1 overflow-y-auto bg-[var(--bg-primary)] custom-scrollbar relative border-r border-[var(--border)]",children:[l&&(0,f.jsxs)("div",{className:"m-6 p-4 bg-[var(--danger-soft)] border border-[var(--danger)]/50 rounded-xl text-sm text-[var(--danger)] animate-fade-in",children:[(0,f.jsx)("span",{className:"font-bold block mb-1",children:"Configuration Error"}),"kontexta.json failed to parse: ",l,". Fix the file manually before continuing."]}),r&&(0,f.jsxs)("div",{className:"m-6 p-4 bg-[var(--danger-soft)] border border-[var(--danger)]/50 rounded-xl text-sm text-[var(--danger)] animate-fade-in",children:[r,(0,f.jsx)("button",{onClick:()=>s(null),className:"ml-2 text-[var(--danger)] hover:opacity-80","aria-label":"Dismiss error",children:(0,f.jsx)(J.A,{className:"w-4 h-4","aria-hidden":!0})})]}),(0,f.jsx)("div",{className:"p-8 max-w-4xl mx-auto",children:p?(0,f.jsxs)("div",{className:"animate-fade-in",children:[(0,f.jsxs)("header",{className:"mb-8 border-b border-[var(--border)] pb-6",children:[(0,f.jsx)("div",{className:"inline-flex items-center px-2 py-0.5 rounded bg-[var(--accent)]/10 border border-[var(--accent)]/20 text-[var(--accent)] text-[10px] font-bold uppercase tracking-wider mb-3",children:p.name?"Editor":"New Tool"}),(0,f.jsx)("h3",{className:"text-3xl font-title font-extrabold text-[var(--text-primary)] tracking-tight",children:p.name||"Untitled Tool"})]}),(0,f.jsx)(fO,{inline:!0,initial:p,projectName:a.find(a=>a.id===c)?.name,onSave:(a,b)=>{i(c=>{let d={};for(let[e,f]of Object.entries(c))p&&e===p.name?d[a]=b:d[e]=f;return p&&p.name in c||(d[a]=b),d}),q(null)}})]},p.name||"new-tool"):(0,f.jsxs)("div",{className:"h-full flex flex-col items-center justify-center text-center py-20 animate-fade-in",children:[(0,f.jsx)("div",{className:"w-16 h-16 rounded-full bp-keep-round bg-[var(--bg-secondary)] flex items-center justify-center mb-6 border border-[var(--border)]",children:(0,f.jsx)("svg",{className:"w-8 h-8 text-[var(--text-secondary)]",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,f.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M11 4a2 2 0 114 0v1a1 1 0 001 1h3a1 1 0 011 1v3a1 1 0 01-1 1h-1a2 2 0 100 4h1a1 1 0 011 1v3a1 1 0 01-1 1h-3a1 1 0 01-1-1v-1a2 2 0 10-4 0v1a1 1 0 01-1 1H7a1 1 0 01-1-1v-3a1 1 0 00-1-1H4a2 2 0 110-4h1a1 1 0 001-1V7a1 1 0 011-1h3a1 1 0 001-1V4z"})})}),(0,f.jsx)("h3",{className:"text-xl font-bold text-[var(--text-primary)] mb-2",children:"Configure Your Tools"}),(0,f.jsxs)("p",{className:"text-sm text-[var(--text-secondary)] max-w-xs mx-auto",children:["Select an existing tool to edit, or use the ",(0,f.jsx)("strong",{children:"Start from scratch"})," button on the right to create a new one."]})]})})]}),(0,f.jsxs)("div",{className:`bg-[var(--bg-secondary)]/30 border-l border-[var(--border)] transition-all duration-300 flex flex-col ${B?"w-[48px]":"w-[350px]"}`,children:[(0,f.jsx)("button",{onClick:()=>C(!B),className:"p-4 border-b border-[var(--border)] flex items-center justify-center hover:bg-[var(--accent)] hover:text-black transition-colors group",title:B?"Expand Template Gallery":"Collapse Template Gallery",children:B?(0,f.jsx)("svg",{className:"w-5 h-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,f.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 6h16M4 12h16m-7 6h7"})}):(0,f.jsxs)("div",{className:"flex items-center gap-3 w-full",children:[(0,f.jsx)("svg",{className:"w-5 h-5 flex-shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,f.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})}),(0,f.jsx)("span",{className:"text-[10px] font-bold uppercase tracking-widest truncate",children:"Template Gallery"})]})}),!B&&(0,f.jsx)("div",{className:"flex-1 overflow-y-auto p-4 custom-scrollbar",children:(0,f.jsx)(fQ,{heading:M?"Add from template:":"Start with a template:",onSelectTemplate:(a,b)=>{q({name:a,def:b})},onBlank:()=>{q({name:"",def:{description:"",command:[],params:{},danger:"safe"}})}})})]})]}),(0,f.jsx)(U.T,{open:null!==v,onClose:()=>w(null),onConfirm:()=>{v&&(i(a=>{let{[v]:b,...c}=a;return c}),w(null))},title:`Delete tool "${v}"?`,message:"This removes the tool from the draft. Click Save in the top bar to apply.",confirmLabel:"Delete tool",destructive:!0}),(0,f.jsx)(U.T,{open:t,onClose:()=>u(!1),onConfirm:I,title:"Delete kontexta.json?",message:"This removes the configuration file from this project. All Hands tools will be unregistered immediately.",confirmLabel:"Delete file",destructive:!0}),(0,f.jsx)(U.T,{open:null!==x,onClose:()=>y(null),onConfirm:L,title:"Config changed on disk",message:"kontexta.json changed on disk since you loaded it. Overwriting will replace those changes with the version you're editing here.",confirmLabel:"Overwrite",destructive:!0,loading:z})]})}function fT({projectId:a}){let[b,c]=(0,g.useState)(null),[d,e]=(0,g.useState)(null);return d?(0,f.jsxs)("div",{className:"text-sm text-[var(--danger)]",children:["Status error: ",d]}):b?(0,f.jsxs)("section",{className:"border border-[var(--border)] rounded p-3 bg-[var(--bg-secondary)] text-sm",children:[(0,f.jsx)("h3",{className:"font-medium mb-2",children:"Journal status"}),(0,f.jsxs)("div",{className:"space-y-1",children:[(0,f.jsxs)("div",{children:["Project: ",(0,f.jsx)("span",{className:"font-mono",children:b.slug})]}),(0,f.jsxs)("div",{children:["Last distilled event:"," ",(0,f.jsx)("span",{className:"font-mono",children:b.high_water?.last_event_ts??"never"})]}),(0,f.jsxs)("div",{children:["Events processed (cumulative): ",b.high_water?.events_processed??0]}),(0,f.jsxs)("div",{children:["Open tasks: ",b.open_tasks_count]}),b.open_tasks.length>0&&(0,f.jsx)("ul",{className:"ml-4 list-disc mt-2",children:b.open_tasks.map(a=>(0,f.jsxs)("li",{children:[(0,f.jsx)("span",{className:"font-mono",children:a.task_slug})," — ",a.status_latest??"(no status)"," —"," ",(0,f.jsx)("span",{className:"text-[var(--text-secondary)]",children:a.last_active_at})]},a.task_slug))})]})]}):(0,f.jsx)("div",{className:"text-sm text-[var(--muted)]",children:"Loading status…"})}let fU={mode:"lenient",retention:{raw_days:90,mechanical_only_days:365,narrative_days:0,archive_cold_after_days:365,purge_archived_after_days:0},ticket_pattern:"[A-Z]+-\\d+",redact:{extra_keys:[],max_arg_size_bytes:1024},webui_scheduler:{enabled:!0,mechanical_distill_interval_minutes:15,housekeep_interval_hours:24}},fV={raw_days:"How long to keep raw JSONL events. Cost of high retention: Increased disk space usage. Low retention saves space but prevents deep auditing of past agent decisions.",mechanical_only_days:"How long to keep basic markdown summaries. Cost of high retention: Increased agent token usage and slower search times as the active index grows. Low retention keeps the index fast but risks losing older context.",narrative_days:"How long to keep rich LLM-generated summaries. Cost of high retention: Significant increase in agent token usage when searching or reading context. Low retention saves token budget but limits human-readable history.",archive_cold_after_days:"When to archive inactive topics. Cost of high retention: Agents will waste tokens reading stale context that clutters search results. Lower values keep the working context sharp.",purge_archived_after_days:"When to permanently delete archived items. Cost of high retention: Increased long-term disk storage. Low retention reclaims space but irreversibly destroys project history. (0 = never delete)."};function fW(){let[a,b]=(0,g.useState)([]),[c,d]=(0,g.useState)(null),[e,h]=(0,g.useState)(fU),[i,j]=(0,g.useState)(null),k=(0,g.useRef)(null),l=(0,g.useMemo)(()=>{var a;return a=k.current??fU,Object.keys(e).reduce((b,c)=>b+ +(JSON.stringify(e[c])!==JSON.stringify(a[c])),0)},[e]);function m(a,b){h({...e,[a]:b})}async function n(){if(null!==c)try{let a=await fetch(`/api/projects/${c}/journal-config`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({journal:e})});if(!a.ok)throw Error(`save failed: ${a.status}`);k.current=e,h({...e})}catch(a){j(a instanceof Error?a.message:String(a))}}return(0,f.jsxs)("div",{className:"space-y-8 max-w-3xl mx-auto",children:[i&&(0,f.jsx)("div",{className:"border border-[var(--danger)]/30 bg-[var(--danger-soft)] text-[var(--danger)] rounded p-2 text-sm",children:i}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-medium mb-2",children:"Project"}),(0,f.jsxs)("select",{value:c??"",onChange:a=>d(Number(a.target.value)),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1 min-w-[200px] text-xs",children:[(0,f.jsx)("option",{value:"",children:"Select project…"}),a.map(a=>(0,f.jsx)("option",{value:a.id,children:a.name},a.id))]})]}),null!==c&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(fT,{projectId:c}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-medium mb-2",children:"Mode"}),(0,f.jsxs)("select",{value:e.mode,onChange:a=>m("mode",a.target.value),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1 text-xs",children:[(0,f.jsx)("option",{value:"lenient",children:"Lenient (recommended)"}),(0,f.jsx)("option",{value:"strict",children:"Strict — block reads when backlog exists"}),(0,f.jsx)("option",{value:"mechanical-only",children:"Mechanical-only — no LLM upgrade"})]}),(0,f.jsxs)("div",{className:"mt-2 p-3 bg-amber-500/5 border border-amber-500/20 rounded text-xs text-[var(--text-secondary)] leading-normal",children:["lenient"===e.mode&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("strong",{children:"Lenient mode"})," is unobtrusive. If undistilled events accumulate, the MCP server automatically runs a fast, background distillation to maintain memory without blocking the agent."]}),"strict"===e.mode&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("strong",{children:"Strict mode"})," enforces memory hygiene. It blocks read tools (like ",(0,f.jsx)("code",{children:"search"})," or ",(0,f.jsx)("code",{children:"read_file"}),") with a ",(0,f.jsx)("code",{children:"JOURNAL_BACKLOG"})," error if undistilled events exist, forcing the agent to summarize its work first. Pass ",(0,f.jsx)("code",{children:"journal_bypass: true"})," to override."]}),"mechanical-only"===e.mode&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("strong",{children:"Mechanical-only mode"})," functions like lenient mode but disables LLM processing. It prevents subagents from upgrading basic markdown logs into richer narratives, saving token costs on large projects."]})]})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-medium mb-2",children:"Retention (days; 0 = forever)"}),(0,f.jsx)("div",{className:"grid grid-cols-2 gap-3 max-w-md",children:["raw_days","mechanical_only_days","narrative_days","archive_cold_after_days","purge_archived_after_days"].map(a=>(0,f.jsxs)("label",{className:"flex flex-col text-xs",children:[(0,f.jsxs)("span",{className:"text-[var(--text-secondary)] flex items-center gap-1 mb-0.5",children:[a,(0,f.jsx)("span",{title:fV[a],className:"cursor-help text-[9px] font-bold text-[var(--muted)] border border-[var(--muted)] rounded-full bp-keep-round w-3.5 h-3.5 inline-flex items-center justify-center opacity-60 hover:opacity-100 transition-opacity",children:"?"})]}),(0,f.jsx)("input",{type:"number",min:0,value:e.retention[a],onChange:b=>m("retention",{...e.retention,[a]:Number(b.target.value)}),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1 text-xs"})]},a))})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-medium mb-2",children:"Ticket pattern (regex)"}),(0,f.jsx)("input",{value:e.ticket_pattern,onChange:a=>m("ticket_pattern",a.target.value),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1 w-full max-w-md font-mono text-xs",placeholder:"[A-Z]+-\\d+"})]}),(0,f.jsxs)("section",{children:[(0,f.jsx)("h2",{className:"text-lg font-medium mb-2",children:"WebUI scheduler"}),(0,f.jsxs)("label",{className:"flex items-center gap-2 text-xs",children:[(0,f.jsx)("input",{type:"checkbox",checked:e.webui_scheduler.enabled,onChange:a=>m("webui_scheduler",{...e.webui_scheduler,enabled:a.target.checked})}),"Enable scheduled mechanical distillation"]}),(0,f.jsxs)("div",{className:"grid grid-cols-2 gap-3 max-w-md mt-2",children:[(0,f.jsxs)("label",{className:"flex flex-col text-xs",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)]",children:"mechanical_distill_interval_minutes"}),(0,f.jsx)("input",{type:"number",min:1,value:e.webui_scheduler.mechanical_distill_interval_minutes,onChange:a=>m("webui_scheduler",{...e.webui_scheduler,mechanical_distill_interval_minutes:Number(a.target.value)}),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1 text-xs"})]}),(0,f.jsxs)("label",{className:"flex flex-col text-xs",children:[(0,f.jsx)("span",{className:"text-[var(--text-secondary)]",children:"housekeep_interval_hours"}),(0,f.jsx)("input",{type:"number",min:1,value:e.webui_scheduler.housekeep_interval_hours,onChange:a=>m("webui_scheduler",{...e.webui_scheduler,housekeep_interval_hours:Number(a.target.value)}),className:"bg-[var(--bg-secondary)] border border-[var(--border)] rounded px-2 py-1 text-xs"})]})]})]}),(0,f.jsx)(fR,{count:l,errorCount:0,onSave:n,onDiscard:function(){h(k.current??fU)}})]})]})}let fX=[{id:"install",label:"MCP SERVER CONFIG"},{id:"journal",label:"JOURNAL CONFIG"},{id:"builder",label:"HANDS TOOLS"},{id:"tools",label:"MCP DOCUMENTATION"}];function fY({open:a,onClose:b}){let[c,d]=(0,g.useState)("install");return(0,f.jsx)(R.l,{open:a,onClose:b,title:"Kontexta configuration",widthClass:"max-w-6xl",hideHeader:!0,children:(0,f.jsxs)("div",{className:"-m-5 flex flex-col h-[85vh] overflow-hidden text-[var(--text-secondary)]",children:[(0,f.jsx)("div",{className:"flex items-center border-b border-[var(--border)] pl-4 pr-12 bg-[var(--bg-secondary)] flex-shrink-0",children:(0,f.jsx)("div",{role:"tablist",className:"flex gap-1 flex-1 overflow-x-auto hide-scrollbar",children:fX.map(a=>(0,f.jsx)("button",{role:"tab","aria-selected":c===a.id,onClick:()=>d(a.id),className:`px-4 py-3 transition font-mono font-bold uppercase tracking-wider whitespace-nowrap border-b-2 ${c===a.id?"bg-[var(--accent)] text-black border-transparent":"border-transparent text-[var(--text-secondary)] hover:bg-[var(--accent-soft)] hover:text-[var(--text-primary)] focus:bg-[var(--accent-soft)] focus:text-[var(--text-primary)]"}`,children:a.label},a.id))})}),(0,f.jsxs)("div",{className:"flex-1 overflow-auto p-6 bg-[var(--bg-primary)] animate-fade-in",children:["tools"===c&&(0,f.jsx)(fE,{}),"install"===c&&(0,f.jsx)(fI,{}),"builder"===c&&(0,f.jsx)(fS,{}),"journal"===c&&(0,f.jsx)(fW,{})]},c)]})})}let fZ=[{key:"default",label:"Default",swatches:["#B4781E","#1a1a1a","#e5e5e5","#252525"]},{key:"minimal",label:"Minimal",swatches:["#2563eb","#ffffff","#1a1a1a","#e0e0e0"]},{key:"api-ref",label:"API Ref",swatches:["#0ea5e9","#0c1222","#e2e8f0","#1e293b"]},{key:"flat",label:"Flat",swatches:["#e91e63","#00bcd4","#ff9800","#9c27b0"]},{key:"terminal",label:"Terminal",swatches:["#00ff41","#000000","#33cc33","#1a3a1a"]},{key:"paper",label:"Paper",swatches:["#8b4513","#faf6f1","#2b2620","#d9cdb8"]},{key:"solarized",label:"Solarized",swatches:["#b58900","#268bd2","#2aa198","#dc322f"]},{key:"brutalist",label:"Brutalist",swatches:["#000000","#ffff00","#ffffff","#555555"]},{key:"ocean",label:"Ocean",swatches:["#5eead4","#c4b5fd","#fda4af","#0b1220"]}];function f$({isOpen:a,onClose:b,mode:c="publish",onSwitchToPublish:d,onPublishSuccess:e}){let[h,i]=(0,g.useState)([]),[j,k]=(0,g.useState)([]),[l,m]=(0,g.useState)({folders:[],title:"Kontexta Docs",brand:"Kontexta",tagline:"",hero:!0,theme:"default",llmsTxt:!0,seo:!0}),[n,o]=(0,g.useState)(!1),[p,q]=(0,g.useState)(null),[r,s]=(0,g.useState)(null),[t,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),[x,y]=(0,g.useState)(null),[z,A]=(0,g.useState)([]),[B,C]=(0,g.useState)(null),D=async()=>{if(0===j.length)return void s("Please select at least one folder to publish.");o(!0),s(null),q(null);try{let a=await fetch("/api/publish",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({folders:j,title:l.title,brand:l.brand,tagline:l.tagline,hero:l.hero,theme:l.theme,llmsTxt:l.llmsTxt,seo:l.seo,projectId:B})}),c=await a.json();c.success?(e?.(c),b()):(q(c),s(c.error||"Publish failed"))}catch(a){s(a instanceof Error?a.message:"Publish failed")}finally{o(!1)}},E=null!==B,F=z.find(a=>a.id===B),G="view"===c;return(0,f.jsx)(R.l,{open:a,onClose:b,title:G?"View published site":"Publish documentation",widthClass:G?"max-w-[1400px]":"max-w-2xl",hideHeader:!0,children:(0,f.jsxs)("div",{className:"-m-5 flex flex-col max-h-[80vh] overflow-hidden",children:[(0,f.jsx)("div",{className:"flex items-center justify-between px-6 py-4 border-b border-[var(--border)] shrink-0",children:(0,f.jsxs)("div",{className:"flex items-center gap-3",children:[(0,f.jsxs)("svg",{className:"w-5 h-5 text-[var(--accent)]",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[(0,f.jsx)("path",{d:"M4 4h16v16H4z"}),(0,f.jsx)("path",{d:"M9 9h6v6H9z"}),(0,f.jsx)("path",{d:"M9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 14h3M1 9h3M1 14h3"})]}),(0,f.jsx)("h2",{className:"text-lg font-semibold text-[var(--text-primary)]",children:G?"View published site":"Publish documentation"})]})}),(0,f.jsx)("div",{className:"flex-1 overflow-hidden flex flex-col",children:G?(0,f.jsx)("div",{className:"flex-1 flex flex-col",children:t?(0,f.jsx)("div",{className:"flex items-center justify-center h-full p-8",children:(0,f.jsxs)("div",{className:"text-center space-y-3",children:[(0,f.jsxs)("svg",{className:"w-8 h-8 animate-spin mx-auto text-[var(--accent)]",viewBox:"0 0 24 24",fill:"none",children:[(0,f.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,f.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,f.jsx)("p",{className:"text-sm text-[var(--text-secondary)]",children:"Checking for published site..."})]})}):v?(0,f.jsx)("iframe",{src:"/api/publish/html",title:"Published Site",className:"w-full h-full border-0 bg-white",sandbox:"allow-same-origin allow-scripts allow-popups"}):(0,f.jsx)("div",{className:"flex items-center justify-center h-full p-8",children:(0,f.jsxs)("div",{className:"text-center space-y-4 max-w-md",children:[(0,f.jsxs)("svg",{className:"w-12 h-12 mx-auto text-[var(--text-tertiary)]",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[(0,f.jsx)("path",{d:"M4 4h16v16H4z"}),(0,f.jsx)("path",{d:"M9 9h6v6H9z"}),(0,f.jsx)("path",{d:"M9 1v3M15 1v3M9 20v3M15 20v3M20 9h3M20 14h3M1 9h3M1 14h3"})]}),(0,f.jsx)("p",{className:"text-sm text-[var(--text-secondary)]",children:"No published site found. Publish some content first to generate a static site."}),(0,f.jsx)("button",{onClick:()=>d?.(),className:"px-4 py-2 rounded-xl text-sm font-medium bg-[var(--accent)] text-white hover:bg-[color-mix(in_srgb,var(--accent)_85%,black)] transition-colors",children:"Create a Publish"})]})})}):(0,f.jsxs)("div",{className:"flex-1 overflow-y-auto p-6 space-y-6",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-2",children:"Source Scope"}),(0,f.jsxs)("div",{className:"flex items-center gap-2",children:[(0,f.jsx)("button",{onClick:()=>C(null),className:`px-3 py-1.5 rounded-lg text-sm font-medium transition-all ${!E?"bg-[var(--accent)]/10 text-[var(--accent)] border border-[var(--accent)]/30":"bg-[var(--bg-tertiary)] text-[var(--text-secondary)] border border-[var(--border)] hover:border-[var(--border)]"}`,children:"Knowledge Base"}),(0,f.jsxs)("button",{onClick:()=>C(z[0]?.id??null),className:`px-3 py-1.5 rounded-lg text-sm font-medium transition-all ${E?"bg-[var(--accent)]/10 text-[var(--accent)] border border-[var(--accent)]/30":"bg-[var(--bg-tertiary)] text-[var(--text-secondary)] border border-[var(--border)] hover:border-[var(--border)]"}`,children:["Project",F&&(0,f.jsxs)("span",{className:"ml-1 text-xs opacity-70",children:["(",F.name,")"]})]})]})]}),E&&(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-2",children:"Select Project"}),(0,f.jsx)("select",{value:B??"",onChange:a=>C(a.target.value?Number(a.target.value):null),className:"w-full px-3 py-2 rounded-xl bg-[var(--bg-tertiary)] border border-[var(--border)] text-[var(--text-primary)] text-sm focus:outline-none focus:ring-2 focus:ring-[var(--accent)]/50",children:z.map(a=>(0,f.jsxs)("option",{value:a.id,children:[a.name," (",a.slug,")"]},a.id))})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-3",children:"Folders to Publish"}),(0,f.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,f.jsx)("button",{onClick:()=>{k([...h])},className:"text-xs text-[var(--accent)] hover:underline",children:"Select All"}),(0,f.jsx)("span",{className:"text-[var(--text-tertiary)]",children:"•"}),(0,f.jsx)("button",{onClick:()=>{k([])},className:"text-xs text-[var(--text-tertiary)] hover:underline",children:"Clear All"})]}),(0,f.jsx)("div",{className:"space-y-2 max-h-48 overflow-y-auto rounded-xl border border-[var(--border)] p-3 bg-[var(--bg-tertiary)]/30",children:0===h.length?(0,f.jsx)("p",{className:"text-sm text-[var(--text-tertiary)] text-center py-4",children:E?`No folders found in ${F?.name??"this project"}`:"No folders found in your vault"}):h.map(a=>{var b;return(0,f.jsxs)("label",{className:"flex items-center gap-3 p-2 rounded-lg hover:bg-[var(--bg-secondary)] cursor-pointer transition-colors",children:[(0,f.jsx)("input",{type:"checkbox",checked:j.includes(a),onChange:()=>{k(b=>b.includes(a)?b.filter(b=>b!==a):[...b,a])},className:"w-4 h-4 rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)] focus:ring-offset-0 bg-[var(--bg-tertiary)]"}),(0,f.jsx)("span",{className:"text-sm text-[var(--text-primary)]",children:(b=E?F?.slug??null:null)?`${b}/${a}`:a})]},a)})}),j.length>0&&(0,f.jsxs)("p",{className:"text-xs text-[var(--text-tertiary)] mt-2",children:[j.length," folder",1!==j.length?"s":""," selected"]})]}),(0,f.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-2",children:"Site Title"}),(0,f.jsx)("input",{type:"text",value:l.title,onChange:a=>m(b=>({...b,title:a.target.value})),className:"w-full px-3 py-2 rounded-xl bg-[var(--bg-tertiary)] border border-[var(--border)] text-[var(--text-primary)] text-sm focus:outline-none focus:ring-2 focus:ring-[var(--accent)]/50"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-2",children:"Brand Name"}),(0,f.jsx)("input",{type:"text",value:l.brand,onChange:a=>m(b=>({...b,brand:a.target.value})),className:"w-full px-3 py-2 rounded-xl bg-[var(--bg-tertiary)] border border-[var(--border)] text-[var(--text-primary)] text-sm focus:outline-none focus:ring-2 focus:ring-[var(--accent)]/50"})]})]}),(0,f.jsxs)("div",{children:[(0,f.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer mb-2",children:[(0,f.jsx)("input",{type:"checkbox",checked:l.hero,onChange:a=>m(b=>({...b,hero:a.target.checked})),className:"w-4 h-4 rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)] focus:ring-offset-0 bg-[var(--bg-tertiary)]"}),(0,f.jsx)("span",{className:"text-sm font-medium text-[var(--text-secondary)]",children:"Show hero on landing page"})]}),l.hero&&(0,f.jsx)("input",{type:"text",value:l.tagline,onChange:a=>m(b=>({...b,tagline:a.target.value})),placeholder:"Optional tagline shown under the title",className:"w-full px-3 py-2 rounded-xl bg-[var(--bg-tertiary)] border border-[var(--border)] text-[var(--text-primary)] text-sm focus:outline-none focus:ring-2 focus:ring-[var(--accent)]/50"})]}),(0,f.jsxs)("div",{children:[(0,f.jsx)("label",{className:"block text-sm font-medium text-[var(--text-secondary)] mb-3",children:"Theme"}),(0,f.jsx)("div",{className:"grid grid-cols-3 gap-3",children:fZ.map(({key:a,label:b,swatches:c})=>(0,f.jsxs)("button",{onClick:()=>m(b=>({...b,theme:a})),className:`px-3 py-3 rounded-xl border-2 text-sm font-medium transition-all flex flex-col items-start gap-2 ${l.theme===a?"border-[var(--accent)] bg-[var(--accent)]/10 text-[var(--accent)]":"border-[var(--border)] bg-[var(--bg-tertiary)]/30 text-[var(--text-secondary)] hover:border-[var(--border)]"}`,children:[(0,f.jsx)("span",{children:b}),(0,f.jsx)("span",{className:"flex gap-1",children:c.map((a,b)=>(0,f.jsx)("span",{className:"w-3 h-3 rounded-full bp-keep-round border border-black/10",style:{background:a}},b))})]},a))})]}),(0,f.jsxs)("div",{className:"flex items-center gap-6",children:[(0,f.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,f.jsx)("input",{type:"checkbox",checked:l.llmsTxt,onChange:a=>m(b=>({...b,llmsTxt:a.target.checked})),className:"w-4 h-4 rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)] focus:ring-offset-0 bg-[var(--bg-tertiary)]"}),(0,f.jsx)("span",{className:"text-sm text-[var(--text-primary)]",children:"Generate llms.txt"})]}),(0,f.jsxs)("label",{className:"flex items-center gap-2 cursor-pointer",children:[(0,f.jsx)("input",{type:"checkbox",checked:l.seo,onChange:a=>m(b=>({...b,seo:a.target.checked})),className:"w-4 h-4 rounded border-[var(--border)] text-[var(--accent)] focus:ring-[var(--accent)] focus:ring-offset-0 bg-[var(--bg-tertiary)]"}),(0,f.jsx)("span",{className:"text-sm text-[var(--text-primary)]",children:"SEO Meta Tags"})]})]}),r&&(0,f.jsx)("div",{className:"p-4 rounded-xl bg-[var(--danger-soft)] border border-[var(--danger)]/20",children:(0,f.jsx)("p",{className:"text-sm text-[var(--danger)]",children:r})})]})}),(0,f.jsxs)("div",{className:"flex items-center justify-between gap-3 px-6 py-4 border-t border-[var(--border)] bg-[var(--bg-tertiary)]/30",children:[(0,f.jsx)("div",{className:"text-xs text-[var(--text-secondary)] flex-1",children:!G&&x&&(0,f.jsxs)("span",{title:new Date(x).toLocaleString(),children:["Last built ",function(a){if(!a)return null;let b=new Date(a).getTime();if(!Number.isFinite(b))return null;let c=Date.now()-b;return c<6e4?"just now":c<36e5?`${Math.floor(c/6e4)}m ago`:c<864e5?`${Math.floor(c/36e5)}h ago`:c<6048e5?`${Math.floor(c/864e5)}d ago`:new Date(a).toLocaleDateString()}(x)]})}),(0,f.jsx)("button",{onClick:b,disabled:n,className:"px-4 py-2 rounded-xl text-sm font-medium text-[var(--text-secondary)] hover:bg-[var(--bg-tertiary)] transition-colors disabled:opacity-50",children:"Close"}),!G&&0===j.length&&(0,f.jsx)("span",{className:"text-xs text-[var(--text-secondary)] italic",title:"The orange Publish button is disabled until at least one folder is selected",children:"Select at least one folder to enable Publish"}),!G&&(0,f.jsx)("button",{onClick:D,disabled:n||0===j.length,className:"px-6 py-2 rounded-xl text-sm font-medium bg-[var(--accent)] text-white hover:bg-[color-mix(in_srgb,var(--accent)_85%,black)] transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center gap-2",children:n?(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("svg",{className:"w-4 h-4 animate-spin",viewBox:"0 0 24 24",fill:"none",children:[(0,f.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,f.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),"Publishing..."]}):(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("svg",{className:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[(0,f.jsx)("path",{d:"M4 4h16v16H4z"}),(0,f.jsx)("path",{d:"M12 8v8M8 12h8"})]}),"Publish"]})})]})]})})}function f_(a,b=0){let[c,d]=(0,g.useState)([]),[e,f]=(0,g.useState)(""),[h,i]=(0,g.useState)(!1);return{folders:c,basePath:e,loading:h}}function f0({segments:a}){return 0===a.length?null:(0,f.jsx)("nav",{"aria-label":"Breadcrumb",className:"h-8 px-4 flex items-center gap-1.5 text-[13px] border-b border-[var(--border)] bg-[var(--bg-tertiary)] text-[var(--text-secondary)] select-none",children:a.map((b,c)=>{let d=c===a.length-1;return(0,f.jsxs)("span",{className:"flex items-center gap-1.5",children:[c>0&&(0,f.jsx)(y.A,{className:"w-3.5 h-3.5 opacity-40","aria-hidden":!0}),d||!b.onClick?(0,f.jsx)("span",{className:d?"font-bold text-[var(--text-primary)]":"",children:b.label}):(0,f.jsx)("button",{onClick:b.onClick,className:"hover:text-[var(--accent)] transition-colors",children:b.label})]},`${c}-${b.label}`)})})}function f1({globalRemoteUrl:a,status:b,lastDoneAt:c,stage:d,onOpenConfigure:e}){let[,h]=(0,g.useState)(0),[i,j]=(0,g.useState)(null),k="syncing"===b?"syncing...":"error"===b?"sync failed":"no-remote"===b?"no remote configured":"ok"===b||c?`synced ${function(a){if(!a)return"never";let b=Math.floor((Date.now()-a)/1e3);return b<60?`${b}s ago`:b<3600?`${Math.floor(b/60)}m ago`:b<86400?`${Math.floor(b/3600)}h ago`:`${Math.floor(b/86400)}d ago`}(c)}`:"ready",l=a?a.replace(/^https?:\/\//,"").replace(/\.git$/,""):null;return(0,f.jsxs)("footer",{className:"relative h-7 border-t border-[var(--border)] bg-[var(--bg-secondary)] px-4 flex items-center gap-2.5 text-[13px] text-[var(--text-secondary)] font-mono",children:[(0,f.jsx)("span",{style:{color:"ok"===b?"var(--success)":"syncing"===b?"var(--warning)":"error"===b?"var(--danger)":"var(--text-secondary)"},className:"syncing"===b?"animate-pulse":"",children:"●"}),(0,f.jsx)("span",{children:k}),(0,f.jsx)("span",{className:"text-[var(--border)]",children:"\xb7"}),(0,f.jsxs)("span",{className:`font-medium ${"syncing"===b?"text-[var(--warning)]":""}`,children:["git: ","syncing"===b?d||"working":"clean"]}),l&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("span",{className:"text-[var(--border)]",children:"\xb7"}),(0,f.jsx)("span",{className:"truncate max-w-[260px] opacity-70",children:l})]}),i?.updateAvailable&&(0,f.jsxs)("button",{onClick:e,className:"ml-auto text-[var(--accent)] hover:underline",title:`You're on v${i.currentVersion} — open Configure for update instructions`,children:["⬆ v",i.latestVersion," available"]})]})}function f2({items:a,footer:b}){let[c,d]=(0,g.useState)(null),e=[...a,...b?[b]:[]].find(a=>a.id===c)??null;return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)("div",{className:"w-14 shrink-0 bg-[var(--bg-secondary)] border-r border-[var(--border)] flex flex-col items-center py-4 gap-4 z-50",children:[(0,f.jsx)("div",{className:"flex flex-col items-center gap-3 w-full",children:a.map(a=>(0,f.jsx)(f3,{item:a,onPeek:()=>d(a.id)},a.id))}),(0,f.jsx)("div",{className:"flex-1"}),b&&(0,f.jsx)("div",{className:"pt-4 border-t border-[var(--border)] w-full flex flex-col items-center",children:(0,f.jsx)(f3,{item:b,onPeek:()=>d(b.id)})})]}),e?.peek&&(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)("div",{className:"fixed inset-0 z-40 bg-black/20 backdrop-blur-sm transition-all",onClick:()=>d(null)}),(0,f.jsxs)("div",{className:"absolute z-50 left-16 top-16 w-64 max-h-[80vh] overflow-auto bg-[var(--bg-secondary)]/90 backdrop-blur-xl border border-amber-accent/20 rounded-xl shadow-2xl p-4 animate-fade-in",children:[(0,f.jsx)("div",{className:"text-[10px] font-black uppercase tracking-[0.2em] text-amber-accent/70 mb-4",children:e.label}),(0,f.jsx)("div",{className:"scrollbar-thin",children:e.peek})]})]})]})}function f3({item:a,onPeek:b}){let c=a.label.charAt(0).toUpperCase(),d="kb"===a.id;return(0,f.jsxs)("button",{title:a.label,onClick:()=>{a.onClick(),a.peek&&b()},className:`
|
|
7
7
|
w-10 h-10 flex items-center justify-center relative rounded-xl transition-all duration-300 group hover-lift
|
|
8
8
|
${a.active?"bg-amber-accent text-white shadow-[0_0_20px_rgba(180,120,30,0.4)]":"bg-[var(--bg-tertiary)] text-[var(--text-secondary)] hover:bg-[var(--accent-soft)] hover:text-[var(--text-primary)] active:scale-95"}
|
|
9
|
-
`,"aria-label":a.label,children:[a.active&&(0,f.jsx)("span",{className:"absolute -left-3 top-1/2 -translate-y-1/2 w-1.5 h-6 bg-amber-accent rounded-r-full shadow-[4px_0_15px_rgba(180,120,30,0.6)] bp-keep-round"}),d?(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",className:"w-5 h-5",children:[(0,f.jsx)("path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}),(0,f.jsx)("path",{d:"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"})]}):(0,f.jsx)("span",{className:"font-black text-sm tracking-tighter",children:c})]})}function f2(){var a;let[b,c]=(0,g.useState)(!1),[d,e]=(0,g.useState)(!1),[j,k]=(0,g.useState)(!1),[l,m]=(0,g.useState)(!1),[n,o]=(0,g.useState)(!1),[p,q]=(0,g.useState)(!1),[r,v]=(0,g.useState)(!1),[w,x]=(0,g.useState)(!1),[y,z]=(0,g.useState)("publish"),[A,B]=(0,g.useState)(!1),[C,D]=(0,g.useState)(!1),[E,G]=(0,g.useState)(null),[H,I]=(0,g.useState)(null),[J,K]=(0,g.useState)(null),[L,M]=(0,g.useState)(null),[N,O]=(0,g.useState)(null),[P,Q]=(0,g.useState)("updated_at"),[R,S]=(0,g.useState)(0);(0,h.useSearchParams)();let[T,U]=(0,g.useState)(null),W=function(a){let[b,c]=(0,g.useState)(a?"idle":"no-remote"),[d,e]=(0,g.useState)(null),[f,h]=(0,g.useState)(null),[i,j]=(0,g.useState)([]);return(0,g.useRef)(null),{status:b,lastDoneAt:d,stage:f,log:i}}(T);(0,g.useCallback)(async()=>{try{let a=await fetch("/api/git/remote");if(a.ok){let b=await a.json();U(b.remote_url)}}catch(a){}},[]);let{projects:X,loading:Y,refresh:Z}=function(){let[a,b]=(0,g.useState)([]),[c,d]=(0,g.useState)(!0),e=(0,g.useRef)(0);return{projects:a,loading:c,refresh:(0,g.useCallback)(async()=>{let a=++e.current;try{d(!0);let c=await fetch("/api/projects");if(c.ok){let d=await c.json();if(a!==e.current)return;b(d)}}catch(a){console.error("Failed to fetch projects:",a)}finally{a===e.current&&d(!1)}},[])}}(),$=async()=>{if(E)try{let a=await fetch(`/api/projects/${E}`,{method:"DELETE"});if(a.ok)G(null),K(null),O(null),M(null),sessionStorage.removeItem("selectedSection"),sessionStorage.removeItem("selectedProjectId"),Z(),i.o.success("Project unregistered");else{let b=await a.json().catch(()=>({}));i.o.error(b.error||"Failed to unregister project")}}catch(a){i.o.error(`Failed to unregister project: ${a?.message??"Network error"}`)}},{files:_,loading:aa,refresh:ab}=function(a={}){let[b,c]=(0,g.useState)([]),[d,e]=(0,g.useState)(!0),f=(0,g.useRef)(a);f.current=a;let h=(0,g.useRef)(0),i=(0,g.useRef)(null),j=(0,g.useCallback)(async()=>{let a=f.current,b=++h.current;i.current?.abort();let d=new AbortController;i.current=d;try{e(!0);let f=new URLSearchParams;void 0!==a.project_id&&f.append("project_id",null===a.project_id?"none":a.project_id.toString()),a.tag&&f.append("tag",a.tag),void 0!==a.favorite&&f.append("favorite",a.favorite.toString()),a.folder&&f.append("folder",a.folder);let g=`/api/files${f.toString()?`?${f.toString()}`:""}`,i=await fetch(g,{signal:d.signal});if(b!==h.current)return;if(i.ok){let a=await i.json();if(b!==h.current)return;c(a)}}catch(a){if(a?.name==="AbortError")return;console.error("Failed to fetch files:",a)}finally{b===h.current&&e(!1)}},[]);return{files:b,loading:d,refresh:j}}({}),ac=(0,g.useMemo)(()=>"favorites"===J?_.filter(a=>a.favorite):"projects"===J&&null!==E?_.filter(a=>a.project_id===E):_,[_,J,E]),ad=(0,g.useMemo)(()=>_.filter(a=>!a.project_id),[_]),{folders:ae,basePath:af}=fZ(null,R),{folders:ag,basePath:ah}=fZ("projects"===J?E:null,R),ai=X.find(a=>a.id===E);a=(0,g.useCallback)(a=>{ab()},[ab]),(0,g.useRef)(a).current=a;let aj=t("(max-width: 767px)"),[ak,al]=(0,g.useState)(!1),am=(0,g.useRef)(!1),an=()=>!am.current||window.confirm("You have unsaved changes in the open file. Discard them?"),ao=a=>{an()&&(G(a),K("projects"),M(null),O(null),sessionStorage.setItem("selectedSection","projects"),sessionStorage.setItem("selectedProjectId",String(a)))},ap=()=>{an()&&(K("knowledge"),G(null),M(null),O(null),sessionStorage.setItem("selectedSection","knowledge"),sessionStorage.removeItem("selectedProjectId"))},aq=()=>{an()&&(K("favorites"),G(null),M(null),O(null),sessionStorage.setItem("selectedSection","favorites"),sessionStorage.removeItem("selectedProjectId"))},ar=(a,b)=>{if(a!==L&&!an())return;let c=_.find(b=>b.id===a);if(c)if(c.project_id){let a=X.find(a=>a.id===c.project_id);K("projects"),G(c.project_id),sessionStorage.setItem("selectedSection","projects"),sessionStorage.setItem("selectedProjectId",String(c.project_id)),a?.path&&c.path.startsWith(a.path)?O(c.path.slice(a.path.length).replace(/^[\/\\]+/,"").split(/[\/\\]/).slice(0,-1).join("/")||null):O(null)}else K("knowledge"),G(null),sessionStorage.setItem("selectedSection","knowledge"),sessionStorage.removeItem("selectedProjectId"),af&&c.path.startsWith(af)?O(c.path.slice(af.length).replace(/^[\/\\]+/,"").split(/[\/\\]/).slice(0,-1).join("/")||null):O(null);M(a)},as=async()=>{if(!E)return;let a=await fetch(`/api/projects/${E}/sync`,{method:"POST"});if(a.ok)ab();else throw Error((await a.json()).error||"Sync failed")},at=async()=>{B(!0);try{let a=await fetch("/api/refresh",{method:"POST",body:JSON.stringify({projectId:E}),headers:{"Content-Type":"application/json"}});if(a.ok)ab(),ab(),S(a=>a+1),i.o.success("Index refreshed");else{let b=await a.json().catch(()=>({}));i.o.error(b.error||"Refresh failed")}}catch(a){i.o.error(`Failed to refresh: ${a?.message??"Network error"}`)}finally{B(!1)}},au=async()=>{let a=await fetch("/api/git/sync-all",{method:"POST"});if(a.ok||207===a.status)ab();else throw Error((await a.json()).error||"Sync All failed")},av=async a=>{try{if((await fetch("/api/git/remote",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({remote_url:a})})).ok)U(a);else throw Error("Failed to update global remote")}catch(a){throw console.error("Failed to update remote URL:",a),a}},aw=async(a,b,c,d)=>{try{let e=await fetch("/api/files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:a,content:b,destination:c,projectId:E,folder:d})}),f=await e.json().catch(()=>({}));if(e.ok)return m(!1),i.o.success(`Created "${a}"`),await ab(),"number"==typeof f.id&&M(f.id),!0;return i.o.error(f.error||"Failed to create file"),!1}catch(a){return i.o.error(`Failed to create file: ${a?.message??"Network error"}`),!1}},ax=async a=>{try{let b=await fetch(`/api/files/${a}`,{method:"DELETE"});if(b.ok)ab(),S(a=>a+1),M(null),i.o.success("File deleted");else{let a=await b.json().catch(()=>({}));i.o.error(a.error||"Failed to delete file")}}catch(a){i.o.error(`Failed to delete file: ${a?.message??"Network error"}`)}},ay=async a=>{try{let b=await fetch("/api/folders",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:H&&H>0?H:null,name:a})});if(b.ok)return o(!1),H&&0!==H?O(a):(K("knowledge"),G(null),O(a),sessionStorage.setItem("selectedSection","knowledge"),sessionStorage.removeItem("selectedProjectId")),S(a=>a+1),i.o.success(`Folder "${a}" created`),!0;{let a=await b.json().catch(()=>({}));return i.o.error(a.error||"Failed to create folder"),!1}}catch(a){return i.o.error(`Failed to create folder: ${a?.message??"Network error"}`),!1}},az=async()=>{if(N){D(!0);try{let a=await fetch(`/api/folders?name=${encodeURIComponent(N)}&projectId=${E||""}`,{method:"DELETE"});if(a.ok)O(null),S(a=>a+1),q(!1),i.o.success("Folder deleted");else{let b=await a.json().catch(()=>({}));i.o.error(b.error||"Failed to delete folder")}}catch(a){i.o.error(`Failed to delete folder: ${a?.message??"Network error"}`)}finally{D(!1)}}},aA=(0,g.useMemo)(()=>{let a=[];"favorites"===J?a.push({label:"Favorites",onClick:aq}):"knowledge"===J?a.push({label:"Knowledge",onClick:ap}):"projects"===J&&ai&&a.push({label:ai.name,onClick:()=>ao(ai.id)});let b=L?ac.find(a=>a.id===L)||_.find(a=>a.id===L):null,c="projects"===J?ai?.path??null:af??null,d=[];return b&&c&&b.path?.startsWith(c)?d=b.path.slice(c.length).replace(/^\/+/,"").split("/").filter(Boolean).slice(0,-1):N&&(d=N.split("/").filter(Boolean)),d.forEach(b=>a.push({label:b})),b&&a.push({label:b.title}),a},[J,ai,L,ac,_,af,N]),aB=X.map(a=>({id:`p-${a.id}`,label:a.name,active:"projects"===J&&E===a.id,onClick:()=>ao(a.id)}));return ak?aj?(0,f.jsxs)("div",{className:"h-screen flex flex-col items-center justify-center px-6 text-center bg-[var(--bg-primary)] text-[var(--text-primary)]",children:[(0,f.jsx)("div",{className:"text-2xl font-extrabold tracking-[4px] text-[var(--accent)] mb-3",children:"KONTEXTA"}),(0,f.jsx)("p",{className:"text-sm text-[var(--text-secondary)] max-w-xs",children:"Kontexta is best used on a tablet or larger screen. Open this URL on a wider device to continue."})]}):(0,f.jsxs)("div",{className:"h-screen flex flex-col",children:[(0,f.jsx)(s,{onSearch:()=>c(!0),onAbout:()=>e(!0),onConfigure:()=>k(!0),onPublish:()=>{z("publish"),x(!0)},onViewPublished:()=>window.open("/api/publish/html","_blank"),globalRemoteUrl:T,syncLog:W.log,onSyncAll:au,onUpdateRemote:av,selectedProjectName:"projects"===J?ai?.name??null:null,onSyncProject:"projects"===J&&E?as:void 0}),(0,f.jsx)(f$,{segments:aA}),(0,f.jsx)(u,{leftRail:(0,f.jsx)(f0,{items:aB,footer:{id:"kb",label:"Knowledge Base",active:"knowledge"===J,onClick:ap}}),left:(0,f.jsx)(F,{projects:X,projectFiles:ac,knowledgeFiles:ad,selectedProjectId:E,selectedSection:J,selectedFolder:N,projectFolders:ag||[],knowledgeFolders:ae||[],projectBasePath:ah,knowledgeBasePath:af,onSelectProject:ao,onSelectKnowledge:ap,onSelectFavorites:aq,onSelectKnowledgeFolder:a=>{an()&&(K("knowledge"),G(null),M(null),O(a),sessionStorage.setItem("selectedSection","knowledge"),sessionStorage.removeItem("selectedProjectId"))},onSelectFolder:a=>{an()&&(O(a),M(null))},onSelectFile:a=>ar(a,!0),onCreateFolder:a=>{I(a),o(!0)}}),middle:(0,f.jsx)(V,{files:ac,selectedFileId:L,onSelectFile:ar,sortBy:P,onSortChange:Q,selectedFolder:N,selectedProject:ai??null,selectedSection:J,basePath:"projects"===J?ah:af,loading:aa||Y,onSync:as,onUnregisterProject:()=>v(!0),onDeleteFolder:()=>{N&&q(!0)},projects:X,onUploaded:ab,onRefresh:at,refreshing:A,onNewFile:()=>m(!0)}),right:(0,f.jsx)(ft,{fileId:L,onDelete:ax,onChanged:ab,onDirtyChange:a=>{am.current=a}})}),(0,f.jsx)(f_,{globalRemoteUrl:T,status:W.status,lastDoneAt:W.lastDoneAt,stage:W.stage,onOpenConfigure:()=>k(!0)}),(0,f.jsx)(fu,{open:b,onClose:()=>c(!1),onSelectFile:a=>{if(a.id===L||an()){if(a.project_id){let b=X.find(b=>b.id===a.project_id);K("projects"),G(a.project_id),sessionStorage.setItem("selectedSection","projects"),sessionStorage.setItem("selectedProjectId",String(a.project_id)),b?.path&&a.path.startsWith(b.path)?O(a.path.slice(b.path.length).replace(/^[\/\\]+/,"").split(/[\/\\]/).slice(0,-1).join("/")||null):O(null)}else K("knowledge"),G(null),sessionStorage.setItem("selectedSection","knowledge"),sessionStorage.removeItem("selectedProjectId"),af&&a.path.startsWith(af)?O(a.path.slice(af.length).replace(/^[\/\\]+/,"").split(/[\/\\]/).slice(0,-1).join("/")||null):O(null);M(a.id),c(!1)}}}),(0,f.jsx)(fv,{open:d,onClose:()=>e(!1)}),(0,f.jsx)(fW,{open:j,onClose:()=>k(!1)}),(0,f.jsx)(fw,{open:l,onClose:()=>m(!1),onCreate:aw,currentProjectId:E,availableFolders:"knowledge"===J?ae:ag}),(0,f.jsx)(fx,{open:n,onClose:()=>o(!1),onCreate:ay}),(0,f.jsx)(fy,{open:p,folderName:N||"",onClose:()=>q(!1),onConfirm:az,loading:C}),(0,f.jsx)(fz,{isOpen:r,projectName:ai?.name||"",onClose:()=>v(!1),onConfirm:()=>{$(),v(!1)}}),(0,f.jsx)(fY,{isOpen:w,onClose:()=>{x(!1),z("publish")},mode:y,onSwitchToPublish:()=>{z("publish")},onPublishSuccess:a=>i.o.success("Publish successful",{duration:1/0,closeButton:!0,description:[`${a.docCount??0} docs`,a.endpointCount?`${a.endpointCount} endpoints`:null,a.termCount?`${a.termCount} terms`:null,a.output??null].filter(Boolean).join(" \xb7 "),action:{label:"View Published",onClick:()=>window.open("/api/publish/html","_blank","noopener,noreferrer")}})})]}):(0,f.jsx)("div",{className:"h-screen bg-[var(--bg-primary)]"})}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},23348:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.camelCase=void 0;var c=/^--[a-zA-Z0-9_-]+$/,d=/-([a-z])/g,e=/^[^-]+$/,f=/^-(webkit|moz|ms|o|khtml)-/,g=/^-(ms)-/,h=function(a,b){return b.toUpperCase()},i=function(a,b){return"".concat(b,"-")};b.camelCase=function(a,b){var j;return(void 0===b&&(b={}),!(j=a)||e.test(j)||c.test(j))?a:(a=a.toLowerCase(),(a=b.reactCompat?a.replace(g,i):a.replace(f,i)).replace(d,h))}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},28684:a=>{"use strict";a.exports=require("kxta-core")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30127:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(13522).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/kontexta/kontexta/apps/web/src/app/home-client.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/kontexta/kontexta/apps/web/src/app/home-client.tsx","default")},33873:a=>{"use strict";a.exports=require("path")},34200:a=>{"use strict";var b=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,c=/\n/g,d=/^\s*/,e=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,f=/^:\s*/,g=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,h=/^[;\s]*/,i=/^\s+|\s+$/g;function j(a){return a?a.replace(i,""):""}a.exports=function(a,i){if("string"!=typeof a)throw TypeError("First argument must be a string");if(!a)return[];i=i||{};var k=1,l=1;function m(a){var b=a.match(c);b&&(k+=b.length);var d=a.lastIndexOf("\n");l=~d?a.length-d:l+a.length}function n(){var a={line:k,column:l};return function(b){return b.position=new o(a),q(d),b}}function o(a){this.start=a,this.end={line:k,column:l},this.source=i.source}function p(b){var c=Error(i.source+":"+k+":"+l+": "+b);if(c.reason=b,c.filename=i.source,c.line=k,c.column=l,c.source=a,i.silent);else throw c}function q(b){var c=b.exec(a);if(c){var d=c[0];return m(d),a=a.slice(d.length),c}}function r(a){var b;for(a=a||[];b=s();)!1!==b&&a.push(b);return a}function s(){var b=n();if("/"==a.charAt(0)&&"*"==a.charAt(1)){for(var c=2;""!=a.charAt(c)&&("*"!=a.charAt(c)||"/"!=a.charAt(c+1));)++c;if(c+=2,""===a.charAt(c-1))return p("End of comment missing");var d=a.slice(2,c-2);return l+=2,m(d),a=a.slice(c),l+=2,b({type:"comment",comment:d})}}o.prototype.content=a,q(d);var t,u=[];for(r(u);t=function(){var a=n(),c=q(e);if(c){if(s(),!q(f))return p("property missing ':'");var d=q(g),i=a({type:"declaration",property:j(c[0].replace(b,"")),value:d?j(d[0].replace(b,"")):""});return q(h),i}}();)!1!==t&&(u.push(t),r(u));return u}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},48306:(a,b,c)=>{Promise.resolve().then(c.bind(c,30127))},54135:function(a,b,c){"use strict";var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.default=function(a,b){let c=null;if(!a||"string"!=typeof a)return c;let d=(0,e.default)(a),f="function"==typeof b;return d.forEach(a=>{if("declaration"!==a.type)return;let{property:d,value:e}=a;f?b(d,e,a):e&&((c=c||{})[d]=e)}),c};let e=d(c(34200))},62975:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>l,dynamic:()=>k});var d=c(18234),e=c(8002),f=c(34017),g=c(16040),h=c(28684),i=c(30127),j=c(28691);let k="force-dynamic";async function l(){(0,j.G)();let a=null;try{a=(0,h.getSetting)("auth_password_hash")}catch{(0,f.redirect)("/login")}a||(0,f.redirect)("/login");let b=await (0,e.b3)(),c=await (0,e.UL)();return(0,g.T5)({headers:b,cookies:c})||(0,f.redirect)("/login"),(0,d.jsx)(i.default,{})}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71866:(a,b,c)=>{Promise.resolve().then(c.bind(c,17115))},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},80981:a=>{"use strict";var b=Object.prototype.hasOwnProperty,c=Object.prototype.toString,d=Object.defineProperty,e=Object.getOwnPropertyDescriptor,f=function(a){return"function"==typeof Array.isArray?Array.isArray(a):"[object Array]"===c.call(a)},g=function(a){if(!a||"[object Object]"!==c.call(a))return!1;var d,e=b.call(a,"constructor"),f=a.constructor&&a.constructor.prototype&&b.call(a.constructor.prototype,"isPrototypeOf");if(a.constructor&&!e&&!f)return!1;for(d in a);return void 0===d||b.call(a,d)},h=function(a,b){d&&"__proto__"===b.name?d(a,b.name,{enumerable:!0,configurable:!0,value:b.newValue,writable:!0}):a[b.name]=b.newValue},i=function(a,c){if("__proto__"===c){if(!b.call(a,c))return;else if(e)return e(a,c).value}return a[c]};a.exports=function a(){var b,c,d,e,j,k,l=arguments[0],m=1,n=arguments.length,o=!1;for("boolean"==typeof l&&(o=l,l=arguments[1]||{},m=2),(null==l||"object"!=typeof l&&"function"!=typeof l)&&(l={});m<n;++m)if(b=arguments[m],null!=b)for(c in b)d=i(l,c),l!==(e=i(b,c))&&(o&&e&&(g(e)||(j=f(e)))?(j?(j=!1,k=d&&f(d)?d:[]):k=d&&g(d)?d:{},h(l,{name:c,newValue:a(o,k,e)})):void 0!==e&&h(l,{name:c,newValue:e}));return l}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../webpack-runtime.js");b.C(a);var c=b.X(0,[2923,3668,8675,2144,6680],()=>b(b.s=2402));module.exports=c})();
|
|
9
|
+
`,"aria-label":a.label,children:[a.active&&(0,f.jsx)("span",{className:"absolute -left-3 top-1/2 -translate-y-1/2 w-1.5 h-6 bg-amber-accent rounded-r-full shadow-[4px_0_15px_rgba(180,120,30,0.6)] bp-keep-round"}),d?(0,f.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",className:"w-5 h-5",children:[(0,f.jsx)("path",{d:"M4 19.5A2.5 2.5 0 0 1 6.5 17H20"}),(0,f.jsx)("path",{d:"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"})]}):(0,f.jsx)("span",{className:"font-black text-sm tracking-tighter",children:c})]})}function f4(){var a;let[b,c]=(0,g.useState)(!1),[d,e]=(0,g.useState)(!1),[j,k]=(0,g.useState)(!1),[l,m]=(0,g.useState)(!1),[n,o]=(0,g.useState)(!1),[p,q]=(0,g.useState)(!1),[r,v]=(0,g.useState)(!1),[w,x]=(0,g.useState)(!1),[y,z]=(0,g.useState)("publish"),[A,B]=(0,g.useState)(!1),[C,D]=(0,g.useState)(!1),[E,G]=(0,g.useState)(null),[H,I]=(0,g.useState)(null),[J,K]=(0,g.useState)(null),[L,M]=(0,g.useState)(null),[N,O]=(0,g.useState)(null),[P,Q]=(0,g.useState)("updated_at"),[R,S]=(0,g.useState)(0);(0,h.useSearchParams)();let[T,U]=(0,g.useState)(null),W=function(a){let[b,c]=(0,g.useState)(a?"idle":"no-remote"),[d,e]=(0,g.useState)(null),[f,h]=(0,g.useState)(null),[i,j]=(0,g.useState)([]);return(0,g.useRef)(null),{status:b,lastDoneAt:d,stage:f,log:i}}(T);(0,g.useCallback)(async()=>{try{let a=await fetch("/api/git/remote");if(a.ok){let b=await a.json();U(b.remote_url)}}catch(a){}},[]);let{projects:X,loading:Y,refresh:Z}=function(){let[a,b]=(0,g.useState)([]),[c,d]=(0,g.useState)(!0),e=(0,g.useRef)(0);return{projects:a,loading:c,refresh:(0,g.useCallback)(async()=>{let a=++e.current;try{d(!0);let c=await fetch("/api/projects");if(c.ok){let d=await c.json();if(a!==e.current)return;b(d)}}catch(a){console.error("Failed to fetch projects:",a)}finally{a===e.current&&d(!1)}},[])}}(),$=async()=>{if(E)try{let a=await fetch(`/api/projects/${E}`,{method:"DELETE"});if(a.ok)G(null),K(null),O(null),M(null),sessionStorage.removeItem("selectedSection"),sessionStorage.removeItem("selectedProjectId"),Z(),i.o.success("Project unregistered");else{let b=await a.json().catch(()=>({}));i.o.error(b.error||"Failed to unregister project")}}catch(a){i.o.error(`Failed to unregister project: ${a?.message??"Network error"}`)}},{files:_,loading:aa,refresh:ab}=function(a={}){let[b,c]=(0,g.useState)([]),[d,e]=(0,g.useState)(!0),f=(0,g.useRef)(a);f.current=a;let h=(0,g.useRef)(0),i=(0,g.useRef)(null),j=(0,g.useCallback)(async()=>{let a=f.current,b=++h.current;i.current?.abort();let d=new AbortController;i.current=d;try{e(!0);let f=new URLSearchParams;void 0!==a.project_id&&f.append("project_id",null===a.project_id?"none":a.project_id.toString()),a.tag&&f.append("tag",a.tag),void 0!==a.favorite&&f.append("favorite",a.favorite.toString()),a.folder&&f.append("folder",a.folder);let g=`/api/files${f.toString()?`?${f.toString()}`:""}`,i=await fetch(g,{signal:d.signal});if(b!==h.current)return;if(i.ok){let a=await i.json();if(b!==h.current)return;c(a)}}catch(a){if(a?.name==="AbortError")return;console.error("Failed to fetch files:",a)}finally{b===h.current&&e(!1)}},[]);return{files:b,loading:d,refresh:j}}({}),ac=(0,g.useMemo)(()=>"favorites"===J?_.filter(a=>a.favorite):"projects"===J&&null!==E?_.filter(a=>a.project_id===E):_,[_,J,E]),ad=(0,g.useMemo)(()=>_.filter(a=>!a.project_id),[_]),{folders:ae,basePath:af}=f_(null,R),{folders:ag,basePath:ah}=f_("projects"===J?E:null,R),ai=X.find(a=>a.id===E);a=(0,g.useCallback)(a=>{ab()},[ab]),(0,g.useRef)(a).current=a;let aj=t("(max-width: 767px)"),[ak,al]=(0,g.useState)(!1),am=(0,g.useRef)(!1),an=()=>!am.current||window.confirm("You have unsaved changes in the open file. Discard them?"),ao=a=>{an()&&(G(a),K("projects"),M(null),O(null),sessionStorage.setItem("selectedSection","projects"),sessionStorage.setItem("selectedProjectId",String(a)))},ap=()=>{an()&&(K("knowledge"),G(null),M(null),O(null),sessionStorage.setItem("selectedSection","knowledge"),sessionStorage.removeItem("selectedProjectId"))},aq=()=>{an()&&(K("favorites"),G(null),M(null),O(null),sessionStorage.setItem("selectedSection","favorites"),sessionStorage.removeItem("selectedProjectId"))},ar=(a,b)=>{if(a!==L&&!an())return;let c=_.find(b=>b.id===a);if(c)if(c.project_id){let a=X.find(a=>a.id===c.project_id);K("projects"),G(c.project_id),sessionStorage.setItem("selectedSection","projects"),sessionStorage.setItem("selectedProjectId",String(c.project_id)),a?.path&&c.path.startsWith(a.path)?O(c.path.slice(a.path.length).replace(/^[\/\\]+/,"").split(/[\/\\]/).slice(0,-1).join("/")||null):O(null)}else K("knowledge"),G(null),sessionStorage.setItem("selectedSection","knowledge"),sessionStorage.removeItem("selectedProjectId"),af&&c.path.startsWith(af)?O(c.path.slice(af.length).replace(/^[\/\\]+/,"").split(/[\/\\]/).slice(0,-1).join("/")||null):O(null);M(a)},as=async()=>{if(!E)return;let a=await fetch(`/api/projects/${E}/sync`,{method:"POST"});if(a.ok)ab();else throw Error((await a.json()).error||"Sync failed")},at=async()=>{B(!0);try{let a=await fetch("/api/refresh",{method:"POST",body:JSON.stringify({projectId:E}),headers:{"Content-Type":"application/json"}});if(a.ok)ab(),ab(),S(a=>a+1),i.o.success("Index refreshed");else{let b=await a.json().catch(()=>({}));i.o.error(b.error||"Refresh failed")}}catch(a){i.o.error(`Failed to refresh: ${a?.message??"Network error"}`)}finally{B(!1)}},au=async()=>{let a=await fetch("/api/git/sync-all",{method:"POST"});if(a.ok||207===a.status)ab();else throw Error((await a.json()).error||"Sync All failed")},av=async a=>{try{if((await fetch("/api/git/remote",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({remote_url:a})})).ok)U(a);else throw Error("Failed to update global remote")}catch(a){throw console.error("Failed to update remote URL:",a),a}},aw=async(a,b,c,d)=>{try{let e=await fetch("/api/files",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:a,content:b,destination:c,projectId:E,folder:d})}),f=await e.json().catch(()=>({}));if(e.ok)return m(!1),i.o.success(`Created "${a}"`),await ab(),"number"==typeof f.id&&M(f.id),!0;return i.o.error(f.error||"Failed to create file"),!1}catch(a){return i.o.error(`Failed to create file: ${a?.message??"Network error"}`),!1}},ax=async a=>{try{let b=await fetch(`/api/files/${a}`,{method:"DELETE"});if(b.ok)ab(),S(a=>a+1),M(null),i.o.success("File deleted");else{let a=await b.json().catch(()=>({}));i.o.error(a.error||"Failed to delete file")}}catch(a){i.o.error(`Failed to delete file: ${a?.message??"Network error"}`)}},ay=async a=>{try{let b=await fetch("/api/folders",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:H&&H>0?H:null,name:a})});if(b.ok)return o(!1),H&&0!==H?O(a):(K("knowledge"),G(null),O(a),sessionStorage.setItem("selectedSection","knowledge"),sessionStorage.removeItem("selectedProjectId")),S(a=>a+1),i.o.success(`Folder "${a}" created`),!0;{let a=await b.json().catch(()=>({}));return i.o.error(a.error||"Failed to create folder"),!1}}catch(a){return i.o.error(`Failed to create folder: ${a?.message??"Network error"}`),!1}},az=async()=>{if(N){D(!0);try{let a=await fetch(`/api/folders?name=${encodeURIComponent(N)}&projectId=${E||""}`,{method:"DELETE"});if(a.ok)O(null),S(a=>a+1),q(!1),i.o.success("Folder deleted");else{let b=await a.json().catch(()=>({}));i.o.error(b.error||"Failed to delete folder")}}catch(a){i.o.error(`Failed to delete folder: ${a?.message??"Network error"}`)}finally{D(!1)}}},aA=(0,g.useMemo)(()=>{let a=[];"favorites"===J?a.push({label:"Favorites",onClick:aq}):"knowledge"===J?a.push({label:"Knowledge",onClick:ap}):"projects"===J&&ai&&a.push({label:ai.name,onClick:()=>ao(ai.id)});let b=L?ac.find(a=>a.id===L)||_.find(a=>a.id===L):null,c="projects"===J?ai?.path??null:af??null,d=[];return b&&c&&b.path?.startsWith(c)?d=b.path.slice(c.length).replace(/^\/+/,"").split("/").filter(Boolean).slice(0,-1):N&&(d=N.split("/").filter(Boolean)),d.forEach(b=>a.push({label:b})),b&&a.push({label:b.title}),a},[J,ai,L,ac,_,af,N]),aB=X.map(a=>({id:`p-${a.id}`,label:a.name,active:"projects"===J&&E===a.id,onClick:()=>ao(a.id)}));return ak?aj?(0,f.jsxs)("div",{className:"h-screen flex flex-col items-center justify-center px-6 text-center bg-[var(--bg-primary)] text-[var(--text-primary)]",children:[(0,f.jsx)("div",{className:"text-2xl font-extrabold tracking-[4px] text-[var(--accent)] mb-3",children:"KONTEXTA"}),(0,f.jsx)("p",{className:"text-sm text-[var(--text-secondary)] max-w-xs",children:"Kontexta is best used on a tablet or larger screen. Open this URL on a wider device to continue."})]}):(0,f.jsxs)("div",{className:"h-screen flex flex-col",children:[(0,f.jsx)(s,{onSearch:()=>c(!0),onAbout:()=>e(!0),onConfigure:()=>k(!0),onPublish:()=>{z("publish"),x(!0)},onViewPublished:()=>window.open("/api/publish/html","_blank"),globalRemoteUrl:T,syncLog:W.log,onSyncAll:au,onUpdateRemote:av,selectedProjectName:"projects"===J?ai?.name??null:null,onSyncProject:"projects"===J&&E?as:void 0}),(0,f.jsx)(f0,{segments:aA}),(0,f.jsx)(u,{leftRail:(0,f.jsx)(f2,{items:aB,footer:{id:"kb",label:"Knowledge Base",active:"knowledge"===J,onClick:ap}}),left:(0,f.jsx)(F,{projects:X,projectFiles:ac,knowledgeFiles:ad,selectedProjectId:E,selectedSection:J,selectedFolder:N,projectFolders:ag||[],knowledgeFolders:ae||[],projectBasePath:ah,knowledgeBasePath:af,onSelectProject:ao,onSelectKnowledge:ap,onSelectFavorites:aq,onSelectKnowledgeFolder:a=>{an()&&(K("knowledge"),G(null),M(null),O(a),sessionStorage.setItem("selectedSection","knowledge"),sessionStorage.removeItem("selectedProjectId"))},onSelectFolder:a=>{an()&&(O(a),M(null))},onSelectFile:a=>ar(a,!0),onCreateFolder:a=>{I(a),o(!0)}}),middle:(0,f.jsx)(V,{files:ac,selectedFileId:L,onSelectFile:ar,sortBy:P,onSortChange:Q,selectedFolder:N,selectedProject:ai??null,selectedSection:J,basePath:"projects"===J?ah:af,loading:aa||Y,onSync:as,onUnregisterProject:()=>v(!0),onDeleteFolder:()=>{N&&q(!0)},projects:X,onUploaded:ab,onRefresh:at,refreshing:A,onNewFile:()=>m(!0)}),right:(0,f.jsx)(fv,{fileId:L,onDelete:ax,onChanged:ab,onDirtyChange:a=>{am.current=a}})}),(0,f.jsx)(f1,{globalRemoteUrl:T,status:W.status,lastDoneAt:W.lastDoneAt,stage:W.stage,onOpenConfigure:()=>k(!0)}),(0,f.jsx)(fw,{open:b,onClose:()=>c(!1),onSelectFile:a=>{if(a.id===L||an()){if(a.project_id){let b=X.find(b=>b.id===a.project_id);K("projects"),G(a.project_id),sessionStorage.setItem("selectedSection","projects"),sessionStorage.setItem("selectedProjectId",String(a.project_id)),b?.path&&a.path.startsWith(b.path)?O(a.path.slice(b.path.length).replace(/^[\/\\]+/,"").split(/[\/\\]/).slice(0,-1).join("/")||null):O(null)}else K("knowledge"),G(null),sessionStorage.setItem("selectedSection","knowledge"),sessionStorage.removeItem("selectedProjectId"),af&&a.path.startsWith(af)?O(a.path.slice(af.length).replace(/^[\/\\]+/,"").split(/[\/\\]/).slice(0,-1).join("/")||null):O(null);M(a.id),c(!1)}}}),(0,f.jsx)(fx,{open:d,onClose:()=>e(!1)}),(0,f.jsx)(fY,{open:j,onClose:()=>k(!1)}),(0,f.jsx)(fy,{open:l,onClose:()=>m(!1),onCreate:aw,currentProjectId:E,availableFolders:"knowledge"===J?ae:ag}),(0,f.jsx)(fz,{open:n,onClose:()=>o(!1),onCreate:ay}),(0,f.jsx)(fA,{open:p,folderName:N||"",onClose:()=>q(!1),onConfirm:az,loading:C}),(0,f.jsx)(fB,{isOpen:r,projectName:ai?.name||"",onClose:()=>v(!1),onConfirm:()=>{$(),v(!1)}}),(0,f.jsx)(f$,{isOpen:w,onClose:()=>{x(!1),z("publish")},mode:y,onSwitchToPublish:()=>{z("publish")},onPublishSuccess:a=>i.o.success("Publish successful",{duration:1/0,closeButton:!0,description:[`${a.docCount??0} docs`,a.endpointCount?`${a.endpointCount} endpoints`:null,a.termCount?`${a.termCount} terms`:null,a.output??null].filter(Boolean).join(" \xb7 "),action:{label:"View Published",onClick:()=>window.open("/api/publish/html","_blank","noopener,noreferrer")}})})]}):(0,f.jsx)("div",{className:"h-screen bg-[var(--bg-primary)]"})}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16184:function(a,b,c){"use strict";var d=(this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}})(c(54135)),e=c(23348);function f(a,b){var c={};return a&&"string"==typeof a&&(0,d.default)(a,function(a,d){a&&d&&(c[(0,e.camelCase)(a,b)]=d)}),c}f.default=f,a.exports=f},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},23348:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),b.camelCase=void 0;var c=/^--[a-zA-Z0-9_-]+$/,d=/-([a-z])/g,e=/^[^-]+$/,f=/^-(webkit|moz|ms|o|khtml)-/,g=/^-(ms)-/,h=function(a,b){return b.toUpperCase()},i=function(a,b){return"".concat(b,"-")};b.camelCase=function(a,b){var j;return(void 0===b&&(b={}),!(j=a)||e.test(j)||c.test(j))?a:(a=a.toLowerCase(),(a=b.reactCompat?a.replace(g,i):a.replace(f,i)).replace(d,h))}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},28684:a=>{"use strict";a.exports=require("kxta-core")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30127:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(13522).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/kontexta/kontexta/apps/web/src/app/home-client.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/kontexta/kontexta/apps/web/src/app/home-client.tsx","default")},33873:a=>{"use strict";a.exports=require("path")},34200:a=>{"use strict";var b=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,c=/\n/g,d=/^\s*/,e=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,f=/^:\s*/,g=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,h=/^[;\s]*/,i=/^\s+|\s+$/g;function j(a){return a?a.replace(i,""):""}a.exports=function(a,i){if("string"!=typeof a)throw TypeError("First argument must be a string");if(!a)return[];i=i||{};var k=1,l=1;function m(a){var b=a.match(c);b&&(k+=b.length);var d=a.lastIndexOf("\n");l=~d?a.length-d:l+a.length}function n(){var a={line:k,column:l};return function(b){return b.position=new o(a),q(d),b}}function o(a){this.start=a,this.end={line:k,column:l},this.source=i.source}function p(b){var c=Error(i.source+":"+k+":"+l+": "+b);if(c.reason=b,c.filename=i.source,c.line=k,c.column=l,c.source=a,i.silent);else throw c}function q(b){var c=b.exec(a);if(c){var d=c[0];return m(d),a=a.slice(d.length),c}}function r(a){var b;for(a=a||[];b=s();)!1!==b&&a.push(b);return a}function s(){var b=n();if("/"==a.charAt(0)&&"*"==a.charAt(1)){for(var c=2;""!=a.charAt(c)&&("*"!=a.charAt(c)||"/"!=a.charAt(c+1));)++c;if(c+=2,""===a.charAt(c-1))return p("End of comment missing");var d=a.slice(2,c-2);return l+=2,m(d),a=a.slice(c),l+=2,b({type:"comment",comment:d})}}o.prototype.content=a,q(d);var t,u=[];for(r(u);t=function(){var a=n(),c=q(e);if(c){if(s(),!q(f))return p("property missing ':'");var d=q(g),i=a({type:"declaration",property:j(c[0].replace(b,"")),value:d?j(d[0].replace(b,"")):""});return q(h),i}}();)!1!==t&&(u.push(t),r(u));return u}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},48306:(a,b,c)=>{Promise.resolve().then(c.bind(c,30127))},54135:function(a,b,c){"use strict";var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.default=function(a,b){let c=null;if(!a||"string"!=typeof a)return c;let d=(0,e.default)(a),f="function"==typeof b;return d.forEach(a=>{if("declaration"!==a.type)return;let{property:d,value:e}=a;f?b(d,e,a):e&&((c=c||{})[d]=e)}),c};let e=d(c(34200))},62975:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>l,dynamic:()=>k});var d=c(18234),e=c(8002),f=c(34017),g=c(16040),h=c(28684),i=c(30127),j=c(28691);let k="force-dynamic";async function l(){(0,j.G)();let a=null;try{a=(0,h.getSetting)("auth_password_hash")}catch{(0,f.redirect)("/login")}a||(0,f.redirect)("/login");let b=await (0,e.b3)(),c=await (0,e.UL)();return(0,g.T5)({headers:b,cookies:c})||(0,f.redirect)("/login"),(0,d.jsx)(i.default,{})}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71866:(a,b,c)=>{Promise.resolve().then(c.bind(c,5270))},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},80981:a=>{"use strict";var b=Object.prototype.hasOwnProperty,c=Object.prototype.toString,d=Object.defineProperty,e=Object.getOwnPropertyDescriptor,f=function(a){return"function"==typeof Array.isArray?Array.isArray(a):"[object Array]"===c.call(a)},g=function(a){if(!a||"[object Object]"!==c.call(a))return!1;var d,e=b.call(a,"constructor"),f=a.constructor&&a.constructor.prototype&&b.call(a.constructor.prototype,"isPrototypeOf");if(a.constructor&&!e&&!f)return!1;for(d in a);return void 0===d||b.call(a,d)},h=function(a,b){d&&"__proto__"===b.name?d(a,b.name,{enumerable:!0,configurable:!0,value:b.newValue,writable:!0}):a[b.name]=b.newValue},i=function(a,c){if("__proto__"===c){if(!b.call(a,c))return;else if(e)return e(a,c).value}return a[c]};a.exports=function a(){var b,c,d,e,j,k,l=arguments[0],m=1,n=arguments.length,o=!1;for("boolean"==typeof l&&(o=l,l=arguments[1]||{},m=2),(null==l||"object"!=typeof l&&"function"!=typeof l)&&(l={});m<n;++m)if(b=arguments[m],null!=b)for(c in b)d=i(l,c),l!==(e=i(b,c))&&(o&&e&&(g(e)||(j=f(e)))?(j?(j=!1,k=d&&f(d)?d:[]):k=d&&g(d)?d:{},h(l,{name:c,newValue:a(o,k,e)})):void 0!==e&&h(l,{name:c,newValue:e}));return l}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../webpack-runtime.js");b.C(a);var c=b.X(0,[2923,3668,8675,2144,6680],()=>b(b.s=2402));module.exports=c})();
|