constellai 0.3.7 → 0.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +6 -6
- package/.next/next-minimal-server.js.nft.json +1 -1
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +6 -6
- package/.next/server/app/(app)/activity/page.js +2 -2
- package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
- package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/agents/[handle]/page.js +3 -3
- package/.next/server/app/(app)/agents/[handle]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/agents/[handle]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/code/page.js +2 -2
- package/.next/server/app/(app)/code/page.js.nft.json +1 -1
- package/.next/server/app/(app)/code/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/config/page.js +2 -2
- package/.next/server/app/(app)/config/page.js.nft.json +1 -1
- package/.next/server/app/(app)/config/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/costs/page.js +2 -2
- package/.next/server/app/(app)/costs/page.js.nft.json +1 -1
- package/.next/server/app/(app)/costs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/cron/page.js +2 -2
- package/.next/server/app/(app)/cron/page.js.nft.json +1 -1
- package/.next/server/app/(app)/cron/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/dashboard/page.js +2 -2
- package/.next/server/app/(app)/dashboard/page.js.nft.json +1 -1
- package/.next/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/design/page.js +14 -14
- package/.next/server/app/(app)/design/page.js.nft.json +1 -1
- package/.next/server/app/(app)/design/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/docs/[id]/page.js +2 -2
- package/.next/server/app/(app)/docs/[id]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/docs/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/docs/page.js +2 -2
- package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
- package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/github/page.js +2 -2
- package/.next/server/app/(app)/github/page.js.nft.json +1 -1
- package/.next/server/app/(app)/github/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/goals/page.js +2 -2
- package/.next/server/app/(app)/goals/page.js.nft.json +1 -1
- package/.next/server/app/(app)/goals/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/inbox/page.js +2 -2
- package/.next/server/app/(app)/inbox/page.js.nft.json +1 -1
- package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/knowledge/page.js +3 -3
- package/.next/server/app/(app)/knowledge/page.js.nft.json +1 -1
- package/.next/server/app/(app)/knowledge/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/models/page.js +2 -2
- package/.next/server/app/(app)/models/page.js.nft.json +1 -1
- package/.next/server/app/(app)/models/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/notifications/page.js +2 -2
- package/.next/server/app/(app)/notifications/page.js.nft.json +1 -1
- package/.next/server/app/(app)/notifications/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/org/page.js +4 -4
- package/.next/server/app/(app)/org/page.js.nft.json +1 -1
- package/.next/server/app/(app)/org/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/organizations/page.js +2 -2
- package/.next/server/app/(app)/organizations/page.js.nft.json +1 -1
- package/.next/server/app/(app)/organizations/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/page.js +3 -3
- package/.next/server/app/(app)/page.js.nft.json +1 -1
- package/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/planner/page.js +3 -3
- package/.next/server/app/(app)/planner/page.js.nft.json +1 -1
- package/.next/server/app/(app)/planner/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/plugins/page.js +2 -2
- package/.next/server/app/(app)/plugins/page.js.nft.json +1 -1
- package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/pm/page.js +2 -2
- package/.next/server/app/(app)/pm/page.js.nft.json +1 -1
- package/.next/server/app/(app)/pm/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/prepare-deploy/page.js +3 -3
- package/.next/server/app/(app)/prepare-deploy/page.js.nft.json +1 -1
- package/.next/server/app/(app)/prepare-deploy/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/profile/page.js +2 -2
- package/.next/server/app/(app)/profile/page.js.nft.json +1 -1
- package/.next/server/app/(app)/profile/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/pulse/page.js +2 -2
- package/.next/server/app/(app)/pulse/page.js.nft.json +1 -1
- package/.next/server/app/(app)/pulse/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/reports/[id]/page.js +3 -3
- package/.next/server/app/(app)/reports/[id]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/reports/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/reports/page.js +3 -3
- package/.next/server/app/(app)/reports/page.js.nft.json +1 -1
- package/.next/server/app/(app)/reports/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/routines/page.js +2 -2
- package/.next/server/app/(app)/routines/page.js.nft.json +1 -1
- package/.next/server/app/(app)/routines/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/search/page.js +2 -2
- package/.next/server/app/(app)/search/page.js.nft.json +1 -1
- package/.next/server/app/(app)/search/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/security/page.js +2 -2
- package/.next/server/app/(app)/security/page.js.nft.json +1 -1
- package/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/skills/page.js +3 -3
- package/.next/server/app/(app)/skills/page.js.nft.json +1 -1
- package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/tasks/page.js +2 -2
- package/.next/server/app/(app)/tasks/page.js.nft.json +1 -1
- package/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/test-dev/page.js +2 -2
- package/.next/server/app/(app)/test-dev/page.js.nft.json +1 -1
- package/.next/server/app/(app)/test-dev/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(app)/update/page.js +3 -3
- package/.next/server/app/(app)/update/page.js.nft.json +1 -1
- package/.next/server/app/(app)/update/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(auth)/login/page.js +2 -2
- package/.next/server/app/(auth)/login/page.js.nft.json +1 -1
- package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/(auth)/onboarding/page.js +2 -2
- package/.next/server/app/(auth)/onboarding/page.js.nft.json +1 -1
- package/.next/server/app/(auth)/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error/page.js +3 -3
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +8 -8
- package/.next/server/app/_global-error.segments/_full.segment.rsc +8 -8
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +3 -3
- package/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/.next/server/app/_global-error.segments/_index.segment.rsc +4 -4
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/[...all]/route.js +1 -1
- package/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -1
- package/.next/server/app/api/cron/tick/route.js +5 -5
- package/.next/server/app/api/cron/tick/route.js.nft.json +1 -1
- package/.next/server/app/api/health/route.js +1 -1
- package/.next/server/app/api/health/route.js.nft.json +1 -1
- package/.next/server/app/api/locks/acquire/route.js +1 -1
- package/.next/server/app/api/locks/acquire/route.js.nft.json +1 -1
- package/.next/server/app/api/models/progress/route.js +1 -1
- package/.next/server/app/api/models/progress/route.js.nft.json +1 -1
- package/.next/server/app/api/passkey/authenticate/options/route.js +1 -1
- package/.next/server/app/api/passkey/authenticate/options/route.js.nft.json +1 -1
- package/.next/server/app/api/passkey/authenticate/verify/route.js +1 -1
- package/.next/server/app/api/passkey/authenticate/verify/route.js.nft.json +1 -1
- package/.next/server/app/api/passkey/register/options/route.js +1 -1
- package/.next/server/app/api/passkey/register/options/route.js.nft.json +1 -1
- package/.next/server/app/api/passkey/register/verify/route.js +1 -1
- package/.next/server/app/api/passkey/register/verify/route.js.nft.json +1 -1
- package/.next/server/app/api/stream/route.js +2 -2
- package/.next/server/app/api/stream/route.js.nft.json +1 -1
- package/.next/server/app/api/sync/file/route.js +2 -2
- package/.next/server/app/api/sync/file/route.js.nft.json +1 -1
- package/.next/server/app/api/telegram/poll/route.js +19 -19
- package/.next/server/app/api/telegram/poll/route.js.nft.json +1 -1
- package/.next/server/app/api/upload/route.js +1 -1
- package/.next/server/app/api/upload/route.js.nft.json +1 -1
- package/.next/server/app/api/v1/[[...path]]/route.js +1 -1
- package/.next/server/app/api/v1/[[...path]]/route.js.nft.json +1 -1
- package/.next/server/chunks/1033.js +14 -0
- package/.next/server/chunks/1190.js +12 -0
- package/.next/server/chunks/1243.js +1 -0
- package/.next/server/chunks/{6719.js → 1304.js} +1 -1
- package/.next/server/chunks/1952.js +1 -0
- package/.next/server/chunks/{8561.js → 1986.js} +2 -2
- package/.next/server/chunks/2118.js +869 -0
- package/.next/server/chunks/2323.js +1 -0
- package/.next/server/chunks/{7336.js → 2392.js} +1 -1
- package/.next/server/chunks/2559.js +479 -0
- package/.next/server/chunks/26.js +1 -0
- package/.next/server/chunks/{5278.js → 3140.js} +1 -1
- package/.next/server/chunks/{6479.js → 3172.js} +1 -1
- package/.next/server/chunks/3205.js +1 -0
- package/.next/server/chunks/{9160.js → 3481.js} +176 -176
- package/.next/server/chunks/{4979.js → 3987.js} +4 -4
- package/.next/server/chunks/404.js +1 -0
- package/.next/server/chunks/415.js +1 -0
- package/.next/server/chunks/4288.js +1 -0
- package/.next/server/chunks/{2599.js → 4411.js} +1 -1
- package/.next/server/chunks/4435.js +1 -0
- package/.next/server/chunks/{7912.js → 4561.js} +1 -1
- package/.next/server/chunks/4587.js +1 -0
- package/.next/server/chunks/4679.js +462 -1
- package/.next/server/chunks/4732.js +1 -0
- package/.next/server/chunks/4769.js +1 -0
- package/.next/server/chunks/4882.js +2 -0
- package/.next/server/chunks/4897.js +15 -0
- package/.next/server/chunks/5015.js +15 -0
- package/.next/server/chunks/{658.js → 5361.js} +3 -3
- package/.next/server/chunks/5557.js +1 -0
- package/.next/server/chunks/{2517.js → 5593.js} +1 -1
- package/.next/server/chunks/5661.js +1 -0
- package/.next/server/chunks/5802.js +1 -0
- package/.next/server/chunks/5878.js +1 -0
- package/.next/server/chunks/5911.js +18 -0
- package/.next/server/chunks/6083.js +1 -0
- package/.next/server/chunks/{4302.js → 6121.js} +13 -13
- package/.next/server/chunks/6309.js +1 -0
- package/.next/server/chunks/6585.js +1 -0
- package/.next/server/chunks/{3243.js → 6778.js} +2 -2
- package/.next/server/chunks/6807.js +1 -0
- package/.next/server/chunks/{1388.js → 6948.js} +1 -1
- package/.next/server/chunks/{1591.js → 699.js} +2 -2
- package/.next/server/chunks/7109.js +1 -0
- package/.next/server/chunks/714.js +1 -0
- package/.next/server/chunks/7348.js +4 -0
- package/.next/server/chunks/739.js +1 -0
- package/.next/server/chunks/7474.js +1 -0
- package/.next/server/chunks/{7037.js → 7677.js} +1 -1
- package/.next/server/chunks/77.js +3 -0
- package/.next/server/chunks/7867.js +22 -0
- package/.next/server/chunks/{259.js → 7905.js} +5 -5
- package/.next/server/chunks/{3609.js → 7911.js} +1 -1
- package/.next/server/chunks/{2867.js → 8134.js} +2 -2
- package/.next/server/chunks/{9783.js → 8211.js} +2 -2
- package/.next/server/chunks/8224.js +1 -0
- package/.next/server/chunks/8498.js +1 -0
- package/.next/server/chunks/8868.js +21 -0
- package/.next/server/chunks/{8823.js → 907.js} +10 -10
- package/.next/server/chunks/{7778.js → 9099.js} +1 -1
- package/.next/server/chunks/912.js +1 -0
- package/.next/server/chunks/9180.js +1 -0
- package/.next/server/chunks/9344.js +910 -0
- package/.next/server/chunks/9374.js +1 -0
- package/.next/server/chunks/9419.js +1 -0
- package/.next/server/chunks/9426.js +188 -0
- package/.next/server/chunks/9677.js +17 -0
- package/.next/server/chunks/978.js +1 -0
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/instrumentation.js.nft.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/middleware.js +6 -6
- package/.next/server/middleware.js.nft.json +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/171-2a8b8f61f7ab0828.js +1 -0
- package/.next/static/chunks/1738-28b6824e2a707b93.js +1 -0
- package/.next/static/chunks/{23550918-ff694f70f4b0648c.js → 1ceccf25-731706dbe95504b9.js} +1 -1
- package/.next/static/chunks/{2320-fc8b39380e69d465.js → 3703-b09be945970ea475.js} +1 -1
- package/.next/static/chunks/4365-c5eb5b6af7bfc653.js +4 -0
- package/.next/static/chunks/5452-d0ce3b51601a5815.js +1 -0
- package/.next/static/chunks/6871-a079ac1b4f0caec2.js +1 -0
- package/.next/static/chunks/7066-c10959874b2315bf.js +32 -0
- package/.next/static/chunks/717-1d1163010e3b541d.js +1 -0
- package/.next/static/chunks/7218-44d9a247cf4980fa.js +12 -0
- package/.next/static/chunks/7466-6d8ba01f169a6a1e.js +1 -0
- package/.next/static/chunks/{5920.6451a68b63918988.js → 7790.b648690cf25f29eb.js} +1 -1
- package/.next/static/chunks/{7509.721cd47a931c5518.js → 8251.6fedb7dc4d720bab.js} +1 -1
- package/.next/static/chunks/9279-467412113ad55642.js +1 -0
- package/.next/static/chunks/928-6dec8198101bc3e6.js +1 -0
- package/.next/static/chunks/9874-dc2fbf114916382b.js +1 -0
- package/.next/static/chunks/app/(app)/activity/page-8cf9b4c853ca9c69.js +1 -0
- package/.next/static/chunks/app/(app)/agents/[handle]/page-068e58bd327db429.js +1 -0
- package/.next/static/chunks/app/(app)/code/page-98becb790f9aeedf.js +1 -0
- package/.next/static/chunks/app/(app)/config/page-b5447ad490de11f7.js +1 -0
- package/.next/static/chunks/app/(app)/costs/page-02324b05660bad50.js +1 -0
- package/.next/static/chunks/app/(app)/cron/page-5c9c6fea5aee299c.js +1 -0
- package/.next/static/chunks/app/(app)/dashboard/page-742ac16dbfce548b.js +1 -0
- package/.next/static/chunks/app/(app)/design/{page-11b9cc40f32fe34f.js → page-3ff2eae843e8b7ea.js} +3 -3
- package/.next/static/chunks/app/(app)/docs/[id]/page-f7cc168b103da51e.js +1 -0
- package/.next/static/chunks/app/(app)/docs/page-bc93a2e0342c61af.js +1 -0
- package/.next/static/chunks/app/(app)/error-f9a3caa63e064a7e.js +1 -0
- package/.next/static/chunks/app/(app)/github/page-44b09f94c19f56f0.js +1 -0
- package/.next/static/chunks/app/(app)/goals/page-b66ec65a7221b023.js +1 -0
- package/.next/static/chunks/app/(app)/inbox/page-57a8ab9347276aa2.js +12 -0
- package/.next/static/chunks/app/(app)/knowledge/page-fb3902b3c7348818.js +1 -0
- package/.next/static/chunks/app/(app)/layout-98aa9e760faf2331.js +1 -0
- package/.next/static/chunks/app/(app)/models/page-92f957c7400497f0.js +1 -0
- package/.next/static/chunks/app/(app)/notifications/page-e3fcdad57e7a94fd.js +12 -0
- package/.next/static/chunks/app/(app)/org/page-9030d33729e45e07.js +12 -0
- package/.next/static/chunks/app/(app)/organizations/page-f29c3dc4b3327b8d.js +1 -0
- package/.next/static/chunks/app/(app)/page-0e7e7cfd98d44f59.js +1 -0
- package/.next/static/chunks/app/(app)/planner/page-a2c45cb14b53454a.js +1 -0
- package/.next/static/chunks/app/(app)/plugins/page-792b3dc0ae8571db.js +1 -0
- package/.next/static/chunks/app/(app)/pm/page-4624950feadad3be.js +1 -0
- package/.next/static/chunks/app/(app)/prepare-deploy/{page-6f0c5081caf1d013.js → page-a5d2911069317635.js} +1 -1
- package/.next/static/chunks/app/(app)/profile/page-10ce6fd89387a1f0.js +1 -0
- package/.next/static/chunks/app/(app)/pulse/page-793ce0d2074d2cd7.js +1 -0
- package/.next/static/chunks/app/(app)/reports/[id]/page-5c9c6fea5aee299c.js +1 -0
- package/.next/static/chunks/app/(app)/reports/page-cfa78938aef16acc.js +1 -0
- package/.next/static/chunks/app/(app)/routines/page-06df804a8db66b2d.js +1 -0
- package/.next/static/chunks/app/(app)/search/page-eec2f135e6af9c70.js +1 -0
- package/.next/static/chunks/app/(app)/security/page-23dd0b8308ee48b8.js +1 -0
- package/.next/static/chunks/app/(app)/skills/page-d3d63cac10ce08e1.js +1 -0
- package/.next/static/chunks/app/(app)/tasks/page-0750ff77f17bdd9d.js +1 -0
- package/.next/static/chunks/app/(app)/test-dev/page-7c09ba848265ffe6.js +1 -0
- package/.next/static/chunks/app/(app)/update/page-e70ac9974eb7bf03.js +1 -0
- package/.next/static/chunks/app/(auth)/login/page-0ee8f367460d835a.js +1 -0
- package/.next/static/chunks/app/(auth)/onboarding/page-1de0c42322e9f296.js +1 -0
- package/.next/static/chunks/app/_global-error/{page-eacef2b697bd0982.js → page-ffc45e65538b6024.js} +1 -1
- package/.next/static/chunks/app/_not-found/page-405e53afca481eab.js +1 -0
- package/.next/static/chunks/app/api/auth/[...all]/{route-eacef2b697bd0982.js → route-ffc45e65538b6024.js} +1 -1
- package/.next/static/chunks/app/api/cron/tick/{route-eacef2b697bd0982.js → route-ffc45e65538b6024.js} +1 -1
- package/.next/static/chunks/app/api/health/{route-eacef2b697bd0982.js → route-ffc45e65538b6024.js} +1 -1
- package/.next/static/chunks/app/api/locks/acquire/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/models/progress/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/passkey/authenticate/options/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/passkey/authenticate/verify/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/passkey/register/options/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/passkey/register/verify/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/stream/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/sync/file/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/telegram/poll/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/upload/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/api/v1/[[...path]]/route-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/app/error-e128df085a794b38.js +1 -0
- package/.next/static/chunks/app/global-error-339c61c4184d384a.js +1 -0
- package/.next/static/chunks/app/layout-a80704c0fd0a9e29.js +1 -0
- package/.next/static/chunks/main-143b6dbf9c5dc129.js +5 -0
- package/.next/static/chunks/main-app-8ce4eaae11d4f233.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ffc45e65538b6024.js +1 -0
- package/.next/static/chunks/webpack-0e63b9ea83aeb0a2.js +1 -0
- package/.next/trace-build +1 -1
- package/CHANGELOG.md +31 -0
- package/README.md +1 -1
- package/README.pt-BR.md +1 -1
- package/docs/UPDATE.md +16 -3
- package/package.json +9 -9
- package/.next/server/chunks/1249.js +0 -910
- package/.next/server/chunks/1572.js +0 -1
- package/.next/server/chunks/1619.js +0 -188
- package/.next/server/chunks/162.js +0 -1
- package/.next/server/chunks/1845.js +0 -462
- package/.next/server/chunks/2341.js +0 -1
- package/.next/server/chunks/260.js +0 -1
- package/.next/server/chunks/288.js +0 -1
- package/.next/server/chunks/2960.js +0 -14
- package/.next/server/chunks/3050.js +0 -18
- package/.next/server/chunks/3056.js +0 -1
- package/.next/server/chunks/3131.js +0 -1
- package/.next/server/chunks/3234.js +0 -869
- package/.next/server/chunks/3266.js +0 -15
- package/.next/server/chunks/3550.js +0 -1
- package/.next/server/chunks/4574.js +0 -1
- package/.next/server/chunks/4616.js +0 -479
- package/.next/server/chunks/4619.js +0 -1
- package/.next/server/chunks/4804.js +0 -1
- package/.next/server/chunks/4832.js +0 -2
- package/.next/server/chunks/5060.js +0 -1
- package/.next/server/chunks/5614.js +0 -1
- package/.next/server/chunks/6431.js +0 -1
- package/.next/server/chunks/6658.js +0 -1
- package/.next/server/chunks/6706.js +0 -1
- package/.next/server/chunks/6753.js +0 -1
- package/.next/server/chunks/683.js +0 -1
- package/.next/server/chunks/6873.js +0 -1
- package/.next/server/chunks/7236.js +0 -4
- package/.next/server/chunks/73.js +0 -17
- package/.next/server/chunks/7514.js +0 -1
- package/.next/server/chunks/7589.js +0 -22
- package/.next/server/chunks/7621.js +0 -12
- package/.next/server/chunks/7622.js +0 -1
- package/.next/server/chunks/7949.js +0 -1
- package/.next/server/chunks/7971.js +0 -1
- package/.next/server/chunks/7989.js +0 -1
- package/.next/server/chunks/7993.js +0 -21
- package/.next/server/chunks/8497.js +0 -1
- package/.next/server/chunks/850.js +0 -1
- package/.next/server/chunks/8623.js +0 -1
- package/.next/server/chunks/8762.js +0 -15
- package/.next/server/chunks/8846.js +0 -1
- package/.next/server/chunks/9676.js +0 -1
- package/.next/server/chunks/9680.js +0 -1
- package/.next/server/chunks/9969.js +0 -3
- package/.next/static/chunks/215-18ea748d2ff2caff.js +0 -1
- package/.next/static/chunks/27-b49ec46cfcce75b7.js +0 -1
- package/.next/static/chunks/2989-2dd9a66d007a96e8.js +0 -4
- package/.next/static/chunks/3219-92e75397858f3f1f.js +0 -1
- package/.next/static/chunks/4263-adecb5b466380b6e.js +0 -1
- package/.next/static/chunks/4643-d0ab4088e129651f.js +0 -1
- package/.next/static/chunks/6834-4759af1ce7d95fb6.js +0 -32
- package/.next/static/chunks/7555-d2209e697b0a798e.js +0 -1
- package/.next/static/chunks/8370-e88907d9c72435e7.js +0 -12
- package/.next/static/chunks/9219-4a39a98b5502d9d1.js +0 -1
- package/.next/static/chunks/9562-4b50b4e408bc0a42.js +0 -1
- package/.next/static/chunks/9690-53d5222618cbeddb.js +0 -1
- package/.next/static/chunks/app/(app)/activity/page-93d4012627ea70d5.js +0 -1
- package/.next/static/chunks/app/(app)/agents/[handle]/page-bfe740784bdf239c.js +0 -1
- package/.next/static/chunks/app/(app)/code/page-5e24874f11857823.js +0 -1
- package/.next/static/chunks/app/(app)/config/page-12c5487a8d55c2c2.js +0 -1
- package/.next/static/chunks/app/(app)/costs/page-6edcec363617f5ef.js +0 -1
- package/.next/static/chunks/app/(app)/cron/page-f9167770757921f7.js +0 -1
- package/.next/static/chunks/app/(app)/dashboard/page-103f172e762911d1.js +0 -1
- package/.next/static/chunks/app/(app)/docs/[id]/page-eaae80c3d47e1ba7.js +0 -1
- package/.next/static/chunks/app/(app)/docs/page-87457e514ea7de32.js +0 -1
- package/.next/static/chunks/app/(app)/error-988cd28480809861.js +0 -1
- package/.next/static/chunks/app/(app)/github/page-ff62b7618c594632.js +0 -1
- package/.next/static/chunks/app/(app)/goals/page-d4d854c091020a92.js +0 -1
- package/.next/static/chunks/app/(app)/inbox/page-1bcfc50e9df5ed6f.js +0 -12
- package/.next/static/chunks/app/(app)/knowledge/page-0a55ce74e274817c.js +0 -1
- package/.next/static/chunks/app/(app)/layout-825ba765e8034dfb.js +0 -1
- package/.next/static/chunks/app/(app)/models/page-cd077c548916b8cb.js +0 -1
- package/.next/static/chunks/app/(app)/notifications/page-c5c7945f6f6f18d6.js +0 -12
- package/.next/static/chunks/app/(app)/org/page-a83804854bd0d44a.js +0 -12
- package/.next/static/chunks/app/(app)/organizations/page-b38db8e364e3a108.js +0 -1
- package/.next/static/chunks/app/(app)/page-733340fec4cd0173.js +0 -1
- package/.next/static/chunks/app/(app)/planner/page-06b2841d0438d92d.js +0 -1
- package/.next/static/chunks/app/(app)/plugins/page-535ed062643077fc.js +0 -1
- package/.next/static/chunks/app/(app)/pm/page-dc0296761e1af17c.js +0 -1
- package/.next/static/chunks/app/(app)/profile/page-cef1aa72ffc02e9c.js +0 -1
- package/.next/static/chunks/app/(app)/pulse/page-d4bdec1709913581.js +0 -1
- package/.next/static/chunks/app/(app)/reports/[id]/page-f9167770757921f7.js +0 -1
- package/.next/static/chunks/app/(app)/reports/page-5c37a53bbd4fd1c3.js +0 -1
- package/.next/static/chunks/app/(app)/routines/page-e274160cfbb3c594.js +0 -1
- package/.next/static/chunks/app/(app)/search/page-f0e082b9b0402981.js +0 -1
- package/.next/static/chunks/app/(app)/security/page-a12f04656bde8aad.js +0 -1
- package/.next/static/chunks/app/(app)/skills/page-583f9780fa981aa8.js +0 -1
- package/.next/static/chunks/app/(app)/tasks/page-7bb09650b84e0755.js +0 -1
- package/.next/static/chunks/app/(app)/test-dev/page-ce66efbb83b2ed21.js +0 -1
- package/.next/static/chunks/app/(app)/update/page-6a8082f1c1b3b762.js +0 -1
- package/.next/static/chunks/app/(auth)/login/page-b512c906a1566d8c.js +0 -1
- package/.next/static/chunks/app/(auth)/onboarding/page-8f6bf1259bb5aab5.js +0 -1
- package/.next/static/chunks/app/_not-found/page-dc38b02aebeab535.js +0 -1
- package/.next/static/chunks/app/api/locks/acquire/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/models/progress/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/passkey/authenticate/options/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/passkey/authenticate/verify/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/passkey/register/options/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/passkey/register/verify/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/stream/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/sync/file/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/telegram/poll/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/upload/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/api/v1/[[...path]]/route-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/app/error-09899a13c38b6e89.js +0 -1
- package/.next/static/chunks/app/global-error-c2ea8fef715f226d.js +0 -1
- package/.next/static/chunks/app/layout-e6008e66aea1a849.js +0 -1
- package/.next/static/chunks/main-722e16032e7764d1.js +0 -5
- package/.next/static/chunks/main-app-761880af2b6f1962.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-eacef2b697bd0982.js +0 -1
- package/.next/static/chunks/webpack-222e3894b78c67db.js +0 -1
- /package/.next/static/{Mx3bcAGWI83SQ6PqC4kYX → vW8upousaXo7DvSlRwFbb}/_buildManifest.js +0 -0
- /package/.next/static/{Mx3bcAGWI83SQ6PqC4kYX → vW8upousaXo7DvSlRwFbb}/_ssgManifest.js +0 -0
|
@@ -1,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,"006a170afb6abc35cef34fd85cf16f40dd0635121c",null),(0,d.A)(m,"0026719cdabaa7470871210fe05e7dbbc601e59e93",null),(0,d.A)(n,"003649be107c69af410f5b59dc57988238c9b2ccb4",null),(0,d.A)(o,"00764b2da920c3558828f457bb503a3b1e197fb2e6",null),(0,d.A)(p,"00c44c46f3451d048415ed2966467e9049247d364b",null),(0,d.A)(q,"40f4edd374e432e6657aea53c1202eefb711b7f6cb",null),(0,d.A)(r,"40f08079ab7689af208b79eda5b6e422eba52d8b4d",null),(0,d.A)(s,"60136817abc4c7875aee5d791bcf4965f4ce15582a",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,"00516a0e85b569ff6044f3169d87c7f776e4fa98a0",null),(0,q.A)(_,"000fcc3ab0e9180e56d9dcf441ed3f53851a02611a",null),(0,q.A)(ab,"000c73594063e17c788bbc03c29d3c46fc11ec4995",null),(0,q.A)(ac,"007d51487d08d1861c5c9c8f6afb02be818b9a4c53",null),(0,q.A)(ah,"00b1509d943b2987043c92a89fc5e65291af2e5474",null),(0,q.A)(aj,"008b17892e9e958c227c782e40ca29a9c4547851b2",null),(0,q.A)(ak,"00ef003deb96d07a3e796772dbbbd972905c06a402",null),(0,q.A)(am,"00e952a6637e0a18692bf5e9abeab8cfa9eb7a5b43",null),(0,q.A)(an,"00e51640f598c8698266cecb962cc3925821a48cbb",null),(0,q.A)(ao,"40435215edf232a485753db4c78b82a77f70ab3b42",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,"40f2520564fa0eeaaf674553e98b603fdd35046c35",null),(0,d.A)(n,"40f8c950e3cbd7ba96438e1f20b85d5803efbc0322",null),(0,d.A)(o,"6005272a926b74b1dfce5b932b4627099fa9faa99d",null),(0,d.A)(p,"005b3d53012fafaa2be1c1300dcf797fc9c98e9895",null),(0,d.A)(q,"40776ba5a9cf24f432af567dedec36c0f70dba6663",null),(0,d.A)(r,"6069e0e935659045402fd1caedfc456e621ecf1e88",null),(0,d.A)(s,"60a308421a135340e5dd7d1b55bd8673b08d5a862b",null),(0,d.A)(t,"408e9ce4e48ac5efd90a99d2b7b4497c4e515862d9",null),(0,d.A)(u,"401688877c387c00e586b84c655a21e53b8925d529",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,"4038033f4f6fcc7c8c7ae4142336630f2c339a8d8c",null),(0,d.A)(y,"403f0c1322179601c99169bfc630a12c33910f2ff0",null),(0,d.A)(z,"00df4ab050d844889b2d0ba8dec8981130081da1dc",null),(0,d.A)(A,"0096f6fb82c612c03f93f9ebd24c474faa12f23fe3",null),(0,d.A)(B,"00f19c590f424939eff454ea8eef8b17ffbbaad8bf",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))}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=4435,exports.ids=[2392,4435],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})]})}},14232:(a,b,c)=>{c.d(b,{O:()=>e});var d=c(26021);let e=(0,d.createServerReference)("004609cc8fda5b9551472b8f08684533ed82369738",d.callServer,void 0,d.findSourceMapURL,"curateKbAction")},40870:(a,b,c)=>{c.d(b,{IZ:()=>k,Ix:()=>j,ZF:()=>m,h6:()=>n,w1:()=>l});var d=c(50730),e=c(76760),f=c(12940),g=c(76561),h=c(66408),i=c(76381);function j(a,b){if(!b)return null;let c=(0,h.HZ)(a),d=((0,e.isAbsolute)(b)?(0,e.relative)(c,b):b).replace(/\\/g,"/");return!d||d.startsWith("..")||d.startsWith(".git/")||d.startsWith(".claude/")||d.startsWith("archives/")?null:d}async function k(a,b,c){let e=(0,d.Uo)((0,d.eq)(g.fileLock.workspaceId,a),(0,d.eq)(g.fileLock.path,b)),[h]=await f.db.select().from(g.fileLock).where(e);if(h){let a=!!c.taskId&&h.taskId===c.taskId,b=!h.taskId&&!!c.agentId&&h.agentId===c.agentId;return a||b?(await f.db.update(g.fileLock).set({heartbeatAt:new Date}).where(e),{ok:!0}):{ok:!1,heldBy:{handle:h.agentHandle,taskId:h.taskId}}}try{return await f.db.insert(g.fileLock).values({workspaceId:a,path:b,taskId:c.taskId||"",agentId:c.agentId||"",agentHandle:c.handle||"",acquiredAt:new Date,heartbeatAt:new Date}),{ok:!0}}catch{let[a]=await f.db.select().from(g.fileLock).where(e);if(a&&(a.taskId===c.taskId||a.agentId===c.agentId))return{ok:!0};return{ok:!1,heldBy:a?{handle:a.agentHandle,taskId:a.taskId}:void 0}}}async function l(a,b){if(b)try{let c=await f.db.select({path:g.fileLock.path}).from(g.fileLock).where((0,d.Uo)((0,d.eq)(g.fileLock.workspaceId,a),(0,d.eq)(g.fileLock.taskId,b)));for(let e of(await f.db.delete(g.fileLock).where((0,d.Uo)((0,d.eq)(g.fileLock.workspaceId,a),(0,d.eq)(g.fileLock.taskId,b))),c))await (0,i.W_)(a,"task",`lock:${e.path}`)}catch{}}async function m(a=3e5){try{await f.db.delete(g.fileLock).where((0,d.lt)(g.fileLock.heartbeatAt,new Date(Date.now()-a)))}catch{}}async function n(a){try{return await f.db.select({path:g.fileLock.path,agentHandle:g.fileLock.agentHandle,taskId:g.fileLock.taskId}).from(g.fileLock).where((0,d.eq)(g.fileLock.workspaceId,a))}catch{return[]}}},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,"4038033f4f6fcc7c8c7ae4142336630f2c339a8d8c",null),(0,d.A)(y,"403f0c1322179601c99169bfc630a12c33910f2ff0",null),(0,d.A)(z,"00df4ab050d844889b2d0ba8dec8981130081da1dc",null),(0,d.A)(A,"0096f6fb82c612c03f93f9ebd24c474faa12f23fe3",null),(0,d.A)(B,"00f19c590f424939eff454ea8eef8b17ffbbaad8bf",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})]})}},95583:(a,b,c)=>{c.r(b),c.d(b,{"000841b225cd318c6b6e1b74681a04446c2fc49827":()=>e.PE,"004609cc8fda5b9551472b8f08684533ed82369738":()=>j.O,"00693e54844bbe9066f8a5473c488cc194c2bd4e5a":()=>k.eg,"0083f7ee1dc6ce9ec6bd0c12b600eb53328ba0fb2e":()=>e.KO,"0095f11f333d7bcdf5602f400aea375fada9d68c1d":()=>i.V,"0096f6fb82c612c03f93f9ebd24c474faa12f23fe3":()=>n.PG,"009e150de570f488c6b8dbc495936ae183dd6c7616":()=>k.io,"00acc17f0a5dd16286b178a08a5b8989ce5e3c9959":()=>d.xU,"00ba86d367299f75e022572c6e1e95a941f2c6d7ef":()=>d.bt,"00c77541def75536050d1e662a4b64ee8fa577538c":()=>h.x7,"00d0f3628462a983000d3a144f0fea8952be03118a":()=>h.Mp,"00de50f827186209568d4473a153e7029805645f82":()=>j.f,"00de5c63e670d2bd9579fceacf36b317be3727c745":()=>k.dj,"00df4ab050d844889b2d0ba8dec8981130081da1dc":()=>n.pM,"00f19c590f424939eff454ea8eef8b17ffbbaad8bf":()=>n.eU,"00fc098e676b165a642943c5e06fcd724ef5a74ff6":()=>e.y_,"00fcbefe6ec2a1a891b8dbc0a7f4e21444bd632f7f":()=>e.GK,"400f09679fbb3399982b683f027ff6e04946b8404d":()=>k.De,"402eeadb31eb2f5e60056cac29b659dd532df68954":()=>d.VL,"4038033f4f6fcc7c8c7ae4142336630f2c339a8d8c":()=>n.Kg,"403e95b7d8ae811fc9c94823902961f5efd9aae4e0":()=>g.L,"403f0c1322179601c99169bfc630a12c33910f2ff0":()=>n.lP,"40481e759c0032df6828ed1515136b2c254b38f242":()=>d.H7,"405c8b7e8f39ec0ca9ccff67449314122e269c4ee2":()=>e.RG,"405daeb99ac0dc584448e0a82ebd446353e1df4370":()=>e.r7,"406446417d1e902c37f8bd18abb427c8fbbcacee3e":()=>h.lR,"4072e95d4eeea0593600570929aeebdb4783bfc7ba":()=>d.rd,"4078d148218374f7578a97565bb9a808e0d439a458":()=>i.zS,"407f17cfaeafb77b61206820355d8e1c297b48cb88":()=>d.gg,"40827dab442f71c707bd0e721f259179891be9b5d9":()=>m.y,"408acc42ba98211dcb2ed5698525048120214a2795":()=>e.S,"408e36e5fc942856e7846646e50a0ffb880040d1ac":()=>e.lJ,"4096d75401f65b0aa8ba36eea0623e2e3577f65f29":()=>h.sE,"409885a154f76f49c496538d9aed35c80648a5e32e":()=>l.IL,"40a0f062a8cf5bed06418f1201c86a1ee1dafce5dc":()=>l.q4,"40a1227b56f23bc58dfd91bd85d1b5abfb5eb9daed":()=>g.p,"40b7b0aafd77ebee4bf58f8a190c6e1aa4f872b27f":()=>e.ey,"40b7f0298b5d7562b02b0db827a94fcfe4619d2a7a":()=>i.E_,"40bae138b46868f9b0e8f1affa2906d86a42269771":()=>i.VJ,"40d1b0145d7680e7365af98919ae9af17a85857f40":()=>d.Wu,"40d566a39bf39a39d982aa905355fadb88fd5966e0":()=>i.F,"40ecfef3afd4364a9f849ddb6e027a9b67be65ada4":()=>d.GW,"40f51ff321012914f13823c293c8e24340007774ea":()=>e.jc,"40f727c4725f83381768196103bac004bbc3b8e443":()=>l.TX,"6008156461d0c2379888e1b1db64a646787ee241e0":()=>l.Jp,"60099e58904f04f5679bb3adca0aceb7ca2a23755e":()=>e.AA,"600a2886a60cdf75d89400f6f0461b75b5e1af28c1":()=>d.ME,"600adfc269778741217c31377d7e0b633650bc2ec9":()=>f.k,"600cb7ae668798f94b0ce0b2259e8147ef45bad893":()=>d.n4,"603bf0d1081d45bf74f51b1d97e886245d20a09039":()=>d.rm,"603dece8cb304470bc9693f7ff674be4f1310cb608":()=>d.Fu,"6093001ac03ac32892149c155ca2e88fc2ccf57b6c":()=>l.bV,"60a408a3a21b681b16b206149fd9e0790a4304056e":()=>f.I,"60b01b94effbac0ba086f6db9ca70bfa6850dafeb8":()=>d.jw,"60cd05b6970937c9be25ff9559aad958cda9108eee":()=>e.q$,"60e6a3f0a9d48006009dc02ade0ec2b69ff94e73fe":()=>l.bk,"60e6d0387bb44d263eb1212066de048c606793e5c2":()=>e.LZ,"70597648c34d00471da008672cbce28984ac84dc26":()=>e.M8,"70f96de32bbfe1507e590c7730f5ef1477412ef98a":()=>d._z});var d=c(13712),e=c(4619),f=c(37181),g=c(8937),h=c(86591),i=c(10222),j=c(34567),k=c(78387),l=c(74774),m=c(51773),n=c(51439)}};
|
|
@@ -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"}};
|