constellai 0.3.7 → 0.3.9
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 +6 -6
- package/.next/next-minimal-server.js.nft.json +1 -1
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +6 -6
- package/.next/server/app/(app)/activity/page.js +2 -2
- package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
- package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/agents/[handle]/page.js +3 -3
- package/.next/server/app/(app)/agents/[handle]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/agents/[handle]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/code/page.js +2 -2
- package/.next/server/app/(app)/code/page.js.nft.json +1 -1
- package/.next/server/app/(app)/code/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/config/page.js +2 -2
- package/.next/server/app/(app)/config/page.js.nft.json +1 -1
- package/.next/server/app/(app)/config/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/costs/page.js +2 -2
- package/.next/server/app/(app)/costs/page.js.nft.json +1 -1
- package/.next/server/app/(app)/costs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/cron/page.js +2 -2
- package/.next/server/app/(app)/cron/page.js.nft.json +1 -1
- package/.next/server/app/(app)/cron/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/dashboard/page.js +2 -2
- package/.next/server/app/(app)/dashboard/page.js.nft.json +1 -1
- package/.next/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/design/page.js +14 -14
- package/.next/server/app/(app)/design/page.js.nft.json +1 -1
- package/.next/server/app/(app)/design/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/docs/[id]/page.js +2 -2
- package/.next/server/app/(app)/docs/[id]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/docs/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/docs/page.js +2 -2
- package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
- package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/github/page.js +2 -2
- package/.next/server/app/(app)/github/page.js.nft.json +1 -1
- package/.next/server/app/(app)/github/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/goals/page.js +2 -2
- package/.next/server/app/(app)/goals/page.js.nft.json +1 -1
- package/.next/server/app/(app)/goals/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/inbox/page.js +2 -2
- package/.next/server/app/(app)/inbox/page.js.nft.json +1 -1
- package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/knowledge/page.js +3 -3
- package/.next/server/app/(app)/knowledge/page.js.nft.json +1 -1
- package/.next/server/app/(app)/knowledge/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/models/page.js +2 -2
- package/.next/server/app/(app)/models/page.js.nft.json +1 -1
- package/.next/server/app/(app)/models/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/notifications/page.js +2 -2
- package/.next/server/app/(app)/notifications/page.js.nft.json +1 -1
- package/.next/server/app/(app)/notifications/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/org/page.js +4 -4
- package/.next/server/app/(app)/org/page.js.nft.json +1 -1
- package/.next/server/app/(app)/org/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/organizations/page.js +2 -2
- package/.next/server/app/(app)/organizations/page.js.nft.json +1 -1
- package/.next/server/app/(app)/organizations/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/page.js +3 -3
- package/.next/server/app/(app)/page.js.nft.json +1 -1
- package/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/planner/page.js +3 -3
- package/.next/server/app/(app)/planner/page.js.nft.json +1 -1
- package/.next/server/app/(app)/planner/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/plugins/page.js +2 -2
- package/.next/server/app/(app)/plugins/page.js.nft.json +1 -1
- package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/pm/page.js +2 -2
- package/.next/server/app/(app)/pm/page.js.nft.json +1 -1
- package/.next/server/app/(app)/pm/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/prepare-deploy/page.js +3 -3
- package/.next/server/app/(app)/prepare-deploy/page.js.nft.json +1 -1
- package/.next/server/app/(app)/prepare-deploy/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/profile/page.js +2 -2
- package/.next/server/app/(app)/profile/page.js.nft.json +1 -1
- package/.next/server/app/(app)/profile/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/pulse/page.js +2 -2
- package/.next/server/app/(app)/pulse/page.js.nft.json +1 -1
- package/.next/server/app/(app)/pulse/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/reports/[id]/page.js +3 -3
- package/.next/server/app/(app)/reports/[id]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/reports/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/reports/page.js +3 -3
- package/.next/server/app/(app)/reports/page.js.nft.json +1 -1
- package/.next/server/app/(app)/reports/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/routines/page.js +2 -2
- package/.next/server/app/(app)/routines/page.js.nft.json +1 -1
- package/.next/server/app/(app)/routines/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/search/page.js +2 -2
- package/.next/server/app/(app)/search/page.js.nft.json +1 -1
- package/.next/server/app/(app)/search/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/security/page.js +2 -2
- package/.next/server/app/(app)/security/page.js.nft.json +1 -1
- package/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/skills/page.js +3 -3
- package/.next/server/app/(app)/skills/page.js.nft.json +1 -1
- package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/tasks/page.js +2 -2
- package/.next/server/app/(app)/tasks/page.js.nft.json +1 -1
- package/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/test-dev/page.js +2 -2
- package/.next/server/app/(app)/test-dev/page.js.nft.json +1 -1
- package/.next/server/app/(app)/test-dev/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/update/page.js +3 -3
- package/.next/server/app/(app)/update/page.js.nft.json +1 -1
- package/.next/server/app/(app)/update/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(auth)/login/page.js +2 -2
- package/.next/server/app/(auth)/login/page.js.nft.json +1 -1
- package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(auth)/onboarding/page.js +2 -2
- package/.next/server/app/(auth)/onboarding/page.js.nft.json +1 -1
- package/.next/server/app/(auth)/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error/page.js +3 -3
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +8 -8
- package/.next/server/app/_global-error.segments/_full.segment.rsc +8 -8
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +3 -3
- package/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/.next/server/app/_global-error.segments/_index.segment.rsc +4 -4
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/[...all]/route.js +1 -1
- package/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -1
- package/.next/server/app/api/cron/tick/route.js +5 -5
- package/.next/server/app/api/cron/tick/route.js.nft.json +1 -1
- package/.next/server/app/api/health/route.js +1 -1
- package/.next/server/app/api/health/route.js.nft.json +1 -1
- package/.next/server/app/api/locks/acquire/route.js +1 -1
- package/.next/server/app/api/locks/acquire/route.js.nft.json +1 -1
- package/.next/server/app/api/models/progress/route.js +1 -1
- package/.next/server/app/api/models/progress/route.js.nft.json +1 -1
- package/.next/server/app/api/passkey/authenticate/options/route.js +1 -1
- package/.next/server/app/api/passkey/authenticate/options/route.js.nft.json +1 -1
- package/.next/server/app/api/passkey/authenticate/verify/route.js +1 -1
- package/.next/server/app/api/passkey/authenticate/verify/route.js.nft.json +1 -1
- package/.next/server/app/api/passkey/register/options/route.js +1 -1
- package/.next/server/app/api/passkey/register/options/route.js.nft.json +1 -1
- package/.next/server/app/api/passkey/register/verify/route.js +1 -1
- package/.next/server/app/api/passkey/register/verify/route.js.nft.json +1 -1
- package/.next/server/app/api/stream/route.js +2 -2
- package/.next/server/app/api/stream/route.js.nft.json +1 -1
- package/.next/server/app/api/sync/file/route.js +2 -2
- package/.next/server/app/api/sync/file/route.js.nft.json +1 -1
- package/.next/server/app/api/telegram/poll/route.js +19 -19
- package/.next/server/app/api/telegram/poll/route.js.nft.json +1 -1
- package/.next/server/app/api/upload/route.js +1 -1
- package/.next/server/app/api/upload/route.js.nft.json +1 -1
- package/.next/server/app/api/v1/[[...path]]/route.js +1 -1
- package/.next/server/app/api/v1/[[...path]]/route.js.nft.json +1 -1
- package/.next/server/chunks/1033.js +14 -0
- package/.next/server/chunks/1190.js +12 -0
- package/.next/server/chunks/1243.js +1 -0
- package/.next/server/chunks/{6719.js → 1304.js} +1 -1
- package/.next/server/chunks/1952.js +1 -0
- package/.next/server/chunks/{8561.js → 1986.js} +2 -2
- package/.next/server/chunks/2118.js +869 -0
- package/.next/server/chunks/2323.js +1 -0
- package/.next/server/chunks/{7336.js → 2392.js} +1 -1
- package/.next/server/chunks/2559.js +479 -0
- package/.next/server/chunks/26.js +1 -0
- package/.next/server/chunks/{5278.js → 3140.js} +1 -1
- package/.next/server/chunks/{6479.js → 3172.js} +1 -1
- package/.next/server/chunks/3205.js +1 -0
- package/.next/server/chunks/{9160.js → 3481.js} +176 -176
- package/.next/server/chunks/{4979.js → 3987.js} +4 -4
- package/.next/server/chunks/404.js +1 -0
- package/.next/server/chunks/415.js +1 -0
- package/.next/server/chunks/4288.js +1 -0
- package/.next/server/chunks/{2599.js → 4411.js} +1 -1
- package/.next/server/chunks/4435.js +1 -0
- package/.next/server/chunks/{7912.js → 4561.js} +1 -1
- package/.next/server/chunks/4587.js +1 -0
- package/.next/server/chunks/4679.js +462 -1
- package/.next/server/chunks/4732.js +1 -0
- package/.next/server/chunks/4769.js +1 -0
- package/.next/server/chunks/4882.js +2 -0
- package/.next/server/chunks/4897.js +15 -0
- package/.next/server/chunks/5015.js +15 -0
- package/.next/server/chunks/{658.js → 5361.js} +3 -3
- package/.next/server/chunks/5557.js +1 -0
- package/.next/server/chunks/{2517.js → 5593.js} +1 -1
- package/.next/server/chunks/5661.js +1 -0
- package/.next/server/chunks/5802.js +1 -0
- package/.next/server/chunks/5878.js +1 -0
- package/.next/server/chunks/5911.js +18 -0
- package/.next/server/chunks/6083.js +1 -0
- package/.next/server/chunks/{4302.js → 6121.js} +13 -13
- package/.next/server/chunks/6309.js +1 -0
- package/.next/server/chunks/6585.js +1 -0
- package/.next/server/chunks/{3243.js → 6778.js} +2 -2
- package/.next/server/chunks/6807.js +1 -0
- package/.next/server/chunks/{1388.js → 6948.js} +1 -1
- package/.next/server/chunks/{1591.js → 699.js} +2 -2
- package/.next/server/chunks/7109.js +1 -0
- package/.next/server/chunks/714.js +1 -0
- package/.next/server/chunks/7348.js +4 -0
- package/.next/server/chunks/739.js +1 -0
- package/.next/server/chunks/7474.js +1 -0
- package/.next/server/chunks/{7037.js → 7677.js} +1 -1
- package/.next/server/chunks/77.js +3 -0
- package/.next/server/chunks/7867.js +22 -0
- package/.next/server/chunks/{259.js → 7905.js} +5 -5
- package/.next/server/chunks/{3609.js → 7911.js} +1 -1
- package/.next/server/chunks/{2867.js → 8134.js} +2 -2
- package/.next/server/chunks/{9783.js → 8211.js} +2 -2
- package/.next/server/chunks/8224.js +1 -0
- package/.next/server/chunks/8498.js +1 -0
- package/.next/server/chunks/8868.js +21 -0
- package/.next/server/chunks/{8823.js → 907.js} +10 -10
- package/.next/server/chunks/{7778.js → 9099.js} +1 -1
- package/.next/server/chunks/912.js +1 -0
- package/.next/server/chunks/9180.js +1 -0
- package/.next/server/chunks/9344.js +910 -0
- package/.next/server/chunks/9374.js +1 -0
- package/.next/server/chunks/9419.js +1 -0
- package/.next/server/chunks/9426.js +188 -0
- package/.next/server/chunks/9677.js +17 -0
- package/.next/server/chunks/978.js +1 -0
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/instrumentation.js.nft.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/middleware.js +6 -6
- package/.next/server/middleware.js.nft.json +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/171-2a8b8f61f7ab0828.js +1 -0
- package/.next/static/chunks/1738-28b6824e2a707b93.js +1 -0
- package/.next/static/chunks/{23550918-ff694f70f4b0648c.js → 1ceccf25-731706dbe95504b9.js} +1 -1
- package/.next/static/chunks/{2320-fc8b39380e69d465.js → 3703-b09be945970ea475.js} +1 -1
- package/.next/static/chunks/4365-c5eb5b6af7bfc653.js +4 -0
- package/.next/static/chunks/5452-d0ce3b51601a5815.js +1 -0
- package/.next/static/chunks/6871-a079ac1b4f0caec2.js +1 -0
- package/.next/static/chunks/7066-c10959874b2315bf.js +32 -0
- package/.next/static/chunks/717-1d1163010e3b541d.js +1 -0
- package/.next/static/chunks/7218-44d9a247cf4980fa.js +12 -0
- package/.next/static/chunks/7466-6d8ba01f169a6a1e.js +1 -0
- package/.next/static/chunks/{5920.6451a68b63918988.js → 7790.b648690cf25f29eb.js} +1 -1
- package/.next/static/chunks/{7509.721cd47a931c5518.js → 8251.6fedb7dc4d720bab.js} +1 -1
- package/.next/static/chunks/9279-467412113ad55642.js +1 -0
- package/.next/static/chunks/928-6dec8198101bc3e6.js +1 -0
- package/.next/static/chunks/9874-dc2fbf114916382b.js +1 -0
- package/.next/static/chunks/app/(app)/activity/page-8cf9b4c853ca9c69.js +1 -0
- package/.next/static/chunks/app/(app)/agents/[handle]/page-068e58bd327db429.js +1 -0
- package/.next/static/chunks/app/(app)/code/page-98becb790f9aeedf.js +1 -0
- package/.next/static/chunks/app/(app)/config/page-b5447ad490de11f7.js +1 -0
- package/.next/static/chunks/app/(app)/costs/page-02324b05660bad50.js +1 -0
- package/.next/static/chunks/app/(app)/cron/page-5c9c6fea5aee299c.js +1 -0
- package/.next/static/chunks/app/(app)/dashboard/page-742ac16dbfce548b.js +1 -0
- package/.next/static/chunks/app/(app)/design/{page-11b9cc40f32fe34f.js → page-3ff2eae843e8b7ea.js} +3 -3
- package/.next/static/chunks/app/(app)/docs/[id]/page-f7cc168b103da51e.js +1 -0
- package/.next/static/chunks/app/(app)/docs/page-bc93a2e0342c61af.js +1 -0
- package/.next/static/chunks/app/(app)/error-f9a3caa63e064a7e.js +1 -0
- package/.next/static/chunks/app/(app)/github/page-44b09f94c19f56f0.js +1 -0
- package/.next/static/chunks/app/(app)/goals/page-b66ec65a7221b023.js +1 -0
- package/.next/static/chunks/app/(app)/inbox/page-57a8ab9347276aa2.js +12 -0
- package/.next/static/chunks/app/(app)/knowledge/page-fb3902b3c7348818.js +1 -0
- package/.next/static/chunks/app/(app)/layout-98aa9e760faf2331.js +1 -0
- package/.next/static/chunks/app/(app)/models/page-92f957c7400497f0.js +1 -0
- package/.next/static/chunks/app/(app)/notifications/page-e3fcdad57e7a94fd.js +12 -0
- package/.next/static/chunks/app/(app)/org/page-9030d33729e45e07.js +12 -0
- package/.next/static/chunks/app/(app)/organizations/page-f29c3dc4b3327b8d.js +1 -0
- package/.next/static/chunks/app/(app)/page-0e7e7cfd98d44f59.js +1 -0
- package/.next/static/chunks/app/(app)/planner/page-a2c45cb14b53454a.js +1 -0
- package/.next/static/chunks/app/(app)/plugins/page-792b3dc0ae8571db.js +1 -0
- package/.next/static/chunks/app/(app)/pm/page-4624950feadad3be.js +1 -0
- package/.next/static/chunks/app/(app)/prepare-deploy/{page-6f0c5081caf1d013.js → page-a5d2911069317635.js} +1 -1
- package/.next/static/chunks/app/(app)/profile/page-10ce6fd89387a1f0.js +1 -0
- package/.next/static/chunks/app/(app)/pulse/page-793ce0d2074d2cd7.js +1 -0
- package/.next/static/chunks/app/(app)/reports/[id]/page-5c9c6fea5aee299c.js +1 -0
- package/.next/static/chunks/app/(app)/reports/page-cfa78938aef16acc.js +1 -0
- package/.next/static/chunks/app/(app)/routines/page-06df804a8db66b2d.js +1 -0
- package/.next/static/chunks/app/(app)/search/page-eec2f135e6af9c70.js +1 -0
- package/.next/static/chunks/app/(app)/security/page-23dd0b8308ee48b8.js +1 -0
- package/.next/static/chunks/app/(app)/skills/page-d3d63cac10ce08e1.js +1 -0
- package/.next/static/chunks/app/(app)/tasks/page-0750ff77f17bdd9d.js +1 -0
- package/.next/static/chunks/app/(app)/test-dev/page-7c09ba848265ffe6.js +1 -0
- package/.next/static/chunks/app/(app)/update/page-e70ac9974eb7bf03.js +1 -0
- package/.next/static/chunks/app/(auth)/login/page-0ee8f367460d835a.js +1 -0
- package/.next/static/chunks/app/(auth)/onboarding/page-1de0c42322e9f296.js +1 -0
- package/.next/static/chunks/app/_global-error/{page-eacef2b697bd0982.js → page-ffc45e65538b6024.js} +1 -1
- package/.next/static/chunks/app/_not-found/page-405e53afca481eab.js +1 -0
- package/.next/static/chunks/app/api/auth/[...all]/{route-eacef2b697bd0982.js → route-ffc45e65538b6024.js} +1 -1
- package/.next/static/chunks/app/api/cron/tick/{route-eacef2b697bd0982.js → route-ffc45e65538b6024.js} +1 -1
- package/.next/static/chunks/app/api/health/{route-eacef2b697bd0982.js → route-ffc45e65538b6024.js} +1 -1
- package/.next/static/chunks/app/api/locks/acquire/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/models/progress/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/passkey/authenticate/options/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/passkey/authenticate/verify/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/passkey/register/options/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/passkey/register/verify/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/stream/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/sync/file/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/telegram/poll/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/upload/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/v1/[[...path]]/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/error-e128df085a794b38.js +1 -0
- package/.next/static/chunks/app/global-error-339c61c4184d384a.js +1 -0
- package/.next/static/chunks/app/layout-a80704c0fd0a9e29.js +1 -0
- package/.next/static/chunks/main-143b6dbf9c5dc129.js +5 -0
- package/.next/static/chunks/main-app-8ce4eaae11d4f233.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/webpack-0e63b9ea83aeb0a2.js +1 -0
- package/.next/trace-build +1 -1
- package/CHANGELOG.md +31 -0
- package/README.md +1 -1
- package/README.pt-BR.md +1 -1
- package/docs/UPDATE.md +16 -3
- package/package.json +9 -9
- package/.next/server/chunks/1249.js +0 -910
- package/.next/server/chunks/1572.js +0 -1
- package/.next/server/chunks/1619.js +0 -188
- package/.next/server/chunks/162.js +0 -1
- package/.next/server/chunks/1845.js +0 -462
- package/.next/server/chunks/2341.js +0 -1
- package/.next/server/chunks/260.js +0 -1
- package/.next/server/chunks/288.js +0 -1
- package/.next/server/chunks/2960.js +0 -14
- package/.next/server/chunks/3050.js +0 -18
- package/.next/server/chunks/3056.js +0 -1
- package/.next/server/chunks/3131.js +0 -1
- package/.next/server/chunks/3234.js +0 -869
- package/.next/server/chunks/3266.js +0 -15
- package/.next/server/chunks/3550.js +0 -1
- package/.next/server/chunks/4574.js +0 -1
- package/.next/server/chunks/4616.js +0 -479
- package/.next/server/chunks/4619.js +0 -1
- package/.next/server/chunks/4804.js +0 -1
- package/.next/server/chunks/4832.js +0 -2
- package/.next/server/chunks/5060.js +0 -1
- package/.next/server/chunks/5614.js +0 -1
- package/.next/server/chunks/6431.js +0 -1
- package/.next/server/chunks/6658.js +0 -1
- package/.next/server/chunks/6706.js +0 -1
- package/.next/server/chunks/6753.js +0 -1
- package/.next/server/chunks/683.js +0 -1
- package/.next/server/chunks/6873.js +0 -1
- package/.next/server/chunks/7236.js +0 -4
- package/.next/server/chunks/73.js +0 -17
- package/.next/server/chunks/7514.js +0 -1
- package/.next/server/chunks/7589.js +0 -22
- package/.next/server/chunks/7621.js +0 -12
- package/.next/server/chunks/7622.js +0 -1
- package/.next/server/chunks/7949.js +0 -1
- package/.next/server/chunks/7971.js +0 -1
- package/.next/server/chunks/7989.js +0 -1
- package/.next/server/chunks/7993.js +0 -21
- package/.next/server/chunks/8497.js +0 -1
- package/.next/server/chunks/850.js +0 -1
- package/.next/server/chunks/8623.js +0 -1
- package/.next/server/chunks/8762.js +0 -15
- package/.next/server/chunks/8846.js +0 -1
- package/.next/server/chunks/9676.js +0 -1
- package/.next/server/chunks/9680.js +0 -1
- package/.next/server/chunks/9969.js +0 -3
- package/.next/static/chunks/215-18ea748d2ff2caff.js +0 -1
- package/.next/static/chunks/27-b49ec46cfcce75b7.js +0 -1
- package/.next/static/chunks/2989-2dd9a66d007a96e8.js +0 -4
- package/.next/static/chunks/3219-92e75397858f3f1f.js +0 -1
- package/.next/static/chunks/4263-adecb5b466380b6e.js +0 -1
- package/.next/static/chunks/4643-d0ab4088e129651f.js +0 -1
- package/.next/static/chunks/6834-4759af1ce7d95fb6.js +0 -32
- package/.next/static/chunks/7555-d2209e697b0a798e.js +0 -1
- package/.next/static/chunks/8370-e88907d9c72435e7.js +0 -12
- package/.next/static/chunks/9219-4a39a98b5502d9d1.js +0 -1
- package/.next/static/chunks/9562-4b50b4e408bc0a42.js +0 -1
- package/.next/static/chunks/9690-53d5222618cbeddb.js +0 -1
- package/.next/static/chunks/app/(app)/activity/page-93d4012627ea70d5.js +0 -1
- package/.next/static/chunks/app/(app)/agents/[handle]/page-bfe740784bdf239c.js +0 -1
- package/.next/static/chunks/app/(app)/code/page-5e24874f11857823.js +0 -1
- package/.next/static/chunks/app/(app)/config/page-12c5487a8d55c2c2.js +0 -1
- package/.next/static/chunks/app/(app)/costs/page-6edcec363617f5ef.js +0 -1
- package/.next/static/chunks/app/(app)/cron/page-f9167770757921f7.js +0 -1
- package/.next/static/chunks/app/(app)/dashboard/page-103f172e762911d1.js +0 -1
- package/.next/static/chunks/app/(app)/docs/[id]/page-eaae80c3d47e1ba7.js +0 -1
- package/.next/static/chunks/app/(app)/docs/page-87457e514ea7de32.js +0 -1
- package/.next/static/chunks/app/(app)/error-988cd28480809861.js +0 -1
- package/.next/static/chunks/app/(app)/github/page-ff62b7618c594632.js +0 -1
- package/.next/static/chunks/app/(app)/goals/page-d4d854c091020a92.js +0 -1
- package/.next/static/chunks/app/(app)/inbox/page-1bcfc50e9df5ed6f.js +0 -12
- package/.next/static/chunks/app/(app)/knowledge/page-0a55ce74e274817c.js +0 -1
- package/.next/static/chunks/app/(app)/layout-825ba765e8034dfb.js +0 -1
- package/.next/static/chunks/app/(app)/models/page-cd077c548916b8cb.js +0 -1
- package/.next/static/chunks/app/(app)/notifications/page-c5c7945f6f6f18d6.js +0 -12
- package/.next/static/chunks/app/(app)/org/page-a83804854bd0d44a.js +0 -12
- package/.next/static/chunks/app/(app)/organizations/page-b38db8e364e3a108.js +0 -1
- package/.next/static/chunks/app/(app)/page-733340fec4cd0173.js +0 -1
- package/.next/static/chunks/app/(app)/planner/page-06b2841d0438d92d.js +0 -1
- package/.next/static/chunks/app/(app)/plugins/page-535ed062643077fc.js +0 -1
- package/.next/static/chunks/app/(app)/pm/page-dc0296761e1af17c.js +0 -1
- package/.next/static/chunks/app/(app)/profile/page-cef1aa72ffc02e9c.js +0 -1
- package/.next/static/chunks/app/(app)/pulse/page-d4bdec1709913581.js +0 -1
- package/.next/static/chunks/app/(app)/reports/[id]/page-f9167770757921f7.js +0 -1
- package/.next/static/chunks/app/(app)/reports/page-5c37a53bbd4fd1c3.js +0 -1
- package/.next/static/chunks/app/(app)/routines/page-e274160cfbb3c594.js +0 -1
- package/.next/static/chunks/app/(app)/search/page-f0e082b9b0402981.js +0 -1
- package/.next/static/chunks/app/(app)/security/page-a12f04656bde8aad.js +0 -1
- package/.next/static/chunks/app/(app)/skills/page-583f9780fa981aa8.js +0 -1
- package/.next/static/chunks/app/(app)/tasks/page-7bb09650b84e0755.js +0 -1
- package/.next/static/chunks/app/(app)/test-dev/page-ce66efbb83b2ed21.js +0 -1
- package/.next/static/chunks/app/(app)/update/page-6a8082f1c1b3b762.js +0 -1
- package/.next/static/chunks/app/(auth)/login/page-b512c906a1566d8c.js +0 -1
- package/.next/static/chunks/app/(auth)/onboarding/page-8f6bf1259bb5aab5.js +0 -1
- package/.next/static/chunks/app/_not-found/page-dc38b02aebeab535.js +0 -1
- package/.next/static/chunks/app/api/locks/acquire/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/models/progress/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/passkey/authenticate/options/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/passkey/authenticate/verify/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/passkey/register/options/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/passkey/register/verify/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/stream/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/sync/file/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/telegram/poll/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/upload/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/v1/[[...path]]/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/error-09899a13c38b6e89.js +0 -1
- package/.next/static/chunks/app/global-error-c2ea8fef715f226d.js +0 -1
- package/.next/static/chunks/app/layout-e6008e66aea1a849.js +0 -1
- package/.next/static/chunks/main-722e16032e7764d1.js +0 -5
- package/.next/static/chunks/main-app-761880af2b6f1962.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/webpack-222e3894b78c67db.js +0 -1
- /package/.next/static/{Mx3bcAGWI83SQ6PqC4kYX → vW8upousaXo7DvSlRwFbb}/_buildManifest.js +0 -0
- /package/.next/static/{Mx3bcAGWI83SQ6PqC4kYX → vW8upousaXo7DvSlRwFbb}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=7989,exports.ids=[7989],exports.modules={18185:(a,b,c)=>{c.d(b,{$:()=>d});let d=new Map},27989:(a,b,c)=>{c.d(b,{V$:()=>ah,Uw:()=>F,wp:()=>O,Jw:()=>X,Cp:()=>P,S8:()=>ab,kb:()=>ae,Hi:()=>ac,Vr:()=>ad,nl:()=>Y,LU:()=>Z,cm:()=>J,VH:()=>K,zO:()=>G,Gh:()=>I,I2:()=>H,ju:()=>M,Ac:()=>ag,m:()=>Q,az:()=>N,ts:()=>af,L0:()=>ai,lC:()=>aj});var d=c(52813),e=c(48161),f=c.n(e),g=c(77598),h=c(73024),i=c(31421),j=c(54679),k=c.n(j),l=c(76760),m=c(57075),n=c(46466),o=c(1782),p=c(83550),q=c(80280),r=c(25533),s=c(95896),t=c(18612),u=c(64619);function v(a,b,c=.02){let d=0;try{d=(0,h.statSync)(a).size}catch{return{ok:!1,actual:0,expected:b,message:"file missing after download"}}if(!b||b<=0)return{ok:!0,actual:d,expected:b,message:"size ok (no expected size)"};let e=d/b,f=e>=1-c&&e<=1+c;return{ok:f,actual:d,expected:b,message:f?"size verified":`size mismatch — got ${d} bytes, expected ~${b} (truncated/corrupt)`}}var w=c(18185);let x=[{repo:"Qwen2.5-0.5B-Instruct",paramsB:.5,kind:"chat"},{repo:"Qwen2.5-1.5B-Instruct",paramsB:1.5,kind:"chat"},{repo:"Qwen2.5-3B-Instruct",paramsB:3,kind:"chat"},{repo:"Qwen2.5-7B-Instruct",paramsB:7,kind:"chat"},{repo:"Qwen2.5-14B-Instruct",paramsB:14,kind:"chat"},{repo:"Qwen2.5-32B-Instruct",paramsB:32,kind:"chat"},{repo:"Qwen2.5-72B-Instruct",paramsB:72,kind:"chat"},{repo:"Qwen2.5-Coder-1.5B-Instruct",paramsB:1.5,kind:"code"},{repo:"Qwen2.5-Coder-3B-Instruct",paramsB:3,kind:"code"},{repo:"Qwen2.5-Coder-7B-Instruct",paramsB:7,kind:"code"},{repo:"Qwen2.5-Coder-14B-Instruct",paramsB:14,kind:"code"},{repo:"Qwen2.5-Coder-32B-Instruct",paramsB:32,kind:"code"},{repo:"Qwen3-0.6B",paramsB:.6,kind:"chat"},{repo:"Qwen3-1.7B",paramsB:1.7,kind:"chat"},{repo:"Qwen3-4B",paramsB:4,kind:"chat"},{repo:"Qwen3-8B",paramsB:8,kind:"chat"},{repo:"Qwen3-14B",paramsB:14,kind:"chat"},{repo:"Qwen3-32B",paramsB:32,kind:"chat"},{repo:"Llama-3.2-1B-Instruct",paramsB:1,kind:"chat"},{repo:"Llama-3.2-3B-Instruct",paramsB:3,kind:"chat"},{repo:"Meta-Llama-3.1-8B-Instruct",paramsB:8,kind:"chat"},{repo:"Meta-Llama-3.1-70B-Instruct",paramsB:70,kind:"chat"},{repo:"Llama-3.3-70B-Instruct",paramsB:70,kind:"chat"},{repo:"gemma-2-2b-it",paramsB:2,kind:"chat"},{repo:"gemma-2-9b-it",paramsB:9,kind:"chat"},{repo:"gemma-2-27b-it",paramsB:27,kind:"chat"},{repo:"gemma-3-1b-it",paramsB:1,kind:"chat"},{repo:"gemma-3-4b-it",paramsB:4,kind:"chat"},{repo:"gemma-3-12b-it",paramsB:12,kind:"chat"},{repo:"gemma-3-27b-it",paramsB:27,kind:"chat"},{repo:"Mistral-7B-Instruct-v0.3",paramsB:7,kind:"chat"},{repo:"Mistral-Nemo-Instruct-2407",paramsB:12,kind:"chat"},{repo:"Mistral-Small-Instruct-2409",paramsB:22,kind:"chat"},{repo:"Mistral-Small-24B-Instruct-2501",paramsB:24,kind:"chat"},{repo:"Codestral-22B-v0.1",paramsB:22,kind:"code"},{repo:"Phi-3.1-mini-4k-instruct",paramsB:3.8,kind:"chat"},{repo:"DeepSeek-R1-Distill-Qwen-1.5B",paramsB:1.5,kind:"reasoning"},{repo:"DeepSeek-R1-Distill-Qwen-7B",paramsB:7,kind:"reasoning"},{repo:"DeepSeek-R1-Distill-Qwen-14B",paramsB:14,kind:"reasoning"},{repo:"DeepSeek-R1-Distill-Qwen-32B",paramsB:32,kind:"reasoning"},{repo:"DeepSeek-R1-Distill-Llama-8B",paramsB:8,kind:"reasoning"},{repo:"DeepSeek-Coder-V2-Lite-Instruct",paramsB:16,kind:"code"},{repo:"Yi-1.5-9B-Chat",paramsB:9,kind:"chat"},{repo:"Yi-1.5-34B-Chat",paramsB:34,kind:"chat"},{repo:"granite-3.0-8b-instruct",paramsB:8,kind:"chat"},{repo:"granite-3.1-8b-instruct",paramsB:8,kind:"chat"},{repo:"SmolLM2-360M-Instruct",paramsB:.36,kind:"chat"},{repo:"SmolLM2-1.7B-Instruct",paramsB:1.7,kind:"chat"},{repo:"aya-expanse-8b",paramsB:8,kind:"chat"},{repo:"aya-expanse-32b",paramsB:32,kind:"chat"},{repo:"Falcon3-7B-Instruct",paramsB:7,kind:"chat"},{repo:"Falcon3-10B-Instruct",paramsB:10,kind:"chat"},{repo:"EXAONE-3.5-2.4B-Instruct",paramsB:2.4,kind:"chat"},{repo:"EXAONE-3.5-7.8B-Instruct",paramsB:7.8,kind:"chat"},{repo:"Qwen3.5-0.8B",paramsB:.8,kind:"chat"},{repo:"Qwen3.5-2B",paramsB:2,kind:"chat"},{repo:"Qwen3.5-9B",paramsB:9,kind:"chat"},{repo:"Qwen3.5-27B",paramsB:27,kind:"chat"},{repo:"Qwen3.5-35B-A3B",paramsB:35,kind:"chat"},{repo:"Qwen3.6-27B",paramsB:27,kind:"chat"},{repo:"Qwen3.6-35B-A3B",paramsB:35,kind:"chat"},{repo:"Qwen3-30B-A3B",paramsB:30,kind:"chat"},{repo:"Qwen3-30B-A3B-Instruct-2507",paramsB:30,kind:"chat"},{repo:"Qwen3-Next-80B-A3B-Instruct",paramsB:80,kind:"chat"},{repo:"Qwen3-4B-Thinking-2507",paramsB:4,kind:"reasoning"},{repo:"QwQ-32B",paramsB:32,kind:"reasoning"},{repo:"Qwen2.5-7B-Instruct-1M",paramsB:7,kind:"chat"},{repo:"Qwen2.5-Coder-0.5B-Instruct",paramsB:.5,kind:"code"},{repo:"Qwen2.5-Coder-3B",paramsB:3,kind:"code"},{repo:"Qwen2.5-Coder-32B",paramsB:32,kind:"code"},{repo:"Qwen2.5-Math-7B-Instruct",paramsB:7,kind:"chat"},{repo:"Qwen2-500M-Instruct",paramsB:.5,kind:"chat"},{repo:"Qwen1.5-32B-Chat",paramsB:32,kind:"chat"},{repo:"gemma-4-E2B-it",paramsB:2,kind:"chat"},{repo:"gemma-4-E4B-it",paramsB:4,kind:"chat"},{repo:"gemma-4-12B-it",paramsB:12,kind:"chat"},{repo:"gemma-4-26B-A4B-it",paramsB:26,kind:"chat"},{repo:"gemma-4-31B-it",paramsB:31,kind:"chat"},{repo:"gemma-3-270m-it",paramsB:.27,kind:"chat"},{repo:"gemma-1.1-2b-it",paramsB:2,kind:"chat"},{repo:"codegemma-2b",paramsB:2,kind:"code"},{repo:"codegemma-7b",paramsB:7,kind:"code"},{repo:"codegemma-7b-it",paramsB:7,kind:"code"},{repo:"codegemma-1.1-7b-it",paramsB:7,kind:"code"},{repo:"Ministral-3-3B-Instruct-2512",paramsB:3,kind:"chat"},{repo:"Ministral-3-8B-Instruct-2512",paramsB:8,kind:"chat"},{repo:"Ministral-3-14B-Instruct-2512",paramsB:14,kind:"chat"},{repo:"Ministral-3-3B-Reasoning-2512",paramsB:3,kind:"reasoning"},{repo:"Ministral-3-8B-Reasoning-2512",paramsB:8,kind:"reasoning"},{repo:"Ministral-3-14B-Reasoning-2512",paramsB:14,kind:"reasoning"},{repo:"Mistral-Small-3.1-24B-Instruct-2503",paramsB:24,kind:"chat"},{repo:"Mistral-Small-3.2-24B-Instruct-2506",paramsB:24,kind:"chat"},{repo:"Devstral-Small-2-24B-Instruct-2512",paramsB:24,kind:"code"},{repo:"mathstral-7B-v0.1",paramsB:7,kind:"chat"},{repo:"dolphin-2.8-mistral-7b-v02",paramsB:7,kind:"chat"},{repo:"WizardLM-2-7B",paramsB:7,kind:"chat"},{repo:"DeepSeek-R1-0528-Qwen3-8B",paramsB:8,kind:"reasoning"},{repo:"DeepSeek-R1-Distill-Llama-70B",paramsB:70,kind:"reasoning"},{repo:"deepseek-coder-1.3B-kexer",paramsB:1.3,kind:"code"},{repo:"deepseek-coder-6.7B-kexer",paramsB:6.7,kind:"code"},{repo:"granite-3.2-8b-instruct",paramsB:8,kind:"chat"},{repo:"granite-4.1-3b",paramsB:3,kind:"chat"},{repo:"granite-4.1-8b",paramsB:8,kind:"chat"},{repo:"granite-4.1-30b",paramsB:30,kind:"chat"},{repo:"Olmo-3-32B-Think",paramsB:32,kind:"reasoning"},{repo:"Seed-OSS-36B-Instruct",paramsB:36,kind:"chat"},{repo:"ERNIE-4.5-21B-A3B-PT",paramsB:21,kind:"chat"},{repo:"LFM2-24B-A2B",paramsB:24,kind:"chat"},{repo:"LFM2.5-1.2B-Instruct",paramsB:1.2,kind:"chat"},{repo:"LFM2.5-1.2B-Thinking",paramsB:1.2,kind:"reasoning"},{repo:"NVIDIA-Nemotron-3-Nano-4B",paramsB:4,kind:"chat"},{repo:"Hermes-4-70B",paramsB:70,kind:"chat"},{repo:"Llama-3.1-Tulu-3-8B",paramsB:8,kind:"chat"},{repo:"Meta-Llama-3-70B-Instruct",paramsB:70,kind:"chat"},{repo:"Llama3-ChatQA-1.5-70B",paramsB:70,kind:"chat"},{repo:"Llama-3-Groq-8B-Tool-Use",paramsB:8,kind:"chat"},{repo:"aya-23-8B",paramsB:8,kind:"chat"},{repo:"aya-23-35B",paramsB:35,kind:"chat"},{repo:"SmolLM2-135M-Instruct",paramsB:.135,kind:"chat"},{repo:"Yi-Coder-1.5B",paramsB:1.5,kind:"code"},{repo:"Yi-Coder-9B-Chat",paramsB:9,kind:"code"},{repo:"OpenCoder-1.5B-Instruct",paramsB:1.5,kind:"code"},{repo:"stable-code-instruct-3b",paramsB:3,kind:"code"},{repo:"internlm2-math-plus-7b",paramsB:7,kind:"chat"},{repo:"internlm2-math-plus-20b",paramsB:20,kind:"chat"}],y={Q3_K_L:.55,Q4_K_M:.67,Q6_K:.9,Q8_0:1.13},z=[{id:"nomic-embed-q8",name:"nomic-embed-text-v1.5 (Q8_0)",url:"https://huggingface.co/nomic-ai/nomic-embed-text-v1.5-GGUF/resolve/main/nomic-embed-text-v1.5.Q8_0.gguf",params:"137M",quant:"Q8_0",sizeBytes:146e6,kind:"embed",paramsB:.137},...function(){let a=[];for(let d of x){var b,c;let e=d.vendor??"lmstudio-community";for(let f of(b=d.paramsB)<=9?["Q3_K_L","Q4_K_M","Q6_K","Q8_0"]:b<=34?["Q3_K_L","Q4_K_M","Q6_K"]:["Q3_K_L","Q4_K_M"]){let b=`${d.repo}-${f}.gguf`;a.push({id:`${d.repo}-${f}`.toLowerCase().replace(/[^a-z0-9]+/g,"-"),name:`${d.repo} (${f})`,url:`https://huggingface.co/${e}/${d.repo}-GGUF/resolve/main/${b}`,params:(c=d.paramsB)<1?`${Math.round(1e3*c)}M`:`${c}B`,quant:f,sizeBytes:Math.round(1e9*d.paramsB*y[f]),kind:d.kind,paramsB:d.paramsB})}}return a}()];var A=c(29635);let B=process.env.OLLAMA_URL??"http://127.0.0.1:11434",C=process.env.LLAMACPP_URL??"http://127.0.0.1:8082",D=process.env.CONSTELLA_EMBED_URL??"http://127.0.0.1:8083",E=null;async function F(){if(E){let a=f().totalmem()/0x40000000,b=f().freemem()/0x40000000;return{...E,ram:`${a.toFixed(0)} GB \xb7 ${b.toFixed(1)} free`}}let a=f().cpus(),b=(a[0]?.model??"Unknown CPU").replace(/\s+/g," ").trim(),c=a.length,d=f().totalmem()/0x40000000,e=f().freemem()/0x40000000,g=`${d.toFixed(0)} GB \xb7 ${e.toFixed(1)} free`,h=f().platform(),j="—",k="—",l="CPU",m=[];try{let a=(0,i.execSync)("nvidia-smi --query-gpu=name,memory.total --format=csv,noheader,nounits",{timeout:4e3,stdio:["ignore","pipe","ignore"]}).toString().trim();if(a){let[b,c]=a.split("\n")[0].split(",");j=b.trim(),k=`${Math.round(Number(c)/1024)} GB`,l="CUDA",m.push("CUDA")}}catch{}if("CPU"===l&&"darwin"===h){l="Metal",m.push("Metal");let a="Apple Silicon";try{let b=(0,i.execFileSync)("sysctl",["-n","machdep.cpu.brand_string"],{timeout:3e3,stdio:["ignore","pipe","ignore"]}).toString().trim();b&&(a=b)}catch{/apple/i.test(b)&&(a=b)}j=/apple/i.test(a)?`${a} GPU`:"Apple GPU","arm64"===f().arch()&&(k=`${Math.max(1,Math.round(.7*d))} GB unified`)}m.push("arm64"===f().arch()?"NEON":"AVX2");let n="—";try{if("win32"===h){let a=((0,t.r$)()[0]||"C").toUpperCase(),b=/^[A-Z]$/.test(a)?a:"C",c=(0,i.execFileSync)("powershell",["-NoProfile","-Command",`(Get-PSDrive ${b}).Free`],{timeout:5e3,stdio:["ignore","pipe","ignore"]}).toString().trim(),d=Number(c.replace(/[^\d]/g,""));d>0&&(n=`${(d/0x40000000).toFixed(0)} GB`)}else{let a=(0,i.execFileSync)("df",["-h",(0,t.r$)()],{timeout:4e3,stdio:["ignore","pipe","ignore"]}).toString().trim().split("\n"),b=(a[a.length-1]??"").split(/\s+/);b[3]&&(n=b[3])}}catch{}return E={cpu:b,cores:c,ram:g,gpu:j,vram:k,diskFree:n,backend:l,accel:m,recommendedQuant:d>=32?"Q5_K_M":d>=16?"Q4_K_M":"Q4_0",maxParams:d>=64?"70B":d>=32?"34B":d>=16?"13B":"7B"}}async function G(){try{return(0,i.execSync)("ollama --version",{timeout:3e3,stdio:"ignore"}),!0}catch{return!1}}async function H(a){let b=await G(),c=[];if("start"===a){if(!b)return{up:!1,installed:!1,log:["Ollama is not installed — get it at https://ollama.com, then retry."]};if((await K()).up)return{up:!0,installed:b,log:[`server already running on ${B}`]};try{let a=(0,i.spawn)("ollama",["serve"],{detached:!0,stdio:"ignore"}),d="";a.on("error",a=>{d=String(a instanceof Error?a.message:a)}),a.unref(),c.push("$ ollama serve"),await new Promise(a=>setTimeout(a,2e3));let e=(await K()).up;return d&&c.push("spawn failed: "+d),c.push(e?`✓ ready \xb7 ${B}`:"still stopped — the port may be busy; run `ollama serve` in a terminal to see the error."),(0,p.revalidatePath)("/models"),{up:e,installed:b,log:c}}catch(a){return{up:!1,installed:b,log:["failed to start: "+String(a instanceof Error?a.message:a)]}}}try{"win32"===f().platform()?(0,i.execSync)("taskkill /IM ollama.exe /F",{stdio:"ignore",timeout:4e3}):(0,i.execSync)("pkill -f 'ollama serve'",{stdio:"ignore",timeout:4e3}),c.push("server stopped")}catch{c.push("no running ollama process found")}return(0,p.revalidatePath)("/models"),{up:!1,installed:b,log:c}}async function I(){try{let a=await fetch(`${B}/api/ps`,{signal:AbortSignal.timeout(3e3)});if(!a.ok)return{running:[]};return{running:((await a.json()).models??[]).map(a=>({name:a.name,vram:a.size_vram??0}))}}catch{return{running:[]}}}async function J(a){try{let b=await fetch(`${B}/api/generate`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({model:a,prompt:"",keep_alive:"30m"}),signal:AbortSignal.timeout(12e4)});if(!b.ok)return{ok:!1,error:`Ollama ${b.status}`};return await b.json().catch(()=>({})),(0,p.revalidatePath)("/models"),{ok:!0}}catch(b){let a=String(b instanceof Error?b.message:b);return{ok:!1,error:/abort|fetch failed|ECONN/i.test(a)?"Ollama not running":a}}}async function K(){try{let a=await fetch(`${B}/api/tags`,{signal:AbortSignal.timeout(3e3)});if(!a.ok)return{up:!1,models:[]};let b=await a.json();return{up:!0,models:(b.models??[]).map(a=>({name:a.name,size:a.size??0}))}}catch{return{up:!1,models:[]}}}async function L(a){let b=await K(),[c]=await q.db.select().from(r.provider).where((0,o.Uo)((0,o.eq)(r.provider.workspaceId,a),(0,o.eq)(r.provider.catalogId,"ollama"))),d={status:b.up?"connected":"needs_sync",modelCount:b.models.length,lastSync:b.up?new Date:null};c?await q.db.update(r.provider).set(d).where((0,o.eq)(r.provider.id,c.id)):await q.db.insert(r.provider).values({id:(0,g.randomUUID)(),workspaceId:a,catalogId:"ollama",adapter:"local_ollama",kind:"local",auth:"local",syncStatus:"implemented",...d})}async function M(a){let{workspace:b}=await (0,s.nP)();if(!a.trim())return{ok:!1,error:"no model name"};try{let c=await fetch(`${B}/api/pull`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({name:a.trim(),stream:!1}),signal:AbortSignal.timeout(18e5)});if(!c.ok){let a=await c.text().catch(()=>"");return{ok:!1,error:`Ollama ${c.status}${a?": "+a.slice(0,120):""}`}}let d=await c.json().catch(()=>({}));return await L(b.id),(0,p.revalidatePath)("/models"),{ok:"success"===d.status||null==d.error,error:d.error}}catch(b){let a=String(b instanceof Error?b.message:b);return{ok:!1,error:/abort|fetch failed|ECONN/i.test(a)?"Ollama not running — start it, then retry.":a}}}async function N(a){let{workspace:b}=await (0,s.nP)();try{await fetch(`${B}/api/delete`,{method:"DELETE",headers:{"content-type":"application/json"},body:JSON.stringify({name:a})})}catch{}return await L(b.id),(0,p.revalidatePath)("/models"),{ok:!0}}async function O(a){let{workspace:b}=await (0,s.nP)(),c=z.find(b=>b.id===a);if(!c)return{ok:!1,error:"unknown model"};let d=(0,l.join)((0,t.r$)(),"models");(0,h.mkdirSync)(d,{recursive:!0});let e=function(a){try{if("win32"===f().platform()){let b=(a[0]||"C").toUpperCase(),c=/^[A-Z]$/.test(b)?b:"C",d=(0,i.execFileSync)("powershell",["-NoProfile","-Command",`(Get-PSDrive ${c}).Free`],{timeout:6e3,stdio:["ignore","pipe","ignore"]}).toString().trim();return Number(d.replace(/[^\d]/g,""))||0}let b=(0,i.execFileSync)("df",["-k",a],{timeout:5e3,stdio:["ignore","pipe","ignore"]}).toString().trim().split("\n"),c=(b[b.length-1]??"").split(/\s+/),d=Number(c[3]);return d?1024*d:0}catch{return 0}}(d);if(e&&c.sizeBytes&&e<1.1*c.sizeBytes)return{ok:!1,error:`not enough free space — need ~${(c.sizeBytes/1e9).toFixed(1)} GB, ${(e/1e9).toFixed(1)} GB free`};let j=c.url.split("/").pop()??`${c.id}.gguf`,k=(0,l.join)(d,j);w.$.set(a,{received:0,total:0,done:!1});try{if(!(0,h.existsSync)(k)){let b=await fetch(c.url,{signal:AbortSignal.timeout(36e5)});if(!b.ok||!b.body)return w.$.set(a,{received:0,total:0,done:!0,error:`download failed (${b.status})`}),{ok:!1,error:`download failed (${b.status})`};let d=Number(b.headers.get("content-length"))||c.sizeBytes||0,e=0;w.$.set(a,{received:0,total:d,done:!1});let f=new m.PassThrough;f.on("data",b=>{e+=b.length;let c=w.$.get(a);c&&(c.received=e)}),await (0,n.pipeline)(m.Readable.fromWeb(b.body),f,(0,h.createWriteStream)(k));let g=v(k,d);if(!g.ok){try{(0,h.rmSync)(k)}catch{}return w.$.set(a,{received:e,total:d,done:!0,error:g.message}),{ok:!1,error:g.message}}}if((w.$.set(a,{received:1,total:1,done:!0}),c.sha256)&&await new Promise((a,b)=>{let c=(0,g.createHash)("sha256");(0,h.createReadStream)(k).on("data",a=>c.update(a)).on("end",()=>a(c.digest("hex"))).on("error",b)})!==c.sha256)return{ok:!1,error:"SHA-256 mismatch — file corrupt"};let d=(0,h.statSync)(k).size,[e]=await q.db.select().from(r.localModel).where((0,o.eq)(r.localModel.file,k));return e||await q.db.insert(r.localModel).values({id:(0,g.randomUUID)(),workspaceId:b.id,name:c.name,file:k,quant:c.quant,params:c.params,sizeBytes:d,sha256:c.sha256??"",bind:"127.0.0.1:8082"}),/embed|nomic|bge|mxbai|gte/i.test(c.name)&&ac().catch(()=>{}),(0,p.revalidatePath)("/models"),{ok:!0,path:k}}catch(d){let b=String(d instanceof Error?d.message:d),c=w.$.get(a);return w.$.set(a,{received:c?.received??0,total:c?.total??0,done:!0,error:b}),{ok:!1,error:b}}}async function P(a){return w.$.get(a)??null}async function Q(a){await (0,s.nP)();let[b]=await q.db.select().from(r.localModel).where((0,o.eq)(r.localModel.id,a));if(!b)return{ok:!1,error:"model not found"};try{b.file&&(0,h.existsSync)(b.file)&&(0,h.rmSync)(b.file,{force:!0})}catch{}return await q.db.delete(r.localModel).where((0,o.eq)(r.localModel.file,b.file)),(0,p.revalidatePath)("/models"),{ok:!0}}function R(){return(0,l.join)((0,t.r$)(),"bin","llama")}function S(){try{let a=(0,l.join)(R(),"INSTALLED");if(!(0,h.existsSync)(a))return null;let b=(0,h.readFileSync)(a,"utf8").trim();return b&&(0,h.existsSync)(b)?b:null}catch{return null}}async function T(a,b,c,d){let e=/\.(tar\.gz|tgz)$/i.test(b),f=(0,l.join)(c,b.replace(/[^\w.\-]+/g,"_"));(0,h.mkdirSync)(c,{recursive:!0});let g=await fetch(a,{signal:AbortSignal.timeout(18e5)});if(!g.ok||!g.body)return d&&w.$.set(d,{received:0,total:0,done:!0,error:`download failed (${g.status})`}),`download failed (${g.status})`;let j=Number(g.headers.get("content-length"))||0,o=m.Readable.fromWeb(g.body);if(d){let a=0;w.$.set(d,{received:0,total:j,done:!1});let b=new m.PassThrough;b.on("data",b=>{a+=b.length;let c=w.$.get(d);c&&(c.received=a)}),await (0,n.pipeline)(o,b,(0,h.createWriteStream)(f))}else await (0,n.pipeline)(o,(0,h.createWriteStream)(f));let p=v(f,j);if(!p.ok){try{(0,h.rmSync)(f)}catch{}return p.message}e?(0,i.execFileSync)("tar",["-xzf",f,"-C",c],{stdio:"ignore",timeout:12e4}):new(k())(f).extractAllTo(c,!0);try{(0,h.rmSync)(f)}catch{}return null}async function U(){try{let a=await fetch("https://api.github.com/repos/ggml-org/llama.cpp/releases/latest",{headers:{"User-Agent":"constella",Accept:"application/vnd.github+json"},signal:AbortSignal.timeout(15e3)});if(!a.ok)return null;return(await a.json()).assets??[]}catch{return null}}let V=!1;async function W(a=!1){let b;if("win32"!==f().platform())return{ok:!0,fetched:!1};let c=R();try{b=(0,h.readdirSync)(c)}catch{return{ok:!1,fetched:!1,reason:"no llama dir"}}let d=b.some(a=>/^ggml-cuda\.dll$/i.test(a)),e=b.some(a=>/^cudart64_\d+\.dll$/i.test(a));if(!d||e)return{ok:e||!d,fetched:!1};if(V&&!a)return{ok:!1,fetched:!1,reason:"already attempted this run"};V=!0;let g="12";try{let a=(0,h.readFileSync)((0,l.join)(c,"ggml-cuda.dll")).toString("latin1").match(/cudart64_(\d+)\.dll/i);a&&(g=a[1])}catch{}let i=await U();if(!i)return{ok:!1,fetched:!1,reason:"GitHub unreachable"};let j=i.filter(a=>/cudart/i.test(a.name)&&/x64|amd64/i.test(a.name)),k=j.find(a=>RegExp(`cuda-${g}\\.`,"i").test(a.name))??j[0];if(!k)return{ok:!1,fetched:!1,reason:"no cudart asset in the latest release"};let m=await T(k.browser_download_url,k.name,c).catch(a=>String(a instanceof Error?a.message:a));if(m)return{ok:!1,fetched:!1,reason:m};let n=!1;try{n=(0,h.readdirSync)(c).some(a=>/^cudart64_\d+\.dll$/i.test(a))}catch{}return{ok:n,fetched:n}}async function X(){let a;await (0,s.nP)();let b=[];if(S()||await Y()){let a=await W(!0).catch(()=>null);return{ok:!0,installed:!0,log:["llama-server already installed.",...a?.fetched?["✓ fetched the CUDA runtime DLLs — GPU enabled."]:a&&!a.ok?[`⚠ CUDA runtime still missing (${a.reason??"unknown"}).`]:[]]}}let c=await F(),d=/cuda|nvidia/i.test(c.backend)||(c.accel??[]).some(a=>/cuda|nvidia/i.test(a));b.push(`platform ${f().platform()}/${f().arch()} \xb7 backend ${c.backend} → ${d?"CUDA":"CPU"} build`);try{let c=await fetch("https://api.github.com/repos/ggml-org/llama.cpp/releases/latest",{headers:{"User-Agent":"constella",Accept:"application/vnd.github+json"},signal:AbortSignal.timeout(15e3)});if(!c.ok)return{ok:!1,installed:!1,log:b,error:403===c.status?"GitHub API rate-limited — try again later or install manually from the releases page.":`GitHub releases API ${c.status}`};a=(await c.json()).assets??[]}catch(a){return{ok:!1,installed:!1,log:b,error:"couldn't reach GitHub: "+String(a instanceof Error?a.message:a)}}let e=function(a,b){let c=f().platform(),d="win32"===c?/win/i:"darwin"===c?/macos/i:/(ubuntu|linux)/i,e="arm64"===f().arch(),g=a.filter(a=>/\.(zip|tar\.gz|tgz)$/i.test(a.name)&&d.test(a.name));e||(g=g.filter(a=>!/arm64|aarch64/i.test(a.name)));let h=/cuda|hip|vulkan|sycl|kompute|musa|cann|adreno/i,i=a=>{if(!a.length)return null;let b=e?a.filter(a=>/arm64|aarch64/i.test(a.name)):a.filter(a=>/x64|amd64/i.test(a.name)),c=(b.length?b:a).sort((a,b)=>a.name.length-b.name.length)[0];return c?{name:c.name,url:c.browser_download_url}:null};if(b){let a=g.filter(a=>/cuda/i.test(a.name));if(a.length)return i(a)}let j=g.filter(a=>!h.test(a.name));return i(j.length?j:g)}(a,!!d);if(!e)return{ok:!1,installed:!1,log:b,error:"no matching prebuilt for this platform — install manually from the releases page."};b.push(`downloading ${e.name}…`);let g=R();(0,h.mkdirSync)(g,{recursive:!0}),w.$.set("llama-server",{received:0,total:0,done:!1});try{let a=await T(e.url,e.name,g,"llama-server");if(a)return w.$.set("llama-server",{received:0,total:0,done:!0,error:a}),{ok:!1,installed:!1,log:b,error:a};if(d){let a=await W(!0);b.push(a.ok?a.fetched?"✓ CUDA runtime DLLs installed — GPU enabled.":"CUDA runtime already present.":`⚠ CUDA runtime not installed (${a.reason??"unknown"}) — runs on CPU; retries on next Start/Install.`)}}catch(a){return{ok:!1,installed:!1,log:b,error:"download/extract failed: "+String(a instanceof Error?a.message:a)}}let i=function a(b,c,d){let e;if(d<0)return null;try{e=(0,h.readdirSync)(b,{withFileTypes:!0})}catch{return null}for(let a of e)if(a.isFile()&&a.name===c)return(0,l.join)(b,a.name);for(let f of e)if(f.isDirectory()){let e=a((0,l.join)(b,f.name),c,d-1);if(e)return e}return null}(g,"win32"===f().platform()?"llama-server.exe":"llama-server",5);if(!i)return{ok:!1,installed:!1,log:b,error:"downloaded, but llama-server wasn't found in the archive."};if("win32"!==f().platform())try{(0,h.chmodSync)(i,493)}catch{}return(0,h.writeFileSync)((0,l.join)(g,"INSTALLED"),i,"utf8"),w.$.set("llama-server",{received:1,total:1,done:!0}),b.push(`✓ installed → ${i}`),await ah().catch(()=>{}),(0,p.revalidatePath)("/models"),{ok:!0,installed:!0,path:i,log:b}}async function Y(){if(S())return!0;try{return(0,i.execSync)("llama-server --version",{timeout:3e3,stdio:"ignore"}),!0}catch{return!1}}async function Z(){try{let a=await fetch(`${C}/v1/models`,{signal:AbortSignal.timeout(2500)});if(!a.ok)return{up:!1,model:null};let b=await a.json(),c=b.data?.[0]?.id;return{up:!0,model:c?c.split(/[\\/]/).pop()??c:null}}catch{return{up:!1,model:null}}}async function $(a){try{var b;let c,d=await F();if(!/cuda|metal/i.test(d.backend))return[];let e=(b=d.vram,(c=/([\d.]+)\s*GB/i.exec(b||""))?1e9*parseFloat(c[1]):0);if(a&&e&&1.15*a>e)return[];return["-ngl","99"]}catch{return[]}}function _(){try{let a=q.db.select({file:r.localModel.file,name:r.localModel.name}).from(r.localModel).all().find(a=>/embed|nomic|bge|mxbai|gte/i.test(a.name)&&a.file&&(0,h.existsSync)(a.file));return a?{file:a.file,name:a.name}:null}catch{return null}}function aa(){try{let a=q.db.select({file:r.localModel.file,name:r.localModel.name,sizeBytes:r.localModel.sizeBytes}).from(r.localModel).all().find(a=>!/embed|nomic|bge|mxbai|gte/i.test(a.name)&&a.file&&(0,h.existsSync)(a.file));return a?{file:a.file,name:a.name,sizeBytes:a.sizeBytes}:null}catch{return null}}async function ab(){try{return(await fetch(`${D}/health`,{signal:AbortSignal.timeout(1500)})).ok}catch{return!1}}async function ac(){if(await ab())return{up:!0};let a=S();if(!a)return{up:!1,reason:"llama-server not installed"};let b=_();if(!b)return{up:!1,reason:"no embedding model installed (download nomic-embed-text)"};try{await W().catch(()=>{});let c=await $(),d=(0,i.spawn)(a,["-m",b.file,"--embeddings","--host","127.0.0.1","--port","8083","-c","2048","--pooling","mean",...c],{detached:!0,stdio:"ignore"});d.on("error",()=>{}),d.unref()}catch(a){return{up:!1,reason:"spawn failed: "+String(a instanceof Error?a.message:a)}}for(let a=0;a<24;a++)if(await new Promise(a=>setTimeout(a,500)),await ab())return{up:!0,model:b.name};return{up:!1,reason:"embedding server didn't come up in time"}}async function ad(){if((await Z()).up)return{up:!0};let a=S();if(!a)return{up:!1,reason:"llama-server not installed"};let b=aa();if(!b)return{up:!1,reason:"no chat GGUF installed"};try{await W().catch(()=>{});let c=await $(b.sizeBytes),d=(0,i.spawn)(a,["-m",b.file,"--host","127.0.0.1","--port","8082","-c","4096",...c],{detached:!0,stdio:"ignore"});d.on("error",()=>{}),d.unref()}catch(a){return{up:!1,reason:"spawn failed: "+String(a instanceof Error?a.message:a)}}for(let a=0;a<24;a++)if(await new Promise(a=>setTimeout(a,500)),(await Z()).up)return{up:!0,model:b.name};return{up:!1,reason:"llama server didn't come up in time"}}async function ae(){let a=_();return{up:await ab(),model:a?.name??null,installed:!!a}}async function af(){let a=await ac();return(0,p.revalidatePath)("/models"),a}async function ag(){let{org:a}=await (0,s.nP)();await ac().catch(()=>{});let b=await (0,u.xV)(a.id);return(0,p.revalidatePath)("/models"),b}async function ah(){let{workspace:a}=await (0,s.nP)(),b=await Z(),c=new Set((await q.db.select({file:r.localModel.file}).from(r.localModel)).map(a=>a.file)).size,d={status:b.up?"connected":"needs_sync",modelCount:c,lastSync:b.up?new Date:null},[e]=await q.db.select().from(r.provider).where((0,o.Uo)((0,o.eq)(r.provider.workspaceId,a.id),(0,o.eq)(r.provider.catalogId,"llamacpp")));return e?await q.db.update(r.provider).set(d).where((0,o.eq)(r.provider.id,e.id)):await q.db.insert(r.provider).values({id:(0,g.randomUUID)(),workspaceId:a.id,catalogId:"llamacpp",adapter:"local_llamacpp",kind:"local",auth:"local",syncStatus:"implemented",...d}),(0,p.revalidatePath)("/models"),{ok:!0}}async function ai(a){let b;await (0,s.nP)();let c=await Y(),d=[];if(!c)return{up:!1,installed:!1,log:["llama-server not found — install llama.cpp from https://github.com/ggml-org/llama.cpp/releases (or `brew install llama.cpp`), then retry."]};if((await Z()).up)return{up:!0,installed:c,log:[`server already running on ${C}`]};let e=0;if(a){let d,[f]=await q.db.select().from(r.localModel).where((0,o.eq)(r.localModel.id,a));if(f&&(d=f.name,/embed|nomic|bge|mxbai|gte/i.test(d))){let a=await ac();return{up:a.up,installed:c,log:[`${f.name} is an EMBEDDING model — started the RAG embedding server on :8083 (it can't power chat on :8082).`,a.up?`✓ embeddings ready \xb7 ${D}`:`embeddings: ${a.reason??"failed to start"}`]}}b=f?.file,e=f?.sizeBytes??0}if(!b){let a=aa();b=a?.file,e=a?.sizeBytes??0}if(!b||!(0,h.existsSync)(b)){let a=_();if(a){let b=await ac();return{up:!1,installed:c,log:[`Your only local model (${a.name}) is an EMBEDDING model — it powers RAG on the embeddings server (${D}), not the chat server.`,b.up?"✓ embeddings server is running.":`embeddings: ${b.reason??"not started"}`,"Download a chat/instruct GGUF (e.g. Qwen, Llama) below to run the chat server on :8082."]}}return{up:!1,installed:c,log:["no GGUF model on disk — download one below first."]}}try{let a=S()??"llama-server";await W().catch(()=>{});let f=await $(e),g=(0,i.spawn)(a,["-m",b,"--host","127.0.0.1","--port","8082","-c","4096",...f],{detached:!0,stdio:"ignore"}),h="";g.on("error",a=>{h=String(a instanceof Error?a.message:a)}),g.unref(),d.push(`$ llama-server -m ${b.split(/[\\/]/).pop()} --port 8082${f.length?" -ngl 99 (GPU)":" (CPU)"}`);let j=!1;for(let a=0;a<12&&!j;a++)await new Promise(a=>setTimeout(a,1e3)),j=(await Z()).up;return h&&d.push("spawn failed: "+h),d.push(j?`✓ ready \xb7 ${C}`:"still starting — large models take longer; run llama-server in a terminal to see progress."),await ah(),(0,p.revalidatePath)("/models"),{up:j,installed:c,log:d}}catch(a){return{up:!1,installed:c,log:["failed to start: "+String(a instanceof Error?a.message:a)]}}}async function aj(){let a=await Y(),b=[];try{if("win32"===f().platform()){let a=(0,i.execSync)('powershell -NoProfile -Command "Get-NetTCPConnection -LocalPort 8082 -State Listen -ErrorAction SilentlyContinue | Select-Object -ExpandProperty OwningProcess"',{timeout:5e3}).toString().split(/\r?\n/).map(a=>a.trim()).filter(Boolean);if(!a.length)throw Error("not running");for(let b of a)(0,i.execSync)(`taskkill /PID ${b} /F`,{stdio:"ignore",timeout:4e3})}else(0,i.execSync)("pkill -f -- 'llama-server.*--port 8082'",{stdio:"ignore",timeout:4e3});b.push("server stopped")}catch{b.push("no running chat llama-server process found")}return await ah(),(0,p.revalidatePath)("/models"),{up:!1,installed:a,log:b}}(0,A.D)([F,G,H,I,J,K,M,N,O,P,Q,X,Y,Z,ab,ac,ad,ae,af,ag,ah,ai,aj]),(0,d.A)(F,"009eccdbd8ee7a12c8c5e6037c44c345427e77b857",null),(0,d.A)(G,"00a6f8a866f9d7671e3850d3f25187395d1cdeef6c",null),(0,d.A)(H,"408f1d4455ce3aba293795b4205968081c64a31dce",null),(0,d.A)(I,"00c4c4eb1e48dec672a116fcc1a525cc89f93ce44a",null),(0,d.A)(J,"408ca376cae089a7b61c971452b2619f47a766ebf3",null),(0,d.A)(K,"001209f45784c2ad06e7af535a2eac7c54a348e8f4",null),(0,d.A)(M,"40b4709d31000ddc40083f5c93c24fba0dc2fade4a",null),(0,d.A)(N,"406e2a7a9982a456863c1e9d1a651469a3b7df11b1",null),(0,d.A)(O,"40af259b251b9d975acd90fdb75b938a85dd092e12",null),(0,d.A)(P,"407a1b7df649692a474e0c68f65bc272c42a31e5f1",null),(0,d.A)(Q,"40cabe95a8cb363461cae6a250b92ca613290d53de",null),(0,d.A)(X,"0021e4c685125ffac4b144dc6d4c81dd3710661180",null),(0,d.A)(Y,"00a35d54388a0f4a02e750cc6144dd2ff12b2f55f9",null),(0,d.A)(Z,"00152b4edc4d7287b8af6b7a64c52896a52497a467",null),(0,d.A)(ab,"00d9f17839436d5ce775bdcf057d58742c95ef1d99",null),(0,d.A)(ac,"00ee3a6f6ac49f05a24cc2c024cf81881ac059825e",null),(0,d.A)(ad,"00c089367da43f93c202a5deebfce0323413bced96",null),(0,d.A)(ae,"0052f12c8c8995e5610d5bc601e7e7e61eccfe5207",null),(0,d.A)(af,"00567203161585d4795d3ba48ec22910e28af6c836",null),(0,d.A)(ag,"00df413d04089d5ba64dd89b76832c0a5ea513d3da",null),(0,d.A)(ah,"003178c62a94d30782b97e6a7d13969b487c64c957",null),(0,d.A)(ai,"402dd1332ea659aac5210dbf48806895a62c99cbbf",null),(0,d.A)(aj,"009cb0b2d8ee90b44d1c3bb6e87e8750425adc0760",null)}};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=7993,exports.ids=[7993],exports.modules={5078:(a,b,c)=>{c.d(b,{k:()=>e});var d=c(2910);let e=(0,d.createServerReference)("60c3370a0609360b8f8f83f153cf524f0622a1ecb2",d.callServer,void 0,d.findSourceMapURL,"saveAgentModel")},19881:(a,b,c)=>{c.d(b,{W:()=>h});var d=c(4374),e=c(74679);let f={anthropic:"anthropic",claude_code:"claude",openai:"openai",codex_cli:"openai",google:"google",google_gemini:"gemini",gemini_cli:"gemini",vertex_ai:"vertexai",mistral:"mistral",deepseek:"deepseek",cohere:"cohere",perplexity:"perplexity",xai_grok:"grok",groq:"groq",ai21:"ai21",nvidia_nim:"nvidia",huggingface:"huggingface",replicate:"replicate",azure_openai:"azure",aws_bedrock:"bedrock",cloudflare:"cloudflare",dashscope:"qwen",zhipu:"zhipu",moonshot:"moonshot",minimax:"minimax",together:"together",openrouter:"openrouter",fireworks:"fireworks",cerebras:"cerebras",ollama:"ollama",ollama_cli:"ollama",lmstudio:"lmstudio",vllm:"vllm",localai:"localai",elevenlabs:"elevenlabs",stability:"stability",jina:"jina",voyage:"voyage"},g={anthropic:["#d97757","An"],openai:["#10a37f","AI"],google_gemini:["#4285f4","G"],google:["#4285f4","G"],mistral:["#fa520f","Mi"],xai_grok:["#1a1a1a","X"],deepseek:["#4d6bfe","DS"],cohere:["#39594d","Co"],ai21:["#e8488a","A2"],perplexity:["#20808d","Px"],groq:["#f55036","Gq"],nvidia_nim:["#76b900","NV"],together:["#0f6fff","To"],fireworks:["#5019c5","Fw"],cerebras:["#f25733","Cb"],huggingface:["#ff9d00","HF"],replicate:["#1a1a1a","Rp"],openrouter:["#6566f1","OR"],litellm:["#00b8a3","LL"],portkey:["#3b5bdb","Pk"],azure_openai:["#0078d4","Az"],aws_bedrock:["#ff9900","Br"],vertex_ai:["#4285f4","Vx"],cloudflare:["#f38020","Cf"],dashscope:["#ff6a00","Qw"],zhipu:["#3859ff","GL"],moonshot:["#16162a","Ki"],minimax:["#e1342c","MM"],ollama:["#0c0c0c","Ol"],llamacpp:["#7a4ddb","Lc"],lmstudio:["#4a5cff","LM"],vllm:["#1668dc","vL"],localai:["#2e7d32","La"],gpt4all:["#5b6cff","G4"],jan:["#1a1a1a","Jn"],claude_code:["#d97757","CC"],codex_cli:["#10a37f","Cx"],gemini_cli:["#4285f4","Gc"],aider:["#14b8a6","Ad"],ollama_cli:["#0c0c0c","Oc"],openclaw:["#e8590c","OC"],hermes_cli:["#6d28d9","Hm"],opencode:["#1a1a1a","Oc"],copilot_cli:["#1f2328","Co"],cursor_cli:["#1a1a1a","Cu"],cline_cli:["#2563eb","Cl"],kilo_code:["#7c3aed","Ki"],voyage:["#5b21b6","Vo"],jina:["#ec4899","Ji"],stability:["#a855f7","St"],elevenlabs:["#1a1a1a","El"]};function h({id:a,size:b=34,radius:c}){let i,j=g[a],k=j?j[0]:"#5b6378",l=j?j[1]:(a||"?").slice(0,2).replace(/[^a-z0-9]/gi,"").toUpperCase(),m=(i=f[a])?`https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg/icons/${i}.svg`:null,[n,o]=(0,e.useState)(!1),p=null!=c?c:Math.round(.28*b),q=m&&!n,r=Math.round(.66*b);return(0,d.jsx)("span",{className:"prov-glyph",style:{width:b,height:b,flex:"0 0 "+b+"px",borderRadius:p,background:q?"#fff":"linear-gradient(150deg, "+k+", color-mix(in srgb, "+k+" 70%, #000))",color:"#fff",display:"grid",placeItems:"center",overflow:"hidden",fontSize:Math.round(.4*b),fontWeight:800,letterSpacing:"-.5px",boxShadow:q?"inset 0 0 0 1px rgba(0,0,0,.08)":"inset 0 1px 0 rgba(255,255,255,.18)"},children:q?(0,d.jsx)("img",{src:m,alt:"",width:r,height:r,loading:"lazy",onError:()=>o(!0),style:{width:r,height:r,objectFit:"contain",display:"block"}}):l})}},27829:(a,b,c)=>{c.d(b,{Y:()=>j});var d=c(4374),e=c(74679),f=c(71898),g=c(31819);let h={cli_claude_code:[{value:"opus",label:"Claude Opus \xb7 most capable"},{value:"sonnet",label:"Claude Sonnet \xb7 balanced"},{value:"haiku",label:"Claude Haiku \xb7 fast"}],cli_codex:[{value:"gpt-5-codex",label:"GPT-5 Codex"},{value:"o4-mini",label:"o4-mini"}],cli_gemini:[{value:"gemini-2.5-pro",label:"Gemini 2.5 Pro"},{value:"gemini-2.5-flash",label:"Gemini 2.5 Flash"}],cli_openclaw:[{value:"(default)",label:"Configured default"},{value:"openai/gpt-5.4",label:"OpenAI \xb7 GPT-5.4"},{value:"anthropic/claude-sonnet-4",label:"Anthropic \xb7 Claude Sonnet 4"}],cli_hermes:[{value:"(default)",label:"Configured default"},{value:"anthropic/claude-sonnet-4.6",label:"Anthropic \xb7 Claude Sonnet 4.6"},{value:"openai/gpt-5.5",label:"OpenAI \xb7 GPT-5.5"}],cli_aider:[{value:"(default)",label:"Configured default"},{value:"anthropic/claude-sonnet-4-6",label:"Anthropic \xb7 Claude Sonnet 4.6"},{value:"openai/gpt-5.2",label:"OpenAI \xb7 GPT-5.2"},{value:"deepseek/deepseek-chat",label:"DeepSeek \xb7 Chat"}],cli_opencode:[{value:"(default)",label:"Configured default"},{value:"anthropic/claude-sonnet-4-6",label:"Anthropic \xb7 Claude Sonnet 4.6"},{value:"openai/gpt-5.2",label:"OpenAI \xb7 GPT-5.2"}],cli_copilot:[{value:"(default)",label:"Configured default"},{value:"claude-sonnet-4.5",label:"Claude Sonnet 4.5"},{value:"gpt-5",label:"GPT-5"}],cli_cursor:[{value:"(default)",label:"Configured default"},{value:"claude-4.5-sonnet",label:"Claude Sonnet 4.5"},{value:"gpt-5",label:"GPT-5"}],cli_cline:[{value:"(default)",label:"Configured default"}],cli_kilo:[{value:"(default)",label:"Configured default"}]};var i=c(69503);function j({adapter:a,value:b,onChange:c,providers:k}){let l=(0,g.k)(),m=function(a){let b=h[a]??null;if(!b)return null;let c=(0,i.L2)(a);return c?b.map(a=>{let b=c.find(b=>b.id===a.value);return b?{value:a.value,label:`${b.label} ${b.version}${b.note?" \xb7 "+b.note:""}`}:a}):b}(a),n=a.startsWith("local_"),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)("");k.find(b=>b.adapter===a);let s=n?[{value:b||"local",label:l("modelpicker.localGguf")}]:null,t=m??s??o??(b?[{value:b,label:b}]:[]),u=b&&!t.some(a=>a.value===b)?[{value:b,label:b},...t]:t;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.m,{mono:!0,value:b,options:u,placeholder:l("modelpicker.placeholder"),onChange:c}),q&&(0,d.jsx)("div",{className:"form-hint",style:{marginTop:4},children:q})]})}c(42351),c(53290)},42351:(a,b,c)=>{c.d(b,{A:()=>e});var d=c(2910);let e=(0,d.createServerReference)("407f803d3ef7cf99e3cbd266af06ad4aa3846dd82d",d.callServer,void 0,d.findSourceMapURL,"listCatalogModels")},53290:(a,b,c)=>{c.d(b,{E:()=>e});var d=c(2910);let e=(0,d.createServerReference)("408ddd9d10761ca340942c417e3bf16d601e91691e",d.callServer,void 0,d.findSourceMapURL,"listProviderModels")},64478:(a,b,c)=>{c.d(b,{j:()=>e});var d=c(2910);let e=(0,d.createServerReference)("40b4709d31000ddc40083f5c93c24fba0dc2fade4a",d.callServer,void 0,d.findSourceMapURL,"pullModel")},65300:(a,b,c)=>{function d(a,b,c){let d=a.match(/^---\n([\s\S]*?)\n---/);if(!d)return a;let e=d[1].split("\n"),f=!1,g=e.map(a=>a.startsWith(b+":")?(f=!0,`${b}: ${c}`):a);return f||g.push(`${b}: ${c}`),a.replace(/^---\n[\s\S]*?\n---/,()=>`---
|
|
2
|
-
${g.join("\n")}
|
|
3
|
-
---`)}function e(a,b,c){let d=RegExp(`(\\*\\*${b}:\\*\\*\\s*).*`);return d.test(a)?a.replace(d,(a,b)=>`${b}${c}`):a}function f(a,b,c){let d=RegExp(`(^|\\n)##\\s+${b}\\s*\\n[\\s\\S]*?(?=\\n##\\s|$)`);return d.test(a)?a.replace(d,(a,d)=>`${d}## ${b}
|
|
4
|
-
${c}`):a.replace(/\s*$/,"")+`
|
|
5
|
-
|
|
6
|
-
## ${b}
|
|
7
|
-
${c}
|
|
8
|
-
`}c.d(b,{a$:()=>e,c4:()=>f,tT:()=>d})},69503:(a,b,c)=>{c.d(b,{L2:()=>e,Ov:()=>f});let d={cli_claude_code:[{id:"opus",label:"Claude Opus",version:"4.8",note:"most capable"},{id:"sonnet",label:"Claude Sonnet",version:"4.6",note:"balanced"},{id:"haiku",label:"Claude Haiku",version:"4.5",note:"fast"}],cli_codex:[{id:"gpt-5-codex",label:"GPT-5 Codex",version:"5"},{id:"o4-mini",label:"o4-mini",version:"o4"}],cli_gemini:[{id:"gemini-2.5-pro",label:"Gemini Pro",version:"2.5"},{id:"gemini-2.5-flash",label:"Gemini Flash",version:"2.5"}],cli_openclaw:[{id:"(default)",label:"OpenClaw",version:"default",note:"configured provider"},{id:"openai/gpt-5.4",label:"GPT",version:"5.4"},{id:"anthropic/claude-sonnet-4",label:"Claude Sonnet",version:"4"}],cli_hermes:[{id:"(default)",label:"Hermes",version:"default",note:"configured provider"},{id:"anthropic/claude-sonnet-4.6",label:"Claude Sonnet",version:"4.6"},{id:"openai/gpt-5.5",label:"GPT",version:"5.5"}],cli_aider:[{id:"(default)",label:"Aider",version:"default",note:"configured provider"},{id:"anthropic/claude-sonnet-4-6",label:"Claude Sonnet",version:"4.6"},{id:"openai/gpt-5.2",label:"GPT",version:"5.2"},{id:"deepseek/deepseek-chat",label:"DeepSeek Chat",version:""}],cli_opencode:[{id:"(default)",label:"OpenCode",version:"default",note:"configured provider"},{id:"anthropic/claude-sonnet-4-6",label:"Claude Sonnet",version:"4.6"},{id:"openai/gpt-5.2",label:"GPT",version:"5.2"}],cli_copilot:[{id:"(default)",label:"Copilot",version:"default",note:"configured provider"},{id:"claude-sonnet-4.5",label:"Claude Sonnet",version:"4.5"},{id:"gpt-5",label:"GPT",version:"5"}],cli_cursor:[{id:"(default)",label:"Cursor",version:"default",note:"configured provider"},{id:"claude-4.5-sonnet",label:"Claude Sonnet",version:"4.5"},{id:"gpt-5",label:"GPT",version:"5"}],cli_cline:[{id:"(default)",label:"Cline",version:"default",note:"configured provider"}],cli_kilo:[{id:"(default)",label:"Kilo Code",version:"default",note:"configured provider"}]};function e(a){return d[a]??null}function f(a){if(!a)return{label:"",version:""};let b=a.replace(/[-_.\s]\d+(?:x\d+)?[bm]\b/i,""),c=b.match(/(\d+(?:[.\-]\d+){0,2})(?!.*\d)/),d=c?c[1].replace(/-/g,"."):"";return{label:(c?b.slice(0,c.index).replace(/[-_.\s]+$/,""):b).split(/[-_.\s]+/).filter(Boolean).map(a=>/^(gpt|llm|api|ai)$/i.test(a)?a.toUpperCase():a.charAt(0).toUpperCase()+a.slice(1)).join(" ")||a,version:d}}},71898:(a,b,c)=>{c.d(b,{m:()=>i});var d=c(4374),e=c(74679),f=c(43526),g=c(19881),h=c(31819);function i({value:a,options:b,onChange:c,placeholder:j,mono:k,glyph:l,disabled:m,searchable:n}){let o=(0,h.k)(),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(""),t=(0,e.useRef)(null),u=(0,e.useRef)(null),v=(0,e.useMemo)(()=>(b||[]).map(a=>"string"==typeof a?{value:a,label:a}:a),[b]),w=v.find(b=>b.value===a),x=(n??v.length>8)&&!m,y=r.trim().toLowerCase(),z=x&&y?v.filter(a=>(a.label+" "+a.value+" "+(a.sub||"")).toLowerCase().includes(y)):v;return(0,d.jsxs)("div",{className:"dd"+(p?" open":"")+(m?" disabled":""),ref:t,children:[(0,d.jsxs)("button",{type:"button",className:"dd-btn"+(k?" mono":""),onClick:()=>!m&&q(a=>!a),children:[l&&w&&(0,d.jsx)(g.W,{id:w.glyphId||w.value,size:20}),(0,d.jsx)("span",{className:"dd-val",children:w?w.label:(0,d.jsx)("span",{className:"dd-ph",children:j||o("common.selectEllipsis")})}),(0,d.jsx)(f.I,{name:"chevronDown",size:14})]}),p&&(0,d.jsxs)("div",{className:"dd-menu scroll",children:[x&&(0,d.jsxs)("div",{style:{position:"sticky",top:0,zIndex:1,display:"flex",alignItems:"center",gap:6,padding:"6px 8px",margin:"-4px -4px 4px",background:"var(--bg-elev, var(--bg-active))",borderBottom:"1px solid var(--border)"},children:[(0,d.jsx)(f.I,{name:"search",size:13}),(0,d.jsx)("input",{ref:u,value:r,placeholder:o("common.searchEllipsis"),onChange:a=>s(a.target.value),onKeyDown:a=>{"Enter"===a.key&&z[0]?(c(z[0].value),q(!1)):"Escape"===a.key&&r&&(a.stopPropagation(),s(""))},className:k?"mono":void 0,style:{flex:1,minWidth:0,background:"transparent",border:"none",outline:"none",color:"var(--text)",fontSize:12.5,fontFamily:k?"var(--mono-font)":"inherit"}}),r&&(0,d.jsx)("button",{type:"button",title:o("common.clear"),onClick:()=>{s(""),u.current?.focus()},style:{background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",display:"flex",padding:0},children:(0,d.jsx)(f.I,{name:"close",size:12})})]}),0===v.length&&(0,d.jsx)("div",{className:"dd-empty",children:o("common.noOptions")}),v.length>0&&0===z.length&&(0,d.jsx)("div",{className:"dd-empty",children:o("dropdown.noMatch",{q:r})}),z.map(b=>(0,d.jsxs)("button",{type:"button",className:"dd-opt"+(b.value===a?" on":""),onClick:()=>{c(b.value),q(!1)},children:[l&&(0,d.jsx)(g.W,{id:b.glyphId||b.value,size:22}),(0,d.jsxs)("span",{className:"dd-opt-main",children:[(0,d.jsx)("span",{className:"dd-opt-label"+(k?" mono":""),children:b.label}),b.sub&&(0,d.jsx)("span",{className:"dd-opt-sub",children:b.sub})]}),b.tag&&(0,d.jsx)("span",{className:"dd-opt-tag",children:b.tag}),b.value===a&&(0,d.jsx)(f.I,{name:"check",size:13})]},b.value))]})]})}},86036:(a,b,c)=>{c.d(b,{bv:()=>t,eH:()=>q,iw:()=>o,jM:()=>n,kq:()=>p,yS:()=>s,z6:()=>r});var d=c(6866),e=c(97603),f=c(31371),g=c(65705),h=c(1890),i=c(53993),j=c(57086),k=c(83963),l=c(65300),m=c(35745);async function n(a,b){let{workspace:c}=await (0,i.nP)();if(a===b)return;let d=Object.fromEntries((await g.db.select().from(h.agent).where((0,e.eq)(h.agent.workspaceId,c.id))).map(a=>[a.id,a])),j=b,k=new Set;for(;j;){if(j===a)return;if(k.has(j))break;k.add(j),j=d[j]?.reportsTo??null}await g.db.update(h.agent).set({reportsTo:b}).where((0,e.Uo)((0,e.eq)(h.agent.id,a),(0,e.eq)(h.agent.workspaceId,c.id))),(0,f.revalidatePath)("/org")}async function o(a,b){let{workspace:c}=await (0,i.nP)();if(a===b)return;let d=Object.fromEntries((await g.db.select().from(h.agent).where((0,e.eq)(h.agent.workspaceId,c.id))).map(a=>[a.handle,a])),j=d[a];if(!j||null!==b&&!d[b])return;let k=b,l=new Set;for(;k;){if(k===a)return;if(l.has(k))break;l.add(k),k=d[k]?.reportsTo??null}await g.db.update(h.agent).set({reportsTo:b}).where((0,e.Uo)((0,e.eq)(h.agent.id,j.id),(0,e.eq)(h.agent.workspaceId,c.id))),(0,f.revalidatePath)("/org")}async function p(a,b){let{org:c,workspace:d}=await (0,i.nP)(),[n]=await g.db.select().from(h.agent).where((0,e.Uo)((0,e.eq)(h.agent.id,a),(0,e.eq)(h.agent.workspaceId,d.id)));if(!n)return;await g.db.update(h.agent).set({...void 0!==b.adapter?{adapter:b.adapter}:{},...void 0!==b.model?{model:b.model}:{},...void 0!==b.temperature?{temperature:b.temperature}:{},...void 0!==b.dailyCapUsd?{dailyCapUsd:b.dailyCapUsd}:{},...void 0!==b.tierFloor?{tierFloor:b.tierFloor}:{}}).where((0,e.eq)(h.agent.id,a));let o=`.claude/agents/${n.handle}/Agent.md`,p=(0,j.sL)(c.id,o);p&&(void 0!==b.adapter&&(p=(0,l.tT)(p,"provider",b.adapter)),void 0!==b.model&&(p=(0,l.tT)(p,"model",b.model)),void 0!==b.temperature&&(p=(0,l.tT)(p,"temperature",b.temperature),p=(0,l.c4)(p,"Behavior",(0,m.T)(b.temperature))),void 0!==b.dailyCapUsd&&(p=(0,l.tT)(p,"dailyCapUsd",b.dailyCapUsd)),void 0!==b.tierFloor&&(p=(0,l.tT)(p,"tierFloor",b.tierFloor)),await (0,k.g)(c.id,o,p)),(0,f.revalidatePath)("/agents/[handle]","page")}async function q(a,b){let{org:c,workspace:d}=await (0,i.nP)(),[k]=await g.db.select().from(h.agent).where((0,e.Uo)((0,e.eq)(h.agent.id,a),(0,e.eq)(h.agent.workspaceId,d.id)));if(k){if(k.image&&k.image.startsWith("uploads/")&&k.image!==b)try{(0,j.EX)(c.id,k.image.split("/").slice(0,2).join("/"))}catch{}await g.db.update(h.agent).set({image:b??null}).where((0,e.eq)(h.agent.id,a)),(0,f.revalidatePath)("/agents/[handle]","page"),(0,f.revalidatePath)("/","layout")}}async function r(a,b){let{org:c,workspace:d}=await (0,i.nP)(),[m]=await g.db.select().from(h.agent).where((0,e.Uo)((0,e.eq)(h.agent.id,a),(0,e.eq)(h.agent.workspaceId,d.id)));if(!m)return;await g.db.update(h.agent).set({persona:b}).where((0,e.eq)(h.agent.id,a));let n=`.claude/agents/${m.handle}/Agent.md`,o=(0,j.sL)(c.id,n);o?(o=(0,l.a$)(o,"Identity",b.identity),o=(0,l.a$)(o,"Ritual",b.ritual),o=(0,l.c4)(o,"System prompt",b.systemPrompt)):o=`---
|
|
9
|
-
handle: ${m.handle}
|
|
10
|
-
name: ${m.name}
|
|
11
|
-
role: ${m.role}
|
|
12
|
-
---
|
|
13
|
-
# ${m.name} — ${m.role}
|
|
14
|
-
|
|
15
|
-
**Identity:** ${b.identity}
|
|
16
|
-
|
|
17
|
-
**Ritual:** ${b.ritual}
|
|
18
|
-
|
|
19
|
-
## System prompt
|
|
20
|
-
${b.systemPrompt}
|
|
21
|
-
`,await (0,k.g)(c.id,n,o),(0,f.revalidatePath)("/agents/[handle]","page")}async function s(a,b,c){let{workspace:d}=await (0,i.nP)();await g.db.update(h.agent).set({orgX:Math.round(b),orgY:Math.round(c)}).where((0,e.Uo)((0,e.eq)(h.agent.handle,a),(0,e.eq)(h.agent.workspaceId,d.id)))}async function t(a,b){let{workspace:c}=await (0,i.nP)(),[d]=await g.db.select().from(h.agent).where((0,e.Uo)((0,e.eq)(h.agent.id,a),(0,e.eq)(h.agent.workspaceId,c.id)));d&&(await g.db.update(h.agent).set({rag:b}).where((0,e.eq)(h.agent.id,a)),(0,f.revalidatePath)("/agents/[handle]","page"))}(0,c(74252).D)([n,o,p,q,r,s,t]),(0,d.A)(n,"6043cdc20ab43d5c93fa9c29cf113bc9e58ac85bc4",null),(0,d.A)(o,"6037b9d6040ab1ed0adf0dd4f116ea3fe4db2fe7f3",null),(0,d.A)(p,"60c3370a0609360b8f8f83f153cf524f0622a1ecb2",null),(0,d.A)(q,"60281705dd6eeb50b1e9a5fe9f5c190743c7e25d8f",null),(0,d.A)(r,"60a280e6fbace449161caafb3a74ec796eaf55387f",null),(0,d.A)(s,"702f0e05dc1b39847b36bf665da5c5aa55f40d35fa",null),(0,d.A)(t,"601e68a1cf66bfc20d5c3d59c2309ab430d730362b",null)},96214:(a,b,c)=>{c.d(b,{aO:()=>H,AO:()=>M,EC:()=>O,uR:()=>L,Po:()=>J,iw:()=>P,xf:()=>Q,x1:()=>I,WU:()=>N});var d=c(6866),e=c(77598),f=c(97603),g=c(31371),h=c(65705),i=c(1890),j=c(53993),k=c(38926),l=c(29803),m=c(70149);async function n(a,b,c=12e3){let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{let c,e=await fetch(a,{headers:b,signal:d.signal}),f=await e.text();try{c=JSON.parse(f)}catch{c=void 0}return{ok:e.ok,status:e.status,json:c,error:e.ok?void 0:f.slice(0,200)||e.statusText}}catch(a){return{ok:!1,status:0,error:a instanceof Error?a.message:String(a)}}finally{clearTimeout(e)}}function o(a){return a&&"object"==typeof a?Array.isArray(a.data)?a.data.length:Array.isArray(a.models)?a.models.length:0:0}async function p(a,b){let c=a.defaultAdapter;if(c.startsWith("cli_")){let a=(0,m.hW)(c);return await (0,m.$g)(a)?{ok:!0,count:(m.w5[c]??m.w5.cli_claude_code).length}:{ok:!1,count:0,error:`${a} CLI not found on PATH`}}if("local_ollama"===c||"ollama"===a.id||"ollama_openai"===a.id){let b=a.baseUrl||"http://127.0.0.1:11434",c=await n(b.replace(/\/$/,"")+"/api/tags",{});return c.ok?{ok:!0,count:o(c.json)}:{ok:!1,count:0,error:c.error||"Ollama not reachable at "+b}}if("local_runtime"===a.category){let c=a.baseUrl||"http://127.0.0.1:8080",d=await n(c.replace(/\/$/,"")+"/v1/models",b?{Authorization:"Bearer "+b}:{});return d.ok?{ok:!0,count:o(d.json)}:{ok:!1,count:0,error:d.error||"local runtime not reachable"}}if(!b)return{ok:!1,count:0,error:"no API key in vault — connect with a key first"};if("http_anthropic"===c||"anthropic"===a.id){let a=await n("https://api.anthropic.com/v1/models",{"x-api-key":b,"anthropic-version":"2023-06-01"});return a.ok?{ok:!0,count:o(a.json)}:{ok:!1,count:0,error:a.error||"auth failed ("+a.status+")"}}let d=(a.baseUrl||"https://api.openai.com/v1").replace(/\/$/,""),e=d.endsWith("/models")?d:d+(d.includes("/v1")?"/models":"/v1/models"),f=await n(e,{Authorization:"Bearer "+b});return f.ok?{ok:!0,count:o(f.json)}:{ok:!1,count:0,error:f.error||"auth failed ("+f.status+")"}}var q=c(73024),r=c(76760),s=c(57086);let t={anthropic:"anthropic",openai:"openai",google_gemini:"google",xai_grok:"xai",deepseek:"deepseek",cohere:"cohere",groq:"groq",nvidia_nim:"nvidia",together:"togetherai",fireworks:"fireworks-ai",cerebras:"cerebras",perplexity:"perplexity",openrouter:"openrouter",mistral:"mistral",moonshot:"moonshotai",dashscope:"alibaba",zhipu:"zhipuai",azure_openai:"azure",aws_bedrock:"amazon-bedrock",vertex_ai:"google-vertex",claude_code:"anthropic",gemini_cli:"google",codex_cli:"openai"};function u(a){return t[a]?t[a]:a.replace(/_(grok|gemini|nim|cli|openai|api|server|rt)$/g,"").replace(/_/g,"-")}let v={anthropic:["sonnet-4","sonnet","opus-4","opus"],openai:["gpt-5.2","gpt-5.1","gpt-5","gpt-4.1","o4"],google:["gemini-3-pro","gemini-3","gemini-2.5-pro","pro"],xai:["grok-4","grok-3","grok"],groq:["llama-4","llama-3.3","llama-3.1"],deepseek:["deepseek-chat","deepseek-v3","deepseek-reasoner"],mistral:["mistral-large","mistral-medium"],openrouter:["claude-sonnet","gpt-5","gemini"]},w=(a,b,c,d,e,f,g,h)=>({id:a,name:b,context:c,outputLimit:d,inputCost:e,outputCost:f,caps:{reasoning:!!g.reasoning,tools:!!g.tools,vision:!!g.vision},released:h}),x={anthropic:[w("claude-opus-4-8","Claude Opus 4.8",1e6,64e3,5,25,{reasoning:!0,tools:!0,vision:!0},"2026-02-01"),w("claude-opus-4-7","Claude Opus 4.7",1e6,64e3,5,25,{reasoning:!0,tools:!0,vision:!0},"2025-12-01"),w("claude-sonnet-4-6","Claude Sonnet 4.6",1e6,64e3,3,15,{reasoning:!0,tools:!0,vision:!0},"2026-01-15"),w("claude-haiku-4-5","Claude Haiku 4.5",2e5,32e3,1,5,{tools:!0,vision:!0},"2025-10-01")],openai:[w("gpt-5.2","GPT-5.2",4e5,128e3,1.25,10,{reasoning:!0,tools:!0,vision:!0},"2026-03-01"),w("gpt-5.1","GPT-5.1",4e5,128e3,1.25,10,{reasoning:!0,tools:!0,vision:!0},"2025-12-01"),w("gpt-5","GPT-5",4e5,128e3,1.25,10,{reasoning:!0,tools:!0,vision:!0},"2025-08-01"),w("o4-mini","o4-mini",2e5,1e5,1.1,4.4,{reasoning:!0,tools:!0},"2025-04-01")],google:[w("gemini-3-pro","Gemini 3 Pro",2e6,64e3,2,12,{reasoning:!0,tools:!0,vision:!0},"2026-02-01"),w("gemini-3-flash","Gemini 3 Flash",1e6,64e3,.3,2.5,{tools:!0,vision:!0},"2026-02-01"),w("gemini-2.5-pro","Gemini 2.5 Pro",2e6,64e3,1.25,10,{reasoning:!0,tools:!0,vision:!0},"2025-06-01")],xai:[w("grok-4.3","Grok 4.3",256e3,64e3,3,15,{reasoning:!0,tools:!0,vision:!0},"2026-02-01"),w("grok-4","Grok 4",256e3,64e3,3,15,{reasoning:!0,tools:!0,vision:!0},"2025-09-01"),w("grok-3","Grok 3",131072,32e3,3,15,{tools:!0,vision:!0},"2025-02-01")],deepseek:[w("deepseek-chat","DeepSeek Chat",128e3,8e3,.27,1.1,{tools:!0},"2025-12-01"),w("deepseek-reasoner","DeepSeek Reasoner",128e3,64e3,.55,2.19,{reasoning:!0,tools:!0},"2025-12-01")],groq:[w("llama-4-scout","Llama 4 Scout",131072,8e3,.11,.34,{tools:!0,vision:!0},"2025-04-01"),w("llama-3.3-70b","Llama 3.3 70B",131072,32e3,.59,.79,{tools:!0},"2024-12-01")]},y=null;function z(){return(0,r.join)((0,s.r$)(),"cache","models-dev.json")}async function A(){try{let a=await fetch("https://models.dev/api.json",{signal:AbortSignal.timeout(1e4),headers:{accept:"application/json"}});if(!a.ok)return null;let b=await a.json();if(!b||"object"!=typeof b)return null;let c={};for(let[a,d]of Object.entries(b)){let b=d?.models,e=function(a){if(!a||"object"!=typeof a)return[];let b=[];for(let[c,d]of Object.entries(a)){let a=d??{},e=String(a.id??c),f=e.includes("/")?e.split("/").pop():e;if(!f)continue;let g=a.modalities??{},h=Array.isArray(g.input)?g.input:[],i=a.limit??{},j=a.cost??{},k={reasoning:!0===a.reasoning,tools:!0===a.tool_call,vision:!0===a.attachment||h.includes("image")};b.push({id:f,name:String(a.name??f),context:Number(i.context??0)||0,outputLimit:Number(i.output??0)||0,inputCost:Number(j.input??0)||0,outputCost:Number(j.output??0)||0,caps:k,released:"string"==typeof a.release_date?a.release_date:""})}return b}(b);e.length&&(c[a]=e)}return Object.keys(c).length?c:null}catch{return null}}async function B(){if(y&&Date.now()-y.at<864e5)return y.data;let a=function(){try{let a=z();if(!(0,q.existsSync)(a))return null;let b=JSON.parse((0,q.readFileSync)(a,"utf8"));if(!b?.data||"object"!=typeof b.data)return null;return{at:Number(b.at??(0,q.statSync)(a).mtimeMs),data:b.data}}catch{return null}}();if(a&&Date.now()-a.at<864e5)return y=a,a.data;let b=await A();if(b){y={at:Date.now(),data:b};try{(0,q.mkdirSync)((0,r.join)((0,s.r$)(),"cache"),{recursive:!0}),(0,q.writeFileSync)(z(),JSON.stringify({at:Date.now(),data:b}),"utf8")}catch{}return b}return a?(y=a,a.data):{}}async function C(a){let b=u(a),c=await B();return c[b]?.length?c[b]:x[b]??[]}async function D(a,b,c=9e3){try{let d=await fetch(a,{headers:b,signal:AbortSignal.timeout(c)});if(!d.ok)return null;return await d.json()}catch{return null}}async function E(a){let{catalogId:b,adapter:c,baseUrl:d,apiKey:e}=a;if(c.startsWith("cli_"))return"cli_opencode"===c?(await (0,m.ZB)("opencode")).map(a=>({id:a})):"cli_aider"===c?(await (0,m.ZB)("aider")).map(a=>({id:a})):null;if(/ollama/i.test(b)||c.includes("ollama")){let a=(d||"http://127.0.0.1:11434").replace(/\/$/,"").replace(/\/v1$/,""),b=await D(`${a}/api/tags`,{});return b?(b.models??[]).map(a=>({id:String(a.name??"")})).filter(a=>a.id):[]}if(!d)return null;let f=d.replace(/\/$/,""),g="http_anthropic"===c||"anthropic"===b,h=g?"https://api.anthropic.com/v1/models":f.endsWith("/models")?f:f+(f.includes("/v1")?"/models":"/v1/models"),i=g?e?{"x-api-key":e,"anthropic-version":"2023-06-01"}:{}:e?{authorization:`Bearer ${e}`}:{},j=await D(h,i);return j?(Array.isArray(j.data)?j.data:Array.isArray(j.models)?j.models:[]).map(a=>{let b=String(a.id??a.name??"");if(!b)return null;let c={id:b};"string"==typeof a.display_name?c.name=a.display_name:"string"==typeof a.name&&(c.name=a.name),"number"==typeof a.context_length&&(c.context=a.context_length);let d=a.pricing;if(d){let a=Number(d.prompt),b=Number(d.completion);Number.isFinite(a)&&a>0&&(c.inputCost=1e6*a),Number.isFinite(b)&&b>0&&(c.outputCost=1e6*b)}return c}).filter(a=>!!a).slice(0,200):[]}async function F(){let a=await B(),b=new Map;for(let c of Object.values(a))for(let a of c){let c=a.id.toLowerCase();b.has(c)||b.set(c,a)}return b}async function G(a,b){let c=await C(a);if(!b||0===b.length)return c;let d=new Map;for(let a of c)d.set(a.id.toLowerCase(),a);let e=await F(),f=a=>{let b=a.toLowerCase(),c=a.includes("/")?a.split("/").pop().toLowerCase():b;return d.get(b)??d.get(c)??e.get(b)??e.get(c)},g=[];for(let a of b){let b=f(a.id);g.push({id:a.id,name:a.name||b?.name||a.id,context:a.context??b?.context??0,outputLimit:b?.outputLimit??0,inputCost:a.inputCost??b?.inputCost??0,outputCost:a.outputCost??b?.outputCost??0,caps:b?.caps??{reasoning:!1,tools:!1,vision:!1},released:b?.released??""})}return g}async function H(a,b){let{workspace:c}=await (0,j.nP)(),d=(0,l.kH)(a);if(!d)return;let f=(0,e.randomUUID)();await h.db.insert(i.provider).values({id:f,workspaceId:c.id,catalogId:a,adapter:d.defaultAdapter,kind:"cli"===d.category?"cli":"local_runtime"===d.category?"local":"cloud",auth:d.connectionTypes.includes("api_key")?"api_key":d.connectionTypes[0],status:"needs_sync",syncStatus:d.supportsModelSync?"implemented":"manual"}),b&&await (0,k.IW)(c.id,`${a}_api_key`,b,f),(0,g.revalidatePath)("/models"),await I(f)}async function I(a){let b,{workspace:c}=await (0,j.nP)(),[d]=await h.db.select().from(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.id,a),(0,f.eq)(i.provider.workspaceId,c.id)));if(!d)return{ok:!1,error:"not found"};let e=(0,l.kH)(d.catalogId);if(!e)return{ok:!1,error:"unknown provider"};let n=await (0,k.r6)(c.id,`${d.catalogId}_api_key`),o=await p(e,n),q=null;if("cli"===e.category){let a=(0,m.hW)(e.defaultAdapter);b=(q=await (0,m.$g)(a).catch(()=>null))?await (0,m.Kp)(a).catch(()=>"unknown"):"needs_login"}else b="local_runtime"===e.category?o.ok?"ready":"unknown":n&&o.ok?"ready":"needs_key";return await h.db.update(i.provider).set({status:o.ok?"connected":"error",modelCount:o.count,lastSync:new Date,cliVersion:q,authState:b}).where((0,f.eq)(i.provider.id,a)),o.ok&&await J(a).catch(()=>{}),(0,g.revalidatePath)("/models"),o}async function J(a){let{workspace:b}=await (0,j.nP)(),[c]=await h.db.select().from(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.id,a),(0,f.eq)(i.provider.workspaceId,b.id)));if(!c)return{ok:!1,count:0,error:"not found"};let d=await K(c);return(0,g.revalidatePath)("/models"),d}async function K(a){let b,c,d,g=(0,l.kH)(a.catalogId);if(!g)return{ok:!1,count:0,error:"unknown provider"};let j=await (0,k.r6)(a.workspaceId,`${a.catalogId}_api_key`),n="cli"===g.category;try{b=await E({catalogId:a.catalogId,adapter:a.adapter,baseUrl:g.baseUrl,apiKey:j})}catch{b=null}if(n){let e=(0,m.hW)(a.adapter);d=(c=await (0,m.$g)(e).catch(()=>null))?await (0,m.Kp)(e).catch(()=>"unknown"):"needs_login",null===b&&(b=(m.w5[a.adapter]??[]).filter(a=>"(default)"!==a).map(a=>({id:a})))}if(null===b)return{ok:!0,count:0};let o=await G(a.catalogId,b),p=new Date,q=o.length?function(a,b){if(!b.length)return"";let c=v[u(a)];if(c)for(let a of c){let c=b.filter(b=>b.id.toLowerCase().includes(a));if(c.length)return c.sort((a,b)=>(b.released||"").localeCompare(a.released||"")),c[0].id}let d=b.filter(a=>a.released);return d.length?(d.sort((a,b)=>b.released.localeCompare(a.released)),d[0].id):b[0].id}(a.catalogId,o):null;if(o.length)await h.db.delete(i.providerModel).where((0,f.eq)(i.providerModel.providerId,a.id)),await h.db.insert(i.providerModel).values(o.map(b=>({id:(0,e.randomUUID)(),workspaceId:a.workspaceId,providerId:a.id,catalogId:a.catalogId,modelId:b.id,name:b.name,context:b.context,outputLimit:b.outputLimit,inputCost:b.inputCost,outputCost:b.outputCost,caps:b.caps,released:b.released,isDefault:b.id===q,lastSeen:p})));else if(!n)return{ok:!1,count:0,error:"no models returned"};let r=n&&!c?"needs_sync":"connected";return await h.db.update(i.provider).set({status:r,modelCount:o.length||(n?a.modelCount:0),lastSync:p,defaultModel:q||a.defaultModel,...n?{cliVersion:c??null,authState:d??null}:{}}).where((0,f.eq)(i.provider.id,a.id)),{ok:!0,count:o.length}}async function L(a=12){let b,c=new Date(Date.now()-60*a*6e4);try{b=await h.db.select().from(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.status,"connected"),(0,f.or)((0,f.kZ)(i.provider.lastSync),(0,f.lt)(i.provider.lastSync,c))))}catch{return{refreshed:0}}let d=0;for(let a of b.slice(0,50))try{let b=await K(a);b.ok&&b.count>0&&d++}catch{}return{refreshed:d}}async function M(a){let{workspace:b}=await (0,j.nP)(),c=(await h.db.select().from(i.providerModel).where((0,f.Uo)((0,f.eq)(i.providerModel.providerId,a),(0,f.eq)(i.providerModel.workspaceId,b.id)))).map(a=>({id:a.modelId,name:a.name,context:a.context,outputLimit:a.outputLimit,inputCost:a.inputCost,outputCost:a.outputCost,caps:a.caps??{reasoning:!1,tools:!1,vision:!1},released:a.released,isDefault:a.isDefault}));return c.sort((a,b)=>Number(b.isDefault)-Number(a.isDefault)||(b.released||"").localeCompare(a.released||"")||a.name.localeCompare(b.name)),{models:c}}async function N(a){let{workspace:b}=await (0,j.nP)(),[c]=await h.db.select().from(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.id,a),(0,f.eq)(i.provider.workspaceId,b.id)));if(!c)return{ok:!1,error:"not found"};let d=(0,l.kH)(c.catalogId);if(!d)return{ok:!1,error:"unknown provider"};let e=await (0,k.r6)(b.id,`${c.catalogId}_api_key`),m=await p(d,e);return await h.db.update(i.provider).set({status:m.ok?"connected":"error"}).where((0,f.eq)(i.provider.id,a)),(0,g.revalidatePath)("/models"),{ok:m.ok,error:m.error}}async function O(a){let{workspace:b}=await (0,j.nP)(),[c]=await h.db.select().from(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.id,a),(0,f.eq)(i.provider.workspaceId,b.id)));if(!c)return{models:[],error:"not found"};let d=(0,l.kH)(c.catalogId);if(!d?.baseUrl)return{models:[],error:"no public endpoint for this provider"};let e=await (0,k.r6)(b.id,`${c.catalogId}_api_key`),g=d.baseUrl.replace(/\/$/,"");try{let a=/ollama/i.test(c.catalogId)||c.adapter.includes("ollama")?`${g.replace(/\/v1$/,"")}/api/tags`:`${g}/models`,b=await fetch(a,{headers:e?{authorization:`Bearer ${e}`}:{},signal:AbortSignal.timeout(8e3)});if(!b.ok)return{models:[],error:`endpoint ${b.status}`};let d=await b.json();return{models:(d.data??d.models??[]).map(a=>a.id??a.name??"").filter(Boolean).slice(0,80)}}catch(b){let a=String(b instanceof Error?b.message:b);return{models:[],error:/abort|fetch failed|ECONN/i.test(a)?"endpoint unreachable":a}}}async function P(a){let{workspace:b}=await (0,j.nP)(),[c]=await h.db.select().from(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.id,a),(0,f.eq)(i.provider.workspaceId,b.id)));c&&await (0,k.Kh)(b.id,`${c.catalogId}_api_key`),await h.db.delete(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.id,a),(0,f.eq)(i.provider.workspaceId,b.id))),(0,g.revalidatePath)("/models")}async function Q(a){let{workspace:b}=await (0,j.nP)(),[c]=await h.db.select().from(i.provider).where((0,f.Uo)((0,f.eq)(i.provider.id,a),(0,f.eq)(i.provider.workspaceId,b.id)));c&&(await (0,k.Kh)(b.id,`${c.catalogId}_api_key`),await h.db.update(i.provider).set({auth:"none",status:"needs_sync",modelCount:0}).where((0,f.eq)(i.provider.id,a)),(0,g.revalidatePath)("/models"))}(0,c(74252).D)([H,I,J,L,M,N,O,P,Q]),(0,d.A)(H,"6049c59fe05aeca70997ac50ed65f59dfbe72434f8",null),(0,d.A)(I,"40dfd5e28d89607894b4d7c5da59463899b9a6568f",null),(0,d.A)(J,"4073f99a66405a8f2309e35be0746d7b7b3c5a34a7",null),(0,d.A)(L,"408ec6c0614fc572addf1b2179daedf12032d27d32",null),(0,d.A)(M,"407f803d3ef7cf99e3cbd266af06ad4aa3846dd82d",null),(0,d.A)(N,"4058c65420fcd3e7982fc48b78ca683b3a2938e6e6",null),(0,d.A)(O,"408ddd9d10761ca340942c417e3bf16d601e91691e",null),(0,d.A)(P,"4032f4be7f847c05ba39154e7d151b6ca63a1c5406",null),(0,d.A)(Q,"40ed0cff572629c648290a03259f8066a304253581",null)}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=8497,exports.ids=[8497],exports.modules={78497:(a,b,c)=>{c.d(b,{createKyselyAdapter:()=>d.xA,kyselyAdapter:()=>d.rV});var d=c(30200)}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=850,exports.ids=[850],exports.modules={20850:(a,b,c)=>{c.d(b,{pp:()=>l,VX:()=>s,CS:()=>v,Vd:()=>w,ZF:()=>q});var d=c(31421),e=c(73024),f=c(76760),g=c(77030),h=c(18612);c(37067),c(38522);let i=new Map,j="win32"===process.platform,k=new Map;function l(a){let b=(0,h.HZ)(a),c=[b];for(let a of["packages","apps","app","web","client","frontend","backend","server","api"]){let d=(0,f.join)(b,a);if((0,e.existsSync)(d))try{for(let a of(0,e.readdirSync)(d,{withFileTypes:!0}))a.isDirectory()&&c.push((0,f.join)(d,a.name))}catch{}}let d="$PORT";for(let a of c){let b=function(a){let b=(0,f.join)(a,"package.json");if(!(0,e.existsSync)(b))return null;try{let c=JSON.parse((0,e.readFileSync)(b,"utf8")),d=c.scripts??{},g=d.dev?"dev":d.start?"start":d.serve?"serve":null;if(!g)return null;let h=(0,e.existsSync)((0,f.join)(a,"pnpm-lock.yaml"))?"pnpm":(0,e.existsSync)((0,f.join)(a,"yarn.lock"))?"yarn":"npm",i=!(0,e.existsSync)((0,f.join)(a,"node_modules"));return{dir:a,kind:"node",name:c.name??"project",label:`${h} ${g}`,install:i?{cmd:h,args:["install"]}:void 0,runCmd:h,runArgs:"npm"===h?["run",g]:[g]}}catch{return null}}(a);if(b)return b}for(let a of c){let b=b=>(0,e.existsSync)((0,f.join)(a,b)),c=a.split(/[\\/]/).pop()||"project",g=b("requirements.txt")?{cmd:"python",args:["-m","pip","install","-r","requirements.txt"]}:void 0;if(b("manage.py"))return{dir:a,kind:"python",name:c,label:"django runserver",install:g,runCmd:"python",runArgs:["manage.py","runserver",`127.0.0.1:${d}`]};if(b("main.py")){let b="";try{b=(0,e.readFileSync)((0,f.join)(a,"main.py"),"utf8")}catch{}if(/FastAPI\s*\(/.test(b))return{dir:a,kind:"python",name:c,label:"uvicorn",install:g,runCmd:"python",runArgs:["-m","uvicorn","main:app","--host","127.0.0.1","--port",d]};return{dir:a,kind:"python",name:c,label:"python main.py",install:g,runCmd:"python",runArgs:["main.py"]}}if(b("go.mod"))return{dir:a,kind:"go",name:c,label:"go run",runCmd:"go",runArgs:["run","."]};if(b("Cargo.toml"))return{dir:a,kind:"rust",name:c,label:"cargo run",runCmd:"cargo",runArgs:["run"]};if(b("server.js"))return{dir:a,kind:"static",name:c,label:"node server.js",runCmd:"node",runArgs:["server.js"]}}return null}let m=new Map;async function n(a){let b=m.get(a);if(b&&Date.now()-b.at<6e4)return b.ok;let c=await new Promise(b=>{try{let c=(0,d.spawn)(a,["--version"],{shell:j,windowsHide:!0}),e=!1,f=a=>{e||(e=!0,b(a))};c.on("error",()=>f(!1)),c.on("close",()=>f(!0)),setTimeout(()=>{try{c.kill()}catch{}f(!0)},8e3)}catch{b(!1)}});return m.set(a,{ok:c,at:Date.now()}),c}function o(a,b,c){for(let d of c.split(/\r?\n/)){let c=d.trimEnd();c&&(a.logs.push({c:b,t:c}),"starting"===a.status&&/(ready|listening|localhost:|started server|compiled)/i.test(c)&&(a.status="running"))}a.logs.length>400&&a.logs.splice(0,a.logs.length-400)}let p=new Map;async function q(a,b){let c=k.get(a);if(c&&"stopped"!==c.status&&"error"!==c.status&&!c.proc.killed)return u(c);let d=p.get(a);if(d)return d;let e=r(a,b);p.set(a,e);try{return await e}finally{p.delete(a)}}async function r(a,b){let c,h,i=l(b);if(!i)return{running:!1,status:"error",logs:[{c:"err",t:"No runnable project found (no package.json with a dev/start script, or a Python/Go/Rust project, under the workspace)."}]};if("node"!==i.kind&&"static"!==i.kind&&!await n(i.runCmd))return{running:!1,status:"error",port:void 0,url:void 0,project:i.label,logs:[{c:"err",t:`Toolchain not found: '${i.runCmd}' is not installed or not on PATH. This ${i.kind} starter needs it to boot — install ${i.kind} (or pick a Node stack).`}]};try{c=await function(a=4173,b=4999){return new Promise((c,d)=>{let e=a=>{if(a>b)return d(Error("no free port"));let f=(0,g.createServer)();f.once("error",()=>e(a+1)),f.once("listening",()=>f.close(()=>c(a))),f.listen(a,"127.0.0.1")};e(a)})}()}catch{return{running:!1,status:"error",logs:[{c:"err",t:"No free port available."}]}}let m={...process.env,PORT:String(c),BROWSER:"none",NODE_ENV:"development"},p=i.runArgs.map(a=>a.includes("$PORT")?a.replace("$PORT",String(c)):a),q={proc:null,port:c,url:`http://127.0.0.1:${c}`,status:"starting",dir:i.dir,kind:i.kind,label:i.label,logs:[],startedAt:Date.now()};o(q,"info",`project: ${i.name} \xb7 ${i.label} \xb7 :${c}`);let r=(0,f.join)(i.dir,".constella-pyinstalled"),s=i.install&&("node"===i.kind||"python"===i.kind&&!(0,e.existsSync)(r));if(i.install&&s){o(q,"info",`$ ${i.install.cmd} ${i.install.args.join(" ")}`),k.set(a,q);let b=(0,d.spawn)(i.install.cmd,i.install.args,{cwd:i.dir,env:m,shell:j,windowsHide:!0});b.stdout?.on("data",a=>o(q,"out",a.toString())),b.stderr?.on("data",a=>o(q,"err",a.toString()));let c=await new Promise(a=>{b.on("close",a),b.on("error",()=>a(-1))});if("python"===i.kind&&0===c)try{(0,e.writeFileSync)(r,"ok")}catch{}}q.proc=h=(0,d.spawn)(i.runCmd,p,{cwd:i.dir,env:m,shell:j,windowsHide:!0,detached:!j}),h.stdout?.on("data",a=>o(q,"out",a.toString())),h.stderr?.on("data",a=>o(q,"err",a.toString())),h.on("error",a=>{q.status="error",o(q,"err",/ENOENT/.test(String(a))?`'${i.runCmd}' not found — install the ${i.kind} toolchain or pick a Node stack.`:"spawn failed: "+String(a instanceof Error?a.message:a))}),h.on("close",a=>{"stopped"!==q.status&&(q.status=0===a?"stopped":"error",o(q,"info",`process exited (${a})`))}),k.set(a,q);let t="go"===i.kind||"rust"===i.kind?12e4:"python"===i.kind?6e4:3e4;return await x(q.url,t).then(a=>{a&&"starting"===q.status&&(q.status="running")}),u(q)}async function s(a,b){if(!l(b))return{ok:!0,detail:"no runnable project to gate"};let c=v(a);if("running"===c.status&&c.url&&await x(c.url,3e3))return{ok:!0,detail:"dev server still reachable"};("error"===c.status||"stopped"===c.status)&&await t(a);let d=await q(a,b);if(("running"===d.status||"starting"===d.status)&&d.url&&await x(d.url,6e3))return{ok:!0,detail:"booted"};let e=d.logs.map(a=>a.t).join(" | ");return/Toolchain not found|not found —|not installed/.test(e)?{ok:!0,detail:"toolchain unavailable — boot gate skipped (cannot validate)"}:{ok:!1,detail:d.logs.slice(-5).map(a=>a.t).join(" | ")||"dev server failed to boot"}}async function t(a){let b=k.get(a);if(!b)return{running:!1,status:"stopped",logs:[]};b.status="stopped";try{b.proc?.pid&&(j?(0,d.spawn)("taskkill",["/PID",String(b.proc.pid),"/T","/F"],{windowsHide:!0}):process.kill(-b.proc.pid,"SIGKILL"))}catch{try{b.proc?.kill("SIGKILL")}catch{}}let c=i.get(a);if(c){try{c.server.close()}catch{}i.delete(a)}return o(b,"info","server stopped"),u(b)}function u(a){return{running:"running"===a.status||"starting"===a.status,status:a.status,port:a.port,url:a.url,project:a.label,logs:a.logs.slice(-120)}}function v(a){let b=k.get(a);return b?u(b):{running:!1,status:"none",logs:[]}}function w(a){let b=k.get(a);return b&&("running"===b.status||"starting"===b.status)?b.url:null}async function x(a,b){let c=Date.now()+b;for(;Date.now()<c;){try{return await fetch(a,{signal:AbortSignal.timeout(2e3)}),!0}catch{}await new Promise(a=>setTimeout(a,1e3))}return!1}}};
|