constellai 0.3.7 → 0.3.8
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/1243.js +1 -0
- package/.next/server/chunks/{6719.js → 1304.js} +1 -1
- package/.next/server/chunks/1678.js +417 -0
- 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/3392.js +1 -0
- 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/{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/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/6538.js +4 -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/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/7727.js +1 -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/8237.js +12 -0
- package/.next/server/chunks/8498.js +1 -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/939.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/chunks/9795.js +21 -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/{23550918-ff694f70f4b0648c.js → 1ceccf25-731706dbe95504b9.js} +1 -1
- package/.next/static/chunks/3556-dbb9200143640484.js +1 -0
- package/.next/static/chunks/{2320-fc8b39380e69d465.js → 3703-b09be945970ea475.js} +1 -1
- package/.next/static/chunks/5452-d0ce3b51601a5815.js +1 -0
- package/.next/static/chunks/5523-9c369c915ee6d9c9.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-21f40f9caef5d658.js +12 -0
- package/.next/static/chunks/7363-b9ebe28fed23b997.js +1 -0
- package/.next/static/chunks/7621-87d8d0d0568de3ca.js +4 -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-ce3fc6003368f592.js +1 -0
- package/.next/static/chunks/app/(app)/agents/[handle]/page-236e13b8edadd480.js +1 -0
- package/.next/static/chunks/app/(app)/code/page-18ae765c81a2c709.js +1 -0
- package/.next/static/chunks/app/(app)/config/page-8a6fcf6c04337210.js +1 -0
- package/.next/static/chunks/app/(app)/costs/page-230b0ef03a2024b0.js +1 -0
- package/.next/static/chunks/app/(app)/cron/page-ca89769e2522191d.js +1 -0
- package/.next/static/chunks/app/(app)/dashboard/page-6237c3a35cce55ce.js +1 -0
- package/.next/static/chunks/app/(app)/design/{page-11b9cc40f32fe34f.js → page-5997054187e59e74.js} +3 -3
- package/.next/static/chunks/app/(app)/docs/[id]/page-3362d323e0f4dada.js +1 -0
- package/.next/static/chunks/app/(app)/docs/page-d7d8018a7884a4b4.js +1 -0
- package/.next/static/chunks/app/(app)/error-f9a3caa63e064a7e.js +1 -0
- package/.next/static/chunks/app/(app)/github/page-f5c1cae725d080fb.js +1 -0
- package/.next/static/chunks/app/(app)/goals/page-95e85ce115ed9ff3.js +1 -0
- package/.next/static/chunks/app/(app)/inbox/page-474c3f0a181bbbd3.js +12 -0
- package/.next/static/chunks/app/(app)/knowledge/page-08596428ca34b620.js +1 -0
- package/.next/static/chunks/app/(app)/layout-720a1171f7152d86.js +1 -0
- package/.next/static/chunks/app/(app)/models/page-fa1eb257e6911c9a.js +1 -0
- package/.next/static/chunks/app/(app)/notifications/page-31f2a041bdb497b9.js +12 -0
- package/.next/static/chunks/app/(app)/org/page-666438930ddc4639.js +12 -0
- package/.next/static/chunks/app/(app)/organizations/page-0de7da829c9b2249.js +1 -0
- package/.next/static/chunks/app/(app)/page-bfcf3d25f468240f.js +1 -0
- package/.next/static/chunks/app/(app)/planner/page-0fc0ebe2d338769a.js +1 -0
- package/.next/static/chunks/app/(app)/plugins/page-ad369fbfec6f3d1c.js +1 -0
- package/.next/static/chunks/app/(app)/pm/page-bb39c9d9a4f0d597.js +1 -0
- package/.next/static/chunks/app/(app)/prepare-deploy/page-f182991e68b159c1.js +1 -0
- package/.next/static/chunks/app/(app)/profile/page-cf5fe16bfad2a7ba.js +1 -0
- package/.next/static/chunks/app/(app)/pulse/page-03877c467c491e8a.js +1 -0
- package/.next/static/chunks/app/(app)/reports/[id]/page-ca89769e2522191d.js +1 -0
- package/.next/static/chunks/app/(app)/reports/page-7741b6a25e582791.js +1 -0
- package/.next/static/chunks/app/(app)/routines/page-ea83e6337e7502c2.js +1 -0
- package/.next/static/chunks/app/(app)/search/page-5e7f7cf0cc51b76f.js +1 -0
- package/.next/static/chunks/app/(app)/security/page-410144cdc35e19cc.js +1 -0
- package/.next/static/chunks/app/(app)/skills/page-90e5d8a24920c275.js +1 -0
- package/.next/static/chunks/app/(app)/tasks/page-4d535f34ae9c44ca.js +1 -0
- package/.next/static/chunks/app/(app)/test-dev/page-782c8cadd8a10feb.js +1 -0
- package/.next/static/chunks/app/(app)/update/page-decdb0ece526b50f.js +1 -0
- package/.next/static/chunks/app/(auth)/login/page-147a9be880c44d42.js +1 -0
- package/.next/static/chunks/app/(auth)/onboarding/page-8548be7e3ab3659e.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-c717657a60a7f62c.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 +19 -0
- package/README.md +1 -1
- package/README.pt-BR.md +1 -1
- package/docs/UPDATE.md +10 -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/9160.js +0 -417
- 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)/prepare-deploy/page-6f0c5081caf1d013.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 → ehoxBsPzAtE_FyZ2VpMF0}/_buildManifest.js +0 -0
- /package/.next/static/{Mx3bcAGWI83SQ6PqC4kYX → ehoxBsPzAtE_FyZ2VpMF0}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=26,exports.ids=[26],exports.modules={90026:(a,b,c)=>{c.d(b,{kH:()=>e});let d=Object.fromEntries([{id:"anthropic",displayName:"Anthropic",category:"cloud_api",connectionTypes:["api_key","oauth"],defaultAdapter:"http_anthropic",baseUrl:"https://api.anthropic.com",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"available",notes:"Claude family. Model list mapped from provider capabilities."},{id:"openai",displayName:"OpenAI",category:"cloud_api",connectionTypes:["api_key","oauth"],defaultAdapter:"http_openai",baseUrl:"https://api.openai.com/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"available",notes:"GPT-4o/o-series + DALL\xb7E + Whisper."},{id:"google_gemini",displayName:"Google AI / Gemini",category:"cloud_api",connectionTypes:["api_key","oauth"],defaultAdapter:"http_google",baseUrl:"https://generativelanguage.googleapis.com",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"available",notes:"Gemini 1.5/2.x via AI Studio API key."},{id:"xai_grok",displayName:"xAI / Grok",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_xai",baseUrl:"https://api.x.ai/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"available",notes:"OpenAI-compatible REST. Grok-2/3."},{id:"deepseek",displayName:"DeepSeek",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_deepseek",baseUrl:"https://api.deepseek.com",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"deepseek-chat / deepseek-reasoner."},{id:"cohere",displayName:"Cohere",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_cohere",baseUrl:"https://api.cohere.com/v2",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"Command R/R+ and strong rerank/embeddings."},{id:"ai21",displayName:"AI21",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_ai21",baseUrl:"https://api.ai21.com/studio/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"perplexity",displayName:"Perplexity",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_perplexity",baseUrl:"https://api.perplexity.ai",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"available"},{id:"groq",displayName:"Groq",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_groq",baseUrl:"https://api.groq.com/openai/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"Ultra-low-latency LPU inference, OpenAI-compatible."},{id:"nvidia_nim",displayName:"NVIDIA / NIM",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_nvidia",baseUrl:"https://integrate.api.nvidia.com/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"available",notes:"NIM microservices, OpenAI-compatible."},{id:"together",displayName:"Together AI",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_together",baseUrl:"https://api.together.xyz/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available"},{id:"fireworks",displayName:"Fireworks AI",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_fireworks",baseUrl:"https://api.fireworks.ai/inference/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available"},{id:"cerebras",displayName:"Cerebras",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_cerebras",baseUrl:"https://api.cerebras.ai/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,status:"available",notes:"Wafer-scale fast inference."},{id:"huggingface",displayName:"Hugging Face",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_hf",baseUrl:"https://api-inference.huggingface.co",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"replicate",displayName:"Replicate",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_replicate",baseUrl:"https://api.replicate.com/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"anyscale",displayName:"Anyscale",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_anyscale",baseUrl:"https://api.endpoints.anyscale.com/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"Endpoints product changing — adapter pending."},{id:"databricks",displayName:"Databricks",category:"cloud_api",connectionTypes:["api_key","oauth"],defaultAdapter:"http_databricks",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!0,status:"requires_setup"},{id:"stability",displayName:"Stability AI",category:"image",connectionTypes:["api_key"],defaultAdapter:"http_stability",baseUrl:"https://api.stability.ai",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"elevenlabs",displayName:"ElevenLabs",category:"audio",connectionTypes:["api_key"],defaultAdapter:"http_elevenlabs",baseUrl:"https://api.elevenlabs.io/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,status:"available",notes:"TTS / voice."},{id:"voyage",displayName:"Voyage AI",category:"embedding",connectionTypes:["api_key"],defaultAdapter:"http_voyage",baseUrl:"https://api.voyageai.com/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"available"},{id:"jina",displayName:"Jina AI",category:"embedding",connectionTypes:["api_key"],defaultAdapter:"http_jina",baseUrl:"https://api.jina.ai/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"available"},{id:"runpod",displayName:"RunPod",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_runpod",baseUrl:"https://api.runpod.ai/v2",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"requires_setup"},{id:"lambda",displayName:"Lambda Labs",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_lambda",baseUrl:"https://api.lambdalabs.com/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"modal",displayName:"Modal",category:"cloud_api",connectionTypes:["api_key","custom_endpoint"],defaultAdapter:"http_modal",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"requires_setup"},{id:"baseten",displayName:"Baseten",category:"cloud_api",connectionTypes:["api_key"],defaultAdapter:"http_baseten",baseUrl:"https://inference.baseten.co/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"requires_setup"},{id:"openrouter",displayName:"OpenRouter",category:"router",connectionTypes:["api_key","oauth"],defaultAdapter:"http_openrouter",baseUrl:"https://openrouter.ai/api/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"available",notes:"Aggregates 300+ models across providers — full live list."},{id:"omnirouter",displayName:"OmniRouter",category:"router",connectionTypes:["api_key"],defaultAdapter:"http_omnirouter",baseUrl:"https://api.omnirouter.ai/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,status:"experimental",notes:"OpenAI-compatible multi-provider router."},{id:"litellm",displayName:"LiteLLM",category:"openai_compatible",connectionTypes:["api_key","openai_compatible","custom_endpoint"],defaultAdapter:"http_litellm",baseUrl:"http://localhost:4000",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"Self-hosted proxy; unifies 100+ providers."},{id:"portkey",displayName:"Portkey",category:"router",connectionTypes:["api_key"],defaultAdapter:"http_portkey",baseUrl:"https://api.portkey.ai/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Gateway with virtual keys."},{id:"helicone",displayName:"Helicone",category:"router",connectionTypes:["api_key"],defaultAdapter:"http_helicone",baseUrl:"https://oai.helicone.ai/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"experimental",notes:"Observability proxy in front of OpenAI-compatible providers."},{id:"openai_compatible",displayName:"OpenAI-compatible endpoint",category:"openai_compatible",connectionTypes:["openai_compatible","api_key","custom_endpoint"],defaultAdapter:"http_openai_compat",baseUrl:"https://",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"Any server exposing /v1/chat/completions + /v1/models."},{id:"lmstudio_server",displayName:"LM Studio (OpenAI server)",category:"openai_compatible",connectionTypes:["openai_compatible","local"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:1234/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"available",notes:"Local OpenAI-compatible server from LM Studio."},{id:"ollama_openai",displayName:"Ollama (OpenAI endpoint)",category:"openai_compatible",connectionTypes:["openai_compatible","local"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:11434/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"Ollama's OpenAI-compatible surface."},{id:"vllm_server",displayName:"vLLM (OpenAI server)",category:"openai_compatible",connectionTypes:["openai_compatible","local"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:8000/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"High-throughput self-hosted serving."},{id:"tgi",displayName:"Text Generation Inference",category:"openai_compatible",connectionTypes:["openai_compatible","local","custom_endpoint"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:8080/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"experimental",notes:"HF TGI with OpenAI route."},{id:"localai",displayName:"LocalAI",category:"openai_compatible",connectionTypes:["openai_compatible","local"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:8080/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"available",notes:"Drop-in OpenAI replacement, fully local."},{id:"azure_openai",displayName:"Azure OpenAI",category:"cloud_platform",connectionTypes:["api_key","oauth"],defaultAdapter:"http_azure_openai",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"requires_setup"},{id:"aws_bedrock",displayName:"AWS Bedrock",category:"cloud_platform",connectionTypes:["api_key","custom_endpoint"],defaultAdapter:"sdk_bedrock",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"requires_setup",notes:"SigV4 auth; multi-vendor models."},{id:"vertex_ai",displayName:"Google Vertex AI",category:"cloud_platform",connectionTypes:["oauth","api_key"],defaultAdapter:"sdk_vertex",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!0,supportsVision:!0,supportsTools:!0,status:"requires_setup",notes:"GCP service-account / ADC."},{id:"cloudflare",displayName:"Cloudflare Workers AI",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_cloudflare",baseUrl:"https://api.cloudflare.com/client/v4",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,status:"experimental"},{id:"oci_genai",displayName:"Oracle OCI Generative AI",category:"cloud_platform",connectionTypes:["api_key","custom_endpoint"],defaultAdapter:"sdk_oci",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"OCI SDK signing — adapter pending."},{id:"watsonx",displayName:"IBM watsonx",category:"cloud_platform",connectionTypes:["api_key","oauth"],defaultAdapter:"http_watsonx",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!0,status:"requires_setup"},{id:"dashscope",displayName:"Alibaba DashScope / Qwen",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_dashscope",baseUrl:"https://dashscope-intl.aliyuncs.com/compatible-mode/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"experimental",notes:"Qwen models, OpenAI-compatible mode."},{id:"qianfan",displayName:"Baidu Qianfan",category:"cloud_platform",connectionTypes:["api_key","oauth"],defaultAdapter:"http_qianfan",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!0,status:"planned",notes:"ERNIE; access-token auth — adapter pending."},{id:"hunyuan",displayName:"Tencent Hunyuan",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_hunyuan",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"TC3-HMAC signing — adapter pending."},{id:"zhipu",displayName:"Zhipu AI (GLM)",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_zhipu",baseUrl:"https://open.bigmodel.cn/api/paas/v4",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"experimental"},{id:"moonshot",displayName:"Moonshot AI / Kimi",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_moonshot",baseUrl:"https://api.moonshot.cn/v1",supportsModelSync:!0,supportsApiKey:!0,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"OpenAI-compatible; long context."},{id:"minimax",displayName:"MiniMax",category:"cloud_platform",connectionTypes:["api_key"],defaultAdapter:"http_minimax",baseUrl:"https://api.minimax.chat/v1",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"Group-id + key auth — adapter pending."},{id:"ollama",displayName:"Ollama",category:"local_runtime",connectionTypes:["local","cli"],defaultAdapter:"local_ollama",baseUrl:"http://localhost:11434",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsVision:!0,supportsTools:!0,status:"available",notes:"Pulls + serves local models; live /api/tags list."},{id:"llamacpp",displayName:"llama.cpp",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_llamacpp",baseUrl:"http://127.0.0.1:8082",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"available",notes:"GGUF models, SHA-256 verified, bound to 127.0.0.1."},{id:"lmstudio",displayName:"LM Studio",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_lmstudio",baseUrl:"http://localhost:1234",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsVision:!0,status:"available",notes:"Desktop runtime + local server."},{id:"vllm",displayName:"vLLM",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_vllm",baseUrl:"http://localhost:8000",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"available",notes:"GPU serving engine."},{id:"localai_rt",displayName:"LocalAI",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_localai",baseUrl:"http://localhost:8080",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"available"},{id:"gpt4all",displayName:"GPT4All",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_gpt4all",baseUrl:"http://localhost:4891/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"experimental"},{id:"koboldcpp",displayName:"KoboldCpp",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_kobold",baseUrl:"http://localhost:5001",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,status:"experimental"},{id:"jan",displayName:"Jan",category:"local_runtime",connectionTypes:["local"],defaultAdapter:"local_jan",baseUrl:"http://localhost:1337/v1",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"experimental"},{id:"anythingllm",displayName:"AnythingLLM (local)",category:"local_runtime",connectionTypes:["local","api_key"],defaultAdapter:"local_anythingllm",baseUrl:"http://localhost:3001/api",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"Workspace API — adapter pending."},{id:"openwebui",displayName:"Open WebUI (backend)",category:"local_runtime",connectionTypes:["local","openai_compatible"],defaultAdapter:"http_openai_compat",baseUrl:"http://localhost:3000/api",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"experimental"},{id:"claude_code",displayName:"Claude Code",category:"cli",connectionTypes:["cli","oauth"],defaultAdapter:"cli_claude_code",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!0,supportsTools:!0,status:"available",notes:"Drives the local Claude Code CLI / agent."},{id:"codex_cli",displayName:"Codex CLI",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_codex",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"OpenAI Codex CLI agent."},{id:"openclaw",displayName:"OpenClaw",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_openclaw",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"OpenClaw CLI — headless `openclaw infer model run --json` (provider-routed). No token/cost reported."},{id:"hermes_cli",displayName:"Hermes (Nous Research)",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_hermes",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Hermes agent CLI — headless `hermes -z`. Configure providers via `hermes model`."},{id:"gemini_cli",displayName:"Gemini CLI",category:"cli",connectionTypes:["cli","oauth"],defaultAdapter:"cli_gemini",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!0,supportsTools:!0,status:"experimental"},{id:"aider",displayName:"Aider",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_aider",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Headless `aider --message --yes-always`; provider-routed via its own env keys. Model list from `aider --list-models`. No token/cost reported."},{id:"opencode",displayName:"OpenCode",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_opencode",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Headless `opencode run`; providers via `opencode auth login`. Model list from `opencode models`. No token/cost reported."},{id:"copilot_cli",displayName:"GitHub Copilot CLI",category:"cli",connectionTypes:["cli","oauth"],defaultAdapter:"cli_copilot",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!0,supportsTools:!0,status:"experimental",notes:"Headless `copilot -p --allow-all-tools`; sign in with the Copilot CLI. No token/cost reported."},{id:"cursor_cli",displayName:"Cursor CLI",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_cursor",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Headless `cursor-agent -p --output-format json`; sign in via `cursor-agent login`. `-p` can hang → bounded timeout. No token/cost reported."},{id:"cline_cli",displayName:"Cline CLI",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_cline",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Headless `cline --json -y`; provider-routed via its own config. No token/cost reported."},{id:"kilo_code",displayName:"Kilo Code CLI",category:"cli",connectionTypes:["cli"],defaultAdapter:"cli_kilo",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,supportsTools:!0,status:"experimental",notes:"Headless `kilocode --yes`; provider-routed via its own config. No token/cost reported."},{id:"openai_cli",displayName:"OpenAI CLI",category:"cli",connectionTypes:["cli","api_key"],defaultAdapter:"cli_openai",supportsModelSync:!1,supportsApiKey:!0,supportsOAuth:!1,status:"planned",notes:"Thin CLI over the API — adapter pending."},{id:"ollama_cli",displayName:"Ollama CLI",category:"cli",connectionTypes:["cli","local"],defaultAdapter:"cli_ollama",supportsModelSync:!0,supportsApiKey:!1,supportsOAuth:!1,status:"available",notes:"`ollama run/list` driven."},{id:"custom_cli",displayName:"Custom CLI provider",category:"cli",connectionTypes:["cli","custom_endpoint"],defaultAdapter:"cli_custom",supportsModelSync:!1,supportsApiKey:!1,supportsOAuth:!1,status:"requires_setup",notes:"Define your own command + arg template."}].map(a=>[a.id,a])),e=a=>d[a]}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=
|
|
1
|
+
"use strict";exports.id=3140,exports.ids=[3140],exports.modules={50086:(a,b,c)=>{c.d(b,{n:()=>d,t:()=>e});let d="kysely_migration",e="kysely_migration_lock"},83140:(a,b,c)=>{c.d(b,{NodeSqliteDialect:()=>n});var d=c(50086),e=c(80124),f=c(43853),g=c(41055),h=class{get supportsCreateIfNotExists(){return!0}get supportsTransactionalDdl(){return!1}get supportsMultipleConnections(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(){}async releaseMigrationLock(){}get supportsOutput(){return!0}},i=class{#a;#b=new k;#c;#d;constructor(a){this.#a={...a}}async init(){this.#c=this.#a.database,this.#d=new j(this.#c),this.#a.onCreateConnection&&await this.#a.onCreateConnection(this.#d)}async acquireConnection(){return await this.#b.lock(),this.#d}async beginTransaction(a){await a.executeQuery(e.E.raw("begin"))}async commitTransaction(a){await a.executeQuery(e.E.raw("commit"))}async rollbackTransaction(a){await a.executeQuery(e.E.raw("rollback"))}async releaseConnection(){this.#b.unlock()}async destroy(){this.#c?.close()}},j=class{#c;constructor(a){this.#c=a}executeQuery(a){let{sql:b,parameters:c}=a,d=this.#c.prepare(b);if(d.columns().length>0)return Promise.resolve({rows:d.all(...c)});let{changes:e,lastInsertRowid:f}=d.run(...c);return Promise.resolve({rows:[],numAffectedRows:BigInt(e),insertId:"bigint"==typeof f?f:BigInt(f)})}async *streamQuery(){throw Error("Streaming query is not supported by SQLite driver.")}},k=class{#e;#f;async lock(){for(;void 0!==this.#e;)await this.#e;this.#e=new Promise(a=>{this.#f=a})}unlock(){let a=this.#f;this.#e=void 0,this.#f=void 0,a?.()}},l=class{#c;constructor(a){this.#c=a}async getSchemas(){return[]}async getTables(a={withInternalKyselyTables:!1}){let b=this.#c.selectFrom("sqlite_schema").where("type","=","table").where("name","not like","sqlite_%").select("name").$castTo();return a.withInternalKyselyTables||(b=b.where("name","!=",d.n).where("name","!=",d.t)),Promise.all((await b.execute()).map(({name:a})=>this.#g(a)))}async #g(a){let b=this.#c,c=(await b.selectFrom("sqlite_master").where("name","=",a).select("sql").$castTo().execute())[0]?.sql?.split(/[\(\),]/)?.find(a=>a.toLowerCase().includes("autoincrement"))?.split(/\s+/)?.[0]?.replace(/["`]/g,"");return{name:a,columns:(await b.selectFrom((0,f.l)`pragma_table_info(${a})`.as("table_info")).select(["name","type","notnull","dflt_value"]).execute()).map(a=>({name:a.name,dataType:a.type,isNullable:!a.notnull,isAutoIncrementing:a.name===c,hasDefaultValue:null!=a.dflt_value})),isView:!1,isForeign:!1}}},m=class extends g.n{getCurrentParameterPlaceholder(){return"?"}getLeftIdentifierWrapper(){return'"'}getRightIdentifierWrapper(){return'"'}getAutoIncrement(){return"autoincrement"}},n=class{#a;constructor(a){this.#a={...a}}createDriver(){return new i(this.#a)}createQueryCompiler(){return new m}createAdapter(){return new h}createIntrospector(a){return new l(a)}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=
|
|
1
|
+
"use strict";exports.id=3172,exports.ids=[3172],exports.modules={50086:(a,b,c)=>{c.d(b,{n:()=>d,t:()=>e});let d="kysely_migration",e="kysely_migration_lock"},63172:(a,b,c)=>{c.d(b,{BunSqliteDialect:()=>n});var d=c(50086),e=c(80124),f=c(43853),g=c(41055),h=class{get supportsCreateIfNotExists(){return!0}get supportsTransactionalDdl(){return!1}get supportsMultipleConnections(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(){}async releaseMigrationLock(){}get supportsOutput(){return!0}},i=class{#a;#b=new k;#c;#d;constructor(a){this.#a={...a}}async init(){this.#c=this.#a.database,this.#d=new j(this.#c),this.#a.onCreateConnection&&await this.#a.onCreateConnection(this.#d)}async acquireConnection(){return await this.#b.lock(),this.#d}async beginTransaction(a){await a.executeQuery(e.E.raw("begin"))}async commitTransaction(a){await a.executeQuery(e.E.raw("commit"))}async rollbackTransaction(a){await a.executeQuery(e.E.raw("rollback"))}async releaseConnection(){this.#b.unlock()}async destroy(){this.#c?.close()}},j=class{#c;constructor(a){this.#c=a}executeQuery(a){let{sql:b,parameters:c}=a,d=this.#c.prepare(b);if(d.columnNames.length>0)return Promise.resolve({rows:d.all(...c)});let{changes:e,lastInsertRowid:f}=d.run(...c);return Promise.resolve({rows:[],numAffectedRows:BigInt(e),insertId:"bigint"==typeof f?f:BigInt(f)})}async *streamQuery(){throw Error("Streaming query is not supported by SQLite driver.")}},k=class{#e;#f;async lock(){for(;void 0!==this.#e;)await this.#e;this.#e=new Promise(a=>{this.#f=a})}unlock(){let a=this.#f;this.#e=void 0,this.#f=void 0,a?.()}},l=class{#c;constructor(a){this.#c=a}async getSchemas(){return[]}async getTables(a={withInternalKyselyTables:!1}){let b=this.#c.selectFrom("sqlite_schema").where("type","=","table").where("name","not like","sqlite_%").select("name").$castTo();return a.withInternalKyselyTables||(b=b.where("name","!=",d.n).where("name","!=",d.t)),Promise.all((await b.execute()).map(({name:a})=>this.#g(a)))}async #g(a){let b=this.#c,c=(await b.selectFrom("sqlite_master").where("name","=",a).select("sql").$castTo().execute())[0]?.sql?.split(/[\(\),]/)?.find(a=>a.toLowerCase().includes("autoincrement"))?.split(/\s+/)?.[0]?.replace(/["`]/g,"");return{name:a,columns:(await b.selectFrom((0,f.l)`pragma_table_info(${a})`.as("table_info")).select(["name","type","notnull","dflt_value"]).execute()).map(a=>({name:a.name,dataType:a.type,isNullable:!a.notnull,isAutoIncrementing:a.name===c,hasDefaultValue:null!=a.dflt_value})),isView:!1,isForeign:!1}}},m=class extends g.n{getCurrentParameterPlaceholder(){return"?"}getLeftIdentifierWrapper(){return'"'}getRightIdentifierWrapper(){return'"'}getAutoIncrement(){return"autoincrement"}},n=class{#a;constructor(a){this.#a={...a}}createDriver(){return new i(this.#a)}createQueryCompiler(){return new m}createAdapter(){return new h}createIntrospector(a){return new l(a)}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=3205,exports.ids=[3205],exports.modules={13205:(a,b,c)=>{c.d(b,{createKyselyAdapter:()=>d.xA,kyselyAdapter:()=>d.rV});var d=c(62779)}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=3392,exports.ids=[2392,3392],exports.modules={2015:(a,b,c)=>{c.d(b,{R:()=>e});var d=c(26021);let e=(0,d.createServerReference)("00930ce046f9bfbd1af19ed9f127d55e5366f84688",d.callServer,void 0,d.findSourceMapURL,"startDevServerAction")},9450:(a,b,c)=>{c.d(b,{Fy:()=>m,KD:()=>q,Rr:()=>l,TH:()=>s,Xu:()=>r,j0:()=>n,nx:()=>o,zC:()=>p});var d=c(80501),e=c(3770),f=c(96405),g=c(99398),h=c(62758),i=c(88193),j=c(17730),k=c(55593);async function l(){let{org:a,workspace:b}=await (0,f.nP)(),c=await (0,g.ZF)(b.id,a.id);return(0,e.revalidatePath)("/test-dev"),c}async function m(){let{workspace:a}=await (0,f.nP)(),b=await (0,g.n9)(a.id);return(0,e.revalidatePath)("/test-dev"),b}async function n(){let{workspace:a}=await (0,f.nP)();return(0,g.CS)(a.id)}async function o(){let{org:a,workspace:b}=await (0,f.nP)(),c=(0,g.CS)(b.id);if("running"!==c.status&&"starting"!==c.status&&(c=await (0,g.ZF)(b.id,a.id)),!c.url||"running"!==c.status&&"starting"!==c.status)return{ok:!1,error:"The dev server isn't running — start the app first."};let d=await (0,h.nK)(b.id,c.url);return d?{ok:!0,url:d.url}:{ok:!1,error:"Could not start the inspect proxy."}}async function p(){let{workspace:a}=await (0,f.nP)();return(0,h.hA)(a.id),{ok:!0}}async function q(a){if(await (0,f.nP)(),!/^https?:\/\/(127\.0\.0\.1|localhost)(:\d+)?/i.test(a))return{frameable:!0};try{let b=await fetch(a,{redirect:"manual",signal:AbortSignal.timeout(3e3)}),c=(b.headers.get("x-frame-options")||"").toLowerCase(),d=(b.headers.get("content-security-policy")||"").toLowerCase(),e=/frame-ancestors\s+([^;]+)/.exec(d)?.[1]??"",f=c.includes("deny")||c.includes("sameorigin"),g=!!e&&!/(\*|localhost|127\.0\.0\.1)/.test(e);return{frameable:!(f||g)}}catch{return{frameable:!0}}}async function r(a){let{org:b,workspace:c}=await (0,f.nP)(),d=a?.issueId?await (0,i.B)(c.id,a.issueId):void 0,g=await (0,i.z)(c.id,b.id,{goalId:a?.goalId,issueId:a?.issueId,routes:d,by:"operator"});return(0,e.revalidatePath)("/test-dev"),g}async function s(a,b){let{workspace:c}=await (0,f.nP)();return await (0,j.vE)(c.id,{kind:"validation",refType:"validation",refId:a,title:`Validate ${a}`,detail:b.slice(0,500)}),await (0,k.I)(c.id,{kind:"review",text:`Validation requested — ${a}`,detail:b.slice(0,300)}),(0,e.revalidatePath)("/inbox"),{ok:!0}}(0,c(64185).D)([l,m,n,o,p,q,r,s]),(0,d.A)(l,"00930ce046f9bfbd1af19ed9f127d55e5366f84688",null),(0,d.A)(m,"00c0f420f325381667e547899b541bd24ba3680fa3",null),(0,d.A)(n,"000197b130ec53acb1bf865af0bd6cf00016ba34f4",null),(0,d.A)(o,"00e5801971a984c426a1d1c4adcd9eaff741489733",null),(0,d.A)(p,"0011588f6fe8674c7176a940ff9feb94f0d7019cbf",null),(0,d.A)(q,"40019c929b3f4d4dbb0df8da0a5f7b239141e4ed0a",null),(0,d.A)(r,"40b0fa67493bf00906e35587dde30dc745f2b72ef6",null),(0,d.A)(s,"608ffe8f599176ad0d19760c947a74041925422f1a",null)},13389:(a,b,c)=>{c.d(b,{ViewChrome:()=>h});var d=c(40201),e=c(77758),f=c(3218),g=c(71955);function h({title:a,sub:b,right:c,icon:i,flush:j,children:k}){let l=(0,g.k)(),m=f.e.find(b=>b.title===a),n=i??m?.icon,o=m?l(`mod.${m.id}`):a;return(0,d.jsxs)("div",{className:"app-view",children:[(0,d.jsxs)("div",{className:"view-head",children:[n&&(0,d.jsx)("div",{className:"vh-icon",children:(0,d.jsx)(e.I,{name:n,size:18})}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{className:"view-title",children:o}),b&&(0,d.jsx)("div",{className:"view-sub",children:b})]}),c]}),(0,d.jsx)("div",{className:"view-body",style:j?{padding:0,overflow:"hidden"}:void 0,children:k})]})}},22290:(a,b,c)=>{c.r(b),c.d(b,{"00595fe65e9992464bb663bbac4e29a490158cffd8":()=>d.Kd,"00cdb46e5e7ab44f096a716b62213d04c572098ad6":()=>d.cT,"4097083ab2f522b74645033d17b1248eee70d9bd69":()=>d.j0,"40b5db617bf035af0653aeaf7baa2f667a1836ff30":()=>d.OD});var d=c(54489)},27115:(a,b,c)=>{c.d(b,{j:()=>e});var d=c(26021);let e=(0,d.createServerReference)("000197b130ec53acb1bf865af0bd6cf00016ba34f4",d.callServer,void 0,d.findSourceMapURL,"devServerStatusAction")},41323:(a,b,c)=>{c.d(b,{ViewChrome:()=>d});let d=(0,c(97879).registerClientReference)(function(){throw Error("Attempted to call ViewChrome() from the server but ViewChrome is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\shell\\view-chrome.tsx","ViewChrome")},47385:(a,b,c)=>{c.d(b,{l:()=>g});var d=c(46309),e=c(34925);async function f(){return(0,e.e)((await (0,d.cookies)()).get("cn-lang")?.value)}async function g(){let a=await f();return(b,c)=>(0,e.t)(a,b,c)}},51439:(a,b,c)=>{c.d(b,{pM:()=>z,lP:()=>y,Kg:()=>x,eU:()=>B,PG:()=>A});var d=c(80501),e=c(96405),f=c(90127),g=c(59627),h=c(24582);function i(){return(0,h.n)()?"dev":"vps"===(0,g.T)()?"vps":"portable"===(0,g.T)()?"portable":/[\\/]_npx[\\/]/.test((0,f.v)())?"npx":"global"}var j=c(52392),k=c(73024),l=c(76760),m=c(48161),n=c(31421),o=c(37989);let p=()=>new Date().toISOString().replace(/[:.]/g,"-"),q=()=>(0,l.join)((0,o.r$)(),"backups","last-update.json");async function r(){let a=await (0,j.checkForUpdate)(!0),b=i(),c=a.command;if(!a.updateAvailable)return{ok:!0,context:b,command:c,message:"Already up to date."};let d=function(){try{let a=(0,o.r$)(),b=(0,l.join)(a,"backups",p());for(let c of((0,k.mkdirSync)(b,{recursive:!0}),[".env","constella.db","constella.db-wal","constella.db-shm"])){let d=(0,l.join)(a,c);if((0,k.existsSync)(d))try{(0,k.copyFileSync)(d,(0,l.join)(b,c))}catch{}}return b}catch{return null}}()??void 0;if("dev"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"Running from source — update with: git pull && pnpm install && pnpm build"};if("npx"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"npx runs an ephemeral copy — re-run: npx constellai@latest"};if("vps"===b){var e="bash scripts/vps-update.sh";try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let b=(0,o.r$)(),c=process.env.CONSTELLA_PKG_ROOT||process.cwd(),f=(0,l.join)(c,"bin","constella-update.mjs"),g=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[f,"--quiet","--mode","vps","--home",b,...g],{detached:!0,stdio:"ignore",cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:"vps",command:e,backupDir:d,message:`Updating to ${a.latest} and restarting the service — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:"vps",command:e,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}return function(a,b,c,d){try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let e=process.env.CONSTELLA_RUN_MODE||"start",f=process.env.CONSTELLA_LAUNCHER_PID||"0",g=(0,o.r$)(),h=process.env.PORT||"3000",i=process.env.CONSTELLA_PKG_ROOT||process.cwd(),j=(0,l.join)(i,"bin","constella-update.mjs"),r=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[j,"--quiet","--pid",f,"--mode",e,"--home",g,"--port",h,...r],{detached:!0,stdio:"ignore",windowsHide:!0,cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:b,command:c,backupDir:d,message:`Updating to ${a.latest} and restarting — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:b,command:c,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}(a,b,c,d)}var s=c(73591),t=c(54813),u=c(406),v=c(96977);async function w(){let a=await t.db.select({lastPulse:u.agent.lastPulse}).from(u.agent).where((0,s.eq)(u.agent.status,"working")),b=Date.now()-v.fQ;return a.some(a=>null!=a.lastPulse&&new Date(a.lastPulse).getTime()>=b)}async function x(a=!1){return(0,j.checkForUpdate)(a)}async function y(a=!1){let[b,c]=await Promise.all([(0,j.checkForUpdate)(a),w()]);return{info:b,busy:c}}async function z(){return i()}async function A(){return(await (0,e.nP)(),await w())?{ok:!1,started:!1,blocked:!0,context:"",command:"",message:"An agent is working — pause it before updating."}:r()}async function B(){try{return JSON.parse((0,k.readFileSync)(q(),"utf8"))}catch{return{status:"idle"}}}(0,c(64185).D)([x,y,z,A,B]),(0,d.A)(x,"4079ee52aca558bf2ca3c25800d73e82a85654fb12",null),(0,d.A)(y,"40e88545faa11118461ff49b6570d9874017fd8a38",null),(0,d.A)(z,"000620f675346f8a12b50bfbe6296aad9ae5464e72",null),(0,d.A)(A,"00491a4a12afe57900974b078cd17d6d523cb8b1d4",null),(0,d.A)(B,"00c24fecd5d4e2c99b78f6cfba9771178469d3d57b",null)},52392:(a,b,c)=>{c.d(b,{checkForUpdate:()=>m});var d=c(73024),e=c(76760),f=c(90127);let g="constellai",h=null,i=a=>a.replace(/^v/,"").split("-")[0].split(".").map(a=>parseInt(a,10)||0),j=a=>a.replace(/^v/,"").split("-")[1]??"";async function k(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.json():null}catch{return null}}async function l(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.text():null}catch{return null}}async function m(a=!1){let b,c,n=function(){if(process.env.CONSTELLA_VERSION)return process.env.CONSTELLA_VERSION;try{let a=JSON.parse((0,d.readFileSync)((0,e.join)((0,f.v)(),"package.json"),"utf8"));if(a?.version)return a.version}catch{}return"0.0.0"}(),o=`npm install -g ${g}@latest`;if(!a&&h&&Date.now()-h.at<216e5)return h.info;let p=await k(`https://registry.npmjs.org/${g}/latest`),q=p?.version??null,r=!!q&&function(a,b){let c=i(a),d=i(b);for(let a=0;a<3;a++){if((c[a]||0)>(d[a]||0))return!0;if((c[a]||0)<(d[a]||0))return!1}return!j(a)&&!!j(b)}(q,n),s=null;if(r&&q){let a=await l("https://raw.githubusercontent.com/gabriel7silva/constella/main/CHANGELOG.md");s=a?function(a,b){let c=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=a.match(RegExp(`(^|\\n)##\\s*\\[?${c}\\]?[\\s\\S]*?(?=\\n##\\s|$)`));if(d)return d[0].trim();let e=a.split(/\n##\s/)[1];return e?"## "+e.trim():null}(a,q):null}let t={current:n,latest:q,updateAvailable:r,type:q?(b=i(q),c=i(n),b[0]>c[0]?"major":b[1]>c[1]?"minor":b[2]>c[2]||!j(q)&&j(n)?"patch":null):null,command:o,changelog:s};return h={at:Date.now(),info:t},t}},59627:(a,b,c)=>{c.d(b,{T:()=>e});let d=["start","auth","vps","portable"];function e(){let a=process.env.CONSTELLA_RUN_MODE;return a&&d.includes(a)?a:"start"}},64543:(a,b,c)=>{c.d(b,{_:()=>g});var d=c(50727),e=c(48578),f=c(41323);function g({title:a,sub:b,right:c,icon:h,flush:i,children:j}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.b,{title:a}),(0,d.jsx)(f.ViewChrome,{title:a,sub:b,right:c,icon:h,flush:i,children:j})]})}},66408:(a,b,c)=>{c.d(b,{r$:()=>h,EX:()=>p,CS:()=>function a(b,c=""){let d=[];for(let e of l(b,c))if(e.isDir){if(m.has(e.name))continue;d.push(...a(b,e.path))}else d.push(e.path);return d},HZ:()=>j,Ci:()=>l,sL:()=>n,dx:()=>o});var d=c(73024),e=c(76760),f=c(48161),g=c(45570);function h(){return process.env.CONSTELLA_HOME?(0,g.Y)(process.env.CONSTELLA_HOME):(0,e.join)((0,f.homedir)(),".constella")}let i=new Set;function j(a){if(!/^[A-Za-z0-9_-]{6,64}$/.test(a))throw Error("Invalid orgId");let b=(0,e.join)(h(),"organizations",a,"workspace");if(!i.has(a)){i.add(a);try{let c=(0,e.join)(h(),"organizations",a,"constella"),f=!(0,d.existsSync)(b)||0===(0,d.readdirSync)(b).length;if((0,d.existsSync)(c)&&f)try{(0,d.renameSync)(c,b)}catch{(0,d.existsSync)(c)&&((0,d.mkdirSync)(b,{recursive:!0}),0===(0,d.readdirSync)(b).length&&(0,d.cpSync)(c,b,{recursive:!0}))}}catch{}}return b}function k(a,b){let c=(0,e.normalize)((0,e.join)(a,b));if(c!==a&&!c.startsWith(a+e.sep))throw Error("Path escapes workspace: "+b);if((0,d.existsSync)(a)){let f;try{f=d.realpathSync.native(a)}catch{f=a}let g=function(a){let b=a;for(;;){if((0,d.existsSync)(b))try{return d.realpathSync.native(b)}catch{return b}let a=(0,e.dirname)(b);if(a===b)return b;b=a}}(c);if(g!==f&&!g.startsWith(f+e.sep))throw Error("Path escapes workspace (symlink): "+b)}return c}function l(a,b=""){let c=k(j(a),b);return(0,d.existsSync)(c)?(0,d.readdirSync)(c).map(a=>{let f=(0,e.join)(c,a),g=(b?b+"/":"")+a;return{name:a,path:g,isDir:(0,d.statSync)(f).isDirectory()}}).sort((a,b)=>a.isDir===b.isDir?a.name.localeCompare(b.name):a.isDir?-1:1):[]}let m=new Set(["node_modules",".git",".next",".turbo","dist","build","out","coverage",".cache","archives",".testdev",".pnpm-store",".vercel","vendor"]);function n(a,b){let c=k(j(a),b);return(0,d.existsSync)(c)?(0,d.readFileSync)(c,"utf8"):null}function o(a,b,c){let f=k(j(a),b);(0,d.mkdirSync)((0,e.dirname)(f),{recursive:!0}),(0,d.writeFileSync)(f,c,"utf8")}function p(a,b){let c=k(j(a),b);(0,d.existsSync)(c)&&(0,d.rmSync)(c,{recursive:!0,force:!0})}},96529:(a,b,c)=>{c.d(b,{K:()=>e});var d=c(26021);let e=(0,d.createServerReference)("40019c929b3f4d4dbb0df8da0a5f7b239141e4ed0a",d.callServer,void 0,d.findSourceMapURL,"previewFrameableAction")}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=4979,exports.ids=[4979],exports.modules={44239:(a,b,c)=>{c.d(b,{$K:()=>m,$h:()=>q,FU:()=>t,II:()=>s,Kb:()=>u,MO:()=>o,Qu:()=>n,Vz:()=>r,dZ:()=>p});var d=c(6866),e=c(77598),f=c(97603),g=c(31371),h=c(65705),i=c(1890),j=c(53993),k=c(83963),l=c(84903);async function m(a){let{workspace:b}=await (0,j.nP)(),c=a.title.trim();c&&(await h.db.insert(i.backlogItem).values({id:(0,e.randomUUID)(),workspaceId:b.id,title:c,moscow:a.moscow??"Should",points:a.points??0}),(0,g.revalidatePath)("/pm"))}async function n(a){let{workspace:b}=await (0,j.nP)();await h.db.delete(i.backlogItem).where((0,f.Uo)((0,f.eq)(i.backlogItem.id,a),(0,f.eq)(i.backlogItem.workspaceId,b.id))),(0,g.revalidatePath)("/pm")}async function o(a,b){let c=await h.db.select().from(i.issue).where((0,f.Uo)((0,f.eq)(i.issue.workspaceId,b),(0,f.eq)(i.issue.status,"active"))),d=c.filter(a=>"done"===a.col),e=c.filter(a=>"done"!==a.col);if(!d.length)return{ok:!1,shipped:0,carried:e.length};let g=new Date().toISOString().slice(0,10),j=[`# Sprint retro — ${g}`,"",`## Shipped (${d.length})`,...d.map(a=>`- ${a.key} — ${a.title}${a.points?` (${a.points} pts)`:""}`),"",`## Carried over (${e.length})`,...e.length?e.map(a=>`- ${a.key} [${a.col}] — ${a.title}`):["- (nothing — clean sprint)"],"",`_Closed ${new Date().toISOString()} by the Product Owner._`,""].join("\n"),m=`PO/sprint-retro-${g}.md`;try{await (0,k.g)(a,m,j)}catch(a){console.error("[closeSprint] retro write failed:",a)}return await h.db.update(i.issue).set({status:"archived"}).where((0,f.Uo)((0,f.eq)(i.issue.workspaceId,b),(0,f.RV)(i.issue.id,d.map(a=>a.id)))),await (0,l.j)(b,{text:`Sprint closed — ${d.length} shipped, ${e.length} carried over; retro at ${m}`,by:"donald",source:"po-grooming"}),{ok:!0,shipped:d.length,carried:e.length,path:m}}async function p(){let{org:a,workspace:b}=await (0,j.nP)(),c=await o(a.id,b.id);return(0,g.revalidatePath)("/pm"),(0,g.revalidatePath)("/","layout"),c}async function q(a){let{workspace:b}=await (0,j.nP)(),[c]=await h.db.select().from(i.backlogItem).where((0,f.Uo)((0,f.eq)(i.backlogItem.id,a),(0,f.eq)(i.backlogItem.workspaceId,b.id)));if(!c)return;let d=(await h.db.select().from(i.issue).where((0,f.eq)(i.issue.workspaceId,b.id))).length;await h.db.insert(i.issue).values({id:(0,e.randomUUID)(),workspaceId:b.id,key:"S-"+(d+1),title:c.title,col:"todo",prio:"med",moscow:c.moscow,points:c.points}),await h.db.delete(i.backlogItem).where((0,f.eq)(i.backlogItem.id,a)),(0,g.revalidatePath)("/pm")}async function r(a,b){let{workspace:c}=await (0,j.nP)();await h.db.update(i.issue).set({col:b}).where((0,f.Uo)((0,f.eq)(i.issue.id,a),(0,f.eq)(i.issue.workspaceId,c.id))),(0,g.revalidatePath)("/pm")}async function s(a,b){let{workspace:c}=await (0,j.nP)();await h.db.update(i.issue).set({moscow:b}).where((0,f.Uo)((0,f.eq)(i.issue.id,a),(0,f.eq)(i.issue.workspaceId,c.id))),(0,g.revalidatePath)("/pm")}async function t(a){let{workspace:b}=await (0,j.nP)();await h.db.update(i.issue).set({col:"blocked"}).where((0,f.Uo)((0,f.eq)(i.issue.id,a),(0,f.eq)(i.issue.workspaceId,b.id))),await h.db.update(i.task).set({col:"blocked"}).where((0,f.Uo)((0,f.eq)(i.task.issueId,a),(0,f.eq)(i.task.workspaceId,b.id))),(0,g.revalidatePath)("/pm"),(0,g.revalidatePath)("/tasks")}async function u(a){let{workspace:b}=await (0,j.nP)();await h.db.update(i.issue).set({col:"todo"}).where((0,f.Uo)((0,f.eq)(i.issue.id,a),(0,f.eq)(i.issue.workspaceId,b.id)));let[c]=await h.db.update(i.task).set({col:"todo"}).where((0,f.Uo)((0,f.eq)(i.task.issueId,a),(0,f.eq)(i.task.workspaceId,b.id))).returning();c?.assigneeId&&await h.db.update(i.agent).set({status:"idle"}).where((0,f.eq)(i.agent.id,c.assigneeId)),(0,g.revalidatePath)("/pm"),(0,g.revalidatePath)("/tasks")}(0,c(74252).D)([m,n,o,p,q,r,s,t,u]),(0,d.A)(m,"40adaed69cb8d09df8663f469d1825e20b94229a28",null),(0,d.A)(n,"40d4aa1ac73cd0c35762ae766b8a4ab8f72b189cc5",null),(0,d.A)(o,"601094db02622b1650a04f93ba9f7c60c1898fe1ee",null),(0,d.A)(p,"001a2dc3e3cd4a83a9f0652a1f87149de3b0a2fe0b",null),(0,d.A)(q,"40c6ca49335e5a5a81b8f2718fab1616da908d05ad",null),(0,d.A)(r,"60f0fa12d82f02c81401486163c234ed7c4d900709",null),(0,d.A)(s,"60aae24f29316acee8bda578d914faab688815449c",null),(0,d.A)(t,"407c494f8a4350ec1cef63beb366fd9297a03ceb67",null),(0,d.A)(u,"403790f8d775fbdd69a8747988af11021b3fc590de",null)},44842:(a,b,c)=>{c.d(b,{Lh:()=>t,NF:()=>v,PT:()=>w,jL:()=>u,ot:()=>q,yR:()=>r});var d=c(73024),e=c(76760),f=c(60547),g=c.n(f),h=c(97603),i=c(65705),j=c(1890),k=c(57086),l=c(70149),m=c(437),n=c(84903),o=c(77558),p=c(24701);async function q(a,b){let[c]=await i.db.select().from(j.goal).where((0,h.Uo)((0,h.eq)(j.goal.id,b),(0,h.eq)(j.goal.workspaceId,a)));return c}function r(a){return(a||"work").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,40)||"work"}async function s(a,b){for(let c of(await i.db.select().from(j.task).where((0,h.Uo)((0,h.eq)(j.task.workspaceId,a),(0,h.eq)(j.task.goalId,b)))))(0,l.KD)(c.id),("todo"===c.col||"doing"===c.col)&&(await i.db.update(j.task).set({col:"blocked"}).where((0,h.eq)(j.task.id,c.id)),c.issueId&&await i.db.update(j.issue).set({col:"blocked"}).where((0,h.eq)(j.issue.id,c.issueId))),c.assigneeId&&await i.db.update(j.agent).set({status:"idle"}).where((0,h.eq)(j.agent.id,c.assigneeId))}async function t(a,b){for(let c of(await i.db.select().from(j.task).where((0,h.Uo)((0,h.eq)(j.task.workspaceId,a),(0,h.eq)(j.task.goalId,b),(0,h.eq)(j.task.col,"blocked")))))await i.db.update(j.task).set({col:"todo"}).where((0,h.eq)(j.task.id,c.id)),c.issueId&&await i.db.update(j.issue).set({col:"todo"}).where((0,h.eq)(j.issue.id,c.issueId))}async function u(a,b,c){await i.db.update(j.spec).set({status:c}).where((0,h.Uo)((0,h.eq)(j.spec.workspaceId,a),(0,h.eq)(j.spec.goalId,b))),await i.db.update(j.issue).set({status:c}).where((0,h.Uo)((0,h.eq)(j.issue.workspaceId,a),(0,h.eq)(j.issue.goalId,b)))}async function v(a,b){let c=await q(a,b);return c?(await i.db.update(j.goal).set({status:"cancelled",cancelledAt:new Date}).where((0,h.eq)(j.goal.id,b)),await u(a,b,"cancelled"),await (0,o.TC)(a,b),await s(a,b),await (0,n.j)(a,{text:`Cancelled goal: ${c.title}`,by:"operator",source:"operator-instruction",goalId:b}),await (0,p.I)(a,{kind:"info",text:`Goal cancelled — ${c.title}`,detail:"Execution stopped; state preserved. Reopen to resume."}),{ok:!0,title:c.title}):{ok:!1}}async function w(a,b,c){let f=await q(b,c);if(!f)return{ok:!1};let l=(0,k.HZ)(a),[t,v,w,x,y]=await Promise.all([i.db.select().from(j.spec).where((0,h.Uo)((0,h.eq)(j.spec.workspaceId,b),(0,h.eq)(j.spec.goalId,c))),i.db.select().from(j.issue).where((0,h.Uo)((0,h.eq)(j.issue.workspaceId,b),(0,h.eq)(j.issue.goalId,c))),i.db.select().from(j.task).where((0,h.Uo)((0,h.eq)(j.task.workspaceId,b),(0,h.eq)(j.task.goalId,c))),i.db.select().from(j.decision).where((0,h.Uo)((0,h.eq)(j.decision.workspaceId,b),(0,h.eq)(j.decision.goalId,c))),i.db.select().from(j.report).where((0,h.Uo)((0,h.eq)(j.report.workspaceId,b),(0,h.eq)(j.report.goalId,c)))]),z=w.map(a=>a.id),A=z.length?await i.db.select().from(j.taskStep).where((0,h.RV)(j.taskStep.taskId,z)):[],B=await (0,m.Y)(b,c),C=new(g()),D=0;for(let a of B){let b=(0,e.join)(l,a);if((0,d.existsSync)(b))try{C.addFile("files/"+a,(0,d.readFileSync)(b)),D++}catch{}}let E={goal:f,specs:t,issues:v,tasks:w,taskSteps:A,decisions:x,reports:y,fileCount:D,archivedAt:new Date().toISOString()},F=[`# Archived work — ${f.title}`,"",`Status at archive: ${f.status} \xb7 progress ${f.progress}%`,"",`## Specs (${t.length})`,...t.map(a=>`- ${a.key} ${a.title}`),"",`## Issues (${v.length})`,...v.map(a=>`- ${a.key} [${a.col}] ${a.title}`),"",`## Decisions (${x.length})`,...x.map(a=>`- ${a.text} (${a.by})`),"",`## Source files (${D})`,...B.map(a=>`- ${a}`),""].join("\n");C.addFile("MANIFEST.json",Buffer.from(JSON.stringify(E,null,2))),C.addFile("MANIFEST.md",Buffer.from(F));let G=(0,e.join)(l,"archives");(0,d.mkdirSync)(G,{recursive:!0});let H=`archives/${r(f.title)}-${new Date().toISOString().slice(0,10)}-${c.slice(0,6)}.zip`;try{C.writeZip((0,e.join)(l,H))}catch(a){return console.error("[archiveGoalFor] zip failed:",a),{ok:!1}}return await i.db.update(j.goal).set({status:"archived",archivePath:H,archivedAt:new Date}).where((0,h.eq)(j.goal.id,c)),await u(b,c,"archived"),await (0,o.TC)(b,c),await s(b,c),await (0,n.j)(b,{text:`Archived goal: ${f.title} → ${H}`,by:"operator",source:"operator-instruction",goalId:c}),await (0,p.I)(b,{kind:"info",text:`Goal archived — ${f.title}`,detail:`${D} files + manifest zipped to ${H}.`}),{ok:!0,path:H,title:f.title}}},60686:(a,b,c)=>{c.d(b,{Fy:()=>m,KD:()=>q,Rr:()=>l,TH:()=>s,Xu:()=>r,j0:()=>n,nx:()=>o,zC:()=>p});var d=c(6866),e=c(31371),f=c(53993),g=c(63562),h=c(81204),i=c(70221),j=c(77558),k=c(24701);async function l(){let{org:a,workspace:b}=await (0,f.nP)(),c=await (0,g.ZF)(b.id,a.id);return(0,e.revalidatePath)("/test-dev"),c}async function m(){let{workspace:a}=await (0,f.nP)(),b=await (0,g.n9)(a.id);return(0,e.revalidatePath)("/test-dev"),b}async function n(){let{workspace:a}=await (0,f.nP)();return(0,g.CS)(a.id)}async function o(){let{org:a,workspace:b}=await (0,f.nP)(),c=(0,g.CS)(b.id);if("running"!==c.status&&"starting"!==c.status&&(c=await (0,g.ZF)(b.id,a.id)),!c.url||"running"!==c.status&&"starting"!==c.status)return{ok:!1,error:"The dev server isn't running — start the app first."};let d=await (0,h.nK)(b.id,c.url);return d?{ok:!0,url:d.url}:{ok:!1,error:"Could not start the inspect proxy."}}async function p(){let{workspace:a}=await (0,f.nP)();return(0,h.hA)(a.id),{ok:!0}}async function q(a){if(await (0,f.nP)(),!/^https?:\/\/(127\.0\.0\.1|localhost)(:\d+)?/i.test(a))return{frameable:!0};try{let b=await fetch(a,{redirect:"manual",signal:AbortSignal.timeout(3e3)}),c=(b.headers.get("x-frame-options")||"").toLowerCase(),d=(b.headers.get("content-security-policy")||"").toLowerCase(),e=/frame-ancestors\s+([^;]+)/.exec(d)?.[1]??"",f=c.includes("deny")||c.includes("sameorigin"),g=!!e&&!/(\*|localhost|127\.0\.0\.1)/.test(e);return{frameable:!(f||g)}}catch{return{frameable:!0}}}async function r(a){let{org:b,workspace:c}=await (0,f.nP)(),d=a?.issueId?await (0,i.B)(c.id,a.issueId):void 0,g=await (0,i.z)(c.id,b.id,{goalId:a?.goalId,issueId:a?.issueId,routes:d,by:"operator"});return(0,e.revalidatePath)("/test-dev"),g}async function s(a,b){let{workspace:c}=await (0,f.nP)();return await (0,j.vE)(c.id,{kind:"validation",refType:"validation",refId:a,title:`Validate ${a}`,detail:b.slice(0,500)}),await (0,k.I)(c.id,{kind:"review",text:`Validation requested — ${a}`,detail:b.slice(0,300)}),(0,e.revalidatePath)("/inbox"),{ok:!0}}(0,c(74252).D)([l,m,n,o,p,q,r,s]),(0,d.A)(l,"0025702d9be00ab981752267c30f22148e1156d08d",null),(0,d.A)(m,"001a3a28426f79abc91d40fa7dd4cbfd43e3d36131",null),(0,d.A)(n,"004d8d9e8033cc5ebc8e4bc28d5a0b17c3a5f1a42c",null),(0,d.A)(o,"00e7096e00c8dea3583e5b0ed9bcdf52d4b3b42bd5",null),(0,d.A)(p,"003313fcedf1513e66577ac56f5f63a9dc25f333a3",null),(0,d.A)(q,"40491c74154aedc3bfa423d1b839aa0e79a0901a39",null),(0,d.A)(r,"4080fd438c1b3c444b71999be816e9aacd959ad4e7",null),(0,d.A)(s,"60d4ee67d4835094e07f66aebe55ebbf965ee7aef0",null)},84979:(a,b,c)=>{c.d(b,{runSlashCommand:()=>ay});var d=c(77598),e=c(97603),f=c(95357),g=c(65705),h=c(1890),i=c(56338),j=c(57300),k=c(45125),l=c(33644),m=c(13328),n=c(44842),o=c(60686),p=c(69783),q=c(6866),r=c(73024),s=c(76760),t=c(48161),u=c(31371),v=c(53993),w=c(38926),x=c(57086),y=c(70149),z=c(78161),A=c(79505),B=c(63562),C=c(3196),D=c(77558),E=c(24701);let F=!1;function G(){F||(F=!0,g.F.exec(`
|
|
1
|
+
"use strict";exports.id=3987,exports.ids=[3987],exports.modules={1902:(a,b,c)=>{c.d(b,{Lh:()=>t,NF:()=>v,PT:()=>w,jL:()=>u,ot:()=>q,yR:()=>r});var d=c(73024),e=c(76760),f=c(53108),g=c.n(f),h=c(73591),i=c(54813),j=c(406),k=c(37989),l=c(81585),m=c(16769),n=c(3907),o=c(17730),p=c(55593);async function q(a,b){let[c]=await i.db.select().from(j.goal).where((0,h.Uo)((0,h.eq)(j.goal.id,b),(0,h.eq)(j.goal.workspaceId,a)));return c}function r(a){return(a||"work").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"").slice(0,40)||"work"}async function s(a,b){for(let c of(await i.db.select().from(j.task).where((0,h.Uo)((0,h.eq)(j.task.workspaceId,a),(0,h.eq)(j.task.goalId,b)))))(0,l.KD)(c.id),("todo"===c.col||"doing"===c.col)&&(await i.db.update(j.task).set({col:"blocked"}).where((0,h.eq)(j.task.id,c.id)),c.issueId&&await i.db.update(j.issue).set({col:"blocked"}).where((0,h.eq)(j.issue.id,c.issueId))),c.assigneeId&&await i.db.update(j.agent).set({status:"idle"}).where((0,h.eq)(j.agent.id,c.assigneeId))}async function t(a,b){for(let c of(await i.db.select().from(j.task).where((0,h.Uo)((0,h.eq)(j.task.workspaceId,a),(0,h.eq)(j.task.goalId,b),(0,h.eq)(j.task.col,"blocked")))))await i.db.update(j.task).set({col:"todo"}).where((0,h.eq)(j.task.id,c.id)),c.issueId&&await i.db.update(j.issue).set({col:"todo"}).where((0,h.eq)(j.issue.id,c.issueId))}async function u(a,b,c){await i.db.update(j.spec).set({status:c}).where((0,h.Uo)((0,h.eq)(j.spec.workspaceId,a),(0,h.eq)(j.spec.goalId,b))),await i.db.update(j.issue).set({status:c}).where((0,h.Uo)((0,h.eq)(j.issue.workspaceId,a),(0,h.eq)(j.issue.goalId,b)))}async function v(a,b){let c=await q(a,b);return c?(await i.db.update(j.goal).set({status:"cancelled",cancelledAt:new Date}).where((0,h.eq)(j.goal.id,b)),await u(a,b,"cancelled"),await (0,o.TC)(a,b),await s(a,b),await (0,n.j)(a,{text:`Cancelled goal: ${c.title}`,by:"operator",source:"operator-instruction",goalId:b}),await (0,p.I)(a,{kind:"info",text:`Goal cancelled — ${c.title}`,detail:"Execution stopped; state preserved. Reopen to resume."}),{ok:!0,title:c.title}):{ok:!1}}async function w(a,b,c){let f=await q(b,c);if(!f)return{ok:!1};let l=(0,k.HZ)(a),[t,v,w,x,y]=await Promise.all([i.db.select().from(j.spec).where((0,h.Uo)((0,h.eq)(j.spec.workspaceId,b),(0,h.eq)(j.spec.goalId,c))),i.db.select().from(j.issue).where((0,h.Uo)((0,h.eq)(j.issue.workspaceId,b),(0,h.eq)(j.issue.goalId,c))),i.db.select().from(j.task).where((0,h.Uo)((0,h.eq)(j.task.workspaceId,b),(0,h.eq)(j.task.goalId,c))),i.db.select().from(j.decision).where((0,h.Uo)((0,h.eq)(j.decision.workspaceId,b),(0,h.eq)(j.decision.goalId,c))),i.db.select().from(j.report).where((0,h.Uo)((0,h.eq)(j.report.workspaceId,b),(0,h.eq)(j.report.goalId,c)))]),z=w.map(a=>a.id),A=z.length?await i.db.select().from(j.taskStep).where((0,h.RV)(j.taskStep.taskId,z)):[],B=await (0,m.Y)(b,c),C=new(g()),D=0;for(let a of B){let b=(0,e.join)(l,a);if((0,d.existsSync)(b))try{C.addFile("files/"+a,(0,d.readFileSync)(b)),D++}catch{}}let E={goal:f,specs:t,issues:v,tasks:w,taskSteps:A,decisions:x,reports:y,fileCount:D,archivedAt:new Date().toISOString()},F=[`# Archived work — ${f.title}`,"",`Status at archive: ${f.status} \xb7 progress ${f.progress}%`,"",`## Specs (${t.length})`,...t.map(a=>`- ${a.key} ${a.title}`),"",`## Issues (${v.length})`,...v.map(a=>`- ${a.key} [${a.col}] ${a.title}`),"",`## Decisions (${x.length})`,...x.map(a=>`- ${a.text} (${a.by})`),"",`## Source files (${D})`,...B.map(a=>`- ${a}`),""].join("\n");C.addFile("MANIFEST.json",Buffer.from(JSON.stringify(E,null,2))),C.addFile("MANIFEST.md",Buffer.from(F));let G=(0,e.join)(l,"archives");(0,d.mkdirSync)(G,{recursive:!0});let H=`archives/${r(f.title)}-${new Date().toISOString().slice(0,10)}-${c.slice(0,6)}.zip`;try{C.writeZip((0,e.join)(l,H))}catch(a){return console.error("[archiveGoalFor] zip failed:",a),{ok:!1}}return await i.db.update(j.goal).set({status:"archived",archivePath:H,archivedAt:new Date}).where((0,h.eq)(j.goal.id,c)),await u(b,c,"archived"),await (0,o.TC)(b,c),await s(b,c),await (0,n.j)(b,{text:`Archived goal: ${f.title} → ${H}`,by:"operator",source:"operator-instruction",goalId:c}),await (0,p.I)(b,{kind:"info",text:`Goal archived — ${f.title}`,detail:`${D} files + manifest zipped to ${H}.`}),{ok:!0,path:H,title:f.title}}},9450:(a,b,c)=>{c.d(b,{Fy:()=>m,KD:()=>q,Rr:()=>l,TH:()=>s,Xu:()=>r,j0:()=>n,nx:()=>o,zC:()=>p});var d=c(80501),e=c(3770),f=c(96405),g=c(99398),h=c(62758),i=c(88193),j=c(17730),k=c(55593);async function l(){let{org:a,workspace:b}=await (0,f.nP)(),c=await (0,g.ZF)(b.id,a.id);return(0,e.revalidatePath)("/test-dev"),c}async function m(){let{workspace:a}=await (0,f.nP)(),b=await (0,g.n9)(a.id);return(0,e.revalidatePath)("/test-dev"),b}async function n(){let{workspace:a}=await (0,f.nP)();return(0,g.CS)(a.id)}async function o(){let{org:a,workspace:b}=await (0,f.nP)(),c=(0,g.CS)(b.id);if("running"!==c.status&&"starting"!==c.status&&(c=await (0,g.ZF)(b.id,a.id)),!c.url||"running"!==c.status&&"starting"!==c.status)return{ok:!1,error:"The dev server isn't running — start the app first."};let d=await (0,h.nK)(b.id,c.url);return d?{ok:!0,url:d.url}:{ok:!1,error:"Could not start the inspect proxy."}}async function p(){let{workspace:a}=await (0,f.nP)();return(0,h.hA)(a.id),{ok:!0}}async function q(a){if(await (0,f.nP)(),!/^https?:\/\/(127\.0\.0\.1|localhost)(:\d+)?/i.test(a))return{frameable:!0};try{let b=await fetch(a,{redirect:"manual",signal:AbortSignal.timeout(3e3)}),c=(b.headers.get("x-frame-options")||"").toLowerCase(),d=(b.headers.get("content-security-policy")||"").toLowerCase(),e=/frame-ancestors\s+([^;]+)/.exec(d)?.[1]??"",f=c.includes("deny")||c.includes("sameorigin"),g=!!e&&!/(\*|localhost|127\.0\.0\.1)/.test(e);return{frameable:!(f||g)}}catch{return{frameable:!0}}}async function r(a){let{org:b,workspace:c}=await (0,f.nP)(),d=a?.issueId?await (0,i.B)(c.id,a.issueId):void 0,g=await (0,i.z)(c.id,b.id,{goalId:a?.goalId,issueId:a?.issueId,routes:d,by:"operator"});return(0,e.revalidatePath)("/test-dev"),g}async function s(a,b){let{workspace:c}=await (0,f.nP)();return await (0,j.vE)(c.id,{kind:"validation",refType:"validation",refId:a,title:`Validate ${a}`,detail:b.slice(0,500)}),await (0,k.I)(c.id,{kind:"review",text:`Validation requested — ${a}`,detail:b.slice(0,300)}),(0,e.revalidatePath)("/inbox"),{ok:!0}}(0,c(64185).D)([l,m,n,o,p,q,r,s]),(0,d.A)(l,"00930ce046f9bfbd1af19ed9f127d55e5366f84688",null),(0,d.A)(m,"00c0f420f325381667e547899b541bd24ba3680fa3",null),(0,d.A)(n,"000197b130ec53acb1bf865af0bd6cf00016ba34f4",null),(0,d.A)(o,"00e5801971a984c426a1d1c4adcd9eaff741489733",null),(0,d.A)(p,"0011588f6fe8674c7176a940ff9feb94f0d7019cbf",null),(0,d.A)(q,"40019c929b3f4d4dbb0df8da0a5f7b239141e4ed0a",null),(0,d.A)(r,"40b0fa67493bf00906e35587dde30dc745f2b72ef6",null),(0,d.A)(s,"608ffe8f599176ad0d19760c947a74041925422f1a",null)},63987:(a,b,c)=>{c.d(b,{runSlashCommand:()=>ay});var d=c(77598),e=c(73591),f=c(38465),g=c(54813),h=c(406),i=c(3233),j=c(45608),k=c(90497),l=c(3152),m=c(74884),n=c(1902),o=c(9450),p=c(78211),q=c(80501),r=c(73024),s=c(76760),t=c(48161),u=c(3770),v=c(96405),w=c(39522),x=c(37989),y=c(81585),z=c(24077),A=c(37181),B=c(99398),C=c(19872),D=c(17730),E=c(55593);let F=!1;function G(){F||(F=!0,g.F.exec(`
|
|
2
2
|
CREATE TABLE IF NOT EXISTS deploy_run (
|
|
3
3
|
id TEXT PRIMARY KEY,
|
|
4
4
|
workspace_id TEXT NOT NULL REFERENCES workspace(id) ON DELETE CASCADE,
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
updated_at INTEGER NOT NULL DEFAULT (unixepoch())
|
|
15
15
|
);
|
|
16
16
|
CREATE UNIQUE INDEX IF NOT EXISTS deploy_run_ws_uq ON deploy_run (workspace_id);
|
|
17
|
-
`))}function H(a,b){if(!a)return b;try{return JSON.parse(a)}catch{return b}}let I={status:"idle",runId:"",steps:[],summary:"",buildLog:"",checklist:[],lastExport:null,startedAt:null,updatedAt:0};async function J(a){G();let[b]=await g.db.select().from(h.deployRun).where((0,e.eq)(h.deployRun.workspaceId,a));return b?{status:b.status||"idle",runId:b.runId,steps:H(b.steps,[]),summary:b.summary,buildLog:b.buildLog,checklist:H(b.checklist,[]),lastExport:b.lastExport?H(b.lastExport,null):null,startedAt:b.startedAt?b.startedAt.getTime():null,updatedAt:b.updatedAt?b.updatedAt.getTime():0}:{...I}}async function K(a,b){G();let c={updatedAt:new Date};void 0!==b.status&&(c.status=b.status),void 0!==b.runId&&(c.runId=b.runId),void 0!==b.steps&&(c.steps=JSON.stringify(b.steps)),void 0!==b.summary&&(c.summary=b.summary),void 0!==b.buildLog&&(c.buildLog=b.buildLog),void 0!==b.checklist&&(c.checklist=JSON.stringify(b.checklist)),void 0!==b.lastExport&&(c.lastExport=null===b.lastExport?null:JSON.stringify(b.lastExport)),void 0!==b.startedAt&&(c.startedAt=null===b.startedAt?null:new Date(b.startedAt));let[f]=await g.db.select({id:h.deployRun.id}).from(h.deployRun).where((0,e.eq)(h.deployRun.workspaceId,a));f?await g.db.update(h.deployRun).set(c).where((0,e.eq)(h.deployRun.workspaceId,a)):await g.db.insert(h.deployRun).values({id:(0,d.randomUUID)(),workspaceId:a,...c})}var L=c(
|
|
17
|
+
`))}function H(a,b){if(!a)return b;try{return JSON.parse(a)}catch{return b}}let I={status:"idle",runId:"",steps:[],summary:"",buildLog:"",checklist:[],lastExport:null,startedAt:null,updatedAt:0};async function J(a){G();let[b]=await g.db.select().from(h.deployRun).where((0,e.eq)(h.deployRun.workspaceId,a));return b?{status:b.status||"idle",runId:b.runId,steps:H(b.steps,[]),summary:b.summary,buildLog:b.buildLog,checklist:H(b.checklist,[]),lastExport:b.lastExport?H(b.lastExport,null):null,startedAt:b.startedAt?b.startedAt.getTime():null,updatedAt:b.updatedAt?b.updatedAt.getTime():0}:{...I}}async function K(a,b){G();let c={updatedAt:new Date};void 0!==b.status&&(c.status=b.status),void 0!==b.runId&&(c.runId=b.runId),void 0!==b.steps&&(c.steps=JSON.stringify(b.steps)),void 0!==b.summary&&(c.summary=b.summary),void 0!==b.buildLog&&(c.buildLog=b.buildLog),void 0!==b.checklist&&(c.checklist=JSON.stringify(b.checklist)),void 0!==b.lastExport&&(c.lastExport=null===b.lastExport?null:JSON.stringify(b.lastExport)),void 0!==b.startedAt&&(c.startedAt=null===b.startedAt?null:new Date(b.startedAt));let[f]=await g.db.select({id:h.deployRun.id}).from(h.deployRun).where((0,e.eq)(h.deployRun.workspaceId,a));f?await g.db.update(h.deployRun).set(c).where((0,e.eq)(h.deployRun.workspaceId,a)):await g.db.insert(h.deployRun).values({id:(0,d.randomUUID)(),workspaceId:a,...c})}var L=c(64185);let M=new Set([".claude","DOCS","PO","Reports","specs","issues","mock","uploads","archives",".testdev","node_modules",".git",".next","dist","build","out","coverage",".cache",".turbo","vendor"]),N=/(^|\/)(\.env(\.[\w.-]+)?|id_[rd]sa\w*|.*\.(pem|key|p12|pfx|keystore|jks|ppk|asc)|credentials?\.json|service[-_]?account[\w.-]*\.json|.*\.(sql|dump|bak|sqlite3?|db)|.*\.log|.*\.local)$/i,O=/\.env\.(example|sample|template|dist)$/i,P=`node_modules/
|
|
18
18
|
.next/
|
|
19
19
|
dist/
|
|
20
20
|
build/
|
|
@@ -31,7 +31,7 @@ coverage/
|
|
|
31
31
|
`+(a.stdout+a.stderr).slice(-1800),await K(c,{buildLog:l}),await i("build",0===a.code?"done":"error",0===a.code?"build succeeded":"build failed — the agent will try to fix it")}else await i("build","needs-action","node"===k.runtime?"no build script":"no build step for this stack");await i("validateBuild","running");let f=await (0,B.VX)(c,a.id);await i("validateBuild",f.ok?"done":"error",f.ok?S(a.id)?"boots \xb7 build output present":"boots":f.detail.slice(0,160)),await i("agent","running");let h=await ad(c),p="";if(h){let c,d=await ae(a.id,b,h,(n=l,c=["FINISH PREPARING THIS PROJECT FOR PRODUCTION. Dependencies, tests, the secret scan and the production build have ALREADY been run by the system — focus on the remaining gaps.","Do, in order: (1) create/refresh `.env.example` documenting EVERY required environment variable (NEVER inline real secrets/tokens — use placeholders)."+(k.unsetEnvKeys.length?` The code references these vars not yet in .env.example: ${k.unsetEnvKeys.slice(0,30).join(", ")}.`:""),"(2) if the production build failed, FIX the errors until it builds clean;","(3) write/refresh a root `README.md` (what it is, install, run, configure) and a root `DEPLOY.md` with concrete build/run/deploy steps for this project's host;","(4) finish with a SHORT operator summary + the exact next steps to deploy.","Keep the existing product and its UX; do NOT add internal/control files or a second app."],n&&c.push("Latest production build output (tail):\n"+n.slice(-1200)),c.join("\n")),g);p=(d.text||"").slice(0,800),await i("agent",d.ok?"done":"error",d.ok?"configured env, docs & fixes":d.error?.slice(0,160)||"agent run failed")}else await i("agent","needs-action","no agent available to run");await i("package","running");let q=await $(a.id);return await i("package",q.blocked?"blocked":"done",q.blocked?`${q.secrets.length} secret risk(s) in the export set`:`${q.includedCount} file(s) \xb7 ${(o=q.totalBytes)<1024?`${o} B`:o<1048576?`${(o/1024).toFixed(1)} KB`:`${(o/1024/1024).toFixed(1)} MB`}`),m(q.blocked?"blocked":"done",p||`Prepared ${q.includedCount} clean file(s) for production.`)}catch(a){return m("failed",String(a instanceof Error?a.message:a).slice(0,300))}}async function ai(a,b,c){let e=(0,d.randomUUID)();(0,A.I)(a,{runId:e,channel:"deploy",agentId:null,kind:"run",target:b});try{let d=await c();return(0,A.I)(a,{runId:e,channel:"deploy",agentId:null,kind:"done",target:b}),d}catch(c){throw(0,A.I)(a,{runId:e,channel:"deploy",agentId:null,kind:"error",target:b,detail:String(c)}),c}}async function aj(){let{org:a,workspace:b}=await (0,v.nP)(),c=(0,B.pp)(a.id),d=R(c,a.id);return c&&"node"===c.kind&&d?.scripts?.build?ai(b.id,"production build",async()=>{let a=await (0,y.d1)(c.runCmd,"npm"===c.runCmd?["run","build"]:["build"],{cwd:c.dir,timeoutMs:6e5,env:{...process.env,CI:"1"}}),d=`build ${0===a.code?"OK":a.timedOut?"TIMED OUT":"FAILED ("+a.code+")"}
|
|
32
32
|
`+(a.stdout+a.stderr).slice(-1800);return await K(b.id,{buildLog:d}),(0,u.revalidatePath)("/prepare-deploy"),{ok:0===a.code,log:d}}):{ok:!1,log:"No Node build script to run."}}async function ak(){let{org:a,workspace:b}=await (0,v.nP)(),c=(0,B.pp)(a.id),d=R(c,a.id);return c&&"node"===c.kind&&d?.scripts?.test?ai(b.id,"tests",async()=>{let a=await (0,y.d1)(c.runCmd,["test"],{cwd:c.dir,timeoutMs:3e5,env:{...process.env,CI:"1"}});return{ok:0===a.code,log:`tests ${0===a.code?"PASS":"FAIL"}
|
|
33
33
|
`+(a.stdout+a.stderr).slice(-1800)}}):{ok:!1,log:"No test script to run."}}async function al(a){let{org:b,workspace:c}=await (0,v.nP)(),e=await ad(c.id);if(!e)return{ok:!1,summary:"No agent available."};let f=await X(b.id),g=f.framework?`
|
|
34
|
-
Project: ${f.framework}${f.unsetEnvKeys.length?`; undocumented env vars: ${f.unsetEnvKeys.slice(0,20).join(", ")}`:""}.`:"",h=(0,d.randomUUID)();(0,A.I)(c.id,{runId:h,channel:"deploy",agentId:e.id,kind:"run",target:"readme"===a?"generate README":"generate deploy docs"});let i=await ae(b.id,c,e,("readme"===a?"Write or refresh a clear root `README.md` for this project: what it is, prerequisites, install, run, configure (reference .env.example), and basic usage. Keep it accurate to the real code; do NOT invent features.":"Write or refresh a root `DEPLOY.md` with concrete production deploy steps for this project's stack/host: build, environment variables (reference .env.example, never real secrets), run command, and host-specific notes. Keep it accurate to the real project.")+g,h);return(0,A.I)(c.id,{runId:h,channel:"deploy",agentId:e.id,kind:"done",target:"done"}),(0,u.revalidatePath)("/prepare-deploy"),{ok:i.ok,summary:(i.text||"").slice(0,400)}}async function am(){return al("readme")}async function an(){return al("deploy")}async function ao(a){let{org:b,workspace:c}=await (0,v.nP)(),e=(a.repo||"").trim().replace(/^https?:\/\/github\.com\//i,"").replace(/\.git$/,"");if(!/^[\w.-]+\/[\w.-]+$/.test(e))return{ok:!1,error:"Use the form owner/repo."};let f=a.token?.trim()||await (0,w.r6)(c.id,"github_pat");if(!f)return{ok:!1,error:"Provide a GitHub token (or connect one in Commit GitHub first)."};let g=a=>f?a.split(f).join("***"):a;try{let a=await fetch(`https://api.github.com/repos/${e}`,{headers:{Authorization:`Bearer ${f}`,"User-Agent":"constella",Accept:"application/vnd.github+json"},signal:AbortSignal.timeout(12e3)});if(404===a.status)return{ok:!1,error:"Repo not found, or this token can't access it."};if(!a.ok)return{ok:!1,error:`GitHub ${a.status}`}}catch{return{ok:!1,error:"Couldn't reach GitHub."}}let h=(0,s.join)((0,t.tmpdir)(),"constella-export-"+(0,d.randomUUID)()),i=a.branch?.trim()||"main";try{(0,r.mkdirSync)(h,{recursive:!0});let d=Z(h,b.id);if(0===d.copied)return{ok:!1,error:"Nothing to export yet — no clean product source files were found."};await (0,y.d1)("git",["init","-b",i],{cwd:h}),await (0,y.d1)("git",["add","-A"],{cwd:h});let j=await (0,C.I)(h);if(j.findings.length)return await (0,D.vE)(c.id,{kind:"block",refType:"task",refId:`export-${e}`,title:`Export blocked — ${j.findings.length} secret risk(s)`,detail:j.findings.slice(0,5).map(a=>`${a.file}: ${a.kind}`).join("; ")}),await (0,E.I)(c.id,{kind:"security",text:`Clean export blocked — ${j.findings.length} secret risk(s)`,detail:`Resolve before exporting to ${e}.`}),(0,u.revalidatePath)("/prepare-deploy"),(0,u.revalidatePath)("/inbox"),{ok:!1,blocked:!0,secrets:j.findings,error:`Blocked: ${j.findings.length} potential secret(s) in the export set.`};await (0,y.d1)("git",["-c","user.email=agents@constella.dev","-c","user.name=Constella Agents","commit","-m",a.message?.trim()||"chore: export clean source"],{cwd:h});let k=(await (0,y.d1)("git",["rev-parse","HEAD"],{cwd:h})).stdout.trim().slice(0,7),l=`https://x-access-token:${f}@github.com/${e}.git`,m=await (0,y.d1)("git",["push","-f",l,`HEAD:${i}`],{cwd:h,timeoutMs:12e4});if(0!==m.code)return{ok:!1,error:g((m.stderr||"git push failed").slice(-300))};return await K(c.id,{lastExport:{ok:!0,sha:k,copied:d.copied,repo:e,branch:i,at:Date.now()}}),(0,u.revalidatePath)("/prepare-deploy"),{ok:!0,pushed:!0,sha:k,copied:d.copied}}catch(a){return{ok:!1,error:g(String(a instanceof Error?a.message:a))}}finally{try{(0,r.rmSync)(h,{recursive:!0,force:!0})}catch{}}}(0,L.D)([Y,_,ab,ac,ah,aj,ak,am,an,ao]),(0,q.A)(Y,"
|
|
34
|
+
Project: ${f.framework}${f.unsetEnvKeys.length?`; undocumented env vars: ${f.unsetEnvKeys.slice(0,20).join(", ")}`:""}.`:"",h=(0,d.randomUUID)();(0,A.I)(c.id,{runId:h,channel:"deploy",agentId:e.id,kind:"run",target:"readme"===a?"generate README":"generate deploy docs"});let i=await ae(b.id,c,e,("readme"===a?"Write or refresh a clear root `README.md` for this project: what it is, prerequisites, install, run, configure (reference .env.example), and basic usage. Keep it accurate to the real code; do NOT invent features.":"Write or refresh a root `DEPLOY.md` with concrete production deploy steps for this project's stack/host: build, environment variables (reference .env.example, never real secrets), run command, and host-specific notes. Keep it accurate to the real project.")+g,h);return(0,A.I)(c.id,{runId:h,channel:"deploy",agentId:e.id,kind:"done",target:"done"}),(0,u.revalidatePath)("/prepare-deploy"),{ok:i.ok,summary:(i.text||"").slice(0,400)}}async function am(){return al("readme")}async function an(){return al("deploy")}async function ao(a){let{org:b,workspace:c}=await (0,v.nP)(),e=(a.repo||"").trim().replace(/^https?:\/\/github\.com\//i,"").replace(/\.git$/,"");if(!/^[\w.-]+\/[\w.-]+$/.test(e))return{ok:!1,error:"Use the form owner/repo."};let f=a.token?.trim()||await (0,w.r6)(c.id,"github_pat");if(!f)return{ok:!1,error:"Provide a GitHub token (or connect one in Commit GitHub first)."};let g=a=>f?a.split(f).join("***"):a;try{let a=await fetch(`https://api.github.com/repos/${e}`,{headers:{Authorization:`Bearer ${f}`,"User-Agent":"constella",Accept:"application/vnd.github+json"},signal:AbortSignal.timeout(12e3)});if(404===a.status)return{ok:!1,error:"Repo not found, or this token can't access it."};if(!a.ok)return{ok:!1,error:`GitHub ${a.status}`}}catch{return{ok:!1,error:"Couldn't reach GitHub."}}let h=(0,s.join)((0,t.tmpdir)(),"constella-export-"+(0,d.randomUUID)()),i=a.branch?.trim()||"main";try{(0,r.mkdirSync)(h,{recursive:!0});let d=Z(h,b.id);if(0===d.copied)return{ok:!1,error:"Nothing to export yet — no clean product source files were found."};await (0,y.d1)("git",["init","-b",i],{cwd:h}),await (0,y.d1)("git",["add","-A"],{cwd:h});let j=await (0,C.I)(h);if(j.findings.length)return await (0,D.vE)(c.id,{kind:"block",refType:"task",refId:`export-${e}`,title:`Export blocked — ${j.findings.length} secret risk(s)`,detail:j.findings.slice(0,5).map(a=>`${a.file}: ${a.kind}`).join("; ")}),await (0,E.I)(c.id,{kind:"security",text:`Clean export blocked — ${j.findings.length} secret risk(s)`,detail:`Resolve before exporting to ${e}.`}),(0,u.revalidatePath)("/prepare-deploy"),(0,u.revalidatePath)("/inbox"),{ok:!1,blocked:!0,secrets:j.findings,error:`Blocked: ${j.findings.length} potential secret(s) in the export set.`};await (0,y.d1)("git",["-c","user.email=agents@constella.dev","-c","user.name=Constella Agents","commit","-m",a.message?.trim()||"chore: export clean source"],{cwd:h});let k=(await (0,y.d1)("git",["rev-parse","HEAD"],{cwd:h})).stdout.trim().slice(0,7),l=`https://x-access-token:${f}@github.com/${e}.git`,m=await (0,y.d1)("git",["push","-f",l,`HEAD:${i}`],{cwd:h,timeoutMs:12e4});if(0!==m.code)return{ok:!1,error:g((m.stderr||"git push failed").slice(-300))};return await K(c.id,{lastExport:{ok:!0,sha:k,copied:d.copied,repo:e,branch:i,at:Date.now()}}),(0,u.revalidatePath)("/prepare-deploy"),{ok:!0,pushed:!0,sha:k,copied:d.copied}}catch(a){return{ok:!1,error:g(String(a instanceof Error?a.message:a))}}finally{try{(0,r.rmSync)(h,{recursive:!0,force:!0})}catch{}}}(0,L.D)([Y,_,ab,ac,ah,aj,ak,am,an,ao]),(0,q.A)(Y,"00fd5845c87261926cfed1002628be33aa84aba63c",null),(0,q.A)(_,"002de7aa89b1fed27ffae153d50899c07b678a68a7",null),(0,q.A)(ab,"00ef21a2116956fa978919db86dea47e6aa8ffae85",null),(0,q.A)(ac,"005417f7d12ec46197a918b3e3f9cf23f032613d34",null),(0,q.A)(ah,"004cc4e7cf9b5ec24384a925cb35b5041dbddb8f83",null),(0,q.A)(aj,"00795df90948d25487ef0b844b88984d639565d230",null),(0,q.A)(ak,"00dc9382ef55043b556c2d736294f06c48f1ed18c4",null),(0,q.A)(am,"00b859e69f44375cefa6d463be0fb5a8642947234a",null),(0,q.A)(an,"008a13b73af721544be1088b12bb218a8fbda21b15",null),(0,q.A)(ao,"4047940bc02e9f888bd30aae23a11107893a9fb5a5",null);var ap=c(21699),aq=c(6661),ar=c(71809),as=c(60595),at=c(16356),au=c(85707);let av=`Available commands:
|
|
35
35
|
- /help — this list
|
|
36
36
|
- /kb <question> (alias /ask-kb) — ask the Knowledge Base; answers with references
|
|
37
37
|
- /status — active goals, open issues, tasks in flight
|
|
@@ -64,4 +64,4 @@ Runtime: ${e}
|
|
|
64
64
|
${b.slice(0,8).map(a=>`- ${a.title}`).join("\n")}`).join("\n\n");return await ax(b,q,"vannevar",`🕸️ Connections for \`${v}\` — ${k.nodes.length} related item(s):
|
|
65
65
|
|
|
66
66
|
${l}`,s,{kind:"kb-card"}),w()}case"/test-dev":{await aw(b,q,r,s),await ax(b,q,"edsger","\uD83E\uDDEA Running the Test Dev validation gate…",s);let a=await (0,o.Xu)();return await ax(b,q,"edsger",`Test Dev — **${a.status}**.${a.summary?` ${a.summary}`:""}`,s),w()}case"/github":{await aw(b,q,r,s);let a=await (0,p.Iq)();return await ax(b,q,"werner",a.ok?`🐙 GitHub — ${a.changed} changed file(s) detected. Open the GitHub module to commit + push.`:"\uD83D\uDC19 GitHub — couldn't read the repository status (is this a git repo?).",s),w()}case"/assign":{await aw(b,q,r,s);let a=v.match(/^(\S+)\s+@?(\S+)$/);if(!a)return await ax(b,q,"system","Usage: `/assign <issue-key> <@agent>` — e.g. `/assign 3 @margaret`.",s),w();let[,c,d]=a,[f]=await g.db.select({id:h.issue.id}).from(h.issue).where((0,e.Uo)((0,e.eq)(h.issue.workspaceId,b),(0,e.eq)(h.issue.key,c)));if(!f)return await ax(b,q,"system",`No issue #${c} on the board.`,s),w();let[i]=await g.db.select({id:h.agent.id,name:h.agent.name}).from(h.agent).where((0,e.Uo)((0,e.eq)(h.agent.workspaceId,b),(0,e.eq)(h.agent.handle,d.toLowerCase())));if(!i)return await ax(b,q,"system",`No agent @${d.toLowerCase()} on the roster.`,s),w();return await g.db.update(h.issue).set({assigneeId:i.id}).where((0,e.eq)(h.issue.id,f.id)),await ax(b,q,"system",`👤 Issue #${c} assigned to ${i.name} (@${d.toLowerCase()}).`,s),w()}case"/review":{let a=c.find(a=>/cybersec|security|qa/i.test(a.role))??c.find(a=>"whitfield"===a.handle);if(!a)return await aw(b,q,r,s),await ax(b,q,"system","No reviewer agent (CyberSec/QA) on the roster.",s),w();return await aw(b,q,`@${a.handle} review the recent changes on the board${v?`: ${v}`:""}.`,s),w([a.handle])}case"/prepare-deploy":{await aw(b,q,r,s),await ax(b,q,"werner","\uD83D\uDE80 Running the Prepare-Deploy pipeline — this can take a minute; live progress is in the Prepare Deploy module.",s);let a=await ah();return await ax(b,q,"werner",`Prepare-Deploy — **${a.status}**.${a.summary?` ${a.summary}`:""}`,s),w()}case"/export-source":{if(await aw(b,q,r,s),!v)return await ax(b,q,"system","Usage: `/export-source <github-repo>` — e.g. `/export-source myorg/constella-public`.",s),w();let a=await ao({repo:v.split(/\s+/)[0]});return await ax(b,q,"werner",a.ok?`📦 Exported the clean source${a.sha?` (${a.sha.slice(0,7)})`:""}${a.copied?` — ${a.copied} file(s)`:""}.`:a.blocked?`🛑 Export blocked — ${a.secrets?.length??0} secret finding(s). Resolve them first.`:`Export failed${a.error?` — ${a.error}`:""}.`,s),w()}case"/telegram":{await aw(b,q,r,s);let a=await (0,ap._9)(b);return await ax(b,q,"system",a?`📲 Telegram is configured — bot connected, alerts route to the allowlisted chat${a.allowedName?` (${a.allowedName})`:""}.`:"\uD83D\uDCF2 Telegram is not configured. Add a bot token + chat id in Settings → Integrations.",s),w()}case"/models":{await aw(b,q,r,s);let[a,c]=await Promise.all([(0,aq.VH)(),(0,aq.LU)()]),d=[c.up?`llama.cpp: up${c.model?` (${c.model})`:""}`:"llama.cpp: down",a.up?`Ollama: up — ${a.models.length} model(s)${a.models.length?`: ${a.models.slice(0,6).map(a=>a.name).join(", ")}`:""}`:"Ollama: not running"];return await ax(b,q,"system",`🧠 Local models — ${d.join(" \xb7 ")}. Browse + download in the Models module.`,s),w()}case"/skills":{await aw(b,q,r,s);let a=(0,ar.Ws)();return await ax(b,q,"system",`📚 Skills library — ${a.length} skill(s). Sample: ${a.slice(0,12).join(", ")}${a.length>12?" …":""}. Enable/disable per agent in Agent Studio → Skills.`,s),w()}case"/locks":{await aw(b,q,r,s);let a=await (0,as.h6)(b);return await ax(b,q,"system",a.length?`🔒 ${a.length} file lock(s) held:
|
|
67
|
-
${a.slice(0,15).map(a=>`- \`${a.path}\` — @${a.agentHandle}`).join("\n")}`:"\uD83D\uDD13 No file locks held right now.",s),w()}case"/generate-plan":{await aw(b,q,r,s);let[c]=await g.db.select().from(h.workspace).where((0,e.eq)(h.workspace.id,b));if(!c)return await ax(b,q,"system","No workspace found.",s),w();let d=await (0,at.generatePlanFor)(a,c,v?{brief:v}:void 0);return await ax(b,q,"ada",d.ok?"\uD83E\uDDED Plan generation started — drafting specs → issues → TODOs; it'll appear in the CEO Planner for your approval.":`Couldn't start plan generation${d.error?` — ${d.error}`:""}.`,s),w()}case"/close-sprint":{await aw(b,q,r,s);let c=await (0,au.MO)(a,b);return await ax(b,q,"donald",c.ok?`🏁 Sprint closed — ${c.shipped} shipped, ${c.carried} carried over. Retro written to \`${c.path}\`.`:"Nothing to close — no issues are in Done yet.",s),w()}default:return await aw(b,q,r,s),await ax(b,q,"system",`Unknown command \`${u}\`. Try \`/help\`.`,s),w()}}}};
|
|
67
|
+
${a.slice(0,15).map(a=>`- \`${a.path}\` — @${a.agentHandle}`).join("\n")}`:"\uD83D\uDD13 No file locks held right now.",s),w()}case"/generate-plan":{await aw(b,q,r,s);let[c]=await g.db.select().from(h.workspace).where((0,e.eq)(h.workspace.id,b));if(!c)return await ax(b,q,"system","No workspace found.",s),w();let d=await (0,at.generatePlanFor)(a,c,v?{brief:v}:void 0);return await ax(b,q,"ada",d.ok?"\uD83E\uDDED Plan generation started — drafting specs → issues → TODOs; it'll appear in the CEO Planner for your approval.":`Couldn't start plan generation${d.error?` — ${d.error}`:""}.`,s),w()}case"/close-sprint":{await aw(b,q,r,s);let c=await (0,au.MO)(a,b);return await ax(b,q,"donald",c.ok?`🏁 Sprint closed — ${c.shipped} shipped, ${c.carried} carried over. Retro written to \`${c.path}\`.`:"Nothing to close — no issues are in Done yet.",s),w()}default:return await aw(b,q,r,s),await ax(b,q,"system",`Unknown command \`${u}\`. Try \`/help\`.`,s),w()}}},85707:(a,b,c)=>{c.d(b,{$K:()=>m,$h:()=>q,FU:()=>t,II:()=>s,Kb:()=>u,MO:()=>o,Qu:()=>n,Vz:()=>r,dZ:()=>p});var d=c(80501),e=c(77598),f=c(73591),g=c(3770),h=c(54813),i=c(406),j=c(96405),k=c(45900),l=c(3907);async function m(a){let{workspace:b}=await (0,j.nP)(),c=a.title.trim();c&&(await h.db.insert(i.backlogItem).values({id:(0,e.randomUUID)(),workspaceId:b.id,title:c,moscow:a.moscow??"Should",points:a.points??0}),(0,g.revalidatePath)("/pm"))}async function n(a){let{workspace:b}=await (0,j.nP)();await h.db.delete(i.backlogItem).where((0,f.Uo)((0,f.eq)(i.backlogItem.id,a),(0,f.eq)(i.backlogItem.workspaceId,b.id))),(0,g.revalidatePath)("/pm")}async function o(a,b){let c=await h.db.select().from(i.issue).where((0,f.Uo)((0,f.eq)(i.issue.workspaceId,b),(0,f.eq)(i.issue.status,"active"))),d=c.filter(a=>"done"===a.col),e=c.filter(a=>"done"!==a.col);if(!d.length)return{ok:!1,shipped:0,carried:e.length};let g=new Date().toISOString().slice(0,10),j=[`# Sprint retro — ${g}`,"",`## Shipped (${d.length})`,...d.map(a=>`- ${a.key} — ${a.title}${a.points?` (${a.points} pts)`:""}`),"",`## Carried over (${e.length})`,...e.length?e.map(a=>`- ${a.key} [${a.col}] — ${a.title}`):["- (nothing — clean sprint)"],"",`_Closed ${new Date().toISOString()} by the Product Owner._`,""].join("\n"),m=`PO/sprint-retro-${g}.md`;try{await (0,k.g)(a,m,j)}catch(a){console.error("[closeSprint] retro write failed:",a)}return await h.db.update(i.issue).set({status:"archived"}).where((0,f.Uo)((0,f.eq)(i.issue.workspaceId,b),(0,f.RV)(i.issue.id,d.map(a=>a.id)))),await (0,l.j)(b,{text:`Sprint closed — ${d.length} shipped, ${e.length} carried over; retro at ${m}`,by:"donald",source:"po-grooming"}),{ok:!0,shipped:d.length,carried:e.length,path:m}}async function p(){let{org:a,workspace:b}=await (0,j.nP)(),c=await o(a.id,b.id);return(0,g.revalidatePath)("/pm"),(0,g.revalidatePath)("/","layout"),c}async function q(a){let{workspace:b}=await (0,j.nP)(),[c]=await h.db.select().from(i.backlogItem).where((0,f.Uo)((0,f.eq)(i.backlogItem.id,a),(0,f.eq)(i.backlogItem.workspaceId,b.id)));if(!c)return;let d=(await h.db.select().from(i.issue).where((0,f.eq)(i.issue.workspaceId,b.id))).length;await h.db.insert(i.issue).values({id:(0,e.randomUUID)(),workspaceId:b.id,key:"S-"+(d+1),title:c.title,col:"todo",prio:"med",moscow:c.moscow,points:c.points}),await h.db.delete(i.backlogItem).where((0,f.eq)(i.backlogItem.id,a)),(0,g.revalidatePath)("/pm")}async function r(a,b){let{workspace:c}=await (0,j.nP)();await h.db.update(i.issue).set({col:b}).where((0,f.Uo)((0,f.eq)(i.issue.id,a),(0,f.eq)(i.issue.workspaceId,c.id))),(0,g.revalidatePath)("/pm")}async function s(a,b){let{workspace:c}=await (0,j.nP)();await h.db.update(i.issue).set({moscow:b}).where((0,f.Uo)((0,f.eq)(i.issue.id,a),(0,f.eq)(i.issue.workspaceId,c.id))),(0,g.revalidatePath)("/pm")}async function t(a){let{workspace:b}=await (0,j.nP)();await h.db.update(i.issue).set({col:"blocked"}).where((0,f.Uo)((0,f.eq)(i.issue.id,a),(0,f.eq)(i.issue.workspaceId,b.id))),await h.db.update(i.task).set({col:"blocked"}).where((0,f.Uo)((0,f.eq)(i.task.issueId,a),(0,f.eq)(i.task.workspaceId,b.id))),(0,g.revalidatePath)("/pm"),(0,g.revalidatePath)("/tasks")}async function u(a){let{workspace:b}=await (0,j.nP)();await h.db.update(i.issue).set({col:"todo"}).where((0,f.Uo)((0,f.eq)(i.issue.id,a),(0,f.eq)(i.issue.workspaceId,b.id)));let[c]=await h.db.update(i.task).set({col:"todo"}).where((0,f.Uo)((0,f.eq)(i.task.issueId,a),(0,f.eq)(i.task.workspaceId,b.id))).returning();c?.assigneeId&&await h.db.update(i.agent).set({status:"idle"}).where((0,f.eq)(i.agent.id,c.assigneeId)),(0,g.revalidatePath)("/pm"),(0,g.revalidatePath)("/tasks")}(0,c(64185).D)([m,n,o,p,q,r,s,t,u]),(0,d.A)(m,"40649b5468dc7a84b78a92b02b10c05facabb31f97",null),(0,d.A)(n,"401be6165630fcaa32f734ffa573c83435b5419550",null),(0,d.A)(o,"60e860c9eec3f59cb5117c4a08d99036b47e4fd9a4",null),(0,d.A)(p,"009419f85efa97b4e445afb52162c874025e43b616",null),(0,d.A)(q,"40ad1e69d1af0d97cfe688e04554e6fbfc456f1a8d",null),(0,d.A)(r,"60bda47673c2f67df43814b1936411f01f951e4bc9",null),(0,d.A)(s,"604b212ed0236b93d6d2ce0d92f433c0fd321fcc20",null),(0,d.A)(t,"409cbbf1cbe973ff0c4d7c1876994db8729ab239f4",null),(0,d.A)(u,"40ee8a87a8e61ef1bafdc36a0491c412346f647ab0",null)}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=404,exports.ids=[404],exports.modules={80404:(a,b,c)=>{c.d(b,{createKyselyAdapter:()=>d.xA,kyselyAdapter:()=>d.rV});var d=c(17170)}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=415,exports.ids=[415],exports.modules={50415:(a,b,c)=>{c.d(b,{E6:()=>q,Nm:()=>A,PD:()=>w,SH:()=>y,U_:()=>r,hu:()=>u,sw:()=>s,xV:()=>t});var d=c(77598),e=c(50730),f=c(23888),g=c(12940),h=c(76561),i=c(66408);let j=process.env.OLLAMA_URL??"http://127.0.0.1:11434",k=process.env.CONSTELLA_EMBED_MODEL??"nomic-embed-text",l=/nomic/i.test(k),m=(a,b)=>`search_${b}: ${a}`,n=process.env.CONSTELLA_EMBED_URL??"http://127.0.0.1:8083",o=[".claude","DOCS","PO","Reports","specs","issues","design-skills"];function p(a){let b=a.replace(/\\/g,"/");return!(b.startsWith(".claude/kb/")||b.startsWith(".claude/skills/"))&&(b.startsWith("mock/")||b.startsWith("design-mock/")?/\.(md|html?|css|jsx?|tsx?|txt|json)$/i.test(b):b.endsWith(".md")&&o.some(a=>b===`${a}.md`||b.startsWith(`${a}/`)))}async function q(a,b="document"){try{let c=await fetch(`${j}/api/embeddings`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({model:k,prompt:l?m(a,b):a}),signal:AbortSignal.timeout(8e3)});if(c.ok){let a=await c.json();if(Array.isArray(a.embedding)&&a.embedding.length)return a.embedding}}catch{}try{let c=await fetch(`${n}/v1/embeddings`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({input:m(a,b),model:"nomic-embed"}),signal:AbortSignal.timeout(8e3)});if(c.ok){let a=await c.json(),b=a?.data?.[0]?.embedding;if(Array.isArray(b)&&b.length)return b}}catch{}return null}function r(a){let b=a.split(/\n(?=#{1,3}\s)/).map(a=>a.trim()).filter(Boolean),c=[];for(let d of b.length?b:[a])if(d)if(d.length<=1200)c.push(d);else for(let a=0;a<d.length;a+=1200)c.push(d.slice(a,a+1200));return c.slice(0,40)}function s(a,b){let c=0,d=0,e=0,f=Math.min(a.length,b.length);for(let g=0;g<f;g++)c+=a[g]*b[g],d+=a[g]*a[g],e+=b[g]*b[g];return d&&e?c/(Math.sqrt(d)*Math.sqrt(e)):0}async function t(a){let[b]=await g.db.select().from(h.workspace).where((0,e.eq)(h.workspace.orgId,a));if(!b)return{ok:!1,chunks:0,embedded:!1};let c=(0,i.CS)(a).filter(p);await g.db.delete(h.ragChunk).where((0,e.Uo)((0,e.eq)(h.ragChunk.workspaceId,b.id),(0,e.kZ)(h.ragChunk.kbEntryId)));let f=0,j=!1;for(let e of c)for(let c of r((0,i.sL)(a,e)??"")){let a=await q(c);a&&(j=!0),await g.db.insert(h.ragChunk).values({id:(0,d.randomUUID)(),workspaceId:b.id,path:e,chunk:c,vector:a?JSON.stringify(a):null}),f++}return{ok:!0,chunks:f+=await u(a),embedded:j}}async function u(a){let[b]=await g.db.select().from(h.workspace).where((0,e.eq)(h.workspace.orgId,a));if(!b)return 0;await g.db.delete(h.ragChunk).where((0,e.Uo)((0,e.eq)(h.ragChunk.workspaceId,b.id),(0,e.mj)(h.ragChunk.path,"chat/%")));let c=await g.db.select().from(h.message).where((0,e.eq)(h.message.workspaceId,b.id)).orderBy((0,f.Y)(h.message.createdAt)),i=new Map;for(let a of c){let b=(a.text??"").replace(/\s+/g," ").trim();if(!b)continue;let c="operator"===a.fromKind?"Operator":"@"+(a.fromHandle??"agent"),d=i.get(a.channel);d||(d=[],i.set(a.channel,d)),d.push(`${c}: ${b}`)}let j=0;for(let[a,c]of i)for(let e of r(c.slice(-400).join("\n"))){let c=await q(e);await g.db.insert(h.ragChunk).values({id:(0,d.randomUUID)(),workspaceId:b.id,path:`chat/${a}`,chunk:e,vector:c?JSON.stringify(c):null}),j++}return j}let v=new Map;function w(a){let b=v.get(a);b&&clearTimeout(b),v.set(a,setTimeout(()=>{v.delete(a),u(a).catch(()=>{})},6e3))}async function x(a,b){if(!p(b))return;let[c]=await g.db.select().from(h.workspace).where((0,e.eq)(h.workspace.orgId,a));if(c)for(let f of(await g.db.delete(h.ragChunk).where((0,e.Uo)((0,e.eq)(h.ragChunk.workspaceId,c.id),(0,e.eq)(h.ragChunk.path,b))),r((0,i.sL)(a,b)??""))){let a=await q(f);await g.db.insert(h.ragChunk).values({id:(0,d.randomUUID)(),workspaceId:c.id,path:b,chunk:f,vector:a?JSON.stringify(a):null})}}async function y(a,b){if(!p(b))return;let[c]=await g.db.select().from(h.workspace).where((0,e.eq)(h.workspace.orgId,a));c&&await g.db.delete(h.ragChunk).where((0,e.Uo)((0,e.eq)(h.ragChunk.workspaceId,c.id),(0,e.eq)(h.ragChunk.path,b)))}let z=new Map;function A(a,b){if(!p(b))return;let c=a+"::"+b,d=z.get(c);d&&clearTimeout(d),z.set(c,setTimeout(()=>{z.delete(c),x(a,b).catch(()=>{})},2500))}},66408:(a,b,c)=>{c.d(b,{r$:()=>h,EX:()=>p,CS:()=>function a(b,c=""){let d=[];for(let e of l(b,c))if(e.isDir){if(m.has(e.name))continue;d.push(...a(b,e.path))}else d.push(e.path);return d},HZ:()=>j,Ci:()=>l,sL:()=>n,dx:()=>o});var d=c(73024),e=c(76760),f=c(48161),g=c(45570);function h(){return process.env.CONSTELLA_HOME?(0,g.Y)(process.env.CONSTELLA_HOME):(0,e.join)((0,f.homedir)(),".constella")}let i=new Set;function j(a){if(!/^[A-Za-z0-9_-]{6,64}$/.test(a))throw Error("Invalid orgId");let b=(0,e.join)(h(),"organizations",a,"workspace");if(!i.has(a)){i.add(a);try{let c=(0,e.join)(h(),"organizations",a,"constella"),f=!(0,d.existsSync)(b)||0===(0,d.readdirSync)(b).length;if((0,d.existsSync)(c)&&f)try{(0,d.renameSync)(c,b)}catch{(0,d.existsSync)(c)&&((0,d.mkdirSync)(b,{recursive:!0}),0===(0,d.readdirSync)(b).length&&(0,d.cpSync)(c,b,{recursive:!0}))}}catch{}}return b}function k(a,b){let c=(0,e.normalize)((0,e.join)(a,b));if(c!==a&&!c.startsWith(a+e.sep))throw Error("Path escapes workspace: "+b);if((0,d.existsSync)(a)){let f;try{f=d.realpathSync.native(a)}catch{f=a}let g=function(a){let b=a;for(;;){if((0,d.existsSync)(b))try{return d.realpathSync.native(b)}catch{return b}let a=(0,e.dirname)(b);if(a===b)return b;b=a}}(c);if(g!==f&&!g.startsWith(f+e.sep))throw Error("Path escapes workspace (symlink): "+b)}return c}function l(a,b=""){let c=k(j(a),b);return(0,d.existsSync)(c)?(0,d.readdirSync)(c).map(a=>{let f=(0,e.join)(c,a),g=(b?b+"/":"")+a;return{name:a,path:g,isDir:(0,d.statSync)(f).isDirectory()}}).sort((a,b)=>a.isDir===b.isDir?a.name.localeCompare(b.name):a.isDir?-1:1):[]}let m=new Set(["node_modules",".git",".next",".turbo","dist","build","out","coverage",".cache","archives",".testdev",".pnpm-store",".vercel","vendor"]);function n(a,b){let c=k(j(a),b);return(0,d.existsSync)(c)?(0,d.readFileSync)(c,"utf8"):null}function o(a,b,c){let f=k(j(a),b);(0,d.mkdirSync)((0,e.dirname)(f),{recursive:!0}),(0,d.writeFileSync)(f,c,"utf8")}function p(a,b){let c=k(j(a),b);(0,d.existsSync)(c)&&(0,d.rmSync)(c,{recursive:!0,force:!0})}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=4288,exports.ids=[2392,4288],exports.modules={13389:(a,b,c)=>{c.d(b,{ViewChrome:()=>h});var d=c(40201),e=c(77758),f=c(3218),g=c(71955);function h({title:a,sub:b,right:c,icon:i,flush:j,children:k}){let l=(0,g.k)(),m=f.e.find(b=>b.title===a),n=i??m?.icon,o=m?l(`mod.${m.id}`):a;return(0,d.jsxs)("div",{className:"app-view",children:[(0,d.jsxs)("div",{className:"view-head",children:[n&&(0,d.jsx)("div",{className:"vh-icon",children:(0,d.jsx)(e.I,{name:n,size:18})}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,d.jsx)("div",{className:"view-title",children:o}),b&&(0,d.jsx)("div",{className:"view-sub",children:b})]}),c]}),(0,d.jsx)("div",{className:"view-body",style:j?{padding:0,overflow:"hidden"}:void 0,children:k})]})}},25120:(a,b,c)=>{c.d(b,{e:()=>e});var d=c(50727);function e({name:a,color:b,size:c=24,health:f,image:g}){let h=Math.max(6,Math.round(.3*c)),i=Math.round(.28*c),j=g?/^(data:|https?:|\/)/.test(g)?g:`/api/upload?path=${encodeURIComponent(g)}`:null;return(0,d.jsxs)("span",{style:{position:"relative",width:c,height:c,flex:`0 0 ${c}px`,display:"inline-block"},children:[j?(0,d.jsx)("img",{src:j,alt:a,width:c,height:c,style:{width:c,height:c,borderRadius:i,objectFit:"cover",display:"block"}}):(0,d.jsx)("span",{style:{width:c,height:c,borderRadius:i,background:b,color:"#fff",display:"grid",placeItems:"center",fontSize:Math.round(.42*c),fontWeight:700},children:(a[0]||"?").toUpperCase()}),f&&(0,d.jsx)("span",{style:{position:"absolute",right:-1,bottom:-1,width:h,height:h,borderRadius:"50%",background:"alive"===f?"var(--sx-string)":"stale"===f?"var(--sx-number)":"var(--text-faint)",border:"1.5px solid var(--bg-elevated)"}})]})}},41323:(a,b,c)=>{c.d(b,{ViewChrome:()=>d});let d=(0,c(97879).registerClientReference)(function(){throw Error("Attempted to call ViewChrome() from the server but ViewChrome is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"C:\\Users\\Usuario\\Documents\\constella\\src\\components\\shell\\view-chrome.tsx","ViewChrome")},47385:(a,b,c)=>{c.d(b,{l:()=>g});var d=c(46309),e=c(34925);async function f(){return(0,e.e)((await (0,d.cookies)()).get("cn-lang")?.value)}async function g(){let a=await f();return(b,c)=>(0,e.t)(a,b,c)}},51439:(a,b,c)=>{c.d(b,{pM:()=>z,lP:()=>y,Kg:()=>x,eU:()=>B,PG:()=>A});var d=c(80501),e=c(96405),f=c(90127),g=c(59627),h=c(24582);function i(){return(0,h.n)()?"dev":"vps"===(0,g.T)()?"vps":"portable"===(0,g.T)()?"portable":/[\\/]_npx[\\/]/.test((0,f.v)())?"npx":"global"}var j=c(52392),k=c(73024),l=c(76760),m=c(48161),n=c(31421),o=c(37989);let p=()=>new Date().toISOString().replace(/[:.]/g,"-"),q=()=>(0,l.join)((0,o.r$)(),"backups","last-update.json");async function r(){let a=await (0,j.checkForUpdate)(!0),b=i(),c=a.command;if(!a.updateAvailable)return{ok:!0,context:b,command:c,message:"Already up to date."};let d=function(){try{let a=(0,o.r$)(),b=(0,l.join)(a,"backups",p());for(let c of((0,k.mkdirSync)(b,{recursive:!0}),[".env","constella.db","constella.db-wal","constella.db-shm"])){let d=(0,l.join)(a,c);if((0,k.existsSync)(d))try{(0,k.copyFileSync)(d,(0,l.join)(b,c))}catch{}}return b}catch{return null}}()??void 0;if("dev"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"Running from source — update with: git pull && pnpm install && pnpm build"};if("npx"===b)return{ok:!1,context:b,command:c,backupDir:d,message:"npx runs an ephemeral copy — re-run: npx constellai@latest"};if("vps"===b){var e="bash scripts/vps-update.sh";try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let b=(0,o.r$)(),c=process.env.CONSTELLA_PKG_ROOT||process.cwd(),f=(0,l.join)(c,"bin","constella-update.mjs"),g=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[f,"--quiet","--mode","vps","--home",b,...g],{detached:!0,stdio:"ignore",cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:"vps",command:e,backupDir:d,message:`Updating to ${a.latest} and restarting the service — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:"vps",command:e,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}return function(a,b,c,d){try{(0,k.writeFileSync)(q(),JSON.stringify({status:"running",to:a.latest,at:p()}));let e=process.env.CONSTELLA_RUN_MODE||"start",f=process.env.CONSTELLA_LAUNCHER_PID||"0",g=(0,o.r$)(),h=process.env.PORT||"3000",i=process.env.CONSTELLA_PKG_ROOT||process.cwd(),j=(0,l.join)(i,"bin","constella-update.mjs"),r=a.latest?["--version",a.latest]:[];return(0,n.spawn)(process.execPath,[j,"--quiet","--pid",f,"--mode",e,"--home",g,"--port",h,...r],{detached:!0,stdio:"ignore",windowsHide:!0,cwd:(0,m.tmpdir)()}).unref(),{ok:!0,started:!0,needsRestart:!0,context:b,command:c,backupDir:d,message:`Updating to ${a.latest} and restarting — this page reconnects in a few seconds.`}}catch(a){return{ok:!1,context:b,command:c,backupDir:d,message:"Couldn't launch the updater: "+String(a instanceof Error?a.message:a)}}}(a,b,c,d)}var s=c(73591),t=c(54813),u=c(406),v=c(96977);async function w(){let a=await t.db.select({lastPulse:u.agent.lastPulse}).from(u.agent).where((0,s.eq)(u.agent.status,"working")),b=Date.now()-v.fQ;return a.some(a=>null!=a.lastPulse&&new Date(a.lastPulse).getTime()>=b)}async function x(a=!1){return(0,j.checkForUpdate)(a)}async function y(a=!1){let[b,c]=await Promise.all([(0,j.checkForUpdate)(a),w()]);return{info:b,busy:c}}async function z(){return i()}async function A(){return(await (0,e.nP)(),await w())?{ok:!1,started:!1,blocked:!0,context:"",command:"",message:"An agent is working — pause it before updating."}:r()}async function B(){try{return JSON.parse((0,k.readFileSync)(q(),"utf8"))}catch{return{status:"idle"}}}(0,c(64185).D)([x,y,z,A,B]),(0,d.A)(x,"4079ee52aca558bf2ca3c25800d73e82a85654fb12",null),(0,d.A)(y,"40e88545faa11118461ff49b6570d9874017fd8a38",null),(0,d.A)(z,"000620f675346f8a12b50bfbe6296aad9ae5464e72",null),(0,d.A)(A,"00491a4a12afe57900974b078cd17d6d523cb8b1d4",null),(0,d.A)(B,"00c24fecd5d4e2c99b78f6cfba9771178469d3d57b",null)},52392:(a,b,c)=>{c.d(b,{checkForUpdate:()=>m});var d=c(73024),e=c(76760),f=c(90127);let g="constellai",h=null,i=a=>a.replace(/^v/,"").split("-")[0].split(".").map(a=>parseInt(a,10)||0),j=a=>a.replace(/^v/,"").split("-")[1]??"";async function k(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.json():null}catch{return null}}async function l(a){try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch(a,{signal:b.signal,headers:{"user-agent":"constella"}});return clearTimeout(c),d.ok?await d.text():null}catch{return null}}async function m(a=!1){let b,c,n=function(){if(process.env.CONSTELLA_VERSION)return process.env.CONSTELLA_VERSION;try{let a=JSON.parse((0,d.readFileSync)((0,e.join)((0,f.v)(),"package.json"),"utf8"));if(a?.version)return a.version}catch{}return"0.0.0"}(),o=`npm install -g ${g}@latest`;if(!a&&h&&Date.now()-h.at<216e5)return h.info;let p=await k(`https://registry.npmjs.org/${g}/latest`),q=p?.version??null,r=!!q&&function(a,b){let c=i(a),d=i(b);for(let a=0;a<3;a++){if((c[a]||0)>(d[a]||0))return!0;if((c[a]||0)<(d[a]||0))return!1}return!j(a)&&!!j(b)}(q,n),s=null;if(r&&q){let a=await l("https://raw.githubusercontent.com/gabriel7silva/constella/main/CHANGELOG.md");s=a?function(a,b){let c=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=a.match(RegExp(`(^|\\n)##\\s*\\[?${c}\\]?[\\s\\S]*?(?=\\n##\\s|$)`));if(d)return d[0].trim();let e=a.split(/\n##\s/)[1];return e?"## "+e.trim():null}(a,q):null}let t={current:n,latest:q,updateAvailable:r,type:q?(b=i(q),c=i(n),b[0]>c[0]?"major":b[1]>c[1]?"minor":b[2]>c[2]||!j(q)&&j(n)?"patch":null):null,command:o,changelog:s};return h={at:Date.now(),info:t},t}},59627:(a,b,c)=>{c.d(b,{T:()=>e});let d=["start","auth","vps","portable"];function e(){let a=process.env.CONSTELLA_RUN_MODE;return a&&d.includes(a)?a:"start"}},64543:(a,b,c)=>{c.d(b,{_:()=>g});var d=c(50727),e=c(48578),f=c(41323);function g({title:a,sub:b,right:c,icon:h,flush:i,children:j}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.b,{title:a}),(0,d.jsx)(f.ViewChrome,{title:a,sub:b,right:c,icon:h,flush:i,children:j})]})}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=
|
|
1
|
+
"use strict";exports.id=4411,exports.ids=[4411],exports.modules={24411:(a,b,c)=>{c.d(b,{memoryAdapter:()=>i});var d=c(34557),e=c(72208);function f(a,b){return"string"==typeof a&&"string"==typeof b?a.toLowerCase()===b.toLowerCase():a===b}function g(a,b){return"string"!=typeof a?b.includes(a):b.some(b=>"string"==typeof b&&a.toLowerCase()===b.toLowerCase())}function h(a){let b=new Map;for(let c of a)b.set(c.id,c);return b}let i=(a,b)=>{let c=null,i=a=>(0,d.I)({config:{adapterId:"memory",adapterName:"Memory Adapter",usePlural:!1,debugLogs:b?.debugLogs||!1,supportsArrays:!0,customTransformInput:b=>b.options.advanced?.database?.generateId==="serial"&&"id"===b.field&&"create"===b.action?a[b.model].length+1:b.data,transaction:async b=>{let d=structuredClone(a),e=structuredClone(a),f=await b(i(e)(c));return!function(a,b,c){for(let f of new Set([...Object.keys(b),...Object.keys(c)])){if(!(f in c)){delete a[f];continue}let g=h(b[f]??[]),i=c[f]??[],j=h(i),k=a[f]??[],l=[],m=new Set;for(let a of k){var d,e;let b=a.id,c=g.get(b),f=j.get(b);(void 0===c||void 0!==f)&&(void 0!==f&&(d=c,e=f,void 0===d||JSON.stringify(d)!==JSON.stringify(e))?l.push(f):l.push(a),m.add(b))}for(let a of i)g.has(a.id)||m.has(a.id)||l.push(a);a[f]=l}}(a,d,e),f}},adapter:({getFieldName:b,getDefaultFieldName:c,options:d,getModelName:h})=>{let i=(a,c,d)=>c?a.sort((a,e)=>{let f=b({model:d,field:c.field}),g=a[f],h=e[f],i=0;return i=null==g&&null==h?0:null==g?-1:null==h?1:"string"==typeof g&&"string"==typeof h?g.localeCompare(h):g instanceof Date&&h instanceof Date?g.getTime()-h.getTime():"number"==typeof g&&"number"==typeof h?g-h:"boolean"==typeof g&&"boolean"==typeof h?g===h?0:g?1:-1:String(g).localeCompare(String(h)),"asc"===c.direction?i:-i}):a;function j(b,d,i,j){let k=(()=>{let h=a[d];if(!h)throw e.vF.error(`[MemoryAdapter] Model ${d} not found in the DB`,Object.keys(a)),Error(`Model ${d} not found`);let i=(a,b)=>{var c,d,e;let{field:h,value:i,operator:j,mode:k="sensitive"}=b,l="insensitive"===k&&("string"==typeof i||Array.isArray(i)&&i.every(a=>"string"==typeof a));switch(j){case"in":if(!Array.isArray(i))throw Error("Value must be an array");if(l)return g(a[h],i);return i.includes(a[h]);case"not_in":if(!Array.isArray(i))throw Error("Value must be an array");if(l)return!g(a[h],i);return!i.includes(a[h]);case"contains":if(l)return c=a[h],"string"==typeof c&&"string"==typeof i&&c.toLowerCase().includes(i.toLowerCase());return a[h]?.includes(i);case"starts_with":if(l)return d=a[h],"string"==typeof d&&"string"==typeof i&&d.toLowerCase().startsWith(i.toLowerCase());return a[h].startsWith(i);case"ends_with":if(l)return e=a[h],"string"==typeof e&&"string"==typeof i&&e.toLowerCase().endsWith(i.toLowerCase());return a[h].endsWith(i);case"ne":return l?!f(a[h],i):a[h]!==i;case"gt":return null!=i&&a[h]>i;case"gte":return null!=i&&a[h]>=i;case"lt":return null!=i&&a[h]<i;case"lte":return null!=i&&a[h]<=i;default:if(l)return f(a[h],i);if(null===i)return null==a[h];return a[h]===i}},k=h.filter(a=>{if(!b.length||0===b.length)return!0;let c=i(a,b[0]);for(let d of b){let b=i(a,d);c="OR"===d.connector?c||b:c&&b}return c});return j?.length&&j.length>0&&(k=k.map(a=>Object.fromEntries(Object.entries(a).filter(([a])=>j.includes(c({model:d,field:a})))))),k})();if(!i)return k;let l=new Map,m=new Map;for(let b of k){let c=String(b.id);if(!l.has(c)){let a={...b};for(let[b,d]of Object.entries(i)){let e=h(b);"one-to-one"===d.relation?a[e]=null:(a[e]=[],m.set(`${c}-${b}`,new Set))}l.set(c,a)}let d=l.get(c);for(let[f,g]of Object.entries(i)){let i=h(f),j=a[i];if(!j)throw e.vF.error(`[MemoryAdapter] JoinOption model ${i} not found in the DB`,Object.keys(a)),Error(`JoinOption model ${i} not found`);let k=j.filter(a=>a[g.on.to]===b[g.on.from]);if("one-to-one"===g.relation)d[i]=k[0]||null;else{let a=m.get(`${c}-${f}`),b=g.limit??100,e=0;for(let c of k){if(e>=b)break;!a.has(c.id)&&(d[i].push(c),a.add(c.id),e++)}}}}return Array.from(l.values())}return{create:async({model:b,data:c})=>(d.advanced?.database?.generateId==="serial"&&(c.id=a[h(b)].length+1),a[b]||(a[b]=[]),a[b].push(c),c),findOne:async({model:a,where:b,select:c,join:d})=>{let e=j(b,a,d,c);return d?e.length?e[0]:null:e[0]||null},findMany:async({model:a,where:b,sortBy:c,limit:d,select:e,offset:f,join:g})=>{let h=j(b||[],a,g,e);if(g){if(!h.length)return[];i(h,c,a);let b=h;return void 0!==f&&(b=b.slice(f)),void 0!==d&&(b=b.slice(0,d)),b}let k=i(h,c,a);return void 0!==f&&(k=k.slice(f)),void 0!==d&&(k=k.slice(0,d)),k||[]},count:async({model:b,where:c})=>c?j(c,b).length:a[b].length,update:async({model:a,where:b,update:c})=>{if(0===b.length)return null;let d=j(b,a);return d.forEach(a=>{Object.assign(a,c)}),d[0]||null},delete:async({model:b,where:c})=>{if(0===c.length)return;let d=a[b],e=j(c,b);a[b]=d.filter(a=>!e.includes(a))},deleteMany:async({model:b,where:c})=>{let d=a[b],e=j(c,b),f=0;return a[b]=d.filter(a=>e.includes(a)?(f++,!1):!e.includes(a)),f},consumeOne:async({model:b,where:c})=>{let d=a[b],e=j(c,b)[0];return e?(a[b]=d.filter(a=>a!==e),e):null},incrementOne:async({model:a,where:b,increment:c,set:d})=>{let e=j(b,a)[0];if(!e)return null;for(let[a,b]of Object.entries(c))e[a]=("number"==typeof e[a]?e[a]:0)+b;return d&&Object.assign(e,d),e},updateMany:async({model:a,where:b,update:c})=>{let d=j(b,a);return d.forEach(a=>{Object.assign(a,c)}),d.length}}}}),j=i(a);return a=>(c=a,j(a))}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=
|
|
1
|
+
"use strict";exports.id=4561,exports.ids=[4561],exports.modules={74561:(a,b,c)=>{c.d(b,{Z:()=>f,redactForLog:()=>g});let d=["CONSTELLA_VAULT_KEY","BETTER_AUTH_SECRET","CONSTELLA_WORKER_SECRET"],e=RegExp("sk-[A-Za-z0-9_-]{16,}|gh[posru]_[A-Za-z0-9]{20,}|github_pat_[A-Za-z0-9_]{40,}|AKIA[0-9A-Z]{16}|AIza[0-9A-Za-z_-]{30,}|xox[baprs]-[A-Za-z0-9-]{10,}|eyJ[A-Za-z0-9_-]{10,}\\.[A-Za-z0-9_-]{10,}\\.[A-Za-z0-9_-]{6,}|-----BEGIN[\\s\\S]*?PRIVATE KEY-----[\\s\\S]*?-----END[\\s\\S]*?-----|\\bcn_[A-Za-z0-9_-]{24,}\\b|\\b\\d{6,}:[A-Za-z0-9_-]{30,}\\b","g");function f(a,b=[]){if(!a)return a;let c=a;for(let a of[...b,...d.map(a=>process.env[a])])a&&a.length>=8&&(c=c.split(a).join("[redacted]"));return c.replace(e,"[redacted]")}function g(a){return f(String(a??""))}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=4587,exports.ids=[4587],exports.modules={54587:(a,b,c)=>{c.d(b,{NodeSqliteDialect:()=>n});var d=c(68705),e=c(80595),f=c(41513),g=c(40892),h=class{get supportsCreateIfNotExists(){return!0}get supportsTransactionalDdl(){return!1}get supportsMultipleConnections(){return!1}get supportsReturning(){return!0}async acquireMigrationLock(){}async releaseMigrationLock(){}get supportsOutput(){return!0}},i=class{#a;#b=new k;#c;#d;constructor(a){this.#a={...a}}async init(){this.#c=this.#a.database,this.#d=new j(this.#c),this.#a.onCreateConnection&&await this.#a.onCreateConnection(this.#d)}async acquireConnection(){return await this.#b.lock(),this.#d}async beginTransaction(a){await a.executeQuery(e.E.raw("begin"))}async commitTransaction(a){await a.executeQuery(e.E.raw("commit"))}async rollbackTransaction(a){await a.executeQuery(e.E.raw("rollback"))}async releaseConnection(){this.#b.unlock()}async destroy(){this.#c?.close()}},j=class{#c;constructor(a){this.#c=a}executeQuery(a){let{sql:b,parameters:c}=a,d=this.#c.prepare(b);if(d.columns().length>0)return Promise.resolve({rows:d.all(...c)});let{changes:e,lastInsertRowid:f}=d.run(...c);return Promise.resolve({rows:[],numAffectedRows:BigInt(e),insertId:"bigint"==typeof f?f:BigInt(f)})}async *streamQuery(){throw Error("Streaming query is not supported by SQLite driver.")}},k=class{#e;#f;async lock(){for(;void 0!==this.#e;)await this.#e;this.#e=new Promise(a=>{this.#f=a})}unlock(){let a=this.#f;this.#e=void 0,this.#f=void 0,a?.()}},l=class{#c;constructor(a){this.#c=a}async getSchemas(){return[]}async getTables(a={withInternalKyselyTables:!1}){let b=this.#c.selectFrom("sqlite_schema").where("type","=","table").where("name","not like","sqlite_%").select("name").$castTo();return a.withInternalKyselyTables||(b=b.where("name","!=",d.n).where("name","!=",d.t)),Promise.all((await b.execute()).map(({name:a})=>this.#g(a)))}async #g(a){let b=this.#c,c=(await b.selectFrom("sqlite_master").where("name","=",a).select("sql").$castTo().execute())[0]?.sql?.split(/[\(\),]/)?.find(a=>a.toLowerCase().includes("autoincrement"))?.split(/\s+/)?.[0]?.replace(/["`]/g,"");return{name:a,columns:(await b.selectFrom((0,f.l)`pragma_table_info(${a})`.as("table_info")).select(["name","type","notnull","dflt_value"]).execute()).map(a=>({name:a.name,dataType:a.type,isNullable:!a.notnull,isAutoIncrementing:a.name===c,hasDefaultValue:null!=a.dflt_value})),isView:!1,isForeign:!1}}},m=class extends g.n{getCurrentParameterPlaceholder(){return"?"}getLeftIdentifierWrapper(){return'"'}getRightIdentifierWrapper(){return'"'}getAutoIncrement(){return"autoincrement"}},n=class{#a;constructor(a){this.#a={...a}}createDriver(){return new i(this.#a)}createQueryCompiler(){return new m}createAdapter(){return new h}createIntrospector(a){return new l(a)}}},68705:(a,b,c)=>{c.d(b,{n:()=>d,t:()=>e});let d="kysely_migration",e="kysely_migration_lock"}};
|