constellai 0.3.5 → 0.3.7
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 +2 -2
- package/.next/prerender-manifest.json +3 -3
- 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 +2 -2
- 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 +44 -44
- 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 +2 -2
- 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 +6 -6
- 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 +2 -2
- 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 +2 -2
- 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 +1 -1
- 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 +1 -1
- 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 +3 -3
- package/.next/server/app/_global-error.segments/_full.segment.rsc +3 -3
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +1 -1
- 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/cron/tick/route.js +16 -16
- package/.next/server/app/api/locks/acquire/route.js +1 -1
- package/.next/server/app/api/sync/file/route.js +2 -2
- package/.next/server/app/api/telegram/poll/route.js +11 -11
- package/.next/server/app/api/upload/route.js +1 -1
- package/.next/server/app/api/v1/[[...path]]/route.js +1 -1
- package/.next/server/chunks/1249.js +14 -14
- package/.next/server/chunks/1845.js +1 -1
- package/.next/server/chunks/2517.js +1 -1
- package/.next/server/chunks/259.js +9 -9
- package/.next/server/chunks/260.js +1 -1
- package/.next/server/chunks/2867.js +2 -2
- package/.next/server/chunks/2960.js +1 -1
- package/.next/server/chunks/3131.js +1 -1
- package/.next/server/chunks/3234.js +4 -4
- package/.next/server/chunks/4574.js +1 -0
- package/.next/server/chunks/4619.js +1 -1
- package/.next/server/chunks/4979.js +12 -12
- package/.next/server/chunks/6431.js +1 -1
- package/.next/server/chunks/6753.js +1 -0
- package/.next/server/chunks/7236.js +4 -0
- package/.next/server/chunks/7336.js +1 -1
- package/.next/server/chunks/7589.js +3 -3
- package/.next/server/chunks/7621.js +12 -0
- package/.next/server/chunks/7989.js +1 -1
- package/.next/server/chunks/7993.js +21 -0
- package/.next/server/chunks/850.js +1 -1
- package/.next/server/chunks/8561.js +3 -3
- package/.next/server/chunks/8623.js +1 -1
- package/.next/server/chunks/8762.js +15 -417
- package/.next/server/chunks/8823.js +1 -1
- package/.next/server/chunks/8846.js +1 -0
- package/.next/server/chunks/9160.js +417 -0
- package/.next/server/chunks/9783.js +3 -3
- package/.next/server/chunks/9969.js +1 -1
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/middleware-build-manifest.js +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/215-18ea748d2ff2caff.js +1 -0
- package/.next/static/chunks/27-b49ec46cfcce75b7.js +1 -0
- package/.next/static/chunks/2989-2dd9a66d007a96e8.js +4 -0
- package/.next/static/chunks/3219-92e75397858f3f1f.js +1 -0
- package/.next/static/chunks/4643-d0ab4088e129651f.js +1 -0
- package/.next/static/chunks/8370-e88907d9c72435e7.js +12 -0
- package/.next/static/chunks/app/(app)/activity/{page-29e80a32c02f376b.js → page-93d4012627ea70d5.js} +1 -1
- package/.next/static/chunks/app/(app)/agents/[handle]/page-bfe740784bdf239c.js +1 -0
- package/.next/static/chunks/app/(app)/code/{page-1f954f7688bc24e4.js → page-5e24874f11857823.js} +1 -1
- package/.next/static/chunks/app/(app)/config/page-12c5487a8d55c2c2.js +1 -0
- package/.next/static/chunks/app/(app)/costs/page-6edcec363617f5ef.js +1 -0
- package/.next/static/chunks/app/(app)/cron/{page-a4dd65c78173b872.js → page-f9167770757921f7.js} +1 -1
- package/.next/static/chunks/app/(app)/dashboard/page-103f172e762911d1.js +1 -0
- package/.next/static/chunks/app/(app)/design/{page-238be90d78d22780.js → page-11b9cc40f32fe34f.js} +3 -3
- package/.next/static/chunks/app/(app)/docs/[id]/{page-e29afa1ba1a086e1.js → page-eaae80c3d47e1ba7.js} +1 -1
- package/.next/static/chunks/app/(app)/docs/page-87457e514ea7de32.js +1 -0
- package/.next/static/chunks/app/(app)/github/page-ff62b7618c594632.js +1 -0
- package/.next/static/chunks/app/(app)/goals/page-d4d854c091020a92.js +1 -0
- package/.next/static/chunks/app/(app)/inbox/page-1bcfc50e9df5ed6f.js +12 -0
- package/.next/static/chunks/app/(app)/knowledge/page-0a55ce74e274817c.js +1 -0
- package/.next/static/chunks/app/(app)/layout-825ba765e8034dfb.js +1 -0
- package/.next/static/chunks/app/(app)/models/page-cd077c548916b8cb.js +1 -0
- package/.next/static/chunks/app/(app)/notifications/page-c5c7945f6f6f18d6.js +12 -0
- package/.next/static/chunks/app/(app)/org/page-a83804854bd0d44a.js +12 -0
- package/.next/static/chunks/app/(app)/organizations/page-b38db8e364e3a108.js +1 -0
- package/.next/static/chunks/app/(app)/page-733340fec4cd0173.js +1 -0
- package/.next/static/chunks/app/(app)/planner/{page-920e439e6f88c238.js → page-06b2841d0438d92d.js} +1 -1
- package/.next/static/chunks/app/(app)/plugins/{page-d10239fcbabdf4fa.js → page-535ed062643077fc.js} +1 -1
- package/.next/static/chunks/app/(app)/pm/page-dc0296761e1af17c.js +1 -0
- package/.next/static/chunks/app/(app)/prepare-deploy/page-6f0c5081caf1d013.js +1 -0
- package/.next/static/chunks/app/(app)/profile/page-cef1aa72ffc02e9c.js +1 -0
- package/.next/static/chunks/app/(app)/pulse/page-d4bdec1709913581.js +1 -0
- package/.next/static/chunks/app/(app)/reports/[id]/{page-a4dd65c78173b872.js → page-f9167770757921f7.js} +1 -1
- package/.next/static/chunks/app/(app)/reports/{page-5c07fa3a8b5ba553.js → page-5c37a53bbd4fd1c3.js} +1 -1
- package/.next/static/chunks/app/(app)/routines/page-e274160cfbb3c594.js +1 -0
- package/.next/static/chunks/app/(app)/search/{page-07e037c487f14c35.js → page-f0e082b9b0402981.js} +1 -1
- package/.next/static/chunks/app/(app)/security/page-a12f04656bde8aad.js +1 -0
- package/.next/static/chunks/app/(app)/skills/page-583f9780fa981aa8.js +1 -0
- package/.next/static/chunks/app/(app)/tasks/page-7bb09650b84e0755.js +1 -0
- package/.next/static/chunks/app/(app)/test-dev/page-ce66efbb83b2ed21.js +1 -0
- package/.next/static/chunks/app/(app)/update/page-6a8082f1c1b3b762.js +1 -0
- package/.next/static/chunks/app/(auth)/login/page-b512c906a1566d8c.js +1 -0
- package/.next/static/chunks/app/(auth)/onboarding/page-8f6bf1259bb5aab5.js +1 -0
- package/.next/trace-build +1 -1
- package/CHANGELOG.md +63 -1
- package/README.md +7 -1
- package/README.pt-BR.md +7 -1
- package/THIRD_PARTY_LICENSES.md +64 -0
- package/bin/constella-update.mjs +19 -7
- package/bin/constella.mjs +1 -1
- package/bin/worker.mjs +1 -0
- package/docs/UPDATE.md +18 -2
- package/docs/en/AI_ARCHITECTURE.md +2 -2
- package/docs/en/CHAT_COMMANDS.md +1 -1
- package/docs/en/CONFIGURATION.md +1 -1
- package/docs/en/DESIGN.md +1 -1
- package/docs/en/FAQ.md +3 -3
- package/docs/en/GOALS_SPECS_ISSUES.md +1 -1
- package/docs/en/MCP.md +2 -2
- package/docs/en/PLUGINS.md +2 -2
- package/docs/en/PORTABLE_MODE.md +1 -1
- package/docs/en/PUBLISHING.md +14 -15
- package/docs/en/README.md +1 -1
- package/docs/en/SECURITY.md +3 -3
- package/docs/en/START_MODE.md +1 -1
- package/docs/en/TELEGRAM.md +1 -1
- package/docs/en/TROUBLESHOOTING.md +1 -1
- package/docs/en/VPS_MODE.md +2 -2
- package/docs/pt/AI_ARCHITECTURE.md +2 -2
- package/docs/pt/CHAT_COMMANDS.md +1 -1
- package/docs/pt/CONFIGURATION.md +1 -1
- package/docs/pt/DESIGN.md +1 -1
- package/docs/pt/FAQ.md +3 -3
- package/docs/pt/GOALS_SPECS_ISSUES.md +1 -1
- package/docs/pt/MCP.md +1 -1
- package/docs/pt/PLUGINS.md +2 -2
- package/docs/pt/PORTABLE_MODE.md +1 -1
- package/docs/pt/PUBLISHING.md +6 -7
- package/docs/pt/README.md +1 -1
- package/docs/pt/SECURITY.md +3 -3
- package/docs/pt/START_MODE.md +1 -1
- package/docs/pt/TELEGRAM.md +1 -1
- package/docs/pt/TROUBLESHOOTING.md +2 -2
- package/docs/pt/VPS_MODE.md +1 -1
- package/docs/roadmap.md +36 -0
- package/package.json +2 -1
- package/scripts/i18n-parity.mjs +1 -1
- package/scripts/install.sh +4 -2
- package/scripts/publish-public.mjs +33 -19
- package/scripts/vps-clean.sh +1 -1
- package/scripts/vps-install.sh +19 -5
- package/scripts/vps-update.sh +26 -17
- package/.next/server/chunks/212.js +0 -1
- package/.next/server/chunks/6381.js +0 -15
- package/.next/server/chunks/6853.js +0 -12
- package/.next/server/chunks/6954.js +0 -1
- package/.next/server/chunks/9215.js +0 -4
- package/.next/server/chunks/9229.js +0 -1
- package/.next/server/chunks/9310.js +0 -21
- package/.next/static/chunks/2692-7fee6e06b3c93940.js +0 -1
- package/.next/static/chunks/2997-ec8b18227849683e.js +0 -1
- package/.next/static/chunks/3219-b4941c7ff967e904.js +0 -1
- package/.next/static/chunks/6602-f26d109fd94cee1d.js +0 -4
- package/.next/static/chunks/8370-2733742abf5f3ddf.js +0 -12
- package/.next/static/chunks/9112-c37628abc8a164cd.js +0 -1
- package/.next/static/chunks/app/(app)/agents/[handle]/page-83277413debb3b25.js +0 -1
- package/.next/static/chunks/app/(app)/config/page-eee4f8736608afa5.js +0 -1
- package/.next/static/chunks/app/(app)/costs/page-0beac688917eaa30.js +0 -1
- package/.next/static/chunks/app/(app)/dashboard/page-519a934ccfcce6fa.js +0 -1
- package/.next/static/chunks/app/(app)/docs/page-b4462f9ca2118f8b.js +0 -1
- package/.next/static/chunks/app/(app)/github/page-cf8501e45fe38663.js +0 -1
- package/.next/static/chunks/app/(app)/goals/page-75c36155c162df5b.js +0 -1
- package/.next/static/chunks/app/(app)/inbox/page-f40bdb457609ddad.js +0 -12
- package/.next/static/chunks/app/(app)/knowledge/page-dc5dd15e4f0ad22e.js +0 -1
- package/.next/static/chunks/app/(app)/layout-408976a4d35f06a8.js +0 -1
- package/.next/static/chunks/app/(app)/models/page-a54e0b8ffed0085c.js +0 -1
- package/.next/static/chunks/app/(app)/notifications/page-1f84d74bc53c2c6c.js +0 -12
- package/.next/static/chunks/app/(app)/org/page-d17c62b7a668b399.js +0 -12
- package/.next/static/chunks/app/(app)/organizations/page-b55445f226cf8c61.js +0 -1
- package/.next/static/chunks/app/(app)/page-c7dd52ecc2da529d.js +0 -1
- package/.next/static/chunks/app/(app)/pm/page-61ad11558f241cf1.js +0 -1
- package/.next/static/chunks/app/(app)/prepare-deploy/page-8d25f86b26ab0d2e.js +0 -1
- package/.next/static/chunks/app/(app)/profile/page-236673e1a8c1e6c6.js +0 -1
- package/.next/static/chunks/app/(app)/pulse/page-f2c6049a967b93a3.js +0 -1
- package/.next/static/chunks/app/(app)/routines/page-0193e84e6a60a06a.js +0 -1
- package/.next/static/chunks/app/(app)/security/page-71e5d992b5ddf79a.js +0 -1
- package/.next/static/chunks/app/(app)/skills/page-72691864856c9906.js +0 -1
- package/.next/static/chunks/app/(app)/tasks/page-5c9ca8f83d4c904f.js +0 -1
- package/.next/static/chunks/app/(app)/test-dev/page-5aee630d9bc73a0b.js +0 -1
- package/.next/static/chunks/app/(app)/update/page-2c9bcdb65bd2f597.js +0 -1
- package/.next/static/chunks/app/(auth)/login/page-50033813b56469ee.js +0 -1
- package/.next/static/chunks/app/(auth)/onboarding/page-075fd9673f7ab241.js +0 -1
- package/docs/assets/blackhole.svg +0 -37
- /package/.next/static/{vaEtsAmUuKf_DngRqwRUn → Mx3bcAGWI83SQ6PqC4kYX}/_buildManifest.js +0 -0
- /package/.next/static/{vaEtsAmUuKf_DngRqwRUn → Mx3bcAGWI83SQ6PqC4kYX}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=9783,exports.ids=[9783],exports.modules={3196:(a,b,c)=>{c.d(b,{I:()=>l});var d=c(73024),e=c(76760),f=c(70149);let g=/(^|\/)(\.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)|npm-debug\.log|.*\.local)$/i,h=/(\.env\.(example|sample|template|dist)|\.env-example)$/i,i=[{kind:"AWS access key",re:/\bAKIA[0-9A-Z]{16}\b/},{kind:"GitHub token",re:/\bgh[posru]_[A-Za-z0-9]{30,}\b/},{kind:"OpenAI/Anthropic key",re:/\bsk-[A-Za-z0-9_-]{20,}\b/},{kind:"Google API key",re:/\bAIza[0-9A-Za-z_-]{30,}\b/},{kind:"Slack token",re:/\bxox[baprs]-[A-Za-z0-9-]{10,}\b/},{kind:"Private key",re:/-----BEGIN (?:RSA |EC |OPENSSH |DSA |PGP )?PRIVATE KEY-----/},{kind:"JWT",re:/\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{6,}\b/},{kind:"DB URL with credentials",re:/\b(?:postgres(?:ql)?|mysql|mongodb(?:\+srv)?|redis|amqp):\/\/[^\s:@/]+:[^\s:@/]+@/i},{kind:"Telegram bot token",re:/\b\d{6,}:[A-Za-z0-9_-]{35,}\b/},{kind:"Hardcoded secret",re:/\b(password|passwd|secret|api[_-]?key|access[_-]?token|auth[_-]?token|client[_-]?secret|private[_-]?key)\b\s*[:=]\s*['"][^'"\n]{6,}['"]/i}],j=/(your[_-]?|xxx+|<[^>]+>|change[_-]?me|example|placeholder|\*{3,}|•|dummy|todo|redacted|\.\.\.)/i,k=/(^|\/)(node_modules|\.git|\.next|dist|build|out|\.turbo|coverage|uploads|archives|\.testdev|vendor)\//;async function l(a){let b=await (0,f.d1)("git",["status","--porcelain","-z","--untracked-files=all"],{cwd:a});if(0!==b.code)return{findings:[],scanned:0,files:0};let c=[],l=b.stdout.split("\0");for(let a=0;a<l.length;a++){let b=l[a];if(!b||b.length<3)continue;let d=b[0],e=b[1],f=b.slice(3);("R"===d||"C"===d||"R"===e||"C"===e)&&a++,"D"!==d&&"D"!==e&&(!f||k.test(f+"/")||c.push(f))}let m=[],n=0;for(let b of c.slice(0,3e3)){g.test(b)&&!h.test(b)&&m.push({file:b,line:0,kind:"must-not-commit file",preview:b.split("/").pop()??b});let c=(0,e.join)(a,b),f=0;try{f=(0,d.statSync)(c).size}catch{continue}if(f>2097152)continue;let k="";try{k=(0,d.readFileSync)(c,"utf8")}catch{continue}if(k.includes("\0"))continue;n++;let l=k.split("\n");for(let a=0;a<l.length&&m.length<300;a++){let c=l[a];if(!(c.length>4e3))for(let{kind:d,re:e}of i){let f=e.exec(c);if(f
|
|
1
|
+
"use strict";exports.id=9783,exports.ids=[9783],exports.modules={3196:(a,b,c)=>{c.d(b,{I:()=>l});var d=c(73024),e=c(76760),f=c(70149);let g=/(^|\/)(\.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)|npm-debug\.log|.*\.local)$/i,h=/(\.env\.(example|sample|template|dist)|\.env-example)$/i,i=[{kind:"AWS access key",re:/\bAKIA[0-9A-Z]{16}\b/},{kind:"GitHub token",re:/\bgh[posru]_[A-Za-z0-9]{30,}\b/},{kind:"GitHub fine-grained PAT",re:/\bgithub_pat_[A-Za-z0-9_]{40,}\b/},{kind:"OpenAI/Anthropic key",re:/\bsk-[A-Za-z0-9_-]{20,}\b/},{kind:"Google API key",re:/\bAIza[0-9A-Za-z_-]{30,}\b/},{kind:"Slack token",re:/\bxox[baprs]-[A-Za-z0-9-]{10,}\b/},{kind:"Private key",re:/-----BEGIN (?:RSA |EC |OPENSSH |DSA |PGP )?PRIVATE KEY-----/},{kind:"JWT",re:/\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{6,}\b/},{kind:"DB URL with credentials",re:/\b(?:postgres(?:ql)?|mysql|mongodb(?:\+srv)?|redis|amqp):\/\/[^\s:@/]+:[^\s:@/]+@/i},{kind:"Telegram bot token",re:/\b\d{6,}:[A-Za-z0-9_-]{35,}\b/},{kind:"Hardcoded secret",re:/\b(password|passwd|secret|api[_-]?key|access[_-]?token|auth[_-]?token|client[_-]?secret|private[_-]?key)\b\s*[:=]\s*['"][^'"\n]{6,}['"]/i}],j=/(your[_-]?|xxx+|<[^>]+>|change[_-]?me|example|placeholder|\*{3,}|•|dummy|todo|redacted|\.\.\.)/i,k=/(^|\/)(node_modules|\.git|\.next|dist|build|out|\.turbo|coverage|uploads|archives|\.testdev|vendor)\//;async function l(a){let b=await (0,f.d1)("git",["status","--porcelain","-z","--untracked-files=all"],{cwd:a});if(0!==b.code)return{findings:[],scanned:0,files:0};let c=[],l=b.stdout.split("\0");for(let a=0;a<l.length;a++){let b=l[a];if(!b||b.length<3)continue;let d=b[0],e=b[1],f=b.slice(3);("R"===d||"C"===d||"R"===e||"C"===e)&&a++,"D"!==d&&"D"!==e&&(!f||k.test(f+"/")||c.push(f))}let m=[],n=0;for(let b of c.slice(0,3e3)){g.test(b)&&!h.test(b)&&m.push({file:b,line:0,kind:"must-not-commit file",preview:b.split("/").pop()??b});let c=(0,e.join)(a,b),f=0;try{f=(0,d.statSync)(c).size}catch{continue}if(f>2097152)continue;let k="";try{k=(0,d.readFileSync)(c,"utf8")}catch{continue}if(k.includes("\0"))continue;n++;let l=k.split("\n");for(let a=0;a<l.length&&m.length<300;a++){let c=l[a];if(!(c.length>4e3))for(let{kind:d,re:e}of i){let f=e.exec(c);if(f&&!("Hardcoded secret"===d&&j.test(f[0]))){var o;m.push({file:b,line:a+1,kind:d,preview:(o=f[0]).length<=10?"•••":o.slice(0,4)+"•••"+o.slice(-2)});break}}}}return{findings:m,scanned:n,files:c.length}}},69783:(a,b,c)=>{c.d(b,{A5:()=>H,Bz:()=>A,H9:()=>I,Iq:()=>D,Td:()=>z,UY:()=>F,UZ:()=>G,Uc:()=>B,ec:()=>E,jU:()=>y,ox:()=>J,uP:()=>x});var d=c(6866),e=c(73024),f=c(77598),g=c(76760),h=c(97603),i=c(31371),j=c(65705),k=c(1890),l=c(53993),m=c(38926),n=c(57086),o=c(70149),p=c(3196),q=c(77558),r=c(24701),s=c(74252);let t=`# Constella default — don't commit deps/build output
|
|
2
2
|
node_modules/
|
|
3
3
|
.next/
|
|
4
4
|
dist/
|
|
@@ -18,5 +18,5 @@ uploads/
|
|
|
18
18
|
${i}`}}async function I(){let{org:a}=await (0,l.nP)(),b=(0,n.HZ)(a.id);return await u(b)?{ok:!0,...await (0,p.I)(b)}:{ok:!1,findings:[],scanned:0,files:0}}async function J(a){let{org:b,workspace:c}=await (0,l.nP)(),d=(0,n.HZ)(b.id);(0,e.mkdirSync)(d,{recursive:!0});let f=a.branch||"main",g=await (0,m.r6)(c.id,"github_pat"),h=a=>(g?a.split(g).join("***"):a).slice(-300),j={ok:!1,committed:!1,sha:"",pushed:!1,prUrl:"",nothing:!1};if(!await u(d))return j.error="git init failed",K(c.id,j,a);if(!g)return j.blocked=!0,j.error="GitHub isn't configured for this company — connect a token + pick a repo first.",K(c.id,j,a);let k=c.settings?.github?.repo,s=await B();if(!k||!s)return j.blocked=!0,j.error="No repository set for this company — pick or create one first.",K(c.id,j,a);if(k.toLowerCase()!==s.toLowerCase())return j.blocked=!0,j.error=`Origin (${s}) doesn't match this company's configured repo (${k}). Re-select the repo before committing.`,K(c.id,j,a);if(!a.force){let a=await (0,p.I)(d);if(a.findings.length)return j.blocked=!0,j.secrets=a.findings,j.error=`Blocked: ${a.findings.length} potential secret(s)/sensitive file(s) in the change set. Resolve them or review before committing.`,await (0,q.vE)(c.id,{kind:"block",refType:"task",refId:`commit-${s}`,title:`Commit blocked — ${a.findings.length} secret risk(s)`,detail:`Pushing to ${s} was blocked. Sensitive items:
|
|
19
19
|
`+a.findings.slice(0,20).map(a=>`• ${a.file}${a.line?":"+a.line:""} — ${a.kind} (${a.preview})`).join("\n")}),await (0,r.I)(c.id,{kind:"security",text:`Commit blocked — ${a.findings.length} secret risk(s)`,detail:a.findings.slice(0,5).map(a=>`${a.file}: ${a.kind}`).join("; ")}),(0,i.revalidatePath)("/github"),(0,i.revalidatePath)("/inbox"),j}await (0,o.d1)("git",["add","-A"],{cwd:d});let t=await (0,o.d1)("git",["-c","user.email=agents@constella.dev","-c","user.name=Constella Agents","commit","-m",a.message],{cwd:d});if(0===t.code)j.committed=!0,j.sha=(await (0,o.d1)("git",["rev-parse","--short","HEAD"],{cwd:d})).stdout.trim();else if(/nothing to commit|no changes added/i.test(t.stdout+t.stderr))return j.nothing=!0,K(c.id,j,a);else return j.error=h(t.stderr||t.stdout)||"git commit failed",K(c.id,j,a);let v=await (0,o.d1)("git",["remote","get-url","origin"],{cwd:d}),w=0===v.code?v.stdout.trim():"";if(w&&g&&/^https:\/\/github\.com\//i.test(w)){let b=w.replace(/^https:\/\//i,`https://x-access-token:${g}@`),e=await (0,o.d1)("git",["push",b,`HEAD:${f}`],{cwd:d,timeoutMs:12e4});if(j.pushed=0===e.code,!j.pushed&&(j.error=h(e.stderr)||"git push failed",/rejected|non-fast-forward|fetch first|merge conflict|failed to push/i.test(e.stderr)&&await (0,q.vE)(c.id,{kind:"block",refType:"task",refId:`push:${a.repo}:${f}`,title:`Push rejected — ${a.repo}`,detail:`git push to \`${f}\` was rejected (remote conflict / non-fast-forward). Pull + resolve, then push again.
|
|
20
20
|
|
|
21
|
-
${h(e.stderr).slice(0,300)}`})),j.pushed&&a.delegated){let a=
|
|
22
|
-
`:"")+c.message})}return b.ok=b.committed,(0,i.revalidatePath)("/github"),b}(0,s.D)([x,y,z,A,B,D,E,F,G,H,I,J]),(0,d.A)(x,"
|
|
21
|
+
${h(e.stderr).slice(0,300)}`})),j.pushed&&a.delegated){let a=await (0,o.d1)("gh",["pr","create","--fill","--head",f],{cwd:d,timeoutMs:6e4,env:{GH_TOKEN:g}}),b=(a.stdout.match(/https:\/\/github\.com\/\S+/)??[])[0];b?j.prUrl=b:0!==a.code&&(j.error=h(a.stderr).slice(0,200)||"gh pr create did not open a PR (is the branch the repo default, or no diff vs base?)")}}else w?g||(j.error="committed locally — connect a GitHub PAT to push"):j.error="committed locally — no 'origin' remote configured to push";return K(c.id,j,a)}async function K(a,b,c){if(b.committed){await j.db.update(k.file).set({gitStatus:""}).where((0,h.Uo)((0,h.eq)(k.file.workspaceId,a),(0,h.ne)(k.file.gitStatus,"")));let d=b.pushed?`pushed to ${c.repo} \xb7 ${c.branch}`:"committed locally";await (0,r.I)(a,{kind:"deploy",text:`Workspace ${d}${b.sha?` (${b.sha})`:""}`,detail:(c.delegated&&b.prUrl?`PR: ${b.prUrl}
|
|
22
|
+
`:"")+c.message})}return b.ok=b.committed,(0,i.revalidatePath)("/github"),b}(0,s.D)([x,y,z,A,B,D,E,F,G,H,I,J]),(0,d.A)(x,"0065a3a2bc7e9a5a4beeeb7819a758dd73bd8c8be7",null),(0,d.A)(y,"40eb76a7845e51b23884f134e805c884b2baacbe99",null),(0,d.A)(z,"4001d992c595498f4deb397bfae0857fe9d34820fd",null),(0,d.A)(A,"406659c5dc4022ddc5bef0be456b812545da64d3b0",null),(0,d.A)(B,"000e90cfed4ef959323227eb9a47610d2ecfe4f58e",null),(0,d.A)(D,"008001d8667d8fe104a4ef656b4770d5838dae84bb",null),(0,d.A)(E,"404ede5566e753560824d8ce245be7cc3aeea8e282",null),(0,d.A)(F,"402162bcbd1f723b69056f66942be2aece35228516",null),(0,d.A)(G,"00b5efc9230247e6239b37fa65251e2e55a0a084c7",null),(0,d.A)(H,"0057f193979b08190631eb9a7f391a648888bd396d",null),(0,d.A)(I,"004ba4422d50fcff20cb40eec06d32b1be755e62fd",null),(0,d.A)(J,"40c427cd36adcfe462ad37aba6247e3927d7182b12",null)}};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";exports.id=9969,exports.ids=[9969],exports.modules={3188:(a,b,c)=>{c.d(b,{$g:()=>U,Hs:()=>r,JN:()=>Z,KD:()=>C,Kp:()=>V,Pe:()=>o,UC:()=>u,ZB:()=>S,d1:()=>T,hW:()=>X,p1:()=>ab,qX:()=>Y,w5:()=>W});var d=c(31421),e=c(73024),f=c(48161),g=c(76760),h=c(18612);let i="win32"===process.platform,j=process.env.CONSTELLA_RUN_MODE??"start",k=null!=process.env.CONSTELLA_AGENT_FULL_ACCESS?"0"!==process.env.CONSTELLA_AGENT_FULL_ACCESS:"start"===j;function l(){return k?["--permission-mode","bypassPermissions"]:["--permission-mode","acceptEdits"]}let m=null,n=null;function o(a){n=a}function p(){return n??"1"===process.env.CONSTELLA_AGENT_LOCK_HOOK}let q=null;function r(a){q=a}function s(){return q??"1"===process.env.CONSTELLA_AGENT_CMD_GUARD}let t=null;function u(a){t=a}function v(){try{let a=(0,g.join)((0,h.r$)(),".agent-claude");(0,e.mkdirSync)(a,{recursive:!0});let b=(0,g.join)((0,f.homedir)(),".claude",".credentials.json");if(!(0,e.existsSync)(b))return null;(0,e.copyFileSync)(b,(0,g.join)(a,".credentials.json"));let c=(0,g.join)((0,f.homedir)(),".claude.json");if((0,e.existsSync)(c))try{(0,e.copyFileSync)(c,(0,g.join)(a,".claude.json"))}catch{}let d=process.env.CONSTELLA_PKG_ROOT||process.cwd(),i=[];return p()&&i.push({matcher:"Write|Edit|MultiEdit|NotebookEdit",hooks:[{type:"command",command:`node "${(0,g.join)(d,"bin","lock-hook.mjs")}"`}]}),s()&&i.push({matcher:"Bash",hooks:[{type:"command",command:`node "${(0,g.join)(d,"bin","guard-hook.mjs")}"`}]}),(0,e.writeFileSync)((0,g.join)(a,"settings.json"),JSON.stringify({hooks:{PreToolUse:i}}),"utf8"),a}catch{return null}}function w(){if((p()||s())&&v())return[];if(null===m)try{let a=(0,g.join)((0,f.tmpdir)(),"constella-agent-settings.json");(0,e.writeFileSync)(a,JSON.stringify({disableAllHooks:!0}),"utf8"),m=a}catch{m=""}return m?["--settings",m]:[]}function x(a){if(!p()&&!s())return process.env;let b=v();return b?{...process.env,CLAUDE_CONFIG_DIR:b,CONSTELLA_ORG_ID:a.orgId,CONSTELLA_TASK_ID:a.token||"",CONSTELLA_AGENT_ID:a.agentId||"",CONSTELLA_AGENT_HANDLE:a.agentHandle||"",CONSTELLA_BASE_URL:process.env.CONSTELLA_BASE_URL||"http://127.0.0.1:3000"}:process.env}function y(a){if(a)return/^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$/.test(a)?a:void 0}function z(a){if(a&&"(default)"!==a)return/^[A-Za-z0-9][A-Za-z0-9._:/-]{0,79}$/.test(a)?a:void 0}let A=new Map,B=new Set;function C(a){B.add(a);let b=A.get(a);if(!b)return!1;A.delete(a);try{return b.kill("SIGKILL"),!0}catch{return!1}}function D(a,b){if(a){if(B.has(a)){B.delete(a);try{b.kill("SIGKILL")}catch{}return}A.set(a,b)}}function E(a){a&&(A.delete(a),B.delete(a))}function F(a,b,c,e,f,g,h,j=i){return new Promise(i=>{let k=Date.now(),l=(0,d.spawn)(a,b,{cwd:e,shell:j,windowsHide:!0,env:g??process.env});D(h,l);let m="",n="",o=!1,p=setTimeout(()=>{o=!0;try{l.kill("SIGKILL")}catch{}},f);l.stdout.on("data",a=>m+=a.toString()),l.stderr.on("data",a=>n+=a.toString()),l.on("error",a=>{clearTimeout(p),E(h),i({code:-1,stdout:m,stderr:n+String(a),durationMs:Date.now()-k,timedOut:o})}),l.on("close",a=>{clearTimeout(p),E(h),i({code:a,stdout:m,stderr:n,durationMs:Date.now()-k,timedOut:o})}),c&&l.stdin.write(c),l.stdin.end()})}async function G(a,b){let c=(0,h.HZ)(b.orgId);(0,e.mkdirSync)(c,{recursive:!0});let d=y(b.model),f=["-p","--output-format","json",...w(),...l()];d&&f.push("--model",d);let g=await F("claude",f,a,c,b.timeoutMs??18e4,x(b),b.token);if(g.timedOut)return I("claude",b.model,g.durationMs,"timed out");let i=null;try{i=JSON.parse(g.stdout.trim())}catch{let a=g.stdout.split("\n").reverse().find(a=>a.includes('"type":"result"'));if(a)try{i=JSON.parse(a)}catch{}}if(!i)return I("claude",b.model,g.durationMs,g.stderr.slice(-300)||"no JSON output (code "+g.code+")");let j=i.usage??{};return{ok:!0!==i.is_error&&"success"===i.subtype,text:String(i.result??""),usd:Number(i.total_cost_usd??0),inputTokens:Number(j.input_tokens??0)+Number(j.cache_read_input_tokens??0)+Number(j.cache_creation_input_tokens??0),outputTokens:Number(j.output_tokens??0),durationMs:g.durationMs,binary:"claude",model:b.model,error:!0===i.is_error?String(i.result??"error"):void 0}}async function H(a,b){let c=(0,h.HZ)(b.orgId);(0,e.mkdirSync)(c,{recursive:!0});let d=y(b.model),f=["exec","--json","--skip-git-repo-check","-s",k?"danger-full-access":"workspace-write"];d&&f.push("-m",d);let g=await F("codex",f,a,c,b.timeoutMs??18e4,void 0,b.token);if(g.timedOut)return I("codex",b.model,g.durationMs,"timed out");let i="",j=0,l=0,m=0;for(let a of g.stdout.split("\n")){let b=a.trim();if(b.startsWith("{"))try{let a=JSON.parse(b),c=a.item??a.msg??{};"string"==typeof c.text&&c.text&&(i=c.text),"string"==typeof a.text&&(i=a.text);let d=a.usage??a.token_usage??c.usage??{};d.input_tokens&&(j=Number(d.input_tokens)),d.output_tokens&&(l=Number(d.output_tokens)),"number"==typeof a.cost_usd&&(m=a.cost_usd)}catch{}}return{ok:0===g.code,text:i,usd:m,inputTokens:j,outputTokens:l,durationMs:g.durationMs,binary:"codex",model:b.model,error:0===g.code?void 0:g.stderr.slice(-300)||"codex exit "+g.code}}function I(a,b,c,d){return{ok:!1,text:"",usd:0,inputTokens:0,outputTokens:0,durationMs:c,binary:a,model:b,error:d}}async function J(a,b){let c=(0,h.HZ)(b.orgId);(0,e.mkdirSync)(c,{recursive:!0});let d=z(b.model),f=["-z",a];if(d){let a=d.indexOf("/");a>0?f.push("--provider",d.slice(0,a),"--model",d.slice(a+1)):f.push("--model",d)}let g=await F("hermes",f,"",c,b.timeoutMs??18e4,void 0,b.token);if(g.timedOut)return I("hermes",b.model,g.durationMs,"timed out");let i=(g.stdout||"").trim();return{ok:0===g.code&&!!i,text:i,usd:0,inputTokens:0,outputTokens:0,durationMs:g.durationMs,binary:"hermes",model:b.model,error:0===g.code?void 0:g.stderr.slice(-300)||"hermes exit "+g.code}}async function K(a,b){let c=(0,h.HZ)(b.orgId);(0,e.mkdirSync)(c,{recursive:!0});let d=z(b.model),f=["infer","model","run","--prompt",a,"--json"];d&&f.push("--model",d);let g=await F("openclaw",f,"",c,b.timeoutMs??18e4,void 0,b.token);if(g.timedOut)return I("openclaw",b.model,g.durationMs,"timed out");let i="",j=0===g.code,k;try{var l;let a=JSON.parse(g.stdout.trim());j=!1!==a.ok&&0===g.code,i=(l=a.outputs)?"string"==typeof l?l:Array.isArray(l)?l.map(a=>"string"==typeof a?a:a&&"object"==typeof a?String(a.text??a.content??a.output??a.message??""):"").filter(Boolean).join("\n"):"object"==typeof l?String(l.text??l.content??""):"":"",a.error&&(k=String(a.error?.message??a.error))}catch{i=g.stdout.trim(),0!==g.code&&(j=!1,k=g.stderr.slice(-300)||"openclaw exit "+g.code)}return i||k||(k=g.stderr.slice(-300)||"no output (code "+g.code+")"),{ok:j&&!!i,text:i,usd:0,inputTokens:0,outputTokens:0,durationMs:g.durationMs,binary:"openclaw",model:b.model,error:k}}async function L(a,b,c){let d=(0,h.HZ)(c.orgId);(0,e.mkdirSync)(d,{recursive:!0});let f=await F(a,b,"",d,c.timeoutMs??18e4,void 0,c.token);if(f.timedOut)return I(a,c.model,f.durationMs,"timed out");let g=function(a){let b=a.trim();if(!b)return"";if(b.startsWith("{")||b.startsWith("["))try{let a=JSON.parse(b),c=a.result??a.text??a.response??a.content??a.message??a.output;if("string"==typeof c&&c)return c;if(c&&"object"==typeof c){let a=c.text??c.content;if("string"==typeof a)return a}}catch{}return b}(f.stdout),i=0===f.code?g?void 0:f.stderr.slice(-300)||"no output (code "+f.code+")":f.stderr.slice(-300)||`${a} exit ${f.code}`;return{ok:0===f.code&&!!g,text:g,usd:0,inputTokens:0,outputTokens:0,durationMs:f.durationMs,binary:a,model:c.model,error:i}}async function M(a,b){let c=z(b.model),d=["--message",a,"--yes-always","--no-auto-commits","--no-stream"];return c&&d.push("--model",c),L("aider",d,b)}async function N(a,b){let c=z(b.model),d=["run",a];return c&&d.push("--model",c),L("opencode",d,b)}async function O(a,b){let c=z(b.model),d=["-p",a,"--allow-all-tools"];return c&&d.push("--model",c),L("copilot",d,b)}async function P(a,b){let c=z(b.model),d=["-p",a,"--output-format","json"];return c&&d.push("--model",c),L("cursor-agent",d,{...b,timeoutMs:b.timeoutMs??15e4})}async function Q(a,b){let c=z(b.model),d=["--json","-y",a];return c&&d.push("--model",c),L("cline",d,b)}async function R(a,b){let c=z(b.model),d=["--yes",a];return c&&d.push("--model",c),L("kilocode",d,b)}async function S(a){try{if("opencode"===a){let a=await F("opencode",["models"],"",process.cwd(),2e4);if(0!==a.code)return[];return a.stdout.split("\n").map(a=>a.trim()).filter(a=>/^[\w.-]+\/[\w./:-]+$/.test(a)).slice(0,200)}if("aider"===a){let a=await F("aider",["--list-models","/"],"",process.cwd(),25e3);if(0!==a.code)return[];return a.stdout.split("\n").map(a=>a.replace(/^[-*\s]+/,"").trim()).filter(a=>/^[\w.-]+\/[\w./:-]+$/.test(a)).slice(0,200)}}catch{}return[]}async function T(a,b,c){return F(a,b,c.input??"",c.cwd,c.timeoutMs??6e4,c.env?{...process.env,...c.env}:void 0,void 0,!1)}async function U(a){let b=await F(a,["--version"],"",process.cwd(),15e3);return 0!==b.code?null:(b.stdout||b.stderr).trim().split("\n")[0]||"ok"}async function V(a){let b=(0,f.homedir)(),c=(...a)=>a.some(a=>(0,e.existsSync)((0,g.join)(b,a)));try{switch(a){case"claude":return c(".claude/.credentials.json",".claude.json",".config/claude")?"ready":"needs_login";case"codex":return c(".codex/auth.json",".codex")?"ready":"needs_login";case"aider":return process.env.OPENAI_API_KEY||process.env.ANTHROPIC_API_KEY||process.env.DEEPSEEK_API_KEY||process.env.GEMINI_API_KEY||process.env.OPENROUTER_API_KEY||process.env.GROQ_API_KEY?"ready":"needs_login";case"opencode":{let a=await F("opencode",["auth","list"],"",process.cwd(),8e3);if(0===a.code&&/\w/.test(a.stdout)&&!/\b(no|none|not)\b.*(auth|provider|credential|logged)/i.test(a.stdout))return"ready";return c(".local/share/opencode/auth.json",".config/opencode")?"ready":"needs_login"}case"copilot":return c(".config/github-copilot/apps.json",".config/github-copilot",".copilot")?"ready":"needs_login";case"cursor-agent":return c(".config/cursor-agent",".cursor-agent",".cursor")?"ready":"needs_login";case"openclaw":return c(".openclaw",".config/openclaw")?"ready":"unknown";case"hermes":return c(".hermes",".config/hermes")?"ready":"unknown";case"cline":return c(".cline",".config/cline")?"ready":"unknown";case"kilocode":return c(".kilocode",".config/kilocode")?"ready":"unknown"}}catch{}return"unknown"}let W={cli_claude_code:["opus","sonnet","haiku"],cli_codex:["gpt-5-codex","o4-mini"],cli_openclaw:["(default)","openai/gpt-5.4","anthropic/claude-sonnet-4"],cli_hermes:["(default)","anthropic/claude-sonnet-4.6","openai/gpt-5.5"],cli_aider:["(default)","anthropic/claude-sonnet-4-6","openai/gpt-5.2","deepseek/deepseek-chat"],cli_opencode:["(default)","anthropic/claude-sonnet-4-6","openai/gpt-5.2"],cli_copilot:["(default)","claude-sonnet-4.5","gpt-5"],cli_cursor:["(default)","claude-4.5-sonnet","gpt-5"],cli_cline:["(default)"],cli_kilo:["(default)"]};function X(a,b){if("cli_codex"===a||"cli_codex_cli"===a)return"codex";if("cli_openclaw"===a)return"openclaw";if("cli_hermes"===a)return"hermes";if("cli_aider"===a)return"aider";if("cli_opencode"===a)return"opencode";if("cli_copilot"===a||"cli_copilot_cli"===a)return"copilot";if("cli_cursor"===a||"cli_cursor_cli"===a)return"cursor-agent";if("cli_cline"===a||"cli_cline_cli"===a)return"cline";if("cli_kilo"===a||"cli_kilo_code"===a)return"kilocode";if("cli_claude_code"===a)return"claude";let c=(b??"").toLowerCase();return c.startsWith("codex")||c.startsWith("gpt")||c.startsWith("o1")||c.startsWith("o3")||c.startsWith("o4")?"codex":"claude"}function Y(a){let b=X(a);return"claude"===b?"opus":"codex"!==b?(W[a??""]??[]).find(a=>"(default)"!==a):void 0}async function Z(a,b){let c=b.binary??"claude",d={model:b.model,orgId:b.orgId,timeoutMs:b.timeoutMs,token:b.token,agentId:b.agentId,agentHandle:b.agentHandle};return"codex"===c?H(a,d):"openclaw"===c?K(a,d):"hermes"===c?J(a,d):"aider"===c?M(a,d):"opencode"===c?N(a,d):"copilot"===c?O(a,d):"cursor-agent"===c?P(a,d):"cline"===c?Q(a,d):"kilocode"===c?R(a,d):G(a,d)}async function $(a,b,c){let f=(0,h.HZ)(b.orgId);(0,e.mkdirSync)(f,{recursive:!0});let g=y(b.model),j=["-p","--output-format","stream-json","--include-partial-messages","--verbose",...w(),...l(),...t??"0"!==process.env.CONSTELLA_WEB_RESEARCH?["--allowedTools","WebSearch","WebFetch"]:[]];return g&&j.push("--model",g),new Promise(e=>{let g=Date.now(),h=(0,d.spawn)("claude",j,{cwd:f,shell:i,windowsHide:!0,env:x(b)});D(b.token,h);let k="",l="",m=0,n=0,o=0,p=!1,q,r="",s=0,t=!1,u=()=>{r.length>s&&(c({kind:"text",detail:r.slice(s,s+8e3)}),s=r.length)},v=setTimeout(()=>{try{h.kill("SIGKILL")}catch{}},b.timeoutMs??24e4);h.stdout.on("data",a=>{let b;for(k+=a.toString();(b=k.indexOf("\n"))>=0;){let a=k.slice(0,b).trim();if(k=k.slice(b+1),a.startsWith("{"))try{!function(a){if("stream_event"===a.type){let b=a.event;b?.type==="content_block_start"&&b.content_block?.type==="text"&&r?r+="\n\n":b?.type==="content_block_delta"&&b.delta?.type==="text_delta"&&b.delta.text&&(t=!0,(r+=b.delta.text).length-s>=120&&u())}else if("assistant"===a.type){for(let b of a.message?.content??[])"tool_use"===b.type&&b.name?c(function(a,b){if("Read"===a)return{kind:"read",target:String(b.file_path??"")};if("Write"===a)return{kind:"create",target:String(b.file_path??""),detail:String(b.content??"").slice(0,4e3)};if("Edit"===a||"NotebookEdit"===a){let a=String(b.old_string??"").split("\n"),c=String(b.new_string??"").split("\n"),d=[...a.map(a=>"-"+a),...c.map(a=>"+"+a)].slice(0,80).join("\n");return{kind:"edit",target:String(b.file_path??""),detail:d}}return"Bash"===a||"PowerShell"===a?{kind:"run",target:String(b.command??"").slice(0,200)}:"Glob"===a||"Grep"===a?{kind:"search",target:String(b.pattern??"")}:{kind:"read",target:a}}(b.name,b.input??{})):"text"===b.type&&b.text?(l=b.text,t||c({kind:"text",detail:b.text.slice(0,8e3)})):"thinking"===b.type&&b.thinking&&c({kind:"thinking",detail:b.thinking.slice(0,200)});u()}else if("result"===a.type){p=!0!==a.is_error&&"success"===a.subtype,"string"==typeof a.result&&(l=a.result),m=Number(a.total_cost_usd??0);let b=a.usage??{};n=Number(b.input_tokens??0)+Number(b.cache_read_input_tokens??0)+Number(b.cache_creation_input_tokens??0),o=Number(b.output_tokens??0),a.is_error&&(q=String(a.result??"error"))}}(JSON.parse(a))}catch{}}}),h.on("error",a=>{clearTimeout(v),E(b.token),e(I("claude",b.model,Date.now()-g,String(a)))}),h.on("close",()=>{clearTimeout(v),E(b.token),c({kind:"done"}),e({ok:p,text:l,usd:m,inputTokens:n,outputTokens:o,durationMs:Date.now()-g,binary:"claude",model:b.model,error:q})}),h.stdin.write(a),h.stdin.end()})}let _=[6e4,3e5,9e5],aa=a=>new Promise(b=>setTimeout(b,a));async function ab(a,b,c){let d=null;for(let f=0;f<=_.length;f++){var e;let g=await ac(a,b,c);if(g.ok||!((e=g.error)&&/(\b429\b|overloaded|rate[\s_-]?limit|usage limit|\bquota\b|too many requests|service unavailable|\b50[0-3]\b|\bupstream\b|fetch failed|network error|econnreset|enotfound|etimedout|econnrefused|socket hang up)/i.test(e)))return g;if(d=g,f<_.length){let a=_[f];c({kind:"thinking",target:`Provider limit / network — retrying in ${Math.round(a/6e4)} min (attempt ${f+2}/${_.length+1})…`,detail:(g.error||"").slice(0,160)}),await aa(a)}}return d}async function ac(a,b,c){let d=b.binary??"claude";if("claude"===d)return $(a,{model:b.model,orgId:b.orgId,timeoutMs:b.timeoutMs,token:b.token,agentId:b.agentId,agentHandle:b.agentHandle},c);let e={model:b.model,orgId:b.orgId,timeoutMs:b.timeoutMs,token:b.token},f="openclaw"===d?await K(a,e):"hermes"===d?await J(a,e):"aider"===d?await M(a,e):"opencode"===d?await N(a,e):"copilot"===d?await O(a,e):"cursor-agent"===d?await P(a,e):"cline"===d?await Q(a,e):"kilocode"===d?await R(a,e):await H(a,e);return c({kind:"done"}),f}},28969:(a,b,c)=>{c.d(b,{IW:()=>i,Kh:()=>k,r6:()=>j});var d=c(77598),e=c(1782),f=c(80280),g=c(25533);function h(){let a=process.env.CONSTELLA_VAULT_KEY;if(!a)throw Error("CONSTELLA_VAULT_KEY is not set");let b=Buffer.from(a,"base64");if(32!==b.length)throw Error("CONSTELLA_VAULT_KEY must decode to 32 bytes");return b}async function i(a,b,c,i){let j=(0,d.randomBytes)(12),k=(0,d.createCipheriv)("aes-256-gcm",h(),j),l=Buffer.concat([k.update(c,"utf8"),k.final()]),m=k.getAuthTag(),n=Buffer.concat([l,m]).toString("base64");await f.db.delete(g.vault).where((0,e.Uo)((0,e.eq)(g.vault.workspaceId,a),(0,e.eq)(g.vault.ref,b))),await f.db.insert(g.vault).values({id:(0,d.randomUUID)(),workspaceId:a,providerId:i,ref:b,ciphertext:n,iv:j.toString("base64")})}async function j(a,b){let[c]=await f.db.select().from(g.vault).where((0,e.Uo)((0,e.eq)(g.vault.workspaceId,a),(0,e.eq)(g.vault.ref,b)));if(!c)return null;let i=Buffer.from(c.ciphertext,"base64"),j=i.subarray(i.length-16),k=i.subarray(0,i.length-16),l=(0,d.createDecipheriv)("aes-256-gcm",h(),Buffer.from(c.iv,"base64"));return l.setAuthTag(j),Buffer.concat([l.update(k),l.final()]).toString("utf8")}async function k(a,b){await f.db.delete(g.vault).where((0,e.Uo)((0,e.eq)(g.vault.workspaceId,a),(0,e.eq)(g.vault.ref,b)))}},54033:(a,b,c)=>{c.d(b,{TC:()=>k,W_:()=>i,vE:()=>h,vG:()=>j});var d=c(77598),e=c(1782),f=c(80280),g=c(25533);async function h(a,b){try{if(b.refType&&b.refId){let[c]=await f.db.select({id:g.inboxItem.id}).from(g.inboxItem).where((0,e.Uo)((0,e.eq)(g.inboxItem.workspaceId,a),(0,e.eq)(g.inboxItem.refType,b.refType),(0,e.eq)(g.inboxItem.refId,b.refId),(0,e.eq)(g.inboxItem.resolved,!1)));if(c)return void await f.db.update(g.inboxItem).set({title:b.title,detail:b.detail??"",goalId:b.goalId??null,channel:b.channel??null,messageId:b.messageId??null,createdAt:new Date}).where((0,e.eq)(g.inboxItem.id,c.id))}await f.db.insert(g.inboxItem).values({id:(0,d.randomUUID)(),workspaceId:a,kind:b.kind,title:b.title,detail:b.detail??"",fromAgentId:b.fromAgentId??null,resolved:!1,refType:b.refType??null,refId:b.refId??null,goalId:b.goalId??null,channel:b.channel??null,messageId:b.messageId??null})}catch(a){console.error("[inbox] pushInbox failed:",a)}}async function i(a,b,c){try{await f.db.update(g.inboxItem).set({resolved:!0}).where((0,e.Uo)((0,e.eq)(g.inboxItem.workspaceId,a),(0,e.eq)(g.inboxItem.refType,b),(0,e.eq)(g.inboxItem.refId,c),(0,e.eq)(g.inboxItem.resolved,!1)))}catch(a){console.error("[inbox] resolveInboxFor failed:",a)}}async function j(a,b){try{await f.db.update(g.inboxItem).set({resolved:!0}).where((0,e.Uo)((0,e.eq)(g.inboxItem.workspaceId,a),(0,e.RV)(g.inboxItem.refType,b),(0,e.eq)(g.inboxItem.resolved,!1)))}catch(a){console.error("[inbox] resolveInboxRefTypes failed:",a)}}async function k(a,b){try{await f.db.update(g.inboxItem).set({resolved:!0}).where((0,e.Uo)((0,e.eq)(g.inboxItem.workspaceId,a),(0,e.eq)(g.inboxItem.goalId,b),(0,e.eq)(g.inboxItem.resolved,!1)))}catch(a){console.error("[inbox] resolveInboxForGoal failed:",a)}}},78874:(a,b,c)=>{c.d(b,{A3:()=>i,G3:()=>k,J4:()=>o,S3:()=>p,SD:()=>j,_9:()=>g,bT:()=>n,sK:()=>l,vH:()=>m});var d=c(28969);function e(a){return/^\d{6,}:[A-Za-z0-9_-]{30,}$/.test(a)}let f="https://api.telegram.org";async function g(a){let b=await (0,d.r6)(a,"telegram_bot");if(!b)return null;try{let a=JSON.parse(b);if(a.botToken&&a.chatId&&e(a.botToken))return a}catch{}return null}let h=[{command:"help",description:"Show the remote-control commands"},{command:"status",description:"Quick project status"},{command:"review",description:"Plan / issues / tasks summary"},{command:"tasks",description:"What's in flight right now"},{command:"approve",description:"Approve the pending plan"},{command:"start_execution",description:"Approve + run 24/7"},{command:"pause",description:"Pause 24/7 execution"},{command:"resume",description:"Resume 24/7 execution"},{command:"reject",description:"Send the plan back to the CEO"},{command:"new",description:"Start new work — describe it"},{command:"cancel",description:"Cancel the active goal"},{command:"archive",description:"Archive the active goal"},{command:"kb",description:"Ask the Knowledge Base"}];async function i(a,b=h){if(!e(a))return!1;try{let c=await fetch(`${f}/bot${a}/setMyCommands`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({commands:b}),signal:AbortSignal.timeout(8e3)});return!!(await c.json()).ok}catch{return!1}}async function j(a,b){if(!e(a))return[];try{let c=await fetch(`${f}/bot${a}/getUpdates?offset=${b}&timeout=25&allowed_updates=${encodeURIComponent('["message","callback_query"]')}`,{signal:AbortSignal.timeout(3e4)}),d=await c.json();return d.ok?d.result:[]}catch{return[]}}async function k(a,b){if(!e(a))return null;try{let c=await fetch(`${f}/bot${a}/getFile?file_id=${encodeURIComponent(b)}`,{signal:AbortSignal.timeout(1e4)}),d=await c.json(),e=d.result?.file_path;if(!e)return null;let g=await fetch(`${f}/file/bot${a}/${e}`,{signal:AbortSignal.timeout(3e4)});if(!g.ok)return null;return{buf:Buffer.from(await g.arrayBuffer()),ext:(e.match(/\.([a-z0-9]+)$/i)?.[1]??"bin").toLowerCase()}}catch{return null}}async function l(a,b,c="typing"){if(e(a))try{await fetch(`${f}/bot${a}/sendChatAction`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({chat_id:b,action:c}),signal:AbortSignal.timeout(8e3)})}catch{}}async function m(a,b,c){if(!e(a))return!1;try{return(await fetch(`${f}/bot${a}/sendMessage`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({chat_id:b,text:c.slice(0,3800),disable_web_page_preview:!0})})).ok}catch{return!1}}async function n(a,b,c,d){if(!e(a))return{ok:!1};try{let e=await fetch(`${f}/bot${a}/sendMessage`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({chat_id:b,text:c.slice(0,3500),disable_web_page_preview:!0,reply_markup:{inline_keyboard:d.map(a=>a.map(a=>({text:a.text,callback_data:a.data.slice(0,64)})))}}),signal:AbortSignal.timeout(12e3)});if(!e.ok)return{ok:!1};let g=await e.json().catch(()=>({}));return{ok:!!g.ok,messageId:g.result?.message_id}}catch{return{ok:!1}}}async function o(a,b,c){if(e(a))try{await fetch(`${f}/bot${a}/answerCallbackQuery`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({callback_query_id:b,...c?{text:c.slice(0,200)}:{}}),signal:AbortSignal.timeout(8e3)})}catch{}}async function p(a,b,c){if(e(a))try{await fetch(`${f}/bot${a}/editMessageReplyMarkup`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({chat_id:b,message_id:c,reply_markup:{inline_keyboard:[]}}),signal:AbortSignal.timeout(8e3)})}catch{}}},90860:(a,b,c)=>{c.d(b,{I:()=>k});var d=c(77598),e=c(1782),f=c(80280),g=c(25533),h=c(78874);let i=new Set(["escalation","approval","needs-approval","block","blocked","security","deploy","error","alert","review","report","warn","warning","design-approval","design-pending","design-review"]);async function j(a,b){try{let c=b.kind??"info";if(!(!0===b.tg||!1!==b.tg&&i.has(c)))return;let[d]=await f.db.select({orgId:g.workspace.orgId}).from(g.workspace).where((0,e.eq)(g.workspace.id,a));if(!d)return;let[j]=await f.db.select({ownerId:g.organization.ownerId}).from(g.organization).where((0,e.eq)(g.organization.id,d.orgId));if(!j)return;let[k]=await f.db.select().from(g.notificationPref).where((0,e.eq)(g.notificationPref.userId,j.ownerId));if(k&&!1===k.telegram)return;let l=await (0,h._9)(a);if(!l)return;let m=c.replace(/[-_]/g," ").toUpperCase(),n=`🔔 ${m}
|
|
1
|
+
"use strict";exports.id=9969,exports.ids=[9969],exports.modules={3188:(a,b,c)=>{c.d(b,{$g:()=>U,Hs:()=>r,JN:()=>Z,KD:()=>C,Kp:()=>V,Pe:()=>o,UC:()=>u,ZB:()=>S,d1:()=>T,hW:()=>X,p1:()=>ab,qX:()=>Y,w5:()=>W});var d=c(31421),e=c(73024),f=c(48161),g=c(76760),h=c(18612);let i="win32"===process.platform,j=process.env.CONSTELLA_RUN_MODE??"start",k=null!=process.env.CONSTELLA_AGENT_FULL_ACCESS?"0"!==process.env.CONSTELLA_AGENT_FULL_ACCESS:"start"===j;function l(){return k?["--permission-mode","bypassPermissions"]:["--permission-mode","acceptEdits"]}let m=null,n=null;function o(a){n=a}function p(){return n??"1"===process.env.CONSTELLA_AGENT_LOCK_HOOK}let q=null;function r(a){q=a}function s(){return q??"1"===process.env.CONSTELLA_AGENT_CMD_GUARD}let t=null;function u(a){t=a}function v(){try{let a=(0,g.join)((0,h.r$)(),".agent-claude");(0,e.mkdirSync)(a,{recursive:!0});let b=(0,g.join)((0,f.homedir)(),".claude",".credentials.json");if(!(0,e.existsSync)(b))return null;(0,e.copyFileSync)(b,(0,g.join)(a,".credentials.json"));let c=(0,g.join)((0,f.homedir)(),".claude.json");if((0,e.existsSync)(c))try{(0,e.copyFileSync)(c,(0,g.join)(a,".claude.json"))}catch{}let d=process.env.CONSTELLA_PKG_ROOT||process.cwd(),i=[];return p()&&i.push({matcher:"Write|Edit|MultiEdit|NotebookEdit",hooks:[{type:"command",command:`node "${(0,g.join)(d,"bin","lock-hook.mjs")}"`}]}),s()&&i.push({matcher:"Bash",hooks:[{type:"command",command:`node "${(0,g.join)(d,"bin","guard-hook.mjs")}"`}]}),(0,e.writeFileSync)((0,g.join)(a,"settings.json"),JSON.stringify({hooks:{PreToolUse:i}}),"utf8"),a}catch{return null}}function w(a){if((p()||s())&&a)return[];if(null===m)try{let a=(0,g.join)((0,f.tmpdir)(),"constella-agent-settings.json");(0,e.writeFileSync)(a,JSON.stringify({disableAllHooks:!0}),"utf8"),m=a}catch{m=""}return m?["--settings",m]:[]}function x(a,b){return(p()||s())&&b?{...process.env,CLAUDE_CONFIG_DIR:b,CONSTELLA_ORG_ID:a.orgId,CONSTELLA_TASK_ID:a.token||"",CONSTELLA_AGENT_ID:a.agentId||"",CONSTELLA_AGENT_HANDLE:a.agentHandle||"",CONSTELLA_BASE_URL:process.env.CONSTELLA_BASE_URL||"http://127.0.0.1:3000"}:process.env}function y(a){if(a)return/^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$/.test(a)?a:void 0}function z(a){if(a&&"(default)"!==a)return/^[A-Za-z0-9][A-Za-z0-9._:/-]{0,79}$/.test(a)?a:void 0}let A=new Map,B=new Set;function C(a){B.add(a);let b=A.get(a);if(!b)return!1;A.delete(a);try{return b.kill("SIGKILL"),!0}catch{return!1}}function D(a,b){if(a){if(B.has(a)){B.delete(a);try{b.kill("SIGKILL")}catch{}return}A.set(a,b)}}function E(a){a&&(A.delete(a),B.delete(a))}function F(a,b,c,e,f,g,h,j=i){return new Promise(i=>{let k=Date.now(),l=(0,d.spawn)(a,b,{cwd:e,shell:j,windowsHide:!0,env:g??process.env});D(h,l);let m="",n="",o=!1,p=setTimeout(()=>{o=!0;try{l.kill("SIGKILL")}catch{}},f);if(l.stdout.on("data",a=>m+=a.toString()),l.stderr.on("data",a=>n+=a.toString()),l.on("error",a=>{clearTimeout(p),E(h),i({code:-1,stdout:m,stderr:n+String(a),durationMs:Date.now()-k,timedOut:o})}),l.on("close",a=>{clearTimeout(p),E(h),i({code:a,stdout:m,stderr:n,durationMs:Date.now()-k,timedOut:o})}),l.stdin.on("error",()=>{}),c)try{l.stdin.write(c)}catch{}try{l.stdin.end()}catch{}})}async function G(a,b){let c=(0,h.HZ)(b.orgId);(0,e.mkdirSync)(c,{recursive:!0});let d=y(b.model),f=p()||s()?v():null,g=["-p","--output-format","json",...w(f),...l()];d&&g.push("--model",d);let i=await F("claude",g,a,c,b.timeoutMs??18e4,x(b,f),b.token);if(i.timedOut)return I("claude",b.model,i.durationMs,"timed out");let j=null;try{j=JSON.parse(i.stdout.trim())}catch{let a=i.stdout.split("\n").reverse().find(a=>a.includes('"type":"result"'));if(a)try{j=JSON.parse(a)}catch{}}if(!j)return I("claude",b.model,i.durationMs,i.stderr.slice(-300)||"no JSON output (code "+i.code+")");let k=j.usage??{};return{ok:!0!==j.is_error&&"success"===j.subtype,text:String(j.result??""),usd:Number(j.total_cost_usd??0),inputTokens:Number(k.input_tokens??0)+Number(k.cache_read_input_tokens??0)+Number(k.cache_creation_input_tokens??0),outputTokens:Number(k.output_tokens??0),durationMs:i.durationMs,binary:"claude",model:b.model,error:!0===j.is_error?String(j.result??"error"):void 0}}async function H(a,b){let c=(0,h.HZ)(b.orgId);(0,e.mkdirSync)(c,{recursive:!0});let d=y(b.model),f=["exec","--json","--skip-git-repo-check","-s",k?"danger-full-access":"workspace-write"];d&&f.push("-m",d);let g=await F("codex",f,a,c,b.timeoutMs??18e4,void 0,b.token);if(g.timedOut)return I("codex",b.model,g.durationMs,"timed out");let i="",j=0,l=0,m=0;for(let a of g.stdout.split("\n")){let b=a.trim();if(b.startsWith("{"))try{let a=JSON.parse(b),c=a.item??a.msg??{};"string"==typeof c.text&&c.text&&(i=c.text),"string"==typeof a.text&&(i=a.text);let d=a.usage??a.token_usage??c.usage??{};d.input_tokens&&(j=Number(d.input_tokens)),d.output_tokens&&(l=Number(d.output_tokens)),"number"==typeof a.cost_usd&&(m=a.cost_usd)}catch{}}return{ok:0===g.code,text:i,usd:m,inputTokens:j,outputTokens:l,durationMs:g.durationMs,binary:"codex",model:b.model,error:0===g.code?void 0:g.stderr.slice(-300)||"codex exit "+g.code}}function I(a,b,c,d){return{ok:!1,text:"",usd:0,inputTokens:0,outputTokens:0,durationMs:c,binary:a,model:b,error:d}}async function J(a,b){let c=(0,h.HZ)(b.orgId);(0,e.mkdirSync)(c,{recursive:!0});let d=z(b.model),f=["-z",a];if(d){let a=d.indexOf("/");a>0?f.push("--provider",d.slice(0,a),"--model",d.slice(a+1)):f.push("--model",d)}let g=await F("hermes",f,"",c,b.timeoutMs??18e4,void 0,b.token);if(g.timedOut)return I("hermes",b.model,g.durationMs,"timed out");let i=(g.stdout||"").trim();return{ok:0===g.code&&!!i,text:i,usd:0,inputTokens:0,outputTokens:0,durationMs:g.durationMs,binary:"hermes",model:b.model,error:0===g.code?void 0:g.stderr.slice(-300)||"hermes exit "+g.code}}async function K(a,b){let c=(0,h.HZ)(b.orgId);(0,e.mkdirSync)(c,{recursive:!0});let d=z(b.model),f=["infer","model","run","--prompt",a,"--json"];d&&f.push("--model",d);let g=await F("openclaw",f,"",c,b.timeoutMs??18e4,void 0,b.token);if(g.timedOut)return I("openclaw",b.model,g.durationMs,"timed out");let i="",j=0===g.code,k;try{var l;let a=JSON.parse(g.stdout.trim());j=!1!==a.ok&&0===g.code,i=(l=a.outputs)?"string"==typeof l?l:Array.isArray(l)?l.map(a=>"string"==typeof a?a:a&&"object"==typeof a?String(a.text??a.content??a.output??a.message??""):"").filter(Boolean).join("\n"):"object"==typeof l?String(l.text??l.content??""):"":"",a.error&&(k=String(a.error?.message??a.error))}catch{i=g.stdout.trim(),0!==g.code&&(j=!1,k=g.stderr.slice(-300)||"openclaw exit "+g.code)}return i||k||(k=g.stderr.slice(-300)||"no output (code "+g.code+")"),{ok:j&&!!i,text:i,usd:0,inputTokens:0,outputTokens:0,durationMs:g.durationMs,binary:"openclaw",model:b.model,error:k}}async function L(a,b,c){let d=(0,h.HZ)(c.orgId);(0,e.mkdirSync)(d,{recursive:!0});let f=await F(a,b,"",d,c.timeoutMs??18e4,void 0,c.token);if(f.timedOut)return I(a,c.model,f.durationMs,"timed out");let g=function(a){let b=a.trim();if(!b)return"";if(b.startsWith("{")||b.startsWith("["))try{let a=JSON.parse(b),c=a.result??a.text??a.response??a.content??a.message??a.output;if("string"==typeof c&&c)return c;if(c&&"object"==typeof c){let a=c.text??c.content;if("string"==typeof a)return a}}catch{}return b}(f.stdout),i=0===f.code?g?void 0:f.stderr.slice(-300)||"no output (code "+f.code+")":f.stderr.slice(-300)||`${a} exit ${f.code}`;return{ok:0===f.code&&!!g,text:g,usd:0,inputTokens:0,outputTokens:0,durationMs:f.durationMs,binary:a,model:c.model,error:i}}async function M(a,b){let c=z(b.model),d=["--message",a,"--yes-always","--no-auto-commits","--no-stream"];return c&&d.push("--model",c),L("aider",d,b)}async function N(a,b){let c=z(b.model),d=["run",a];return c&&d.push("--model",c),L("opencode",d,b)}async function O(a,b){let c=z(b.model),d=["-p",a,"--allow-all-tools"];return c&&d.push("--model",c),L("copilot",d,b)}async function P(a,b){let c=z(b.model),d=["-p",a,"--output-format","json"];return c&&d.push("--model",c),L("cursor-agent",d,{...b,timeoutMs:b.timeoutMs??15e4})}async function Q(a,b){let c=z(b.model),d=["--json","-y",a];return c&&d.push("--model",c),L("cline",d,b)}async function R(a,b){let c=z(b.model),d=["--yes",a];return c&&d.push("--model",c),L("kilocode",d,b)}async function S(a){try{if("opencode"===a){let a=await F("opencode",["models"],"",process.cwd(),2e4);if(0!==a.code)return[];return a.stdout.split("\n").map(a=>a.trim()).filter(a=>/^[\w.-]+\/[\w./:-]+$/.test(a)).slice(0,200)}if("aider"===a){let a=await F("aider",["--list-models","/"],"",process.cwd(),25e3);if(0!==a.code)return[];return a.stdout.split("\n").map(a=>a.replace(/^[-*\s]+/,"").trim()).filter(a=>/^[\w.-]+\/[\w./:-]+$/.test(a)).slice(0,200)}}catch{}return[]}async function T(a,b,c){return F(a,b,c.input??"",c.cwd,c.timeoutMs??6e4,c.env?{...process.env,...c.env}:void 0,void 0,!1)}async function U(a){let b=await F(a,["--version"],"",process.cwd(),15e3);return -1===b.code?null:(b.stdout||b.stderr).trim().split("\n")[0]||"ok"}async function V(a){let b=(0,f.homedir)(),c=(...a)=>a.some(a=>(0,e.existsSync)((0,g.join)(b,a)));try{switch(a){case"claude":return c(".claude/.credentials.json",".claude.json",".config/claude")?"ready":"needs_login";case"codex":return c(".codex/auth.json",".codex")?"ready":"needs_login";case"aider":return process.env.OPENAI_API_KEY||process.env.ANTHROPIC_API_KEY||process.env.DEEPSEEK_API_KEY||process.env.GEMINI_API_KEY||process.env.OPENROUTER_API_KEY||process.env.GROQ_API_KEY?"ready":"needs_login";case"opencode":{let a=await F("opencode",["auth","list"],"",process.cwd(),8e3);if(0===a.code&&/\w/.test(a.stdout)&&!/\b(no|none|not)\b.*(auth|provider|credential|logged)/i.test(a.stdout))return"ready";return c(".local/share/opencode/auth.json",".config/opencode")?"ready":"needs_login"}case"copilot":return c(".config/github-copilot/apps.json",".config/github-copilot",".copilot")?"ready":"needs_login";case"cursor-agent":return c(".config/cursor-agent",".cursor-agent",".cursor")?"ready":"needs_login";case"openclaw":return c(".openclaw",".config/openclaw")?"ready":"unknown";case"hermes":return c(".hermes",".config/hermes")?"ready":"unknown";case"cline":return c(".cline",".config/cline")?"ready":"unknown";case"kilocode":return c(".kilocode",".config/kilocode")?"ready":"unknown"}}catch{}return"unknown"}let W={cli_claude_code:["opus","sonnet","haiku"],cli_codex:["gpt-5-codex","o4-mini"],cli_openclaw:["(default)","openai/gpt-5.4","anthropic/claude-sonnet-4"],cli_hermes:["(default)","anthropic/claude-sonnet-4.6","openai/gpt-5.5"],cli_aider:["(default)","anthropic/claude-sonnet-4-6","openai/gpt-5.2","deepseek/deepseek-chat"],cli_opencode:["(default)","anthropic/claude-sonnet-4-6","openai/gpt-5.2"],cli_copilot:["(default)","claude-sonnet-4.5","gpt-5"],cli_cursor:["(default)","claude-4.5-sonnet","gpt-5"],cli_cline:["(default)"],cli_kilo:["(default)"]};function X(a,b){if("cli_codex"===a||"cli_codex_cli"===a)return"codex";if("cli_openclaw"===a)return"openclaw";if("cli_hermes"===a)return"hermes";if("cli_aider"===a)return"aider";if("cli_opencode"===a)return"opencode";if("cli_copilot"===a||"cli_copilot_cli"===a)return"copilot";if("cli_cursor"===a||"cli_cursor_cli"===a)return"cursor-agent";if("cli_cline"===a||"cli_cline_cli"===a)return"cline";if("cli_kilo"===a||"cli_kilo_code"===a)return"kilocode";if("cli_claude_code"===a)return"claude";let c=(b??"").toLowerCase();return c.startsWith("codex")||c.startsWith("gpt")||c.startsWith("o1")||c.startsWith("o3")||c.startsWith("o4")?"codex":"claude"}function Y(a){let b=X(a);return"claude"===b?"opus":"codex"!==b?(W[a??""]??[]).find(a=>"(default)"!==a):void 0}async function Z(a,b){let c=b.binary??"claude",d={model:b.model,orgId:b.orgId,timeoutMs:b.timeoutMs,token:b.token,agentId:b.agentId,agentHandle:b.agentHandle};return"codex"===c?H(a,d):"openclaw"===c?K(a,d):"hermes"===c?J(a,d):"aider"===c?M(a,d):"opencode"===c?N(a,d):"copilot"===c?O(a,d):"cursor-agent"===c?P(a,d):"cline"===c?Q(a,d):"kilocode"===c?R(a,d):G(a,d)}async function $(a,b,c){let f=(0,h.HZ)(b.orgId);(0,e.mkdirSync)(f,{recursive:!0});let g=y(b.model),j=p()||s()?v():null,k=["-p","--output-format","stream-json","--include-partial-messages","--verbose",...w(j),...l(),...t??"0"!==process.env.CONSTELLA_WEB_RESEARCH?["--allowedTools","WebSearch","WebFetch"]:[]];return g&&k.push("--model",g),new Promise(e=>{let g=Date.now(),h=(0,d.spawn)("claude",k,{cwd:f,shell:i,windowsHide:!0,env:x(b,j)});D(b.token,h);let l="",m="",n=0,o=0,p=0,q=!1,r,s="",t=0,u=!1,v=()=>{s.length>t&&(c({kind:"text",detail:s.slice(t,t+8e3)}),t=s.length)},w=setTimeout(()=>{try{h.kill("SIGKILL")}catch{}},b.timeoutMs??24e4);h.stdout.on("data",a=>{let b;for(l+=a.toString();(b=l.indexOf("\n"))>=0;){let a=l.slice(0,b).trim();if(l=l.slice(b+1),a.startsWith("{"))try{!function(a){if("stream_event"===a.type){let b=a.event;b?.type==="content_block_start"&&b.content_block?.type==="text"&&s?s+="\n\n":b?.type==="content_block_delta"&&b.delta?.type==="text_delta"&&b.delta.text&&(u=!0,(s+=b.delta.text).length-t>=120&&v())}else if("assistant"===a.type){for(let b of a.message?.content??[])"tool_use"===b.type&&b.name?c(function(a,b){if("Read"===a)return{kind:"read",target:String(b.file_path??"")};if("Write"===a)return{kind:"create",target:String(b.file_path??""),detail:String(b.content??"").slice(0,4e3)};if("Edit"===a||"NotebookEdit"===a){let a=String(b.old_string??"").split("\n"),c=String(b.new_string??"").split("\n"),d=[...a.map(a=>"-"+a),...c.map(a=>"+"+a)].slice(0,80).join("\n");return{kind:"edit",target:String(b.file_path??""),detail:d}}return"Bash"===a||"PowerShell"===a?{kind:"run",target:String(b.command??"").slice(0,200)}:"Glob"===a||"Grep"===a?{kind:"search",target:String(b.pattern??"")}:{kind:"read",target:a}}(b.name,b.input??{})):"text"===b.type&&b.text?(m=b.text,u||c({kind:"text",detail:b.text.slice(0,8e3)})):"thinking"===b.type&&b.thinking&&c({kind:"thinking",detail:b.thinking.slice(0,200)});v()}else if("result"===a.type){q=!0!==a.is_error&&"success"===a.subtype,"string"==typeof a.result&&(m=a.result),n=Number(a.total_cost_usd??0);let b=a.usage??{};o=Number(b.input_tokens??0)+Number(b.cache_read_input_tokens??0)+Number(b.cache_creation_input_tokens??0),p=Number(b.output_tokens??0),a.is_error&&(r=String(a.result??"error"))}}(JSON.parse(a))}catch{}}}),h.on("error",a=>{clearTimeout(w),E(b.token),e(I("claude",b.model,Date.now()-g,String(a)))}),h.on("close",()=>{clearTimeout(w),E(b.token),c({kind:"done"}),e({ok:q,text:m,usd:n,inputTokens:o,outputTokens:p,durationMs:Date.now()-g,binary:"claude",model:b.model,error:r})}),h.stdin.write(a),h.stdin.end()})}let _=[6e4,3e5,9e5],aa=a=>new Promise(b=>setTimeout(b,a));async function ab(a,b,c){let d=null;for(let f=0;f<=_.length;f++){var e;let g=await ac(a,b,c);if(g.ok||!((e=g.error)&&/(\b429\b|overloaded|rate[\s_-]?limit|usage limit|\bquota\b|too many requests|service unavailable|\b50[0-3]\b|\bupstream\b|fetch failed|network error|econnreset|enotfound|etimedout|econnrefused|socket hang up)/i.test(e)))return g;if(d=g,f<_.length){let a=_[f];c({kind:"thinking",target:`Provider limit / network — retrying in ${Math.round(a/6e4)} min (attempt ${f+2}/${_.length+1})…`,detail:(g.error||"").slice(0,160)}),await aa(a)}}return d}async function ac(a,b,c){let d=b.binary??"claude";if("claude"===d)return $(a,{model:b.model,orgId:b.orgId,timeoutMs:b.timeoutMs,token:b.token,agentId:b.agentId,agentHandle:b.agentHandle},c);let e={model:b.model,orgId:b.orgId,timeoutMs:b.timeoutMs,token:b.token},f="openclaw"===d?await K(a,e):"hermes"===d?await J(a,e):"aider"===d?await M(a,e):"opencode"===d?await N(a,e):"copilot"===d?await O(a,e):"cursor-agent"===d?await P(a,e):"cline"===d?await Q(a,e):"kilocode"===d?await R(a,e):await H(a,e);return c({kind:"done"}),f}},28969:(a,b,c)=>{c.d(b,{IW:()=>i,Kh:()=>k,r6:()=>j});var d=c(77598),e=c(1782),f=c(80280),g=c(25533);function h(){let a=process.env.CONSTELLA_VAULT_KEY;if(!a)throw Error("CONSTELLA_VAULT_KEY is not set");let b=Buffer.from(a,"base64");if(32!==b.length)throw Error("CONSTELLA_VAULT_KEY must decode to 32 bytes");return b}async function i(a,b,c,i){let j=(0,d.randomBytes)(12),k=(0,d.createCipheriv)("aes-256-gcm",h(),j),l=Buffer.concat([k.update(c,"utf8"),k.final()]),m=k.getAuthTag(),n=Buffer.concat([l,m]).toString("base64");await f.db.delete(g.vault).where((0,e.Uo)((0,e.eq)(g.vault.workspaceId,a),(0,e.eq)(g.vault.ref,b))),await f.db.insert(g.vault).values({id:(0,d.randomUUID)(),workspaceId:a,providerId:i,ref:b,ciphertext:n,iv:j.toString("base64")})}async function j(a,b){let[c]=await f.db.select().from(g.vault).where((0,e.Uo)((0,e.eq)(g.vault.workspaceId,a),(0,e.eq)(g.vault.ref,b)));if(!c)return null;let i=Buffer.from(c.ciphertext,"base64"),j=i.subarray(i.length-16),k=i.subarray(0,i.length-16),l=(0,d.createDecipheriv)("aes-256-gcm",h(),Buffer.from(c.iv,"base64"));return l.setAuthTag(j),Buffer.concat([l.update(k),l.final()]).toString("utf8")}async function k(a,b){await f.db.delete(g.vault).where((0,e.Uo)((0,e.eq)(g.vault.workspaceId,a),(0,e.eq)(g.vault.ref,b)))}},54033:(a,b,c)=>{c.d(b,{TC:()=>k,W_:()=>i,vE:()=>h,vG:()=>j});var d=c(77598),e=c(1782),f=c(80280),g=c(25533);async function h(a,b){try{if(b.refType&&b.refId){let[c]=await f.db.select({id:g.inboxItem.id}).from(g.inboxItem).where((0,e.Uo)((0,e.eq)(g.inboxItem.workspaceId,a),(0,e.eq)(g.inboxItem.refType,b.refType),(0,e.eq)(g.inboxItem.refId,b.refId),(0,e.eq)(g.inboxItem.resolved,!1)));if(c)return void await f.db.update(g.inboxItem).set({title:b.title,detail:b.detail??"",goalId:b.goalId??null,channel:b.channel??null,messageId:b.messageId??null,createdAt:new Date}).where((0,e.eq)(g.inboxItem.id,c.id))}await f.db.insert(g.inboxItem).values({id:(0,d.randomUUID)(),workspaceId:a,kind:b.kind,title:b.title,detail:b.detail??"",fromAgentId:b.fromAgentId??null,resolved:!1,refType:b.refType??null,refId:b.refId??null,goalId:b.goalId??null,channel:b.channel??null,messageId:b.messageId??null})}catch(a){console.error("[inbox] pushInbox failed:",a)}}async function i(a,b,c){try{await f.db.update(g.inboxItem).set({resolved:!0}).where((0,e.Uo)((0,e.eq)(g.inboxItem.workspaceId,a),(0,e.eq)(g.inboxItem.refType,b),(0,e.eq)(g.inboxItem.refId,c),(0,e.eq)(g.inboxItem.resolved,!1)))}catch(a){console.error("[inbox] resolveInboxFor failed:",a)}}async function j(a,b){try{await f.db.update(g.inboxItem).set({resolved:!0}).where((0,e.Uo)((0,e.eq)(g.inboxItem.workspaceId,a),(0,e.RV)(g.inboxItem.refType,b),(0,e.eq)(g.inboxItem.resolved,!1)))}catch(a){console.error("[inbox] resolveInboxRefTypes failed:",a)}}async function k(a,b){try{await f.db.update(g.inboxItem).set({resolved:!0}).where((0,e.Uo)((0,e.eq)(g.inboxItem.workspaceId,a),(0,e.eq)(g.inboxItem.goalId,b),(0,e.eq)(g.inboxItem.resolved,!1)))}catch(a){console.error("[inbox] resolveInboxForGoal failed:",a)}}},78874:(a,b,c)=>{c.d(b,{A3:()=>i,G3:()=>k,J4:()=>o,S3:()=>p,SD:()=>j,_9:()=>g,bT:()=>n,sK:()=>l,vH:()=>m});var d=c(28969);function e(a){return/^\d{6,}:[A-Za-z0-9_-]{30,}$/.test(a)}let f="https://api.telegram.org";async function g(a){let b=await (0,d.r6)(a,"telegram_bot");if(!b)return null;try{let a=JSON.parse(b);if(a.botToken&&a.chatId&&e(a.botToken))return a}catch{}return null}let h=[{command:"help",description:"Show the remote-control commands"},{command:"status",description:"Quick project status"},{command:"review",description:"Plan / issues / tasks summary"},{command:"tasks",description:"What's in flight right now"},{command:"approve",description:"Approve the pending plan"},{command:"start_execution",description:"Approve + run 24/7"},{command:"pause",description:"Pause 24/7 execution"},{command:"resume",description:"Resume 24/7 execution"},{command:"reject",description:"Send the plan back to the CEO"},{command:"new",description:"Start new work — describe it"},{command:"cancel",description:"Cancel the active goal"},{command:"archive",description:"Archive the active goal"},{command:"kb",description:"Ask the Knowledge Base"}];async function i(a,b=h){if(!e(a))return!1;try{let c=await fetch(`${f}/bot${a}/setMyCommands`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({commands:b}),signal:AbortSignal.timeout(8e3)});return!!(await c.json()).ok}catch{return!1}}async function j(a,b){if(!e(a))return[];try{let c=await fetch(`${f}/bot${a}/getUpdates?offset=${b}&timeout=25&allowed_updates=${encodeURIComponent('["message","callback_query"]')}`,{signal:AbortSignal.timeout(3e4)}),d=await c.json();return d.ok?d.result:[]}catch{return[]}}async function k(a,b){if(!e(a))return null;try{let c=await fetch(`${f}/bot${a}/getFile?file_id=${encodeURIComponent(b)}`,{signal:AbortSignal.timeout(1e4)}),d=await c.json(),e=d.result?.file_path;if(!e)return null;let g=await fetch(`${f}/file/bot${a}/${e}`,{signal:AbortSignal.timeout(3e4)});if(!g.ok)return null;return{buf:Buffer.from(await g.arrayBuffer()),ext:(e.match(/\.([a-z0-9]+)$/i)?.[1]??"bin").toLowerCase()}}catch{return null}}async function l(a,b,c="typing"){if(e(a))try{await fetch(`${f}/bot${a}/sendChatAction`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({chat_id:b,action:c}),signal:AbortSignal.timeout(8e3)})}catch{}}async function m(a,b,c){if(!e(a))return!1;try{return(await fetch(`${f}/bot${a}/sendMessage`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({chat_id:b,text:c.slice(0,3800),disable_web_page_preview:!0})})).ok}catch{return!1}}async function n(a,b,c,d){if(!e(a))return{ok:!1};try{let e=await fetch(`${f}/bot${a}/sendMessage`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({chat_id:b,text:c.slice(0,3500),disable_web_page_preview:!0,reply_markup:{inline_keyboard:d.map(a=>a.map(a=>({text:a.text,callback_data:a.data.slice(0,64)})))}}),signal:AbortSignal.timeout(12e3)});if(!e.ok)return{ok:!1};let g=await e.json().catch(()=>({}));return{ok:!!g.ok,messageId:g.result?.message_id}}catch{return{ok:!1}}}async function o(a,b,c){if(e(a))try{await fetch(`${f}/bot${a}/answerCallbackQuery`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({callback_query_id:b,...c?{text:c.slice(0,200)}:{}}),signal:AbortSignal.timeout(8e3)})}catch{}}async function p(a,b,c){if(e(a))try{await fetch(`${f}/bot${a}/editMessageReplyMarkup`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({chat_id:b,message_id:c,reply_markup:{inline_keyboard:[]}}),signal:AbortSignal.timeout(8e3)})}catch{}}},90860:(a,b,c)=>{c.d(b,{I:()=>k});var d=c(77598),e=c(1782),f=c(80280),g=c(25533),h=c(78874);let i=new Set(["escalation","approval","needs-approval","block","blocked","security","deploy","error","alert","review","report","warn","warning","design-approval","design-pending","design-review"]);async function j(a,b){try{let c=b.kind??"info";if(!(!0===b.tg||!1!==b.tg&&i.has(c)))return;let[d]=await f.db.select({orgId:g.workspace.orgId}).from(g.workspace).where((0,e.eq)(g.workspace.id,a));if(!d)return;let[j]=await f.db.select({ownerId:g.organization.ownerId}).from(g.organization).where((0,e.eq)(g.organization.id,d.orgId));if(!j)return;let[k]=await f.db.select().from(g.notificationPref).where((0,e.eq)(g.notificationPref.userId,j.ownerId));if(k&&!1===k.telegram)return;let l=await (0,h._9)(a);if(!l)return;let m=c.replace(/[-_]/g," ").toUpperCase(),n=`🔔 ${m}
|
|
2
2
|
${b.text}${b.detail?`
|
|
3
3
|
${b.detail}`:""}`.slice(0,3400);await (0,h.bT)(l.botToken,l.chatId,n,"approval"===c||"needs-approval"===c?[[{text:"✅ Approve",data:"approve_plan"},{text:"▶️ Start execution",data:"start_exec"}],[{text:"\uD83D\uDCDD Review",data:"review"},{text:"↩️ Reject",data:"reject_plan"}]]:"design-approval"===c?[[{text:"✅ Approve & send to execution",data:"approve_design"}],[{text:"\uD83D\uDCDD Review",data:"review_design"},{text:"↩️ Request changes",data:"reject_design"}]]:"design-pending"===c||"design-review"===c?[[{text:"\uD83D\uDCDD Review design",data:"review_design"},{text:"\uD83D\uDCCA Status",data:"status"}]]:[[{text:"\uD83D\uDCDD Review",data:"review"},{text:"\uD83D\uDCCA Status",data:"status"}]])}catch{}}async function k(a,b){await f.db.insert(g.notification).values({id:(0,d.randomUUID)(),workspaceId:a,kind:b.kind??"info",text:b.text,detail:b.detail??"",agentId:b.agentId??null,messageId:b.messageId??null,channel:b.channel??""}),await j(a,b)}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=6183,a.ids=[6183],a.modules={3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11703:(a,b,c)=>{async function d(){let{default:a}=await Promise.resolve().then(c.t.bind(c,78474,23));a.defaultMaxListeners=64;let b=globalThis;if(!b.__constellaLogScrub){b.__constellaLogScrub=!0;let{redactForLog:a}=await c.e(7912).then(c.bind(c,27912));for(let b of["log","info","warn","error","debug"]){let c=console[b].bind(console);console[b]=(...b)=>c(...b.map(b=>"string"==typeof b?a(b):b))}}let{reconcileOnBoot:d}=await c.e(1249).then(c.bind(c,21249));await d()}c.r(b),c.d(b,{register:()=>d})},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},46466:a=>{a.exports=require("node:stream/promises")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},57075:a=>{a.exports=require("node:stream")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},74075:a=>{a.exports=require("zlib")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("./webpack-runtime.js");b.C(a);var c=b(b.s=11703);module.exports=c})();
|
|
1
|
+
"use strict";(()=>{var a={};a.id=6183,a.ids=[6183],a.modules={3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11703:(a,b,c)=>{async function d(){let{default:a}=await Promise.resolve().then(c.t.bind(c,78474,23));a.defaultMaxListeners=64;let b=globalThis;if(!b.__constellaLogScrub){b.__constellaLogScrub=!0;let{redactForLog:a}=await c.e(7912).then(c.bind(c,27912));for(let b of["log","info","warn","error","debug"]){let c=console[b].bind(console);console[b]=(...b)=>c(...b.map(b=>"string"==typeof b?a(b):b))}}let{reconcileOnBoot:d}=await c.e(1249).then(c.bind(c,21249));await d()}c.r(b),c.d(b,{register:()=>d})},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},37067:a=>{a.exports=require("node:http")},38522:a=>{a.exports=require("node:zlib")},46466:a=>{a.exports=require("node:stream/promises")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},57075:a=>{a.exports=require("node:stream")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},74075:a=>{a.exports=require("zlib")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("./webpack-runtime.js");b.C(a);var c=b(b.s=11703);module.exports=c})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/
|
|
1
|
+
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/Mx3bcAGWI83SQ6PqC4kYX/_buildManifest.js","static/Mx3bcAGWI83SQ6PqC4kYX/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-222e3894b78c67db.js","static/chunks/23550918-ff694f70f4b0648c.js","static/chunks/6834-4759af1ce7d95fb6.js","static/chunks/main-app-761880af2b6f1962.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-222e3894b78c67db.js"/><script src="/_next/static/chunks/23550918-ff694f70f4b0648c.js" async=""></script><script src="/_next/static/chunks/6834-4759af1ce7d95fb6.js" async=""></script><script src="/_next/static/chunks/main-app-761880af2b6f1962.js" async=""></script><script src="/_next/static/chunks/3219-
|
|
1
|
+
<!DOCTYPE html><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-222e3894b78c67db.js"/><script src="/_next/static/chunks/23550918-ff694f70f4b0648c.js" async=""></script><script src="/_next/static/chunks/6834-4759af1ce7d95fb6.js" async=""></script><script src="/_next/static/chunks/main-app-761880af2b6f1962.js" async=""></script><script src="/_next/static/chunks/3219-92e75397858f3f1f.js" async=""></script><script src="/_next/static/chunks/app/error-09899a13c38b6e89.js" async=""></script><script src="/_next/static/chunks/app/global-error-c2ea8fef715f226d.js" async=""></script><title>500: This page couldn’t load</title><style>:root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }</style><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;display:flex;align-items:center;justify-content:center"><div style="margin-top:-32px;max-width:325px;padding:32px 28px;text-align:left"><svg width="32" height="32" viewBox="-0.2 -1.5 32 32" fill="none" style="margin-bottom:24px"><path d="M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z" fill="var(--next-error-title)"></path></svg><h1 style="font-size:24px;font-weight:500;letter-spacing:-0.02em;line-height:32px;margin:0 0 12px 0;color:var(--next-error-title)">This page couldn’t load</h1><p style="font-size:14px;font-weight:400;line-height:21px;margin:0 0 20px 0;color:var(--next-error-message)">A server error occurred. Reload to try again.</p><form style="margin:0"><button type="submit" style="display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;font-size:14px;font-weight:500;line-height:20px;border-radius:6px;cursor:pointer;color:var(--next-error-btn-text);background:var(--next-error-btn-bg);border:var(--next-error-btn-border)">Reload</button></form></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-222e3894b78c67db.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[8926,[],\"\"]\n3:I[5419,[\"3219\",\"static/chunks/3219-92e75397858f3f1f.js\",\"8039\",\"static/chunks/app/error-09899a13c38b6e89.js\"],\"default\"]\n4:I[5524,[],\"\"]\n5:I[4135,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n9:I[4135,[],\"ViewportBoundary\"]\nb:I[4135,[],\"MetadataBoundary\"]\nd:I[6279,[\"3219\",\"static/chunks/3219-92e75397858f3f1f.js\",\"4219\",\"static/chunks/app/global-error-c2ea8fef715f226d.js\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$3\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"title\",null,{\"children\":\"500: This page couldn’t load\"}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }\"}}]]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"-32px\",\"maxWidth\":\"325px\",\"padding\":\"32px 28px\",\"textAlign\":\"left\"},\"children\":[[\"$\",\"svg\",null,{\"width\":\"32\",\"height\":\"32\",\"viewBox\":\"-0.2 -1.5 32 32\",\"fill\":\"none\",\"style\":{\"marginBottom\":\"24px\"},\"children\":[\"$\",\"path\",null,{\"d\":\"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z\",\"fill\":\"var(--next-error-title)\"}]}],[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"24px\",\"fontWeight\":500,\"letterSpacing\":\"-0.02em\",\"lineHeight\":\"32px\",\"margin\":\"0 0 12px 0\",\"color\":\"var(--next-error-title)\"},\"children\":\"This page couldn’t load\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":\"14px\",\"fontWeight\":400,\"lineHeight\":\"21px\",\"margin\":\"0 0 20px 0\",\"color\":\"var(--next-error-message)\"},\"children\":\"A server error occurred. Reload to try again.\"}],[\"$\",\"form\",null,{\"style\":{\"margin\":0},\"children\":[\"$\",\"button\",null,{\"type\":\"submit\",\"style\":{\"display\":\"inline-flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"height\":\"32px\",\"padding\":\"0 12px\",\"fontSize\":\"14px\",\"fontWeight\":500,\"lineHeight\":\"20px\",\"borderRadius\":\"6px\",\"cursor\":\"pointer\",\"color\":\"var(--next-error-btn-text)\",\"background\":\"var(--next-error-btn-bg)\",\"border\":\"var(--next-error-btn-border)\"},\"children\":\"Reload\"}]}]]}]}]}]]}],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,null]},null,false,\"$@8\"]},null,false,\"$@8\"],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L9\",null,{\"children\":\"$La\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lc\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Mx3bcAGWI83SQ6PqC4kYX\"}\n"])</script><script>self.__next_f.push([1,"e:[]\n8:\"$We\"\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"7:null\nc:[]\n"])</script></body></html>
|