n9router 0.4.51 → 0.4.52
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/app/.next/BUILD_ID +1 -1
- package/app/.next/app-path-routes-manifest.json +20 -20
- package/app/.next/build-manifest.json +2 -2
- package/app/.next/prerender-manifest.json +3 -3
- package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_global-error.html +1 -1
- package/app/.next/server/app/_global-error.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/_not-found.html +1 -1
- package/app/.next/server/app/_not-found.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/api/cli-tools/all-statuses/route.js +6 -5
- package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/cline-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cowork-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/cursor-byok/route.js +2 -1
- package/app/.next/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/devin-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
- package/app/.next/server/app/api/cli-tools/grok-build-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/jcode-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
- package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
- package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
- package/app/.next/server/app/api/oauth/codex/bulk-import/route.js +1 -1
- package/app/.next/server/app/api/oauth/codex/import-token/route.js +1 -1
- package/app/.next/server/app/api/providers/client/route.js +1 -1
- package/app/.next/server/app/api/providers/validate/route.js +1 -1
- package/app/.next/server/app/api/translator/send/route.js +1 -1
- package/app/.next/server/app/api/translator/translate/route.js +1 -1
- package/app/.next/server/app/api/tunnel/tailscale-install/route.js +2 -2
- package/app/.next/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
- package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
- package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
- package/app/.next/server/app/api/v1/images/generations/route.js +1 -1
- package/app/.next/server/app/api/v1/search/route.js +1 -1
- package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
- package/app/.next/server/app/api/version/route.js +1 -1
- package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/callback.html +1 -1
- package/app/.next/server/app/callback.rsc +3 -3
- package/app/.next/server/app/callback.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.html +1 -1
- package/app/.next/server/app/dashboard/basic-chat.rsc +5 -5
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.html +1 -1
- package/app/.next/server/app/dashboard/cli-tools.rsc +5 -5
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.html +1 -1
- package/app/.next/server/app/dashboard/combos.rsc +5 -5
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.html +1 -1
- package/app/.next/server/app/dashboard/endpoint.rsc +5 -5
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.html +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.rsc +5 -5
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.html +1 -1
- package/app/.next/server/app/dashboard/mitm.rsc +5 -5
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.html +1 -1
- package/app/.next/server/app/dashboard/profile.rsc +5 -5
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.html +1 -1
- package/app/.next/server/app/dashboard/providers/new.rsc +5 -5
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.html +1 -1
- package/app/.next/server/app/dashboard/providers.rsc +5 -5
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.html +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.rsc +5 -5
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/pxpipe.html +1 -1
- package/app/.next/server/app/dashboard/pxpipe.rsc +5 -5
- package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.html +2 -2
- package/app/.next/server/app/dashboard/quota.rsc +6 -6
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
- package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.rsc +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.html +1 -1
- package/app/.next/server/app/dashboard/skills.rsc +5 -5
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/token-saver.html +1 -1
- package/app/.next/server/app/dashboard/token-saver.rsc +5 -5
- package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.html +1 -1
- package/app/.next/server/app/dashboard/translator.rsc +5 -5
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.html +1 -1
- package/app/.next/server/app/dashboard/usage.rsc +5 -5
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.html +1 -1
- package/app/.next/server/app/dashboard.rsc +5 -5
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
- package/app/.next/server/app/dashboard.segments/_full.segment.rsc +5 -5
- package/app/.next/server/app/dashboard.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/dashboard.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/index.html +1 -1
- package/app/.next/server/app/index.rsc +3 -3
- package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/landing.html +1 -1
- package/app/.next/server/app/landing.rsc +3 -3
- package/app/.next/server/app/landing.segments/_full.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
- package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
- package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app/login.html +1 -1
- package/app/.next/server/app/login.rsc +4 -4
- package/app/.next/server/app/login.segments/_full.segment.rsc +4 -4
- package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/_index.segment.rsc +3 -3
- package/app/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/app/.next/server/app/page_client-reference-manifest.js +1 -1
- package/app/.next/server/app-paths-manifest.json +20 -20
- package/app/.next/server/chunks/112.js +1 -1
- package/app/.next/server/chunks/1975.js +7 -6
- package/app/.next/server/chunks/3913.js +1 -1
- package/app/.next/server/chunks/4037.js +1 -1
- package/app/.next/server/chunks/4705.js +1 -1
- package/app/.next/server/chunks/6671.js +1 -1
- package/app/.next/server/chunks/7137.js +1 -1
- package/app/.next/server/chunks/8145.js +1 -1
- package/app/.next/server/chunks/8301.js +1 -1
- package/app/.next/server/chunks/869.js +1 -1
- package/app/.next/server/middleware-build-manifest.js +1 -1
- package/app/.next/server/middleware.js +3 -3
- package/app/.next/server/pages/404.html +1 -1
- package/app/.next/server/pages/500.html +1 -1
- package/app/.next/server/server-reference-manifest.js +1 -1
- package/app/.next/server/server-reference-manifest.json +1 -1
- package/app/.next/static/chunks/{1321-fbaaa3c33f83ea85.js → 1321-f70183ecee5bedb5.js} +1 -1
- package/app/.next/static/chunks/{4028-33d2ebbce3016284.js → 4028-dd9deab6b8261f02.js} +1 -1
- package/app/package.json +1 -1
- package/app/src/shared/constants/cliTools.js +12 -0
- package/package.json +1 -1
- /package/app/.next/static/{zErBl-HUgBtz1iz9LeFt5 → q96GO6bFy0GB26MaN-AFa}/_buildManifest.js +0 -0
- /package/app/.next/static/{zErBl-HUgBtz1iz9LeFt5 → q96GO6bFy0GB26MaN-AFa}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
exports.id=1975,exports.ids=[1975],exports.modules={24776:(a,b,c)=>{"use strict";c.d(b,{DN:()=>f,Tb:()=>e});let d="__n9routerCursorByokSudoPassword";function e(){return globalThis[d]||null}function f(a){globalThis[d]=a||null}},42154:(a,b,c)=>{"use strict";c.d(b,{R:()=>j});var d=c(51455),e=c.n(d),f=c(76760),g=c.n(f),h=c(93696);async function i(a){try{return await e().access(a),!0}catch{return!1}}async function j({byokHomeDir:a=h.tZ}={}){let b=g().join(a,"workbench-hook-state.json"),c=g().join(a,"workbench-backups"),d=0;try{d=(await e().readdir(c,{withFileTypes:!0})).filter(a=>a.isFile()).length}catch{d=0}let f=await i(b),k=null,l=null;if(f)try{k=JSON.parse(await e().readFile(b,"utf8"))}catch(a){l=a?.message||"Invalid JSON"}let m=[k?.workbench,k?.extHost].filter(a=>"string"==typeof a?.backupPath&&a.backupPath),n=[];for(let a of m)n.push({targetPath:a.targetPath,backupPath:a.backupPath,exists:await i(a.backupPath)});let o=n.filter(a=>a.exists).length,p=d>0,q=!l&&o>0,r=null;return q||(r=!f&&p?"Backup files exist, but the saved restore mapping state is missing":l?`Saved restore mapping state is invalid: ${l}`:f&&0===m.length?"Saved restore mapping state does not contain backup entries":f&&0===o?"Saved restore mapping state points to missing mapped backup files":"No saved Cursor workbench backup is available"),{statePath:b,backupDir:c,stateExists:f,backupFileCount:d,backupFilesAvailable:p,mappedBackupCount:o,mappedBackups:n,restoreAvailable:q,restoreStateMissing:p&&!f,restoreReason:r}}},
|
|
1
|
+
exports.id=1975,exports.ids=[1975],exports.modules={24776:(a,b,c)=>{"use strict";c.d(b,{DN:()=>f,Tb:()=>e});let d="__n9routerCursorByokSudoPassword";function e(){return globalThis[d]||null}function f(a){globalThis[d]=a||null}},42154:(a,b,c)=>{"use strict";c.d(b,{R:()=>j});var d=c(51455),e=c.n(d),f=c(76760),g=c.n(f),h=c(93696);async function i(a){try{return await e().access(a),!0}catch{return!1}}async function j({byokHomeDir:a=h.tZ}={}){let b=g().join(a,"workbench-hook-state.json"),c=g().join(a,"workbench-backups"),d=0;try{d=(await e().readdir(c,{withFileTypes:!0})).filter(a=>a.isFile()).length}catch{d=0}let f=await i(b),k=null,l=null;if(f)try{k=JSON.parse(await e().readFile(b,"utf8"))}catch(a){l=a?.message||"Invalid JSON"}let m=[k?.workbench,k?.extHost].filter(a=>"string"==typeof a?.backupPath&&a.backupPath),n=[];for(let a of m)n.push({targetPath:a.targetPath,backupPath:a.backupPath,exists:await i(a.backupPath)});let o=n.filter(a=>a.exists).length,p=d>0,q=!l&&o>0,r=null;return q||(r=!f&&p?"Backup files exist, but the saved restore mapping state is missing":l?`Saved restore mapping state is invalid: ${l}`:f&&0===m.length?"Saved restore mapping state does not contain backup entries":f&&0===o?"Saved restore mapping state points to missing mapped backup files":"No saved Cursor workbench backup is available"),{statePath:b,backupDir:c,stateExists:f,backupFileCount:d,backupFilesAvailable:p,mappedBackupCount:o,mappedBackups:n,restoreAvailable:q,restoreStateMissing:p&&!f,restoreReason:r}}},72980:(a,b,c)=>{"use strict";c.d(b,{U5:()=>n,kx:()=>m,x6:()=>o});var d=c(51455),e=c.n(d),f=c(44708),g=c.n(f),h=c(76760),i=c.n(h),j=c(93696);let k=/^[0-9a-f]{40}$/i;function l(a){return new Promise((b,c)=>{g().get(a,{headers:{Accept:"application/vnd.github+json","User-Agent":"n9router-cursor-byok-installer"}},a=>{let d="";a.setEncoding("utf8"),a.on("data",a=>{d+=a}),a.on("error",c),a.on("end",()=>{if(200!==a.statusCode)return void c(Error(`Latest Cursor BYOK lookup failed with HTTP ${a.statusCode}`));try{b(JSON.parse(d))}catch{c(Error("Latest Cursor BYOK lookup returned invalid JSON"))}})}).on("error",c)})}async function m({request:a=l}={}){let b=await a(j.CU),c=String(b?.sha||"").toLowerCase();if(!k.test(c))throw Error("Latest Cursor BYOK lookup did not return a valid commit SHA");return{branch:j.cb,ref:c,tarballUrl:(0,j.Js)(c)}}async function n({metadataPath:a=j.z1}={}){try{let b=JSON.parse(await e().readFile(a,"utf8"));return k.test(b?.ref||"")?b:null}catch{return null}}async function o(a,{metadataPath:b=j.z1}={}){await e().mkdir(i().dirname(b),{recursive:!0});let c=`${b}.tmp`;await e().writeFile(c,`${JSON.stringify({...a,resolvedAt:new Date().toISOString()},null,2)}
|
|
2
|
+
`),await e().rename(c,b)}},78335:()=>{},81411:(a,b,c)=>{"use strict";c.d(b,{$O:()=>X,Ag:()=>Z,dQ:()=>Y});var d=c(51455),e=c.n(d),f=c(76760),g=c.n(f),h=c(44708),i=c.n(h),j=c(31421),k=c(77598),l=c.n(k),m=c(73024),n=c.n(m),o=c(93696),p=c(72980),q=c(24776),r=c(86246);let s=String.raw`
|
|
2
3
|
"use strict";
|
|
3
4
|
|
|
4
5
|
const fs = require("node:fs");
|
|
@@ -109,15 +110,15 @@ try {
|
|
|
109
110
|
log(error?.stack || error?.message || error);
|
|
110
111
|
fail(error?.message || error, error?.code || "WINDOWS_ACTION_FAILED");
|
|
111
112
|
}
|
|
112
|
-
`;function
|
|
113
|
+
`;function t(a){return`'${String(a).replace(/'/g,"''")}'`}function u(a){return Buffer.from(a,"utf16le").toString("base64")}function v(a,b,c={}){return new Promise((d,e)=>{let f=(0,j.spawn)(a,b,{cwd:c.cwd,env:c.env||process.env,windowsHide:!0,shell:!1}),g="",h="";f.stdout?.on("data",a=>{g+=a.toString()}),f.stderr?.on("data",a=>{h+=a.toString()}),f.on("error",e),f.on("close",a=>d({code:a,stdout:g,stderr:h}))})}async function w(a,b,c){let d=0,f=!1,g=!1,h=async()=>{if(!g){g=!0;try{let g=await e().readFile(a,"utf8");if(g.length>d){let a=g.slice(d);d=g.length,f||(f=!0,c?.()),b?.(a)}}catch(a){if(a?.code!=="ENOENT")throw a}finally{g=!1}}},i=setInterval(()=>{h().catch(()=>{})},250);return async()=>{clearInterval(i),await h()}}async function x(a,b,c,d){let e=u([`& ${t(process.execPath)}`,t(a),t(b),t(c),t(d)].join(" ")+"; exit $LASTEXITCODE");return v("powershell.exe",["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand",u(`
|
|
113
114
|
$process = Start-Process -FilePath 'powershell.exe' -ArgumentList @(
|
|
114
115
|
'-NoProfile','-NonInteractive','-ExecutionPolicy','Bypass',
|
|
115
116
|
'-EncodedCommand','${e}'
|
|
116
117
|
) -Verb RunAs -Wait -PassThru -WindowStyle Hidden
|
|
117
118
|
exit $process.ExitCode
|
|
118
|
-
`)])}async function
|
|
119
|
+
`)])}async function y({jobId:a,action:b,sourceDir:c,installation:d,extensionsDir:f,npmInvocation:h,needsElevation:i,onLog:j,onUacRequested:k,onElevatedStart:l}){let m,n;if("win32"!==process.platform)throw Error("Windows Cursor runner can only run on Windows");let p=g().join(o.mw,"jobs",a),q=g().join(p,"windows-worker.cjs"),r=g().join(p,"request.json"),t=g().join(p,"result.json"),u=g().join(p,"windows.log"),z=JSON.parse(await e().readFile(g().join(c,"package.json"),"utf8")),A=g().join(f,`${z.publisher}.${z.name}-${z.version}`);await e().mkdir(p,{recursive:!0}),await Promise.all([e().writeFile(q,s,{mode:448}),e().writeFile(r,JSON.stringify({action:b,sourceDir:c,installation:d,extensionsDir:f,expectedExtensionRoot:A,npmInvocation:h}),{mode:384}),e().writeFile(u,"",{mode:384})]);let B=await w(u,j,i?l:null);try{i?(k?.(),m=await x(q,r,t,u)):m=await v(process.execPath,[q,r,t,u],{cwd:p})}finally{await B(),await Promise.allSettled([e().rm(q,{force:!0}),e().rm(r,{force:!0})])}try{n=JSON.parse(await e().readFile(t,"utf8"))}catch{let a=m?.stderr?.trim()||m?.stdout?.trim(),b=/canceled|cancelled|1223/i.test(a||""),c=Error(b?"User canceled Windows UAC confirmation":a||"Elevated Cursor BYOK action failed");throw c.code=b?"UAC_CANCELED":"WINDOWS_ACTION_FAILED",c}if(!n.ok){let a=Error(n.error||"Windows Cursor BYOK action failed");throw a.code=n.code||"WINDOWS_ACTION_FAILED",a}return n.result}var z=c(42154);async function A(a){let b=l().createHash("sha256");for await(let c of n().createReadStream(a))b.update(c);return b.digest("hex")}async function B(a,b){let c;if("darwin"!==process.platform)return;let d=function(a){let b=g().join(a,"Contents","_CodeSignature","CodeResources"),c=(0,j.spawnSync)("plutil",["-convert","xml1","-o","-",b],{encoding:"utf8",maxBuffer:0x4000000});if(0!==c.status||!c.stdout)throw Error(c.stderr?.trim()||"Unable to read Cursor code-signature manifest");return c.stdout}(a.cursorRoot),e=[];for(let c of b.mappedBackups){if(!c.exists)continue;let b=function(a,b){let c=g().join(a,"Contents"),d=g().relative(c,b);if(!d||d.startsWith("..")||g().isAbsolute(d))throw Error(`Restore target is outside Cursor.app: ${b}`);return d.split(g().sep).join("/")}(a.cursorRoot,c.targetPath);e.push({targetPath:c.targetPath,backupPath:c.backupPath,expectedHash:function(a,b){let c=`<key>${String(b).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}</key>`,d=0;for(;d<a.length;){let b=a.indexOf(c,d);if(b<0)break;let e=a.slice(b+c.length,b+c.length+1200).match(/<key>hash2<\/key>\s*<data>\s*([^<]+?)\s*<\/data>/);if(e)return Buffer.from(e[1].replace(/\s+/g,""),"base64").toString("hex");d=b+c.length}return null}(d,b),backupHash:await A(c.backupPath)})}let f={ok:0===(c=e.filter(a=>!a.expectedHash||!a.backupHash||a.expectedHash.toLowerCase()!==a.backupHash.toLowerCase())).length,mismatches:c};if(!f.ok){let b=f.mismatches.map(a=>g().basename(a.targetPath)).join(", "),c=Error(`Saved backup does not match the current signed Cursor bundle (${b}). Reinstall Cursor ${await D(a.cursorRoot)} instead of restoring this stale backup.`);throw c.code="STALE_CURSOR_BACKUP",c}}function C(a){if("darwin"===process.platform&&0!==(0,j.spawnSync)("codesign",["--verify","--deep","--strict","--verbose=2",a.cursorRoot],{encoding:"utf8"}).status){let a=Error("Cursor.app code signature is invalid. Reinstall Cursor before installing or restoring Cursor BYOK.");throw a.code="CURSOR_SIGNATURE_INVALID",a}}async function D(a){try{let b=g().join(a,"Contents","Info.plist"),c=(0,j.spawnSync)("defaults",["read",b,"CFBundleShortVersionString"],{encoding:"utf8"});return 0===c.status&&c.stdout.trim()?`version ${c.stdout.trim()}`:"from the official installer"}catch{return"from the official installer"}}let E="__n9routerCursorByokJobs";function F(){return globalThis[E]||(globalThis[E]={jobs:new Map,listeners:new Map}),globalThis[E]}function G(a){return{id:a.id,action:a.action,status:a.status,error:a.error,logs:a.logs.slice(-300),steps:a.steps,createdAt:a.createdAt,updatedAt:a.updatedAt}}function H(a,b,c,d){a.steps=a.steps.map(a=>a.id===b?{...a,status:c,detail:d||a.detail}:a),I(a)}function I(a){a.updatedAt=new Date().toISOString()}function J(a,b,c="info"){for(let d of String(b||"").replace(/sudoPassword["']?\s*[:=]\s*["'][^"']+["']/gi,'sudoPassword:"[redacted]"').replace(/\bsk-[A-Za-z0-9_-]{12,}\b/g,"sk-[redacted]").split(/\r?\n/).filter(Boolean))a.logs.push({ts:new Date().toISOString(),stream:c,message:d});a.logs.length>500&&(a.logs=a.logs.slice(-500)),I(a),K(a)}function K(a){let b=F().listeners.get(a.id);if(!b)return;let c=`data: ${JSON.stringify(G(a))}
|
|
119
120
|
|
|
120
|
-
`;for(let a of b)a(c)}function
|
|
121
|
-
`}),d&&(0,
|
|
121
|
+
`;for(let a of b)a(c)}function L(a,b,c=null){a.status=b,a.error=c,I(a),K(a)}async function M(a){try{return await e().access(a),!0}catch{return!1}}async function N(a,b){await e().mkdir(o.mw,{recursive:!0}),await new Promise((c,d)=>{let f=(0,m.createWriteStream)(b);i().get(a,a=>{if(a.statusCode>=300&&a.statusCode<400&&a.headers.location){f.close(),e().unlink(b).catch(()=>{}),N(a.headers.location,b).then(c,d);return}if(200!==a.statusCode){f.close(),e().unlink(b).catch(()=>{}),d(Error(`Download failed with HTTP ${a.statusCode}`));return}a.pipe(f),f.on("finish",()=>f.close(c))}).on("error",a=>{f.close(),e().unlink(b).catch(()=>{}),d(a)})})}function O(a,b,c,d={}){return new Promise((e,f)=>{let g=d.displayArgs||c;J(a,`$ ${[b,...g].join(" ")}`);let h=(0,j.spawn)(b,c,{cwd:d.cwd||o.LB,env:{...process.env,...d.env||{}},shell:!1}),i="";d.stdin&&(h.stdin.write(d.stdin),h.stdin.end()),h.stdout.on("data",b=>J(a,b.toString(),"stdout")),h.stderr.on("data",b=>{i+=b.toString(),J(a,b.toString(),"stderr")}),h.on("error",f),h.on("close",a=>{0===a?e():f(Error(`${b} ${c.join(" ")} failed with exit code ${a}${i?`: ${i.trim()}`:""}`))})})}function P(a,b,c,d={}){return O(a,b.command,[...b.prefixArgs,...c],d)}async function Q(a){H(a,"download","running");let b=await (0,p.kx)(),c=await (0,p.U5)(),d=g().join(o.LB,"package.json");if(c?.ref===b.ref&&await M(d))return J(a,`Using current Cursor BYOK source ${b.ref.slice(0,12)} from ${o.LB}`),H(a,"download","success",b.ref.slice(0,12)),b;J(a,`Downloading latest Cursor BYOK source ${b.ref.slice(0,12)} from ${b.tarballUrl}`);let f=g().join(o.mw,`${b.ref}.tar.gz`),h=`${o.LB}.staging-${b.ref}`;await e().rm(h,{recursive:!0,force:!0}),await N(b.tarballUrl,f);try{await e().mkdir(h,{recursive:!0}),await P(a,(0,r.sZ)(),["-xzf",f,"-C",h,"--strip-components=1"],{cwd:o.mw}),await R(h),await e().rm(o.LB,{recursive:!0,force:!0}),await e().rename(h,o.LB),await (0,p.x6)(b)}finally{await e().rm(h,{recursive:!0,force:!0})}return H(a,"download","success",b.ref.slice(0,12)),b}async function R(a=o.LB){let b=g().join(a,"package.json"),c=JSON.parse(await e().readFile(b,"utf8"));if("starduster"!==c.publisher||"cursor-byok"!==c.name)throw Error("Downloaded package identity does not match starduster.cursor-byok");for(let b of[g().join("scripts","install-cursor.js"),g().join("scripts","install-workbench-hook.js")])if(!await M(g().join(a,b)))throw Error(`Downloaded cursor-byok source is missing ${b}`)}async function S(a){H(a,"dependencies","running");let b=(0,r.QM)();try{await P(a,b,["ci","--ignore-scripts"],{cwd:o.LB})}catch(c){J(a,`npm ci failed, retrying with npm install: ${c.message}`,"stderr"),await P(a,b,["install","--ignore-scripts"],{cwd:o.LB})}H(a,"dependencies","success")}async function T(a,b){H(a,"preflight","running"),"win32"===process.platform?await O(a,process.execPath,[g().join(o.LB,"scripts","install-workbench-hook.js"),"--dry-run"],{cwd:o.LB,env:{CURSOR_WORKBENCH:b.workbench,CURSOR_EXT_HOST:b.extensionHost}}):await P(a,(0,r.QM)(),["run","preflight:cursor"],{cwd:o.LB}),H(a,"preflight","success")}async function U(a,b,c,d){H(a,b,"running"),a.status="running",K(a),await (!d?P(a,(0,r.QM)(),["run",c]):O(a,"sh",["-c",`sudo -S -p "" env HOME="$HOME" PATH="$PATH" npm run ${c}`],{cwd:o.LB,stdin:`${d}
|
|
122
|
+
`})),d&&(0,q.DN)(d),H(a,b,"success")}async function V(a,b){if((0,r.Od)()){let a=Error("Cursor is running. Fully quit Cursor, including background processes, and retry.");throw a.code="CURSOR_RUNNING",a}let c=!b.targetWritable&&!(0,r.bp)(),d="install"===a.action?"install":"restore";H(a,"permission",c?"waiting":"success",c?"Waiting for Windows UAC confirmation":"Target is writable without elevation"),H(a,d,"running"),K(a),await y({jobId:a.id,action:a.action,sourceDir:o.LB,installation:b,extensionsDir:o.q$,npmInvocation:(0,r.QM)(),needsElevation:c,onLog:b=>J(a,b,"stdout"),onUacRequested:()=>{a.status="waiting_uac",H(a,"permission","waiting","Approve the Windows UAC dialog"),K(a)},onElevatedStart:()=>{a.status="running_elevated",H(a,"permission","success","Windows administrator approval granted"),K(a)}}),H(a,"permission","success"),H(a,d,"success")}async function W(a){try{a.status="running",K(a);let b=await (0,r.NQ)();if(!b)throw Error("Cursor installation or required workbench files were not found");let c=null;if("restore"===a.action&&!(c=await (0,z.R)()).restoreAvailable){let b=`Restore unavailable: ${c.restoreReason}. Backup files alone cannot be safely restored without their target mapping.`;H(a,"restore","error",b);let d=Error(b);throw d.code="RESTORE_STATE_UNAVAILABLE",d}if("darwin"===process.platform){if("restore"===a.action)await B(b,c);else if("install"===a.action){let a=await (0,z.R)();try{C(b)}catch(c){if(!a.restoreAvailable)throw c;await B(b,a)}}}if(await Q(a),await R(),await S(a),("prepare"===a.action||"install"===a.action)&&await T(a,b),"prepare"===a.action)return void L(a,"success");if("win32"===process.platform)await V(a,b);else{let c,d=b.targetWritable?null:await ((c=(0,q.Tb)())?(H(a,"permission","success","Using cached password for this session"),Promise.resolve(c)):(H(a,"permission","waiting","Waiting for sudo password"),a.status="waiting_sudo",K(a),new Promise(b=>{a.sudoResolver=b})));d||H(a,"permission","success","Cursor files are writable without sudo"),"install"===a.action?await U(a,"install","install:cursor",d):(await U(a,"restore","restore:cursor",d),C(b))}L(a,"success")}catch(c){let b=c?.message||"Cursor BYOK job failed";for(let c of(J(a,b,"stderr"),a.steps))("running"===c.status||"waiting"===c.status)&&H(a,c.id,"error",b);L(a,"error",b)}}function X(a){let b;if(!o.hl.has(a))throw Error("Unsupported Cursor BYOK action");let c=F(),d=Array.from(c.jobs.values()).find(a=>"queued"===a.status||"running"===a.status||"waiting_sudo"===a.status);if(d){let a=Error(`Cursor BYOK job already running: ${d.id}`);throw a.statusCode=409,a}let e={id:(0,k.randomUUID)(),action:a,status:"queued",error:null,logs:[],steps:(b=[{id:"download",label:"Check for and download the latest Cursor BYOK source",status:"pending"},{id:"dependencies",label:"Install package dependencies",status:"pending"}],("prepare"===a||"install"===a)&&b.push({id:"preflight",label:"Run Cursor preflight check",status:"pending"}),"prepare"!==a&&b.push({id:"permission",label:"Confirm system permission",status:"pending"}),"install"===a&&b.push({id:"install",label:"Install Cursor BYOK extension",status:"pending"}),"restore"===a&&b.push({id:"restore",label:"Restore original Cursor files from backup",status:"pending"}),b),createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),sudoResolver:null};return c.jobs.set(e.id,e),queueMicrotask(()=>W(e)),G(e)}function Y(a,b){let c=F(),d=c.jobs.get(a);if(!d)return null;c.listeners.has(a)||c.listeners.set(a,new Set);let e=c.listeners.get(a);return e.add(b),b(`data: ${JSON.stringify(G(d))}
|
|
122
123
|
|
|
123
|
-
`),()=>{e.delete(b),0===e.size&&c.listeners.delete(a)}}function
|
|
124
|
+
`),()=>{e.delete(b),0===e.size&&c.listeners.delete(a)}}function Z(a,b){let c=F().jobs.get(a);if(!c){let a=Error("Cursor BYOK job not found");throw a.statusCode=404,a}if("waiting_sudo"!==c.status||!c.sudoResolver){let a=Error("Cursor BYOK job is not waiting for sudo password");throw a.statusCode=409,a}if(!b||!String(b).trim()){let a=Error("Sudo password is required");throw a.statusCode=400,a}let d=c.sudoResolver;return c.sudoResolver=null,H(c,"permission","success","Password received"),c.status="running",K(c),d(String(b)),G(c)}},86246:(a,b,c)=>{"use strict";c.d(b,{NQ:()=>p,Od:()=>r,QM:()=>s,bp:()=>q,sZ:()=>t});var d=c(51455),e=c.n(d),f=c(73024),g=c(48161),h=c.n(g),i=c(76760),j=c.n(i),k=c(31421);function l(a){let b=new Set;return a.filter(a=>{if(!a)return!1;let c=j().resolve(a).toLowerCase();return!b.has(c)&&(b.add(c),!0)})}async function m(a){try{return await e().access(a),!0}catch{return!1}}async function n(a){try{return await e().access(a,f.constants.W_OK),!0}catch{return!1}}async function o(a){return n(j().dirname(a))}async function p(a={}){let b=a.platform||process.platform,c=a.env||process.env;for(let d of a.candidates||function({platform:a=process.platform,env:b=process.env,homeDir:c=h().homedir()}={}){let d=b.N9ROUTER_CURSOR_ROOT;if("darwin"===a)return l([d,"/Applications/Cursor.app",j().join(c,"Applications","Cursor.app")]);if("win32"===a){let a=[d,b.LOCALAPPDATA&&j().join(b.LOCALAPPDATA,"Programs","cursor"),b.LOCALAPPDATA&&j().join(b.LOCALAPPDATA,"Programs","Cursor")];if(b.LOCALAPPDATA&&b.LOCALAPPDATA.length>1&&":"===b.LOCALAPPDATA[1]){let c=j().resolve(".").slice(0,2),d=b.LOCALAPPDATA.slice(0,2);if(c.toLowerCase()!==d.toLowerCase()){let d=c+b.LOCALAPPDATA.slice(2);a.push(j().join(d,"Programs","cursor")),a.push(j().join(d,"Programs","Cursor"))}}if(a.push(b.ProgramW6432&&j().join(b.ProgramW6432,"Cursor"),b.ProgramFiles&&j().join(b.ProgramFiles,"Cursor"),b["ProgramFiles(x86)"]&&j().join(b["ProgramFiles(x86)"],"Cursor")),b.PATH)for(let c of b.PATH.split(j().delimiter)){if(!c)continue;let b=c.replace(/\\/g,"/").toLowerCase();b.endsWith("/resources/app/bin")&&b.includes("cursor")&&a.push(j().resolve(c,"../../.."))}return l(a)}return[]}({...a,platform:b,env:c})){let a=function(a,{platform:b=process.platform,env:c=process.env}={}){if(!a)return null;let d=j().resolve(a),e="darwin"===b,f=e?j().join(d,"Contents","Resources","app"):j().join(d,"resources","app"),g=e?j().join(d,"Contents","MacOS","Cursor"):j().join(d,"Cursor.exe"),i=c.LOCALAPPDATA?j().resolve(c.LOCALAPPDATA):null,k="win32"===b&&i?d.toLowerCase().startsWith(`${i.toLowerCase()}${j().sep}`):e&&d.startsWith(j().join(h().homedir(),"Applications"));return{cursorRoot:d,executable:g,resourcesRoot:f,workbench:j().join(f,"out","vs","workbench","workbench.desktop.main.js"),extensionHost:j().join(f,"out","vs","workbench","api","node","extensionHostProcess.js"),appExtensions:j().join(f,"extensions"),installScope:k?"user":"system"}}(d,{platform:b,env:c});if(await m(a.executable)&&await m(a.workbench)){let b=await m(a.extensionHost),c=await n(await m(a.appExtensions)?a.appExtensions:a.resourcesRoot);return{...a,extensionHostExists:b,targetWritable:await o(a.workbench)&&(!b||await o(a.extensionHost))&&c}}}return null}function q({platform:a=process.platform,spawn:b=k.spawnSync}={}){return"win32"===a&&0===b("net.exe",["session"],{windowsHide:!0,stdio:"ignore"}).status}function r({platform:a=process.platform,spawn:b=k.spawnSync}={}){if("win32"!==a)return!1;let c=b("tasklist.exe",["/FI","IMAGENAME eq Cursor.exe","/FO","CSV","/NH"],{windowsHide:!0,encoding:"utf8"});return 0===c.status&&/"Cursor\.exe"/i.test(c.stdout||"")}function s({platform:a=process.platform,env:b=process.env}={}){if(b.npm_execpath&&/\.(?:c?js|mjs)$/i.test(b.npm_execpath))return{command:process.execPath,prefixArgs:[b.npm_execpath]};if("win32"===a){let a=b.npm_execpath||"npm.cmd";return{command:b.ComSpec||"cmd.exe",prefixArgs:["/d","/s","/c",a]}}return{command:"npm",prefixArgs:[]}}function t({platform:a=process.platform}={}){return{command:"win32"===a?"tar.exe":"tar",prefixArgs:[]}}},93696:(a,b,c)=>{"use strict";c.d(b,{Bt:()=>h,CU:()=>k,Js:()=>l,LB:()=>o,cb:()=>j,hl:()=>s,mw:()=>n,q$:()=>r,tZ:()=>q,yo:()=>i,z1:()=>p});var d=c(48161),e=c.n(d),f=c(76760),g=c.n(f);let h="nightwalker89",i="cursor-byok",j="main",k=`https://api.github.com/repos/${h}/${i}/commits/${j}`;function l(a){return`https://codeload.github.com/${h}/${i}/tar.gz/${a}`}let m=process.env.DATA_DIR||g().join(e().homedir(),".n9router"),n=g().join(m,"tools","cursor-byok"),o=g().join(n,"current"),p=g().join(n,"source.json"),q=g().join(e().homedir(),".cursor-byok"),r=g().join(e().homedir(),".cursor","extensions"),s=new Set(["prepare","install","restore"])},96487:()=>{}};
|