larkup 0.1.36 → 0.1.38
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/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/diagnostics/route-bundle-stats.json +12 -12
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +18 -18
- package/.next/server/app/_not-found.segments/_full.segment.rsc +18 -18
- package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +12 -12
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
- package/.next/server/app/analytics.html +1 -1
- package/.next/server/app/analytics.rsc +19 -19
- package/.next/server/app/analytics.segments/_full.segment.rsc +19 -19
- package/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
- package/.next/server/app/analytics.segments/_index.segment.rsc +12 -12
- package/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/analytics.segments/analytics.segment.rsc +3 -3
- package/.next/server/app/api/analytics/route.js.nft.json +1 -1
- package/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/.next/server/app/api/chat/status/route.js.nft.json +1 -1
- package/.next/server/app/api/chat/suggestions/route.js.nft.json +1 -1
- package/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/server/app/api/config/test/route.js.nft.json +1 -1
- package/.next/server/app/api/connections/route.js.nft.json +1 -1
- package/.next/server/app/api/connections/webhook/route.js.nft.json +1 -1
- package/.next/server/app/api/demo/route.js.nft.json +1 -1
- package/.next/server/app/api/deploy/cloud-project/route.js.nft.json +1 -1
- package/.next/server/app/api/deploy/ssh/route.js.nft.json +1 -1
- package/.next/server/app/api/deployment/blob-setup/route.js.nft.json +1 -1
- package/.next/server/app/api/deployment/config/route.js.nft.json +1 -1
- package/.next/server/app/api/describe-image/route.js.nft.json +1 -1
- package/.next/server/app/api/documents/route.js.nft.json +1 -1
- package/.next/server/app/api/firecrawl/local/route.js.nft.json +1 -1
- package/.next/server/app/api/index/route.js.nft.json +1 -1
- package/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/jobs/route.js.nft.json +1 -1
- package/.next/server/app/api/media/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/media/process/route.js.nft.json +1 -1
- package/.next/server/app/api/media/route.js.nft.json +1 -1
- package/.next/server/app/api/media/stream/route.js.nft.json +1 -1
- package/.next/server/app/api/search/bing/route.js.nft.json +1 -1
- package/.next/server/app/api/search/brave/route.js.nft.json +1 -1
- package/.next/server/app/api/search/exa/route.js.nft.json +1 -1
- package/.next/server/app/api/search/google/route.js.nft.json +1 -1
- package/.next/server/app/api/search/route.js.nft.json +1 -1
- package/.next/server/app/api/search/tavily/route.js.nft.json +1 -1
- package/.next/server/app/api/server/agent/route.js.nft.json +1 -1
- package/.next/server/app/api/server/download/route.js.nft.json +1 -1
- package/.next/server/app/api/server/generate/route.js.nft.json +1 -1
- package/.next/server/app/api/server/local/route.js.nft.json +1 -1
- package/.next/server/app/api/servers/route.js.nft.json +1 -1
- package/.next/server/app/api/tabular/query/route.js.nft.json +1 -1
- package/.next/server/app/api/tabular/route.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/chat.html +1 -1
- package/.next/server/app/chat.rsc +19 -19
- package/.next/server/app/chat.segments/_full.segment.rsc +19 -19
- package/.next/server/app/chat.segments/_head.segment.rsc +4 -4
- package/.next/server/app/chat.segments/_index.segment.rsc +12 -12
- package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/chat.segments/chat.segment.rsc +3 -3
- package/.next/server/app/data/page_client-reference-manifest.js +1 -1
- package/.next/server/app/data.html +1 -1
- package/.next/server/app/data.rsc +19 -19
- package/.next/server/app/data.segments/_full.segment.rsc +19 -19
- package/.next/server/app/data.segments/_head.segment.rsc +4 -4
- package/.next/server/app/data.segments/_index.segment.rsc +12 -12
- package/.next/server/app/data.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/data.segments/data/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/data.segments/data.segment.rsc +3 -3
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +17 -17
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +17 -17
- package/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +12 -12
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +19 -19
- package/.next/server/app/settings.segments/_full.segment.rsc +19 -19
- package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_index.segment.rsc +12 -12
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/.next/server/chunks/0598_next_dist_esm_build_templates_app-route_0kbcuk-.js +23 -24
- package/.next/server/chunks/0598_next_dist_esm_build_templates_app-route_0sbf4ny.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__1jc54o2._.js +1 -1
- package/.next/server/chunks/_1twj5f0._.js +3 -3
- package/.next/server/chunks/packages_marketplace_src_125_g2p._.js +1 -1
- package/.next/server/chunks/packages_scraper_src_0kkcv_v._.js +1 -1
- package/.next/server/chunks/ssr/_169pdlf._.js +1 -1
- package/.next/server/chunks/ssr/_18jagqc._.js +2 -2
- package/.next/server/chunks/ssr/_1hetwwu._.js +1 -1
- package/.next/server/chunks/ssr/_1yqlx1m._.js +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/standalone/apps/web/.next/BUILD_ID +1 -1
- package/.next/standalone/apps/web/.next/build-manifest.json +3 -3
- package/.next/standalone/apps/web/.next/required-server-files.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +18 -18
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +18 -18
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_index.segment.rsc +12 -12
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/analytics/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/analytics.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/analytics.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/analytics.segments/_full.segment.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/analytics.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/analytics.segments/_index.segment.rsc +12 -12
- package/.next/standalone/apps/web/.next/server/app/analytics.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/analytics.segments/analytics/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/analytics.segments/analytics.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/api/analytics/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/chat/status/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/chat/suggestions/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/config/test/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/connections/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/connections/webhook/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/demo/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/deploy/cloud-project/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/deploy/ssh/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/deployment/blob-setup/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/deployment/config/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/describe-image/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/documents/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/firecrawl/local/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/index/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/jobs/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/media/[id]/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/media/process/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/media/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/media/stream/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/search/bing/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/search/brave/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/search/exa/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/search/google/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/search/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/search/tavily/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/server/agent/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/server/download/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/server/generate/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/server/local/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/servers/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/tabular/query/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/api/tabular/route.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/chat.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/chat.segments/_full.segment.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/chat.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/chat.segments/_index.segment.rsc +12 -12
- package/.next/standalone/apps/web/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/chat.segments/chat/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/chat.segments/chat.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/data/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/data.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/data.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/data.segments/_full.segment.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/data.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/data.segments/_index.segment.rsc +12 -12
- package/.next/standalone/apps/web/.next/server/app/data.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/data.segments/data/__PAGE__.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/data.segments/data.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/index.rsc +17 -17
- package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +17 -17
- package/.next/standalone/apps/web/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/index.segments/_index.segment.rsc +12 -12
- package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +19 -19
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_index.segment.rsc +12 -12
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/chunks/0598_next_dist_esm_build_templates_app-route_0kbcuk-.js +23 -24
- package/.next/standalone/apps/web/.next/server/chunks/0598_next_dist_esm_build_templates_app-route_0sbf4ny.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/[root-of-the-server]__1jc54o2._.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/_1twj5f0._.js +3 -3
- package/.next/standalone/apps/web/.next/server/chunks/packages_marketplace_src_125_g2p._.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/packages_scraper_src_0kkcv_v._.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_169pdlf._.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_18jagqc._.js +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_1hetwwu._.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_1yqlx1m._.js +1 -1
- package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
- package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/{2-st4vd5971ry.js → 06u04tzgkz4_f.js} +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/{3q4k1i384p4oi.js → 19k_g3af0cf7b.js} +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/{3mp3jya53i-g-.js → 19krxv-ou9c8c.js} +6 -6
- package/.next/standalone/apps/web/.next/static/chunks/1_nk3imchwn8a.css +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/{0qyuw19snetjl.js → 2ljwki2xxnblc.js} +2 -2
- package/.next/standalone/apps/web/CHANGELOG.md +17 -0
- package/.next/standalone/apps/web/app/api/chat/route.ts +62 -33
- package/.next/standalone/apps/web/app/api/media/process/route.ts +6 -0
- package/.next/standalone/apps/web/app/api/media/route.ts +3 -2
- package/.next/standalone/apps/web/app/api/media/stream/route.ts +19 -3
- package/.next/standalone/apps/web/app/settings/page.tsx +8 -17
- package/.next/standalone/apps/web/components/chat/chat-workspace.tsx +11 -4
- package/.next/standalone/apps/web/components/chat/message-item.tsx +18 -6
- package/.next/standalone/apps/web/components/chat/tools/knowledge-base-result.tsx +3 -4
- package/.next/standalone/apps/web/components/data/data-workspace.tsx +6 -2
- package/.next/standalone/apps/web/components/data/jobs-panel.tsx +22 -2
- package/.next/standalone/apps/web/components/data/media-panel.tsx +117 -91
- package/.next/standalone/apps/web/components/settings/marketplace-section.tsx +5 -0
- package/.next/standalone/apps/web/components/settings/prompts-section.tsx +13 -3
- package/.next/standalone/apps/web/package.json +1 -1
- package/.next/standalone/apps/web/server.js +1 -1
- package/.next/standalone/packages/tools/video-audio/CHANGELOG.md +6 -0
- package/.next/standalone/packages/tools/video-audio/dist/url-importer.js +34 -8
- package/.next/standalone/packages/tools/video-audio/package.json +1 -1
- package/.next/standalone/packages/tools/video-audio/src/url-importer.ts +56 -21
- package/.next/static/chunks/{2-st4vd5971ry.js → 06u04tzgkz4_f.js} +1 -1
- package/.next/static/chunks/{3q4k1i384p4oi.js → 19k_g3af0cf7b.js} +1 -1
- package/.next/static/chunks/{3mp3jya53i-g-.js → 19krxv-ou9c8c.js} +6 -6
- package/.next/static/chunks/1_nk3imchwn8a.css +1 -0
- package/.next/static/chunks/{0qyuw19snetjl.js → 2ljwki2xxnblc.js} +2 -2
- package/CHANGELOG.md +17 -0
- package/app/api/chat/route.ts +62 -33
- package/app/api/media/process/route.ts +6 -0
- package/app/api/media/route.ts +3 -2
- package/app/api/media/stream/route.ts +19 -3
- package/app/settings/page.tsx +8 -17
- package/components/chat/chat-workspace.tsx +11 -4
- package/components/chat/message-item.tsx +18 -6
- package/components/chat/tools/knowledge-base-result.tsx +3 -4
- package/components/data/data-workspace.tsx +6 -2
- package/components/data/jobs-panel.tsx +22 -2
- package/components/data/media-panel.tsx +117 -91
- package/components/settings/marketplace-section.tsx +5 -0
- package/components/settings/prompts-section.tsx +13 -3
- package/package.json +6 -6
- package/.next/standalone/apps/web/.next/static/chunks/0fa79dhcoeytz.css +0 -1
- package/.next/static/chunks/0fa79dhcoeytz.css +0 -1
- /package/.next/standalone/apps/web/.next/static/{ZV6fJc5ZoZ_a-UPNhgKZS → IOngxM7BWde96UQMAebFB}/_buildManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{ZV6fJc5ZoZ_a-UPNhgKZS → IOngxM7BWde96UQMAebFB}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{ZV6fJc5ZoZ_a-UPNhgKZS → IOngxM7BWde96UQMAebFB}/_ssgManifest.js +0 -0
- /package/.next/static/{ZV6fJc5ZoZ_a-UPNhgKZS → IOngxM7BWde96UQMAebFB}/_buildManifest.js +0 -0
- /package/.next/static/{ZV6fJc5ZoZ_a-UPNhgKZS → IOngxM7BWde96UQMAebFB}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{ZV6fJc5ZoZ_a-UPNhgKZS → IOngxM7BWde96UQMAebFB}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[367165,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(638725),i=e.i(192441);async function n(){let e=await (0,i.getDataDir)();if(!e)return r.DEFAULT_CONFIG;try{let i=await t.promises.readFile(a.default.join(e,"config.json"),"utf8"),n=JSON.parse(i),s=n.customEmbeddings,o=n.embeddingModelId;if(n.customEmbedding&&!s?.length){let e=n.customEmbedding;s=[e],"custom"===o&&(o=`custom:${e.modelName}`)}let u={...r.DEFAULT_CONFIG,...n,embeddingModelId:o??r.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:s,chunking:{...r.DEFAULT_CONFIG.chunking,...n.chunking},storeConfig:{...r.DEFAULT_CONFIG.storeConfig,...n.storeConfig}};return delete u.customEmbedding,u}catch{return r.DEFAULT_CONFIG}}async function s(e){let r=await (0,i.requireDataDir)(),n={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(a.default.join(r,"config.json"),JSON.stringify(n,null,2),"utf8"),n}e.s(["readConfig",0,n,"writeConfig",0,s])},874533,(e,t,a)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},812057,(e,t,a)=>{t.exports=e.x("node:util",()=>require("node:util"))},705252,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),i=e.i(192441);let n=Promise.resolve();function s(e){let t=n.then(e,e);return n=t.catch(()=>{}),t}async function o(e){let t=e?await (0,i.requireDataDir)():await (0,i.getDataDir)();return t?a.default.join(t,"documents.json"):null}async function u(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid document store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let i=await o(!0);if(!i)return;let n=a.default.join(a.default.dirname(i),`.${a.default.basename(i)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(n,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(n,i)}catch(e){throw await t.promises.unlink(n).catch(()=>{}),e}}function l(e){let t=e.content.trim();return{id:e.id??(0,r.randomUUID)(),title:e.title.trim()||"Untitled",url:e.url,source:e.source,content:t,charCount:t.length,jobId:e.jobId,metadata:e.metadata,status:"unindexed",createdAt:new Date().toISOString()}}async function c(){let e=await u(),t=e.reduce((e,t)=>e+t.charCount,0);return{docCount:e.length,charCount:t,bySource:e.reduce((e,t)=>(e[t.source]=(e[t.source]??0)+1,e),{})}}e.s(["addCrawledDocuments",0,function(e,t){return s(async()=>{let a=await u(),r=new Set(a.filter(e=>e.url).map(e=>e.url)),i=0;for(let n of t)!(n.url&&r.has(n.url))&&n.content.trim()&&(a.push(l({...n,jobId:e})),n.url&&r.add(n.url),i++);return i>0&&await d(a),i})},"addDocument",0,function(e){return s(async()=>{let t=await u(),a=l(e);return t.push(a),await d(t),a})},"addDocuments",0,function(e){return s(async()=>{if(0===e.length)return[];let t=await u(),a=e.map(l);return t.push(...a),await d(t),a})},"clearDocuments",0,function(){return s(async()=>{await d([])})},"corpusStats",0,c,"deleteDocument",0,function(e){return s(async()=>{let t=await u();await d(t.filter(t=>t.id!==e))})},"deleteDocuments",0,function(e){return s(async()=>{let t=await u(),a=new Set(e);await d(t.filter(e=>!a.has(e.id)))})},"readDocuments",0,u,"replaceDocuments",0,function(e){return s(async()=>{let t=new Date().toISOString();await d(e.map(e=>({...e,status:"unindexed",createdAt:e.createdAt||t})))})},"updateDocument",0,function(e,t){return s(async()=>{let a=await u(),r=a.findIndex(t=>t.id===e);if(r<0)return;let i=a[r],n=void 0!==t.content?t.content.trim():i.content,s={...i,title:void 0!==t.title?t.title.trim()||"Untitled":i.title,content:n,charCount:n.length,url:void 0!==t.url?t.url||void 0:i.url,metadata:void 0!==t.metadata?t.metadata:i.metadata,status:"unindexed"};return a[r]=s,await d(a),s})},"updateDocumentsStatus",0,function(e,t){return s(async()=>{let a=await u(),r=new Set(e),i=!1;for(let e of a)r.has(e.id)&&(e.status=t,i=!0);i&&await d(a)})}])},585071,e=>{"use strict";var t=e.i(192441);async function a(a,r){let i={...a.storeConfig},n=await (0,t.getActiveServer)(),s=n?.id;if(s){let e=s.replace(/[^a-zA-Z0-9_-]/g,"_");"pinecone"===a.vectorStore?i.namespace=s:"chroma"===a.vectorStore?i.collectionName=`documents_${e}`:"lancedb"!==a.vectorStore&&a.vectorStore||(i.tableName=`documents_${e}`)}switch(a.vectorStore){case"pinecone":{let{PineconeAdapter:t}=await e.A(77149);return new t({apiKey:i.apiKey,indexName:i.indexName,namespace:i.namespace,sparseModel:i.sparseModel,indexType:a.indexType,onRateLimit:r})}case"chroma":{let{ChromaAdapter:t}=await e.A(195059);return new t({mode:i.mode,host:i.host,authToken:i.authToken,apiKey:i.apiKey,tenant:i.tenant,database:i.database,collectionName:i.collectionName,indexType:a.indexType})}default:{let{LanceDBAdapter:t}=await e.A(184904);return new t({mode:i.mode,dbPath:i.dbPath,uri:i.uri,apiKey:i.apiKey,s3Uri:i.s3Uri,s3Endpoint:i.s3Endpoint,s3Region:i.s3Region,s3AccessKeyId:i.s3AccessKeyId,s3SecretAccessKey:i.s3SecretAccessKey,tableName:i.tableName})}}}e.s(["createAdapter",0,a])},857764,(e,t,a)=>{t.exports=e.x("node:url",()=>require("node:url"))},504740,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(857764),i=e.i(463857);let n=new Map;async function s(e){if(n.has(e))return n.get(e);let t=await (0,i.getInstalledTool)(e);if(!t)return null;try{let a=await o(t),r=await import(a);return n.set(e,r),r}catch(t){return console.error(`[marketplace] Failed to load tool "${e}":`,t),null}}async function o(e){switch(e.source){case"local":default:return e.packageName;case"registry":case"sandbox":return u(e.resolvedPath)}}async function u(e){let i=a.default.join(e,"package.json"),n=JSON.parse(await t.promises.readFile(i,"utf8")),s="object"==typeof n.exports?n.exports["."]:n.exports,o=("object"==typeof s?s.import??s.default:s)??n.main??"index.js";return(0,r.pathToFileURL)(a.default.resolve(e,o)).href}e.s(["loadTool",0,s,"unloadTool",0,function(e){n.delete(e)}])},839554,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),i=e.i(192441);let n=Promise.resolve();function s(e){let t=n.then(e,e);return n=t.catch(()=>{}),t}async function o(e){let t=e?await (0,i.requireDataDir)():await (0,i.getDataDir)();return t?a.default.join(t,"media-assets.json"):null}async function u(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid media asset store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let i=await o(!0);if(!i)return;let n=a.default.join(a.default.dirname(i),`.${a.default.basename(i)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(n,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(n,i)}catch(e){throw await t.promises.unlink(n).catch(()=>{}),e}}let l=["download","extract","transcribe","vision","synthesize","index"],c={download:10,extract:15,transcribe:25,vision:30,synthesize:5,index:15};function p(e){return l.map(t=>({stage:t,status:"waiting",updatedAt:e}))}function m(e){return void 0!==e&&Number.isFinite(e)?Math.max(0,e):void 0}function f(e){let t=m(e);return void 0===t?void 0:Math.min(100,t)}function g(e){return Math.floor(m(e.processingRevision)??0)+1}async function h(){let e=await u(),t={image:0,video:0,audio:0},a={pending:0,processing:0,completed:0,failed:0},r=0;for(let i of e)t[i.type]++,a[i.processingStatus]++,r+=i.fileSize;return{total:e.length,byType:t,byStatus:a,totalBytes:r}}async function w(e){return(await u()).find(t=>t.id===e)}e.s(["addMediaAssets",0,function(e){return s(async()=>{let t=await u(),a=new Date().toISOString(),i=e.map(e=>({id:(0,r.randomUUID)(),type:e.type,fileName:e.fileName,mimeType:e.mimeType,storageUri:e.storageUri,thumbnailUri:e.thumbnailUri,originalUrl:e.originalUrl,fileSize:e.fileSize,dimensions:e.dimensions,durationSecs:e.durationSecs,processingStatus:"pending",processingRevision:0,documentIds:[],createdAt:a,updatedAt:a}));return t.push(...i),await d(t),i})},"claimMediaAsset",0,function(e){return s(async()=>{let t=await u(),a=t.findIndex(t=>t.id===e);if(a<0||"processing"===t[a].processingStatus||"Queued for background processing..."===t[a].processingMessage)return;let r=new Date().toISOString();return t[a]={...t[a],processingStatus:"pending",processingError:void 0,processingMessage:"Queued for background processing...",processingProgress:1,processingSteps:p(r),processingRevision:g(t[a]),processingHeartbeatAt:r,updatedAt:r},await d(t),t[a]})},"deleteMediaAsset",0,function(e){return s(async()=>{let t=await u();await d(t.filter(t=>t.id!==e))})},"deleteMediaAssets",0,function(e){return s(async()=>{let t=await u(),a=new Set(e);await d(t.filter(e=>!a.has(e.id)))})},"getMediaAsset",0,w,"mediaStats",0,h,"readMediaAssets",0,u,"recoverStaleMediaAssets",0,function(e=3e5){return s(async()=>{let t=await u(),a=Date.now()-e,r="The background worker stopped. Retry to resume media processing.",i=0;for(let e=0;e<t.length;e++){let n=t[e],s="processing"===n.processingStatus,o="pending"===n.processingStatus&&"Queued for background processing..."===n.processingMessage,u=n.processingHeartbeatAt??n.updatedAt;if((s||o)&&new Date(u).getTime()<a){let a=new Date().toISOString(),s=n.processingSteps?.map(e=>"running"===e.status?{...e,status:"failed",message:r,updatedAt:a,finishedAt:a}:e);t[e]={...n,processingStatus:"failed",processingError:r,processingMessage:void 0,processingProgress:void 0,processingSteps:s,processingRevision:g(n),processingHeartbeatAt:a,updatedAt:a},i++}}return i>0&&await d(t),i})},"updateMediaAsset",0,function(e,t){return s(async()=>{let a=await u(),r=a.findIndex(t=>t.id===e);if(r<0)return;let i=a[r];return a[r]={...i,...t,documentIds:t.documentIds??i.documentIds,pendingDocumentIds:t.pendingDocumentIds??i.pendingDocumentIds,supersededDocumentIds:t.supersededDocumentIds??i.supersededDocumentIds,updatedAt:new Date().toISOString()},await d(a),a[r]})},"updateMediaStage",0,function(e,t,a){return s(async()=>{let r,i,n=await u(),s=n.findIndex(t=>t.id===e);if(s<0)return;let o=new Date().toISOString(),l=n[s],h=new Map((l.processingSteps??[]).map(e=>[e.stage,e])),w=p(o).map(e=>h.get(e.stage)??e),y=w.findIndex(e=>e.stage===t),v=w[y],A=new Set(["completed","skipped","failed"]),S=a.status??v.status,R=A.has(v.status)||"running"===v.status&&"waiting"===S?v.status:S,x=f(v.percent),D=f(a.percent),N=void 0===D?x:Math.max(x??0,D),b=m(v.current),I=m(a.current),E=void 0===I?b:Math.max(b??0,I),T=void 0===a.total?m(v.total):m(a.total);void 0!==E&&void 0!==T&&(T=Math.max(T,E))>0&&(N=Math.max(N??0,Math.min(100,E/T*100))),"completed"===R&&(N=100,void 0!==T&&(E=T));let U=A.has(R),M={...v,...a,stage:t,status:R,percent:N,current:E,total:T,startedAt:a.startedAt??v.startedAt??("running"===R||U?o:void 0),updatedAt:o,finishedAt:U?a.finishedAt??v.finishedAt??o:void 0};w[y]=M;let C=Math.max(f(l.processingProgress)??0,0===(i=(r=w.filter(e=>"skipped"!==e.status)).reduce((e,t)=>e+c[t.stage],0))?100:Math.round(r.reduce((e,t)=>e+c[t.stage]*function(e){if("completed"===e.status)return 100;if("waiting"===e.status||"skipped"===e.status)return 0;let t=f(e.percent);return void 0!==t?t:void 0!==e.current&&void 0!==e.total&&Number.isFinite(e.current)&&Number.isFinite(e.total)&&e.total>0?Math.min(100,Math.max(0,e.current/e.total*100)):0}(t)/100,0)/i*100)),j=[...w].reverse().find(e=>"running"===e.status&&e.message)?.message,P="running"===M.status?M.message??a.message??l.processingMessage:j??a.message??M.message??l.processingMessage;return n[s]={...l,processingSteps:w,processingProgress:C,processingMessage:P,processingRevision:g(l),processingHeartbeatAt:o,updatedAt:o},await d(n),n[s]})}])},941486,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(192441);class i{id="local";name="Local Storage";async mediaDir(){let e=await (0,r.requireDataDir)(),i=a.default.join(e,"media");return await t.promises.mkdir(i,{recursive:!0}),i}async store(e,r,i){let n=await this.mediaDir(),s=a.default.join(n,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.writeFile(s,r),`local://${e}`}async storeFile(e,r,i){let n=await this.mediaDir(),s=a.default.join(n,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.copyFile(r,s),`local://${e}`}async retrieve(e){let a=await this.resolvePath(e);if(!a)throw Error(`Unsupported local storage URI: ${e}`);return t.promises.readFile(a)}async resolvePath(e){if(!e.startsWith("local://"))return;let t=e.slice(8),r=await this.mediaDir(),i=a.default.resolve(r,t),n=a.default.relative(r,i);if(n.startsWith("..")||a.default.isAbsolute(n))throw Error("Invalid local storage URI");return i}async delete(e){let r=e.replace("local://",""),i=await this.mediaDir();try{await t.promises.unlink(a.default.join(i,r))}catch{}}async stats(){try{let e=await this.mediaDir();return await n(e)}catch{return{usedBytes:0,fileCount:0}}}}async function n(e){let r=0,i=0;async function n(e){let s;try{s=await t.promises.readdir(e,{withFileTypes:!0})}catch{return}for(let o of s){let s=a.default.join(e,o.name);if(o.isDirectory())await n(s);else try{let e=await t.promises.stat(s);r+=e.size,i++}catch{}}}return await n(e),{usedBytes:r,fileCount:i}}e.s(["createStorageProvider",0,function(e){return new i}])},889271,e=>{"use strict";var t=e.i(239441),a=e.i(449055),r=e.i(391328),i=e.i(6352),n=e.i(746789),s=e.i(423437),o=e.i(178820),u=e.i(569191),d=e.i(576251),l=e.i(199962),c=e.i(547545),p=e.i(664046),m=e.i(235691),f=e.i(298907),g=e.i(110763),h=e.i(193695);e.i(673243);var w=e.i(236167),y=e.i(766576),v=e.i(839554),A=e.i(463857),S=e.i(504740),R=e.i(941486),x=e.i(705252),D=e.i(367165),N=e.i(585071),b=e.i(192441);async function I(e){return O(e,()=>E(e))}async function E(e){let t=new URL(e.url).searchParams.get("type");await (0,v.recoverStaleMediaAssets)();let[a,r]=await Promise.all([(0,v.readMediaAssets)(),(0,v.mediaStats)()]),i=t?a.filter(e=>e.type===t):a;i.sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());let n=(0,R.createStorageProvider)(),s=await n.stats();return y.NextResponse.json({assets:i,stats:r,storage:{usedBytes:s.usedBytes,fileCount:s.fileCount}})}async function T(e){return O(e,()=>U(e))}async function U(t){try{if(t.headers.get("content-type")?.includes("application/json"))return await M(t);let r=(await t.formData()).getAll("file");if(0===r.length)return y.NextResponse.json({error:"No files provided."},{status:400});let i=(0,R.createStorageProvider)(),n=[];for(let e of r){var a;let t=(a=e.type).startsWith("image/")?"image":a.startsWith("video/")?"video":a.startsWith("audio/")?"audio":null;if(!t)continue;let r=Buffer.from(await e.arrayBuffer()),s=e.name.split(".").pop()||"bin",o=`${t}s/${Date.now()}_${Math.random().toString(36).slice(2)}.${s}`,u=await i.store(o,r,e.type);n.push({type:t,fileName:e.name,mimeType:e.type,storageUri:u,fileSize:e.size})}if(0===n.length)return y.NextResponse.json({error:"No supported media files found."},{status:400});let{addMediaAssets:s}=await e.A(742957),o=await s(n);return y.NextResponse.json({assets:o,count:o.length},{status:201})}catch(t){let e=t instanceof Error?t.message:"Failed to upload media.";return y.NextResponse.json({error:e},{status:500})}}async function M(t){let a=await t.json(),r=[...new Set(a.urls?.map(e=>e.trim()).filter(Boolean)??[])];if(0===r.length||r.length>10)return y.NextResponse.json({error:"Provide between 1 and 10 media URLs."},{status:400});if(!await (0,A.isToolInstalled)("video-audio"))return y.NextResponse.json({error:"Install the Video & Audio tool before importing media URLs."},{status:409});let i=await (0,S.loadTool)("video-audio");if(!i?.importMediaUrl||!i?.inspectMediaUrl)return y.NextResponse.json({error:"The installed Video & Audio tool needs an update."},{status:409});if(a.estimateOnly){let e=[];for(let t of r){let r=await i.inspectMediaUrl(t);if(a.mediaType&&"unknown"!==r.mediaType&&r.mediaType!==a.mediaType)return y.NextResponse.json({error:`The URL points to ${r.mediaType}, not ${a.mediaType}.`},{status:400});e.push(r)}return y.NextResponse.json({estimates:e})}let{addMediaAssets:n}=await e.A(742957),s=r.map(e=>({type:a.mediaType||"video",fileName:"Importing URL...",mimeType:"application/octet-stream",storageUri:`pending://${e}`,fileSize:0,originalUrl:e})),o=await n(s);return y.NextResponse.json({assets:o,count:o.length},{status:201})}async function C(e){return O(e,()=>j(e))}async function j(t){let a=new URL(t.url),r=a.searchParams.get("id"),i=a.searchParams.get("ids"),n=(0,R.createStorageProvider)();if(r){let{getMediaAsset:t}=await e.A(742957),a=await t(r);if(a){if(P(a))return y.NextResponse.json({error:"Wait for the media indexing job to finish before deleting it."},{status:409});let e=k(a);await _(e),await n.delete(a.storageUri).catch(()=>{}),a.thumbnailUri&&await n.delete(a.thumbnailUri).catch(()=>{}),await (0,x.deleteDocuments)(e)}await (0,v.deleteMediaAsset)(r)}else if(i){let e=i.split(","),t=(await (0,v.readMediaAssets)()).filter(t=>e.includes(t.id));if(t.some(P))return y.NextResponse.json({error:"Wait for all selected media indexing jobs to finish before deleting them."},{status:409});for(let e of t){let t=k(e);await _(t),await n.delete(e.storageUri).catch(()=>{}),e.thumbnailUri&&await n.delete(e.thumbnailUri).catch(()=>{}),await (0,x.deleteDocuments)(t)}await (0,v.deleteMediaAssets)(e)}return y.NextResponse.json({ok:!0})}function P(e){return"processing"===e.processingStatus||"pending"===e.processingStatus&&"Queued for background processing..."===e.processingMessage}function O(e,t){let a=new URL(e.url).searchParams.get("serverId");return a?(0,b.runWithServer)(a,t):t()}async function _(e){if(0===e.length)return;let t=await (0,N.createAdapter)(await (0,D.readConfig)());await t.deleteByDocumentIds(e)}function k(e){return[...new Set([...e.documentIds,...e.pendingDocumentIds??[],...e.supersededDocumentIds??[]])]}e.s(["DELETE",0,C,"GET",0,I,"POST",0,T,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],98281);var F=e.i(98281);let $=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/media/route",pathname:"/api/media",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/media/route.ts",nextConfigOutput:"standalone",userland:F,...{}}),{workAsyncStorage:q,workUnitAsyncStorage:H,serverHooks:L}=$;async function K(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),$.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/media/route";y=y.replace(/\/index$/,"")||"/";let v=await $.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,deploymentId:S,params:R,nextConfig:x,parsedUrl:D,isDraftMode:N,prerenderManifest:b,routerServerContext:I,isOnDemandRevalidate:E,revalidateOnlyGenerated:T,resolvedPathname:U,clientReferenceManifest:M,serverActionsManifest:C}=v,j=(0,o.normalizeAppPath)(y),P=!!(b.dynamicRoutes[j]||b.routes[U]),O=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,D,!1):t.end("This page could not be found"),null);if(P&&!N){let e=!!b.routes[U],t=b.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(x.adapterPath)return await O();throw new h.NoFallbackError}}let _=null;!P||$.isDev||N||(_="/index"===(_=U)?"/":_);let k=!0===$.isDev||!P,F=P&&!k;C&&M&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:M,serverActionsManifest:C});let q=e.method||"GET",H=(0,n.getTracer)(),L=H.getActiveScopeSpan(),K=!!(null==I?void 0:I.isWrappedByNextServer),B=!!(0,i.getRequestMeta)(e,"minimalMode"),z=(0,i.getRequestMeta)(e,"incrementalCache")||await $.getIncrementalCache(e,x,b,B);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let W={params:R,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:k,incrementalCache:z,cacheLifeProfiles:x.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,i)=>$.onRequestError(e,t,r,i,I)},sharedContext:{buildId:A,deploymentId:S}},G=new u.NodeNextRequest(e),J=new u.NodeNextResponse(t),V=d.NextRequestAdapter.fromNodeNextRequest(G,(0,d.signalFromNodeResponse)(t));try{let i,s=async e=>$.handle(V,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=H.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${q} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",r),i.updateName(t))}else e.updateName(`${q} ${y}`)}),o=async i=>{var n,o;let u=async({previousCacheEntry:a})=>{try{if(!B&&E&&T&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(i);e.fetchMetrics=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let u=W.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(G,J,n,W.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(n.headers);u&&(t[g.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,r=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await $.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:E})},!1,I),t}},d=await $.handleResponse({req:e,nextConfig:x,cacheKey:_,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:T,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:B});if(!P)return null;if((null==d||null==(n=d.value)?void 0:n.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return B&&P||l.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,f.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(G,J,new Response(d.value.body,{headers:l,status:d.value.status||200})),null};K&&L?await o(L):(i=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(l.BaseServerSpan.handleRequest,{spanName:`${q} ${y}`,kind:n.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},o),void 0,!K))}catch(t){if(t instanceof h.NoFallbackError||await $.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:E})},!1,I),P)throw t;return await (0,p.sendResponse)(G,J,new Response(null,{status:500})),null}}e.s(["handler",0,K,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:q,workUnitAsyncStorage:H})},"routeModule",0,$,"serverHooks",0,L,"workAsyncStorage",0,q,"workUnitAsyncStorage",0,H],889271)},484620,e=>{e.v(e=>Promise.resolve().then(()=>e(504740)))},627270,e=>{e.v(e=>Promise.resolve().then(()=>e(612069)))},77149,e=>{e.v(t=>Promise.all(["server/chunks/[externals]__03264vc._.js","server/chunks/[root-of-the-server]__1ynt2jc._.js"].map(t=>e.l(t))).then(()=>t(292483)))},195059,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__10v5qsi._.js"].map(t=>e.l(t))).then(()=>t(148089)))},184904,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__01al2n0._.js"].map(t=>e.l(t))).then(()=>t(46465)))},742957,e=>{e.v(e=>Promise.resolve().then(()=>e(839554)))}];
|
|
1
|
+
module.exports=[367165,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(638725),i=e.i(192441);async function n(){let e=await (0,i.getDataDir)();if(!e)return r.DEFAULT_CONFIG;try{let i=await t.promises.readFile(a.default.join(e,"config.json"),"utf8"),n=JSON.parse(i),s=n.customEmbeddings,o=n.embeddingModelId;if(n.customEmbedding&&!s?.length){let e=n.customEmbedding;s=[e],"custom"===o&&(o=`custom:${e.modelName}`)}let u={...r.DEFAULT_CONFIG,...n,embeddingModelId:o??r.DEFAULT_CONFIG.embeddingModelId,customEmbeddings:s,chunking:{...r.DEFAULT_CONFIG.chunking,...n.chunking},storeConfig:{...r.DEFAULT_CONFIG.storeConfig,...n.storeConfig}};return delete u.customEmbedding,u}catch{return r.DEFAULT_CONFIG}}async function s(e){let r=await (0,i.requireDataDir)(),n={...e,updatedAt:new Date().toISOString()};return await t.promises.writeFile(a.default.join(r,"config.json"),JSON.stringify(n,null,2),"utf8"),n}e.s(["readConfig",0,n,"writeConfig",0,s])},874533,(e,t,a)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},812057,(e,t,a)=>{t.exports=e.x("node:util",()=>require("node:util"))},705252,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),i=e.i(192441);let n=Promise.resolve();function s(e){let t=n.then(e,e);return n=t.catch(()=>{}),t}async function o(e){let t=e?await (0,i.requireDataDir)():await (0,i.getDataDir)();return t?a.default.join(t,"documents.json"):null}async function u(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid document store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let i=await o(!0);if(!i)return;let n=a.default.join(a.default.dirname(i),`.${a.default.basename(i)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(n,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(n,i)}catch(e){throw await t.promises.unlink(n).catch(()=>{}),e}}function l(e){let t=e.content.trim();return{id:e.id??(0,r.randomUUID)(),title:e.title.trim()||"Untitled",url:e.url,source:e.source,content:t,charCount:t.length,jobId:e.jobId,metadata:e.metadata,status:"unindexed",createdAt:new Date().toISOString()}}async function c(){let e=await u(),t=e.reduce((e,t)=>e+t.charCount,0);return{docCount:e.length,charCount:t,bySource:e.reduce((e,t)=>(e[t.source]=(e[t.source]??0)+1,e),{})}}e.s(["addCrawledDocuments",0,function(e,t){return s(async()=>{let a=await u(),r=new Set(a.filter(e=>e.url).map(e=>e.url)),i=0;for(let n of t)!(n.url&&r.has(n.url))&&n.content.trim()&&(a.push(l({...n,jobId:e})),n.url&&r.add(n.url),i++);return i>0&&await d(a),i})},"addDocument",0,function(e){return s(async()=>{let t=await u(),a=l(e);return t.push(a),await d(t),a})},"addDocuments",0,function(e){return s(async()=>{if(0===e.length)return[];let t=await u(),a=e.map(l);return t.push(...a),await d(t),a})},"clearDocuments",0,function(){return s(async()=>{await d([])})},"corpusStats",0,c,"deleteDocument",0,function(e){return s(async()=>{let t=await u();await d(t.filter(t=>t.id!==e))})},"deleteDocuments",0,function(e){return s(async()=>{let t=await u(),a=new Set(e);await d(t.filter(e=>!a.has(e.id)))})},"readDocuments",0,u,"replaceDocuments",0,function(e){return s(async()=>{let t=new Date().toISOString();await d(e.map(e=>({...e,status:"unindexed",createdAt:e.createdAt||t})))})},"updateDocument",0,function(e,t){return s(async()=>{let a=await u(),r=a.findIndex(t=>t.id===e);if(r<0)return;let i=a[r],n=void 0!==t.content?t.content.trim():i.content,s={...i,title:void 0!==t.title?t.title.trim()||"Untitled":i.title,content:n,charCount:n.length,url:void 0!==t.url?t.url||void 0:i.url,metadata:void 0!==t.metadata?t.metadata:i.metadata,status:"unindexed"};return a[r]=s,await d(a),s})},"updateDocumentsStatus",0,function(e,t){return s(async()=>{let a=await u(),r=new Set(e),i=!1;for(let e of a)r.has(e.id)&&(e.status=t,i=!0);i&&await d(a)})}])},585071,e=>{"use strict";var t=e.i(192441);async function a(a,r){let i={...a.storeConfig},n=await (0,t.getActiveServer)(),s=n?.id;if(s){let e=s.replace(/[^a-zA-Z0-9_-]/g,"_");"pinecone"===a.vectorStore?i.namespace=s:"chroma"===a.vectorStore?i.collectionName=`documents_${e}`:"lancedb"!==a.vectorStore&&a.vectorStore||(i.tableName=`documents_${e}`)}switch(a.vectorStore){case"pinecone":{let{PineconeAdapter:t}=await e.A(77149);return new t({apiKey:i.apiKey,indexName:i.indexName,namespace:i.namespace,sparseModel:i.sparseModel,indexType:a.indexType,onRateLimit:r})}case"chroma":{let{ChromaAdapter:t}=await e.A(195059);return new t({mode:i.mode,host:i.host,authToken:i.authToken,apiKey:i.apiKey,tenant:i.tenant,database:i.database,collectionName:i.collectionName,indexType:a.indexType})}default:{let{LanceDBAdapter:t}=await e.A(184904);return new t({mode:i.mode,dbPath:i.dbPath,uri:i.uri,apiKey:i.apiKey,s3Uri:i.s3Uri,s3Endpoint:i.s3Endpoint,s3Region:i.s3Region,s3AccessKeyId:i.s3AccessKeyId,s3SecretAccessKey:i.s3SecretAccessKey,tableName:i.tableName})}}}e.s(["createAdapter",0,a])},857764,(e,t,a)=>{t.exports=e.x("node:url",()=>require("node:url"))},504740,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(857764),i=e.i(463857);let n=new Map;async function s(e){if(n.has(e))return n.get(e);let t=await (0,i.getInstalledTool)(e);if(!t)return null;try{let a=await o(t),r=await import(a);return n.set(e,r),r}catch(t){return console.error(`[marketplace] Failed to load tool "${e}":`,t),null}}async function o(e){switch(e.source){case"local":default:return e.packageName;case"registry":case"sandbox":return u(e.resolvedPath)}}async function u(e){let i=a.default.join(e,"package.json"),n=JSON.parse(await t.promises.readFile(i,"utf8")),s="object"==typeof n.exports?n.exports["."]:n.exports,o=("object"==typeof s?s.import??s.default:s)??n.main??"index.js";return(0,r.pathToFileURL)(a.default.resolve(e,o)).href}e.s(["loadTool",0,s,"unloadTool",0,function(e){n.delete(e)}])},839554,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),i=e.i(192441);let n=Promise.resolve();function s(e){let t=n.then(e,e);return n=t.catch(()=>{}),t}async function o(e){let t=e?await (0,i.requireDataDir)():await (0,i.getDataDir)();return t?a.default.join(t,"media-assets.json"):null}async function u(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid media asset store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function d(e){let i=await o(!0);if(!i)return;let n=a.default.join(a.default.dirname(i),`.${a.default.basename(i)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(n,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(n,i)}catch(e){throw await t.promises.unlink(n).catch(()=>{}),e}}let l=["download","extract","transcribe","vision","synthesize","index"],c={download:10,extract:15,transcribe:25,vision:30,synthesize:5,index:15};function p(e){return l.map(t=>({stage:t,status:"waiting",updatedAt:e}))}function m(e){return void 0!==e&&Number.isFinite(e)?Math.max(0,e):void 0}function f(e){let t=m(e);return void 0===t?void 0:Math.min(100,t)}function g(e){return Math.floor(m(e.processingRevision)??0)+1}async function h(){let e=await u(),t={image:0,video:0,audio:0},a={pending:0,processing:0,completed:0,failed:0},r=0;for(let i of e)t[i.type]++,a[i.processingStatus]++,r+=i.fileSize;return{total:e.length,byType:t,byStatus:a,totalBytes:r}}async function w(e){return(await u()).find(t=>t.id===e)}e.s(["addMediaAssets",0,function(e){return s(async()=>{let t=await u(),a=new Date().toISOString(),i=e.map(e=>({id:(0,r.randomUUID)(),type:e.type,fileName:e.fileName,mimeType:e.mimeType,storageUri:e.storageUri,thumbnailUri:e.thumbnailUri,originalUrl:e.originalUrl,fileSize:e.fileSize,dimensions:e.dimensions,durationSecs:e.durationSecs,processingStatus:"pending",processingRevision:0,documentIds:[],createdAt:a,updatedAt:a}));return t.push(...i),await d(t),i})},"claimMediaAsset",0,function(e){return s(async()=>{let t=await u(),a=t.findIndex(t=>t.id===e);if(a<0||"processing"===t[a].processingStatus||"Queued for background processing..."===t[a].processingMessage)return;let r=new Date().toISOString();return t[a]={...t[a],processingStatus:"pending",processingError:void 0,processingMessage:"Queued for background processing...",processingProgress:1,processingSteps:p(r),processingRevision:g(t[a]),processingHeartbeatAt:r,updatedAt:r},await d(t),t[a]})},"deleteMediaAsset",0,function(e){return s(async()=>{let t=await u();await d(t.filter(t=>t.id!==e))})},"deleteMediaAssets",0,function(e){return s(async()=>{let t=await u(),a=new Set(e);await d(t.filter(e=>!a.has(e.id)))})},"getMediaAsset",0,w,"mediaStats",0,h,"readMediaAssets",0,u,"recoverStaleMediaAssets",0,function(e=3e5){return s(async()=>{let t=await u(),a=Date.now()-e,r="The background worker stopped. Retry to resume media processing.",i=0;for(let e=0;e<t.length;e++){let n=t[e],s="processing"===n.processingStatus,o="pending"===n.processingStatus&&"Queued for background processing..."===n.processingMessage,u=n.processingHeartbeatAt??n.updatedAt;if((s||o)&&new Date(u).getTime()<a){let a=new Date().toISOString(),s=n.processingSteps?.map(e=>"running"===e.status?{...e,status:"failed",message:r,updatedAt:a,finishedAt:a}:e);t[e]={...n,processingStatus:"failed",processingError:r,processingMessage:void 0,processingProgress:void 0,processingSteps:s,processingRevision:g(n),processingHeartbeatAt:a,updatedAt:a},i++}}return i>0&&await d(t),i})},"updateMediaAsset",0,function(e,t){return s(async()=>{let a=await u(),r=a.findIndex(t=>t.id===e);if(r<0)return;let i=a[r];return a[r]={...i,...t,documentIds:t.documentIds??i.documentIds,pendingDocumentIds:t.pendingDocumentIds??i.pendingDocumentIds,supersededDocumentIds:t.supersededDocumentIds??i.supersededDocumentIds,updatedAt:new Date().toISOString()},await d(a),a[r]})},"updateMediaStage",0,function(e,t,a){return s(async()=>{let r,i,n=await u(),s=n.findIndex(t=>t.id===e);if(s<0)return;let o=new Date().toISOString(),l=n[s],h=new Map((l.processingSteps??[]).map(e=>[e.stage,e])),w=p(o).map(e=>h.get(e.stage)??e),y=w.findIndex(e=>e.stage===t),v=w[y],A=new Set(["completed","skipped","failed"]),S=a.status??v.status,R=A.has(v.status)||"running"===v.status&&"waiting"===S?v.status:S,x=f(v.percent),D=f(a.percent),N=void 0===D?x:Math.max(x??0,D),b=m(v.current),I=m(a.current),E=void 0===I?b:Math.max(b??0,I),T=void 0===a.total?m(v.total):m(a.total);void 0!==E&&void 0!==T&&(T=Math.max(T,E))>0&&(N=Math.max(N??0,Math.min(100,E/T*100))),"completed"===R&&(N=100,void 0!==T&&(E=T));let U=A.has(R),M={...v,...a,stage:t,status:R,percent:N,current:E,total:T,startedAt:a.startedAt??v.startedAt??("running"===R||U?o:void 0),updatedAt:o,finishedAt:U?a.finishedAt??v.finishedAt??o:void 0};w[y]=M;let C=Math.max(f(l.processingProgress)??0,0===(i=(r=w.filter(e=>"skipped"!==e.status)).reduce((e,t)=>e+c[t.stage],0))?100:Math.round(r.reduce((e,t)=>e+c[t.stage]*function(e){if("completed"===e.status)return 100;if("waiting"===e.status||"skipped"===e.status)return 0;let t=f(e.percent);return void 0!==t?t:void 0!==e.current&&void 0!==e.total&&Number.isFinite(e.current)&&Number.isFinite(e.total)&&e.total>0?Math.min(100,Math.max(0,e.current/e.total*100)):0}(t)/100,0)/i*100)),j=[...w].reverse().find(e=>"running"===e.status&&e.message)?.message,P="running"===M.status?M.message??a.message??l.processingMessage:j??a.message??M.message??l.processingMessage;return n[s]={...l,processingSteps:w,processingProgress:C,processingMessage:P,processingRevision:g(l),processingHeartbeatAt:o,updatedAt:o},await d(n),n[s]})}])},941486,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(192441);class i{id="local";name="Local Storage";async mediaDir(){let e=await (0,r.requireDataDir)(),i=a.default.join(e,"media");return await t.promises.mkdir(i,{recursive:!0}),i}async store(e,r,i){let n=await this.mediaDir(),s=a.default.join(n,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.writeFile(s,r),`local://${e}`}async storeFile(e,r,i){let n=await this.mediaDir(),s=a.default.join(n,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.copyFile(r,s),`local://${e}`}async retrieve(e){let a=await this.resolvePath(e);if(!a)throw Error(`Unsupported local storage URI: ${e}`);return t.promises.readFile(a)}async resolvePath(e){if(!e.startsWith("local://"))return;let t=e.slice(8),r=await this.mediaDir(),i=a.default.resolve(r,t),n=a.default.relative(r,i);if(n.startsWith("..")||a.default.isAbsolute(n))throw Error("Invalid local storage URI");return i}async delete(e){let r=e.replace("local://",""),i=await this.mediaDir();try{await t.promises.unlink(a.default.join(i,r))}catch{}}async stats(){try{let e=await this.mediaDir();return await n(e)}catch{return{usedBytes:0,fileCount:0}}}}async function n(e){let r=0,i=0;async function n(e){let s;try{s=await t.promises.readdir(e,{withFileTypes:!0})}catch{return}for(let o of s){let s=a.default.join(e,o.name);if(o.isDirectory())await n(s);else try{let e=await t.promises.stat(s);r+=e.size,i++}catch{}}}return await n(e),{usedBytes:r,fileCount:i}}e.s(["createStorageProvider",0,function(e){return new i}])},889271,e=>{"use strict";var t=e.i(239441),a=e.i(449055),r=e.i(391328),i=e.i(6352),n=e.i(746789),s=e.i(423437),o=e.i(178820),u=e.i(569191),d=e.i(576251),l=e.i(199962),c=e.i(547545),p=e.i(664046),m=e.i(235691),f=e.i(298907),g=e.i(110763),h=e.i(193695);e.i(673243);var w=e.i(236167),y=e.i(766576),v=e.i(839554),A=e.i(463857),S=e.i(504740),R=e.i(941486),x=e.i(705252),D=e.i(367165),N=e.i(585071),b=e.i(192441);async function I(e){return O(e,()=>E(e))}async function E(e){let t=new URL(e.url).searchParams.get("type");await (0,v.recoverStaleMediaAssets)();let[a,r]=await Promise.all([(0,v.readMediaAssets)(),(0,v.mediaStats)()]),i=t?a.filter(e=>e.type===t):a;i.sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());let n=(0,R.createStorageProvider)(),s=await n.stats();return y.NextResponse.json({assets:i,stats:r,storage:{usedBytes:s.usedBytes,fileCount:s.fileCount}})}async function T(e){return O(e,()=>U(e))}async function U(t){try{if(t.headers.get("content-type")?.includes("application/json"))return await M(t);let r=(await t.formData()).getAll("file");if(0===r.length)return y.NextResponse.json({error:"No files provided."},{status:400});let i=(0,R.createStorageProvider)(),n=[];for(let e of r){var a;let t=(a=e.type).startsWith("image/")?"image":a.startsWith("video/")?"video":a.startsWith("audio/")?"audio":null;if(!t)continue;let r=Buffer.from(await e.arrayBuffer()),s=e.name.split(".").pop()||"bin",o=`${t}s/${Date.now()}_${Math.random().toString(36).slice(2)}.${s}`,u=await i.store(o,r,e.type);n.push({type:t,fileName:e.name,mimeType:e.type,storageUri:u,fileSize:e.size})}if(0===n.length)return y.NextResponse.json({error:"No supported media files found."},{status:400});let{addMediaAssets:s}=await e.A(742957),o=await s(n);return y.NextResponse.json({assets:o,count:o.length},{status:201})}catch(t){let e=t instanceof Error?t.message:"Failed to upload media.";return y.NextResponse.json({error:e},{status:500})}}async function M(t){let a=await t.json(),r=[...new Set(a.urls?.map(e=>e.trim()).filter(Boolean)??[])];if(0===r.length||r.length>10)return y.NextResponse.json({error:"Provide between 1 and 10 media URLs."},{status:400});if(!await (0,A.isToolInstalled)("video-audio"))return y.NextResponse.json({error:"Install the Video & Audio tool before importing media URLs."},{status:409});let i=await (0,S.loadTool)("video-audio");if(!i?.importMediaUrl||!i?.inspectMediaUrl)return y.NextResponse.json({error:"The installed Video & Audio tool needs an update."},{status:409});if(a.estimateOnly){let e=[];for(let t of r){let r=await i.inspectMediaUrl(t);if(a.mediaType&&"unknown"!==r.mediaType&&r.mediaType!==a.mediaType)return y.NextResponse.json({error:`The URL points to ${r.mediaType}, not ${a.mediaType}.`},{status:400});e.push(r)}return y.NextResponse.json({estimates:e})}let{addMediaAssets:n}=await e.A(742957),s=r.map(e=>({type:a.mediaType||"video",fileName:"Importing URL...",mimeType:"application/octet-stream",storageUri:`pending://${e}`,fileSize:0,originalUrl:e})),o=await n(s);return y.NextResponse.json({assets:o,count:o.length},{status:201})}async function C(e){return O(e,()=>j(e))}async function j(t){let a=new URL(t.url),r=a.searchParams.get("id"),i=a.searchParams.get("ids"),n="true"===a.searchParams.get("force"),s=(0,R.createStorageProvider)();if(r){let{getMediaAsset:t}=await e.A(742957),a=await t(r);if(a){if(!n&&P(a))return y.NextResponse.json({error:"Wait for the media indexing job to finish before deleting it."},{status:409});let e=k(a);await _(e),await s.delete(a.storageUri).catch(()=>{}),a.thumbnailUri&&await s.delete(a.thumbnailUri).catch(()=>{}),await (0,x.deleteDocuments)(e)}await (0,v.deleteMediaAsset)(r)}else if(i){let e=i.split(","),t=(await (0,v.readMediaAssets)()).filter(t=>e.includes(t.id));if(!n&&t.some(P))return y.NextResponse.json({error:"Wait for all selected media indexing jobs to finish before deleting them."},{status:409});for(let e of t){let t=k(e);await _(t),await s.delete(e.storageUri).catch(()=>{}),e.thumbnailUri&&await s.delete(e.thumbnailUri).catch(()=>{}),await (0,x.deleteDocuments)(t)}await (0,v.deleteMediaAssets)(e)}return y.NextResponse.json({ok:!0})}function P(e){return"processing"===e.processingStatus||"pending"===e.processingStatus&&"Queued for background processing..."===e.processingMessage}function O(e,t){let a=new URL(e.url).searchParams.get("serverId");return a?(0,b.runWithServer)(a,t):t()}async function _(e){if(0===e.length)return;let t=await (0,N.createAdapter)(await (0,D.readConfig)());await t.deleteByDocumentIds(e)}function k(e){return[...new Set([...e.documentIds,...e.pendingDocumentIds??[],...e.supersededDocumentIds??[]])]}e.s(["DELETE",0,C,"GET",0,I,"POST",0,T,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],98281);var F=e.i(98281);let $=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/media/route",pathname:"/api/media",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/media/route.ts",nextConfigOutput:"standalone",userland:F,...{}}),{workAsyncStorage:q,workUnitAsyncStorage:H,serverHooks:L}=$;async function K(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),$.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/media/route";y=y.replace(/\/index$/,"")||"/";let v=await $.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,deploymentId:S,params:R,nextConfig:x,parsedUrl:D,isDraftMode:N,prerenderManifest:b,routerServerContext:I,isOnDemandRevalidate:E,revalidateOnlyGenerated:T,resolvedPathname:U,clientReferenceManifest:M,serverActionsManifest:C}=v,j=(0,o.normalizeAppPath)(y),P=!!(b.dynamicRoutes[j]||b.routes[U]),O=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,D,!1):t.end("This page could not be found"),null);if(P&&!N){let e=!!b.routes[U],t=b.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(x.adapterPath)return await O();throw new h.NoFallbackError}}let _=null;!P||$.isDev||N||(_="/index"===(_=U)?"/":_);let k=!0===$.isDev||!P,F=P&&!k;C&&M&&(0,s.setManifestsSingleton)({page:y,clientReferenceManifest:M,serverActionsManifest:C});let q=e.method||"GET",H=(0,n.getTracer)(),L=H.getActiveScopeSpan(),K=!!(null==I?void 0:I.isWrappedByNextServer),B=!!(0,i.getRequestMeta)(e,"minimalMode"),z=(0,i.getRequestMeta)(e,"incrementalCache")||await $.getIncrementalCache(e,x,b,B);null==z||z.resetRequestCache(),globalThis.__incrementalCache=z;let W={params:R,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:k,incrementalCache:z,cacheLifeProfiles:x.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,i)=>$.onRequestError(e,t,r,i,I)},sharedContext:{buildId:A,deploymentId:S}},G=new u.NodeNextRequest(e),J=new u.NodeNextResponse(t),V=d.NextRequestAdapter.fromNodeNextRequest(G,(0,d.signalFromNodeResponse)(t));try{let i,s=async e=>$.handle(V,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=H.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==l.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${q} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",r),i.updateName(t))}else e.updateName(`${q} ${y}`)}),o=async i=>{var n,o;let u=async({previousCacheEntry:a})=>{try{if(!B&&E&&T&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(i);e.fetchMetrics=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let u=W.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(G,J,n,W.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(n.headers);u&&(t[g.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,r=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await $.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:E})},!1,I),t}},d=await $.handleResponse({req:e,nextConfig:x,cacheKey:_,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:E,revalidateOnlyGenerated:T,responseGenerator:u,waitUntil:r.waitUntil,isMinimalMode:B});if(!P)return null;if((null==d||null==(n=d.value)?void 0:n.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",E?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),N&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return B&&P||l.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,f.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(G,J,new Response(d.value.body,{headers:l,status:d.value.status||200})),null};K&&L?await o(L):(i=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(l.BaseServerSpan.handleRequest,{spanName:`${q} ${y}`,kind:n.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},o),void 0,!K))}catch(t){if(t instanceof h.NoFallbackError||await $.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:E})},!1,I),P)throw t;return await (0,p.sendResponse)(G,J,new Response(null,{status:500})),null}}e.s(["handler",0,K,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:q,workUnitAsyncStorage:H})},"routeModule",0,$,"serverHooks",0,L,"workAsyncStorage",0,q,"workUnitAsyncStorage",0,H],889271)},484620,e=>{e.v(e=>Promise.resolve().then(()=>e(504740)))},627270,e=>{e.v(e=>Promise.resolve().then(()=>e(612069)))},77149,e=>{e.v(t=>Promise.all(["server/chunks/[externals]__03264vc._.js","server/chunks/[root-of-the-server]__1ynt2jc._.js"].map(t=>e.l(t))).then(()=>t(292483)))},195059,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__10v5qsi._.js"].map(t=>e.l(t))).then(()=>t(148089)))},184904,e=>{e.v(t=>Promise.all(["server/chunks/[root-of-the-server]__01al2n0._.js"].map(t=>e.l(t))).then(()=>t(46465)))},742957,e=>{e.v(e=>Promise.resolve().then(()=>e(839554)))}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=%5Broot-of-the-server%5D__1jc54o2._.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
module.exports=[839554,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),i=e.i(192441);let n=Promise.resolve();function s(e){let t=n.then(e,e);return n=t.catch(()=>{}),t}async function o(e){let t=e?await (0,i.requireDataDir)():await (0,i.getDataDir)();return t?a.default.join(t,"media-assets.json"):null}async function d(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid media asset store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function l(e){let i=await o(!0);if(!i)return;let n=a.default.join(a.default.dirname(i),`.${a.default.basename(i)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(n,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(n,i)}catch(e){throw await t.promises.unlink(n).catch(()=>{}),e}}let u=["download","extract","transcribe","vision","synthesize","index"],c={download:10,extract:15,transcribe:25,vision:30,synthesize:5,index:15};function p(e){return u.map(t=>({stage:t,status:"waiting",updatedAt:e}))}function g(e){return void 0!==e&&Number.isFinite(e)?Math.max(0,e):void 0}function m(e){let t=g(e);return void 0===t?void 0:Math.min(100,t)}function f(e){return Math.floor(g(e.processingRevision)??0)+1}async function h(){let e=await d(),t={image:0,video:0,audio:0},a={pending:0,processing:0,completed:0,failed:0},r=0;for(let i of e)t[i.type]++,a[i.processingStatus]++,r+=i.fileSize;return{total:e.length,byType:t,byStatus:a,totalBytes:r}}async function w(e){return(await d()).find(t=>t.id===e)}e.s(["addMediaAssets",0,function(e){return s(async()=>{let t=await d(),a=new Date().toISOString(),i=e.map(e=>({id:(0,r.randomUUID)(),type:e.type,fileName:e.fileName,mimeType:e.mimeType,storageUri:e.storageUri,thumbnailUri:e.thumbnailUri,originalUrl:e.originalUrl,fileSize:e.fileSize,dimensions:e.dimensions,durationSecs:e.durationSecs,processingStatus:"pending",processingRevision:0,documentIds:[],createdAt:a,updatedAt:a}));return t.push(...i),await l(t),i})},"claimMediaAsset",0,function(e){return s(async()=>{let t=await d(),a=t.findIndex(t=>t.id===e);if(a<0||"processing"===t[a].processingStatus||"Queued for background processing..."===t[a].processingMessage)return;let r=new Date().toISOString();return t[a]={...t[a],processingStatus:"pending",processingError:void 0,processingMessage:"Queued for background processing...",processingProgress:1,processingSteps:p(r),processingRevision:f(t[a]),processingHeartbeatAt:r,updatedAt:r},await l(t),t[a]})},"deleteMediaAsset",0,function(e){return s(async()=>{let t=await d();await l(t.filter(t=>t.id!==e))})},"deleteMediaAssets",0,function(e){return s(async()=>{let t=await d(),a=new Set(e);await l(t.filter(e=>!a.has(e.id)))})},"getMediaAsset",0,w,"mediaStats",0,h,"readMediaAssets",0,d,"recoverStaleMediaAssets",0,function(e=3e5){return s(async()=>{let t=await d(),a=Date.now()-e,r="The background worker stopped. Retry to resume media processing.",i=0;for(let e=0;e<t.length;e++){let n=t[e],s="processing"===n.processingStatus,o="pending"===n.processingStatus&&"Queued for background processing..."===n.processingMessage,d=n.processingHeartbeatAt??n.updatedAt;if((s||o)&&new Date(d).getTime()<a){let a=new Date().toISOString(),s=n.processingSteps?.map(e=>"running"===e.status?{...e,status:"failed",message:r,updatedAt:a,finishedAt:a}:e);t[e]={...n,processingStatus:"failed",processingError:r,processingMessage:void 0,processingProgress:void 0,processingSteps:s,processingRevision:f(n),processingHeartbeatAt:a,updatedAt:a},i++}}return i>0&&await l(t),i})},"updateMediaAsset",0,function(e,t){return s(async()=>{let a=await d(),r=a.findIndex(t=>t.id===e);if(r<0)return;let i=a[r];return a[r]={...i,...t,documentIds:t.documentIds??i.documentIds,pendingDocumentIds:t.pendingDocumentIds??i.pendingDocumentIds,supersededDocumentIds:t.supersededDocumentIds??i.supersededDocumentIds,updatedAt:new Date().toISOString()},await l(a),a[r]})},"updateMediaStage",0,function(e,t,a){return s(async()=>{let r,i,n=await d(),s=n.findIndex(t=>t.id===e);if(s<0)return;let o=new Date().toISOString(),u=n[s],h=new Map((u.processingSteps??[]).map(e=>[e.stage,e])),w=p(o).map(e=>h.get(e.stage)??e),v=w.findIndex(e=>e.stage===t),y=w[v],R=new Set(["completed","skipped","failed"]),A=a.status??y.status,S=R.has(y.status)||"running"===y.status&&"waiting"===A?y.status:A,x=m(y.percent),E=m(a.percent),
|
|
1
|
+
module.exports=[839554,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(666680),i=e.i(192441);let n=Promise.resolve();function s(e){let t=n.then(e,e);return n=t.catch(()=>{}),t}async function o(e){let t=e?await (0,i.requireDataDir)():await (0,i.getDataDir)();return t?a.default.join(t,"media-assets.json"):null}async function d(){let e=await o(!1);if(!e)return[];try{let a=await t.promises.readFile(e,"utf8"),r=JSON.parse(a);if(!Array.isArray(r))throw Error(`Invalid media asset store at ${e}: expected a JSON array.`);return r}catch(e){if(e?.code==="ENOENT")return[];throw e}}async function l(e){let i=await o(!0);if(!i)return;let n=a.default.join(a.default.dirname(i),`.${a.default.basename(i)}.${process.pid}.${(0,r.randomUUID)()}.tmp`);try{await t.promises.writeFile(n,JSON.stringify(e,null,2),"utf8"),await t.promises.rename(n,i)}catch(e){throw await t.promises.unlink(n).catch(()=>{}),e}}let u=["download","extract","transcribe","vision","synthesize","index"],c={download:10,extract:15,transcribe:25,vision:30,synthesize:5,index:15};function p(e){return u.map(t=>({stage:t,status:"waiting",updatedAt:e}))}function g(e){return void 0!==e&&Number.isFinite(e)?Math.max(0,e):void 0}function m(e){let t=g(e);return void 0===t?void 0:Math.min(100,t)}function f(e){return Math.floor(g(e.processingRevision)??0)+1}async function h(){let e=await d(),t={image:0,video:0,audio:0},a={pending:0,processing:0,completed:0,failed:0},r=0;for(let i of e)t[i.type]++,a[i.processingStatus]++,r+=i.fileSize;return{total:e.length,byType:t,byStatus:a,totalBytes:r}}async function w(e){return(await d()).find(t=>t.id===e)}e.s(["addMediaAssets",0,function(e){return s(async()=>{let t=await d(),a=new Date().toISOString(),i=e.map(e=>({id:(0,r.randomUUID)(),type:e.type,fileName:e.fileName,mimeType:e.mimeType,storageUri:e.storageUri,thumbnailUri:e.thumbnailUri,originalUrl:e.originalUrl,fileSize:e.fileSize,dimensions:e.dimensions,durationSecs:e.durationSecs,processingStatus:"pending",processingRevision:0,documentIds:[],createdAt:a,updatedAt:a}));return t.push(...i),await l(t),i})},"claimMediaAsset",0,function(e){return s(async()=>{let t=await d(),a=t.findIndex(t=>t.id===e);if(a<0||"processing"===t[a].processingStatus||"Queued for background processing..."===t[a].processingMessage)return;let r=new Date().toISOString();return t[a]={...t[a],processingStatus:"pending",processingError:void 0,processingMessage:"Queued for background processing...",processingProgress:1,processingSteps:p(r),processingRevision:f(t[a]),processingHeartbeatAt:r,updatedAt:r},await l(t),t[a]})},"deleteMediaAsset",0,function(e){return s(async()=>{let t=await d();await l(t.filter(t=>t.id!==e))})},"deleteMediaAssets",0,function(e){return s(async()=>{let t=await d(),a=new Set(e);await l(t.filter(e=>!a.has(e.id)))})},"getMediaAsset",0,w,"mediaStats",0,h,"readMediaAssets",0,d,"recoverStaleMediaAssets",0,function(e=3e5){return s(async()=>{let t=await d(),a=Date.now()-e,r="The background worker stopped. Retry to resume media processing.",i=0;for(let e=0;e<t.length;e++){let n=t[e],s="processing"===n.processingStatus,o="pending"===n.processingStatus&&"Queued for background processing..."===n.processingMessage,d=n.processingHeartbeatAt??n.updatedAt;if((s||o)&&new Date(d).getTime()<a){let a=new Date().toISOString(),s=n.processingSteps?.map(e=>"running"===e.status?{...e,status:"failed",message:r,updatedAt:a,finishedAt:a}:e);t[e]={...n,processingStatus:"failed",processingError:r,processingMessage:void 0,processingProgress:void 0,processingSteps:s,processingRevision:f(n),processingHeartbeatAt:a,updatedAt:a},i++}}return i>0&&await l(t),i})},"updateMediaAsset",0,function(e,t){return s(async()=>{let a=await d(),r=a.findIndex(t=>t.id===e);if(r<0)return;let i=a[r];return a[r]={...i,...t,documentIds:t.documentIds??i.documentIds,pendingDocumentIds:t.pendingDocumentIds??i.pendingDocumentIds,supersededDocumentIds:t.supersededDocumentIds??i.supersededDocumentIds,updatedAt:new Date().toISOString()},await l(a),a[r]})},"updateMediaStage",0,function(e,t,a){return s(async()=>{let r,i,n=await d(),s=n.findIndex(t=>t.id===e);if(s<0)return;let o=new Date().toISOString(),u=n[s],h=new Map((u.processingSteps??[]).map(e=>[e.stage,e])),w=p(o).map(e=>h.get(e.stage)??e),v=w.findIndex(e=>e.stage===t),y=w[v],R=new Set(["completed","skipped","failed"]),A=a.status??y.status,S=R.has(y.status)||"running"===y.status&&"waiting"===A?y.status:A,x=m(y.percent),E=m(a.percent),I=void 0===E?x:Math.max(x??0,E),M=g(y.current),b=g(a.current),C=void 0===b?M:Math.max(M??0,b),D=void 0===a.total?g(y.total):g(a.total);void 0!==C&&void 0!==D&&(D=Math.max(D,C))>0&&(I=Math.max(I??0,Math.min(100,C/D*100))),"completed"===S&&(I=100,void 0!==D&&(C=D));let T=R.has(S),N={...y,...a,stage:t,status:S,percent:I,current:C,total:D,startedAt:a.startedAt??y.startedAt??("running"===S||T?o:void 0),updatedAt:o,finishedAt:T?a.finishedAt??y.finishedAt??o:void 0};w[v]=N;let P=Math.max(m(u.processingProgress)??0,0===(i=(r=w.filter(e=>"skipped"!==e.status)).reduce((e,t)=>e+c[t.stage],0))?100:Math.round(r.reduce((e,t)=>e+c[t.stage]*function(e){if("completed"===e.status)return 100;if("waiting"===e.status||"skipped"===e.status)return 0;let t=m(e.percent);return void 0!==t?t:void 0!==e.current&&void 0!==e.total&&Number.isFinite(e.current)&&Number.isFinite(e.total)&&e.total>0?Math.min(100,Math.max(0,e.current/e.total*100)):0}(t)/100,0)/i*100)),O=[...w].reverse().find(e=>"running"===e.status&&e.message)?.message,U="running"===N.status?N.message??a.message??u.processingMessage:O??a.message??N.message??u.processingMessage;return n[s]={...u,processingSteps:w,processingProgress:P,processingMessage:U,processingRevision:f(u),processingHeartbeatAt:o,updatedAt:o},await l(n),n[s]})}])},941486,e=>{"use strict";var t=e.i(902157),a=e.i(750227),r=e.i(192441);class i{id="local";name="Local Storage";async mediaDir(){let e=await (0,r.requireDataDir)(),i=a.default.join(e,"media");return await t.promises.mkdir(i,{recursive:!0}),i}async store(e,r,i){let n=await this.mediaDir(),s=a.default.join(n,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.writeFile(s,r),`local://${e}`}async storeFile(e,r,i){let n=await this.mediaDir(),s=a.default.join(n,e);return await t.promises.mkdir(a.default.dirname(s),{recursive:!0}),await t.promises.copyFile(r,s),`local://${e}`}async retrieve(e){let a=await this.resolvePath(e);if(!a)throw Error(`Unsupported local storage URI: ${e}`);return t.promises.readFile(a)}async resolvePath(e){if(!e.startsWith("local://"))return;let t=e.slice(8),r=await this.mediaDir(),i=a.default.resolve(r,t),n=a.default.relative(r,i);if(n.startsWith("..")||a.default.isAbsolute(n))throw Error("Invalid local storage URI");return i}async delete(e){let r=e.replace("local://",""),i=await this.mediaDir();try{await t.promises.unlink(a.default.join(i,r))}catch{}}async stats(){try{let e=await this.mediaDir();return await n(e)}catch{return{usedBytes:0,fileCount:0}}}}async function n(e){let r=0,i=0;async function n(e){let s;try{s=await t.promises.readdir(e,{withFileTypes:!0})}catch{return}for(let o of s){let s=a.default.join(e,o.name);if(o.isDirectory())await n(s);else try{let e=await t.promises.stat(s);r+=e.size,i++}catch{}}}return await n(e),{usedBytes:r,fileCount:i}}e.s(["createStorageProvider",0,function(e){return new i}])},19496,e=>{"use strict";var t=e.i(239441),a=e.i(449055),r=e.i(391328),i=e.i(6352),n=e.i(746789),s=e.i(423437),o=e.i(178820),d=e.i(569191),l=e.i(576251),u=e.i(199962),c=e.i(547545),p=e.i(664046),g=e.i(235691),m=e.i(298907),f=e.i(110763),h=e.i(193695);e.i(673243);var w=e.i(236167),v=e.i(839554),y=e.i(941486),R=e.i(192441);let A=new TextEncoder;async function S(e,t){let a=await (0,v.readMediaAssets)(),r=e?a.filter(t=>t.type===e):a;r.sort((e,t)=>new Date(t.createdAt).getTime()-new Date(e.createdAt).getTime());let i={total:a.length,byType:{image:0,video:0,audio:0},byStatus:{pending:0,processing:0,completed:0,failed:0},totalBytes:0};for(let e of a)i.byType[e.type]++,i.byStatus[e.processingStatus]++,i.totalBytes+=e.fileSize;return{assets:r,stats:i,storage:t}}async function x(e){let t,a,r=new URL(e.url),i=r.searchParams.get("type"),n=r.searchParams.get("serverId"),s="image"===i||"video"===i||"audio"===i?i:null,o=e=>n?(0,R.runWithServer)(n,e):e();await o(()=>(0,v.recoverStaleMediaAssets)());let d=!1;return new Response(new ReadableStream({async start(e){let r="",i=!1,n={usedBytes:0,fileCount:0},l=0,u=r=>{if(!d)try{e.enqueue(r)}catch{d=!0,t&&clearInterval(t),a&&clearInterval(a)}},c=async()=>{if(!i&&!d){i=!0;try{if(Date.now()-l>3e4){try{let e=await o(()=>(0,y.createStorageProvider)().stats());n={usedBytes:e.usedBytes,fileCount:e.fileCount}}catch{}l=Date.now()}let e=await o(()=>S(s,n)),t=JSON.stringify(e);if(t!==r){r=t;let a=Math.max(0,...e.assets.map(e=>e.processingRevision??0));u(A.encode(`id: ${a}
|
|
2
2
|
event: media-update
|
|
3
|
-
data: ${
|
|
3
|
+
data: ${t}
|
|
4
4
|
|
|
5
|
-
`))}}catch{}finally{i=!1}}};await
|
|
5
|
+
`))}}catch{}finally{i=!1}}};await c(),t=setInterval(()=>void c(),1e3),a=setInterval(()=>u(A.encode(": keep-alive\n\n")),15e3)},cancel(){d=!0,t&&clearInterval(t),a&&clearInterval(a)}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"}})}e.s(["GET",0,x,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],222694);var E=e.i(222694);let I=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/media/stream/route",pathname:"/api/media/stream",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/web/app/api/media/stream/route.ts",nextConfigOutput:"standalone",userland:E,...{}}),{workAsyncStorage:M,workUnitAsyncStorage:b,serverHooks:C}=I;async function D(e,t,r){r.requestMeta&&(0,i.setRequestMeta)(e,r.requestMeta),I.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/media/stream/route";v=v.replace(/\/index$/,"")||"/";let y=await I.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:R,deploymentId:A,params:S,nextConfig:x,parsedUrl:E,isDraftMode:M,prerenderManifest:b,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:T,resolvedPathname:N,clientReferenceManifest:P,serverActionsManifest:O}=y,U=(0,o.normalizeAppPath)(v),k=!!(b.dynamicRoutes[U]||b.routes[N]),_=async()=>((null==C?void 0:C.render404)?await C.render404(e,t,E,!1):t.end("This page could not be found"),null);if(k&&!M){let e=!!b.routes[N],t=b.dynamicRoutes[U];if(t&&!1===t.fallback&&!e){if(x.adapterPath)return await _();throw new h.NoFallbackError}}let q=null;!k||I.isDev||M||(q="/index"===(q=N)?"/":q);let H=!0===I.isDev||!k,F=k&&!H;O&&P&&(0,s.setManifestsSingleton)({page:v,clientReferenceManifest:P,serverActionsManifest:O});let $=e.method||"GET",j=(0,n.getTracer)(),B=j.getActiveScopeSpan(),z=!!(null==C?void 0:C.isWrappedByNextServer),K=!!(0,i.getRequestMeta)(e,"minimalMode"),L=(0,i.getRequestMeta)(e,"incrementalCache")||await I.getIncrementalCache(e,x,b,K);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let W={params:S,previewProps:b.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:H,incrementalCache:L,cacheLifeProfiles:x.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,r,i)=>I.onRequestError(e,t,r,i,C)},sharedContext:{buildId:R,deploymentId:A}},G=new d.NodeNextRequest(e),J=new d.NodeNextResponse(t),X=l.NextRequestAdapter.fromNodeNextRequest(G,(0,l.signalFromNodeResponse)(t));try{let i,s=async e=>I.handle(X,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=j.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==u.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=a.get("next.route");if(r){let t=`${$} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",r),i.updateName(t))}else e.updateName(`${$} ${v}`)}),o=async i=>{var n,o;let d=async({previousCacheEntry:a})=>{try{if(!K&&D&&T&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(i);e.fetchMetrics=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&r.waitUntil&&(r.waitUntil(o),o=void 0);let d=W.renderOpts.collectedTags;if(!k)return await (0,p.sendResponse)(G,J,n,W.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(n.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,r=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:r}}}}catch(t){throw(null==a?void 0:a.isStale)&&await I.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:D})},!1,C),t}},l=await I.handleResponse({req:e,nextConfig:x,cacheKey:q,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:b,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:T,responseGenerator:d,waitUntil:r.waitUntil,isMinimalMode:K});if(!k)return null;if((null==l||null==(n=l.value)?void 0:n.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(o=l.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});K||t.setHeader("x-nextjs-cache",D?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),M&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,g.fromNodeOutgoingHttpHeaders)(l.value.headers);return K&&k||u.delete(f.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,m.getCacheControlHeader)(l.cacheControl)),await (0,p.sendResponse)(G,J,new Response(l.value.body,{headers:u,status:l.value.status||200})),null};z&&B?await o(B):(i=j.getActiveScopeSpan(),await j.withPropagatedContext(e.headers,()=>j.trace(u.BaseServerSpan.handleRequest,{spanName:`${$} ${v}`,kind:n.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!z))}catch(t){if(t instanceof h.NoFallbackError||await I.onRequestError(e,t,{routerKind:"App Router",routePath:U,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:F,isOnDemandRevalidate:D})},!1,C),k)throw t;return await (0,p.sendResponse)(G,J,new Response(null,{status:500})),null}}e.s(["handler",0,D,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:M,workUnitAsyncStorage:b})},"routeModule",0,I,"serverHooks",0,C,"workAsyncStorage",0,M,"workUnitAsyncStorage",0,b],19496)}];
|
|
6
6
|
|
|
7
7
|
//# sourceMappingURL=_1twj5f0._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[612069,e=>{"use strict";var a=e.i(902157),t=e.i(750227);let o=process.env.LARKUP_HUB_URL??"https://hub.larkup.de",i=null;async function n(){let e={};for(let o of[t.default.resolve(process.cwd(),"packages","tools"),t.default.resolve(process.cwd(),"..","..","packages","tools"),t.default.resolve(process.cwd(),".larkup","tools","node_modules","@larkup"),t.default.resolve(process.cwd(),"..","..",".larkup","tools","node_modules","@larkup")])try{for(let i of(await a.promises.readdir(o,{withFileTypes:!0}))){if(!i.isDirectory())continue;let n=t.default.join(o,i.name,"tool.manifest.json");try{let t=await a.promises.readFile(n,"utf8"),o=JSON.parse(t);o.id&&(e[o.id]=o)}catch{}}}catch{}return e}async function r(e){try{let a=new AbortController,t=setTimeout(()=>a.abort(),5e3),i=await fetch(`${e??o}/v1/tools`,{signal:a.signal,headers:{Accept:"application/json"}});if(clearTimeout(t),!i.ok)return{};let n=await i.json(),r={};for(let e of n.tools??[])e.id&&(r[e.id]=e);return r}catch{return{}}}let s={"video-audio":{id:"video-audio",name:"Video & Audio",description:"Index video and audio files with transcription and frame analysis.",category:"media",version:"0.2.1",pricing:"free",emoji:"🎬",icon:"Film",packageName:"@larkup/tool-video-audio",installSize:"~15 MB",systemDeps:["ffmpeg"],author:"Larkup",capabilities:["video-indexing","audio-indexing","transcription","frame-extraction","youtube-import"],tags:["transcription","ffmpeg","video","audio","whisper"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup",license:"Apache-2.0",updatedAt:"2026-07-20",configSchema:[{key:"frameInterval",label:"Frame extraction interval (seconds)",type:"text",defaultValue:"10",help:"Baseline cadence for duration-aware coverage frames; scene changes and a reserved ending pass are added separately."},{key:"audioProvider",label:"Audio Provider",type:"select",help:"Choose the provider used only for audio and video transcription.",options:[{label:"OpenAI",value:"openai"},{label:"Groq",value:"groq"},{label:"Deepgram",value:"deepgram"},{label:"ElevenLabs",value:"elevenlabs"},{label:"Local Whisper",value:"local"}]},{key:"audioLanguage",label:"Transcription language",type:"text",defaultValue:"auto",help:"Use auto to infer Arabic from the media title and use provider detection otherwise. Enter a language code such as ar, ar-EG, en, or de to override it."},{key:"audioApiKey",label:"Audio API Key",type:"password",help:"Required for the selected audio provider and kept separate from the chat model key."}]},"clip-embeddings":{id:"clip-embeddings",name:"CLIP Image Search",description:"Direct image-to-image similarity search using CLIP/SigLIP embeddings.",category:"embedding",version:"0.1.0",pricing:"free",emoji:"🔍",icon:"ScanEye",packageName:"@larkup/tool-clip-embeddings",installSize:"~200 MB",author:"Larkup",capabilities:["clip-embeddings","image-similarity"],tags:["clip","siglip","image-search","visual-similarity"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup",license:"Apache-2.0",updatedAt:"2026-07-20",comingSoon:!0},"doc-editor":{id:"doc-editor",name:"Document Editor",description:"AI-powered form filling and document editing with Canvas-style live preview.",category:"utility",version:"0.2.3",pricing:"free",emoji:"📝",icon:"FileEdit",packageName:"@larkup/tool-doc-editor",installSize:"~5 MB",systemDeps:["docker"],author:"Larkup",capabilities:["document-editing","form-filling","document-preview"],tags:["pdf","docx","pptx","form","canvas","editor","fill"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup",license:"Apache-2.0",updatedAt:"2026-07-20"}};async function l(e){if(i)return i;let a={...s};return Object.assign(a,await n()),e?.skipHub||Object.assign(a,await r(e?.hubUrl)),i=a,a}async function c(){return Object.values(await l()).sort((e,a)=>e.name.localeCompare(a.name))}async function d(e){return(await l())[e]}async function u(e){return(await c()).filter(a=>a.capabilities.includes(e))}e.s(["getAllTools",0,c,"getToolById",0,d,"getToolsWithCapability",0,u,"invalidateRegistryCache",0,function(){i=null}],612069)},463857,e=>{"use strict";var a=e.i(902157),t=e.i(750227),o=e.i(874533),i=e.i(812057),n=e.i(612069);let r=(0,i.promisify)(o.exec),s=Promise.resolve();function l(){return t.default.join(process.cwd(),".larkup","tools")}function c(){return t.default.join(l(),"installed.json")}async function d(){await a.promises.mkdir(l(),{recursive:!0})}async function u(){try{let e=await a.promises.readFile(c(),"utf8"),t=JSON.parse(e);for(let e of(t.downloadCounts||(t.downloadCounts={}),t.tools??[]))e.packagePath&&!e.packageName&&(e.packageName=e.packagePath,delete e.packagePath),e.source||(e.source="local"),e.resolvedPath||(e.resolvedPath=e.packageName);return t}catch{return{tools:[],downloadCounts:{},updatedAt:new Date().toISOString()}}}async function p(e){await d(),e.updatedAt=new Date().toISOString(),await a.promises.writeFile(c(),JSON.stringify(e,null,2),"utf8")}async function f(){return[...(await u()).tools]}async function m(e){return(await f()).some(a=>a.id===e)}async function g(e){return(await f()).find(a=>a.id===e)}async function w(){return(await u()).downloadCounts}async function h(e){let a=await (0,n.getToolById)(e);if(!a?.systemDeps?.length)return[];let t=y(),o=[];for(let e of a.systemDeps)if("docker"!==t||"docker"!==e)try{await r(`which ${e}`)}catch{o.push(e)}return o}function y(){let a=process.env.LARKUP_DEPLOYMENT_TARGET;return a&&["local","docker","serverless","sandbox"].includes(a)?a:process.env.VERCEL||process.env.AWS_LAMBDA_FUNCTION_NAME?"serverless":process.env.DOCKER_CONTAINER||function(){try{return e.r(902157).existsSync("/.dockerenv")}catch{return!1}}()?"docker":process.env.E2B_SANDBOX_ID||process.env.MODAL_TASK_ID?"sandbox":"local"}async function v(){let e=l(),o=t.default.join(e,"package.json");try{await a.promises.access(o)}catch{await d(),await a.promises.writeFile(o,JSON.stringify({name:"larkup-tools",version:"1.0.0",private:!0,description:"Isolated directory for installed Larkup marketplace tools."},null,2),"utf8")}}async function k(e,a,t,o){var i;let n;return i=()=>b(e,a,t,o),s=(n=s.then(i,i)).catch(()=>{}),n}async function b(e,o,i,n){let s=l();switch(i){case"local":case"docker":{await v();let l=async e=>{let a=`npm install ${e} --prefix "${s}" --save --no-audit --no-fund --prefer-offline`;n?.(`Running: npm install ${e}`);let{stderr:o}=await r(a,{cwd:s,timeout:"docker"===i?3e5:12e4,env:{...process.env,NODE_ENV:"production",HOME:process.env.HOME&&"/nonexistent"!==process.env.HOME?process.env.HOME:s,npm_config_cache:t.default.join(s,".npm-cache"),npm_config_update_notifier:"false"}});o&&!o.includes("npm warn")&&console.warn(`[marketplace] Install stderr: ${o}`)};try{await l(`${e}@${o}`)}catch(t){let a=t instanceof Error?t.message:"Install command failed";if(!a.includes("ETARGET")&&!a.includes("No matching version found"))throw Error(`Failed to install ${e}: ${a}`);n?.(`Catalog version ${o} is unavailable; installing the latest published version…`);try{await l(`${e}@latest`)}catch(t){let a=t instanceof Error?t.message:"Install command failed";throw Error(`Failed to install ${e}: ${a}`)}}let c=t.default.join(s,"node_modules",e);try{await a.promises.access(c)}catch{throw Error(`Package ${e} was installed but could not be found at ${c}`)}let d=JSON.parse(await a.promises.readFile(t.default.join(c,"package.json"),"utf8"));return{resolvedPath:c,version:d.version??o}}case"serverless":{n?.("Serverless environment detected — queuing for next deploy");let i=t.default.join(s,"pending-tools.json"),r={tools:[]};try{let e=await a.promises.readFile(i,"utf8");r=JSON.parse(e)}catch{}return r.tools.push({packageName:e,version:o}),await d(),await a.promises.writeFile(i,JSON.stringify(r,null,2),"utf8"),{resolvedPath:t.default.join(s,"node_modules",e),version:o}}case"sandbox":{n?.("Installing in sandbox environment"),await v();let a=`npm install ${e}@${o} --prefix "${s}" --save --no-audit --no-fund`;return await r(a,{cwd:s,timeout:12e4}),{resolvedPath:t.default.join(s,"node_modules",e),version:o}}default:throw Error(`Unsupported deployment target: ${i}`)}}async function A(e){let a=await (0,n.getToolById)(e);if(a)return a;throw Error(`Unknown tool: ${e}. Not found in local registry or Hub.`)}async function E(e){try{let{stdout:a}=await r("pnpm ls -r --depth -1 --json 2>/dev/null || true",{cwd:process.cwd(),timeout:1e4}),t=JSON.parse(a||"[]");return Array.isArray(t)&&t.some(a=>a.name===e)}catch{return!1}}async function N(e,a){let o=(t,o,i)=>{a?.({toolId:e,stage:t,percent:o,message:i})};try{let a,i;o("checking-deps",5,"Resolving tool manifest…");let r=await A(e);if(r.comingSoon)throw Error(`${r.name} is coming soon.`);o("checking-deps",15,"Checking system dependencies…");let s=await h(e);if(s.length>0){let e=`Missing system dependencies: ${s.join(", ")}. Please install them first.`;throw o("failed",0,e),Error(e)}let l=await E(r.packageName),c=y(),f=r.version;if(l){o("downloading",30,"Resolving workspace package…");try{let e=(()=>{let e=Error("Cannot find module as expression is too dynamic");throw e.code="MODULE_NOT_FOUND",e})();a=t.default.dirname(e)}catch{a=t.default.join(process.cwd(),"node_modules",r.packageName)}i="local",o("installing",60,"Workspace package resolved.")}else{o("downloading",30,`Downloading ${r.packageName}@${r.version}…`);let e=await k(r.packageName,r.version,c,e=>o("downloading",50,e));a=e.resolvedPath,f=e.version,i="sandbox"===c?"sandbox":"registry",o("installing",70,"Package installed.")}o("installing",80,"Registering tool…"),await d();let m=await u(),g=m.tools.findIndex(a=>a.id===e),w={id:e,version:f,installedAt:new Date().toISOString(),packageName:r.packageName,resolvedPath:a,source:i,config:function(e){let a={};for(let t of e.configSchema??[])void 0!==t.defaultValue&&(a[t.key]=t.defaultValue);return a}(r)};g>=0?m.tools[g]=w:m.tools.push(w),m.downloadCounts[e]=(m.downloadCounts[e]??0)+1,await p(m),O(e).catch(()=>{}),(0,n.invalidateRegistryCache)(),o("completed",100,"Installed successfully.")}catch(e){throw o("failed",0,e instanceof Error?e.message:"Installation failed."),e}}async function I(a){let t=await u(),o=t.tools.find(e=>e.id===a);if(t.tools=t.tools.filter(e=>e.id!==a),await p(t),o?.source==="registry"&&o.packageName)try{let e=l();await r(`npm uninstall ${o.packageName} --prefix "${e}"`,{cwd:e,timeout:3e4})}catch{}(0,n.invalidateRegistryCache)();let{unloadTool:i}=await e.A(484620);i(a)}async function O(e){let a=process.env.LARKUP_HUB_URL??"https://hub.larkup.de";try{let t=new AbortController,o=setTimeout(()=>t.abort(),3e3);await fetch(`${a}/v1/tools/${e}/installed`,{method:"POST",signal:t.signal,headers:{"Content-Type":"application/json"}}),clearTimeout(o)}catch{}}e.s(["getDownloadCounts",0,w,"getInstalledTool",0,g,"getInstalledTools",0,f,"installTool",0,N,"isToolInstalled",0,m,"uninstallTool",0,I])}];
|
|
1
|
+
module.exports=[612069,e=>{"use strict";var a=e.i(902157),t=e.i(750227);let o=process.env.LARKUP_HUB_URL??"https://hub.larkup.de",i=null;async function n(){let e={};for(let o of[t.default.resolve(process.cwd(),"packages","tools"),t.default.resolve(process.cwd(),"..","..","packages","tools"),t.default.resolve(process.cwd(),".larkup","tools","node_modules","@larkup"),t.default.resolve(process.cwd(),"..","..",".larkup","tools","node_modules","@larkup")])try{for(let i of(await a.promises.readdir(o,{withFileTypes:!0}))){if(!i.isDirectory())continue;let n=t.default.join(o,i.name,"tool.manifest.json");try{let t=await a.promises.readFile(n,"utf8"),o=JSON.parse(t);o.id&&(e[o.id]=o)}catch{}}}catch{}return e}async function r(e){try{let a=new AbortController,t=setTimeout(()=>a.abort(),5e3),i=await fetch(`${e??o}/v1/tools`,{signal:a.signal,headers:{Accept:"application/json"}});if(clearTimeout(t),!i.ok)return{};let n=await i.json(),r={};for(let e of n.tools??[])e.id&&(r[e.id]=e);return r}catch{return{}}}let s={"video-audio":{id:"video-audio",name:"Video & Audio",description:"Index video and audio files with transcription and frame analysis.",category:"media",version:"0.2.1",pricing:"free",emoji:"🎬",icon:"Film",packageName:"@larkup/tool-video-audio",installSize:"~15 MB",systemDeps:["ffmpeg"],author:"Larkup",capabilities:["video-indexing","audio-indexing","transcription","frame-extraction","youtube-import"],tags:["transcription","ffmpeg","video","audio","whisper"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup",license:"Apache-2.0",updatedAt:"2026-07-20",configSchema:[{key:"frameInterval",label:"Frame extraction interval (seconds)",type:"text",defaultValue:"10",help:"Baseline cadence for duration-aware coverage frames; scene changes and a reserved ending pass are added separately."},{key:"audioProvider",label:"Audio Provider",type:"select",help:"Choose the provider used only for audio and video transcription.",options:[{label:"OpenAI",value:"openai"},{label:"Groq",value:"groq"},{label:"Deepgram",value:"deepgram"},{label:"ElevenLabs",value:"elevenlabs"},{label:"Local Whisper",value:"local"}]},{key:"audioLanguage",label:"Transcription language",type:"text",defaultValue:"auto",help:"Use auto to infer Arabic from the media title and use provider detection otherwise. Enter a language code such as ar, ar-EG, en, or de to override it."},{key:"audioApiKey",label:"Audio API Key",type:"password",help:"Required for the selected audio provider and kept separate from the chat model key."}]},"clip-embeddings":{id:"clip-embeddings",name:"CLIP Image Search",description:"Direct image-to-image similarity search using CLIP/SigLIP embeddings.",category:"embedding",version:"0.1.0",pricing:"free",emoji:"🔍",icon:"ScanEye",packageName:"@larkup/tool-clip-embeddings",installSize:"~200 MB",author:"Larkup",capabilities:["clip-embeddings","image-similarity"],tags:["clip","siglip","image-search","visual-similarity"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup",license:"Apache-2.0",updatedAt:"2026-07-20",comingSoon:!0},"doc-editor":{id:"doc-editor",name:"Document Editor",description:"AI-powered form filling and document editing with Canvas-style live preview.",category:"utility",version:"0.2.3",pricing:"free",emoji:"📝",icon:"FileEdit",packageName:"@larkup/tool-doc-editor",installSize:"~5 MB",systemDeps:["docker"],author:"Larkup",capabilities:["document-editing","form-filling","document-preview"],tags:["pdf","docx","pptx","form","canvas","editor","fill"],downloads:0,repositoryUrl:"https://github.com/Larkup-AI/larkup",license:"Apache-2.0",updatedAt:"2026-07-20"}};async function l(e){if(i)return i;let a={...s};return Object.assign(a,await n()),e?.skipHub||Object.assign(a,await r(e?.hubUrl)),i=a,a}async function c(){return Object.values(await l()).sort((e,a)=>e.name.localeCompare(a.name))}async function d(e){return(await l())[e]}async function u(e){return(await c()).filter(a=>a.capabilities.includes(e))}e.s(["getAllTools",0,c,"getToolById",0,d,"getToolsWithCapability",0,u,"invalidateRegistryCache",0,function(){i=null}],612069)},463857,e=>{"use strict";var a=e.i(902157),t=e.i(750227),o=e.i(874533),i=e.i(812057),n=e.i(612069);let r=(0,i.promisify)(o.exec),s=Promise.resolve();function l(){return t.default.join(process.cwd(),".larkup","tools")}function c(){return t.default.join(l(),"installed.json")}async function d(){await a.promises.mkdir(l(),{recursive:!0})}async function u(){try{let e=await a.promises.readFile(c(),"utf8"),t=JSON.parse(e);for(let e of(t.downloadCounts||(t.downloadCounts={}),t.tools??[]))e.packagePath&&!e.packageName&&(e.packageName=e.packagePath,delete e.packagePath),e.source||(e.source="local"),e.resolvedPath||(e.resolvedPath=e.packageName);return t}catch{return{tools:[],downloadCounts:{},updatedAt:new Date().toISOString()}}}async function p(e){await d(),e.updatedAt=new Date().toISOString(),await a.promises.writeFile(c(),JSON.stringify(e,null,2),"utf8")}async function f(){return[...(await u()).tools]}async function m(e){return(await f()).some(a=>a.id===e)}async function g(e){return(await f()).find(a=>a.id===e)}async function w(){return(await u()).downloadCounts}async function h(e){let a=await (0,n.getToolById)(e);if(!a?.systemDeps?.length)return[];let t=y(),o=[];for(let e of a.systemDeps)if("docker"!==t||"docker"!==e)try{await r(`which ${e}`)}catch{o.push(e)}return o}function y(){let a=process.env.LARKUP_DEPLOYMENT_TARGET;return a&&["local","docker","serverless","sandbox"].includes(a)?a:process.env.VERCEL||process.env.AWS_LAMBDA_FUNCTION_NAME?"serverless":process.env.DOCKER_CONTAINER||function(){try{return e.r(902157).existsSync("/.dockerenv")}catch{return!1}}()?"docker":process.env.E2B_SANDBOX_ID||process.env.MODAL_TASK_ID?"sandbox":"local"}async function v(){let e=l(),o=t.default.join(e,"package.json");try{await a.promises.access(o)}catch{await d(),await a.promises.writeFile(o,JSON.stringify({name:"larkup-tools",version:"1.0.0",private:!0,description:"Isolated directory for installed Larkup marketplace tools."},null,2),"utf8")}}async function k(e,a,t,o){var i;let n;return i=()=>b(e,a,t,o),s=(n=s.then(i,i)).catch(()=>{}),n}async function b(e,o,i,n){let s=l();switch(i){case"local":case"docker":{await v();let l=async e=>{let a=`npm install ${e} --prefix "${s}" --save --no-audit --no-fund --prefer-offline`;n?.(`Running: npm install ${e}`);let{stderr:o}=await r(a,{cwd:s,timeout:"docker"===i?3e5:12e4,env:{...process.env,NODE_ENV:"production",HOME:process.env.HOME&&"/nonexistent"!==process.env.HOME?process.env.HOME:s,npm_config_cache:t.default.join(s,".npm-cache"),npm_config_update_notifier:"false"}});o&&!o.includes("npm warn")&&console.warn(`[marketplace] Install stderr: ${o}`)};try{await l(`${e}@${o}`)}catch(t){let a=t instanceof Error?t.message:"Install command failed";if(!a.includes("ETARGET")&&!a.includes("No matching version found"))throw Error(`Failed to install ${e}: ${a}`);n?.(`Catalog version ${o} is unavailable; installing the latest published version…`);try{await l(`${e}@latest`)}catch(t){let a=t instanceof Error?t.message:"Install command failed";throw Error(`Failed to install ${e}: ${a}`)}}let c=t.default.join(s,"node_modules",e);try{await a.promises.access(c)}catch{throw Error(`Package ${e} was installed but could not be found at ${c}`)}let d=JSON.parse(await a.promises.readFile(t.default.join(c,"package.json"),"utf8"));return{resolvedPath:c,version:d.version??o}}case"serverless":{n?.("Serverless environment detected — queuing for next deploy");let i=t.default.join(s,"pending-tools.json"),r={tools:[]};try{let e=await a.promises.readFile(i,"utf8");r=JSON.parse(e)}catch{}return r.tools.push({packageName:e,version:o}),await d(),await a.promises.writeFile(i,JSON.stringify(r,null,2),"utf8"),{resolvedPath:t.default.join(s,"node_modules",e),version:o}}case"sandbox":{n?.("Installing in sandbox environment"),await v();let a=`npm install ${e}@${o} --prefix "${s}" --save --no-audit --no-fund`;return await r(a,{cwd:s,timeout:12e4}),{resolvedPath:t.default.join(s,"node_modules",e),version:o}}default:throw Error(`Unsupported deployment target: ${i}`)}}async function A(e){let a=await (0,n.getToolById)(e);if(a)return a;throw Error(`Unknown tool: ${e}. Not found in local registry or Hub.`)}async function E(e){try{let e=Error("Cannot find module as expression is too dynamic");throw e.code="MODULE_NOT_FOUND",e}catch{return!1}}async function N(e,a){let o=(t,o,i)=>{a?.({toolId:e,stage:t,percent:o,message:i})};try{let a,i;o("checking-deps",5,"Resolving tool manifest…");let r=await A(e);if(r.comingSoon)throw Error(`${r.name} is coming soon.`);o("checking-deps",15,"Checking system dependencies…");let s=(await h(e)).filter(e=>"docker"!==e);if(s.length>0){let e=`Missing system dependencies: ${s.join(", ")}. Please install them first.`;throw o("failed",0,e),Error(e)}let l=await E(r.packageName),c=y(),f=r.version;if(l){o("downloading",30,"Resolving workspace package…");try{let e=(()=>{let e=Error("Cannot find module as expression is too dynamic");throw e.code="MODULE_NOT_FOUND",e})();a=t.default.dirname(e)}catch{a=t.default.join(process.cwd(),"node_modules",r.packageName)}i="local",o("installing",60,"Workspace package resolved.")}else{o("downloading",30,`Downloading ${r.packageName}@${r.version}…`);let e=await k(r.packageName,r.version,c,e=>o("downloading",50,e));a=e.resolvedPath,f=e.version,i="sandbox"===c?"sandbox":"registry",o("installing",70,"Package installed.")}o("installing",80,"Registering tool…"),await d();let m=await u(),g=m.tools.findIndex(a=>a.id===e),w={id:e,version:f,installedAt:new Date().toISOString(),packageName:r.packageName,resolvedPath:a,source:i,config:function(e){let a={};for(let t of e.configSchema??[])void 0!==t.defaultValue&&(a[t.key]=t.defaultValue);return a}(r)};g>=0?m.tools[g]=w:m.tools.push(w),m.downloadCounts[e]=(m.downloadCounts[e]??0)+1,await p(m),O(e).catch(()=>{}),(0,n.invalidateRegistryCache)(),o("completed",100,"Installed successfully.")}catch(e){throw o("failed",0,e instanceof Error?e.message:"Installation failed."),e}}async function I(a){let t=await u(),o=t.tools.find(e=>e.id===a);if(t.tools=t.tools.filter(e=>e.id!==a),await p(t),o?.source==="registry"&&o.packageName)try{let e=l();await r(`npm uninstall ${o.packageName} --prefix "${e}"`,{cwd:e,timeout:3e4})}catch{}(0,n.invalidateRegistryCache)();let{unloadTool:i}=await e.A(484620);i(a)}async function O(e){let a=process.env.LARKUP_HUB_URL??"https://hub.larkup.de";try{let t=new AbortController,o=setTimeout(()=>t.abort(),3e3);await fetch(`${a}/v1/tools/${e}/installed`,{method:"POST",signal:t.signal,headers:{"Content-Type":"application/json"}}),clearTimeout(o)}catch{}}e.s(["getDownloadCounts",0,w,"getInstalledTool",0,g,"getInstalledTools",0,f,"installTool",0,N,"isToolInstalled",0,m,"uninstallTool",0,I])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=packages_marketplace_src_125_g2p._.js.map
|
|
@@ -56,6 +56,6 @@ ${i}
|
|
|
56
56
|
environment:
|
|
57
57
|
${n}
|
|
58
58
|
restart: unless-stopped
|
|
59
|
-
`}async function b(){if(!T())return y({running:!0,endpoint:"native://larkup-crawler",apiKey:"native",port:0,project:"native",mode:"native",startedAt:new Date().toISOString(),lastError:void 0});let e=await S();if(!e.compose)return y({...await g(),running:!1,lastError:e.message});let{compose:a}=await v(),n=await g(),o=n.apiKey||`fc-local-${(0,i.randomUUID)()}`,s=n.port||3002,l=await h();await t.promises.mkdir(r.default.dirname(p),{recursive:!0}),await t.promises.writeFile(p,k(o,s,l),"utf8");try{await c(`${a} -p ${w} -f "${p}" up -d`,18e4)}catch(r){let e=r instanceof Error?r.message:"docker compose failed";if(!(e.includes("address already in use")||e.includes("Ports are not available")))return y({...n,apiKey:o,port:s,running:!1,lastError:e});try{s=await m(s+1),await t.promises.writeFile(p,k(o,s,l),"utf8"),await c(`${a} -p ${w} -f "${p}" up -d`,18e4)}catch(e){return y({...n,apiKey:o,port:s,running:!1,lastError:e instanceof Error?e.message:"docker compose retry failed"})}}let u=(0,t.existsSync)("/.dockerenv"),d=`http://${u?"host.docker.internal":"localhost"}:${s}`,f=await U(d,9e4);return y({running:f,endpoint:d,apiKey:o,port:s,project:w,mode:"firecrawl",startedAt:new Date().toISOString(),lastError:f?void 0:"Containers started but the API did not become healthy in time. It may still be warming up — try refreshing in a moment."})}async function E(){let e=await g();if("native"===e.mode)return y({...e,running:!1,startedAt:void 0});let{compose:t}=await v();if(t)try{await c(`${t} -p ${w} -f "${p}" down`,6e4)}catch{}return y({...e,running:!1,startedAt:void 0})}async function R(){let e=await g();if("native"===e.mode||!e.startedAt)return e;let t=await A(e.endpoint);return t!==e.running?y({...e,running:t}):e}async function A(e){try{return(await fetch(e,{method:"GET",signal:AbortSignal.timeout(4e3)})).status>0}catch{return!1}}async function U(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(await A(e))return!0;await new Promise(e=>setTimeout(e,3e3))}return!1}function T(){return"true"===process.env.DOCKER_ENV||"1"===process.env.DOCKER_BUILD||(0,t.existsSync)("/.dockerenv")}let $="http://firecrawl-api:3002";async function D(){return T()?{available:await A($),endpoint:$}:{available:!1,endpoint:""}}async function L(){let{available:e}=await D();return e?y({running:!0,endpoint:$,apiKey:`fc-docker-${(0,i.randomUUID)()}`,port:3002,project:"docker-sibling",mode:"firecrawl",startedAt:new Date().toISOString()}):y({...f,running:!1,lastError:"The web crawler service is not available in this Docker deployment."})}e.s(["checkDocker",0,S,"checkDockerSibling",0,D,"connectDockerSibling",0,L,"readLocalState",0,g,"refreshLocalStatus",0,R,"startLocal",0,b,"stopLocal",0,E])},304368,e=>{"use strict";var t=e.i(367165),r=e.i(700259),a=e.i(902157),i=e.i(750227),n=e.i(666680);let o=i.default.join(process.cwd(),".larkup"),s=i.default.join(o,"native-crawls.json");async function l(){try{return JSON.parse(await a.promises.readFile(s,"utf8"))}catch{return{}}}async function c(e){await a.promises.mkdir(o,{recursive:!0}),await a.promises.writeFile(s,JSON.stringify(e,null,2),"utf8")}function u(e){return e.replace(/ /gi," ").replace(/&/gi,"&").replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/'/gi,"'").replace(/&#(x[0-9a-f]+|\d+);/gi,(e,t)=>{let r=String(t).toLowerCase().startsWith("x")?parseInt(String(t).slice(1),16):parseInt(String(t),10);return Number.isFinite(r)?String.fromCodePoint(r):""})}function d(e){try{let t=new URL(e);if(!/^https?:$/.test(t.protocol))return null;return t.hash="",t.toString()}catch{return null}}async function p(e){let t,r=await fetch(e,{headers:{"User-Agent":"LarkupCrawler/1.0 (+https://larkup.de)",Accept:"text/html,application/xhtml+xml"},redirect:"follow",signal:AbortSignal.timeout(2e4)});if(!r.ok)throw Error(`Website returned ${r.status} ${r.statusText}`);let a=r.headers.get("content-type")??"";if(!/text\/html|application\/xhtml\+xml/i.test(a))throw Error(`Unsupported page type: ${a||"unknown"}`);let i=(await r.text()).slice(0,2e6),n=d(r.url)??e,o=u(i.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi," ").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi," ").replace(/<noscript\b[^>]*>[\s\S]*?<\/noscript>/gi," ").replace(/<(br|\/p|\/div|\/li|\/h[1-6]|\/tr|\/section|\/article)\b[^>]*>/gi,"\n").replace(/<[^>]+>/g," ")).replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/\n\s*\n\s*\n+/g,"\n\n").replace(/\s+([.,;:!?])/g,"$1").trim();if(!o)throw Error("The page did not contain readable HTML text.");return{url:n,title:(t=i.match(/<title[^>]*>([\s\S]*?)<\/title>/i))&&u(t[1].replace(/<[^>]+>/g," ").trim())||n,markdown:o,links:function(e,t,r){let a=new Set;for(let i of e.matchAll(/<a\s[^>]*?href\s*=\s*["']([^"'#]+)["']/gi)){let e=d(new URL(i[1],t).toString());e&&new URL(e).origin===r&&a.add(e)}return[...a]}(i,n,new URL(n).origin)}}async function w(e,t){let r=d(e);if(!r)throw Error("A valid http or https URL is required.");let a=`native-${(0,n.randomUUID)()}`,i=await l();return i[a]={id:a,origin:new URL(r).origin,limit:Math.max(1,t),queue:[r],visited:[],pages:[],delivered:0},await c(i),a}async function m(e){let t=await l(),r=t[e];if(!r)throw Error("Native crawl was not found.");if(r.cancelled)return{state:"cancelled",total:r.limit,completed:r.pages.length,pages:[]};for(let e=0;e<2&&r.queue.length&&r.pages.length<r.limit;e++){let e=r.queue.shift();if(!r.visited.includes(e)){r.visited.push(e);try{let t=await p(e);for(let e of(r.pages.push(t),t.links??[]))new URL(e).origin===r.origin&&(r.visited.includes(e)||r.queue.includes(e)||r.queue.push(e))}catch{}}}let a=r.pages.slice(r.delivered).map(({links:e,...t})=>t);r.delivered=r.pages.length;let i=!r.queue.length||r.pages.length>=r.limit;return await c(t),{state:i?"completed":"scraping",total:r.limit,completed:r.pages.length,pages:a}}async function h(e){let t=await l();t[e]&&(t[e].cancelled=!0,await c(t))}class f extends Error{status;constructor(e,t){super(e),this.status=t,this.name="FirecrawlError"}}async function g(){let e=await (0,t.readConfig)();if("local"===(e.webCrawlerProvider||"local")){let e=await (0,r.readLocalState)();if(e.running&&e.apiKey)return"native"===e.mode||e.endpoint.startsWith("native://")?{base:e.endpoint,key:e.apiKey,mode:"native"}:{base:`${e.endpoint}/v1`,key:e.apiKey,mode:"local"};throw new f("The selected web crawler is not running. Choose a crawler provider in Settings.",401)}let a=e.firecrawlApiKey;if(a)return{base:"https://api.firecrawl.dev/v1",key:a,mode:"cloud"};throw new f("The cloud web crawler needs an API key. Add it in Settings.",401)}async function y(){let e=await (0,t.readConfig)();if("local"===(e.webCrawlerProvider||"local")){let e=await (0,r.readLocalState)();return!!(e.running&&e.apiKey)}return!!e.firecrawlApiKey}async function v(e,t){let{base:r,key:a}=await g(),i=await fetch(`${r}${e}`,{...t,headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json",...t?.headers??{}},cache:"no-store"}),n=await i.text(),o=n?k(n):{};if(!i.ok)throw new f(o?.error||`Firecrawl request failed (${i.status})`,i.status);return o}async function S(e){let{key:t}=await g(),r=await fetch(e,{headers:{Authorization:`Bearer ${t}`},cache:"no-store"}),a=await r.text(),i=a?k(a):{};if(!r.ok)throw new f(i?.error||`Firecrawl request failed (${r.status})`,r.status);return i}function k(e){try{return JSON.parse(e)}catch{return{}}}async function b(e,t=10){return((await v("/search",{method:"POST",body:JSON.stringify({query:e,limit:t})})).data??[]).map(e=>({url:e.url,title:e.title||e.url,description:e.description}))}let E={waitFor:1e4,onlyMainContent:!1,headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36","Accept-Language":"en-US,en;q=0.9","Sec-Ch-Ua":'"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"Windows"'}};async function R(e){if("native"===(await g()).mode){let t=await p(e);return{url:t.url,title:t.title,markdown:t.markdown}}let t=(await v("/scrape",{method:"POST",body:JSON.stringify({url:e,formats:["markdown"],...E})})).data??{};return{url:t.metadata?.sourceURL||e,title:t.metadata?.title||t.metadata?.ogTitle||e,markdown:t.markdown??""}}async function A(e,t){if("native"===(await g()).mode)return w(e,t);let r=await v("/crawl",{method:"POST",body:JSON.stringify({url:e,limit:t,allowExternalLinks:!1,scrapeOptions:{...E,formats:["markdown"],onlyMainContent:!0}})});if(!r.id)throw new f("Firecrawl did not return a crawl id");return r.id}async function U(e,t=!1){if(!t&&e.startsWith("native-"))return m(e);let r=t?await S(e):await v(`/crawl/${e}`,{method:"GET"});return{state:r.status??"scraping",total:r.total??0,completed:r.completed??0,next:r.next,pages:(r.data??[]).map(e=>({url:e.metadata?.sourceURL||e.metadata?.url||"",title:e.metadata?.title||e.metadata?.sourceURL||"Untitled",markdown:e.markdown??""}))}}async function T(e){if(e.startsWith("native-"))return void await h(e);try{await v(`/crawl/${e}`,{method:"DELETE"})}catch{}}e.s(["FirecrawlError",0,f,"cancelCrawl",0,T,"getCrawlStatus",0,U,"isFirecrawlConfigured",0,y,"scrapePage",0,R,"searchWeb",0,b,"startCrawl",0,A],304368)}];
|
|
59
|
+
`}async function b(){if(!$())return y({running:!0,endpoint:"native://larkup-crawler",apiKey:"native",port:0,project:"native",mode:"native",startedAt:new Date().toISOString(),lastError:void 0});let e=await S();if(!e.compose)return y({...await g(),running:!1,lastError:e.message});let{compose:a}=await v(),n=await g(),o=n.apiKey||`fc-local-${(0,i.randomUUID)()}`,s=n.port||3002,l=await h();await t.promises.mkdir(r.default.dirname(p),{recursive:!0}),await t.promises.writeFile(p,k(o,s,l),"utf8");try{await c(`${a} -p ${w} -f "${p}" up -d`,18e4)}catch(r){let e=r instanceof Error?r.message:"docker compose failed";if(!(e.includes("address already in use")||e.includes("Ports are not available")))return y({...n,apiKey:o,port:s,running:!1,lastError:e});try{s=await m(s+1),await t.promises.writeFile(p,k(o,s,l),"utf8"),await c(`${a} -p ${w} -f "${p}" up -d`,18e4)}catch(e){return y({...n,apiKey:o,port:s,running:!1,lastError:e instanceof Error?e.message:"docker compose retry failed"})}}let u=(0,t.existsSync)("/.dockerenv"),d=`http://${u?"host.docker.internal":"localhost"}:${s}`,f=await U(d,9e4);return y({running:f,endpoint:d,apiKey:o,port:s,project:w,mode:"firecrawl",startedAt:new Date().toISOString(),lastError:f?void 0:"Containers started but the API did not become healthy in time. It may still be warming up — try refreshing in a moment."})}async function E(){let e=await g();if("native"===e.mode)return y({...e,running:!1,startedAt:void 0});let{compose:t}=await v();if(t)try{await c(`${t} -p ${w} -f "${p}" down`,6e4)}catch{}return y({...e,running:!1,startedAt:void 0})}async function A(){let e=await g();if("native"===e.mode||!e.startedAt)return e;let t=await R(e.endpoint);return t!==e.running?y({...e,running:t}):e}async function R(e){try{return(await fetch(e,{method:"GET",signal:AbortSignal.timeout(4e3)})).status>0}catch{return!1}}async function U(e,t){let r=Date.now()+t;for(;Date.now()<r;){if(await R(e))return!0;await new Promise(e=>setTimeout(e,3e3))}return!1}function $(){return"true"===process.env.DOCKER_ENV||"1"===process.env.DOCKER_BUILD||(0,t.existsSync)("/.dockerenv")}let T="http://firecrawl-api:3002";async function x(){return $()?{available:await R(T),endpoint:T}:{available:!1,endpoint:""}}async function D(){let{available:e}=await x();return e?y({running:!0,endpoint:T,apiKey:`fc-docker-${(0,i.randomUUID)()}`,port:3002,project:"docker-sibling",mode:"firecrawl",startedAt:new Date().toISOString()}):y({...f,running:!1,lastError:"The web crawler service is not available in this Docker deployment."})}e.s(["checkDocker",0,S,"checkDockerSibling",0,x,"connectDockerSibling",0,D,"readLocalState",0,g,"refreshLocalStatus",0,A,"startLocal",0,b,"stopLocal",0,E])},304368,e=>{"use strict";var t=e.i(367165),r=e.i(700259),a=e.i(902157),i=e.i(750227),n=e.i(666680);let o=i.default.join(process.cwd(),".larkup"),s=i.default.join(o,"native-crawls.json"),l="LarkupCrawler/1.0 (+https://larkup.de)";async function c(){try{return JSON.parse(await a.promises.readFile(s,"utf8"))}catch{return{}}}async function u(e){await a.promises.mkdir(o,{recursive:!0}),await a.promises.writeFile(s,JSON.stringify(e,null,2),"utf8")}function d(e){return e.replace(/ /gi," ").replace(/&/gi,"&").replace(/</gi,"<").replace(/>/gi,">").replace(/"/gi,'"').replace(/'/gi,"'").replace(/&#(x[0-9a-f]+|\d+);/gi,(e,t)=>{let r=String(t).toLowerCase().startsWith("x")?parseInt(String(t).slice(1),16):parseInt(String(t),10);return Number.isFinite(r)?String.fromCodePoint(r):""})}function p(e){return d(e.replace(/<[^>]+>/g," ")).replace(/\s+/g," ").trim()}function w(e){try{let t=new URL(d(e));return f(t.searchParams.get("uddg")||t.toString())}catch{return null}}async function m(e,t=10){let r=Math.max(1,Math.min(t,25)),a={"User-Agent":l,Accept:"text/html,application/xhtml+xml","Accept-Language":"en-US,en;q=0.9"};try{let t=await fetch(`https://search.brave.com/search?q=${encodeURIComponent(e)}&source=web`,{headers:a,redirect:"follow",signal:AbortSignal.timeout(2e4)});if(t.ok){let e=function(e,t){let r=[],a=new Set;for(let i of e.matchAll(/<a\b[^>]*href=["']([^"']+)["'][^>]*class=["'][^"']*\bl1\b[^"']*["'][^>]*>([\s\S]*?)<\/a>/gi)){let e=w(i[1]);if(!e||a.has(e))continue;a.add(e);let n=i[2].match(/\btitle=["']([^"']+)["']/i);if(r.push({url:e,title:p(n?.[1]||i[2])||e}),r.length>=t)break}return r}(await t.text(),r);if(e.length)return e}}catch{}let i=await fetch(`https://www.bing.com/search?format=rss&q=${encodeURIComponent(e)}`,{headers:{...a,Accept:"application/rss+xml,application/xml,text/xml"},signal:AbortSignal.timeout(2e4)});if(!i.ok)throw Error(`Built-in web search returned ${i.status}.`);let n=function(e,t){let r=[],a=new Set;for(let i of e.matchAll(/<item>([\s\S]*?)<\/item>/gi)){let e=w(h(i[1],"link")??"");if(!(!e||a.has(e))&&(a.add(e),r.push({url:e,title:p(h(i[1],"title")??e),description:p(h(i[1],"description")??"")||void 0}),r.length>=t))break}return r}(await i.text(),r);if(!n.length)throw Error("Built-in web search returned no usable results.");return n}function h(e,t){return e.match(RegExp(`<${t}>([\\s\\S]*?)<\\/${t}>`,"i"))?.[1]}function f(e){try{let t=new URL(e);if(!/^https?:$/.test(t.protocol))return null;return t.hash="",t.toString()}catch{return null}}async function g(e){let t,r=await fetch(e,{headers:{"User-Agent":l,Accept:"text/html,application/xhtml+xml"},redirect:"follow",signal:AbortSignal.timeout(2e4)});if(!r.ok)throw Error(`Website returned ${r.status} ${r.statusText}`);let a=r.headers.get("content-type")??"";if(!/text\/html|application\/xhtml\+xml/i.test(a))throw Error(`Unsupported page type: ${a||"unknown"}`);let i=(await r.text()).slice(0,2e6),n=f(r.url)??e,o=d(i.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi," ").replace(/<style\b[^>]*>[\s\S]*?<\/style>/gi," ").replace(/<noscript\b[^>]*>[\s\S]*?<\/noscript>/gi," ").replace(/<(br|\/p|\/div|\/li|\/h[1-6]|\/tr|\/section|\/article)\b[^>]*>/gi,"\n").replace(/<[^>]+>/g," ")).replace(/\r/g,"").replace(/[ \t]+/g," ").replace(/\n\s*\n\s*\n+/g,"\n\n").replace(/\s+([.,;:!?])/g,"$1").trim();if(!o)throw Error("The page did not contain readable HTML text.");return{url:n,title:(t=i.match(/<title[^>]*>([\s\S]*?)<\/title>/i))&&d(t[1].replace(/<[^>]+>/g," ").trim())||n,markdown:o,links:function(e,t,r){let a=new Set;for(let i of e.matchAll(/<a\s[^>]*?href\s*=\s*["']([^"'#]+)["']/gi)){let e=f(new URL(i[1],t).toString());e&&new URL(e).origin===r&&a.add(e)}return[...a]}(i,n,new URL(n).origin)}}async function y(e,t){let r=f(e);if(!r)throw Error("A valid http or https URL is required.");let a=`native-${(0,n.randomUUID)()}`,i=await c();return i[a]={id:a,origin:new URL(r).origin,limit:Math.max(1,t),queue:[r],visited:[],pages:[],delivered:0},await u(i),a}async function v(e){let t=await c(),r=t[e];if(!r)throw Error("Native crawl was not found.");if(r.cancelled)return{state:"cancelled",total:r.limit,completed:r.pages.length,pages:[]};for(let e=0;e<2&&r.queue.length&&r.pages.length<r.limit;e++){let e=r.queue.shift();if(!r.visited.includes(e)){r.visited.push(e);try{let t=await g(e);for(let e of(r.pages.push(t),t.links??[]))new URL(e).origin===r.origin&&(r.visited.includes(e)||r.queue.includes(e)||r.queue.push(e))}catch{}}}let a=r.pages.slice(r.delivered).map(({links:e,...t})=>t);r.delivered=r.pages.length;let i=!r.queue.length||r.pages.length>=r.limit;return await u(t),{state:i?"completed":"scraping",total:r.limit,completed:r.pages.length,pages:a}}async function S(e){let t=await c();t[e]&&(t[e].cancelled=!0,await u(t))}class k extends Error{status;constructor(e,t){super(e),this.status=t,this.name="FirecrawlError"}}async function b(){let e=await (0,t.readConfig)();if("local"===(e.webCrawlerProvider||"local")){let e=await (0,r.readLocalState)();if(e.running&&e.apiKey)return"native"===e.mode||e.endpoint.startsWith("native://")?{base:e.endpoint,key:e.apiKey,mode:"native"}:{base:`${e.endpoint}/v1`,key:e.apiKey,mode:"local"};throw new k("The selected web crawler is not running. Choose a crawler provider in Settings.",401)}let a=e.firecrawlApiKey;if(a)return{base:"https://api.firecrawl.dev/v1",key:a,mode:"cloud"};throw new k("The cloud web crawler needs an API key. Add it in Settings.",401)}async function E(){let e=await (0,t.readConfig)();if("local"===(e.webCrawlerProvider||"local")){let e=await (0,r.readLocalState)();return!!(e.running&&e.apiKey)}return!!e.firecrawlApiKey}async function A(e,t){let{base:r,key:a}=await b(),i=await fetch(`${r}${e}`,{...t,headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json",...t?.headers??{}},cache:"no-store"}),n=await i.text(),o=n?U(n):{};if(!i.ok)throw new k(o?.error||`Firecrawl request failed (${i.status})`,i.status);return o}async function R(e){let{key:t}=await b(),r=await fetch(e,{headers:{Authorization:`Bearer ${t}`},cache:"no-store"}),a=await r.text(),i=a?U(a):{};if(!r.ok)throw new k(i?.error||`Firecrawl request failed (${r.status})`,r.status);return i}function U(e){try{return JSON.parse(e)}catch{return{}}}async function $(e,t=10){return"native"===(await b()).mode?m(e,t):((await A("/search",{method:"POST",body:JSON.stringify({query:e,limit:t})})).data??[]).map(e=>({url:e.url,title:e.title||e.url,description:e.description}))}let T={waitFor:1e4,onlyMainContent:!1,headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36","Accept-Language":"en-US,en;q=0.9","Sec-Ch-Ua":'"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"Windows"'}};async function x(e){if("native"===(await b()).mode){let t=await g(e);return{url:t.url,title:t.title,markdown:t.markdown}}let t=(await A("/scrape",{method:"POST",body:JSON.stringify({url:e,formats:["markdown"],...T})})).data??{};return{url:t.metadata?.sourceURL||e,title:t.metadata?.title||t.metadata?.ogTitle||e,markdown:t.markdown??""}}async function D(e,t){if("native"===(await b()).mode)return y(e,t);let r=await A("/crawl",{method:"POST",body:JSON.stringify({url:e,limit:t,allowExternalLinks:!1,scrapeOptions:{...T,formats:["markdown"],onlyMainContent:!0}})});if(!r.id)throw new k("Firecrawl did not return a crawl id");return r.id}async function L(e,t=!1){if(!t&&e.startsWith("native-"))return v(e);let r=t?await R(e):await A(`/crawl/${e}`,{method:"GET"});return{state:r.status??"scraping",total:r.total??0,completed:r.completed??0,next:r.next,pages:(r.data??[]).map(e=>({url:e.metadata?.sourceURL||e.metadata?.url||"",title:e.metadata?.title||e.metadata?.sourceURL||"Untitled",markdown:e.markdown??""}))}}async function C(e){if(e.startsWith("native-"))return void await S(e);try{await A(`/crawl/${e}`,{method:"DELETE"})}catch{}}e.s(["FirecrawlError",0,k,"cancelCrawl",0,C,"getCrawlStatus",0,L,"isFirecrawlConfigured",0,E,"scrapePage",0,x,"searchWeb",0,$,"startCrawl",0,D],304368)}];
|
|
60
60
|
|
|
61
61
|
//# sourceMappingURL=packages_scraper_src_0kkcv_v._.js.map
|