constella 0.1.0
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 -0
- package/.next/app-path-routes-manifest.json +53 -0
- package/.next/build-manifest.json +20 -0
- package/.next/diagnostics/build-diagnostics.json +6 -0
- package/.next/diagnostics/framework.json +1 -0
- package/.next/export-marker.json +6 -0
- package/.next/images-manifest.json +68 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +36 -0
- package/.next/react-loadable-manifest.json +14 -0
- package/.next/required-server-files.js +343 -0
- package/.next/required-server-files.json +343 -0
- package/.next/routes-manifest.json +362 -0
- package/.next/server/app/(app)/activity/page.js +2 -0
- package/.next/server/app/(app)/activity/page.js.nft.json +1 -0
- package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/agents/[handle]/page.js +18 -0
- package/.next/server/app/(app)/agents/[handle]/page.js.nft.json +1 -0
- package/.next/server/app/(app)/agents/[handle]/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/code/page.js +2 -0
- package/.next/server/app/(app)/code/page.js.nft.json +1 -0
- package/.next/server/app/(app)/code/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/config/page.js +2 -0
- package/.next/server/app/(app)/config/page.js.nft.json +1 -0
- package/.next/server/app/(app)/config/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/costs/page.js +2 -0
- package/.next/server/app/(app)/costs/page.js.nft.json +1 -0
- package/.next/server/app/(app)/costs/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/cron/page.js +2 -0
- package/.next/server/app/(app)/cron/page.js.nft.json +1 -0
- package/.next/server/app/(app)/cron/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/dashboard/page.js +2 -0
- package/.next/server/app/(app)/dashboard/page.js.nft.json +1 -0
- package/.next/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/docs/[id]/page.js +2 -0
- package/.next/server/app/(app)/docs/[id]/page.js.nft.json +1 -0
- package/.next/server/app/(app)/docs/[id]/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/docs/page.js +2 -0
- package/.next/server/app/(app)/docs/page.js.nft.json +1 -0
- package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/github/page.js +2 -0
- package/.next/server/app/(app)/github/page.js.nft.json +1 -0
- package/.next/server/app/(app)/github/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/goals/page.js +2 -0
- package/.next/server/app/(app)/goals/page.js.nft.json +1 -0
- package/.next/server/app/(app)/goals/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/inbox/page.js +2 -0
- package/.next/server/app/(app)/inbox/page.js.nft.json +1 -0
- package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/knowledge/page.js +3 -0
- package/.next/server/app/(app)/knowledge/page.js.nft.json +1 -0
- package/.next/server/app/(app)/knowledge/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/models/page.js +2 -0
- package/.next/server/app/(app)/models/page.js.nft.json +1 -0
- package/.next/server/app/(app)/models/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/notifications/page.js +2 -0
- package/.next/server/app/(app)/notifications/page.js.nft.json +1 -0
- package/.next/server/app/(app)/notifications/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/org/page.js +2 -0
- package/.next/server/app/(app)/org/page.js.nft.json +1 -0
- package/.next/server/app/(app)/org/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/organizations/page.js +2 -0
- package/.next/server/app/(app)/organizations/page.js.nft.json +1 -0
- package/.next/server/app/(app)/organizations/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/page.js +3 -0
- package/.next/server/app/(app)/page.js.nft.json +1 -0
- package/.next/server/app/(app)/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/planner/page.js +2 -0
- package/.next/server/app/(app)/planner/page.js.nft.json +1 -0
- package/.next/server/app/(app)/planner/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/plugins/page.js +2 -0
- package/.next/server/app/(app)/plugins/page.js.nft.json +1 -0
- package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/pm/page.js +2 -0
- package/.next/server/app/(app)/pm/page.js.nft.json +1 -0
- package/.next/server/app/(app)/pm/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/prepare-deploy/page.js +19 -0
- package/.next/server/app/(app)/prepare-deploy/page.js.nft.json +1 -0
- package/.next/server/app/(app)/prepare-deploy/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/profile/page.js +2 -0
- package/.next/server/app/(app)/profile/page.js.nft.json +1 -0
- package/.next/server/app/(app)/profile/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/pulse/page.js +2 -0
- package/.next/server/app/(app)/pulse/page.js.nft.json +1 -0
- package/.next/server/app/(app)/pulse/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/reports/[id]/page.js +3 -0
- package/.next/server/app/(app)/reports/[id]/page.js.nft.json +1 -0
- package/.next/server/app/(app)/reports/[id]/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/reports/page.js +5 -0
- package/.next/server/app/(app)/reports/page.js.nft.json +1 -0
- package/.next/server/app/(app)/reports/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/routines/page.js +2 -0
- package/.next/server/app/(app)/routines/page.js.nft.json +1 -0
- package/.next/server/app/(app)/routines/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/search/page.js +2 -0
- package/.next/server/app/(app)/search/page.js.nft.json +1 -0
- package/.next/server/app/(app)/search/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/security/page.js +2 -0
- package/.next/server/app/(app)/security/page.js.nft.json +1 -0
- package/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/skills/page.js +18 -0
- package/.next/server/app/(app)/skills/page.js.nft.json +1 -0
- package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/tasks/page.js +2 -0
- package/.next/server/app/(app)/tasks/page.js.nft.json +1 -0
- package/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/test-dev/page.js +2 -0
- package/.next/server/app/(app)/test-dev/page.js.nft.json +1 -0
- package/.next/server/app/(app)/test-dev/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(app)/update/page.js +2 -0
- package/.next/server/app/(app)/update/page.js.nft.json +1 -0
- package/.next/server/app/(app)/update/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(auth)/login/page.js +2 -0
- package/.next/server/app/(auth)/login/page.js.nft.json +1 -0
- package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -0
- package/.next/server/app/(auth)/onboarding/page.js +18 -0
- package/.next/server/app/(auth)/onboarding/page.js.nft.json +1 -0
- package/.next/server/app/(auth)/onboarding/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_global-error/page.js +32 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
- package/.next/server/app/_global-error.html +1 -0
- package/.next/server/app/_global-error.meta +16 -0
- package/.next/server/app/_global-error.rsc +15 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_index.segment.rsc +6 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next/server/app/_not-found/page.js +2 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
- package/.next/server/app/api/auth/[...all]/route.js +1 -0
- package/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -0
- package/.next/server/app/api/auth/[...all]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cron/tick/route.js +52 -0
- package/.next/server/app/api/cron/tick/route.js.nft.json +1 -0
- package/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/dev-login/route.js +1 -0
- package/.next/server/app/api/dev-login/route.js.nft.json +1 -0
- package/.next/server/app/api/dev-login/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/locks/acquire/route.js +1 -0
- package/.next/server/app/api/locks/acquire/route.js.nft.json +1 -0
- package/.next/server/app/api/locks/acquire/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/models/progress/route.js +1 -0
- package/.next/server/app/api/models/progress/route.js.nft.json +1 -0
- package/.next/server/app/api/models/progress/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/passkey/authenticate/options/route.js +1 -0
- package/.next/server/app/api/passkey/authenticate/options/route.js.nft.json +1 -0
- package/.next/server/app/api/passkey/authenticate/options/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/passkey/authenticate/verify/route.js +1 -0
- package/.next/server/app/api/passkey/authenticate/verify/route.js.nft.json +1 -0
- package/.next/server/app/api/passkey/authenticate/verify/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/passkey/register/options/route.js +1 -0
- package/.next/server/app/api/passkey/register/options/route.js.nft.json +1 -0
- package/.next/server/app/api/passkey/register/options/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/passkey/register/verify/route.js +1 -0
- package/.next/server/app/api/passkey/register/verify/route.js.nft.json +1 -0
- package/.next/server/app/api/passkey/register/verify/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/stream/route.js +4 -0
- package/.next/server/app/api/stream/route.js.nft.json +1 -0
- package/.next/server/app/api/stream/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/sync/file/route.js +2 -0
- package/.next/server/app/api/sync/file/route.js.nft.json +1 -0
- package/.next/server/app/api/sync/file/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/telegram/poll/route.js +15 -0
- package/.next/server/app/api/telegram/poll/route.js.nft.json +1 -0
- package/.next/server/app/api/telegram/poll/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/upload/route.js +1 -0
- package/.next/server/app/api/upload/route.js.nft.json +1 -0
- package/.next/server/app/api/upload/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/v1/[[...path]]/route.js +1 -0
- package/.next/server/app/api/v1/[[...path]]/route.js.nft.json +1 -0
- package/.next/server/app/api/v1/[[...path]]/route_client-reference-manifest.js +1 -0
- package/.next/server/app-paths-manifest.json +53 -0
- package/.next/server/chunks/1003.js +1 -0
- package/.next/server/chunks/127.js +26 -0
- package/.next/server/chunks/1388.js +1 -0
- package/.next/server/chunks/1408.js +21 -0
- package/.next/server/chunks/1572.js +1 -0
- package/.next/server/chunks/1591.js +24 -0
- package/.next/server/chunks/1619.js +188 -0
- package/.next/server/chunks/162.js +1 -0
- package/.next/server/chunks/1881.js +1 -0
- package/.next/server/chunks/1968.js +1 -0
- package/.next/server/chunks/2297.js +348 -0
- package/.next/server/chunks/2341.js +1 -0
- package/.next/server/chunks/2517.js +1 -0
- package/.next/server/chunks/2549.js +1 -0
- package/.next/server/chunks/259.js +14 -0
- package/.next/server/chunks/2599.js +1 -0
- package/.next/server/chunks/260.js +1 -0
- package/.next/server/chunks/2867.js +147 -0
- package/.next/server/chunks/3018.js +1 -0
- package/.next/server/chunks/3050.js +18 -0
- package/.next/server/chunks/3085.js +12 -0
- package/.next/server/chunks/3131.js +1 -0
- package/.next/server/chunks/3242.js +1 -0
- package/.next/server/chunks/3266.js +15 -0
- package/.next/server/chunks/3524.js +1 -0
- package/.next/server/chunks/3527.js +479 -0
- package/.next/server/chunks/3533.js +869 -0
- package/.next/server/chunks/3550.js +1 -0
- package/.next/server/chunks/3609.js +2 -0
- package/.next/server/chunks/3667.js +462 -0
- package/.next/server/chunks/3760.js +4 -0
- package/.next/server/chunks/4679.js +1 -0
- package/.next/server/chunks/4804.js +1 -0
- package/.next/server/chunks/4832.js +2 -0
- package/.next/server/chunks/4853.js +1 -0
- package/.next/server/chunks/4979.js +67 -0
- package/.next/server/chunks/5060.js +1 -0
- package/.next/server/chunks/5278.js +1 -0
- package/.next/server/chunks/5614.js +1 -0
- package/.next/server/chunks/5818.js +1 -0
- package/.next/server/chunks/6479.js +1 -0
- package/.next/server/chunks/6658.js +1 -0
- package/.next/server/chunks/6706.js +1 -0
- package/.next/server/chunks/6719.js +1 -0
- package/.next/server/chunks/678.js +1 -0
- package/.next/server/chunks/683.js +1 -0
- package/.next/server/chunks/6862.js +1 -0
- package/.next/server/chunks/6882.js +1 -0
- package/.next/server/chunks/7037.js +1 -0
- package/.next/server/chunks/7107.js +741 -0
- package/.next/server/chunks/73.js +17 -0
- package/.next/server/chunks/7327.js +1 -0
- package/.next/server/chunks/7514.js +1 -0
- package/.next/server/chunks/7622.js +1 -0
- package/.next/server/chunks/7778.js +1 -0
- package/.next/server/chunks/7912.js +1 -0
- package/.next/server/chunks/7949.js +1 -0
- package/.next/server/chunks/7971.js +1 -0
- package/.next/server/chunks/7989.js +1 -0
- package/.next/server/chunks/842.js +22 -0
- package/.next/server/chunks/8762.js +15 -0
- package/.next/server/chunks/8823.js +77 -0
- package/.next/server/chunks/9146.js +4 -0
- package/.next/server/chunks/9676.js +1 -0
- package/.next/server/chunks/9783.js +22 -0
- package/.next/server/chunks/9969.js +3 -0
- package/.next/server/functions-config-manifest.json +18 -0
- package/.next/server/instrumentation.js +1 -0
- package/.next/server/instrumentation.js.nft.json +1 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/middleware.js +18 -0
- package/.next/server/middleware.js.nft.json +1 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages-manifest.json +3 -0
- package/.next/server/prefetch-hints.json +1 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +1 -0
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/chunks/1858-339516f78a4b00da.js +1 -0
- package/.next/static/chunks/2320-fc8b39380e69d465.js +2 -0
- package/.next/static/chunks/23550918-ff694f70f4b0648c.js +1 -0
- package/.next/static/chunks/3219-ebb3c23be38c838d.js +1 -0
- package/.next/static/chunks/4263-adecb5b466380b6e.js +1 -0
- package/.next/static/chunks/5479-0cceab68cd0ca9c7.js +1 -0
- package/.next/static/chunks/5701-665b927b06158b76.js +1 -0
- package/.next/static/chunks/5920.6451a68b63918988.js +1 -0
- package/.next/static/chunks/6575-5c9139720bb0f5bf.js +4 -0
- package/.next/static/chunks/6834-4759af1ce7d95fb6.js +32 -0
- package/.next/static/chunks/7509.721cd47a931c5518.js +1 -0
- package/.next/static/chunks/8264-1ca011989ee2b231.js +1 -0
- package/.next/static/chunks/9219-4a39a98b5502d9d1.js +1 -0
- package/.next/static/chunks/9690-53d5222618cbeddb.js +1 -0
- package/.next/static/chunks/app/(app)/activity/page-3973534281ecea81.js +1 -0
- package/.next/static/chunks/app/(app)/agents/[handle]/page-83662a175c098282.js +1 -0
- package/.next/static/chunks/app/(app)/code/page-33979545192cd137.js +1 -0
- package/.next/static/chunks/app/(app)/config/page-9933aed1ca8a85c1.js +1 -0
- package/.next/static/chunks/app/(app)/costs/page-131c4dc580efcc19.js +1 -0
- package/.next/static/chunks/app/(app)/cron/page-53ea1aff998a87ca.js +1 -0
- package/.next/static/chunks/app/(app)/dashboard/page-deed83aaa9d0d447.js +1 -0
- package/.next/static/chunks/app/(app)/docs/[id]/page-38c993d73c0eab4f.js +1 -0
- package/.next/static/chunks/app/(app)/docs/page-bf463b55d0554e86.js +1 -0
- package/.next/static/chunks/app/(app)/error-988cd28480809861.js +1 -0
- package/.next/static/chunks/app/(app)/github/page-62678b4e82dfecb6.js +1 -0
- package/.next/static/chunks/app/(app)/goals/page-4adb426fe1c96106.js +1 -0
- package/.next/static/chunks/app/(app)/inbox/page-e347dc55ab467310.js +1 -0
- package/.next/static/chunks/app/(app)/knowledge/page-65393a045b4349be.js +1 -0
- package/.next/static/chunks/app/(app)/layout-7f65675705b011d8.js +1 -0
- package/.next/static/chunks/app/(app)/models/page-e01f1dd7e49a2951.js +1 -0
- package/.next/static/chunks/app/(app)/notifications/page-56548ac87aef00da.js +1 -0
- package/.next/static/chunks/app/(app)/org/page-699e6a6dc0db7d81.js +1 -0
- package/.next/static/chunks/app/(app)/organizations/page-36051a380a7e8eb7.js +1 -0
- package/.next/static/chunks/app/(app)/page-7d1011a566f81520.js +1 -0
- package/.next/static/chunks/app/(app)/planner/page-dab7ced94083373a.js +1 -0
- package/.next/static/chunks/app/(app)/plugins/page-5b5a1f53389be42e.js +1 -0
- package/.next/static/chunks/app/(app)/pm/page-0de5c08c0b227bb0.js +1 -0
- package/.next/static/chunks/app/(app)/prepare-deploy/page-e426038552df8d41.js +1 -0
- package/.next/static/chunks/app/(app)/profile/page-608dfcaf8aae0a69.js +1 -0
- package/.next/static/chunks/app/(app)/pulse/page-309ccaca91de1faa.js +1 -0
- package/.next/static/chunks/app/(app)/reports/[id]/page-53ea1aff998a87ca.js +1 -0
- package/.next/static/chunks/app/(app)/reports/page-68cdc6dcfa472d86.js +1 -0
- package/.next/static/chunks/app/(app)/routines/page-bcc55550b197a9fa.js +1 -0
- package/.next/static/chunks/app/(app)/search/page-5c5f67558d0dbf0d.js +1 -0
- package/.next/static/chunks/app/(app)/security/page-a7d41e36aa366b45.js +1 -0
- package/.next/static/chunks/app/(app)/skills/page-c5b21e89593b8336.js +1 -0
- package/.next/static/chunks/app/(app)/tasks/page-08ae079e3e54d2ce.js +1 -0
- package/.next/static/chunks/app/(app)/test-dev/page-633f82dfd9c3ce23.js +1 -0
- package/.next/static/chunks/app/(app)/update/page-4be019054351bfac.js +1 -0
- package/.next/static/chunks/app/(auth)/login/page-6e85d3377062acae.js +1 -0
- package/.next/static/chunks/app/(auth)/onboarding/page-ebb10c175abf3b85.js +1 -0
- package/.next/static/chunks/app/_global-error/page-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/_not-found/page-dc38b02aebeab535.js +1 -0
- package/.next/static/chunks/app/api/auth/[...all]/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/cron/tick/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/dev-login/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/locks/acquire/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/models/progress/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/passkey/authenticate/options/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/passkey/authenticate/verify/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/passkey/register/options/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/passkey/register/verify/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/stream/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/sync/file/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/telegram/poll/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/upload/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/api/v1/[[...path]]/route-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/app/error-09899a13c38b6e89.js +1 -0
- package/.next/static/chunks/app/global-error-b8050d4d886f448c.js +1 -0
- package/.next/static/chunks/app/layout-ab9deed1e7e2e9df.js +1 -0
- package/.next/static/chunks/framework-4b2c6b6043dd203f.js +1 -0
- package/.next/static/chunks/main-722e16032e7764d1.js +5 -0
- package/.next/static/chunks/main-app-761880af2b6f1962.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-23fe50a6bf589c97.js +1 -0
- package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- package/.next/static/chunks/webpack-222e3894b78c67db.js +1 -0
- package/.next/static/css/0a9b5805594444e3.css +1 -0
- package/.next/static/yztMvBwyrWWkSqP6jfXoa/_buildManifest.js +1 -0
- package/.next/static/yztMvBwyrWWkSqP6jfXoa/_ssgManifest.js +1 -0
- package/.next/trace-build +1 -0
- package/.next/types/app/(app)/activity/page.ts +87 -0
- package/.next/types/app/(app)/agents/[handle]/page.ts +87 -0
- package/.next/types/app/(app)/code/page.ts +87 -0
- package/.next/types/app/(app)/config/page.ts +87 -0
- package/.next/types/app/(app)/costs/page.ts +87 -0
- package/.next/types/app/(app)/cron/page.ts +87 -0
- package/.next/types/app/(app)/dashboard/page.ts +87 -0
- package/.next/types/app/(app)/docs/[id]/page.ts +87 -0
- package/.next/types/app/(app)/docs/page.ts +87 -0
- package/.next/types/app/(app)/github/page.ts +87 -0
- package/.next/types/app/(app)/goals/page.ts +87 -0
- package/.next/types/app/(app)/inbox/page.ts +87 -0
- package/.next/types/app/(app)/knowledge/page.ts +87 -0
- package/.next/types/app/(app)/models/page.ts +87 -0
- package/.next/types/app/(app)/notifications/page.ts +87 -0
- package/.next/types/app/(app)/org/page.ts +87 -0
- package/.next/types/app/(app)/organizations/page.ts +87 -0
- package/.next/types/app/(app)/page.ts +87 -0
- package/.next/types/app/(app)/planner/page.ts +87 -0
- package/.next/types/app/(app)/plugins/page.ts +87 -0
- package/.next/types/app/(app)/pm/page.ts +87 -0
- package/.next/types/app/(app)/prepare-deploy/page.ts +87 -0
- package/.next/types/app/(app)/profile/page.ts +87 -0
- package/.next/types/app/(app)/pulse/page.ts +87 -0
- package/.next/types/app/(app)/reports/[id]/page.ts +87 -0
- package/.next/types/app/(app)/reports/page.ts +87 -0
- package/.next/types/app/(app)/routines/page.ts +87 -0
- package/.next/types/app/(app)/search/page.ts +87 -0
- package/.next/types/app/(app)/security/page.ts +87 -0
- package/.next/types/app/(app)/skills/page.ts +87 -0
- package/.next/types/app/(app)/tasks/page.ts +87 -0
- package/.next/types/app/(app)/test-dev/page.ts +87 -0
- package/.next/types/app/(app)/update/page.ts +87 -0
- package/.next/types/app/(auth)/login/page.ts +87 -0
- package/.next/types/app/(auth)/onboarding/page.ts +87 -0
- package/.next/types/app/api/auth/[...all]/route.ts +351 -0
- package/.next/types/app/api/cron/tick/route.ts +351 -0
- package/.next/types/app/api/dev-login/route.ts +351 -0
- package/.next/types/app/api/locks/acquire/route.ts +351 -0
- package/.next/types/app/api/models/progress/route.ts +351 -0
- package/.next/types/app/api/passkey/authenticate/options/route.ts +351 -0
- package/.next/types/app/api/passkey/authenticate/verify/route.ts +351 -0
- package/.next/types/app/api/passkey/register/options/route.ts +351 -0
- package/.next/types/app/api/passkey/register/verify/route.ts +351 -0
- package/.next/types/app/api/stream/route.ts +351 -0
- package/.next/types/app/api/sync/file/route.ts +351 -0
- package/.next/types/app/api/telegram/poll/route.ts +351 -0
- package/.next/types/app/api/upload/route.ts +351 -0
- package/.next/types/app/api/v1/[[...path]]/route.ts +351 -0
- package/.next/types/cache-life.d.ts +145 -0
- package/.next/types/link.d.ts +210 -0
- package/.next/types/package.json +1 -0
- package/.next/types/routes.d.ts +120 -0
- package/.next/types/validator.ts +511 -0
- package/CHANGELOG.md +312 -0
- package/LICENSE +21 -0
- package/README.md +382 -0
- package/README.pt-BR.md +391 -0
- package/bin/constella.mjs +329 -0
- package/bin/guard-hook.mjs +44 -0
- package/bin/lock-hook.mjs +49 -0
- package/bin/worker.mjs +142 -0
- package/docs/assets/arch-orbit.svg +56 -0
- package/docs/assets/blackhole.svg +37 -0
- package/docs/assets/divider-orbit.svg +23 -0
- package/docs/assets/hero-constella.svg +72 -0
- package/docs/en/AGENTS.md +279 -0
- package/docs/en/AI_ARCHITECTURE.md +373 -0
- package/docs/en/ARCHITECTURE.md +334 -0
- package/docs/en/AUTH_MODE.md +247 -0
- package/docs/en/CHAT_COMMANDS.md +305 -0
- package/docs/en/CONFIGURATION.md +340 -0
- package/docs/en/DEPLOY.md +331 -0
- package/docs/en/DM.md +297 -0
- package/docs/en/FAQ.md +258 -0
- package/docs/en/GITHUB.md +341 -0
- package/docs/en/GOALS_SPECS_ISSUES.md +303 -0
- package/docs/en/INBOX.md +340 -0
- package/docs/en/INSTALLATION.md +329 -0
- package/docs/en/KB_AGENT.md +305 -0
- package/docs/en/KB_RAG.md +356 -0
- package/docs/en/MCP.md +313 -0
- package/docs/en/MEMORY_RAG.md +289 -0
- package/docs/en/MODELS.md +341 -0
- package/docs/en/ONBOARDING.md +327 -0
- package/docs/en/PLUGINS.md +290 -0
- package/docs/en/PORTABLE_MODE.md +387 -0
- package/docs/en/PO_AGENT.md +379 -0
- package/docs/en/PREPARE_DEPLOY.md +308 -0
- package/docs/en/PROJECT_STACKS.md +258 -0
- package/docs/en/PUBLIC_API.md +315 -0
- package/docs/en/PUBLISHING.md +343 -0
- package/docs/en/README.md +95 -0
- package/docs/en/SECURITY.md +280 -0
- package/docs/en/SKILLS.md +349 -0
- package/docs/en/START_MODE.md +340 -0
- package/docs/en/SYNCED_BLOCKS.md +320 -0
- package/docs/en/TEAM_ROOM.md +285 -0
- package/docs/en/TELEGRAM.md +294 -0
- package/docs/en/TEST_DEV.md +321 -0
- package/docs/en/TROUBLESHOOTING.md +294 -0
- package/docs/en/UPDATE.md +301 -0
- package/docs/en/VPS_MODE.md +334 -0
- package/docs/en/WORKFLOW.md +321 -0
- package/docs/pt/AGENTS.md +279 -0
- package/docs/pt/AI_ARCHITECTURE.md +373 -0
- package/docs/pt/ARCHITECTURE.md +334 -0
- package/docs/pt/AUTH_MODE.md +247 -0
- package/docs/pt/CHAT_COMMANDS.md +307 -0
- package/docs/pt/CONFIGURATION.md +340 -0
- package/docs/pt/DEPLOY.md +331 -0
- package/docs/pt/DM.md +297 -0
- package/docs/pt/FAQ.md +258 -0
- package/docs/pt/GITHUB.md +341 -0
- package/docs/pt/GOALS_SPECS_ISSUES.md +303 -0
- package/docs/pt/INBOX.md +340 -0
- package/docs/pt/INSTALLATION.md +329 -0
- package/docs/pt/KB_AGENT.md +305 -0
- package/docs/pt/KB_RAG.md +356 -0
- package/docs/pt/MCP.md +313 -0
- package/docs/pt/MEMORY_RAG.md +289 -0
- package/docs/pt/MODELS.md +341 -0
- package/docs/pt/ONBOARDING.md +327 -0
- package/docs/pt/PLUGINS.md +290 -0
- package/docs/pt/PORTABLE_MODE.md +387 -0
- package/docs/pt/PO_AGENT.md +379 -0
- package/docs/pt/PREPARE_DEPLOY.md +308 -0
- package/docs/pt/PROJECT_STACKS.md +258 -0
- package/docs/pt/PUBLIC_API.md +315 -0
- package/docs/pt/PUBLISHING.md +343 -0
- package/docs/pt/README.md +95 -0
- package/docs/pt/SECURITY.md +280 -0
- package/docs/pt/SKILLS.md +349 -0
- package/docs/pt/START_MODE.md +340 -0
- package/docs/pt/SYNCED_BLOCKS.md +320 -0
- package/docs/pt/TEAM_ROOM.md +285 -0
- package/docs/pt/TELEGRAM.md +294 -0
- package/docs/pt/TEST_DEV.md +321 -0
- package/docs/pt/TROUBLESHOOTING.md +294 -0
- package/docs/pt/UPDATE.md +301 -0
- package/docs/pt/VPS_MODE.md +334 -0
- package/docs/pt/WORKFLOW.md +321 -0
- package/drizzle/0000_regular_nightshade.sql +644 -0
- package/drizzle/0001_mixed_zombie.sql +106 -0
- package/drizzle/meta/0000_snapshot.json +4650 -0
- package/drizzle/meta/0001_snapshot.json +5418 -0
- package/drizzle/meta/_journal.json +20 -0
- package/drizzle.config.mjs +16 -0
- package/next.config.mjs +18 -0
- package/package.json +130 -0
- package/scripts/clean-repo.mjs +20 -0
- package/scripts/dev-all.mjs +46 -0
- package/scripts/i18n-parity.mjs +57 -0
- package/scripts/mcp-server.mjs +100 -0
- package/scripts/postbuild.mjs +11 -0
- package/scripts/publish-public.mjs +116 -0
- package/scripts/start-all.mjs +45 -0
- package/scripts/trim-next.mjs +23 -0
- package/scripts/vps-install.sh +39 -0
- package/skills/CONTRIBUTING.md +122 -0
- package/skills/COVERAGE.md +129 -0
- package/skills/INDEX.json +3443 -0
- package/skills/README.md +57 -0
- package/skills/design/animation-motion/SKILL.md +60 -0
- package/skills/design/color-and-typography/SKILL.md +60 -0
- package/skills/design/css-techniques/SKILL.md +58 -0
- package/skills/design/design-systems/SKILL.md +60 -0
- package/skills/design/gradients/SKILL.md +59 -0
- package/skills/design/graphic-design-basics/SKILL.md +55 -0
- package/skills/design/microinteractions/SKILL.md +58 -0
- package/skills/design/responsive-layout/SKILL.md +59 -0
- package/skills/design/ui-ux-principles/SKILL.md +58 -0
- package/skills/engineering/architecture/api-design-rest-graphql/SKILL.md +67 -0
- package/skills/engineering/architecture/caching-strategies/SKILL.md +59 -0
- package/skills/engineering/architecture/data-modeling/SKILL.md +64 -0
- package/skills/engineering/architecture/message-queues-async/SKILL.md +58 -0
- package/skills/engineering/architecture/scalability-reliability/SKILL.md +62 -0
- package/skills/engineering/architecture/software-architecture-patterns/SKILL.md +56 -0
- package/skills/engineering/architecture/system-design-fundamentals/SKILL.md +56 -0
- package/skills/engineering/backend/auth-and-authorization/SKILL.md +62 -0
- package/skills/engineering/backend/backend-fundamentals/SKILL.md +65 -0
- package/skills/engineering/backend/observability-logging/SKILL.md +60 -0
- package/skills/engineering/frontend/accessibility-wcag/SKILL.md +57 -0
- package/skills/engineering/frontend/frontend-architecture/SKILL.md +65 -0
- package/skills/engineering/frontend/rendering-strategies-ssr-csr/SKILL.md +60 -0
- package/skills/engineering/frontend/state-management/SKILL.md +69 -0
- package/skills/engineering/performance/backend-performance/SKILL.md +69 -0
- package/skills/engineering/performance/database-query-optimization/SKILL.md +64 -0
- package/skills/engineering/performance/profiling-and-benchmarking/SKILL.md +60 -0
- package/skills/engineering/performance/web-performance-core-vitals/SKILL.md +72 -0
- package/skills/engineering/practices/clean-code/SKILL.md +61 -0
- package/skills/engineering/practices/code-optimization/SKILL.md +60 -0
- package/skills/engineering/practices/code-review-practices/SKILL.md +58 -0
- package/skills/engineering/practices/git-workflow/SKILL.md +62 -0
- package/skills/engineering/practices/refactoring/SKILL.md +58 -0
- package/skills/engineering/security/appsec-fundamentals/SKILL.md +70 -0
- package/skills/engineering/security/dependency-supply-chain/SKILL.md +77 -0
- package/skills/engineering/security/owasp-asvs/SKILL.md +54 -0
- package/skills/engineering/security/owasp-top-10/SKILL.md +63 -0
- package/skills/engineering/security/secrets-management/SKILL.md +58 -0
- package/skills/engineering/security/secure-auth-sessions/SKILL.md +56 -0
- package/skills/engineering/testing/tdd-and-coverage/SKILL.md +62 -0
- package/skills/engineering/testing/testing-strategy-pyramid/SKILL.md +56 -0
- package/skills/engineering/testing/unit-integration-e2e/SKILL.md +75 -0
- package/skills/languages/c/SKILL.md +74 -0
- package/skills/languages/clojure/SKILL.md +73 -0
- package/skills/languages/cpp/SKILL.md +75 -0
- package/skills/languages/csharp/SKILL.md +75 -0
- package/skills/languages/dart/SKILL.md +82 -0
- package/skills/languages/elixir/SKILL.md +74 -0
- package/skills/languages/erlang/SKILL.md +76 -0
- package/skills/languages/go/SKILL.md +83 -0
- package/skills/languages/haskell/SKILL.md +70 -0
- package/skills/languages/java/SKILL.md +71 -0
- package/skills/languages/javascript/SKILL.md +62 -0
- package/skills/languages/kotlin/SKILL.md +68 -0
- package/skills/languages/lua/SKILL.md +79 -0
- package/skills/languages/objectivec/SKILL.md +83 -0
- package/skills/languages/php/SKILL.md +74 -0
- package/skills/languages/python/SKILL.md +68 -0
- package/skills/languages/r/SKILL.md +70 -0
- package/skills/languages/ruby/SKILL.md +67 -0
- package/skills/languages/rust/SKILL.md +72 -0
- package/skills/languages/scala/SKILL.md +73 -0
- package/skills/languages/swift/SKILL.md +73 -0
- package/skills/languages/typescript/SKILL.md +69 -0
- package/skills/meta/authoring-agent-skills/SKILL.md +73 -0
- package/skills/meta/progressive-disclosure/SKILL.md +65 -0
- package/skills/meta/skill-frontmatter-spec/SKILL.md +65 -0
- package/skills/process/adr-technical-decisions/SKILL.md +59 -0
- package/skills/process/app-planning/SKILL.md +63 -0
- package/skills/process/architecture-before-code/SKILL.md +52 -0
- package/skills/process/breaking-work-into-sprints/SKILL.md +53 -0
- package/skills/process/idea-to-product/SKILL.md +50 -0
- package/skills/process/mocks-and-screen-flows/SKILL.md +52 -0
- package/skills/process/prioritization-moscow-rice/SKILL.md +64 -0
- package/skills/process/problem-framing/SKILL.md +51 -0
- package/skills/process/product-discovery/SKILL.md +53 -0
- package/skills/process/readme-generation/SKILL.md +90 -0
- package/skills/process/requirements-to-specs/SKILL.md +53 -0
- package/skills/process/research-official-docs/SKILL.md +58 -0
- package/skills/process/review-code-perf-security/SKILL.md +65 -0
- package/skills/process/security-by-design/SKILL.md +68 -0
- package/skills/process/specs-to-issues/SKILL.md +53 -0
- package/skills/process/testing-before-done/SKILL.md +61 -0
- package/skills/process/validating-ux-navigation/SKILL.md +63 -0
- package/skills/references/ai-attachments-ui/SKILL.md +66 -0
- package/skills/references/ai-in-browser-webllm/SKILL.md +74 -0
- package/skills/references/ai-tool-ui-patterns/SKILL.md +63 -0
- package/skills/references/component-patterns-gallery/SKILL.md +62 -0
- package/skills/references/gradient-resources/SKILL.md +66 -0
- package/skills/references/react-component-libraries/SKILL.md +61 -0
- package/skills/references/saas-landing-patterns/SKILL.md +67 -0
- package/skills/references/shadcn-tailwind-theming/SKILL.md +74 -0
- package/skills/references/vercel-ai-sdk-elements/SKILL.md +66 -0
- package/skills/references/web-animation-codrops/SKILL.md +68 -0
- package/skills/stacks/aiml/jupyter/SKILL.md +68 -0
- package/skills/stacks/aiml/keras/SKILL.md +77 -0
- package/skills/stacks/aiml/numpy/SKILL.md +69 -0
- package/skills/stacks/aiml/pandas/SKILL.md +72 -0
- package/skills/stacks/aiml/pytorch/SKILL.md +77 -0
- package/skills/stacks/aiml/scikit-learn/SKILL.md +74 -0
- package/skills/stacks/aiml/tensorflow/SKILL.md +79 -0
- package/skills/stacks/auth/auth0/SKILL.md +63 -0
- package/skills/stacks/auth/authjs/SKILL.md +69 -0
- package/skills/stacks/auth/clerk/SKILL.md +72 -0
- package/skills/stacks/auth/keycloak/SKILL.md +63 -0
- package/skills/stacks/auth/lucia/SKILL.md +56 -0
- package/skills/stacks/auth/passport/SKILL.md +70 -0
- package/skills/stacks/auth/supabase-auth/SKILL.md +66 -0
- package/skills/stacks/baas/amplify/SKILL.md +71 -0
- package/skills/stacks/baas/appwrite/SKILL.md +79 -0
- package/skills/stacks/baas/firebase/SKILL.md +73 -0
- package/skills/stacks/baas/heroku/SKILL.md +71 -0
- package/skills/stacks/backend/actix/SKILL.md +77 -0
- package/skills/stacks/backend/adonisjs/SKILL.md +65 -0
- package/skills/stacks/backend/aspnet-core/SKILL.md +75 -0
- package/skills/stacks/backend/codeigniter/SKILL.md +76 -0
- package/skills/stacks/backend/django/SKILL.md +62 -0
- package/skills/stacks/backend/express/SKILL.md +65 -0
- package/skills/stacks/backend/fastapi/SKILL.md +64 -0
- package/skills/stacks/backend/fastify/SKILL.md +64 -0
- package/skills/stacks/backend/fiber/SKILL.md +68 -0
- package/skills/stacks/backend/flask/SKILL.md +71 -0
- package/skills/stacks/backend/gin/SKILL.md +68 -0
- package/skills/stacks/backend/graphql/SKILL.md +70 -0
- package/skills/stacks/backend/hono/SKILL.md +64 -0
- package/skills/stacks/backend/koa/SKILL.md +63 -0
- package/skills/stacks/backend/laravel/SKILL.md +73 -0
- package/skills/stacks/backend/nestjs/SKILL.md +70 -0
- package/skills/stacks/backend/nginx/SKILL.md +77 -0
- package/skills/stacks/backend/phoenix/SKILL.md +68 -0
- package/skills/stacks/backend/rails/SKILL.md +67 -0
- package/skills/stacks/backend/spring/SKILL.md +70 -0
- package/skills/stacks/backend/spring-boot/SKILL.md +70 -0
- package/skills/stacks/backend/symfony/SKILL.md +77 -0
- package/skills/stacks/container/containerd/SKILL.md +75 -0
- package/skills/stacks/container/docker/SKILL.md +90 -0
- package/skills/stacks/container/podman/SKILL.md +93 -0
- package/skills/stacks/database/cassandra/SKILL.md +74 -0
- package/skills/stacks/database/cockroachdb/SKILL.md +69 -0
- package/skills/stacks/database/dynamodb/SKILL.md +62 -0
- package/skills/stacks/database/mariadb/SKILL.md +71 -0
- package/skills/stacks/database/mongodb/SKILL.md +71 -0
- package/skills/stacks/database/mysql/SKILL.md +72 -0
- package/skills/stacks/database/neon/SKILL.md +68 -0
- package/skills/stacks/database/planetscale/SKILL.md +70 -0
- package/skills/stacks/database/postgresql/SKILL.md +81 -0
- package/skills/stacks/database/redis/SKILL.md +78 -0
- package/skills/stacks/database/sqlite/SKILL.md +70 -0
- package/skills/stacks/database/supabase/SKILL.md +79 -0
- package/skills/stacks/dataviz/chart-js/SKILL.md +72 -0
- package/skills/stacks/dataviz/d3/SKILL.md +77 -0
- package/skills/stacks/dataviz/grafana/SKILL.md +69 -0
- package/skills/stacks/dataviz/plotly/SKILL.md +71 -0
- package/skills/stacks/frontend/alpine/SKILL.md +75 -0
- package/skills/stacks/frontend/angular/SKILL.md +75 -0
- package/skills/stacks/frontend/backbone/SKILL.md +82 -0
- package/skills/stacks/frontend/ember/SKILL.md +85 -0
- package/skills/stacks/frontend/htmx/SKILL.md +73 -0
- package/skills/stacks/frontend/lit/SKILL.md +76 -0
- package/skills/stacks/frontend/preact/SKILL.md +74 -0
- package/skills/stacks/frontend/qwik/SKILL.md +65 -0
- package/skills/stacks/frontend/react/SKILL.md +77 -0
- package/skills/stacks/frontend/solidjs/SKILL.md +75 -0
- package/skills/stacks/frontend/svelte/SKILL.md +70 -0
- package/skills/stacks/frontend/vue/SKILL.md +69 -0
- package/skills/stacks/infra/ansible/SKILL.md +76 -0
- package/skills/stacks/infra/aws/SKILL.md +66 -0
- package/skills/stacks/infra/azure/SKILL.md +72 -0
- package/skills/stacks/infra/circleci/SKILL.md +78 -0
- package/skills/stacks/infra/cloudflare/SKILL.md +65 -0
- package/skills/stacks/infra/fly-io/SKILL.md +63 -0
- package/skills/stacks/infra/gcp/SKILL.md +66 -0
- package/skills/stacks/infra/jenkins/SKILL.md +73 -0
- package/skills/stacks/infra/kubernetes/SKILL.md +64 -0
- package/skills/stacks/infra/netlify/SKILL.md +60 -0
- package/skills/stacks/infra/railway/SKILL.md +63 -0
- package/skills/stacks/infra/tailscale/SKILL.md +65 -0
- package/skills/stacks/infra/terraform/SKILL.md +75 -0
- package/skills/stacks/infra/vagrant/SKILL.md +70 -0
- package/skills/stacks/infra/vercel/SKILL.md +60 -0
- package/skills/stacks/meta/astro/SKILL.md +64 -0
- package/skills/stacks/meta/docusaurus/SKILL.md +71 -0
- package/skills/stacks/meta/eleventy/SKILL.md +69 -0
- package/skills/stacks/meta/gatsby/SKILL.md +63 -0
- package/skills/stacks/meta/hugo/SKILL.md +73 -0
- package/skills/stacks/meta/jekyll/SKILL.md +70 -0
- package/skills/stacks/meta/nextjs/SKILL.md +62 -0
- package/skills/stacks/meta/nuxt/SKILL.md +66 -0
- package/skills/stacks/meta/remix/SKILL.md +67 -0
- package/skills/stacks/meta/sveltekit/SKILL.md +70 -0
- package/skills/stacks/meta/vite/SKILL.md +63 -0
- package/skills/stacks/mobile/android/SKILL.md +77 -0
- package/skills/stacks/mobile/flutter/SKILL.md +77 -0
- package/skills/stacks/mobile/ionic/SKILL.md +72 -0
- package/skills/stacks/mobile/nativescript/SKILL.md +71 -0
- package/skills/stacks/mobile/react-native/SKILL.md +75 -0
- package/skills/stacks/mobile/xamarin/SKILL.md +73 -0
- package/skills/stacks/orm/diesel/SKILL.md +72 -0
- package/skills/stacks/orm/django-orm/SKILL.md +58 -0
- package/skills/stacks/orm/drizzle/SKILL.md +67 -0
- package/skills/stacks/orm/gorm/SKILL.md +73 -0
- package/skills/stacks/orm/knex/SKILL.md +64 -0
- package/skills/stacks/orm/mongoose/SKILL.md +64 -0
- package/skills/stacks/orm/prisma/SKILL.md +64 -0
- package/skills/stacks/orm/sequelize/SKILL.md +65 -0
- package/skills/stacks/orm/sqlalchemy/SKILL.md +71 -0
- package/skills/stacks/orm/typeorm/SKILL.md +70 -0
- package/skills/stacks/queue/bullmq/SKILL.md +69 -0
- package/skills/stacks/queue/celery/SKILL.md +68 -0
- package/skills/stacks/queue/kafka/SKILL.md +66 -0
- package/skills/stacks/queue/nats/SKILL.md +66 -0
- package/skills/stacks/queue/rabbitmq/SKILL.md +64 -0
- package/skills/stacks/queue/redis/SKILL.md +66 -0
- package/skills/stacks/runtime/beam/SKILL.md +72 -0
- package/skills/stacks/runtime/bun/SKILL.md +80 -0
- package/skills/stacks/runtime/deno/SKILL.md +74 -0
- package/skills/stacks/runtime/dotnet/SKILL.md +64 -0
- package/skills/stacks/runtime/jvm/SKILL.md +66 -0
- package/skills/stacks/runtime/node/SKILL.md +70 -0
- package/skills/stacks/runtime/pypy/SKILL.md +69 -0
- package/skills/stacks/runtime/python3/SKILL.md +70 -0
- package/skills/stacks/styling/bootstrap/SKILL.md +74 -0
- package/skills/stacks/styling/bulma/SKILL.md +80 -0
- package/skills/stacks/styling/chakra-ui/SKILL.md +61 -0
- package/skills/stacks/styling/css-modules/SKILL.md +54 -0
- package/skills/stacks/styling/mui/SKILL.md +60 -0
- package/skills/stacks/styling/sass/SKILL.md +63 -0
- package/skills/stacks/styling/shadcn-ui/SKILL.md +58 -0
- package/skills/stacks/styling/styled-components/SKILL.md +62 -0
- package/skills/stacks/styling/tailwind/SKILL.md +59 -0
- package/skills/stacks/styling/unocss/SKILL.md +64 -0
- package/skills/stacks/styling/vanilla-extract/SKILL.md +64 -0
- package/skills/stacks/styling/vuetify/SKILL.md +89 -0
- package/skills/stacks/testing/cypress/SKILL.md +68 -0
- package/skills/stacks/testing/jasmine/SKILL.md +67 -0
- package/skills/stacks/testing/jest/SKILL.md +67 -0
- package/skills/stacks/testing/mocha/SKILL.md +71 -0
- package/skills/stacks/testing/playwright/SKILL.md +68 -0
- package/skills/stacks/testing/puppeteer/SKILL.md +70 -0
- package/skills/stacks/testing/selenium/SKILL.md +70 -0
- package/skills/stacks/testing/vitest/SKILL.md +68 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: erlang
|
|
3
|
+
description: Erlang is a functional, concurrent language built on the BEAM VM and OTP framework for fault-tolerant, distributed, soft-real-time systems using lightweight processes and message passing; consult when writing Erlang, using OTP behaviours (gen_server/supervisor), pattern matching, or building telecom-grade, highly available systems.
|
|
4
|
+
domain: language
|
|
5
|
+
category: language
|
|
6
|
+
tags: [erlang, beam, otp, concurrency, actor-model, distributed, fault-tolerant]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://www.erlang.org/docs
|
|
9
|
+
- https://github.com/erlang/otp
|
|
10
|
+
- https://www.erlang.org/downloads
|
|
11
|
+
verified: 2026-06-17
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Erlang
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
Erlang is a functional, concurrent language that runs on the BEAM virtual machine and ships with OTP, a framework for building fault-tolerant, distributed, soft-real-time systems. Concurrency is modeled with cheap isolated processes communicating by asynchronous message passing ("let it crash" with supervision). Read this when writing Erlang, using OTP behaviours like `gen_server` and `supervisor`, or building highly available distributed systems.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://www.erlang.org/docs
|
|
21
|
+
- Repo: https://github.com/erlang/otp
|
|
22
|
+
- Install: https://www.erlang.org/downloads
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
```bash
|
|
26
|
+
# macOS (Homebrew); or use the installers/source at erlang.org/downloads
|
|
27
|
+
brew install erlang
|
|
28
|
+
erl # start the Erlang shell
|
|
29
|
+
```
|
|
30
|
+
Install options per https://www.erlang.org/downloads (source build, prebuilt packages, kerl/asdf/mise are all documented there).
|
|
31
|
+
|
|
32
|
+
## Core concepts
|
|
33
|
+
- **Lightweight processes** — `spawn` creates isolated, scheduler-managed processes (not OS threads); millions can run.
|
|
34
|
+
- **Message passing** — processes communicate with `!` (send) and `receive`; no shared mutable state.
|
|
35
|
+
- **Pattern matching** — bind and destructure in function heads, `case`, and `receive` clauses.
|
|
36
|
+
- **Immutability & single assignment** — variables are bound once; data is immutable.
|
|
37
|
+
- **OTP behaviours** — `gen_server`, `supervisor`, `application`, and `gen_statem` encode proven design patterns.
|
|
38
|
+
- **Supervision trees & "let it crash"** — supervisors restart failed children rather than coding defensive error handling.
|
|
39
|
+
- **Hot code loading** — modules can be upgraded in a running system without downtime.
|
|
40
|
+
- **Distribution** — nodes connect transparently; remote sends look like local sends.
|
|
41
|
+
|
|
42
|
+
## Best practices
|
|
43
|
+
- Structure systems as supervision trees using OTP behaviours instead of raw `spawn` (https://www.erlang.org/doc/system/design_principles.html).
|
|
44
|
+
- Embrace "let it crash": handle the expected path, let supervisors recover from the unexpected (https://www.erlang.org/doc/system/sup_princ.html).
|
|
45
|
+
- Keep processes small and single-purpose; isolate state per process (https://www.erlang.org/docs).
|
|
46
|
+
- Use `gen_server` for stateful services rather than hand-rolling receive loops (https://www.erlang.org/doc/system/gen_server_concepts.html).
|
|
47
|
+
|
|
48
|
+
## Common pitfalls
|
|
49
|
+
- Unbounded mailbox growth from selective `receive` not matching messages → match all expected messages and drain/log unexpected ones.
|
|
50
|
+
- Treating processes as cheap shared-memory objects → they have isolated heaps; pass data via messages, copying cost matters for large terms.
|
|
51
|
+
- Blocking a `gen_server` callback with long work → offload to a worker/task process to keep the server responsive.
|
|
52
|
+
|
|
53
|
+
## Examples
|
|
54
|
+
```erlang
|
|
55
|
+
-module(counter).
|
|
56
|
+
-behaviour(gen_server).
|
|
57
|
+
-export([start_link/0, inc/0, get/0]).
|
|
58
|
+
-export([init/1, handle_call/3, handle_cast/2]).
|
|
59
|
+
|
|
60
|
+
start_link() -> gen_server:start_link({local, ?MODULE}, ?MODULE, 0, []).
|
|
61
|
+
inc() -> gen_server:cast(?MODULE, inc).
|
|
62
|
+
get() -> gen_server:call(?MODULE, get).
|
|
63
|
+
|
|
64
|
+
init(N) -> {ok, N}.
|
|
65
|
+
handle_cast(inc, N) -> {noreply, N + 1}.
|
|
66
|
+
handle_call(get, _F, N) -> {reply, N, N}.
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Further reading
|
|
70
|
+
- https://www.erlang.org/docs — official Erlang/OTP documentation hub
|
|
71
|
+
- https://www.erlang.org/doc/system/design_principles.html — OTP design principles
|
|
72
|
+
- https://www.erlang.org/course — getting-started course on erlang.org
|
|
73
|
+
|
|
74
|
+
## Related skills
|
|
75
|
+
- ../clojure — shares a functional, immutability-first philosophy on a VM
|
|
76
|
+
- ../haskell — another functional language; contrast pure/lazy vs concurrent/eager
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: go
|
|
3
|
+
description: Compiled, concurrent language for simple, reliable network services; consult for goroutines, modules, and tooling.
|
|
4
|
+
domain: language
|
|
5
|
+
category: language
|
|
6
|
+
tags: [go, golang, concurrency, goroutines, modules]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://go.dev/doc/
|
|
9
|
+
- https://github.com/golang/go
|
|
10
|
+
- https://go.dev/dl/
|
|
11
|
+
verified: 2026-06-16
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Go
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
Go is an open-source programming language that makes it easy to build simple, reliable, and efficient software. It is statically typed and compiled, ships with a garbage collector, and provides built-in concurrency primitives (goroutines and channels) designed for network services and tooling. Read this for the module system, concurrency model, and the standard toolchain.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://go.dev/doc/
|
|
21
|
+
- Repo: https://github.com/golang/go
|
|
22
|
+
- Install / download: https://go.dev/dl/
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
Download the installer for your platform from https://go.dev/dl/ and follow the instructions at https://go.dev/doc/install. Verify the install:
|
|
26
|
+
```bash
|
|
27
|
+
go version
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Core concepts
|
|
31
|
+
- Goroutines and channels: lightweight concurrent functions started with `go`, communicating over typed channels ("share memory by communicating").
|
|
32
|
+
- Modules: dependency management via `go.mod`/`go.sum`; a module is a versioned collection of packages.
|
|
33
|
+
- Interfaces are implicit: a type satisfies an interface simply by implementing its methods — no explicit `implements`.
|
|
34
|
+
- Explicit error handling: functions return `error` values that callers check; no exceptions for ordinary control flow.
|
|
35
|
+
- Structs and methods: data is grouped in structs; methods attach to types via receivers; no class inheritance, composition instead.
|
|
36
|
+
- The standard toolchain: `go build`, `go run`, `go test`, `go fmt`, and `go vet` are part of the official distribution.
|
|
37
|
+
- Defer/panic/recover: `defer` schedules cleanup; `panic`/`recover` are for truly exceptional conditions, not normal errors.
|
|
38
|
+
|
|
39
|
+
## Best practices
|
|
40
|
+
- Format code with `gofmt`/`go fmt` — canonical formatting is part of the language culture and is non-negotiable in idiomatic Go.
|
|
41
|
+
- Handle every returned `error`; wrap with context using `fmt.Errorf("...: %w", err)` rather than discarding it.
|
|
42
|
+
- Use `context.Context` to carry cancellation and deadlines through call chains, especially for servers.
|
|
43
|
+
- Keep interfaces small and define them at the consumer; prefer composition over inheritance.
|
|
44
|
+
|
|
45
|
+
## Common pitfalls
|
|
46
|
+
- Ignoring returned errors (`val, _ := ...`) → silently drops failures; check and propagate them.
|
|
47
|
+
- Loop-variable capture in goroutines/closures → in older Go versions the variable was shared; capture explicitly or rely on the per-iteration scoping of recent Go.
|
|
48
|
+
- Unbuffered channel deadlocks → a send blocks until a receiver is ready; ensure a consumer exists or use buffering/`select`.
|
|
49
|
+
- Data races on shared state → guard with channels, `sync.Mutex`, or run `go test -race` to detect them.
|
|
50
|
+
|
|
51
|
+
## Examples
|
|
52
|
+
```go
|
|
53
|
+
package main
|
|
54
|
+
|
|
55
|
+
import (
|
|
56
|
+
"fmt"
|
|
57
|
+
"sync"
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
func main() {
|
|
61
|
+
var wg sync.WaitGroup
|
|
62
|
+
results := make(chan int, 3)
|
|
63
|
+
for i := 1; i <= 3; i++ {
|
|
64
|
+
wg.Add(1)
|
|
65
|
+
go func(n int) {
|
|
66
|
+
defer wg.Done()
|
|
67
|
+
results <- n * n
|
|
68
|
+
}(i)
|
|
69
|
+
}
|
|
70
|
+
wg.Wait()
|
|
71
|
+
close(results)
|
|
72
|
+
for r := range results {
|
|
73
|
+
fmt.Println(r)
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Further reading
|
|
79
|
+
- A Tour of Go: https://go.dev/tour/
|
|
80
|
+
- Effective Go: https://go.dev/doc/effective_go
|
|
81
|
+
|
|
82
|
+
## Related skills
|
|
83
|
+
- (sibling language skills under ../)
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: haskell
|
|
3
|
+
description: Haskell is a statically typed, purely functional, lazily evaluated language with type inference and monadic effects, compiled by GHC; consult when writing Haskell, installing the toolchain via GHCup, using Cabal or Stack, reasoning about type classes, monads, laziness, or pure functional design.
|
|
4
|
+
domain: language
|
|
5
|
+
category: language
|
|
6
|
+
tags: [haskell, functional, ghc, cabal, stack, type-classes, monads]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://www.haskell.org/documentation/
|
|
9
|
+
- https://gitlab.haskell.org/ghc/ghc
|
|
10
|
+
- https://www.haskell.org/ghcup/install/
|
|
11
|
+
verified: 2026-06-17
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Haskell
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
Haskell is a statically typed, purely functional language with global type inference, lazy (non-strict) evaluation, and effects tracked in the type system via monads. The reference compiler is GHC, and packages come from Hackage/Stackage. Read this when writing Haskell, setting up the toolchain with GHCup, building with Cabal or Stack, or reasoning about type classes, monads, and laziness.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://www.haskell.org/documentation/
|
|
21
|
+
- Repo: https://gitlab.haskell.org/ghc/ghc
|
|
22
|
+
- Install: https://www.haskell.org/ghcup/install/
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
```bash
|
|
26
|
+
# GHCup installs GHC, Cabal, Stack, and HLS (Linux/macOS/WSL)
|
|
27
|
+
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
|
|
28
|
+
```
|
|
29
|
+
Command per https://www.haskell.org/ghcup/install/ (Windows uses the PowerShell bootstrap on the same page).
|
|
30
|
+
|
|
31
|
+
## Core concepts
|
|
32
|
+
- **Purity & referential transparency** — functions have no side effects; the same input always yields the same output.
|
|
33
|
+
- **Lazy evaluation** — expressions evaluate only when needed, enabling infinite data structures but requiring care with space.
|
|
34
|
+
- **Strong static types + inference** — the compiler infers most types; `Maybe`/`Either` encode absence and errors without exceptions.
|
|
35
|
+
- **Type classes** — ad-hoc polymorphism (`Eq`, `Ord`, `Functor`, `Monad`) constrain types by capability.
|
|
36
|
+
- **Monads & `do` notation** — sequence effectful computations (`IO`, `Maybe`, `State`) while staying pure.
|
|
37
|
+
- **Algebraic data types & pattern matching** — `data` declares sum/product types deconstructed by pattern match.
|
|
38
|
+
- **GHC & extensions** — the de-facto compiler; `{-# LANGUAGE ... #-}` pragmas enable language extensions.
|
|
39
|
+
- **Cabal / Stack** — build tools; Cabal uses `.cabal`/`cabal.project`, Stack pins curated Stackage snapshots.
|
|
40
|
+
|
|
41
|
+
## Best practices
|
|
42
|
+
- Manage the toolchain with GHCup and an editor using HLS for type-aware feedback (https://www.haskell.org/ghcup/steps/).
|
|
43
|
+
- Compile with `-Wall` and fix warnings; let types guide design (https://downloads.haskell.org/ghc/latest/docs/users_guide/using-warnings.html).
|
|
44
|
+
- Prefer total functions; use `Maybe`/`Either` over partial functions like `head` on possibly-empty lists (https://www.haskell.org/documentation/).
|
|
45
|
+
- Pin reproducible builds with a Stackage resolver or a Cabal freeze file (https://docs.haskellstack.org/).
|
|
46
|
+
|
|
47
|
+
## Common pitfalls
|
|
48
|
+
- Thunk buildup from lazy accumulators → use strict folds (`foldl'`) and `BangPatterns`/`seq` to force evaluation.
|
|
49
|
+
- Using partial functions (`head`, `fromJust`) on empty/`Nothing` values → pattern-match or use safe variants.
|
|
50
|
+
- Confusing `IO a` ordering → sequence effects with `do`/`>>=`; pure values never "run".
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
```haskell
|
|
54
|
+
import Data.List (sortOn, group, sort)
|
|
55
|
+
import Data.Ord (Down(..))
|
|
56
|
+
|
|
57
|
+
wordFreq :: String -> [(String, Int)]
|
|
58
|
+
wordFreq = sortOn (Down . snd)
|
|
59
|
+
. map (\ws -> (head ws, length ws))
|
|
60
|
+
. group . sort . words
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Further reading
|
|
64
|
+
- https://www.haskell.org/documentation/ — official documentation hub
|
|
65
|
+
- https://downloads.haskell.org/ghc/latest/docs/users_guide/ — GHC user's guide
|
|
66
|
+
- https://hackage.haskell.org/ — central package repository
|
|
67
|
+
|
|
68
|
+
## Related skills
|
|
69
|
+
- ../clojure — another functional language built on immutability and pure functions
|
|
70
|
+
- ../erlang — functional language with a different (eager, concurrency-first) emphasis
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: java
|
|
3
|
+
description: JVM object-oriented, statically typed language; consult for OOP, the JDK toolchain, and runtime/build basics.
|
|
4
|
+
domain: language
|
|
5
|
+
category: language
|
|
6
|
+
tags: [java, jvm, openjdk, oop, temurin]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://docs.oracle.com/en/java/
|
|
9
|
+
- https://github.com/openjdk/jdk
|
|
10
|
+
- https://adoptium.net/installation/
|
|
11
|
+
verified: 2026-06-16
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Java
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
Java is a statically typed, object-oriented, class-based language that compiles to bytecode and runs on the Java Virtual Machine (JVM), giving it "write once, run anywhere" portability. OpenJDK is the open-source reference implementation; Eclipse Temurin (from Adoptium) is a widely used prebuilt OpenJDK distribution. Read this for OOP fundamentals, the JDK toolchain, and runtime/build basics.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://docs.oracle.com/en/java/
|
|
21
|
+
- Repo (OpenJDK): https://github.com/openjdk/jdk
|
|
22
|
+
- Install (Eclipse Temurin / Adoptium): https://adoptium.net/installation/
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
Install Eclipse Temurin (OpenJDK). On Windows via winget, per https://adoptium.net/installation/:
|
|
26
|
+
```bash
|
|
27
|
+
winget install EclipseAdoptium.Temurin.25.JDK
|
|
28
|
+
```
|
|
29
|
+
On other platforms use the package managers, installers, or archives listed on the Adoptium installation page.
|
|
30
|
+
|
|
31
|
+
## Core concepts
|
|
32
|
+
- Classes and objects: code is organized into classes; objects are instances. Single inheritance of classes, multiple inheritance of interfaces.
|
|
33
|
+
- Static typing and the type system: types are checked at compile time; generics provide type-safe collections and APIs.
|
|
34
|
+
- The JVM and bytecode: `javac` compiles `.java` to `.class` bytecode that the JVM executes, with JIT compilation and garbage collection.
|
|
35
|
+
- Interfaces and abstraction: interfaces define contracts; abstract classes provide partial implementation.
|
|
36
|
+
- Checked vs. unchecked exceptions: checked exceptions must be declared or handled; unchecked (RuntimeException) need not be.
|
|
37
|
+
- Packages and the module system: packages namespace classes; the JPMS module system (`module-info.java`) adds explicit dependencies.
|
|
38
|
+
- Build tools and the classpath: Maven/Gradle manage dependencies and builds; the classpath/modulepath locates classes at runtime.
|
|
39
|
+
|
|
40
|
+
## Best practices
|
|
41
|
+
- Program to interfaces, not implementations, so code depends on contracts rather than concrete classes.
|
|
42
|
+
- Prefer immutability for value types and use `final` where appropriate to make intent and thread-safety clearer.
|
|
43
|
+
- Use a build tool (Maven or Gradle) and declared dependencies instead of manually managing JARs on the classpath.
|
|
44
|
+
- Close resources deterministically with try-with-resources for anything implementing `AutoCloseable`.
|
|
45
|
+
|
|
46
|
+
## Common pitfalls
|
|
47
|
+
- Calling methods on a `null` reference → guard with checks or use `Optional` to express absence at API boundaries.
|
|
48
|
+
- Comparing objects with `==` instead of `.equals()` → `==` compares references; override/use `equals`/`hashCode` consistently.
|
|
49
|
+
- Forgetting to close streams/connections → leaks resources; use try-with-resources.
|
|
50
|
+
- Mutable shared state across threads without synchronization → causes races; use immutability, `synchronized`, or `java.util.concurrent`.
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
```java
|
|
54
|
+
import java.nio.file.Files;
|
|
55
|
+
import java.nio.file.Path;
|
|
56
|
+
import java.util.List;
|
|
57
|
+
|
|
58
|
+
public class ReadLines {
|
|
59
|
+
public static void main(String[] args) throws Exception {
|
|
60
|
+
List<String> lines = Files.readAllLines(Path.of("data.txt"));
|
|
61
|
+
lines.forEach(System.out::println);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Further reading
|
|
67
|
+
- Java SE documentation (Oracle): https://docs.oracle.com/en/java/javase/
|
|
68
|
+
- OpenJDK project: https://openjdk.org/
|
|
69
|
+
|
|
70
|
+
## Related skills
|
|
71
|
+
- ../kotlin — modern JVM language interoperable with Java
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: javascript
|
|
3
|
+
description: Dynamic, prototype-based language of the web (ECMAScript); consult for core semantics, async, and modern syntax.
|
|
4
|
+
domain: language
|
|
5
|
+
category: language
|
|
6
|
+
tags: [javascript, ecmascript, web, async, es modules]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://developer.mozilla.org/en-US/docs/Web/JavaScript
|
|
9
|
+
- https://github.com/tc39/ecma262
|
|
10
|
+
verified: 2026-06-16
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# JavaScript
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
JavaScript is a lightweight, interpreted (or just-in-time compiled) programming language with first-class functions. Best known as the scripting language of web pages, it also runs in many non-browser environments such as Node.js. It is a prototype-based, garbage-collected, dynamic, multi-paradigm language standardized as ECMAScript. Read this for core language semantics, asynchronous patterns, and modern module syntax.
|
|
17
|
+
|
|
18
|
+
## Official sources
|
|
19
|
+
- Docs (reference): https://developer.mozilla.org/en-US/docs/Web/JavaScript
|
|
20
|
+
- Language standard repo (ECMA-262 / TC39): https://github.com/tc39/ecma262
|
|
21
|
+
|
|
22
|
+
## Core concepts
|
|
23
|
+
- Dynamic typing: variables are not bound to a type; values carry types and can change. Primitives include string, number, bigint, boolean, undefined, null, symbol; everything else is an object.
|
|
24
|
+
- First-class functions and closures: functions are values that can be passed, returned, and capture their lexical scope.
|
|
25
|
+
- Prototype-based inheritance: objects inherit directly from other objects via the prototype chain; `class` syntax is sugar over prototypes.
|
|
26
|
+
- The event loop and asynchronous model: single-threaded with non-blocking I/O via callbacks, Promises, and `async`/`await`.
|
|
27
|
+
- Scoping and hoisting: `let`/`const` are block-scoped (with a temporal dead zone); `var` is function-scoped; declarations are hoisted.
|
|
28
|
+
- Strict equality vs. coercion: `===` compares without type coercion; `==` performs coercion and is a frequent source of surprises.
|
|
29
|
+
- ES modules: `import`/`export` provide the standardized module system across browsers and Node.js.
|
|
30
|
+
|
|
31
|
+
## Best practices
|
|
32
|
+
- Prefer `const` by default and `let` when reassignment is needed; avoid `var` to escape function-scope and hoisting surprises (per MDN guidance).
|
|
33
|
+
- Use strict equality (`===` / `!==`) rather than loose equality to avoid implicit coercion bugs.
|
|
34
|
+
- Handle Promise rejections — `await` inside `try/catch`, or attach `.catch()` — to avoid unhandled rejections.
|
|
35
|
+
- Use ES module `import`/`export` for clear, statically analyzable dependencies.
|
|
36
|
+
|
|
37
|
+
## Common pitfalls
|
|
38
|
+
- Relying on `this` binding inside detached callbacks → use arrow functions (which capture lexical `this`) or bind explicitly.
|
|
39
|
+
- Loose equality and truthiness surprises (`0`, `""`, `null`, `undefined`, `NaN`) → use `===` and explicit checks.
|
|
40
|
+
- Floating-point arithmetic precision (e.g. `0.1 + 0.2 !== 0.3`) → round for display or use integer/bigint math where exactness matters.
|
|
41
|
+
- Mutating shared objects/arrays unexpectedly → copy (spread, structuredClone) before mutating when isolation is needed.
|
|
42
|
+
|
|
43
|
+
## Examples
|
|
44
|
+
```javascript
|
|
45
|
+
async function fetchUser(id) {
|
|
46
|
+
try {
|
|
47
|
+
const res = await fetch(`/api/users/${id}`);
|
|
48
|
+
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
49
|
+
return await res.json();
|
|
50
|
+
} catch (err) {
|
|
51
|
+
console.error("fetchUser failed", err);
|
|
52
|
+
throw err;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Further reading
|
|
58
|
+
- MDN JavaScript Guide: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide
|
|
59
|
+
- ECMAScript draft spec: https://tc39.es/ecma262/
|
|
60
|
+
|
|
61
|
+
## Related skills
|
|
62
|
+
- ../typescript — typed superset that compiles to JavaScript
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kotlin
|
|
3
|
+
description: Concise, modern JVM language fully interoperable with Java; consult for null safety, coroutines, and tooling.
|
|
4
|
+
domain: language
|
|
5
|
+
category: language
|
|
6
|
+
tags: [kotlin, jvm, null-safety, coroutines, multiplatform]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://kotlinlang.org/docs/home.html
|
|
9
|
+
- https://github.com/JetBrains/kotlin
|
|
10
|
+
- https://kotlinlang.org/docs/getting-started.html
|
|
11
|
+
verified: 2026-06-16
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Kotlin
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
Kotlin is a concise, statically typed, multiplatform language developed by JetBrains. It runs primarily on the JVM with full two-way interoperability with Java, and also targets Android, native, and other platforms. It emphasizes null safety, expressive syntax, and structured concurrency via coroutines. Read this for null safety, coroutines, and the recommended getting-started path.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://kotlinlang.org/docs/home.html
|
|
21
|
+
- Repo: https://github.com/JetBrains/kotlin
|
|
22
|
+
- Getting started: https://kotlinlang.org/docs/getting-started.html
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
Kotlin ships with every IntelliJ IDEA and Android Studio release, so installing one of those IDEs is the recommended way to start (per the getting-started page). To install the standalone command-line compiler via SDKMAN! (per https://kotlinlang.org/docs/command-line.html):
|
|
26
|
+
```bash
|
|
27
|
+
sdk install kotlin
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Core concepts
|
|
31
|
+
- Null safety: types are non-nullable by default; nullable types are marked with `?`, and the compiler forces you to handle `null`.
|
|
32
|
+
- Concise syntax: type inference, data classes, properties, and expression bodies reduce boilerplate versus Java.
|
|
33
|
+
- Java interoperability: Kotlin calls Java and Java calls Kotlin seamlessly, easing incremental adoption in existing JVM codebases.
|
|
34
|
+
- Coroutines: lightweight, structured concurrency with `suspend` functions for non-blocking asynchronous code.
|
|
35
|
+
- Extension functions: add functions to existing types without inheritance or modifying the original class.
|
|
36
|
+
- Immutability by default intent: `val` (read-only) vs. `var` (mutable); prefer `val`.
|
|
37
|
+
- Smart casts and `when`: after a type/null check the compiler auto-casts; `when` is a powerful expression-based branch.
|
|
38
|
+
|
|
39
|
+
## Best practices
|
|
40
|
+
- Prefer `val` over `var` and immutable collections to make state explicit and reduce bugs.
|
|
41
|
+
- Use the null-safety operators (`?.`, `?:`, `!!` sparingly) instead of defensive null checks; avoid `!!` except where null is truly impossible.
|
|
42
|
+
- Use coroutines with structured concurrency (scopes) for async work rather than raw threads or callbacks.
|
|
43
|
+
- Model data with `data class` and represent restricted hierarchies with `sealed` classes for exhaustive `when`.
|
|
44
|
+
|
|
45
|
+
## Common pitfalls
|
|
46
|
+
- Overusing the `!!` not-null assertion → it throws NPE at runtime, defeating null safety; prefer `?.`/`?:` or restructure.
|
|
47
|
+
- Platform types from Java (`String!`) → Java values have unknown nullability; annotate or guard them at the boundary.
|
|
48
|
+
- Launching coroutines without a proper scope → can leak work; use lifecycle/structured scopes so they are cancelled correctly.
|
|
49
|
+
- Assuming `==` is identity → in Kotlin `==` calls `equals` (structural); use `===` for referential equality.
|
|
50
|
+
|
|
51
|
+
## Examples
|
|
52
|
+
```kotlin
|
|
53
|
+
fun greet(name: String?): String {
|
|
54
|
+
return "Hello, ${name ?: "guest"}"
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
fun main() {
|
|
58
|
+
println(greet("Ada"))
|
|
59
|
+
println(greet(null))
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Further reading
|
|
64
|
+
- Kotlin Tour: https://kotlinlang.org/docs/kotlin-tour-welcome.html
|
|
65
|
+
- Coroutines guide: https://kotlinlang.org/docs/coroutines-guide.html
|
|
66
|
+
|
|
67
|
+
## Related skills
|
|
68
|
+
- ../java — the JVM language Kotlin interoperates with
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lua
|
|
3
|
+
description: Lua is a small, fast, dynamically typed scripting language designed to be embedded in host applications via a clean C API, with tables as its sole data-structuring mechanism; consult when writing Lua, embedding/extending it from C, using metatables, coroutines, or scripting games, Neovim, Redis, or nginx.
|
|
4
|
+
domain: language
|
|
5
|
+
category: language
|
|
6
|
+
tags: [lua, scripting, embedded, dynamic, tables, coroutines, c-api]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://www.lua.org/manual/5.5/
|
|
9
|
+
- https://www.lua.org/
|
|
10
|
+
- https://www.lua.org/download.html
|
|
11
|
+
verified: 2026-06-17
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Lua
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
Lua is a lightweight, dynamically typed scripting language built around a single data structure (the table) and designed to be embedded into host programs through a small, well-documented C API. It is fast, portable (pure ISO C), and widely used for game scripting, Neovim config, Redis, and nginx (OpenResty). Read this when writing Lua, embedding or extending it from C, or using metatables and coroutines.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://www.lua.org/manual/5.5/
|
|
21
|
+
- Home: https://www.lua.org/ — the authoritative source for Lua is lua.org, not GitHub
|
|
22
|
+
- Install: https://www.lua.org/download.html
|
|
23
|
+
- Mirror (unofficial): https://github.com/lua/lua — read-only mirror of Lua dev code, "mirrored irregularly"; no PRs accepted (see its README). Official releases come from lua.org.
|
|
24
|
+
|
|
25
|
+
## Install / setup
|
|
26
|
+
```bash
|
|
27
|
+
curl -L -R -O https://www.lua.org/ftp/lua-5.5.0.tar.gz
|
|
28
|
+
tar zxf lua-5.5.0.tar.gz
|
|
29
|
+
cd lua-5.5.0
|
|
30
|
+
make all test
|
|
31
|
+
```
|
|
32
|
+
Build steps per https://www.lua.org/download.html (Lua compiles unmodified on any platform with an ISO C compiler).
|
|
33
|
+
|
|
34
|
+
## Core concepts
|
|
35
|
+
- **Tables** — the only structured type; serve as arrays, dictionaries, objects, and namespaces.
|
|
36
|
+
- **Metatables & metamethods** — `__index`, `__newindex`, `__add`, etc., customize behavior and implement OOP/inheritance.
|
|
37
|
+
- **First-class functions & closures** — functions are values with lexical scoping over `upvalues`.
|
|
38
|
+
- **Coroutines** — cooperative multitasking via `coroutine.create`/`resume`/`yield`; not OS threads.
|
|
39
|
+
- **The C API & stack** — host programs push/pop Lua values on a virtual stack to call into and out of Lua.
|
|
40
|
+
- **1-based indexing** — arrays and string positions start at 1, not 0.
|
|
41
|
+
- **`nil` and truthiness** — only `nil` and `false` are falsy; `0` and `""` are truthy.
|
|
42
|
+
- **Lua vs LuaJIT** — reference Lua (lua.org) vs the separate high-performance JIT implementation.
|
|
43
|
+
|
|
44
|
+
## Best practices
|
|
45
|
+
- Localize frequently used globals (`local sqrt = math.sqrt`) for speed and clarity (https://www.lua.org/manual/5.5/).
|
|
46
|
+
- Use `pcall`/`xpcall` to handle runtime errors instead of letting them propagate (https://www.lua.org/manual/5.5/manual.html#pdf-pcall).
|
|
47
|
+
- Implement OOP with metatables and `__index` rather than copying methods per instance (https://www.lua.org/pil/16.html).
|
|
48
|
+
- When embedding, always balance the C API stack and check `lua_pcall` return codes (https://www.lua.org/manual/5.5/manual.html#4).
|
|
49
|
+
|
|
50
|
+
## Common pitfalls
|
|
51
|
+
- Assuming 0-based indexing → Lua arrays/strings are 1-based; iterate with `ipairs` for sequences.
|
|
52
|
+
- Treating `0` or `""` as false → only `nil`/`false` are falsy; test explicitly with `== nil`.
|
|
53
|
+
- Holes in a "sequence" table breaking `#t` and `ipairs` → keep array tables contiguous or track length yourself.
|
|
54
|
+
|
|
55
|
+
## Examples
|
|
56
|
+
```lua
|
|
57
|
+
-- Metatable-based class
|
|
58
|
+
local Account = {}
|
|
59
|
+
Account.__index = Account
|
|
60
|
+
|
|
61
|
+
function Account.new(balance)
|
|
62
|
+
return setmetatable({ balance = balance or 0 }, Account)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
function Account:deposit(n) self.balance = self.balance + n end
|
|
66
|
+
|
|
67
|
+
local a = Account.new(100)
|
|
68
|
+
a:deposit(50)
|
|
69
|
+
print(a.balance) --> 150
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Further reading
|
|
73
|
+
- https://www.lua.org/manual/5.5/ — Lua 5.5 reference manual (language, libraries, C API)
|
|
74
|
+
- https://www.lua.org/pil/ — Programming in Lua (first edition, online)
|
|
75
|
+
- https://www.lua.org/docs.html — documentation index
|
|
76
|
+
|
|
77
|
+
## Related skills
|
|
78
|
+
- ../c — Lua is written in ISO C and embeds through its C API
|
|
79
|
+
- ../clojure — fellow dynamically typed, functional-leaning language
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: objectivec
|
|
3
|
+
description: Objective-C is a superset of C that adds Smalltalk-style message passing and a dynamic runtime, historically the primary language for Apple macOS and iOS development with Cocoa/Cocoa Touch; consult when writing or maintaining Objective-C, using ARC, the runtime, categories, protocols, or bridging with Swift and C.
|
|
4
|
+
domain: language
|
|
5
|
+
category: language
|
|
6
|
+
tags: [objectivec, apple, cocoa, ios, macos, runtime, arc]
|
|
7
|
+
official_sources:
|
|
8
|
+
- https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/
|
|
9
|
+
- https://developer.apple.com/documentation/objectivec
|
|
10
|
+
- https://developer.apple.com/xcode/
|
|
11
|
+
verified: 2026-06-17
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Objective-C
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
Objective-C is a strict superset of C that adds object-oriented programming through Smalltalk-style message passing and a dynamic runtime. It was the primary language for Apple's Cocoa (macOS) and Cocoa Touch (iOS) frameworks before Swift and remains common in legacy apps and frameworks. Read this when writing or maintaining Objective-C, using ARC memory management, the runtime, categories/protocols, or bridging with Swift and C.
|
|
18
|
+
|
|
19
|
+
## Official sources
|
|
20
|
+
- Docs: https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/
|
|
21
|
+
- Repo: https://developer.apple.com/documentation/objectivec (runtime reference; the compiler is Apple Clang, https://github.com/llvm/llvm-project)
|
|
22
|
+
- Install: https://developer.apple.com/xcode/
|
|
23
|
+
|
|
24
|
+
## Install / setup
|
|
25
|
+
```bash
|
|
26
|
+
# Install Xcode's command-line tools (includes Apple Clang), then compile:
|
|
27
|
+
xcode-select --install
|
|
28
|
+
clang -fobjc-arc -framework Foundation hello.m -o hello
|
|
29
|
+
```
|
|
30
|
+
Xcode/tooling per https://developer.apple.com/xcode/ ; ARC and Foundation flags per https://developer.apple.com/documentation/objectivec.
|
|
31
|
+
|
|
32
|
+
## Core concepts
|
|
33
|
+
- **Message passing** — `[receiver message:arg]` sends messages; dispatch is resolved dynamically at runtime.
|
|
34
|
+
- **Classes & instances** — `@interface`/`@implementation` define classes; `id` is the dynamic object type.
|
|
35
|
+
- **ARC** — Automatic Reference Counting inserts retain/release; manage cycles with `weak`/`strong` references.
|
|
36
|
+
- **Protocols** — declare method contracts (`@protocol`) adopted by classes; similar to interfaces.
|
|
37
|
+
- **Categories & extensions** — add methods to existing classes (`@interface NSString (MyExtras)`) without subclassing.
|
|
38
|
+
- **Properties** — `@property` synthesizes accessors with attributes (`nonatomic`, `strong`, `copy`, `weak`).
|
|
39
|
+
- **The Objective-C runtime** — introspection, dynamic method resolution, and swizzling via `<objc/runtime.h>`.
|
|
40
|
+
- **Foundation/Cocoa** — `NSString`, `NSArray`, `NSDictionary`, and the broader framework stack.
|
|
41
|
+
|
|
42
|
+
## Best practices
|
|
43
|
+
- Use ARC (`-fobjc-arc`) and reason about ownership with `strong`/`weak`/`copy` property attributes (https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/).
|
|
44
|
+
- Adopt `NS_ASSUME_NONNULL_BEGIN`/nullability annotations to improve Swift interop (https://developer.apple.com/documentation/objectivec).
|
|
45
|
+
- Prefer protocols and composition over deep class hierarchies (https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithProtocols/WorkingwithProtocols.html).
|
|
46
|
+
- Use `copy` for mutable-backed properties like `NSString`/`NSArray` to avoid external mutation.
|
|
47
|
+
|
|
48
|
+
## Common pitfalls
|
|
49
|
+
- Retain cycles between objects (e.g., delegate/block captures `self`) → declare back-references `weak` and use `__weak`/`__strong` in blocks.
|
|
50
|
+
- Sending messages to `nil` returns zero/`nil` silently → check assumptions rather than relying on no-op dispatch.
|
|
51
|
+
- Mutating a collection while enumerating it → enumerate a copy or collect changes and apply afterward.
|
|
52
|
+
|
|
53
|
+
## Examples
|
|
54
|
+
```objc
|
|
55
|
+
#import <Foundation/Foundation.h>
|
|
56
|
+
|
|
57
|
+
@interface Greeter : NSObject
|
|
58
|
+
- (NSString *)greet:(NSString *)name;
|
|
59
|
+
@end
|
|
60
|
+
|
|
61
|
+
@implementation Greeter
|
|
62
|
+
- (NSString *)greet:(NSString *)name {
|
|
63
|
+
return [NSString stringWithFormat:@"Hello, %@!", name];
|
|
64
|
+
}
|
|
65
|
+
@end
|
|
66
|
+
|
|
67
|
+
int main(void) {
|
|
68
|
+
@autoreleasepool {
|
|
69
|
+
Greeter *g = [Greeter new];
|
|
70
|
+
NSLog(@"%@", [g greet:@"World"]);
|
|
71
|
+
}
|
|
72
|
+
return 0;
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Further reading
|
|
77
|
+
- https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/ — Programming with Objective-C guide
|
|
78
|
+
- https://developer.apple.com/documentation/objectivec — Objective-C runtime reference
|
|
79
|
+
- https://developer.apple.com/documentation/swift/objective-c-and-c-code-customization — Swift/Objective-C interop
|
|
80
|
+
|
|
81
|
+
## Related skills
|
|
82
|
+
- ../c — Objective-C is a strict superset of C and compiles C directly
|
|
83
|
+
- ../lua — another language frequently embedded in iOS/macOS apps
|