prism0x2a 0.27.7 → 1.0.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/standalone/apps/prism/.next/BUILD_ID +1 -1
- package/.next/standalone/apps/prism/.next/app-path-routes-manifest.json +36 -36
- package/.next/standalone/apps/prism/.next/build-manifest.json +2 -2
- package/.next/standalone/apps/prism/.next/required-server-files.json +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/agb.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/agb.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/agb.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/agb.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/agb.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/agb.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/agb.segments/agb/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/agb.segments/agb.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ask/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ask.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ask.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ask.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ask.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ask.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ask.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ask.segments/amber/ask/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ask.segments/amber/ask.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ask.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capabilities/[id]/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capabilities/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capabilities/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capabilities/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capabilities.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capabilities.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/capabilities.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/capabilities.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capabilities.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capabilities.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capabilities.segments/amber/capabilities/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/capabilities.segments/amber/capabilities.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capabilities.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capability-deps/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capability-deps/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capability-deps.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capability-deps.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/capability-deps.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/capability-deps.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capability-deps.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capability-deps.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capability-deps.segments/amber/capability-deps/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/capability-deps.segments/amber/capability-deps.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/capability-deps.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/clean-architecture/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/clean-architecture.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/clean-architecture.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/clean-architecture.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/clean-architecture.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/clean-architecture.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/clean-architecture.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/clean-architecture.segments/amber/clean-architecture/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/clean-architecture.segments/amber/clean-architecture.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/clean-architecture.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/cognitive-load/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/cognitive-load/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/cognitive-load.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/cognitive-load.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/cognitive-load.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/cognitive-load.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/cognitive-load.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/cognitive-load.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/cognitive-load.segments/amber/cognitive-load/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/cognitive-load.segments/amber/cognitive-load.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/cognitive-load.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage-matrix/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage-matrix/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage-matrix.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage-matrix.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage-matrix.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage-matrix.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage-matrix.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage-matrix.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage-matrix.segments/amber/coverage-matrix/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage-matrix.segments/amber/coverage-matrix.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage-matrix.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage.segments/amber/coverage/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage.segments/amber/coverage.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/coverage.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ddd/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ddd.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ddd.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ddd.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ddd.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ddd.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ddd.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ddd.segments/amber/ddd/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ddd.segments/amber/ddd.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/ddd.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/eda/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/eda.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/eda.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/eda.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/eda.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/eda.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/eda.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/eda.segments/amber/eda/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/eda.segments/amber/eda.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/eda.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/files/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/files/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/files.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/files.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/files.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/files.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/files.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/files.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/files.segments/amber/files/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/files.segments/amber/files.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/files.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/hexagonal/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/hexagonal.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/hexagonal.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/hexagonal.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/hexagonal.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/hexagonal.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/hexagonal.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/hexagonal.segments/amber/hexagonal/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/hexagonal.segments/amber/hexagonal.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/hexagonal.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/interview/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/interview.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/interview.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/interview.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/interview.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/interview.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/interview.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/interview.segments/amber/interview/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/interview.segments/amber/interview.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/interview.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/mcs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/mcs.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/mcs.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/mcs.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/mcs.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/mcs.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/mcs.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/mcs.segments/amber/mcs/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/mcs.segments/amber/mcs.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/mcs.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/monorepo/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/monorepo/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/monorepo.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/monorepo.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/monorepo.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/monorepo.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/monorepo.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/monorepo.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/monorepo.segments/amber/monorepo/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber/monorepo.segments/amber/monorepo.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/monorepo.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/rcs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/rcs.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/rcs.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/rcs.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/rcs.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/rcs.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/rcs.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/rcs.segments/amber/rcs/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/rcs.segments/amber/rcs.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/rcs.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/studio/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/studio.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/studio.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/studio.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/studio.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/studio.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/studio.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/studio.segments/amber/studio/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/studio.segments/amber/studio.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber/studio.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/amber.segments/amber/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/amber.segments/amber.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/api/config/route.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/dashboard/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/ask/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/ask.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/ask.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/ask.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/ask.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/ask.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/ask.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/ask.segments/blue/explorer/ask/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/ask.segments/blue/explorer/ask.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/ask.segments/blue/explorer.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/ask.segments/blue.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/cycles/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/cycles/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/cycles.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/cycles.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/cycles.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/cycles.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/cycles.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/cycles.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/cycles.segments/blue/explorer/cycles/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/cycles.segments/blue/explorer/cycles.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/cycles.segments/blue/explorer.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/cycles.segments/blue.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/explain/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/explain.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/explain.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/explain.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/explain.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/explain.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/explain.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/explain.segments/blue/explorer/explain/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/explain.segments/blue/explorer/explain.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/explain.segments/blue/explorer.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/explain.segments/blue.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/file/[path]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/fitness/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/fitness.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/fitness.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/fitness.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/fitness.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/fitness.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/fitness.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/fitness.segments/blue/explorer/fitness/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/fitness.segments/blue/explorer/fitness.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/fitness.segments/blue/explorer.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/fitness.segments/blue.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/flow/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/flow.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/flow.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/flow.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/flow.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/flow.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/flow.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/flow.segments/blue/explorer/flow/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/flow.segments/blue/explorer/flow.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/flow.segments/blue/explorer.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/flow.segments/blue.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/graph/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/graph.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/graph.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/graph.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/graph.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/graph.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/graph.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/graph.segments/blue/explorer/graph/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/graph.segments/blue/explorer/graph.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/graph.segments/blue/explorer.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/graph.segments/blue.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/libraries/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/libraries.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/libraries.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/libraries.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/libraries.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/libraries.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/libraries.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/libraries.segments/blue/explorer/libraries/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/libraries.segments/blue/explorer/libraries.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/libraries.segments/blue/explorer.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/libraries.segments/blue.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/refactor/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/refactor.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/refactor.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/refactor.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/refactor.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/refactor.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/refactor.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/refactor.segments/blue/explorer/refactor/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/refactor.segments/blue/explorer/refactor.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/refactor.segments/blue/explorer.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/refactor.segments/blue.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/wire/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/wire.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/wire.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/wire.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/wire.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/wire.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/wire.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/wire.segments/blue/explorer/wire/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/wire.segments/blue/explorer/wire.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/wire.segments/blue/explorer.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/wire.segments/blue.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/zones/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/zones.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/zones.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/zones.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/zones.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/zones.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/zones.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/zones.segments/blue/explorer/zones/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/zones.segments/blue/explorer/zones.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/zones.segments/blue/explorer.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer/zones.segments/blue.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer.segments/blue/explorer/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer.segments/blue/explorer.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/explorer.segments/blue.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/recommendations/[id]/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/recommendations/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/recommendations/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/recommendations/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/recommendations.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/recommendations.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/blue/recommendations.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/blue/recommendations.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/recommendations.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/recommendations.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/recommendations.segments/blue/recommendations/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/blue/recommendations.segments/blue/recommendations.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/recommendations.segments/blue.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/sessions/[id]/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/sessions/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/sessions/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/sessions.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/sessions.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/blue/sessions.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/blue/sessions.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/sessions.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/sessions.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/sessions.segments/blue/sessions/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/blue/sessions.segments/blue/sessions.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue/sessions.segments/blue.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/blue.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/blue.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/blue.segments/blue/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/blue.segments/blue.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/datenschutz.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/datenschutz.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/datenschutz.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/datenschutz.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/datenschutz.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/datenschutz.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/datenschutz.segments/datenschutz/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/datenschutz.segments/datenschutz.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/design.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/design.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/design.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/design.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/design.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/design.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/design.segments/design/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/design.segments/design.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fact-validator.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fact-validator.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fact-validator.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fact-validator.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fact-validator.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fact-validator.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fact-validator.segments/fact-validator/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fact-validator.segments/fact-validator.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet/patterns.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet/patterns.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet/patterns.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet/patterns.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet/patterns.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet/patterns.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet/patterns.segments/fleet/patterns/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet/patterns.segments/fleet/patterns.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet/patterns.segments/fleet.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet.segments/fleet/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/fleet.segments/fleet.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/achievements/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/achievements/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/achievements.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/achievements.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/achievements.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/achievements.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/achievements.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/achievements.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/achievements.segments/green/achievements/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/achievements.segments/green/achievements.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/achievements.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/architecture-map/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/architecture-map.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/architecture-map.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/architecture-map.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/architecture-map.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/architecture-map.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/architecture-map.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/architecture-map.segments/green/architecture-map/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/architecture-map.segments/green/architecture-map.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/architecture-map.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-devops/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-devops.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-devops.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-devops.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-devops.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-devops.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-devops.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-devops.segments/green/azure-devops/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-devops.segments/green/azure-devops.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-devops.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-well-architected/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-well-architected.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-well-architected.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-well-architected.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-well-architected.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-well-architected.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-well-architected.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-well-architected.segments/green/azure-well-architected/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-well-architected.segments/green/azure-well-architected.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/azure-well-architected.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/c4-model/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/c4-model.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/c4-model.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/c4-model.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/c4-model.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/c4-model.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/c4-model.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/c4-model.segments/green/c4-model/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/c4-model.segments/green/c4-model.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/c4-model.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/chat/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/chat.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/chat.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/chat.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/chat.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/chat.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/chat.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/chat.segments/green/chat/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/chat.segments/green/chat.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/chat.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/coherence-history/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/coherence-history.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/coherence-history.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/coherence-history.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/coherence-history.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/coherence-history.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/coherence-history.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/coherence-history.segments/green/coherence-history/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/coherence-history.segments/green/coherence-history.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/coherence-history.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/consensus/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/consensus.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/consensus.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/consensus.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/consensus.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/consensus.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/consensus.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/consensus.segments/green/consensus/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/consensus.segments/green/consensus.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/consensus.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/conways-law/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/conways-law.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/conways-law.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/conways-law.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/conways-law.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/conways-law.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/conways-law.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/conways-law.segments/green/conways-law/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/conways-law.segments/green/conways-law.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/conways-law.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/copilot-extension/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/copilot-extension.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/copilot-extension.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/copilot-extension.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/copilot-extension.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/copilot-extension.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/copilot-extension.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/copilot-extension.segments/green/copilot-extension/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/copilot-extension.segments/green/copilot-extension.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/copilot-extension.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/counterfactual/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/counterfactual.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/counterfactual.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/counterfactual.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/counterfactual.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/counterfactual.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/counterfactual.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/counterfactual.segments/green/counterfactual/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/counterfactual.segments/green/counterfactual.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/counterfactual.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/cross-layer/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/cross-layer/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/cross-layer.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/cross-layer.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/cross-layer.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/cross-layer.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/cross-layer.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/cross-layer.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/cross-layer.segments/green/cross-layer/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/cross-layer.segments/green/cross-layer.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/cross-layer.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/dora/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/dora.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/dora.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/dora.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/dora.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/dora.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/dora.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/dora.segments/green/dora/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/dora.segments/green/dora.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/dora.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/eip/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/eip.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/eip.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/eip.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/eip.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/eip.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/eip.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/eip.segments/green/eip/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/eip.segments/green/eip.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/eip.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/framework-detect/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/framework-detect.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/framework-detect.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/framework-detect.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/framework-detect.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/framework-detect.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/framework-detect.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/framework-detect.segments/green/framework-detect/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/framework-detect.segments/green/framework-detect.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/framework-detect.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/frameworks/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/frameworks.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/frameworks.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/frameworks.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/frameworks.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/frameworks.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/frameworks.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/frameworks.segments/green/frameworks/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/frameworks.segments/green/frameworks.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/frameworks.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/github-app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/github-app.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/github-app.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/github-app.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/github-app.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/github-app.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/github-app.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/github-app.segments/green/github-app/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/github-app.segments/green/github-app.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/github-app.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/goals/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/goals.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/goals.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/goals.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/goals.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/goals.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/goals.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/goals.segments/green/goals/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/goals.segments/green/goals.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/goals.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/google-workspace/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/google-workspace.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/google-workspace.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/google-workspace.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/google-workspace.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/google-workspace.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/google-workspace.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/google-workspace.segments/green/google-workspace/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/google-workspace.segments/green/google-workspace.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/google-workspace.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/insights/[id]/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/insights/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/insights/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/insights/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/insights.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/insights.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/insights.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/insights.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/insights.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/insights.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/insights.segments/green/insights/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/insights.segments/green/insights.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/insights.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/iso25010/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/iso25010.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/iso25010.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/iso25010.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/iso25010.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/iso25010.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/iso25010.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/iso25010.segments/green/iso25010/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/iso25010.segments/green/iso25010.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/iso25010.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/knowledge-graph/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/knowledge-graph.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/knowledge-graph.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/knowledge-graph.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/knowledge-graph.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/knowledge-graph.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/knowledge-graph.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/knowledge-graph.segments/green/knowledge-graph/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/knowledge-graph.segments/green/knowledge-graph.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/knowledge-graph.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/mcp-server/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/mcp-server.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/mcp-server.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/mcp-server.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/mcp-server.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/mcp-server.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/mcp-server.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/mcp-server.segments/green/mcp-server/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/mcp-server.segments/green/mcp-server.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/mcp-server.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/okrs/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/okrs.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/okrs.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/okrs.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/okrs.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/okrs.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/okrs.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/okrs.segments/green/okrs/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/okrs.segments/green/okrs.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/okrs.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/predictions/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/predictions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/predictions.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/predictions.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/predictions.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/predictions.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/predictions.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/predictions.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/predictions.segments/green/predictions/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/predictions.segments/green/predictions.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/predictions.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/prism-chat/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/prism-chat.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/prism-chat.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/prism-chat.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/prism-chat.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/prism-chat.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/prism-chat.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/prism-chat.segments/green/prism-chat/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/prism-chat.segments/green/prism-chat.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/prism-chat.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/queries/[id]/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/queries/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/queries/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/queries/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/queries.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/queries.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/queries.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/queries.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/queries.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/queries.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/queries.segments/green/queries/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/queries.segments/green/queries.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/queries.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/radio/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/radio/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/radio.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/radio.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/radio.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/radio.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/radio.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/radio.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/radio.segments/green/radio/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/radio.segments/green/radio.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/radio.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/remediation/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/remediation/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/remediation.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/remediation.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/remediation.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/remediation.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/remediation.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/remediation.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/remediation.segments/green/remediation/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/remediation.segments/green/remediation.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/remediation.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/roi/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/roi/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/roi.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/roi.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/roi.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/roi.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/roi.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/roi.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/roi.segments/green/roi/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/roi.segments/green/roi.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/roi.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/self-heal/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/self-heal.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/self-heal.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/self-heal.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/self-heal.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/self-heal.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/self-heal.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/self-heal.segments/green/self-heal/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/self-heal.segments/green/self-heal.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/self-heal.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/solid/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/solid.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/solid.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/solid.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/solid.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/solid.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/solid.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/solid.segments/green/solid/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/solid.segments/green/solid.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/solid.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/cross-repo-caps/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/cross-repo-caps.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/cross-repo-caps.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/cross-repo-caps.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/cross-repo-caps.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/cross-repo-caps.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/cross-repo-caps.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/cross-repo-caps.segments/green/team/cross-repo-caps/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/cross-repo-caps.segments/green/team/cross-repo-caps.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/cross-repo-caps.segments/green/team.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/cross-repo-caps.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/onboarding-playbook/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/onboarding-playbook.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/onboarding-playbook.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/onboarding-playbook.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/onboarding-playbook.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/onboarding-playbook.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/onboarding-playbook.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/onboarding-playbook.segments/green/team/onboarding-playbook/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/onboarding-playbook.segments/green/team/onboarding-playbook.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/onboarding-playbook.segments/green/team.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/onboarding-playbook.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/ownership-heatmap/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/ownership-heatmap.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/ownership-heatmap.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/ownership-heatmap.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/ownership-heatmap.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/ownership-heatmap.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/ownership-heatmap.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/ownership-heatmap.segments/green/team/ownership-heatmap/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/ownership-heatmap.segments/green/team/ownership-heatmap.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/ownership-heatmap.segments/green/team.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/ownership-heatmap.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/shared-coherence/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/shared-coherence.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/shared-coherence.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/shared-coherence.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/shared-coherence.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/shared-coherence.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/shared-coherence.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/shared-coherence.segments/green/team/shared-coherence/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/shared-coherence.segments/green/team/shared-coherence.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/shared-coherence.segments/green/team.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team/shared-coherence.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team-patterns/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team-patterns.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team-patterns.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team-patterns.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team-patterns.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team-patterns.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team-patterns.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team-patterns.segments/green/team-patterns/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team-patterns.segments/green/team-patterns.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/team-patterns.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/time-capsule/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/time-capsule/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/time-capsule.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/time-capsule.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/time-capsule.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/time-capsule.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/time-capsule.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/time-capsule.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/time-capsule.segments/green/time-capsule/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green/time-capsule.segments/green/time-capsule.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/time-capsule.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/twelve-factor/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/twelve-factor.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/twelve-factor.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/twelve-factor.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/twelve-factor.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/twelve-factor.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/twelve-factor.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/twelve-factor.segments/green/twelve-factor/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/twelve-factor.segments/green/twelve-factor.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/twelve-factor.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/vercel-gate/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/vercel-gate.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/vercel-gate.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/vercel-gate.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/vercel-gate.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/vercel-gate.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/vercel-gate.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/vercel-gate.segments/green/vercel-gate/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/vercel-gate.segments/green/vercel-gate.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/vercel-gate.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/wardley/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/wardley.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/wardley.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/wardley.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/wardley.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/wardley.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/wardley.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/wardley.segments/green/wardley/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/wardley.segments/green/wardley.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/wardley.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/well-architected/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/well-architected.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/well-architected.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/well-architected.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/well-architected.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/well-architected.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/well-architected.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/well-architected.segments/green/well-architected/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/well-architected.segments/green/well-architected.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green/well-architected.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/green.segments/green/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/green.segments/green.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/hub/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/hub/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/hub.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/hub.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/hub.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/hub.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/hub.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/hub.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/hub.segments/hub/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/hub.segments/hub.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/impressum.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/impressum.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/impressum.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/impressum.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/impressum.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/impressum.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/impressum.segments/impressum/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/impressum.segments/impressum.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/index.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/index.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/ops.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/ops.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/ops.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/ops.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/ops.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/ops.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/ops.segments/ops/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/ops.segments/ops.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/plans.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/plans.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/plans.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/plans.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/plans.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/plans.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/plans.segments/plans/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/plans.segments/plans.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/pricing.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/pricing.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/pricing.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/pricing.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/pricing.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/pricing.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/pricing.segments/pricing/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/pricing.segments/pricing.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/dashboard.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/dashboard.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/dashboard.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/dashboard.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/dashboard.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/dashboard.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/dashboard.segments/print/dashboard/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/dashboard.segments/print/dashboard.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/dashboard.segments/print.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/drift-report.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/drift-report.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/drift-report.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/drift-report.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/drift-report.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/drift-report.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/drift-report.segments/print/drift-report/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/drift-report.segments/print/drift-report.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/print/drift-report.segments/print.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/api-keys/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/api-keys.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/api-keys.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/api-keys.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/api-keys.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/api-keys.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/api-keys.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/api-keys.segments/settings/api-keys/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/api-keys.segments/settings/api-keys.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/api-keys.segments/settings.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/content-quality/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/content-quality.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/content-quality.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/content-quality.segments/_full.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/content-quality.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/content-quality.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/content-quality.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/content-quality.segments/settings/content-quality/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/content-quality.segments/settings/content-quality.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/content-quality.segments/settings.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/sitemap.xml.body +5 -5
- package/.next/standalone/apps/prism/.next/server/app/team/page.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/team/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/app/team.html +1 -1
- package/.next/standalone/apps/prism/.next/server/app/team.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/team.segments/_full.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/team.segments/_head.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/team.segments/_index.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/team.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app/team.segments/team/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/prism/.next/server/app/team.segments/team.segment.rsc +1 -1
- package/.next/standalone/apps/prism/.next/server/app-paths-manifest.json +36 -36
- package/.next/standalone/apps/prism/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/apps/prism/.next/server/middleware-manifest.json +1 -1
- package/.next/standalone/apps/prism/.next/server/middleware.js +2 -2
- package/.next/standalone/apps/prism/.next/server/pages/404.html +1 -1
- package/.next/standalone/apps/prism/.next/server/pages/500.html +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/amber/capabilities/[id]/{page-c86156d3b54d8c08.js → page-c05de045b12bff11.js} +1 -1
- package/.next/{static/chunks/app/amber/capabilities/page-d6adeebabfb8f1cd.js → standalone/apps/prism/.next/static/chunks/app/amber/capabilities/page-ca6031694a540846.js} +1 -1
- package/.next/{static/chunks/app/amber/capability-deps/page-6ea2bb1cd18b64bb.js → standalone/apps/prism/.next/static/chunks/app/amber/capability-deps/page-6112ac4821397f12.js} +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/amber/cognitive-load/{page-1a6579c01cec4e9b.js → page-b02d737fad8ecb48.js} +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/amber/coverage/{page-af60f03cc6f3ec2e.js → page-f6dceee9fbae7a8d.js} +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/amber/coverage-matrix/{page-61922e4536a73f2c.js → page-23cdc6b363e4cbef.js} +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/amber/files/{page-30dc8333ff489050.js → page-f6e5e6085f47d25d.js} +1 -1
- package/.next/{static/chunks/app/amber/monorepo/page-fbfe0d3288883b80.js → standalone/apps/prism/.next/static/chunks/app/amber/monorepo/page-00f8f4f446041da3.js} +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/amber/{page-57e7de6f2d3c24c0.js → page-e9ece900ad5f4e40.js} +1 -1
- package/.next/{static/chunks/app/blue/explorer/cycles/page-e38eb4572a01aa55.js → standalone/apps/prism/.next/static/chunks/app/blue/explorer/cycles/page-2e977053a1332b6e.js} +1 -1
- package/.next/{static/chunks/app/blue/page-900feb995c79ddcf.js → standalone/apps/prism/.next/static/chunks/app/blue/page-3272b828e04577f3.js} +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/blue/recommendations/[id]/{page-0631626ce48b6e5f.js → page-38d54da1fff714f5.js} +1 -1
- package/.next/{static/chunks/app/blue/recommendations/page-7189cfafc6a38b23.js → standalone/apps/prism/.next/static/chunks/app/blue/recommendations/page-b5fdab31599735e9.js} +1 -1
- package/.next/{static/chunks/app/blue/sessions/[id]/page-21bf70c7707a72a6.js → standalone/apps/prism/.next/static/chunks/app/blue/sessions/[id]/page-0a8b3c7ee5baaa0f.js} +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/blue/sessions/{page-1b628b3cd2ee2537.js → page-7c975a0ac1163fc6.js} +1 -1
- package/.next/{static/chunks/app/green/achievements/page-d66a5a1fbd818095.js → standalone/apps/prism/.next/static/chunks/app/green/achievements/page-ec7e9dd6eec60289.js} +1 -1
- package/.next/{static/chunks/app/green/cross-layer/page-4fdf1b68dbbbf4c7.js → standalone/apps/prism/.next/static/chunks/app/green/cross-layer/page-bb473da285fc9f4c.js} +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/green/insights/[id]/{page-8c5869e17eee4ae9.js → page-c0c24a8bea2287ff.js} +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/green/insights/{page-64579a09283cbc79.js → page-12b3b3a56f6b7e41.js} +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/green/{page-ce3f0d542444bf5a.js → page-981474455e71e6f3.js} +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/green/predictions/{page-cadd9575e25e365d.js → page-522e212955af02c3.js} +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/green/queries/[id]/{page-d57f57123089e7c1.js → page-966f78bd1e53b870.js} +1 -1
- package/.next/{static/chunks/app/green/queries/page-8cfc0138d37fc990.js → standalone/apps/prism/.next/static/chunks/app/green/queries/page-982d9356ac5ad23c.js} +1 -1
- package/.next/{static/chunks/app/green/radio/page-2b80ec40e54260b5.js → standalone/apps/prism/.next/static/chunks/app/green/radio/page-14b87f3ce5f8b776.js} +1 -1
- package/.next/{static/chunks/app/green/remediation/page-f7b8de4d13a77b9a.js → standalone/apps/prism/.next/static/chunks/app/green/remediation/page-e9c4b14e48e313b6.js} +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/green/roi/{page-c19858dd655626e3.js → page-68482dca92be53fb.js} +1 -1
- package/.next/{static/chunks/app/green/time-capsule/page-9cfa84d5328bb11a.js → standalone/apps/prism/.next/static/chunks/app/green/time-capsule/page-f2bcf897c18bda02.js} +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/hub/{page-3f6cbdf80d3b044d.js → page-451400f8c309323a.js} +1 -1
- package/.next/standalone/apps/prism/.next/static/chunks/app/settings/{page-192ebb35699713ee.js → page-8968f498a2f2b792.js} +1 -1
- package/.next/{static/chunks/app/team/page-b176cd4317772229.js → standalone/apps/prism/.next/static/chunks/app/team/page-2740b68e04659a13.js} +1 -1
- package/.next/standalone/apps/prism/package.json +24 -4
- package/.next/standalone/apps/prism/server.js +1 -1
- package/.next/static/chunks/app/amber/capabilities/[id]/{page-c86156d3b54d8c08.js → page-c05de045b12bff11.js} +1 -1
- package/.next/{standalone/apps/prism/.next/static/chunks/app/amber/capabilities/page-d6adeebabfb8f1cd.js → static/chunks/app/amber/capabilities/page-ca6031694a540846.js} +1 -1
- package/.next/{standalone/apps/prism/.next/static/chunks/app/amber/capability-deps/page-6ea2bb1cd18b64bb.js → static/chunks/app/amber/capability-deps/page-6112ac4821397f12.js} +1 -1
- package/.next/static/chunks/app/amber/cognitive-load/{page-1a6579c01cec4e9b.js → page-b02d737fad8ecb48.js} +1 -1
- package/.next/static/chunks/app/amber/coverage/{page-af60f03cc6f3ec2e.js → page-f6dceee9fbae7a8d.js} +1 -1
- package/.next/static/chunks/app/amber/coverage-matrix/{page-61922e4536a73f2c.js → page-23cdc6b363e4cbef.js} +1 -1
- package/.next/static/chunks/app/amber/files/{page-30dc8333ff489050.js → page-f6e5e6085f47d25d.js} +1 -1
- package/.next/{standalone/apps/prism/.next/static/chunks/app/amber/monorepo/page-fbfe0d3288883b80.js → static/chunks/app/amber/monorepo/page-00f8f4f446041da3.js} +1 -1
- package/.next/static/chunks/app/amber/{page-57e7de6f2d3c24c0.js → page-e9ece900ad5f4e40.js} +1 -1
- package/.next/{standalone/apps/prism/.next/static/chunks/app/blue/explorer/cycles/page-e38eb4572a01aa55.js → static/chunks/app/blue/explorer/cycles/page-2e977053a1332b6e.js} +1 -1
- package/.next/{standalone/apps/prism/.next/static/chunks/app/blue/page-900feb995c79ddcf.js → static/chunks/app/blue/page-3272b828e04577f3.js} +1 -1
- package/.next/static/chunks/app/blue/recommendations/[id]/{page-0631626ce48b6e5f.js → page-38d54da1fff714f5.js} +1 -1
- package/.next/{standalone/apps/prism/.next/static/chunks/app/blue/recommendations/page-7189cfafc6a38b23.js → static/chunks/app/blue/recommendations/page-b5fdab31599735e9.js} +1 -1
- package/.next/{standalone/apps/prism/.next/static/chunks/app/blue/sessions/[id]/page-21bf70c7707a72a6.js → static/chunks/app/blue/sessions/[id]/page-0a8b3c7ee5baaa0f.js} +1 -1
- package/.next/static/chunks/app/blue/sessions/{page-1b628b3cd2ee2537.js → page-7c975a0ac1163fc6.js} +1 -1
- package/.next/{standalone/apps/prism/.next/static/chunks/app/green/achievements/page-d66a5a1fbd818095.js → static/chunks/app/green/achievements/page-ec7e9dd6eec60289.js} +1 -1
- package/.next/{standalone/apps/prism/.next/static/chunks/app/green/cross-layer/page-4fdf1b68dbbbf4c7.js → static/chunks/app/green/cross-layer/page-bb473da285fc9f4c.js} +1 -1
- package/.next/static/chunks/app/green/insights/[id]/{page-8c5869e17eee4ae9.js → page-c0c24a8bea2287ff.js} +1 -1
- package/.next/static/chunks/app/green/insights/{page-64579a09283cbc79.js → page-12b3b3a56f6b7e41.js} +1 -1
- package/.next/static/chunks/app/green/{page-ce3f0d542444bf5a.js → page-981474455e71e6f3.js} +1 -1
- package/.next/static/chunks/app/green/predictions/{page-cadd9575e25e365d.js → page-522e212955af02c3.js} +1 -1
- package/.next/static/chunks/app/green/queries/[id]/{page-d57f57123089e7c1.js → page-966f78bd1e53b870.js} +1 -1
- package/.next/{standalone/apps/prism/.next/static/chunks/app/green/queries/page-8cfc0138d37fc990.js → static/chunks/app/green/queries/page-982d9356ac5ad23c.js} +1 -1
- package/.next/{standalone/apps/prism/.next/static/chunks/app/green/radio/page-2b80ec40e54260b5.js → static/chunks/app/green/radio/page-14b87f3ce5f8b776.js} +1 -1
- package/.next/{standalone/apps/prism/.next/static/chunks/app/green/remediation/page-f7b8de4d13a77b9a.js → static/chunks/app/green/remediation/page-e9c4b14e48e313b6.js} +1 -1
- package/.next/static/chunks/app/green/roi/{page-c19858dd655626e3.js → page-68482dca92be53fb.js} +1 -1
- package/.next/{standalone/apps/prism/.next/static/chunks/app/green/time-capsule/page-9cfa84d5328bb11a.js → static/chunks/app/green/time-capsule/page-f2bcf897c18bda02.js} +1 -1
- package/.next/static/chunks/app/hub/{page-3f6cbdf80d3b044d.js → page-451400f8c309323a.js} +1 -1
- package/.next/static/chunks/app/settings/{page-192ebb35699713ee.js → page-8968f498a2f2b792.js} +1 -1
- package/.next/{standalone/apps/prism/.next/static/chunks/app/team/page-b176cd4317772229.js → static/chunks/app/team/page-2740b68e04659a13.js} +1 -1
- package/CHANGELOG.md +28 -0
- package/README.md +1 -1
- package/package.json +24 -4
- /package/.next/standalone/apps/prism/.next/static/{CwHLzs-ZJO35JFFyIVeR1 → Lgx5PDoVl4Y-acEm9ZHIN}/_buildManifest.js +0 -0
- /package/.next/standalone/apps/prism/.next/static/{CwHLzs-ZJO35JFFyIVeR1 → Lgx5PDoVl4Y-acEm9ZHIN}/_ssgManifest.js +0 -0
- /package/.next/static/{CwHLzs-ZJO35JFFyIVeR1 → Lgx5PDoVl4Y-acEm9ZHIN}/_buildManifest.js +0 -0
- /package/.next/static/{CwHLzs-ZJO35JFFyIVeR1 → Lgx5PDoVl4Y-acEm9ZHIN}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4027],{33869:(e,t,l)=>{"use strict";function s(e){return Number.isFinite(e)?Math.max(0,Math.min(100,e)):0}function n(e){return e>=85?"A":e>=70?"B":e>=55?"C":e>=40?"D":"F"}function a(e,t){return t<=0?0:Math.min(15,e/t*300)}function r(e,t){return t<=0?0:Math.min(10,e/t*100)}function o(e,t){return t<=0?0:Math.min(8,e/t*50)}function c(e){let t=100-s(e.avgHeat),l=a(e.cycleCount,e.fileCount),c=r(e.churnHotspotCount,e.fileCount),i=o(e.todoCount,e.fileCount),d=Math.round(s(t-l-c-i));return{base:t,cyclePenalty:l,churnPenalty:c,todoPenalty:i,health:d,grade:n(d),confidence:"full"}}function i(e){let{health:t,grade:l,confidence:s}=c(e);return{health:t,grade:l,confidence:s}}function d(e){let t=1.5*a(e.cycleCount,e.fileCount),l=1.5*r(e.churnHotspotCount,e.fileCount),c=1.5*o(e.todoCount,e.fileCount),i=Math.round(s(80-t-l-c));return{base:80,cyclePenalty:t,churnPenalty:l,todoPenalty:c,health:i,grade:n(i),confidence:"coarse"}}function u(e){let{health:t,grade:l,confidence:s}=d(e);return{health:t,grade:l,confidence:s}}l.d(t,{EL:()=>i,Fx:()=>u,N5:()=>c,Tf:()=>d})},64995:(e,t,l)=>{Promise.resolve().then(l.bind(l,78448))},78448:(e,t,l)=>{"use strict";l.r(t),l.d(t,{default:()=>O});var s=l(54568),n=l(7620),a=l(65587),r=l.n(a),o=l(34454),c=l(72329),i=l(72458),d=l(41987),u=l(3858);let x={ok:"rgb(148,163,184)",warn:"rgb(251,191,36)",over:"rgb(248,113,113)"},m={ok:"Within limit",warn:"Approaching limit",over:"Over limit"};function h(e,t){let l;if(t<=0)return{level:"ok",pct:0,color:x.ok,label:m.ok};let s=Math.round(Math.max(0,e)/t*100);return{level:l=s>=100?"over":s>=70?"warn":"ok",pct:s,color:x[l],label:m[l]}}var f=l(93083),p=l(27885),b=l(7817),g=l(16897),v=l(31787),y=l(99459),j=l(94752),N=l(81305),k=l(33869),w=l(857);let C={background:"var(--surface-panel)",border:"1px solid var(--border-default)",boxShadow:"var(--shadow-card)"},E={background:"var(--surface-panel)",border:"1px solid var(--border-default)"};function _(e){if(e<1e3)return e.toLocaleString();let t=Math.ceil(e/100)/10;return`${t.toFixed(1)}k`}function S({label:e,value:t,accent:l,onClick:n,hint:a}){let r=!!n;return(0,s.jsxs)("div",{role:r?"button":void 0,tabIndex:r?0:void 0,onClick:n,onKeyDown:r?e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),n())}:void 0,title:a,className:`rounded-lg px-4 py-3 flex flex-col gap-0.5 ${r?"cursor-pointer transition-all hover:brightness-110 outline-none focus-visible:ring-2 focus-visible:ring-[var(--action)]":""}`,style:E,children:[(0,s.jsxs)("span",{className:"text-xs text-fg-muted uppercase tracking-widest flex items-center gap-1",children:[e,r&&(0,s.jsx)("span",{"aria-hidden":!0,className:"text-fg-faint text-[10px]",children:"↓"})]}),(0,s.jsx)("span",{className:"text-xl font-semibold font-mono",style:{color:l??"var(--text-bright)"},children:t})]})}function $({label:e,value:t,positive:l,bold:n,accent:a}){return(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("span",{className:n?"text-fg-bright":"text-fg-muted",children:(0,s.jsx)(j.I,{children:e})}),(0,s.jsx)("span",{className:n?"font-semibold":"",style:{color:a??(n?"var(--text-bright)":l?"var(--lens-green)":"var(--text-muted)")},children:t})]})}function O(){let e,t,{tq:l,ready:a}=(0,i.e)(),{wq:x}=(0,d.V)(l),m=(0,p.F)(),[O,L]=(0,n.useState)(null),[F,T]=(0,n.useState)(null),[P,A]=(0,n.useState)(null),[B,I]=(0,n.useState)(!0),[M,R]=(0,n.useState)(!1),[D,H]=(0,n.useState)(null),[U,G]=(0,n.useState)(null),[W,K]=(0,n.useState)(null);async function X(){R(!0),H(null);try{let e=await fetch(`/api/blue/scan${l}${x}`,{method:"POST"}),t=await e.json();if(!e.ok)throw Error(t.error??"Scan failed");L(t.scan)}catch(e){H(e instanceof Error?e.message:String(e))}finally{R(!1)}}(0,n.useEffect)(()=>{m&&(L(m.blue.scan),G(m.blue.recommendations),K(m.blue.sessions))},[m]),(0,n.useEffect)(()=>{a&&!m&&(fetch(`/api/blue/recommendations${l}`).then(e=>e.ok?e.json():{recommendations:[]}).then(e=>G(e.recommendations??[])).catch(()=>G([])),fetch(`/api/blue/sessions${l}`).then(e=>e.ok?e.json():{sessions:[]}).then(e=>K(e.sessions??[])).catch(()=>K([])))},[a,x]),(0,n.useEffect)(()=>{a&&!m&&(H(null),fetch(`/api/blue/scan${l}${x}`).then(async e=>{let t=await e.json().catch(()=>null);if(!e.ok)throw Error(t&&"string"==typeof t.error&&t.error||`Failed to load scans (HTTP ${e.status})`);return t}).then(e=>{L(e?.scan??null),T(e?.avgHeat??null),A(e?.blueprintFileCount??null)}).catch(e=>{H(e instanceof Error?e.message:"Failed to load scans")}).finally(()=>I(!1)))},[a,x]);let q=(0,n.useMemo)(()=>{var e;let t,l,s,n,a,r;if(!O)return null;let o=U?.filter(e=>"approved"===e.status).length??0;return[{href:"/blue/sessions",label:"Ask BLUE",icon:"sessions",color:"var(--lens-blue)",badge:W?(t=W.filter(e=>"active"===e.status).length,l=W.filter(e=>"completed"===e.status).length,`${t} active \xb7 ${l} completed`):"—",testId:"card-sessions"},{href:o>0?"/blue/recommendations?filter=approved":"/blue/recommendations",label:"Recommendations",icon:"recommendations",color:"var(--lens-blue)",badge:U?(s=U.length,n=U.filter(e=>"approved"===e.status).length,a=U.filter(e=>"rejected"===e.status).length,r=[String(s)],n>0&&r.push(`${n} approved`),a>0&&r.push(`${a} rejected`),r.join(" \xb7 ")):"—",testId:"card-recommendations"},{href:"/blue/explorer/cycles",label:"Cycles",icon:"cycles",color:"var(--sev-red)",badge:(e=O.cycle_count,`${e} cycle${1===e?"":"s"}`),testId:"card-cycles"}]},[O,U,W]),z=(0,n.useMemo)(()=>{if(!O)return null;let e=O.cycle_count,t=O.top_churned_files.length,l=O.todos.length;return null!=F?(0,k.EL)({avgHeat:F,fileCount:P??O.file_count,cycleCount:e,churnHotspotCount:t,todoCount:l}):(0,k.Fx)({fileCount:O.file_count,cycleCount:e,churnHotspotCount:t,todoCount:l})},[O,F,P]),V=(0,n.useMemo)(()=>{if(!O)return null;let e=O.cycle_count,t=O.top_churned_files.length,l=O.todos.length;return null!=F?(0,k.N5)({avgHeat:F,fileCount:P??O.file_count,cycleCount:e,churnHotspotCount:t,todoCount:l}):(0,k.Tf)({fileCount:O.file_count,cycleCount:e,churnHotspotCount:t,todoCount:l})},[O,F,P]);return(0,f._)()&&!m?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.PrismDock,{}),(0,s.jsx)(f.r,{botName:"BLUE",botColor:"var(--lens-blue)",botTagline:"Sessions + Recommendations"})]}):(0,s.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[m&&(0,s.jsx)(b.x,{}),(0,s.jsx)(o.PrismDock,{}),(0,s.jsx)(v.A,{storageKey:"firstEver",accent:"blue",shouldShow:()=>!O,steps:[{title:"Welcome to prism0x2A",body:"Three lenses make sense of your codebase: BLUE for structure, AMBER for capabilities, GREEN for cross-layer health.",cta:{label:"Take the 1-minute grand tour →",onClick:()=>{(0,w.hm)(),window.location.reload()}}},{title:"Local-first — your code stays on your machine",body:"prism never uploads source code. Everything runs locally. Optional Claude API key unlocks AI insights — paste it once in Settings and it's encrypted at rest.",cta:{label:"Open Settings",href:"/settings"}},{title:"Free tier covers 15k LOC",body:"Beyond that you'll need a Pro / Team / Spectrum license. Click \"Get Pro\" on the pricing page when you're ready — instant activation, no account creation.",cta:{label:"See pricing",href:"/pricing"}},{title:"Ready? Start with BLUE",body:'We\'ve already detected this folder — just click "Run scan" above to analyse it. Takes a few seconds. Then explore AMBER and GREEN.'},{title:"Curious what the dashboard looks like first?",body:"There's a live read-only demo with sample data from a fictional repo — no install needed. Useful for sharing with teammates before everyone installs locally.",cta:{label:"Open live demo →",href:"https://prism0x2a-161em8o5j-atomar.vercel.app/blue?demo=1"}}]}),(0,s.jsx)(v.A,{storageKey:"blue",accent:"blue",shouldShow:()=>!O&&(0,w.lA)("firstEver"),steps:[{title:"Welcome to BLUE",body:"BLUE is the structure lens. It finds import cycles, churn hotspots, TODOs and dependency graphs across your codebase."},{title:"Start with a scan",body:'Click "Run scan" in the top-right to analyse this project. It takes 1–10 seconds depending on size.',cta:{label:"Run scan now",onClick:()=>{let e=document.querySelector('button[class*="bg-blue"]');e?.click()}}},{title:"Then the Explorer",body:"Once you've scanned BLUE, the Explorer blueprint builds automatically in the background. Open Blueprint Explorer for an interactive 6-view tour — Graph, Zones, Wire, Flow, Fitness, and App."}]}),(0,s.jsxs)("main",{className:"flex-1 flex flex-col items-center w-full max-w-4xl mx-auto px-6 pt-20 pb-16 gap-6",children:[(0,s.jsxs)("div",{className:"w-full flex items-center justify-between",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("h1",{className:"text-xl font-semibold text-fg-bright tracking-tight",children:[(0,s.jsx)("span",{className:"font-mono",style:{color:"var(--lens-blue)"},children:"BLUE"}),(0,s.jsx)("span",{className:"text-fg-muted text-sm font-normal ml-2",children:"Architecture Intelligence"}),(0,s.jsx)("span",{className:"ml-2 text-[10px] font-mono uppercase tracking-wider px-1.5 py-0.5 rounded align-middle",style:{background:"color-mix(in srgb, var(--lens-blue) 10%, transparent)",color:"var(--lens-blue)",border:"1px solid color-mix(in srgb, var(--lens-blue) 25%, transparent)"},title:"Recommended order: BLUE → AMBER → GREEN",children:"Step 1 of 3"})]}),O&&(0,s.jsxs)("p",{className:"text-xs text-fg-muted mt-0.5 font-mono",children:["Last scan: ",new Date(O.created_at).toLocaleString()," \xb7 ",O.target]})]}),(0,s.jsx)("button",{onClick:X,disabled:M,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-50",style:{background:"var(--lens-blue)",color:"#fff"},children:M?"Scanning…":O?"Re-scan":"Run scan"})]}),O?.loc_over_limit&&(0,s.jsxs)("div",{className:"w-full rounded-xl px-5 py-4 flex items-center justify-between gap-4",style:{background:"color-mix(in srgb, var(--lens-amber) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--lens-amber) 20%, transparent)"},children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("p",{className:"text-sm font-semibold text-amber-400",children:[O.loc?.toLocaleString()," LOC in this project"]}),(0,s.jsxs)("p",{className:"text-xs text-fg-muted mt-0.5",children:["Free tier covers ",u.jL.toLocaleString()," LOC. Partial analysis only."]})]}),(0,s.jsx)("span",{className:"text-xs font-bold px-2 py-1 rounded-full flex-shrink-0",style:{background:"var(--surface-overlay)",color:"var(--text-muted)",border:"1px solid var(--border-default)"},children:"PRO"})]}),D&&(0,s.jsx)("div",{className:"w-full rounded-lg px-4 py-3 text-sm text-red-400 font-mono",style:{background:"color-mix(in srgb, var(--sev-red) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--sev-red) 20%, transparent)"},children:D}),(!a||B)&&!O&&(0,s.jsx)(c.X,{statCount:4,navCount:3,navCols:2,accent:"color-mix(in srgb, var(--lens-blue) 15%, transparent)"}),a&&!B&&!O&&!M&&(0,s.jsxs)("div",{className:"w-full rounded-xl p-6 flex flex-col gap-4",style:C,children:[(0,s.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,s.jsx)("p",{className:"text-fg font-medium",children:"No scan yet"}),(0,s.jsx)("p",{className:"text-fg-muted text-xs font-mono",children:"~1–10s"})]}),(0,s.jsx)("p",{className:"text-fg-muted text-sm",children:"Run your first scan to surface structural signals across this repo. You'll get back a snapshot like this:"}),(0,s.jsx)("div",{className:"grid grid-cols-3 gap-2",children:[{label:"Files",hint:"scanned + LOC"},{label:"Cycles",hint:"import graph SCCs"},{label:"Churn",hint:"git hotspots"},{label:"TODOs",hint:"+ FIXME / HACK"},{label:"Coverage",hint:"test + drift"},{label:"Explorer",hint:"blueprint ready"}].map(e=>(0,s.jsxs)("div",{className:"rounded-lg px-3 py-2.5 flex flex-col gap-0.5",style:{background:"color-mix(in srgb, var(--lens-blue) 6%, transparent)",border:"1px solid color-mix(in srgb, var(--lens-blue) 15%, transparent)"},children:[(0,s.jsx)("span",{className:"text-xs font-mono text-blue-300",children:e.label}),(0,s.jsx)("span",{className:"text-[10px] text-fg-muted",children:e.hint})]},e.label))}),(0,s.jsxs)("p",{className:"text-fg-muted text-xs",children:["Click ",(0,s.jsx)("span",{className:"font-mono text-blue-400",children:"Run scan"})," above to start — your code stays local."]})]}),O&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"w-full grid grid-cols-5 gap-3",children:[(0,s.jsx)(S,{label:"Files",value:O.file_count}),(0,s.jsx)(S,{label:"Total LOC",value:void 0!==O.loc?O.loc_over_limit?(e=h(O.loc,u.jL),t=`${(u.jL/1e3).toFixed(0)}k`,`${_(O.loc)} / ${t} \xb7 ${e.pct}%`):_(O.loc):"—",accent:void 0!==O.loc?O.loc_over_limit?h(O.loc,u.jL).color:"var(--text-bright)":"var(--text-muted)"}),(0,s.jsx)(S,{label:"Cycles",value:O.cycle_count,accent:O.cycle_count>0?"var(--sev-red)":"var(--lens-green)"}),(0,s.jsx)(S,{label:"TODOs",value:O.todos.length,accent:O.todos.length>0?"var(--lens-amber)":"var(--lens-green)"}),z&&(0,s.jsx)(S,{label:"Health",value:`${z.health} \xb7 ${z.grade}`,hint:"How is this calculated? Click to see the breakdown",onClick:()=>{document.getElementById("health-breakdown")?.scrollIntoView({behavior:"smooth",block:"center"})},accent:z.health>=70?"var(--lens-green)":z.health>=40?"var(--lens-amber)":"var(--sev-red)"})]}),z&&V&&(0,s.jsxs)("div",{id:"health-breakdown",className:"w-full rounded-xl p-5 flex flex-col gap-3 scroll-mt-24",style:C,children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("h2",{className:"text-xs font-semibold text-fg-muted uppercase tracking-widest",children:"Health breakdown"}),(0,s.jsx)("span",{className:"text-[10px] font-mono uppercase tracking-wider px-1.5 py-0.5 rounded",style:{background:"var(--surface-overlay)",color:"var(--text-muted)"},title:"full"===V.confidence?"Computed from the cached blueprint's heat spine":"No blueprint cached — coarse score from scan signals only",children:"full"===V.confidence?"full confidence":"coarse"})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1.5 font-mono text-sm",children:[(0,s.jsx)($,{label:"full"===V.confidence?"Heat spine (100 − avg heat)":"Neutral baseline (no blueprint)",value:`${V.base.toFixed(1)}`,positive:!0}),(0,s.jsx)($,{label:"− Import-cycle density",value:`−${V.cyclePenalty.toFixed(1)}`}),(0,s.jsx)($,{label:"− Churn concentration",value:`−${V.churnPenalty.toFixed(1)}`}),(0,s.jsx)($,{label:"− TODO density",value:`−${V.todoPenalty.toFixed(1)}`}),(0,s.jsx)("div",{className:"h-px my-1",style:{background:"var(--border-default)"}}),(0,s.jsx)($,{label:"Health score",value:`${z.health} \xb7 ${z.grade}`,bold:!0,accent:z.health>=70?"var(--lens-green)":z.health>=40?"var(--lens-amber)":"var(--sev-red)"})]}),(0,s.jsx)("p",{className:"text-[11px] text-fg-faint leading-relaxed",children:(0,s.jsx)(j.I,{children:"Each penalty is normalised per 100 files (so repos compare fairly) and individually capped — cycles ≤15, churn ≤10, TODOs ≤8 — so no single signal dominates the heat spine. Grade bands: A ≥ 85, B ≥ 70, C ≥ 55, D ≥ 40, else F."})})]}),O.cycle_count>0&&(0,s.jsxs)("div",{className:"w-full rounded-xl p-5 flex flex-col gap-3",style:C,children:[(0,s.jsxs)("h2",{className:"text-xs font-semibold text-fg-muted uppercase tracking-widest",children:["Import Cycles (",O.cycle_count,")"]}),(0,s.jsx)("div",{className:"flex flex-col gap-2",children:O.cycle_groups.slice(0,5).map(e=>(0,s.jsxs)("div",{className:"rounded-lg px-3 py-2",style:E,children:[(0,s.jsx)("div",{className:"flex items-center gap-2 mb-1",children:(0,s.jsxs)("span",{className:"text-xs font-mono text-red-400",children:[e.size," files"]})}),e.paths.slice(0,3).map(e=>(0,s.jsx)("p",{className:"text-xs font-mono text-fg-muted truncate",children:e},e)),e.paths.length>3&&(0,s.jsxs)("p",{className:"text-xs text-fg-faint",children:["+",e.paths.length-3," more"]})]},e.id))})]}),O.top_churned_files.length>0&&(0,s.jsxs)("div",{className:"w-full rounded-xl p-5 flex flex-col gap-3",style:C,children:[(0,s.jsx)("h2",{className:"text-xs font-semibold text-fg-muted uppercase tracking-widest",children:"High-Churn Files (90d)"}),(0,s.jsx)("div",{className:"flex flex-col gap-1",children:O.top_churned_files.slice(0,8).map(e=>(0,s.jsxs)("div",{className:"flex items-center justify-between py-1 border-b",style:{borderColor:"var(--border-default)"},children:[(0,s.jsx)("span",{className:"text-xs font-mono text-fg-muted truncate flex-1",children:e.path}),(0,s.jsxs)("span",{className:"text-xs font-mono text-amber-400 ml-3 flex-shrink-0",children:[e.count_90d,"c"]})]},e.path))})]}),O.todos.length>0&&(0,s.jsxs)("div",{className:"w-full rounded-xl p-5 flex flex-col gap-3",style:C,children:[(0,s.jsxs)("h2",{className:"text-xs font-semibold text-fg-muted uppercase tracking-widest",children:["TODOs / FIXMEs (",O.todos.length,")"]}),(0,s.jsx)("div",{className:"flex flex-col gap-1",children:O.todos.slice(0,6).map((e,t)=>(0,s.jsxs)("div",{className:"py-1 border-b",style:{borderColor:"var(--border-default)"},children:[(0,s.jsx)("p",{className:"text-xs font-mono text-amber-300 truncate",children:e.text}),(0,s.jsx)("p",{className:"text-xs text-fg-faint truncate",children:e.path})]},t))})]}),(0,s.jsx)("div",{className:"w-full grid grid-cols-3 gap-3",children:q?.filter(({href:e})=>(0,N.Ol)((0,N.Xr)(e))).map(({href:e,label:t,icon:l,color:n,badge:a,testId:o})=>{let c="/blue/sessions"===e;return(0,s.jsxs)(r(),{href:e,"data-testid":o,className:"rounded-xl p-5 flex flex-col gap-2 transition-all hover:brightness-110",style:c?{...C,background:`color-mix(in srgb, ${n} 6%, var(--surface-panel))`,borderColor:`color-mix(in srgb, ${n} 40%, transparent)`,boxShadow:`0 0 0 1px color-mix(in srgb, ${n} 12%, transparent), var(--shadow-card)`}:{...C,borderColor:`color-mix(in srgb, ${n} 19%, transparent)`},children:[(0,s.jsx)(y.In,{name:l,size:22,color:n,"aria-hidden":!0}),(0,s.jsx)("span",{className:"text-sm font-semibold",style:{color:n},children:t}),(0,s.jsx)("span",{className:"text-[11px] font-mono text-fg-muted truncate",children:a})]},t)})})]})]}),a&&O&&(0,s.jsx)("div",{className:"w-full max-w-4xl mx-auto px-6 pb-8",children:(0,s.jsx)(g.A,{tq:l,wq:x,compact:!0})}),(0,s.jsxs)("footer",{className:"text-center py-4 text-xs text-fg-faint",children:["prism",(0,s.jsx)("span",{className:"font-mono",children:"0x2A"})," v","0.27.7"," \xb7 BLUE"]})]})}}},e=>{e.O(0,[5587,542,4454,4752,9645,4237,9541,6897,587,1968,7358],()=>e(e.s=64995)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4027],{33869:(e,t,l)=>{"use strict";function s(e){return Number.isFinite(e)?Math.max(0,Math.min(100,e)):0}function n(e){return e>=85?"A":e>=70?"B":e>=55?"C":e>=40?"D":"F"}function a(e,t){return t<=0?0:Math.min(15,e/t*300)}function r(e,t){return t<=0?0:Math.min(10,e/t*100)}function o(e,t){return t<=0?0:Math.min(8,e/t*50)}function c(e){let t=100-s(e.avgHeat),l=a(e.cycleCount,e.fileCount),c=r(e.churnHotspotCount,e.fileCount),i=o(e.todoCount,e.fileCount),d=Math.round(s(t-l-c-i));return{base:t,cyclePenalty:l,churnPenalty:c,todoPenalty:i,health:d,grade:n(d),confidence:"full"}}function i(e){let{health:t,grade:l,confidence:s}=c(e);return{health:t,grade:l,confidence:s}}function d(e){let t=1.5*a(e.cycleCount,e.fileCount),l=1.5*r(e.churnHotspotCount,e.fileCount),c=1.5*o(e.todoCount,e.fileCount),i=Math.round(s(80-t-l-c));return{base:80,cyclePenalty:t,churnPenalty:l,todoPenalty:c,health:i,grade:n(i),confidence:"coarse"}}function u(e){let{health:t,grade:l,confidence:s}=d(e);return{health:t,grade:l,confidence:s}}l.d(t,{EL:()=>i,Fx:()=>u,N5:()=>c,Tf:()=>d})},64995:(e,t,l)=>{Promise.resolve().then(l.bind(l,78448))},78448:(e,t,l)=>{"use strict";l.r(t),l.d(t,{default:()=>O});var s=l(54568),n=l(7620),a=l(65587),r=l.n(a),o=l(34454),c=l(72329),i=l(72458),d=l(41987),u=l(3858);let x={ok:"rgb(148,163,184)",warn:"rgb(251,191,36)",over:"rgb(248,113,113)"},m={ok:"Within limit",warn:"Approaching limit",over:"Over limit"};function h(e,t){let l;if(t<=0)return{level:"ok",pct:0,color:x.ok,label:m.ok};let s=Math.round(Math.max(0,e)/t*100);return{level:l=s>=100?"over":s>=70?"warn":"ok",pct:s,color:x[l],label:m[l]}}var f=l(93083),p=l(27885),b=l(7817),g=l(16897),v=l(31787),y=l(99459),j=l(94752),N=l(81305),k=l(33869),w=l(857);let C={background:"var(--surface-panel)",border:"1px solid var(--border-default)",boxShadow:"var(--shadow-card)"},E={background:"var(--surface-panel)",border:"1px solid var(--border-default)"};function _(e){if(e<1e3)return e.toLocaleString();let t=Math.ceil(e/100)/10;return`${t.toFixed(1)}k`}function S({label:e,value:t,accent:l,onClick:n,hint:a}){let r=!!n;return(0,s.jsxs)("div",{role:r?"button":void 0,tabIndex:r?0:void 0,onClick:n,onKeyDown:r?e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),n())}:void 0,title:a,className:`rounded-lg px-4 py-3 flex flex-col gap-0.5 ${r?"cursor-pointer transition-all hover:brightness-110 outline-none focus-visible:ring-2 focus-visible:ring-[var(--action)]":""}`,style:E,children:[(0,s.jsxs)("span",{className:"text-xs text-fg-muted uppercase tracking-widest flex items-center gap-1",children:[e,r&&(0,s.jsx)("span",{"aria-hidden":!0,className:"text-fg-faint text-[10px]",children:"↓"})]}),(0,s.jsx)("span",{className:"text-xl font-semibold font-mono",style:{color:l??"var(--text-bright)"},children:t})]})}function $({label:e,value:t,positive:l,bold:n,accent:a}){return(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("span",{className:n?"text-fg-bright":"text-fg-muted",children:(0,s.jsx)(j.I,{children:e})}),(0,s.jsx)("span",{className:n?"font-semibold":"",style:{color:a??(n?"var(--text-bright)":l?"var(--lens-green)":"var(--text-muted)")},children:t})]})}function O(){let e,t,{tq:l,ready:a}=(0,i.e)(),{wq:x}=(0,d.V)(l),m=(0,p.F)(),[O,L]=(0,n.useState)(null),[F,T]=(0,n.useState)(null),[P,A]=(0,n.useState)(null),[B,I]=(0,n.useState)(!0),[M,R]=(0,n.useState)(!1),[D,H]=(0,n.useState)(null),[U,G]=(0,n.useState)(null),[W,K]=(0,n.useState)(null);async function X(){R(!0),H(null);try{let e=await fetch(`/api/blue/scan${l}${x}`,{method:"POST"}),t=await e.json();if(!e.ok)throw Error(t.error??"Scan failed");L(t.scan)}catch(e){H(e instanceof Error?e.message:String(e))}finally{R(!1)}}(0,n.useEffect)(()=>{m&&(L(m.blue.scan),G(m.blue.recommendations),K(m.blue.sessions))},[m]),(0,n.useEffect)(()=>{a&&!m&&(fetch(`/api/blue/recommendations${l}`).then(e=>e.ok?e.json():{recommendations:[]}).then(e=>G(e.recommendations??[])).catch(()=>G([])),fetch(`/api/blue/sessions${l}`).then(e=>e.ok?e.json():{sessions:[]}).then(e=>K(e.sessions??[])).catch(()=>K([])))},[a,x]),(0,n.useEffect)(()=>{a&&!m&&(H(null),fetch(`/api/blue/scan${l}${x}`).then(async e=>{let t=await e.json().catch(()=>null);if(!e.ok)throw Error(t&&"string"==typeof t.error&&t.error||`Failed to load scans (HTTP ${e.status})`);return t}).then(e=>{L(e?.scan??null),T(e?.avgHeat??null),A(e?.blueprintFileCount??null)}).catch(e=>{H(e instanceof Error?e.message:"Failed to load scans")}).finally(()=>I(!1)))},[a,x]);let q=(0,n.useMemo)(()=>{var e;let t,l,s,n,a,r;if(!O)return null;let o=U?.filter(e=>"approved"===e.status).length??0;return[{href:"/blue/sessions",label:"Ask BLUE",icon:"sessions",color:"var(--lens-blue)",badge:W?(t=W.filter(e=>"active"===e.status).length,l=W.filter(e=>"completed"===e.status).length,`${t} active \xb7 ${l} completed`):"—",testId:"card-sessions"},{href:o>0?"/blue/recommendations?filter=approved":"/blue/recommendations",label:"Recommendations",icon:"recommendations",color:"var(--lens-blue)",badge:U?(s=U.length,n=U.filter(e=>"approved"===e.status).length,a=U.filter(e=>"rejected"===e.status).length,r=[String(s)],n>0&&r.push(`${n} approved`),a>0&&r.push(`${a} rejected`),r.join(" \xb7 ")):"—",testId:"card-recommendations"},{href:"/blue/explorer/cycles",label:"Cycles",icon:"cycles",color:"var(--sev-red)",badge:(e=O.cycle_count,`${e} cycle${1===e?"":"s"}`),testId:"card-cycles"}]},[O,U,W]),z=(0,n.useMemo)(()=>{if(!O)return null;let e=O.cycle_count,t=O.top_churned_files.length,l=O.todos.length;return null!=F?(0,k.EL)({avgHeat:F,fileCount:P??O.file_count,cycleCount:e,churnHotspotCount:t,todoCount:l}):(0,k.Fx)({fileCount:O.file_count,cycleCount:e,churnHotspotCount:t,todoCount:l})},[O,F,P]),V=(0,n.useMemo)(()=>{if(!O)return null;let e=O.cycle_count,t=O.top_churned_files.length,l=O.todos.length;return null!=F?(0,k.N5)({avgHeat:F,fileCount:P??O.file_count,cycleCount:e,churnHotspotCount:t,todoCount:l}):(0,k.Tf)({fileCount:O.file_count,cycleCount:e,churnHotspotCount:t,todoCount:l})},[O,F,P]);return(0,f._)()&&!m?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.PrismDock,{}),(0,s.jsx)(f.r,{botName:"BLUE",botColor:"var(--lens-blue)",botTagline:"Sessions + Recommendations"})]}):(0,s.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[m&&(0,s.jsx)(b.x,{}),(0,s.jsx)(o.PrismDock,{}),(0,s.jsx)(v.A,{storageKey:"firstEver",accent:"blue",shouldShow:()=>!O,steps:[{title:"Welcome to prism0x2A",body:"Three lenses make sense of your codebase: BLUE for structure, AMBER for capabilities, GREEN for cross-layer health.",cta:{label:"Take the 1-minute grand tour →",onClick:()=>{(0,w.hm)(),window.location.reload()}}},{title:"Local-first — your code stays on your machine",body:"prism never uploads source code. Everything runs locally. Optional Claude API key unlocks AI insights — paste it once in Settings and it's encrypted at rest.",cta:{label:"Open Settings",href:"/settings"}},{title:"Free tier covers 15k LOC",body:"Beyond that you'll need a Pro / Team / Spectrum license. Click \"Get Pro\" on the pricing page when you're ready — instant activation, no account creation.",cta:{label:"See pricing",href:"/pricing"}},{title:"Ready? Start with BLUE",body:'We\'ve already detected this folder — just click "Run scan" above to analyse it. Takes a few seconds. Then explore AMBER and GREEN.'},{title:"Curious what the dashboard looks like first?",body:"There's a live read-only demo with sample data from a fictional repo — no install needed. Useful for sharing with teammates before everyone installs locally.",cta:{label:"Open live demo →",href:"https://prism0x2a-161em8o5j-atomar.vercel.app/blue?demo=1"}}]}),(0,s.jsx)(v.A,{storageKey:"blue",accent:"blue",shouldShow:()=>!O&&(0,w.lA)("firstEver"),steps:[{title:"Welcome to BLUE",body:"BLUE is the structure lens. It finds import cycles, churn hotspots, TODOs and dependency graphs across your codebase."},{title:"Start with a scan",body:'Click "Run scan" in the top-right to analyse this project. It takes 1–10 seconds depending on size.',cta:{label:"Run scan now",onClick:()=>{let e=document.querySelector('button[class*="bg-blue"]');e?.click()}}},{title:"Then the Explorer",body:"Once you've scanned BLUE, the Explorer blueprint builds automatically in the background. Open Blueprint Explorer for an interactive 6-view tour — Graph, Zones, Wire, Flow, Fitness, and App."}]}),(0,s.jsxs)("main",{className:"flex-1 flex flex-col items-center w-full max-w-4xl mx-auto px-6 pt-20 pb-16 gap-6",children:[(0,s.jsxs)("div",{className:"w-full flex items-center justify-between",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("h1",{className:"text-xl font-semibold text-fg-bright tracking-tight",children:[(0,s.jsx)("span",{className:"font-mono",style:{color:"var(--lens-blue)"},children:"BLUE"}),(0,s.jsx)("span",{className:"text-fg-muted text-sm font-normal ml-2",children:"Architecture Intelligence"}),(0,s.jsx)("span",{className:"ml-2 text-[10px] font-mono uppercase tracking-wider px-1.5 py-0.5 rounded align-middle",style:{background:"color-mix(in srgb, var(--lens-blue) 10%, transparent)",color:"var(--lens-blue)",border:"1px solid color-mix(in srgb, var(--lens-blue) 25%, transparent)"},title:"Recommended order: BLUE → AMBER → GREEN",children:"Step 1 of 3"})]}),O&&(0,s.jsxs)("p",{className:"text-xs text-fg-muted mt-0.5 font-mono",children:["Last scan: ",new Date(O.created_at).toLocaleString()," \xb7 ",O.target]})]}),(0,s.jsx)("button",{onClick:X,disabled:M,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-50",style:{background:"var(--lens-blue)",color:"#fff"},children:M?"Scanning…":O?"Re-scan":"Run scan"})]}),O?.loc_over_limit&&(0,s.jsxs)("div",{className:"w-full rounded-xl px-5 py-4 flex items-center justify-between gap-4",style:{background:"color-mix(in srgb, var(--lens-amber) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--lens-amber) 20%, transparent)"},children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("p",{className:"text-sm font-semibold text-amber-400",children:[O.loc?.toLocaleString()," LOC in this project"]}),(0,s.jsxs)("p",{className:"text-xs text-fg-muted mt-0.5",children:["Free tier covers ",u.jL.toLocaleString()," LOC. Partial analysis only."]})]}),(0,s.jsx)("span",{className:"text-xs font-bold px-2 py-1 rounded-full flex-shrink-0",style:{background:"var(--surface-overlay)",color:"var(--text-muted)",border:"1px solid var(--border-default)"},children:"PRO"})]}),D&&(0,s.jsx)("div",{className:"w-full rounded-lg px-4 py-3 text-sm text-red-400 font-mono",style:{background:"color-mix(in srgb, var(--sev-red) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--sev-red) 20%, transparent)"},children:D}),(!a||B)&&!O&&(0,s.jsx)(c.X,{statCount:4,navCount:3,navCols:2,accent:"color-mix(in srgb, var(--lens-blue) 15%, transparent)"}),a&&!B&&!O&&!M&&(0,s.jsxs)("div",{className:"w-full rounded-xl p-6 flex flex-col gap-4",style:C,children:[(0,s.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,s.jsx)("p",{className:"text-fg font-medium",children:"No scan yet"}),(0,s.jsx)("p",{className:"text-fg-muted text-xs font-mono",children:"~1–10s"})]}),(0,s.jsx)("p",{className:"text-fg-muted text-sm",children:"Run your first scan to surface structural signals across this repo. You'll get back a snapshot like this:"}),(0,s.jsx)("div",{className:"grid grid-cols-3 gap-2",children:[{label:"Files",hint:"scanned + LOC"},{label:"Cycles",hint:"import graph SCCs"},{label:"Churn",hint:"git hotspots"},{label:"TODOs",hint:"+ FIXME / HACK"},{label:"Coverage",hint:"test + drift"},{label:"Explorer",hint:"blueprint ready"}].map(e=>(0,s.jsxs)("div",{className:"rounded-lg px-3 py-2.5 flex flex-col gap-0.5",style:{background:"color-mix(in srgb, var(--lens-blue) 6%, transparent)",border:"1px solid color-mix(in srgb, var(--lens-blue) 15%, transparent)"},children:[(0,s.jsx)("span",{className:"text-xs font-mono text-blue-300",children:e.label}),(0,s.jsx)("span",{className:"text-[10px] text-fg-muted",children:e.hint})]},e.label))}),(0,s.jsxs)("p",{className:"text-fg-muted text-xs",children:["Click ",(0,s.jsx)("span",{className:"font-mono text-blue-400",children:"Run scan"})," above to start — your code stays local."]})]}),O&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)("div",{className:"w-full grid grid-cols-5 gap-3",children:[(0,s.jsx)(S,{label:"Files",value:O.file_count}),(0,s.jsx)(S,{label:"Total LOC",value:void 0!==O.loc?O.loc_over_limit?(e=h(O.loc,u.jL),t=`${(u.jL/1e3).toFixed(0)}k`,`${_(O.loc)} / ${t} \xb7 ${e.pct}%`):_(O.loc):"—",accent:void 0!==O.loc?O.loc_over_limit?h(O.loc,u.jL).color:"var(--text-bright)":"var(--text-muted)"}),(0,s.jsx)(S,{label:"Cycles",value:O.cycle_count,accent:O.cycle_count>0?"var(--sev-red)":"var(--lens-green)"}),(0,s.jsx)(S,{label:"TODOs",value:O.todos.length,accent:O.todos.length>0?"var(--lens-amber)":"var(--lens-green)"}),z&&(0,s.jsx)(S,{label:"Health",value:`${z.health} \xb7 ${z.grade}`,hint:"How is this calculated? Click to see the breakdown",onClick:()=>{document.getElementById("health-breakdown")?.scrollIntoView({behavior:"smooth",block:"center"})},accent:z.health>=70?"var(--lens-green)":z.health>=40?"var(--lens-amber)":"var(--sev-red)"})]}),z&&V&&(0,s.jsxs)("div",{id:"health-breakdown",className:"w-full rounded-xl p-5 flex flex-col gap-3 scroll-mt-24",style:C,children:[(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[(0,s.jsx)("h2",{className:"text-xs font-semibold text-fg-muted uppercase tracking-widest",children:"Health breakdown"}),(0,s.jsx)("span",{className:"text-[10px] font-mono uppercase tracking-wider px-1.5 py-0.5 rounded",style:{background:"var(--surface-overlay)",color:"var(--text-muted)"},title:"full"===V.confidence?"Computed from the cached blueprint's heat spine":"No blueprint cached — coarse score from scan signals only",children:"full"===V.confidence?"full confidence":"coarse"})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-1.5 font-mono text-sm",children:[(0,s.jsx)($,{label:"full"===V.confidence?"Heat spine (100 − avg heat)":"Neutral baseline (no blueprint)",value:`${V.base.toFixed(1)}`,positive:!0}),(0,s.jsx)($,{label:"− Import-cycle density",value:`−${V.cyclePenalty.toFixed(1)}`}),(0,s.jsx)($,{label:"− Churn concentration",value:`−${V.churnPenalty.toFixed(1)}`}),(0,s.jsx)($,{label:"− TODO density",value:`−${V.todoPenalty.toFixed(1)}`}),(0,s.jsx)("div",{className:"h-px my-1",style:{background:"var(--border-default)"}}),(0,s.jsx)($,{label:"Health score",value:`${z.health} \xb7 ${z.grade}`,bold:!0,accent:z.health>=70?"var(--lens-green)":z.health>=40?"var(--lens-amber)":"var(--sev-red)"})]}),(0,s.jsx)("p",{className:"text-[11px] text-fg-faint leading-relaxed",children:(0,s.jsx)(j.I,{children:"Each penalty is normalised per 100 files (so repos compare fairly) and individually capped — cycles ≤15, churn ≤10, TODOs ≤8 — so no single signal dominates the heat spine. Grade bands: A ≥ 85, B ≥ 70, C ≥ 55, D ≥ 40, else F."})})]}),O.cycle_count>0&&(0,s.jsxs)("div",{className:"w-full rounded-xl p-5 flex flex-col gap-3",style:C,children:[(0,s.jsxs)("h2",{className:"text-xs font-semibold text-fg-muted uppercase tracking-widest",children:["Import Cycles (",O.cycle_count,")"]}),(0,s.jsx)("div",{className:"flex flex-col gap-2",children:O.cycle_groups.slice(0,5).map(e=>(0,s.jsxs)("div",{className:"rounded-lg px-3 py-2",style:E,children:[(0,s.jsx)("div",{className:"flex items-center gap-2 mb-1",children:(0,s.jsxs)("span",{className:"text-xs font-mono text-red-400",children:[e.size," files"]})}),e.paths.slice(0,3).map(e=>(0,s.jsx)("p",{className:"text-xs font-mono text-fg-muted truncate",children:e},e)),e.paths.length>3&&(0,s.jsxs)("p",{className:"text-xs text-fg-faint",children:["+",e.paths.length-3," more"]})]},e.id))})]}),O.top_churned_files.length>0&&(0,s.jsxs)("div",{className:"w-full rounded-xl p-5 flex flex-col gap-3",style:C,children:[(0,s.jsx)("h2",{className:"text-xs font-semibold text-fg-muted uppercase tracking-widest",children:"High-Churn Files (90d)"}),(0,s.jsx)("div",{className:"flex flex-col gap-1",children:O.top_churned_files.slice(0,8).map(e=>(0,s.jsxs)("div",{className:"flex items-center justify-between py-1 border-b",style:{borderColor:"var(--border-default)"},children:[(0,s.jsx)("span",{className:"text-xs font-mono text-fg-muted truncate flex-1",children:e.path}),(0,s.jsxs)("span",{className:"text-xs font-mono text-amber-400 ml-3 flex-shrink-0",children:[e.count_90d,"c"]})]},e.path))})]}),O.todos.length>0&&(0,s.jsxs)("div",{className:"w-full rounded-xl p-5 flex flex-col gap-3",style:C,children:[(0,s.jsxs)("h2",{className:"text-xs font-semibold text-fg-muted uppercase tracking-widest",children:["TODOs / FIXMEs (",O.todos.length,")"]}),(0,s.jsx)("div",{className:"flex flex-col gap-1",children:O.todos.slice(0,6).map((e,t)=>(0,s.jsxs)("div",{className:"py-1 border-b",style:{borderColor:"var(--border-default)"},children:[(0,s.jsx)("p",{className:"text-xs font-mono text-amber-300 truncate",children:e.text}),(0,s.jsx)("p",{className:"text-xs text-fg-faint truncate",children:e.path})]},t))})]}),(0,s.jsx)("div",{className:"w-full grid grid-cols-3 gap-3",children:q?.filter(({href:e})=>(0,N.Ol)((0,N.Xr)(e))).map(({href:e,label:t,icon:l,color:n,badge:a,testId:o})=>{let c="/blue/sessions"===e;return(0,s.jsxs)(r(),{href:e,"data-testid":o,className:"rounded-xl p-5 flex flex-col gap-2 transition-all hover:brightness-110",style:c?{...C,background:`color-mix(in srgb, ${n} 6%, var(--surface-panel))`,borderColor:`color-mix(in srgb, ${n} 40%, transparent)`,boxShadow:`0 0 0 1px color-mix(in srgb, ${n} 12%, transparent), var(--shadow-card)`}:{...C,borderColor:`color-mix(in srgb, ${n} 19%, transparent)`},children:[(0,s.jsx)(y.In,{name:l,size:22,color:n,"aria-hidden":!0}),(0,s.jsx)("span",{className:"text-sm font-semibold",style:{color:n},children:t}),(0,s.jsx)("span",{className:"text-[11px] font-mono text-fg-muted truncate",children:a})]},t)})})]})]}),a&&O&&(0,s.jsx)("div",{className:"w-full max-w-4xl mx-auto px-6 pb-8",children:(0,s.jsx)(g.A,{tq:l,wq:x,compact:!0})}),(0,s.jsxs)("footer",{className:"text-center py-4 text-xs text-fg-faint",children:["prism",(0,s.jsx)("span",{className:"font-mono",children:"0x2A"})," v","1.0.0"," \xb7 BLUE"]})]})}}},e=>{e.O(0,[5587,542,4454,4752,9645,4237,9541,6897,587,1968,7358],()=>e(e.s=64995)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4270],{2375:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>v});var r=s(54568),l=s(7620),a=s(65587),n=s.n(a),o=s(34454),i=s(99459);function d({rec:e,target:t,onClose:s,onStartSession:a}){let[n,o]=(0,l.useState)(""),[c,x]=(0,l.useState)(!0),[u,m]=(0,l.useState)(null),[p,f]=(0,l.useState)(!1),b=(0,l.useRef)(null),g=(0,l.useRef)(null);return(0,l.useEffect)(()=>{let s=new AbortController;return g.current=s,async function(){try{let r=await fetch("/api/blue/auto-execute",{method:"POST",headers:{"Content-Type":"application/json"},signal:s.signal,body:JSON.stringify({target:t,rec:{id:e.id,title:e.title,problem:e.problem,expected_impact:e.expected_impact,suggested_files:e.suggested_files,risk_level:e.risk_level}})});if(!r.ok){let e=await r.json().catch(()=>({}));m(e.error??"Request failed");return}if((r.headers.get("content-type")??"").includes("text/plain")&&r.body){let e=r.body.getReader(),t=new TextDecoder;for(;;){let{done:s,value:r}=await e.read();if(s)break;let l=t.decode(r,{stream:!0});o(e=>e+l),b.current&&(b.current.scrollTop=b.current.scrollHeight)}}else{let e=await r.text();o(e)}}catch(e){"AbortError"!==e.name&&m(String(e))}finally{x(!1)}}(),()=>s.abort()},[e.id,t]),(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",style:{background:"rgba(0,0,0,0.75)"},onClick:e=>{e.target===e.currentTarget&&s()},children:(0,r.jsxs)("div",{className:"flex flex-col rounded-2xl overflow-hidden",style:{background:"rgba(8,15,30,0.97)",border:"1px solid rgba(59,130,246,0.25)",boxShadow:"0 24px 80px rgba(0,0,0,0.7)",width:"min(720px, 95vw)",maxHeight:"85vh"},children:[(0,r.jsxs)("div",{className:"flex items-start gap-3 px-5 py-4 border-b flex-shrink-0",style:{borderColor:"var(--border-default)"},children:[(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,r.jsxs)("span",{className:"text-[10px] font-mono px-2 py-0.5 rounded",style:{background:"rgba(251,191,36,0.15)",color:"rgb(253,224,71)",border:"1px solid rgba(251,191,36,0.25)"},children:[(0,r.jsx)(i.In,{name:"zap",size:13,className:"inline align-[-1px] mr-px","aria-hidden":!0})," Auto-Execute"]}),(0,r.jsxs)("span",{className:"text-[10px] font-mono px-2 py-0.5 rounded",style:{background:"var(--surface-elevated)",color:"rgb(100,116,139)",border:"1px solid var(--border-default)"},children:[e.risk_level," risk"]})]}),(0,r.jsx)("h2",{className:"text-sm font-semibold text-fg leading-snug truncate",children:e.title})]}),(0,r.jsx)("button",{onClick:s,className:"text-fg-muted hover:text-fg transition-colors flex-shrink-0 text-lg leading-none",children:"✕"})]}),(0,r.jsxs)("div",{className:"flex-1 overflow-hidden flex flex-col",children:[c&&0===n.length&&(0,r.jsxs)("div",{className:"flex items-center gap-2 px-5 py-3 flex-shrink-0",style:{background:"rgba(59,130,246,0.05)",borderBottom:"1px solid var(--border-default)"},children:[(0,r.jsx)("span",{className:"inline-block w-3 h-3 border border-blue-400 border-t-transparent rounded-full animate-spin flex-shrink-0"}),(0,r.jsx)("span",{className:"text-[11px] text-fg-muted",children:"Generating action plan…"})]}),u&&(0,r.jsx)("div",{className:"mx-4 mt-4 px-3 py-2 rounded-lg text-xs text-red-400 font-mono",style:{background:"rgba(239,68,68,0.1)",border:"1px solid rgba(239,68,68,0.25)"},children:u}),(0,r.jsxs)("pre",{ref:b,className:"flex-1 overflow-y-auto p-5 text-[12px] font-mono text-fg whitespace-pre-wrap leading-relaxed",style:{minHeight:0},children:[n||(c?"":"(no output)"),c&&n.length>0&&(0,r.jsx)("span",{className:"inline-block w-1.5 h-4 bg-blue-400 animate-pulse ml-0.5 align-middle"})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3 px-5 py-3 border-t flex-shrink-0",style:{borderColor:"var(--border-default)",background:"rgba(5,10,20,0.5)"},children:[(0,r.jsx)("button",{onClick:function(){navigator.clipboard.writeText(n).then(()=>{f(!0),setTimeout(()=>f(!1),2e3)})},disabled:!n||c,className:"text-xs px-3 py-1.5 rounded-lg font-medium transition-all disabled:opacity-40",style:{background:"var(--surface-elevated)",color:"rgb(148,163,184)",border:"1px solid var(--border-strong)"},children:p?"✓ Copied":(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.In,{name:"clipboard",size:12,className:"inline align-[-1px] mr-px","aria-hidden":!0})," Copy plan"]})}),a&&(0,r.jsxs)("button",{onClick:()=>{s(),a()},className:"text-xs px-3 py-1.5 rounded-lg font-medium transition-all",style:{background:"rgba(59,130,246,0.15)",color:"rgb(147,197,253)",border:"1px solid rgba(59,130,246,0.3)"},children:[(0,r.jsx)(i.In,{name:"chat",size:11,className:"inline align-[-1px] mr-px","aria-hidden":!0})," Start session"]}),(0,r.jsx)("button",{onClick:()=>{g.current?.abort(),s()},className:"text-xs px-3 py-1.5 rounded-lg font-medium ml-auto transition-all",style:{background:"rgba(239,68,68,0.1)",color:"rgb(252,165,165)",border:"1px solid rgba(239,68,68,0.25)"},children:c?"⏹ Stop":"Close"})]})]})})}function c({turn:e}){return(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsx)("div",{className:"flex justify-end",children:(0,r.jsx)("div",{className:"max-w-xs rounded-xl rounded-tr-sm px-3 py-2 text-xs text-fg leading-relaxed",style:{background:"rgba(59,130,246,0.15)",border:"1px solid rgba(59,130,246,0.25)"},children:e.prompt})}),e.response?(0,r.jsx)("div",{className:"flex justify-start",children:(0,r.jsxs)("div",{className:"max-w-xs rounded-xl rounded-tl-sm px-3 py-2 text-xs text-fg leading-relaxed",style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)"},children:[(0,r.jsx)("span",{className:"text-blue-400 font-mono mr-1.5",children:"✦"}),(0,r.jsx)("span",{style:{whiteSpace:"pre-wrap"},children:e.response})]})}):(0,r.jsx)("div",{className:"flex justify-start",children:(0,r.jsxs)("div",{className:"rounded-xl rounded-tl-sm px-3 py-2 flex items-center gap-2",style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)"},children:[(0,r.jsx)("span",{className:"animate-spin inline-block w-3 h-3 border border-blue-400 border-t-transparent rounded-full"}),(0,r.jsx)("span",{className:"text-xs text-fg-muted",children:"Thinking…"})]})})]})}function x({recId:e,recTitle:t,target:s}){let[a,o]=(0,l.useState)(null),[d,u]=(0,l.useState)(!0),[m,p]=(0,l.useState)(!1),[f,b]=(0,l.useState)(""),[g,h]=(0,l.useState)(!1),[y,v]=(0,l.useState)(null),j=(0,l.useRef)(null),N=s?`?target=${encodeURIComponent(s)}`:"";async function k(){p(!0),v(null);try{let s=await fetch(`/api/blue/sessions${N}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:`Session: ${t}`,rec_id:e})}),r=await s.json();if(!s.ok)throw Error(r.error??"Failed to create session");o(r.session)}catch(e){v(e instanceof Error?e.message:String(e))}finally{p(!1)}}async function w(){if(!a||!f.trim()||g)return;let e=f.trim();b(""),h(!0),v(null),o(t=>t?{...t,turns:[...t.turns,{turn:t.turns.length+1,prompt:e,created_at:new Date().toISOString()}]}:t);try{let t=await fetch(`/api/blue/sessions/${a.id}${N}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:e})}),s=await t.json();if(!t.ok)throw Error(s.error??"Failed to send");o(s.session)}catch(t){v(t instanceof Error?t.message:String(t));let e=await fetch(`/api/blue/sessions/${a.id}${N}`);if(e.ok){let{session:t}=await e.json();o(t)}}finally{h(!1)}}return(0,l.useEffect)(()=>{fetch(`/api/blue/sessions${N}`).then(e=>e.ok?e.json():{sessions:[]}).then(({sessions:t})=>{let s=t.find(t=>t.rec_id===e);if(s)return fetch(`/api/blue/sessions/${s.id}${N}`).then(e=>e.json()).then(({session:e})=>o(e))}).catch(()=>{}).finally(()=>u(!1))},[e,N]),(0,l.useEffect)(()=>{j.current?.scrollIntoView({behavior:"smooth"})},[a?.turns.length]),(0,r.jsxs)("div",{className:"w-full rounded-xl flex flex-col overflow-hidden",style:{background:"var(--bx-surface-panel)",border:"1px solid var(--border-default)"},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-2.5 border-b flex-shrink-0",style:{borderColor:"var(--border-default)"},children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("span",{className:"text-xs font-semibold text-fg",children:[(0,r.jsx)(i.In,{name:"chat",size:11,className:"inline align-[-1px] mr-px","aria-hidden":!0})," Session"]}),a&&(0,r.jsxs)("span",{className:"text-[10px] text-fg-faint font-mono",children:[a.turns.length," turn",1!==a.turns.length?"s":""]})]}),a&&(0,r.jsx)(n(),{href:`/blue/sessions/${a.id}`,className:"text-[10px] text-fg-faint hover:text-blue-400 transition-colors",children:"Open full session →"})]}),d?(0,r.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,r.jsx)("span",{className:"animate-spin inline-block w-4 h-4 border border-blue-400 border-t-transparent rounded-full"})}):a?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 py-3 flex flex-col gap-3",style:{maxHeight:320},children:[0===a.turns.length?(0,r.jsx)("p",{className:"text-xs text-fg-faint text-center py-4",children:"Ask anything about implementing this recommendation."}):a.turns.map((e,t)=>(0,r.jsx)(c,{turn:e},`${e.turn}-${t}`)),(0,r.jsx)("div",{ref:j})]}),(0,r.jsxs)("div",{className:"flex items-end gap-2 px-3 py-2.5 border-t flex-shrink-0",style:{borderColor:"var(--border-default)"},children:[(0,r.jsx)("textarea",{value:f,onChange:e=>b(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),w())},placeholder:"Ask about implementation…",rows:2,disabled:g,className:"flex-1 resize-none rounded-lg px-3 py-2 text-xs text-fg placeholder:text-fg-faint outline-none disabled:opacity-50",style:{background:"var(--surface-panel)",border:"1px solid var(--border-strong)"}}),(0,r.jsx)("button",{onClick:w,disabled:!f.trim()||g,className:"px-3 py-2 rounded-lg text-xs font-semibold transition-all disabled:opacity-40 flex-shrink-0",style:{background:"rgba(59,130,246,0.2)",color:"rgb(96,165,250)",border:"1px solid rgba(59,130,246,0.3)"},children:g?(0,r.jsx)("span",{className:"animate-spin inline-block w-3 h-3 border border-blue-400 border-t-transparent rounded-full"}):"↑"})]}),y&&(0,r.jsx)("div",{className:"mx-3 mb-2 text-xs text-red-400 font-mono px-2 py-1 rounded",style:{background:"rgba(239,68,68,0.1)"},children:y})]}):(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-8 gap-3 px-4 text-center",children:[(0,r.jsx)("p",{className:"text-xs text-fg-muted",children:"Start an implementation session to track progress on this recommendation."}),y&&(0,r.jsx)("p",{className:"text-xs text-red-400 font-mono",children:y}),(0,r.jsx)("button",{onClick:k,disabled:m,className:"px-4 py-2 rounded-lg text-xs font-semibold transition-all disabled:opacity-50 flex items-center gap-2",style:{background:"var(--lens-blue)",color:"#fff"},children:m?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"animate-spin inline-block w-3 h-3 border border-white border-t-transparent rounded-full"}),"Creating…"]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.In,{name:"chat",size:12,className:"inline align-[-1px] mr-px","aria-hidden":!0})," Start session"]})})]})]})}var u=s(51740),m=s(20451),p=s(72458),f=s(44123);let b={background:"var(--surface-panel)",border:"1px solid var(--border-default)",boxShadow:"0 1px 2px var(--surface-panel),0 4px 16px var(--surface-panel),inset 0 1px 0 rgba(255,255,255,.04)"},g={draft:"rgba(148,163,184,0.9)",approved:"var(--lens-green)",rejected:"var(--sev-red)"},h={low:"var(--lens-green)",medium:"var(--lens-amber)",high:"var(--sev-red)"};function y({label:e,children:t}){return(0,r.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-fg-muted uppercase tracking-widest",children:e}),(0,r.jsx)("div",{className:"text-sm text-fg leading-relaxed",children:t})]})}function v({params:e}){let{id:t}=(0,l.use)(e),{tq:s,ready:a}=(0,p.e)(),c=new URLSearchParams(s.slice(1)).get("target")??"",{isPro:j,ready:N}=(0,f.R)(s),k=(0,l.useRef)(null),[w,S]=(0,l.useState)(null),[C,_]=(0,l.useState)(!0),[R,E]=(0,l.useState)(!1),[P,T]=(0,l.useState)(!1),[$,A]=(0,l.useState)(!1),[I,z]=(0,l.useState)(!1);async function L(e){if(w){T(!0);try{let s=await fetch(`/api/blue/recommendations/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:e})}),r=await s.json();S(r.recommendation)}finally{T(!1)}}}function O(){k.current?.scrollIntoView({behavior:"smooth",block:"start"})}return((0,l.useEffect)(()=>{!C&&w&&"#session"===window.location.hash&&setTimeout(()=>k.current?.scrollIntoView({behavior:"smooth",block:"start"}),50)},[C,w]),(0,l.useEffect)(()=>{fetch(`/api/blue/recommendations/${t}`).then(async e=>{404===e.status?E(!0):S((await e.json()).recommendation)}).catch(()=>E(!0)).finally(()=>_(!1))},[t]),C)?(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(o.PrismDock,{}),(0,r.jsx)("main",{className:"flex-1 flex items-center justify-center",children:(0,r.jsx)("span",{className:"text-fg-muted text-sm",children:"Loading…"})})]}):R||!w?(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(o.PrismDock,{}),(0,r.jsxs)("main",{className:"flex-1 flex flex-col items-center justify-center gap-4",children:[(0,r.jsx)("p",{className:"text-fg-muted",children:"Recommendation not found."}),(0,r.jsx)(n(),{href:"/blue/recommendations",className:"text-blue-400 text-sm hover:underline",children:"← Back to Recommendations"})]})]}):(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(o.PrismDock,{}),(0,r.jsxs)("main",{className:"flex-1 flex flex-col items-center px-6 pt-32 pb-16 gap-6",style:{maxWidth:720,margin:"0 auto",width:"100%"},children:[(0,r.jsxs)("div",{className:"w-full flex items-center gap-2 text-sm",children:[(0,r.jsx)(n(),{href:"/blue",className:"text-fg-muted hover:text-fg transition-colors",children:"BLUE"}),(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)(n(),{href:"/blue/recommendations",className:"text-fg-muted hover:text-fg transition-colors",children:"Recommendations"}),(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)("span",{className:"text-fg-muted truncate max-w-xs",children:w.title})]}),(0,r.jsxs)("div",{className:"w-full flex flex-col gap-3",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,r.jsx)("h1",{className:"text-xl font-semibold text-fg-bright leading-snug flex-1",children:w.title}),(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[(0,r.jsxs)("span",{className:"text-xs font-mono px-2 py-0.5 rounded-full",style:{background:h[w.risk_level]+"20",color:h[w.risk_level],border:`1px solid ${h[w.risk_level]}40`},children:[w.risk_level," risk"]}),(0,r.jsx)("span",{className:"text-xs font-mono px-2 py-0.5 rounded-full",style:{background:g[w.status]+"18",color:g[w.status],border:`1px solid ${g[w.status]}30`},children:w.status})]})]}),(0,r.jsxs)("p",{className:"text-xs text-fg-muted font-mono",children:["llm-generated"===w.source?"✦ AI-generated":"User-created"," \xb7 ",new Date(w.created_at).toLocaleString()]})]}),(0,r.jsxs)("div",{className:"w-full rounded-xl p-6 flex flex-col gap-5",style:b,children:[(0,r.jsx)(y,{label:"Summary",children:w.summary}),(0,r.jsx)("div",{className:"border-t",style:{borderColor:"var(--border-default)"}}),(0,r.jsx)(y,{label:"Problem",children:w.problem}),(0,r.jsx)("div",{className:"border-t",style:{borderColor:"var(--border-default)"}}),(0,r.jsx)(y,{label:"Expected Impact",children:w.expected_impact}),w.suggested_files.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"border-t",style:{borderColor:"var(--border-default)"}}),(0,r.jsx)(y,{label:"Suggested Files",children:(0,r.jsx)("div",{className:"flex flex-col gap-1 mt-0.5",children:w.suggested_files.map(e=>(0,r.jsx)("span",{className:"text-xs font-mono text-fg-muted bg-surface-elevated/60 px-2 py-1 rounded",children:e},e))})})]})]}),w.originalCode&&w.suggestedCode&&(0,r.jsxs)("div",{className:"w-full flex flex-col gap-2",children:[(0,r.jsx)("h2",{className:"text-xs font-semibold uppercase tracking-widest text-fg-muted",children:"Change Preview"}),(0,r.jsx)(m.Y,{filePath:w.suggested_files[0]??"unknown",oldCode:w.originalCode,newCode:w.suggestedCode,onApprove:()=>L("approved"),onReject:()=>L("rejected")})]}),(0,r.jsxs)("div",{className:"w-full flex flex-wrap items-center gap-3",children:[(0,r.jsxs)("button",{onClick:()=>{N&&!j?z(!0):A(!0)},title:N&&!j?"Pro feature — click to learn more":"Auto-execute this recommendation",className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all flex items-center gap-2",style:N&&!j?{background:"rgba(71,85,105,0.15)",color:"rgb(148,163,184)",border:"1px solid rgba(71,85,105,0.3)"}:{background:"rgba(251,191,36,0.12)",color:"rgb(253,224,71)",border:"1px solid rgba(251,191,36,0.25)"},children:[(0,r.jsx)(i.In,{name:N&&!j?"lock":"activity",size:14,"aria-hidden":!0})," Auto-Execute"]}),(0,r.jsxs)("button",{onClick:O,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all flex items-center gap-2",style:{background:"var(--lens-blue)",color:"#fff"},children:[(0,r.jsx)(i.In,{name:"sessions",size:14,"aria-hidden":!0})," Session"]}),"approved"!==w.status&&(0,r.jsx)("button",{onClick:()=>L("approved"),disabled:P,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-50",style:{background:"rgba(52,211,153,0.12)",color:"var(--lens-green)",border:"1px solid rgba(52,211,153,0.3)"},children:"Approve"}),"rejected"!==w.status&&(0,r.jsx)("button",{onClick:()=>L("rejected"),disabled:P,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-50",style:{background:"rgba(248,113,113,0.1)",color:"var(--sev-red)",border:"1px solid rgba(248,113,113,0.25)"},children:"Reject"}),"draft"!==w.status&&(0,r.jsx)("button",{onClick:()=>L("draft"),disabled:P,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-50",style:{background:"rgba(148,163,184,0.1)",color:"rgba(148,163,184,0.9)",border:"1px solid rgba(148,163,184,0.2)"},children:"Reset to draft"})]}),(0,r.jsx)("div",{ref:k,className:"w-full",children:(0,r.jsx)(x,{recId:w.id,recTitle:w.title,target:c})})]}),(0,r.jsxs)("footer",{className:"text-center py-4 text-xs text-fg-faint",children:["prism",(0,r.jsx)("span",{className:"font-mono",children:"0x2A"})," v","0.27.7"," \xb7 BLUE / Recommendations"]}),$&&w&&(0,r.jsx)(d,{rec:w,target:c,onClose:()=>A(!1),onStartSession:()=>{A(!1),O()}}),I&&(0,r.jsx)(u.z,{feature:"Auto-Execute",description:"One-click Claude implementation of this recommendation — full plan, file diffs, and rollback-safe execution.",features:["Streamed Claude plan","File-by-file diff preview","Risk-aware execution","Inline Session handoff","Rollback-safe writes"],utmContent:"auto_execute",onClose:()=>z(!1)})]})}},18898:(e,t,s)=>{Promise.resolve().then(s.bind(s,2375))},20451:(e,t,s)=>{"use strict";s.d(t,{Y:()=>o});var r=s(54568),l=s(7620);let a={added:{background:"color-mix(in srgb, var(--lens-green) 14%, transparent)",color:"var(--lens-green)"},removed:{background:"color-mix(in srgb, var(--sev-red) 12%, transparent)",color:"var(--sev-red)"},context:{background:"transparent",color:"var(--text-faint)"},header:{background:"color-mix(in srgb, var(--lens-blue) 18%, transparent)",color:"var(--lens-blue)"}},n={added:"+",removed:"−",context:" ",header:" "};function o({filePath:e,oldCode:t,newCode:s,onApprove:i,onReject:d}){let c=(0,l.useMemo)(()=>(function(e){let t=[],s=1,r=1,l=[];for(let t of e){let e={...t};"equal"===t.type?(e.oldNum=s++,e.newNum=r++):"delete"===t.type?e.oldNum=s++:e.newNum=r++,l.push(e)}let a=new Set;for(let e=0;e<l.length;e++)"equal"!==l[e].type&&a.add(e);let n=new Set;for(let e of a)for(let t=Math.max(0,e-3);t<=Math.min(l.length-1,e+3);t++)n.add(t);if(0===n.size)return[];let o=[...n].sort((e,t)=>e-t),i=null;for(let e of o){if(null!==i&&e>i+1){let s=l[e];t.push({type:"header",content:`@@ -${s.oldNum??"?"} +${s.newNum??"?"} @@`})}else if(null===i){let s=l[e];t.push({type:"header",content:`@@ -${s.oldNum??1} +${s.newNum??1} @@`})}let s=l[e];"equal"===s.type?t.push({type:"context",content:s.oldLine??"",lineNumber:s.oldNum}):"delete"===s.type?t.push({type:"removed",content:s.oldLine??"",lineNumber:s.oldNum}):t.push({type:"added",content:s.newLine??"",lineNumber:s.newNum}),i=e}return t})(function(e,t){let s=e.length,r=t.length,l=Array.from({length:s+1},()=>Array(r+1).fill(0));for(let a=1;a<=s;a++)for(let s=1;s<=r;s++)e[a-1]===t[s-1]?l[a][s]=l[a-1][s-1]+1:l[a][s]=Math.max(l[a-1][s],l[a][s-1]);let a=[],n=s,o=r;for(;n>0||o>0;)n>0&&o>0&&e[n-1]===t[o-1]?(a.push({type:"equal",oldLine:e[n-1],newLine:t[o-1]}),n--,o--):o>0&&(0===n||l[n][o-1]>=l[n-1][o])?(a.push({type:"insert",newLine:t[o-1]}),o--):(a.push({type:"delete",oldLine:e[n-1]}),n--);return a.reverse()}(t.split("\n"),s.split("\n"))),[t,s]),{added:x,removed:u}=(0,l.useMemo)(()=>(function(e){let t=0,s=0;for(let r of e)"added"===r.type&&t++,"removed"===r.type&&s++;return{added:t,removed:s}})(c),[c]),m=0===c.length;return(0,r.jsxs)("div",{className:"rounded-xl overflow-hidden flex flex-col",style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)"},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-2.5",style:{background:"var(--surface-floor)",borderBottom:"1px solid var(--border-default)"},children:[(0,r.jsx)("span",{className:"text-xs font-mono text-fg-muted truncate max-w-xs",title:e,children:e.split("/").pop()??e}),(0,r.jsx)("div",{className:"flex items-center gap-3 flex-shrink-0",children:!m&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"text-xs font-mono",style:{color:"var(--lens-green)"},children:["+",x]}),(0,r.jsxs)("span",{className:"text-xs font-mono",style:{color:"var(--sev-red)"},children:["−",u]})]})})]}),(0,r.jsx)("div",{className:"overflow-y-auto",style:{maxHeight:400,fontFamily:"monospace",fontSize:12},children:m?(0,r.jsx)("div",{className:"px-4 py-6 text-xs text-fg-muted text-center",children:"No differences detected."}):(0,r.jsxs)("table",{className:"w-full border-collapse",style:{tableLayout:"fixed"},children:[(0,r.jsxs)("colgroup",{children:[(0,r.jsx)("col",{style:{width:40}}),(0,r.jsx)("col",{style:{width:16}}),(0,r.jsx)("col",{})]}),(0,r.jsx)("tbody",{children:c.map((e,t)=>{let s=a[e.type],l=n[e.type];return(0,r.jsxs)("tr",{style:s,children:[(0,r.jsx)("td",{className:"select-none text-right pr-3 pl-2",style:{color:"var(--text-faint)",userSelect:"none",verticalAlign:"top",paddingTop:1,paddingBottom:1},children:"header"!==e.type&&(e.lineNumber??"")}),(0,r.jsx)("td",{className:"select-none",style:{color:s.color,userSelect:"none",verticalAlign:"top",paddingTop:1},children:l}),(0,r.jsx)("td",{className:"pr-4",style:{whiteSpace:"pre",overflowX:"auto",color:"header"===e.type?"var(--lens-blue)":s.color,paddingTop:1,paddingBottom:1},children:e.content})]},t)})})]})}),(0,r.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3",style:{borderTop:"1px solid var(--border-default)",background:"var(--surface-floor)"},children:[i&&(0,r.jsx)("button",{onClick:i,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all flex items-center gap-1.5",style:{background:"color-mix(in srgb, var(--lens-green) 12%, transparent)",color:"var(--lens-green)",border:"1px solid color-mix(in srgb, var(--lens-green) 30%, transparent)"},children:"✓ Apply Changes"}),d&&(0,r.jsx)("button",{onClick:d,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all flex items-center gap-1.5",style:{background:"color-mix(in srgb, var(--sev-red) 8%, transparent)",color:"var(--sev-red)",border:"1px solid color-mix(in srgb, var(--sev-red) 20%, transparent)"},children:"✗ Reject"})]})]})}},51740:(e,t,s)=>{"use strict";s.d(t,{z:()=>n});var r=s(54568),l=s(65587),a=s.n(l);function n({feature:e,description:t,features:s,estimate:l,onClose:o,utmContent:i="prowall_modal"}){return(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",style:{background:"rgba(0,0,0,0.75)"},onClick:e=>{e.target===e.currentTarget&&o()},children:(0,r.jsxs)("div",{className:"flex flex-col rounded-2xl overflow-hidden",style:{background:"rgba(8,15,30,0.97)",border:"1px solid rgba(59,130,246,0.3)",boxShadow:"0 24px 80px rgba(0,0,0,0.7), 0 0 40px rgba(59,130,246,0.15)",width:"min(520px, 95vw)",maxHeight:"90vh"},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b flex-shrink-0",style:{borderColor:"var(--border-default)"},children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-2.5 py-1 rounded-full text-[10px] font-bold",style:{background:"rgba(59,130,246,0.12)",border:"1px solid rgba(59,130,246,0.3)",color:"rgb(96,165,250)"},children:[(0,r.jsx)("span",{"aria-hidden":!0,children:"✦"}),(0,r.jsx)("span",{children:"PRO FEATURE"})]}),(0,r.jsx)("button",{onClick:o,className:"text-fg-muted hover:text-fg transition-colors","aria-label":"Close",children:"✕"})]}),(0,r.jsxs)("div",{className:"flex-1 overflow-y-auto px-6 py-5 flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-fg-bright tracking-tight",children:e}),(0,r.jsx)("p",{className:"text-xs text-fg-muted leading-relaxed",children:t})]}),(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:s.map(e=>(0,r.jsx)("span",{className:"text-[11px] px-2.5 py-1 rounded-full font-medium",style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)",color:"rgb(148,163,184)"},children:e},e))}),l&&(0,r.jsx)("p",{className:"text-[11px] text-fg-muted italic",children:l})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-2 px-6 py-4 border-t flex-shrink-0",style:{borderColor:"var(--border-default)",background:"rgba(5,10,20,0.5)"},children:[(0,r.jsx)(a(),{href:`/pricing?utm_source=pro_wall_modal&utm_content=${encodeURIComponent(i)}`,className:"w-full py-2.5 rounded-lg text-sm font-semibold text-center transition-all",style:{background:"var(--lens-blue)",color:"#fff",boxShadow:"0 0 20px rgba(59,130,246,0.3)"},children:"Unlock — from €39/mo →"}),(0,r.jsx)(a(),{href:`/pricing?utm_source=pro_wall_modal&utm_content=${encodeURIComponent(i)}_spectrum`,className:"w-full py-2 rounded-lg text-xs font-medium text-center transition-colors",style:{color:"var(--text-muted)",border:"1px solid var(--border-default)"},children:"Spectrum 0x55 bundle — €49/mo (prism + forge)"}),(0,r.jsx)("p",{className:"text-[10px] text-fg-faint text-center",children:"Cancel anytime \xb7 EU VAT compliant"})]})]})})}},79748:(e,t,s)=>{"use strict";var r=s(79796);s.o(r,"useParams")&&s.d(t,{useParams:function(){return r.useParams}}),s.o(r,"usePathname")&&s.d(t,{usePathname:function(){return r.usePathname}}),s.o(r,"useRouter")&&s.d(t,{useRouter:function(){return r.useRouter}}),s.o(r,"useSearchParams")&&s.d(t,{useSearchParams:function(){return r.useSearchParams}})}},e=>{e.O(0,[5587,542,4454,587,1968,7358],()=>e(e.s=18898)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4270],{2375:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>v});var r=s(54568),l=s(7620),a=s(65587),n=s.n(a),o=s(34454),i=s(99459);function d({rec:e,target:t,onClose:s,onStartSession:a}){let[n,o]=(0,l.useState)(""),[c,x]=(0,l.useState)(!0),[u,m]=(0,l.useState)(null),[p,f]=(0,l.useState)(!1),b=(0,l.useRef)(null),g=(0,l.useRef)(null);return(0,l.useEffect)(()=>{let s=new AbortController;return g.current=s,async function(){try{let r=await fetch("/api/blue/auto-execute",{method:"POST",headers:{"Content-Type":"application/json"},signal:s.signal,body:JSON.stringify({target:t,rec:{id:e.id,title:e.title,problem:e.problem,expected_impact:e.expected_impact,suggested_files:e.suggested_files,risk_level:e.risk_level}})});if(!r.ok){let e=await r.json().catch(()=>({}));m(e.error??"Request failed");return}if((r.headers.get("content-type")??"").includes("text/plain")&&r.body){let e=r.body.getReader(),t=new TextDecoder;for(;;){let{done:s,value:r}=await e.read();if(s)break;let l=t.decode(r,{stream:!0});o(e=>e+l),b.current&&(b.current.scrollTop=b.current.scrollHeight)}}else{let e=await r.text();o(e)}}catch(e){"AbortError"!==e.name&&m(String(e))}finally{x(!1)}}(),()=>s.abort()},[e.id,t]),(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",style:{background:"rgba(0,0,0,0.75)"},onClick:e=>{e.target===e.currentTarget&&s()},children:(0,r.jsxs)("div",{className:"flex flex-col rounded-2xl overflow-hidden",style:{background:"rgba(8,15,30,0.97)",border:"1px solid rgba(59,130,246,0.25)",boxShadow:"0 24px 80px rgba(0,0,0,0.7)",width:"min(720px, 95vw)",maxHeight:"85vh"},children:[(0,r.jsxs)("div",{className:"flex items-start gap-3 px-5 py-4 border-b flex-shrink-0",style:{borderColor:"var(--border-default)"},children:[(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,r.jsxs)("span",{className:"text-[10px] font-mono px-2 py-0.5 rounded",style:{background:"rgba(251,191,36,0.15)",color:"rgb(253,224,71)",border:"1px solid rgba(251,191,36,0.25)"},children:[(0,r.jsx)(i.In,{name:"zap",size:13,className:"inline align-[-1px] mr-px","aria-hidden":!0})," Auto-Execute"]}),(0,r.jsxs)("span",{className:"text-[10px] font-mono px-2 py-0.5 rounded",style:{background:"var(--surface-elevated)",color:"rgb(100,116,139)",border:"1px solid var(--border-default)"},children:[e.risk_level," risk"]})]}),(0,r.jsx)("h2",{className:"text-sm font-semibold text-fg leading-snug truncate",children:e.title})]}),(0,r.jsx)("button",{onClick:s,className:"text-fg-muted hover:text-fg transition-colors flex-shrink-0 text-lg leading-none",children:"✕"})]}),(0,r.jsxs)("div",{className:"flex-1 overflow-hidden flex flex-col",children:[c&&0===n.length&&(0,r.jsxs)("div",{className:"flex items-center gap-2 px-5 py-3 flex-shrink-0",style:{background:"rgba(59,130,246,0.05)",borderBottom:"1px solid var(--border-default)"},children:[(0,r.jsx)("span",{className:"inline-block w-3 h-3 border border-blue-400 border-t-transparent rounded-full animate-spin flex-shrink-0"}),(0,r.jsx)("span",{className:"text-[11px] text-fg-muted",children:"Generating action plan…"})]}),u&&(0,r.jsx)("div",{className:"mx-4 mt-4 px-3 py-2 rounded-lg text-xs text-red-400 font-mono",style:{background:"rgba(239,68,68,0.1)",border:"1px solid rgba(239,68,68,0.25)"},children:u}),(0,r.jsxs)("pre",{ref:b,className:"flex-1 overflow-y-auto p-5 text-[12px] font-mono text-fg whitespace-pre-wrap leading-relaxed",style:{minHeight:0},children:[n||(c?"":"(no output)"),c&&n.length>0&&(0,r.jsx)("span",{className:"inline-block w-1.5 h-4 bg-blue-400 animate-pulse ml-0.5 align-middle"})]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3 px-5 py-3 border-t flex-shrink-0",style:{borderColor:"var(--border-default)",background:"rgba(5,10,20,0.5)"},children:[(0,r.jsx)("button",{onClick:function(){navigator.clipboard.writeText(n).then(()=>{f(!0),setTimeout(()=>f(!1),2e3)})},disabled:!n||c,className:"text-xs px-3 py-1.5 rounded-lg font-medium transition-all disabled:opacity-40",style:{background:"var(--surface-elevated)",color:"rgb(148,163,184)",border:"1px solid var(--border-strong)"},children:p?"✓ Copied":(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.In,{name:"clipboard",size:12,className:"inline align-[-1px] mr-px","aria-hidden":!0})," Copy plan"]})}),a&&(0,r.jsxs)("button",{onClick:()=>{s(),a()},className:"text-xs px-3 py-1.5 rounded-lg font-medium transition-all",style:{background:"rgba(59,130,246,0.15)",color:"rgb(147,197,253)",border:"1px solid rgba(59,130,246,0.3)"},children:[(0,r.jsx)(i.In,{name:"chat",size:11,className:"inline align-[-1px] mr-px","aria-hidden":!0})," Start session"]}),(0,r.jsx)("button",{onClick:()=>{g.current?.abort(),s()},className:"text-xs px-3 py-1.5 rounded-lg font-medium ml-auto transition-all",style:{background:"rgba(239,68,68,0.1)",color:"rgb(252,165,165)",border:"1px solid rgba(239,68,68,0.25)"},children:c?"⏹ Stop":"Close"})]})]})})}function c({turn:e}){return(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsx)("div",{className:"flex justify-end",children:(0,r.jsx)("div",{className:"max-w-xs rounded-xl rounded-tr-sm px-3 py-2 text-xs text-fg leading-relaxed",style:{background:"rgba(59,130,246,0.15)",border:"1px solid rgba(59,130,246,0.25)"},children:e.prompt})}),e.response?(0,r.jsx)("div",{className:"flex justify-start",children:(0,r.jsxs)("div",{className:"max-w-xs rounded-xl rounded-tl-sm px-3 py-2 text-xs text-fg leading-relaxed",style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)"},children:[(0,r.jsx)("span",{className:"text-blue-400 font-mono mr-1.5",children:"✦"}),(0,r.jsx)("span",{style:{whiteSpace:"pre-wrap"},children:e.response})]})}):(0,r.jsx)("div",{className:"flex justify-start",children:(0,r.jsxs)("div",{className:"rounded-xl rounded-tl-sm px-3 py-2 flex items-center gap-2",style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)"},children:[(0,r.jsx)("span",{className:"animate-spin inline-block w-3 h-3 border border-blue-400 border-t-transparent rounded-full"}),(0,r.jsx)("span",{className:"text-xs text-fg-muted",children:"Thinking…"})]})})]})}function x({recId:e,recTitle:t,target:s}){let[a,o]=(0,l.useState)(null),[d,u]=(0,l.useState)(!0),[m,p]=(0,l.useState)(!1),[f,b]=(0,l.useState)(""),[g,h]=(0,l.useState)(!1),[y,v]=(0,l.useState)(null),j=(0,l.useRef)(null),N=s?`?target=${encodeURIComponent(s)}`:"";async function k(){p(!0),v(null);try{let s=await fetch(`/api/blue/sessions${N}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:`Session: ${t}`,rec_id:e})}),r=await s.json();if(!s.ok)throw Error(r.error??"Failed to create session");o(r.session)}catch(e){v(e instanceof Error?e.message:String(e))}finally{p(!1)}}async function w(){if(!a||!f.trim()||g)return;let e=f.trim();b(""),h(!0),v(null),o(t=>t?{...t,turns:[...t.turns,{turn:t.turns.length+1,prompt:e,created_at:new Date().toISOString()}]}:t);try{let t=await fetch(`/api/blue/sessions/${a.id}${N}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:e})}),s=await t.json();if(!t.ok)throw Error(s.error??"Failed to send");o(s.session)}catch(t){v(t instanceof Error?t.message:String(t));let e=await fetch(`/api/blue/sessions/${a.id}${N}`);if(e.ok){let{session:t}=await e.json();o(t)}}finally{h(!1)}}return(0,l.useEffect)(()=>{fetch(`/api/blue/sessions${N}`).then(e=>e.ok?e.json():{sessions:[]}).then(({sessions:t})=>{let s=t.find(t=>t.rec_id===e);if(s)return fetch(`/api/blue/sessions/${s.id}${N}`).then(e=>e.json()).then(({session:e})=>o(e))}).catch(()=>{}).finally(()=>u(!1))},[e,N]),(0,l.useEffect)(()=>{j.current?.scrollIntoView({behavior:"smooth"})},[a?.turns.length]),(0,r.jsxs)("div",{className:"w-full rounded-xl flex flex-col overflow-hidden",style:{background:"var(--bx-surface-panel)",border:"1px solid var(--border-default)"},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-2.5 border-b flex-shrink-0",style:{borderColor:"var(--border-default)"},children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsxs)("span",{className:"text-xs font-semibold text-fg",children:[(0,r.jsx)(i.In,{name:"chat",size:11,className:"inline align-[-1px] mr-px","aria-hidden":!0})," Session"]}),a&&(0,r.jsxs)("span",{className:"text-[10px] text-fg-faint font-mono",children:[a.turns.length," turn",1!==a.turns.length?"s":""]})]}),a&&(0,r.jsx)(n(),{href:`/blue/sessions/${a.id}`,className:"text-[10px] text-fg-faint hover:text-blue-400 transition-colors",children:"Open full session →"})]}),d?(0,r.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,r.jsx)("span",{className:"animate-spin inline-block w-4 h-4 border border-blue-400 border-t-transparent rounded-full"})}):a?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex-1 overflow-y-auto px-4 py-3 flex flex-col gap-3",style:{maxHeight:320},children:[0===a.turns.length?(0,r.jsx)("p",{className:"text-xs text-fg-faint text-center py-4",children:"Ask anything about implementing this recommendation."}):a.turns.map((e,t)=>(0,r.jsx)(c,{turn:e},`${e.turn}-${t}`)),(0,r.jsx)("div",{ref:j})]}),(0,r.jsxs)("div",{className:"flex items-end gap-2 px-3 py-2.5 border-t flex-shrink-0",style:{borderColor:"var(--border-default)"},children:[(0,r.jsx)("textarea",{value:f,onChange:e=>b(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),w())},placeholder:"Ask about implementation…",rows:2,disabled:g,className:"flex-1 resize-none rounded-lg px-3 py-2 text-xs text-fg placeholder:text-fg-faint outline-none disabled:opacity-50",style:{background:"var(--surface-panel)",border:"1px solid var(--border-strong)"}}),(0,r.jsx)("button",{onClick:w,disabled:!f.trim()||g,className:"px-3 py-2 rounded-lg text-xs font-semibold transition-all disabled:opacity-40 flex-shrink-0",style:{background:"rgba(59,130,246,0.2)",color:"rgb(96,165,250)",border:"1px solid rgba(59,130,246,0.3)"},children:g?(0,r.jsx)("span",{className:"animate-spin inline-block w-3 h-3 border border-blue-400 border-t-transparent rounded-full"}):"↑"})]}),y&&(0,r.jsx)("div",{className:"mx-3 mb-2 text-xs text-red-400 font-mono px-2 py-1 rounded",style:{background:"rgba(239,68,68,0.1)"},children:y})]}):(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-8 gap-3 px-4 text-center",children:[(0,r.jsx)("p",{className:"text-xs text-fg-muted",children:"Start an implementation session to track progress on this recommendation."}),y&&(0,r.jsx)("p",{className:"text-xs text-red-400 font-mono",children:y}),(0,r.jsx)("button",{onClick:k,disabled:m,className:"px-4 py-2 rounded-lg text-xs font-semibold transition-all disabled:opacity-50 flex items-center gap-2",style:{background:"var(--lens-blue)",color:"#fff"},children:m?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"animate-spin inline-block w-3 h-3 border border-white border-t-transparent rounded-full"}),"Creating…"]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.In,{name:"chat",size:12,className:"inline align-[-1px] mr-px","aria-hidden":!0})," Start session"]})})]})]})}var u=s(51740),m=s(20451),p=s(72458),f=s(44123);let b={background:"var(--surface-panel)",border:"1px solid var(--border-default)",boxShadow:"0 1px 2px var(--surface-panel),0 4px 16px var(--surface-panel),inset 0 1px 0 rgba(255,255,255,.04)"},g={draft:"rgba(148,163,184,0.9)",approved:"var(--lens-green)",rejected:"var(--sev-red)"},h={low:"var(--lens-green)",medium:"var(--lens-amber)",high:"var(--sev-red)"};function y({label:e,children:t}){return(0,r.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-fg-muted uppercase tracking-widest",children:e}),(0,r.jsx)("div",{className:"text-sm text-fg leading-relaxed",children:t})]})}function v({params:e}){let{id:t}=(0,l.use)(e),{tq:s,ready:a}=(0,p.e)(),c=new URLSearchParams(s.slice(1)).get("target")??"",{isPro:j,ready:N}=(0,f.R)(s),k=(0,l.useRef)(null),[w,S]=(0,l.useState)(null),[C,_]=(0,l.useState)(!0),[R,E]=(0,l.useState)(!1),[P,T]=(0,l.useState)(!1),[$,A]=(0,l.useState)(!1),[I,z]=(0,l.useState)(!1);async function L(e){if(w){T(!0);try{let s=await fetch(`/api/blue/recommendations/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:e})}),r=await s.json();S(r.recommendation)}finally{T(!1)}}}function O(){k.current?.scrollIntoView({behavior:"smooth",block:"start"})}return((0,l.useEffect)(()=>{!C&&w&&"#session"===window.location.hash&&setTimeout(()=>k.current?.scrollIntoView({behavior:"smooth",block:"start"}),50)},[C,w]),(0,l.useEffect)(()=>{fetch(`/api/blue/recommendations/${t}`).then(async e=>{404===e.status?E(!0):S((await e.json()).recommendation)}).catch(()=>E(!0)).finally(()=>_(!1))},[t]),C)?(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(o.PrismDock,{}),(0,r.jsx)("main",{className:"flex-1 flex items-center justify-center",children:(0,r.jsx)("span",{className:"text-fg-muted text-sm",children:"Loading…"})})]}):R||!w?(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(o.PrismDock,{}),(0,r.jsxs)("main",{className:"flex-1 flex flex-col items-center justify-center gap-4",children:[(0,r.jsx)("p",{className:"text-fg-muted",children:"Recommendation not found."}),(0,r.jsx)(n(),{href:"/blue/recommendations",className:"text-blue-400 text-sm hover:underline",children:"← Back to Recommendations"})]})]}):(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(o.PrismDock,{}),(0,r.jsxs)("main",{className:"flex-1 flex flex-col items-center px-6 pt-32 pb-16 gap-6",style:{maxWidth:720,margin:"0 auto",width:"100%"},children:[(0,r.jsxs)("div",{className:"w-full flex items-center gap-2 text-sm",children:[(0,r.jsx)(n(),{href:"/blue",className:"text-fg-muted hover:text-fg transition-colors",children:"BLUE"}),(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)(n(),{href:"/blue/recommendations",className:"text-fg-muted hover:text-fg transition-colors",children:"Recommendations"}),(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)("span",{className:"text-fg-muted truncate max-w-xs",children:w.title})]}),(0,r.jsxs)("div",{className:"w-full flex flex-col gap-3",children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,r.jsx)("h1",{className:"text-xl font-semibold text-fg-bright leading-snug flex-1",children:w.title}),(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[(0,r.jsxs)("span",{className:"text-xs font-mono px-2 py-0.5 rounded-full",style:{background:h[w.risk_level]+"20",color:h[w.risk_level],border:`1px solid ${h[w.risk_level]}40`},children:[w.risk_level," risk"]}),(0,r.jsx)("span",{className:"text-xs font-mono px-2 py-0.5 rounded-full",style:{background:g[w.status]+"18",color:g[w.status],border:`1px solid ${g[w.status]}30`},children:w.status})]})]}),(0,r.jsxs)("p",{className:"text-xs text-fg-muted font-mono",children:["llm-generated"===w.source?"✦ AI-generated":"User-created"," \xb7 ",new Date(w.created_at).toLocaleString()]})]}),(0,r.jsxs)("div",{className:"w-full rounded-xl p-6 flex flex-col gap-5",style:b,children:[(0,r.jsx)(y,{label:"Summary",children:w.summary}),(0,r.jsx)("div",{className:"border-t",style:{borderColor:"var(--border-default)"}}),(0,r.jsx)(y,{label:"Problem",children:w.problem}),(0,r.jsx)("div",{className:"border-t",style:{borderColor:"var(--border-default)"}}),(0,r.jsx)(y,{label:"Expected Impact",children:w.expected_impact}),w.suggested_files.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"border-t",style:{borderColor:"var(--border-default)"}}),(0,r.jsx)(y,{label:"Suggested Files",children:(0,r.jsx)("div",{className:"flex flex-col gap-1 mt-0.5",children:w.suggested_files.map(e=>(0,r.jsx)("span",{className:"text-xs font-mono text-fg-muted bg-surface-elevated/60 px-2 py-1 rounded",children:e},e))})})]})]}),w.originalCode&&w.suggestedCode&&(0,r.jsxs)("div",{className:"w-full flex flex-col gap-2",children:[(0,r.jsx)("h2",{className:"text-xs font-semibold uppercase tracking-widest text-fg-muted",children:"Change Preview"}),(0,r.jsx)(m.Y,{filePath:w.suggested_files[0]??"unknown",oldCode:w.originalCode,newCode:w.suggestedCode,onApprove:()=>L("approved"),onReject:()=>L("rejected")})]}),(0,r.jsxs)("div",{className:"w-full flex flex-wrap items-center gap-3",children:[(0,r.jsxs)("button",{onClick:()=>{N&&!j?z(!0):A(!0)},title:N&&!j?"Pro feature — click to learn more":"Auto-execute this recommendation",className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all flex items-center gap-2",style:N&&!j?{background:"rgba(71,85,105,0.15)",color:"rgb(148,163,184)",border:"1px solid rgba(71,85,105,0.3)"}:{background:"rgba(251,191,36,0.12)",color:"rgb(253,224,71)",border:"1px solid rgba(251,191,36,0.25)"},children:[(0,r.jsx)(i.In,{name:N&&!j?"lock":"activity",size:14,"aria-hidden":!0})," Auto-Execute"]}),(0,r.jsxs)("button",{onClick:O,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all flex items-center gap-2",style:{background:"var(--lens-blue)",color:"#fff"},children:[(0,r.jsx)(i.In,{name:"sessions",size:14,"aria-hidden":!0})," Session"]}),"approved"!==w.status&&(0,r.jsx)("button",{onClick:()=>L("approved"),disabled:P,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-50",style:{background:"rgba(52,211,153,0.12)",color:"var(--lens-green)",border:"1px solid rgba(52,211,153,0.3)"},children:"Approve"}),"rejected"!==w.status&&(0,r.jsx)("button",{onClick:()=>L("rejected"),disabled:P,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-50",style:{background:"rgba(248,113,113,0.1)",color:"var(--sev-red)",border:"1px solid rgba(248,113,113,0.25)"},children:"Reject"}),"draft"!==w.status&&(0,r.jsx)("button",{onClick:()=>L("draft"),disabled:P,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-50",style:{background:"rgba(148,163,184,0.1)",color:"rgba(148,163,184,0.9)",border:"1px solid rgba(148,163,184,0.2)"},children:"Reset to draft"})]}),(0,r.jsx)("div",{ref:k,className:"w-full",children:(0,r.jsx)(x,{recId:w.id,recTitle:w.title,target:c})})]}),(0,r.jsxs)("footer",{className:"text-center py-4 text-xs text-fg-faint",children:["prism",(0,r.jsx)("span",{className:"font-mono",children:"0x2A"})," v","1.0.0"," \xb7 BLUE / Recommendations"]}),$&&w&&(0,r.jsx)(d,{rec:w,target:c,onClose:()=>A(!1),onStartSession:()=>{A(!1),O()}}),I&&(0,r.jsx)(u.z,{feature:"Auto-Execute",description:"One-click Claude implementation of this recommendation — full plan, file diffs, and rollback-safe execution.",features:["Streamed Claude plan","File-by-file diff preview","Risk-aware execution","Inline Session handoff","Rollback-safe writes"],utmContent:"auto_execute",onClose:()=>z(!1)})]})}},18898:(e,t,s)=>{Promise.resolve().then(s.bind(s,2375))},20451:(e,t,s)=>{"use strict";s.d(t,{Y:()=>o});var r=s(54568),l=s(7620);let a={added:{background:"color-mix(in srgb, var(--lens-green) 14%, transparent)",color:"var(--lens-green)"},removed:{background:"color-mix(in srgb, var(--sev-red) 12%, transparent)",color:"var(--sev-red)"},context:{background:"transparent",color:"var(--text-faint)"},header:{background:"color-mix(in srgb, var(--lens-blue) 18%, transparent)",color:"var(--lens-blue)"}},n={added:"+",removed:"−",context:" ",header:" "};function o({filePath:e,oldCode:t,newCode:s,onApprove:i,onReject:d}){let c=(0,l.useMemo)(()=>(function(e){let t=[],s=1,r=1,l=[];for(let t of e){let e={...t};"equal"===t.type?(e.oldNum=s++,e.newNum=r++):"delete"===t.type?e.oldNum=s++:e.newNum=r++,l.push(e)}let a=new Set;for(let e=0;e<l.length;e++)"equal"!==l[e].type&&a.add(e);let n=new Set;for(let e of a)for(let t=Math.max(0,e-3);t<=Math.min(l.length-1,e+3);t++)n.add(t);if(0===n.size)return[];let o=[...n].sort((e,t)=>e-t),i=null;for(let e of o){if(null!==i&&e>i+1){let s=l[e];t.push({type:"header",content:`@@ -${s.oldNum??"?"} +${s.newNum??"?"} @@`})}else if(null===i){let s=l[e];t.push({type:"header",content:`@@ -${s.oldNum??1} +${s.newNum??1} @@`})}let s=l[e];"equal"===s.type?t.push({type:"context",content:s.oldLine??"",lineNumber:s.oldNum}):"delete"===s.type?t.push({type:"removed",content:s.oldLine??"",lineNumber:s.oldNum}):t.push({type:"added",content:s.newLine??"",lineNumber:s.newNum}),i=e}return t})(function(e,t){let s=e.length,r=t.length,l=Array.from({length:s+1},()=>Array(r+1).fill(0));for(let a=1;a<=s;a++)for(let s=1;s<=r;s++)e[a-1]===t[s-1]?l[a][s]=l[a-1][s-1]+1:l[a][s]=Math.max(l[a-1][s],l[a][s-1]);let a=[],n=s,o=r;for(;n>0||o>0;)n>0&&o>0&&e[n-1]===t[o-1]?(a.push({type:"equal",oldLine:e[n-1],newLine:t[o-1]}),n--,o--):o>0&&(0===n||l[n][o-1]>=l[n-1][o])?(a.push({type:"insert",newLine:t[o-1]}),o--):(a.push({type:"delete",oldLine:e[n-1]}),n--);return a.reverse()}(t.split("\n"),s.split("\n"))),[t,s]),{added:x,removed:u}=(0,l.useMemo)(()=>(function(e){let t=0,s=0;for(let r of e)"added"===r.type&&t++,"removed"===r.type&&s++;return{added:t,removed:s}})(c),[c]),m=0===c.length;return(0,r.jsxs)("div",{className:"rounded-xl overflow-hidden flex flex-col",style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)"},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-2.5",style:{background:"var(--surface-floor)",borderBottom:"1px solid var(--border-default)"},children:[(0,r.jsx)("span",{className:"text-xs font-mono text-fg-muted truncate max-w-xs",title:e,children:e.split("/").pop()??e}),(0,r.jsx)("div",{className:"flex items-center gap-3 flex-shrink-0",children:!m&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"text-xs font-mono",style:{color:"var(--lens-green)"},children:["+",x]}),(0,r.jsxs)("span",{className:"text-xs font-mono",style:{color:"var(--sev-red)"},children:["−",u]})]})})]}),(0,r.jsx)("div",{className:"overflow-y-auto",style:{maxHeight:400,fontFamily:"monospace",fontSize:12},children:m?(0,r.jsx)("div",{className:"px-4 py-6 text-xs text-fg-muted text-center",children:"No differences detected."}):(0,r.jsxs)("table",{className:"w-full border-collapse",style:{tableLayout:"fixed"},children:[(0,r.jsxs)("colgroup",{children:[(0,r.jsx)("col",{style:{width:40}}),(0,r.jsx)("col",{style:{width:16}}),(0,r.jsx)("col",{})]}),(0,r.jsx)("tbody",{children:c.map((e,t)=>{let s=a[e.type],l=n[e.type];return(0,r.jsxs)("tr",{style:s,children:[(0,r.jsx)("td",{className:"select-none text-right pr-3 pl-2",style:{color:"var(--text-faint)",userSelect:"none",verticalAlign:"top",paddingTop:1,paddingBottom:1},children:"header"!==e.type&&(e.lineNumber??"")}),(0,r.jsx)("td",{className:"select-none",style:{color:s.color,userSelect:"none",verticalAlign:"top",paddingTop:1},children:l}),(0,r.jsx)("td",{className:"pr-4",style:{whiteSpace:"pre",overflowX:"auto",color:"header"===e.type?"var(--lens-blue)":s.color,paddingTop:1,paddingBottom:1},children:e.content})]},t)})})]})}),(0,r.jsxs)("div",{className:"flex items-center gap-3 px-4 py-3",style:{borderTop:"1px solid var(--border-default)",background:"var(--surface-floor)"},children:[i&&(0,r.jsx)("button",{onClick:i,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all flex items-center gap-1.5",style:{background:"color-mix(in srgb, var(--lens-green) 12%, transparent)",color:"var(--lens-green)",border:"1px solid color-mix(in srgb, var(--lens-green) 30%, transparent)"},children:"✓ Apply Changes"}),d&&(0,r.jsx)("button",{onClick:d,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all flex items-center gap-1.5",style:{background:"color-mix(in srgb, var(--sev-red) 8%, transparent)",color:"var(--sev-red)",border:"1px solid color-mix(in srgb, var(--sev-red) 20%, transparent)"},children:"✗ Reject"})]})]})}},51740:(e,t,s)=>{"use strict";s.d(t,{z:()=>n});var r=s(54568),l=s(65587),a=s.n(l);function n({feature:e,description:t,features:s,estimate:l,onClose:o,utmContent:i="prowall_modal"}){return(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",style:{background:"rgba(0,0,0,0.75)"},onClick:e=>{e.target===e.currentTarget&&o()},children:(0,r.jsxs)("div",{className:"flex flex-col rounded-2xl overflow-hidden",style:{background:"rgba(8,15,30,0.97)",border:"1px solid rgba(59,130,246,0.3)",boxShadow:"0 24px 80px rgba(0,0,0,0.7), 0 0 40px rgba(59,130,246,0.15)",width:"min(520px, 95vw)",maxHeight:"90vh"},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b flex-shrink-0",style:{borderColor:"var(--border-default)"},children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-2.5 py-1 rounded-full text-[10px] font-bold",style:{background:"rgba(59,130,246,0.12)",border:"1px solid rgba(59,130,246,0.3)",color:"rgb(96,165,250)"},children:[(0,r.jsx)("span",{"aria-hidden":!0,children:"✦"}),(0,r.jsx)("span",{children:"PRO FEATURE"})]}),(0,r.jsx)("button",{onClick:o,className:"text-fg-muted hover:text-fg transition-colors","aria-label":"Close",children:"✕"})]}),(0,r.jsxs)("div",{className:"flex-1 overflow-y-auto px-6 py-5 flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-fg-bright tracking-tight",children:e}),(0,r.jsx)("p",{className:"text-xs text-fg-muted leading-relaxed",children:t})]}),(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:s.map(e=>(0,r.jsx)("span",{className:"text-[11px] px-2.5 py-1 rounded-full font-medium",style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)",color:"rgb(148,163,184)"},children:e},e))}),l&&(0,r.jsx)("p",{className:"text-[11px] text-fg-muted italic",children:l})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-2 px-6 py-4 border-t flex-shrink-0",style:{borderColor:"var(--border-default)",background:"rgba(5,10,20,0.5)"},children:[(0,r.jsx)(a(),{href:`/pricing?utm_source=pro_wall_modal&utm_content=${encodeURIComponent(i)}`,className:"w-full py-2.5 rounded-lg text-sm font-semibold text-center transition-all",style:{background:"var(--lens-blue)",color:"#fff",boxShadow:"0 0 20px rgba(59,130,246,0.3)"},children:"Unlock — from €39/mo →"}),(0,r.jsx)(a(),{href:`/pricing?utm_source=pro_wall_modal&utm_content=${encodeURIComponent(i)}_spectrum`,className:"w-full py-2 rounded-lg text-xs font-medium text-center transition-colors",style:{color:"var(--text-muted)",border:"1px solid var(--border-default)"},children:"Spectrum 0x55 bundle — €49/mo (prism + forge)"}),(0,r.jsx)("p",{className:"text-[10px] text-fg-faint text-center",children:"Cancel anytime \xb7 EU VAT compliant"})]})]})})}},79748:(e,t,s)=>{"use strict";var r=s(79796);s.o(r,"useParams")&&s.d(t,{useParams:function(){return r.useParams}}),s.o(r,"usePathname")&&s.d(t,{usePathname:function(){return r.usePathname}}),s.o(r,"useRouter")&&s.d(t,{useRouter:function(){return r.useRouter}}),s.o(r,"useSearchParams")&&s.d(t,{useSearchParams:function(){return r.useSearchParams}})}},e=>{e.O(0,[5587,542,4454,587,1968,7358],()=>e(e.s=18898)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8596],{12088:(e,t,s)=>{Promise.resolve().then(s.bind(s,25920))},25920:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>j});var r=s(54568),l=s(7620),a=s(65587),n=s.n(a),i=s(79748),d=s(34454),o=s(48821),c=s(99459);function x({recs:e,target:t,onClose:s}){let a=e.filter(e=>"approved"===e.status),[n,i]=(0,l.useState)(new Set(a.map(e=>e.id))),[d,o]=(0,l.useState)([]),[m,u]=(0,l.useState)(!1),[f,p]=(0,l.useState)(!1),[g,h]=(0,l.useState)(null);async function b(){let e=a.filter(e=>n.has(e.id));if(0!==e.length){for(let s of(u(!0),o(e.map(e=>({id:e.id,title:e.title,status:"pending"}))),e)){o(e=>e.map(e=>e.id===s.id?{...e,status:"running"}:e));try{let e=await fetch("/api/blue/auto-execute",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:t,rec:{id:s.id,title:s.title,problem:s.problem,expected_impact:s.expected_impact,suggested_files:s.suggested_files,risk_level:s.risk_level}})});if(!e.ok){let t=await e.json().catch(()=>({}));o(e=>e.map(e=>e.id===s.id?{...e,status:"error",error:t.error??"Failed"}:e));continue}let r=await e.text();o(e=>e.map(e=>e.id===s.id?{...e,status:"done",output:r}:e))}catch(e){o(t=>t.map(t=>t.id===s.id?{...t,status:"error",error:String(e)}:t))}}u(!1),p(!0)}}let j={pending:"○",running:"◌",done:"✓",error:"✕"},v={pending:"rgb(100,116,139)",running:"rgb(147,197,253)",done:"var(--lens-green)",error:"var(--sev-red)"};return(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",style:{background:"rgba(0,0,0,0.75)"},onClick:e=>{e.target!==e.currentTarget||m||s()},children:(0,r.jsxs)("div",{className:"flex flex-col rounded-2xl overflow-hidden",style:{background:"rgba(8,15,30,0.97)",border:"1px solid rgba(59,130,246,0.25)",boxShadow:"0 24px 80px rgba(0,0,0,0.7)",width:"min(640px, 95vw)",maxHeight:"80vh"},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b flex-shrink-0",style:{borderColor:"var(--border-default)"},children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("h2",{className:"text-sm font-semibold text-fg inline-flex items-center gap-1",children:[(0,r.jsx)(c.In,{name:"zap",size:13,"aria-hidden":!0})," Bulk Auto-Execute"]}),(0,r.jsxs)("p",{className:"text-[11px] text-fg-muted mt-0.5",children:[a.length," approved recommendation",1!==a.length?"s":""," \xb7 ",n.size," selected"]})]}),(0,r.jsx)("button",{onClick:s,disabled:m,className:"text-fg-muted hover:text-fg transition-colors disabled:opacity-40",children:"✕"})]}),(0,r.jsx)("div",{className:"flex-1 overflow-y-auto",children:0===a.length?(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 gap-2 text-center px-6",children:[(0,r.jsx)("span",{className:"text-3xl",children:(0,r.jsx)(c.In,{name:"clipboard",size:14,"aria-hidden":!0})}),(0,r.jsx)("p",{className:"text-sm text-fg-muted",children:"No approved recommendations."}),(0,r.jsx)("p",{className:"text-xs text-fg-faint",children:"Approve recommendations before bulk-executing."})]}):d.length>0?(0,r.jsx)("div",{className:"flex flex-col divide-y",style:{borderColor:"var(--border-default)"},children:d.map(e=>(0,r.jsxs)("div",{className:"px-5 py-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("span",{className:"text-xs font-mono w-4 text-center flex-shrink-0",style:{color:v[e.status]},children:"running"===e.status?(0,r.jsx)("span",{className:"inline-block w-3 h-3 border border-blue-400 border-t-transparent rounded-full animate-spin"}):j[e.status]}),(0,r.jsx)("span",{className:"text-xs text-fg flex-1 truncate",children:e.title}),(e.output||e.error)&&(0,r.jsx)("button",{onClick:()=>h(g===e.id?null:e.id),className:"text-[10px] text-fg-faint hover:text-fg-muted flex-shrink-0",children:g===e.id?"▲":"▼"})]}),g===e.id&&(e.output||e.error)&&(0,r.jsx)("pre",{className:"mt-2 text-[10px] font-mono text-fg-muted whitespace-pre-wrap max-h-40 overflow-y-auto bg-surface/60 rounded p-2",children:e.error??e.output})]},e.id))}):(0,r.jsx)("div",{className:"flex flex-col divide-y",style:{borderColor:"var(--border-default)"},children:a.map(e=>(0,r.jsxs)("button",{onClick:()=>{var t;return t=e.id,void i(e=>{let s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},className:"flex items-center gap-3 px-5 py-3 text-left hover:bg-surface-elevated/30 transition-colors",children:[(0,r.jsx)("span",{className:"flex-shrink-0 w-4 h-4 rounded border flex items-center justify-center text-[10px] font-bold",style:{background:n.has(e.id)?"rgba(59,130,246,0.3)":"transparent",borderColor:n.has(e.id)?"rgba(59,130,246,0.6)":"rgba(71,85,105,0.5)",color:"white"},children:n.has(e.id)?"✓":""}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("p",{className:"text-xs text-fg truncate",children:e.title}),(0,r.jsxs)("p",{className:"text-[10px] text-fg-faint mt-0.5",children:[e.suggested_files.length," file",1!==e.suggested_files.length?"s":""," \xb7 ",e.risk_level," risk"]})]})]},e.id))})}),(0,r.jsx)("div",{className:"flex items-center gap-3 px-5 py-3 border-t flex-shrink-0",style:{borderColor:"var(--border-default)",background:"rgba(5,10,20,0.5)"},children:f?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"text-xs text-emerald-400",children:["✓ ",d.filter(e=>"done"===e.status).length," completed \xb7 ",d.filter(e=>"error"===e.status).length," failed"]}),(0,r.jsx)("button",{onClick:s,className:"text-xs px-3 py-1.5 rounded-lg font-medium ml-auto transition-all",style:{background:"rgba(59,130,246,0.15)",color:"rgb(147,197,253)",border:"1px solid rgba(59,130,246,0.3)"},children:"Close"})]}):d.length>0&&m?(0,r.jsxs)("span",{className:"text-xs text-fg-muted flex items-center gap-2",children:[(0,r.jsx)("span",{className:"inline-block w-3 h-3 border border-blue-400 border-t-transparent rounded-full animate-spin"}),"Running ",d.filter(e=>"done"===e.status||"error"===e.status).length," / ",d.length,"…"]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"text-xs text-fg-faint",children:[n.size," of ",a.length," selected"]}),(0,r.jsx)("button",{onClick:()=>i(new Set(a.map(e=>e.id))),className:"text-[10px] text-fg-faint hover:text-fg-muted transition-colors",children:"All"}),(0,r.jsx)("button",{onClick:()=>i(new Set),className:"text-[10px] text-fg-faint hover:text-fg-muted transition-colors",children:"None"}),(0,r.jsxs)("button",{onClick:b,disabled:0===n.size,className:"text-xs px-3 py-1.5 rounded-lg font-semibold ml-auto transition-all disabled:opacity-40",style:{background:"rgba(251,191,36,0.15)",color:"rgb(253,224,71)",border:"1px solid rgba(251,191,36,0.25)"},children:[(0,r.jsx)(c.In,{name:"zap",size:13,className:"inline align-[-1px] mr-px","aria-hidden":!0})," Execute ",n.size," recommendation",1!==n.size?"s":""]})]})})]})})}var m=s(51740),u=s(72458),f=s(44123);let p={background:"var(--surface-panel)",border:"1px solid var(--border-default)",boxShadow:"0 1px 2px var(--surface-panel),0 4px 16px var(--surface-panel),inset 0 1px 0 rgba(255,255,255,.04)"},g={draft:"rgba(148,163,184,0.9)",approved:"var(--lens-green)",rejected:"var(--sev-red)"},h={low:"var(--lens-green)",medium:"var(--lens-amber)",high:"var(--sev-red)"};function b({rec:e}){let t=(0,i.useRouter)();return(0,r.jsxs)(n(),{href:`/blue/recommendations/${e.id}`,className:"w-full rounded-xl p-5 flex flex-col gap-2 transition-all hover:brightness-110 cursor-pointer",style:p,children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-fg leading-snug flex-1",children:e.title}),(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[(0,r.jsxs)("span",{className:"text-xs font-mono px-2 py-0.5 rounded-full",style:{background:h[e.risk_level]+"20",color:h[e.risk_level],border:`1px solid ${h[e.risk_level]}40`},children:[e.risk_level," risk"]}),(0,r.jsx)("span",{className:"text-xs font-mono px-2 py-0.5 rounded-full",style:{background:g[e.status]+"18",color:g[e.status],border:`1px solid ${g[e.status]}30`},children:e.status})]})]}),(0,r.jsx)("p",{className:"text-xs text-fg-muted leading-relaxed line-clamp-2",children:e.summary}),e.suggested_files.length>0&&(0,r.jsxs)("div",{className:"flex flex-wrap gap-1 mt-1",children:[e.suggested_files.slice(0,3).map(e=>(0,r.jsx)("span",{className:"text-xs font-mono text-fg-muted bg-surface-elevated/60 px-2 py-0.5 rounded",children:e.split("/").pop()},e)),e.suggested_files.length>3&&(0,r.jsxs)("span",{className:"text-xs text-fg-faint",children:["+",e.suggested_files.length-3," more"]})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between mt-1 gap-2",children:[(0,r.jsxs)("p",{className:"text-xs text-fg-faint",children:["llm-generated"===e.source?"✦ AI-generated":"User"," \xb7 ",new Date(e.created_at).toLocaleDateString()]}),(0,r.jsx)("button",{type:"button",onClick:function(s){s.preventDefault(),s.stopPropagation(),t.push(`/blue/recommendations/${e.id}#session`)},className:"text-[11px] px-2 py-1 rounded-md font-semibold transition-all flex-shrink-0",style:{background:"rgba(59,130,246,0.12)",color:"rgb(147,197,253)",border:"1px solid rgba(59,130,246,0.25)"},children:(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,r.jsx)(c.In,{name:"sessions",size:13,"aria-hidden":!0})," Session"]})})]})]})}function j(){return(0,r.jsx)(l.Suspense,{fallback:null,children:(0,r.jsx)(v,{})})}function v(){let{tq:e}=(0,u.e)(),t=new URLSearchParams(e.slice(1)).get("target")??"",{isPro:s,ready:a}=(0,f.R)(e),n=(0,i.useSearchParams)(),[g,h]=(0,l.useState)([]),[j,v]=(0,l.useState)(!0),[N,y]=(0,l.useState)(!1),[k,w]=(0,l.useState)(null),[S,C]=(0,l.useState)(!1),[E,_]=(0,l.useState)(!1),R=n?.get("filter")??"all",[P,A]=(0,l.useState)(["all","approved","draft","rejected"].includes(R)?R:"all");async function z(){try{let e=await fetch("/api/blue/recommendations"),t=await e.json();h(t.recommendations??[])}catch{}finally{v(!1)}}async function U(){y(!0),w(null);try{let e=await fetch("/api/blue/recommendations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({generate:!0})}),t=await e.json();if(!e.ok)throw Error(t.error??"Generation failed");await z()}catch(e){w(e instanceof Error?e.message:String(e))}finally{y(!1)}}(0,l.useEffect)(()=>{z()},[]);let L={approved:g.filter(e=>"approved"===e.status),draft:g.filter(e=>"draft"===e.status),rejected:g.filter(e=>"rejected"===e.status)};return(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(d.PrismDock,{}),(0,r.jsxs)("main",{className:"flex-1 flex flex-col items-center w-full max-w-4xl mx-auto px-6 pt-20 pb-16 gap-6",children:[(0,r.jsxs)("div",{className:"w-full flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,r.jsx)(o.OU,{lens:"BLUE",page:"Recommendations"}),(0,r.jsx)(o.sT,{lens:"BLUE",children:"Recommendations"}),(0,r.jsxs)("p",{className:"text-xs text-fg-muted mt-0.5",children:[g.length," total"]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[L.approved.length>0&&(0,r.jsx)("button",{onClick:()=>{a&&!s?_(!0):C(!0)},title:a&&!s?"Pro feature — click to learn more":"Bulk-execute approved recommendations",className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all flex items-center gap-2",style:a&&!s?{background:"rgba(71,85,105,0.15)",color:"rgb(148,163,184)",border:"1px solid rgba(71,85,105,0.3)"}:{background:"rgba(251,191,36,0.12)",color:"rgb(253,224,71)",border:"1px solid rgba(251,191,36,0.25)"},children:(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,r.jsx)(c.In,{name:a&&!s?"lock":"eda",size:13,"aria-hidden":!0})," Bulk Execute"]})}),(0,r.jsx)("button",{onClick:U,disabled:N,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-50 flex items-center gap-2",style:{background:"var(--lens-blue)",color:"#fff"},children:N?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"animate-spin inline-block w-3 h-3 border border-white border-t-transparent rounded-full"}),"Generating…"]}):"✦ Generate with AI"})]})]}),k&&(0,r.jsx)("div",{className:"w-full rounded-lg px-4 py-3 text-sm text-red-400 font-mono",style:{background:"rgba(239,68,68,0.08)",border:"1px solid rgba(239,68,68,0.2)"},children:k}),j&&(0,r.jsx)("div",{className:"w-full text-center py-16 text-fg-muted text-sm",children:"Loading…"}),!j&&0===g.length&&(0,r.jsxs)("div",{className:"w-full rounded-xl p-8 text-center flex flex-col items-center gap-3",style:p,children:[(0,r.jsx)("p",{className:"text-fg font-medium",children:"No recommendations yet"}),(0,r.jsx)("p",{className:"text-fg-muted text-sm max-w-sm",children:'Run a BLUE scan first, then click "Generate with AI" to get architecture recommendations.'})]}),!j&&g.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"w-full flex items-center gap-1.5",children:["all","approved","draft","rejected"].map(e=>{let t="all"===e?g.length:L[e].length,s=P===e;return(0,r.jsxs)("button",{onClick:()=>A(e),className:"text-[11px] px-2.5 py-1 rounded-full font-semibold transition-all",style:{background:s?"rgba(59,130,246,0.18)":"var(--surface-panel)",color:s?"rgb(147,197,253)":"rgb(100,116,139)",border:`1px solid ${s?"rgba(59,130,246,0.4)":"var(--border-default)"}`},children:["all"===e?"All":e.charAt(0).toUpperCase()+e.slice(1)," (",t,")"]},e)})}),("all"===P||"approved"===P)&&L.approved.length>0&&(0,r.jsxs)("div",{className:"w-full flex flex-col gap-3",children:[(0,r.jsxs)("h2",{className:"text-xs font-semibold text-emerald-400 uppercase tracking-widest",children:["Approved (",L.approved.length,")"]}),L.approved.map(e=>(0,r.jsx)(b,{rec:e},e.id))]}),("all"===P||"draft"===P)&&L.draft.length>0&&(0,r.jsxs)("div",{className:"w-full flex flex-col gap-3",children:[(0,r.jsxs)("h2",{className:"text-xs font-semibold text-fg-muted uppercase tracking-widest",children:["Draft (",L.draft.length,")"]}),L.draft.map(e=>(0,r.jsx)(b,{rec:e},e.id))]}),("all"===P||"rejected"===P)&&L.rejected.length>0&&(0,r.jsxs)("div",{className:"w-full flex flex-col gap-3",children:[(0,r.jsxs)("h2",{className:"text-xs font-semibold text-red-400 uppercase tracking-widest",children:["Rejected (",L.rejected.length,")"]}),L.rejected.map(e=>(0,r.jsx)(b,{rec:e},e.id))]}),"all"!==P&&0===L[P].length&&(0,r.jsxs)("div",{className:"w-full rounded-xl p-6 text-center text-fg-muted text-sm",style:p,children:["No ",P," recommendations."]})]})]}),(0,r.jsxs)("footer",{className:"text-center py-4 text-xs text-fg-faint",children:["prism",(0,r.jsx)("span",{className:"font-mono",children:"0x2A"})," v","0.27.7"," \xb7 BLUE / Recommendations"]}),S&&(0,r.jsx)(x,{recs:g,target:t,onClose:()=>C(!1)}),E&&(0,r.jsx)(m.z,{feature:"Bulk Auto-Execute",description:"Run every approved recommendation in one click — sequential execution, per-rec status, streamed output, and rollback-safe diff previews.",features:["Sequential bulk runner","Per-rec status indicators","Streamed Claude output","Selective re-runs","Diff preview per rec"],estimate:`Saves ~${Math.max(5,4*L.approved.length)} min vs. running each recommendation by hand.`,utmContent:"bulk_execute",onClose:()=>_(!1)})]})}},48821:(e,t,s)=>{"use strict";s.d(t,{OU:()=>d,hw:()=>n,sT:()=>o});var r=s(54568),l=s(65587),a=s.n(l);s(94752);let n={BLUE:"var(--lens-blue)",AMBER:"var(--lens-amber)",GREEN:"var(--lens-green)",EXPLORER:"var(--lens-sky)",FRAMEWORKS:"var(--lens-rose)",FLEET:"var(--lens-violet)"},i={BLUE:"/blue",AMBER:"/amber",GREEN:"/green",EXPLORER:"/blue/explorer",FRAMEWORKS:"/green/frameworks",FLEET:"/fleet"};function d({lens:e,page:t,href:s,mid:l,className:o}){let c=n[e]??"rgb(148,163,184)",x=s??i[e]??"/";return(0,r.jsxs)("div",{className:`flex items-center gap-2 text-xs font-mono text-fg-muted ${o??""}`,children:[(0,r.jsxs)(a(),{href:x,className:"hover:text-fg transition-colors",children:["← ",(0,r.jsx)("span",{style:{color:c},children:e})]}),l&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)(a(),{href:l.href,className:"hover:text-fg transition-colors",children:l.label})]}),(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)("span",{className:"text-fg-muted",children:t})]})}function o({children:e,className:t,lens:s}){let l=s?n[s]:void 0;return(0,r.jsx)("h1",{className:`text-xl font-semibold tracking-tight ${l?"":"text-fg-bright"} ${t??""}`,style:l?{color:l}:void 0,children:e})}},51740:(e,t,s)=>{"use strict";s.d(t,{z:()=>n});var r=s(54568),l=s(65587),a=s.n(l);function n({feature:e,description:t,features:s,estimate:l,onClose:i,utmContent:d="prowall_modal"}){return(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",style:{background:"rgba(0,0,0,0.75)"},onClick:e=>{e.target===e.currentTarget&&i()},children:(0,r.jsxs)("div",{className:"flex flex-col rounded-2xl overflow-hidden",style:{background:"rgba(8,15,30,0.97)",border:"1px solid rgba(59,130,246,0.3)",boxShadow:"0 24px 80px rgba(0,0,0,0.7), 0 0 40px rgba(59,130,246,0.15)",width:"min(520px, 95vw)",maxHeight:"90vh"},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b flex-shrink-0",style:{borderColor:"var(--border-default)"},children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-2.5 py-1 rounded-full text-[10px] font-bold",style:{background:"rgba(59,130,246,0.12)",border:"1px solid rgba(59,130,246,0.3)",color:"rgb(96,165,250)"},children:[(0,r.jsx)("span",{"aria-hidden":!0,children:"✦"}),(0,r.jsx)("span",{children:"PRO FEATURE"})]}),(0,r.jsx)("button",{onClick:i,className:"text-fg-muted hover:text-fg transition-colors","aria-label":"Close",children:"✕"})]}),(0,r.jsxs)("div",{className:"flex-1 overflow-y-auto px-6 py-5 flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-fg-bright tracking-tight",children:e}),(0,r.jsx)("p",{className:"text-xs text-fg-muted leading-relaxed",children:t})]}),(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:s.map(e=>(0,r.jsx)("span",{className:"text-[11px] px-2.5 py-1 rounded-full font-medium",style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)",color:"rgb(148,163,184)"},children:e},e))}),l&&(0,r.jsx)("p",{className:"text-[11px] text-fg-muted italic",children:l})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-2 px-6 py-4 border-t flex-shrink-0",style:{borderColor:"var(--border-default)",background:"rgba(5,10,20,0.5)"},children:[(0,r.jsx)(a(),{href:`/pricing?utm_source=pro_wall_modal&utm_content=${encodeURIComponent(d)}`,className:"w-full py-2.5 rounded-lg text-sm font-semibold text-center transition-all",style:{background:"var(--lens-blue)",color:"#fff",boxShadow:"0 0 20px rgba(59,130,246,0.3)"},children:"Unlock — from €39/mo →"}),(0,r.jsx)(a(),{href:`/pricing?utm_source=pro_wall_modal&utm_content=${encodeURIComponent(d)}_spectrum`,className:"w-full py-2 rounded-lg text-xs font-medium text-center transition-colors",style:{color:"var(--text-muted)",border:"1px solid var(--border-default)"},children:"Spectrum 0x55 bundle — €49/mo (prism + forge)"}),(0,r.jsx)("p",{className:"text-[10px] text-fg-faint text-center",children:"Cancel anytime \xb7 EU VAT compliant"})]})]})})}},79748:(e,t,s)=>{"use strict";var r=s(79796);s.o(r,"useParams")&&s.d(t,{useParams:function(){return r.useParams}}),s.o(r,"usePathname")&&s.d(t,{usePathname:function(){return r.usePathname}}),s.o(r,"useRouter")&&s.d(t,{useRouter:function(){return r.useRouter}}),s.o(r,"useSearchParams")&&s.d(t,{useSearchParams:function(){return r.useSearchParams}})}},e=>{e.O(0,[5587,542,4454,4752,587,1968,7358],()=>e(e.s=12088)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8596],{12088:(e,t,s)=>{Promise.resolve().then(s.bind(s,25920))},25920:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>j});var r=s(54568),l=s(7620),a=s(65587),n=s.n(a),i=s(79748),d=s(34454),o=s(48821),c=s(99459);function x({recs:e,target:t,onClose:s}){let a=e.filter(e=>"approved"===e.status),[n,i]=(0,l.useState)(new Set(a.map(e=>e.id))),[d,o]=(0,l.useState)([]),[m,u]=(0,l.useState)(!1),[f,p]=(0,l.useState)(!1),[g,h]=(0,l.useState)(null);async function b(){let e=a.filter(e=>n.has(e.id));if(0!==e.length){for(let s of(u(!0),o(e.map(e=>({id:e.id,title:e.title,status:"pending"}))),e)){o(e=>e.map(e=>e.id===s.id?{...e,status:"running"}:e));try{let e=await fetch("/api/blue/auto-execute",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:t,rec:{id:s.id,title:s.title,problem:s.problem,expected_impact:s.expected_impact,suggested_files:s.suggested_files,risk_level:s.risk_level}})});if(!e.ok){let t=await e.json().catch(()=>({}));o(e=>e.map(e=>e.id===s.id?{...e,status:"error",error:t.error??"Failed"}:e));continue}let r=await e.text();o(e=>e.map(e=>e.id===s.id?{...e,status:"done",output:r}:e))}catch(e){o(t=>t.map(t=>t.id===s.id?{...t,status:"error",error:String(e)}:t))}}u(!1),p(!0)}}let j={pending:"○",running:"◌",done:"✓",error:"✕"},v={pending:"rgb(100,116,139)",running:"rgb(147,197,253)",done:"var(--lens-green)",error:"var(--sev-red)"};return(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",style:{background:"rgba(0,0,0,0.75)"},onClick:e=>{e.target!==e.currentTarget||m||s()},children:(0,r.jsxs)("div",{className:"flex flex-col rounded-2xl overflow-hidden",style:{background:"rgba(8,15,30,0.97)",border:"1px solid rgba(59,130,246,0.25)",boxShadow:"0 24px 80px rgba(0,0,0,0.7)",width:"min(640px, 95vw)",maxHeight:"80vh"},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b flex-shrink-0",style:{borderColor:"var(--border-default)"},children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("h2",{className:"text-sm font-semibold text-fg inline-flex items-center gap-1",children:[(0,r.jsx)(c.In,{name:"zap",size:13,"aria-hidden":!0})," Bulk Auto-Execute"]}),(0,r.jsxs)("p",{className:"text-[11px] text-fg-muted mt-0.5",children:[a.length," approved recommendation",1!==a.length?"s":""," \xb7 ",n.size," selected"]})]}),(0,r.jsx)("button",{onClick:s,disabled:m,className:"text-fg-muted hover:text-fg transition-colors disabled:opacity-40",children:"✕"})]}),(0,r.jsx)("div",{className:"flex-1 overflow-y-auto",children:0===a.length?(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 gap-2 text-center px-6",children:[(0,r.jsx)("span",{className:"text-3xl",children:(0,r.jsx)(c.In,{name:"clipboard",size:14,"aria-hidden":!0})}),(0,r.jsx)("p",{className:"text-sm text-fg-muted",children:"No approved recommendations."}),(0,r.jsx)("p",{className:"text-xs text-fg-faint",children:"Approve recommendations before bulk-executing."})]}):d.length>0?(0,r.jsx)("div",{className:"flex flex-col divide-y",style:{borderColor:"var(--border-default)"},children:d.map(e=>(0,r.jsxs)("div",{className:"px-5 py-3",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("span",{className:"text-xs font-mono w-4 text-center flex-shrink-0",style:{color:v[e.status]},children:"running"===e.status?(0,r.jsx)("span",{className:"inline-block w-3 h-3 border border-blue-400 border-t-transparent rounded-full animate-spin"}):j[e.status]}),(0,r.jsx)("span",{className:"text-xs text-fg flex-1 truncate",children:e.title}),(e.output||e.error)&&(0,r.jsx)("button",{onClick:()=>h(g===e.id?null:e.id),className:"text-[10px] text-fg-faint hover:text-fg-muted flex-shrink-0",children:g===e.id?"▲":"▼"})]}),g===e.id&&(e.output||e.error)&&(0,r.jsx)("pre",{className:"mt-2 text-[10px] font-mono text-fg-muted whitespace-pre-wrap max-h-40 overflow-y-auto bg-surface/60 rounded p-2",children:e.error??e.output})]},e.id))}):(0,r.jsx)("div",{className:"flex flex-col divide-y",style:{borderColor:"var(--border-default)"},children:a.map(e=>(0,r.jsxs)("button",{onClick:()=>{var t;return t=e.id,void i(e=>{let s=new Set(e);return s.has(t)?s.delete(t):s.add(t),s})},className:"flex items-center gap-3 px-5 py-3 text-left hover:bg-surface-elevated/30 transition-colors",children:[(0,r.jsx)("span",{className:"flex-shrink-0 w-4 h-4 rounded border flex items-center justify-center text-[10px] font-bold",style:{background:n.has(e.id)?"rgba(59,130,246,0.3)":"transparent",borderColor:n.has(e.id)?"rgba(59,130,246,0.6)":"rgba(71,85,105,0.5)",color:"white"},children:n.has(e.id)?"✓":""}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("p",{className:"text-xs text-fg truncate",children:e.title}),(0,r.jsxs)("p",{className:"text-[10px] text-fg-faint mt-0.5",children:[e.suggested_files.length," file",1!==e.suggested_files.length?"s":""," \xb7 ",e.risk_level," risk"]})]})]},e.id))})}),(0,r.jsx)("div",{className:"flex items-center gap-3 px-5 py-3 border-t flex-shrink-0",style:{borderColor:"var(--border-default)",background:"rgba(5,10,20,0.5)"},children:f?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"text-xs text-emerald-400",children:["✓ ",d.filter(e=>"done"===e.status).length," completed \xb7 ",d.filter(e=>"error"===e.status).length," failed"]}),(0,r.jsx)("button",{onClick:s,className:"text-xs px-3 py-1.5 rounded-lg font-medium ml-auto transition-all",style:{background:"rgba(59,130,246,0.15)",color:"rgb(147,197,253)",border:"1px solid rgba(59,130,246,0.3)"},children:"Close"})]}):d.length>0&&m?(0,r.jsxs)("span",{className:"text-xs text-fg-muted flex items-center gap-2",children:[(0,r.jsx)("span",{className:"inline-block w-3 h-3 border border-blue-400 border-t-transparent rounded-full animate-spin"}),"Running ",d.filter(e=>"done"===e.status||"error"===e.status).length," / ",d.length,"…"]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{className:"text-xs text-fg-faint",children:[n.size," of ",a.length," selected"]}),(0,r.jsx)("button",{onClick:()=>i(new Set(a.map(e=>e.id))),className:"text-[10px] text-fg-faint hover:text-fg-muted transition-colors",children:"All"}),(0,r.jsx)("button",{onClick:()=>i(new Set),className:"text-[10px] text-fg-faint hover:text-fg-muted transition-colors",children:"None"}),(0,r.jsxs)("button",{onClick:b,disabled:0===n.size,className:"text-xs px-3 py-1.5 rounded-lg font-semibold ml-auto transition-all disabled:opacity-40",style:{background:"rgba(251,191,36,0.15)",color:"rgb(253,224,71)",border:"1px solid rgba(251,191,36,0.25)"},children:[(0,r.jsx)(c.In,{name:"zap",size:13,className:"inline align-[-1px] mr-px","aria-hidden":!0})," Execute ",n.size," recommendation",1!==n.size?"s":""]})]})})]})})}var m=s(51740),u=s(72458),f=s(44123);let p={background:"var(--surface-panel)",border:"1px solid var(--border-default)",boxShadow:"0 1px 2px var(--surface-panel),0 4px 16px var(--surface-panel),inset 0 1px 0 rgba(255,255,255,.04)"},g={draft:"rgba(148,163,184,0.9)",approved:"var(--lens-green)",rejected:"var(--sev-red)"},h={low:"var(--lens-green)",medium:"var(--lens-amber)",high:"var(--sev-red)"};function b({rec:e}){let t=(0,i.useRouter)();return(0,r.jsxs)(n(),{href:`/blue/recommendations/${e.id}`,className:"w-full rounded-xl p-5 flex flex-col gap-2 transition-all hover:brightness-110 cursor-pointer",style:p,children:[(0,r.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-fg leading-snug flex-1",children:e.title}),(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[(0,r.jsxs)("span",{className:"text-xs font-mono px-2 py-0.5 rounded-full",style:{background:h[e.risk_level]+"20",color:h[e.risk_level],border:`1px solid ${h[e.risk_level]}40`},children:[e.risk_level," risk"]}),(0,r.jsx)("span",{className:"text-xs font-mono px-2 py-0.5 rounded-full",style:{background:g[e.status]+"18",color:g[e.status],border:`1px solid ${g[e.status]}30`},children:e.status})]})]}),(0,r.jsx)("p",{className:"text-xs text-fg-muted leading-relaxed line-clamp-2",children:e.summary}),e.suggested_files.length>0&&(0,r.jsxs)("div",{className:"flex flex-wrap gap-1 mt-1",children:[e.suggested_files.slice(0,3).map(e=>(0,r.jsx)("span",{className:"text-xs font-mono text-fg-muted bg-surface-elevated/60 px-2 py-0.5 rounded",children:e.split("/").pop()},e)),e.suggested_files.length>3&&(0,r.jsxs)("span",{className:"text-xs text-fg-faint",children:["+",e.suggested_files.length-3," more"]})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between mt-1 gap-2",children:[(0,r.jsxs)("p",{className:"text-xs text-fg-faint",children:["llm-generated"===e.source?"✦ AI-generated":"User"," \xb7 ",new Date(e.created_at).toLocaleDateString()]}),(0,r.jsx)("button",{type:"button",onClick:function(s){s.preventDefault(),s.stopPropagation(),t.push(`/blue/recommendations/${e.id}#session`)},className:"text-[11px] px-2 py-1 rounded-md font-semibold transition-all flex-shrink-0",style:{background:"rgba(59,130,246,0.12)",color:"rgb(147,197,253)",border:"1px solid rgba(59,130,246,0.25)"},children:(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,r.jsx)(c.In,{name:"sessions",size:13,"aria-hidden":!0})," Session"]})})]})]})}function j(){return(0,r.jsx)(l.Suspense,{fallback:null,children:(0,r.jsx)(v,{})})}function v(){let{tq:e}=(0,u.e)(),t=new URLSearchParams(e.slice(1)).get("target")??"",{isPro:s,ready:a}=(0,f.R)(e),n=(0,i.useSearchParams)(),[g,h]=(0,l.useState)([]),[j,v]=(0,l.useState)(!0),[N,y]=(0,l.useState)(!1),[k,w]=(0,l.useState)(null),[S,C]=(0,l.useState)(!1),[E,_]=(0,l.useState)(!1),R=n?.get("filter")??"all",[P,A]=(0,l.useState)(["all","approved","draft","rejected"].includes(R)?R:"all");async function z(){try{let e=await fetch("/api/blue/recommendations"),t=await e.json();h(t.recommendations??[])}catch{}finally{v(!1)}}async function U(){y(!0),w(null);try{let e=await fetch("/api/blue/recommendations",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({generate:!0})}),t=await e.json();if(!e.ok)throw Error(t.error??"Generation failed");await z()}catch(e){w(e instanceof Error?e.message:String(e))}finally{y(!1)}}(0,l.useEffect)(()=>{z()},[]);let L={approved:g.filter(e=>"approved"===e.status),draft:g.filter(e=>"draft"===e.status),rejected:g.filter(e=>"rejected"===e.status)};return(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(d.PrismDock,{}),(0,r.jsxs)("main",{className:"flex-1 flex flex-col items-center w-full max-w-4xl mx-auto px-6 pt-20 pb-16 gap-6",children:[(0,r.jsxs)("div",{className:"w-full flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,r.jsx)(o.OU,{lens:"BLUE",page:"Recommendations"}),(0,r.jsx)(o.sT,{lens:"BLUE",children:"Recommendations"}),(0,r.jsxs)("p",{className:"text-xs text-fg-muted mt-0.5",children:[g.length," total"]})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[L.approved.length>0&&(0,r.jsx)("button",{onClick:()=>{a&&!s?_(!0):C(!0)},title:a&&!s?"Pro feature — click to learn more":"Bulk-execute approved recommendations",className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all flex items-center gap-2",style:a&&!s?{background:"rgba(71,85,105,0.15)",color:"rgb(148,163,184)",border:"1px solid rgba(71,85,105,0.3)"}:{background:"rgba(251,191,36,0.12)",color:"rgb(253,224,71)",border:"1px solid rgba(251,191,36,0.25)"},children:(0,r.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,r.jsx)(c.In,{name:a&&!s?"lock":"eda",size:13,"aria-hidden":!0})," Bulk Execute"]})}),(0,r.jsx)("button",{onClick:U,disabled:N,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-50 flex items-center gap-2",style:{background:"var(--lens-blue)",color:"#fff"},children:N?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"animate-spin inline-block w-3 h-3 border border-white border-t-transparent rounded-full"}),"Generating…"]}):"✦ Generate with AI"})]})]}),k&&(0,r.jsx)("div",{className:"w-full rounded-lg px-4 py-3 text-sm text-red-400 font-mono",style:{background:"rgba(239,68,68,0.08)",border:"1px solid rgba(239,68,68,0.2)"},children:k}),j&&(0,r.jsx)("div",{className:"w-full text-center py-16 text-fg-muted text-sm",children:"Loading…"}),!j&&0===g.length&&(0,r.jsxs)("div",{className:"w-full rounded-xl p-8 text-center flex flex-col items-center gap-3",style:p,children:[(0,r.jsx)("p",{className:"text-fg font-medium",children:"No recommendations yet"}),(0,r.jsx)("p",{className:"text-fg-muted text-sm max-w-sm",children:'Run a BLUE scan first, then click "Generate with AI" to get architecture recommendations.'})]}),!j&&g.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"w-full flex items-center gap-1.5",children:["all","approved","draft","rejected"].map(e=>{let t="all"===e?g.length:L[e].length,s=P===e;return(0,r.jsxs)("button",{onClick:()=>A(e),className:"text-[11px] px-2.5 py-1 rounded-full font-semibold transition-all",style:{background:s?"rgba(59,130,246,0.18)":"var(--surface-panel)",color:s?"rgb(147,197,253)":"rgb(100,116,139)",border:`1px solid ${s?"rgba(59,130,246,0.4)":"var(--border-default)"}`},children:["all"===e?"All":e.charAt(0).toUpperCase()+e.slice(1)," (",t,")"]},e)})}),("all"===P||"approved"===P)&&L.approved.length>0&&(0,r.jsxs)("div",{className:"w-full flex flex-col gap-3",children:[(0,r.jsxs)("h2",{className:"text-xs font-semibold text-emerald-400 uppercase tracking-widest",children:["Approved (",L.approved.length,")"]}),L.approved.map(e=>(0,r.jsx)(b,{rec:e},e.id))]}),("all"===P||"draft"===P)&&L.draft.length>0&&(0,r.jsxs)("div",{className:"w-full flex flex-col gap-3",children:[(0,r.jsxs)("h2",{className:"text-xs font-semibold text-fg-muted uppercase tracking-widest",children:["Draft (",L.draft.length,")"]}),L.draft.map(e=>(0,r.jsx)(b,{rec:e},e.id))]}),("all"===P||"rejected"===P)&&L.rejected.length>0&&(0,r.jsxs)("div",{className:"w-full flex flex-col gap-3",children:[(0,r.jsxs)("h2",{className:"text-xs font-semibold text-red-400 uppercase tracking-widest",children:["Rejected (",L.rejected.length,")"]}),L.rejected.map(e=>(0,r.jsx)(b,{rec:e},e.id))]}),"all"!==P&&0===L[P].length&&(0,r.jsxs)("div",{className:"w-full rounded-xl p-6 text-center text-fg-muted text-sm",style:p,children:["No ",P," recommendations."]})]})]}),(0,r.jsxs)("footer",{className:"text-center py-4 text-xs text-fg-faint",children:["prism",(0,r.jsx)("span",{className:"font-mono",children:"0x2A"})," v","1.0.0"," \xb7 BLUE / Recommendations"]}),S&&(0,r.jsx)(x,{recs:g,target:t,onClose:()=>C(!1)}),E&&(0,r.jsx)(m.z,{feature:"Bulk Auto-Execute",description:"Run every approved recommendation in one click — sequential execution, per-rec status, streamed output, and rollback-safe diff previews.",features:["Sequential bulk runner","Per-rec status indicators","Streamed Claude output","Selective re-runs","Diff preview per rec"],estimate:`Saves ~${Math.max(5,4*L.approved.length)} min vs. running each recommendation by hand.`,utmContent:"bulk_execute",onClose:()=>_(!1)})]})}},48821:(e,t,s)=>{"use strict";s.d(t,{OU:()=>d,hw:()=>n,sT:()=>o});var r=s(54568),l=s(65587),a=s.n(l);s(94752);let n={BLUE:"var(--lens-blue)",AMBER:"var(--lens-amber)",GREEN:"var(--lens-green)",EXPLORER:"var(--lens-sky)",FRAMEWORKS:"var(--lens-rose)",FLEET:"var(--lens-violet)"},i={BLUE:"/blue",AMBER:"/amber",GREEN:"/green",EXPLORER:"/blue/explorer",FRAMEWORKS:"/green/frameworks",FLEET:"/fleet"};function d({lens:e,page:t,href:s,mid:l,className:o}){let c=n[e]??"rgb(148,163,184)",x=s??i[e]??"/";return(0,r.jsxs)("div",{className:`flex items-center gap-2 text-xs font-mono text-fg-muted ${o??""}`,children:[(0,r.jsxs)(a(),{href:x,className:"hover:text-fg transition-colors",children:["← ",(0,r.jsx)("span",{style:{color:c},children:e})]}),l&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)(a(),{href:l.href,className:"hover:text-fg transition-colors",children:l.label})]}),(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)("span",{className:"text-fg-muted",children:t})]})}function o({children:e,className:t,lens:s}){let l=s?n[s]:void 0;return(0,r.jsx)("h1",{className:`text-xl font-semibold tracking-tight ${l?"":"text-fg-bright"} ${t??""}`,style:l?{color:l}:void 0,children:e})}},51740:(e,t,s)=>{"use strict";s.d(t,{z:()=>n});var r=s(54568),l=s(65587),a=s.n(l);function n({feature:e,description:t,features:s,estimate:l,onClose:i,utmContent:d="prowall_modal"}){return(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",style:{background:"rgba(0,0,0,0.75)"},onClick:e=>{e.target===e.currentTarget&&i()},children:(0,r.jsxs)("div",{className:"flex flex-col rounded-2xl overflow-hidden",style:{background:"rgba(8,15,30,0.97)",border:"1px solid rgba(59,130,246,0.3)",boxShadow:"0 24px 80px rgba(0,0,0,0.7), 0 0 40px rgba(59,130,246,0.15)",width:"min(520px, 95vw)",maxHeight:"90vh"},children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-5 py-4 border-b flex-shrink-0",style:{borderColor:"var(--border-default)"},children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-2.5 py-1 rounded-full text-[10px] font-bold",style:{background:"rgba(59,130,246,0.12)",border:"1px solid rgba(59,130,246,0.3)",color:"rgb(96,165,250)"},children:[(0,r.jsx)("span",{"aria-hidden":!0,children:"✦"}),(0,r.jsx)("span",{children:"PRO FEATURE"})]}),(0,r.jsx)("button",{onClick:i,className:"text-fg-muted hover:text-fg transition-colors","aria-label":"Close",children:"✕"})]}),(0,r.jsxs)("div",{className:"flex-1 overflow-y-auto px-6 py-5 flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-fg-bright tracking-tight",children:e}),(0,r.jsx)("p",{className:"text-xs text-fg-muted leading-relaxed",children:t})]}),(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:s.map(e=>(0,r.jsx)("span",{className:"text-[11px] px-2.5 py-1 rounded-full font-medium",style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)",color:"rgb(148,163,184)"},children:e},e))}),l&&(0,r.jsx)("p",{className:"text-[11px] text-fg-muted italic",children:l})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-2 px-6 py-4 border-t flex-shrink-0",style:{borderColor:"var(--border-default)",background:"rgba(5,10,20,0.5)"},children:[(0,r.jsx)(a(),{href:`/pricing?utm_source=pro_wall_modal&utm_content=${encodeURIComponent(d)}`,className:"w-full py-2.5 rounded-lg text-sm font-semibold text-center transition-all",style:{background:"var(--lens-blue)",color:"#fff",boxShadow:"0 0 20px rgba(59,130,246,0.3)"},children:"Unlock — from €39/mo →"}),(0,r.jsx)(a(),{href:`/pricing?utm_source=pro_wall_modal&utm_content=${encodeURIComponent(d)}_spectrum`,className:"w-full py-2 rounded-lg text-xs font-medium text-center transition-colors",style:{color:"var(--text-muted)",border:"1px solid var(--border-default)"},children:"Spectrum 0x55 bundle — €49/mo (prism + forge)"}),(0,r.jsx)("p",{className:"text-[10px] text-fg-faint text-center",children:"Cancel anytime \xb7 EU VAT compliant"})]})]})})}},79748:(e,t,s)=>{"use strict";var r=s(79796);s.o(r,"useParams")&&s.d(t,{useParams:function(){return r.useParams}}),s.o(r,"usePathname")&&s.d(t,{usePathname:function(){return r.usePathname}}),s.o(r,"useRouter")&&s.d(t,{useRouter:function(){return r.useRouter}}),s.o(r,"useSearchParams")&&s.d(t,{useSearchParams:function(){return r.useSearchParams}})}},e=>{e.O(0,[5587,542,4454,4752,587,1968,7358],()=>e(e.s=12088)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2165],{48736:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>u});var r=t(54568),a=t(7620),l=t(65587),n=t.n(l),i=t(34454),o=t(83418),d=t(72458);let c={background:"var(--surface-panel)",border:"1px solid var(--border-default)",boxShadow:"0 1px 2px var(--surface-panel),0 4px 16px var(--surface-panel),inset 0 1px 0 rgba(255,255,255,.04)"};function x({turn:e}){return(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsx)("div",{className:"flex justify-end",children:(0,r.jsx)("div",{className:"max-w-lg rounded-2xl rounded-tr-sm px-4 py-3 text-sm text-fg leading-relaxed",style:{background:"rgba(59,130,246,0.15)",border:"1px solid rgba(59,130,246,0.25)"},children:e.prompt})}),e.response?(0,r.jsx)("div",{className:"flex justify-start",children:(0,r.jsxs)("div",{className:"max-w-lg rounded-2xl rounded-tl-sm px-4 py-3 text-sm text-fg leading-relaxed",style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)"},children:[(0,r.jsx)("span",{className:"text-blue-400 text-xs font-mono mr-2",children:"✦"}),(0,r.jsx)("span",{style:{whiteSpace:"pre-wrap"},children:e.response})]})}):(0,r.jsx)("div",{className:"flex justify-start",children:(0,r.jsxs)("div",{className:"rounded-2xl rounded-tl-sm px-4 py-3 flex items-center gap-2",style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)"},children:[(0,r.jsx)("span",{className:"animate-spin inline-block w-3 h-3 border border-blue-400 border-t-transparent rounded-full"}),(0,r.jsx)("span",{className:"text-xs text-fg-muted",children:"Thinking…"})]})})]})}function u({params:e}){let{id:s}=(0,a.use)(e),{tq:t,ready:l}=(0,d.e)(),[m,f]=(0,a.useState)(null),[p,h]=(0,a.useState)(!0),[b,g]=(0,a.useState)(!1),[v,j]=(0,a.useState)(""),[y,N]=(0,a.useState)(!1),[k,w]=(0,a.useState)(null),[S,P]=(0,a.useState)(!1),E=(0,a.useRef)(null);async function _(){try{let e=await fetch(`/api/blue/sessions/${s}${t}`);if(404===e.status)return void g(!0);let r=await e.json();f(r.session)}catch{g(!0)}finally{h(!1)}}async function C(){if(!v.trim()||y||!m)return;let e=v.trim();j(""),N(!0),w(null),f(s=>s?{...s,turns:[...s.turns,{turn:s.turns.length+1,prompt:e,created_at:new Date().toISOString()}]}:s);try{let r=await fetch(`/api/blue/sessions/${s}${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:e})}),a=await r.json().catch(()=>({}));r.ok&&a?.session?f(a.session):w(a?.error??`Request failed (HTTP ${r.status})`)}catch{w("Network error — could not reach the API.")}finally{N(!1)}}async function A(e){if(m){P(!0);try{let r=await fetch(`/api/blue/sessions/${s}${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:e})}),a=await r.json();f(a.session)}finally{P(!1)}}}if((0,a.useEffect)(()=>{l&&_()},[s,l,t]),(0,a.useEffect)(()=>{E.current?.scrollIntoView({behavior:"smooth"})},[m?.turns.length]),p)return(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(i.PrismDock,{}),(0,r.jsx)("main",{className:"flex-1 flex items-center justify-center",children:(0,r.jsx)("span",{className:"text-fg-muted text-sm",children:"Loading…"})})]});if(b||!m)return(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(i.PrismDock,{}),(0,r.jsxs)("main",{className:"flex-1 flex flex-col items-center justify-center gap-4",children:[(0,r.jsx)("p",{className:"text-fg-muted",children:"Session not found."}),(0,r.jsx)(n(),{href:"/blue/sessions",className:"text-blue-400 text-sm hover:underline",children:"← Back to Sessions"})]})]});let $="active"===m.status;return(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(i.PrismDock,{}),(0,r.jsxs)("main",{className:"flex-1 flex flex-col items-center px-6 pt-28 pb-4",style:{maxWidth:720,margin:"0 auto",width:"100%"},children:[(0,r.jsxs)("div",{className:"w-full flex items-start justify-between mb-4",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,r.jsx)(n(),{href:"/blue",className:"font-mono font-semibold hover:brightness-110 transition-all",style:{color:"var(--lens-blue)"},children:"BLUE"}),(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)(n(),{href:"/blue/sessions",className:"text-fg-muted hover:text-fg transition-colors",children:"Ask BLUE"}),(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)("span",{className:"text-fg font-medium truncate max-w-xs",children:m.title})]}),(0,r.jsx)("h1",{className:"text-xl font-semibold tracking-tight",style:{color:"var(--lens-blue)"},children:"Ask BLUE"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[$&&(0,r.jsx)("button",{onClick:()=>A("completed"),disabled:S,className:"text-xs px-3 py-1 rounded-lg font-medium transition-all disabled:opacity-40",style:{background:"rgba(52,211,153,0.1)",color:"var(--lens-green)",border:"1px solid rgba(52,211,153,0.25)"},children:"Mark complete"}),$&&(0,r.jsx)("button",{onClick:()=>A("abandoned"),disabled:S,className:"text-xs px-3 py-1 rounded-lg font-medium transition-all disabled:opacity-40",style:{background:"rgba(148,163,184,0.08)",color:"var(--text-muted)",border:"1px solid rgba(148,163,184,0.15)"},children:"Abandon"}),!$&&(0,r.jsx)("span",{className:"text-xs font-mono px-2 py-1 rounded-lg",style:{background:"rgba(148,163,184,0.08)",color:"var(--text-muted)",border:"1px solid rgba(148,163,184,0.15)"},children:m.status})]})]}),m.rec_id&&(0,r.jsx)("div",{className:"w-full mb-4",children:(0,r.jsx)(n(),{href:`/blue/recommendations/${m.rec_id}`,className:"text-xs text-blue-400 hover:text-blue-300 transition-colors font-mono",children:"↗ linked recommendation"})}),(0,r.jsxs)("div",{className:"w-full flex flex-col gap-5 flex-1 overflow-y-auto pb-4",children:[0===m.turns.length&&(0,r.jsxs)("div",{className:"w-full rounded-xl p-8 text-center flex flex-col items-center gap-4",style:c,children:[(0,r.jsx)("p",{className:"text-fg-muted text-sm",children:"No messages yet. Pick a starter or ask your own below."}),(0,r.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2 w-full max-w-xl",children:["Where are the highest-risk files in this codebase?","What import cycles exist and how should I fix them?","Which modules have the lowest test coverage?","Summarise the architecture in 5 sentences."].map(e=>(0,r.jsx)("button",{onClick:()=>j(e),className:"text-left px-4 py-3 rounded-xl text-xs transition-all hover:brightness-110",style:{background:"color-mix(in srgb, var(--lens-blue) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--lens-blue) 22%, transparent)",color:"var(--text-primary)"},children:e},e))})]}),m.turns.map(e=>(0,r.jsx)(x,{turn:e},e.turn)),(0,r.jsx)("div",{ref:E})]}),k&&(0,r.jsx)("div",{className:"w-full rounded-lg border px-3 py-2 text-xs",style:{borderColor:"color-mix(in srgb, var(--sev-red) 35%, transparent)",background:"color-mix(in srgb, var(--sev-red) 8%, transparent)",color:"var(--text-primary)"},children:/api key/i.test(k)?(0,r.jsxs)(r.Fragment,{children:["Add an Anthropic API key in"," ",(0,r.jsx)(n(),{href:"/settings",className:"underline",style:{color:"var(--lens-blue)"},children:"Settings"})," ","to ask questions."]}):k}),$&&(0,r.jsx)("div",{className:"w-full mt-4 sticky bottom-4",children:(0,r.jsx)(o.c,{active:!y,color:"var(--lens-blue)",radius:12,className:"w-full",children:(0,r.jsxs)("div",{className:"w-full rounded-xl p-3 flex items-end gap-3",style:{background:"var(--surface-floor)",backdropFilter:"blur(16px)",border:"1px solid var(--border-strong)",boxShadow:"0 4px 24px rgba(0,0,0,0.4)"},children:[(0,r.jsx)("textarea",{rows:3,value:v,onChange:e=>j(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),C())},placeholder:"Ask about your codebase… (Enter to send, Shift+Enter for newline)",disabled:y,className:"flex-1 bg-transparent text-sm font-mono text-fg outline-none resize-none placeholder:text-fg-faint disabled:opacity-50"}),(0,r.jsx)("button",{onClick:C,disabled:!v.trim()||y,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-40 flex-shrink-0 self-end",style:{background:"var(--lens-blue)",color:"#fff"},children:y?(0,r.jsx)("span",{className:"animate-spin inline-block w-4 h-4 border-2 border-white border-t-transparent rounded-full"}):"Send"})]})})})]}),(0,r.jsxs)("footer",{className:"text-center py-3 text-xs text-fg-faint",children:["prism",(0,r.jsx)("span",{className:"font-mono",children:"0x2A"})," v","0.
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2165],{48736:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>u});var r=t(54568),a=t(7620),l=t(65587),n=t.n(l),i=t(34454),o=t(83418),d=t(72458);let c={background:"var(--surface-panel)",border:"1px solid var(--border-default)",boxShadow:"0 1px 2px var(--surface-panel),0 4px 16px var(--surface-panel),inset 0 1px 0 rgba(255,255,255,.04)"};function x({turn:e}){return(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsx)("div",{className:"flex justify-end",children:(0,r.jsx)("div",{className:"max-w-lg rounded-2xl rounded-tr-sm px-4 py-3 text-sm text-fg leading-relaxed",style:{background:"rgba(59,130,246,0.15)",border:"1px solid rgba(59,130,246,0.25)"},children:e.prompt})}),e.response?(0,r.jsx)("div",{className:"flex justify-start",children:(0,r.jsxs)("div",{className:"max-w-lg rounded-2xl rounded-tl-sm px-4 py-3 text-sm text-fg leading-relaxed",style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)"},children:[(0,r.jsx)("span",{className:"text-blue-400 text-xs font-mono mr-2",children:"✦"}),(0,r.jsx)("span",{style:{whiteSpace:"pre-wrap"},children:e.response})]})}):(0,r.jsx)("div",{className:"flex justify-start",children:(0,r.jsxs)("div",{className:"rounded-2xl rounded-tl-sm px-4 py-3 flex items-center gap-2",style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)"},children:[(0,r.jsx)("span",{className:"animate-spin inline-block w-3 h-3 border border-blue-400 border-t-transparent rounded-full"}),(0,r.jsx)("span",{className:"text-xs text-fg-muted",children:"Thinking…"})]})})]})}function u({params:e}){let{id:s}=(0,a.use)(e),{tq:t,ready:l}=(0,d.e)(),[m,f]=(0,a.useState)(null),[p,h]=(0,a.useState)(!0),[b,g]=(0,a.useState)(!1),[v,j]=(0,a.useState)(""),[y,N]=(0,a.useState)(!1),[k,w]=(0,a.useState)(null),[S,P]=(0,a.useState)(!1),E=(0,a.useRef)(null);async function _(){try{let e=await fetch(`/api/blue/sessions/${s}${t}`);if(404===e.status)return void g(!0);let r=await e.json();f(r.session)}catch{g(!0)}finally{h(!1)}}async function C(){if(!v.trim()||y||!m)return;let e=v.trim();j(""),N(!0),w(null),f(s=>s?{...s,turns:[...s.turns,{turn:s.turns.length+1,prompt:e,created_at:new Date().toISOString()}]}:s);try{let r=await fetch(`/api/blue/sessions/${s}${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:e})}),a=await r.json().catch(()=>({}));r.ok&&a?.session?f(a.session):w(a?.error??`Request failed (HTTP ${r.status})`)}catch{w("Network error — could not reach the API.")}finally{N(!1)}}async function A(e){if(m){P(!0);try{let r=await fetch(`/api/blue/sessions/${s}${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:e})}),a=await r.json();f(a.session)}finally{P(!1)}}}if((0,a.useEffect)(()=>{l&&_()},[s,l,t]),(0,a.useEffect)(()=>{E.current?.scrollIntoView({behavior:"smooth"})},[m?.turns.length]),p)return(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(i.PrismDock,{}),(0,r.jsx)("main",{className:"flex-1 flex items-center justify-center",children:(0,r.jsx)("span",{className:"text-fg-muted text-sm",children:"Loading…"})})]});if(b||!m)return(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(i.PrismDock,{}),(0,r.jsxs)("main",{className:"flex-1 flex flex-col items-center justify-center gap-4",children:[(0,r.jsx)("p",{className:"text-fg-muted",children:"Session not found."}),(0,r.jsx)(n(),{href:"/blue/sessions",className:"text-blue-400 text-sm hover:underline",children:"← Back to Sessions"})]})]});let $="active"===m.status;return(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(i.PrismDock,{}),(0,r.jsxs)("main",{className:"flex-1 flex flex-col items-center px-6 pt-28 pb-4",style:{maxWidth:720,margin:"0 auto",width:"100%"},children:[(0,r.jsxs)("div",{className:"w-full flex items-start justify-between mb-4",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,r.jsx)(n(),{href:"/blue",className:"font-mono font-semibold hover:brightness-110 transition-all",style:{color:"var(--lens-blue)"},children:"BLUE"}),(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)(n(),{href:"/blue/sessions",className:"text-fg-muted hover:text-fg transition-colors",children:"Ask BLUE"}),(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)("span",{className:"text-fg font-medium truncate max-w-xs",children:m.title})]}),(0,r.jsx)("h1",{className:"text-xl font-semibold tracking-tight",style:{color:"var(--lens-blue)"},children:"Ask BLUE"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[$&&(0,r.jsx)("button",{onClick:()=>A("completed"),disabled:S,className:"text-xs px-3 py-1 rounded-lg font-medium transition-all disabled:opacity-40",style:{background:"rgba(52,211,153,0.1)",color:"var(--lens-green)",border:"1px solid rgba(52,211,153,0.25)"},children:"Mark complete"}),$&&(0,r.jsx)("button",{onClick:()=>A("abandoned"),disabled:S,className:"text-xs px-3 py-1 rounded-lg font-medium transition-all disabled:opacity-40",style:{background:"rgba(148,163,184,0.08)",color:"var(--text-muted)",border:"1px solid rgba(148,163,184,0.15)"},children:"Abandon"}),!$&&(0,r.jsx)("span",{className:"text-xs font-mono px-2 py-1 rounded-lg",style:{background:"rgba(148,163,184,0.08)",color:"var(--text-muted)",border:"1px solid rgba(148,163,184,0.15)"},children:m.status})]})]}),m.rec_id&&(0,r.jsx)("div",{className:"w-full mb-4",children:(0,r.jsx)(n(),{href:`/blue/recommendations/${m.rec_id}`,className:"text-xs text-blue-400 hover:text-blue-300 transition-colors font-mono",children:"↗ linked recommendation"})}),(0,r.jsxs)("div",{className:"w-full flex flex-col gap-5 flex-1 overflow-y-auto pb-4",children:[0===m.turns.length&&(0,r.jsxs)("div",{className:"w-full rounded-xl p-8 text-center flex flex-col items-center gap-4",style:c,children:[(0,r.jsx)("p",{className:"text-fg-muted text-sm",children:"No messages yet. Pick a starter or ask your own below."}),(0,r.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2 w-full max-w-xl",children:["Where are the highest-risk files in this codebase?","What import cycles exist and how should I fix them?","Which modules have the lowest test coverage?","Summarise the architecture in 5 sentences."].map(e=>(0,r.jsx)("button",{onClick:()=>j(e),className:"text-left px-4 py-3 rounded-xl text-xs transition-all hover:brightness-110",style:{background:"color-mix(in srgb, var(--lens-blue) 8%, transparent)",border:"1px solid color-mix(in srgb, var(--lens-blue) 22%, transparent)",color:"var(--text-primary)"},children:e},e))})]}),m.turns.map(e=>(0,r.jsx)(x,{turn:e},e.turn)),(0,r.jsx)("div",{ref:E})]}),k&&(0,r.jsx)("div",{className:"w-full rounded-lg border px-3 py-2 text-xs",style:{borderColor:"color-mix(in srgb, var(--sev-red) 35%, transparent)",background:"color-mix(in srgb, var(--sev-red) 8%, transparent)",color:"var(--text-primary)"},children:/api key/i.test(k)?(0,r.jsxs)(r.Fragment,{children:["Add an Anthropic API key in"," ",(0,r.jsx)(n(),{href:"/settings",className:"underline",style:{color:"var(--lens-blue)"},children:"Settings"})," ","to ask questions."]}):k}),$&&(0,r.jsx)("div",{className:"w-full mt-4 sticky bottom-4",children:(0,r.jsx)(o.c,{active:!y,color:"var(--lens-blue)",radius:12,className:"w-full",children:(0,r.jsxs)("div",{className:"w-full rounded-xl p-3 flex items-end gap-3",style:{background:"var(--surface-floor)",backdropFilter:"blur(16px)",border:"1px solid var(--border-strong)",boxShadow:"0 4px 24px rgba(0,0,0,0.4)"},children:[(0,r.jsx)("textarea",{rows:3,value:v,onChange:e=>j(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),C())},placeholder:"Ask about your codebase… (Enter to send, Shift+Enter for newline)",disabled:y,className:"flex-1 bg-transparent text-sm font-mono text-fg outline-none resize-none placeholder:text-fg-faint disabled:opacity-50"}),(0,r.jsx)("button",{onClick:C,disabled:!v.trim()||y,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-40 flex-shrink-0 self-end",style:{background:"var(--lens-blue)",color:"#fff"},children:y?(0,r.jsx)("span",{className:"animate-spin inline-block w-4 h-4 border-2 border-white border-t-transparent rounded-full"}):"Send"})]})})})]}),(0,r.jsxs)("footer",{className:"text-center py-3 text-xs text-fg-faint",children:["prism",(0,r.jsx)("span",{className:"font-mono",children:"0x2A"})," v","1.0.0"," \xb7 BLUE / Sessions"]})]})}},70291:(e,s,t)=>{Promise.resolve().then(t.bind(t,48736))},79748:(e,s,t)=>{"use strict";var r=t(79796);t.o(r,"useParams")&&t.d(s,{useParams:function(){return r.useParams}}),t.o(r,"usePathname")&&t.d(s,{usePathname:function(){return r.usePathname}}),t.o(r,"useRouter")&&t.d(s,{useRouter:function(){return r.useRouter}}),t.o(r,"useSearchParams")&&t.d(s,{useSearchParams:function(){return r.useSearchParams}})},83418:(e,s,t)=>{"use strict";t.d(s,{c:()=>a});var r=t(54568);function a({active:e,color:s,radius:t=16,className:l,children:n}){return(0,r.jsxs)("div",{className:`idle-glow ${l??""}`,style:{"--glow":s,borderRadius:t},children:[e?(0,r.jsx)("span",{className:"idle-glow__ring","aria-hidden":!0}):null,n]})}}},e=>{e.O(0,[5587,542,4454,587,1968,7358],()=>e(e.s=70291)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[145],{48821:(e,s,t)=>{"use strict";t.d(s,{OU:()=>c,hw:()=>r,sT:()=>x});var a=t(54568),l=t(65587),n=t.n(l);t(94752);let r={BLUE:"var(--lens-blue)",AMBER:"var(--lens-amber)",GREEN:"var(--lens-green)",EXPLORER:"var(--lens-sky)",FRAMEWORKS:"var(--lens-rose)",FLEET:"var(--lens-violet)"},i={BLUE:"/blue",AMBER:"/amber",GREEN:"/green",EXPLORER:"/blue/explorer",FRAMEWORKS:"/green/frameworks",FLEET:"/fleet"};function c({lens:e,page:s,href:t,mid:l,className:x}){let o=r[e]??"rgb(148,163,184)",d=t??i[e]??"/";return(0,a.jsxs)("div",{className:`flex items-center gap-2 text-xs font-mono text-fg-muted ${x??""}`,children:[(0,a.jsxs)(n(),{href:d,className:"hover:text-fg transition-colors",children:["← ",(0,a.jsx)("span",{style:{color:o},children:e})]}),l&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,a.jsx)(n(),{href:l.href,className:"hover:text-fg transition-colors",children:l.label})]}),(0,a.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,a.jsx)("span",{className:"text-fg-muted",children:s})]})}function x({children:e,className:s,lens:t}){let l=t?r[t]:void 0;return(0,a.jsx)("h1",{className:`text-xl font-semibold tracking-tight ${l?"":"text-fg-bright"} ${s??""}`,style:l?{color:l}:void 0,children:e})}},68379:(e,s,t)=>{Promise.resolve().then(t.bind(t,95489))},79748:(e,s,t)=>{"use strict";var a=t(79796);t.o(a,"useParams")&&t.d(s,{useParams:function(){return a.useParams}}),t.o(a,"usePathname")&&t.d(s,{usePathname:function(){return a.usePathname}}),t.o(a,"useRouter")&&t.d(s,{useRouter:function(){return a.useRouter}}),t.o(a,"useSearchParams")&&t.d(s,{useSearchParams:function(){return a.useSearchParams}})},95489:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>m});var a=t(54568),l=t(7620),n=t(65587),r=t.n(n),i=t(79748),c=t(34454),x=t(48821),o=t(72458);let d={background:"var(--surface-panel)",border:"1px solid var(--border-default)",boxShadow:"0 1px 2px var(--surface-panel),0 4px 16px var(--surface-panel),inset 0 1px 0 rgba(255,255,255,.04)"},u={active:"var(--lens-blue)",completed:"var(--lens-green)",abandoned:"rgba(148,163,184,0.5)"};function f({session:e,tq:s}){let t=e.turns[e.turns.length-1];return(0,a.jsxs)(r(),{href:`/blue/sessions/${e.id}${s}`,className:"w-full rounded-xl p-5 flex flex-col gap-2 transition-all hover:brightness-110 cursor-pointer",style:d,children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsx)("h3",{className:"text-sm font-semibold text-fg leading-snug flex-1",children:e.title}),(0,a.jsx)("span",{className:"text-xs font-mono px-2 py-0.5 rounded-full flex-shrink-0",style:{background:u[e.status]+"18",color:u[e.status],border:`1px solid ${u[e.status]}35`},children:e.status})]}),t&&(0,a.jsx)("p",{className:"text-xs text-fg-muted leading-relaxed line-clamp-2",children:t.response??t.prompt}),(0,a.jsxs)("div",{className:"flex items-center gap-3 mt-1",children:[(0,a.jsxs)("span",{className:"text-xs text-fg-faint",children:[e.turns.length," turn",1!==e.turns.length?"s":""]}),(0,a.jsx)("span",{className:"text-xs text-fg-faint",children:"\xb7"}),(0,a.jsx)("span",{className:"text-xs text-fg-faint",children:new Date(e.updated_at).toLocaleDateString()}),e.rec_id&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-xs text-fg-faint",children:"\xb7"}),(0,a.jsx)("span",{className:"text-xs text-blue-400 font-mono",children:"linked rec"})]})]})]})}function m(){let e=(0,i.useRouter)(),{tq:s,ready:t}=(0,o.e)(),[n,r]=(0,l.useState)([]),[u,m]=(0,l.useState)(!0),[h,p]=(0,l.useState)(!1),g=(0,l.useCallback)(async()=>{try{let e=await fetch(`/api/blue/sessions${s}`),t=await e.json();r(t.sessions??[])}catch{}finally{m(!1)}},[s]);async function j(){p(!0);try{let t=await fetch(`/api/blue/sessions${s}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:"New session"})}),a=await t.json();e.push(`/blue/sessions/${a.session.id}${s}`)}catch{p(!1)}}(0,l.useEffect)(()=>{t&&g()},[t,g]);let b=n.filter(e=>"active"===e.status),N=n.filter(e=>"completed"===e.status),v=n.filter(e=>"abandoned"===e.status);return(0,a.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,a.jsx)(c.PrismDock,{}),(0,a.jsxs)("main",{className:"flex-1 flex flex-col items-center w-full max-w-4xl mx-auto px-6 pt-20 pb-16 gap-6",children:[(0,a.jsxs)("div",{className:"w-full flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,a.jsx)(x.OU,{lens:"BLUE",page:"Ask BLUE"}),(0,a.jsx)(x.sT,{lens:"BLUE",children:"Ask BLUE"}),(0,a.jsxs)("p",{className:"text-xs text-fg-muted mt-0.5",children:[n.length," session",1===n.length?"":"s"]})]}),(0,a.jsx)("button",{onClick:j,disabled:h,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-50",style:{background:"var(--lens-blue)",color:"#fff"},children:h?"Creating…":"+ New session"})]}),u&&(0,a.jsx)("div",{className:"w-full text-center py-16 text-fg-muted text-sm",children:"Loading…"}),!u&&0===n.length&&(0,a.jsxs)("div",{className:"w-full rounded-xl p-8 text-center flex flex-col items-center gap-3",style:d,children:[(0,a.jsx)("p",{className:"text-fg font-medium",children:"No sessions yet"}),(0,a.jsx)("p",{className:"text-fg-muted text-sm",children:"Start a new session to discuss your codebase with the AI."})]}),!u&&n.length>0&&(0,a.jsxs)(a.Fragment,{children:[b.length>0&&(0,a.jsxs)("div",{className:"w-full flex flex-col gap-3",children:[(0,a.jsxs)("h2",{className:"text-xs font-semibold text-blue-400 uppercase tracking-widest",children:["Active (",b.length,")"]}),b.map(e=>(0,a.jsx)(f,{session:e,tq:s},e.id))]}),N.length>0&&(0,a.jsxs)("div",{className:"w-full flex flex-col gap-3",children:[(0,a.jsxs)("h2",{className:"text-xs font-semibold text-emerald-400 uppercase tracking-widest",children:["Completed (",N.length,")"]}),N.map(e=>(0,a.jsx)(f,{session:e,tq:s},e.id))]}),v.length>0&&(0,a.jsxs)("div",{className:"w-full flex flex-col gap-3",children:[(0,a.jsxs)("h2",{className:"text-xs font-semibold text-fg-faint uppercase tracking-widest",children:["Abandoned (",v.length,")"]}),v.map(e=>(0,a.jsx)(f,{session:e,tq:s},e.id))]})]})]}),(0,a.jsxs)("footer",{className:"text-center py-4 text-xs text-fg-faint",children:["prism",(0,a.jsx)("span",{className:"font-mono",children:"0x2A"})," v","0.
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[145],{48821:(e,s,t)=>{"use strict";t.d(s,{OU:()=>c,hw:()=>r,sT:()=>x});var a=t(54568),l=t(65587),n=t.n(l);t(94752);let r={BLUE:"var(--lens-blue)",AMBER:"var(--lens-amber)",GREEN:"var(--lens-green)",EXPLORER:"var(--lens-sky)",FRAMEWORKS:"var(--lens-rose)",FLEET:"var(--lens-violet)"},i={BLUE:"/blue",AMBER:"/amber",GREEN:"/green",EXPLORER:"/blue/explorer",FRAMEWORKS:"/green/frameworks",FLEET:"/fleet"};function c({lens:e,page:s,href:t,mid:l,className:x}){let o=r[e]??"rgb(148,163,184)",d=t??i[e]??"/";return(0,a.jsxs)("div",{className:`flex items-center gap-2 text-xs font-mono text-fg-muted ${x??""}`,children:[(0,a.jsxs)(n(),{href:d,className:"hover:text-fg transition-colors",children:["← ",(0,a.jsx)("span",{style:{color:o},children:e})]}),l&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,a.jsx)(n(),{href:l.href,className:"hover:text-fg transition-colors",children:l.label})]}),(0,a.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,a.jsx)("span",{className:"text-fg-muted",children:s})]})}function x({children:e,className:s,lens:t}){let l=t?r[t]:void 0;return(0,a.jsx)("h1",{className:`text-xl font-semibold tracking-tight ${l?"":"text-fg-bright"} ${s??""}`,style:l?{color:l}:void 0,children:e})}},68379:(e,s,t)=>{Promise.resolve().then(t.bind(t,95489))},79748:(e,s,t)=>{"use strict";var a=t(79796);t.o(a,"useParams")&&t.d(s,{useParams:function(){return a.useParams}}),t.o(a,"usePathname")&&t.d(s,{usePathname:function(){return a.usePathname}}),t.o(a,"useRouter")&&t.d(s,{useRouter:function(){return a.useRouter}}),t.o(a,"useSearchParams")&&t.d(s,{useSearchParams:function(){return a.useSearchParams}})},95489:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>m});var a=t(54568),l=t(7620),n=t(65587),r=t.n(n),i=t(79748),c=t(34454),x=t(48821),o=t(72458);let d={background:"var(--surface-panel)",border:"1px solid var(--border-default)",boxShadow:"0 1px 2px var(--surface-panel),0 4px 16px var(--surface-panel),inset 0 1px 0 rgba(255,255,255,.04)"},u={active:"var(--lens-blue)",completed:"var(--lens-green)",abandoned:"rgba(148,163,184,0.5)"};function f({session:e,tq:s}){let t=e.turns[e.turns.length-1];return(0,a.jsxs)(r(),{href:`/blue/sessions/${e.id}${s}`,className:"w-full rounded-xl p-5 flex flex-col gap-2 transition-all hover:brightness-110 cursor-pointer",style:d,children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsx)("h3",{className:"text-sm font-semibold text-fg leading-snug flex-1",children:e.title}),(0,a.jsx)("span",{className:"text-xs font-mono px-2 py-0.5 rounded-full flex-shrink-0",style:{background:u[e.status]+"18",color:u[e.status],border:`1px solid ${u[e.status]}35`},children:e.status})]}),t&&(0,a.jsx)("p",{className:"text-xs text-fg-muted leading-relaxed line-clamp-2",children:t.response??t.prompt}),(0,a.jsxs)("div",{className:"flex items-center gap-3 mt-1",children:[(0,a.jsxs)("span",{className:"text-xs text-fg-faint",children:[e.turns.length," turn",1!==e.turns.length?"s":""]}),(0,a.jsx)("span",{className:"text-xs text-fg-faint",children:"\xb7"}),(0,a.jsx)("span",{className:"text-xs text-fg-faint",children:new Date(e.updated_at).toLocaleDateString()}),e.rec_id&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-xs text-fg-faint",children:"\xb7"}),(0,a.jsx)("span",{className:"text-xs text-blue-400 font-mono",children:"linked rec"})]})]})]})}function m(){let e=(0,i.useRouter)(),{tq:s,ready:t}=(0,o.e)(),[n,r]=(0,l.useState)([]),[u,m]=(0,l.useState)(!0),[h,p]=(0,l.useState)(!1),g=(0,l.useCallback)(async()=>{try{let e=await fetch(`/api/blue/sessions${s}`),t=await e.json();r(t.sessions??[])}catch{}finally{m(!1)}},[s]);async function j(){p(!0);try{let t=await fetch(`/api/blue/sessions${s}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:"New session"})}),a=await t.json();e.push(`/blue/sessions/${a.session.id}${s}`)}catch{p(!1)}}(0,l.useEffect)(()=>{t&&g()},[t,g]);let b=n.filter(e=>"active"===e.status),N=n.filter(e=>"completed"===e.status),v=n.filter(e=>"abandoned"===e.status);return(0,a.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,a.jsx)(c.PrismDock,{}),(0,a.jsxs)("main",{className:"flex-1 flex flex-col items-center w-full max-w-4xl mx-auto px-6 pt-20 pb-16 gap-6",children:[(0,a.jsxs)("div",{className:"w-full flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,a.jsx)(x.OU,{lens:"BLUE",page:"Ask BLUE"}),(0,a.jsx)(x.sT,{lens:"BLUE",children:"Ask BLUE"}),(0,a.jsxs)("p",{className:"text-xs text-fg-muted mt-0.5",children:[n.length," session",1===n.length?"":"s"]})]}),(0,a.jsx)("button",{onClick:j,disabled:h,className:"px-4 py-2 rounded-lg text-sm font-semibold transition-all disabled:opacity-50",style:{background:"var(--lens-blue)",color:"#fff"},children:h?"Creating…":"+ New session"})]}),u&&(0,a.jsx)("div",{className:"w-full text-center py-16 text-fg-muted text-sm",children:"Loading…"}),!u&&0===n.length&&(0,a.jsxs)("div",{className:"w-full rounded-xl p-8 text-center flex flex-col items-center gap-3",style:d,children:[(0,a.jsx)("p",{className:"text-fg font-medium",children:"No sessions yet"}),(0,a.jsx)("p",{className:"text-fg-muted text-sm",children:"Start a new session to discuss your codebase with the AI."})]}),!u&&n.length>0&&(0,a.jsxs)(a.Fragment,{children:[b.length>0&&(0,a.jsxs)("div",{className:"w-full flex flex-col gap-3",children:[(0,a.jsxs)("h2",{className:"text-xs font-semibold text-blue-400 uppercase tracking-widest",children:["Active (",b.length,")"]}),b.map(e=>(0,a.jsx)(f,{session:e,tq:s},e.id))]}),N.length>0&&(0,a.jsxs)("div",{className:"w-full flex flex-col gap-3",children:[(0,a.jsxs)("h2",{className:"text-xs font-semibold text-emerald-400 uppercase tracking-widest",children:["Completed (",N.length,")"]}),N.map(e=>(0,a.jsx)(f,{session:e,tq:s},e.id))]}),v.length>0&&(0,a.jsxs)("div",{className:"w-full flex flex-col gap-3",children:[(0,a.jsxs)("h2",{className:"text-xs font-semibold text-fg-faint uppercase tracking-widest",children:["Abandoned (",v.length,")"]}),v.map(e=>(0,a.jsx)(f,{session:e,tq:s},e.id))]})]})]}),(0,a.jsxs)("footer",{className:"text-center py-4 text-xs text-fg-faint",children:["prism",(0,a.jsx)("span",{className:"font-mono",children:"0x2A"})," v","1.0.0"," \xb7 BLUE / Sessions"]})]})}}},e=>{e.O(0,[5587,542,4454,4752,587,1968,7358],()=>e(e.s=68379)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7667],{20594:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var r=n(54568),i=n(7620),s=n(34454),l=n(48821),a=n(94752),o=n(99459),d=n(72458);let c="var(--lens-green)",x={bronze:{text:"#cd7f32",bg:"rgba(205,127,50,0.15)",border:"rgba(205,127,50,0.35)"},silver:{text:"#c0c0c0",bg:"rgba(192,192,192,0.15)",border:"rgba(192,192,192,0.35)"},gold:{text:"#ffd700",bg:"rgba(255,215,0,0.15)",border:"rgba(255,215,0,0.35)"},platinum:{text:"#b9f2ff",bg:"rgba(185,242,255,0.15)",border:"rgba(185,242,255,0.35)"}};function f({history:e,width:t=280,height:n=56,color:i=c}){let s;if(e.length<2)return(0,r.jsx)("svg",{width:t,height:n,viewBox:`0 0 ${t} ${n}`,children:(0,r.jsx)("text",{x:t/2,y:n/2+4,textAnchor:"middle",style:{fill:"var(--text-faint)"},fontSize:"11",children:"No data yet"})});let l=e.filter(e=>null!==e.score);if(l.length<2)return(0,r.jsx)("svg",{width:t,height:n,viewBox:`0 0 ${t} ${n}`,children:(0,r.jsx)("text",{x:t/2,y:n/2+4,textAnchor:"middle",style:{fill:"var(--text-faint)"},fontSize:"11",children:"Need more data"})});let a=l.map(e=>e.score),o=Math.min(...a),d=Math.max(...a)-o||1,x=t-8,h=n-8,p=[],g=[];e.forEach((t,n)=>{let r=4+n/(e.length-1)*x;null===t.score?g.length>0&&(p.push(g),g=[]):g.push({x:r,y:4+h-(t.score-o)/d*h})}),g.length>0&&p.push(g);let u=e=>e.map((e,t)=>`${0===t?"M":"L"} ${e.x.toFixed(1)} ${e.y.toFixed(1)}`).join(" "),m=p.map(e=>{if(e.length<2)return"";let t=u(e),n=e[e.length-1],r=e[0];return`${t} L ${n.x.toFixed(1)} ${(4+h).toFixed(1)} L ${r.x.toFixed(1)} ${(4+h).toFixed(1)} Z`}).join(" ");return(0,r.jsxs)("svg",{width:t,height:n,viewBox:`0 0 ${t} ${n}`,style:{overflow:"visible"},children:[(0,r.jsx)("path",{d:m,fill:i,fillOpacity:.12,stroke:"none"}),p.map((e,t)=>(0,r.jsx)("path",{d:u(e),fill:"none",stroke:i,strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},t)),p[p.length-1]?.length>0&&(s=p[p.length-1][p[p.length-1].length-1],(0,r.jsx)("circle",{cx:s.x,cy:s.y,r:3,fill:i}))]})}function h({current:e,longest:t}){let n=t>0?Math.min(e/t*100,100):0,i={width:120,height:120,borderRadius:"50%",background:`conic-gradient(#f97316 0% ${n}%, var(--border-default) ${n}% 100%)`,display:"flex",alignItems:"center",justifyContent:"center",position:"relative"};return(0,r.jsx)("div",{style:i,children:(0,r.jsxs)("div",{style:{width:92,height:92,borderRadius:"50%",background:"var(--bg-app, var(--surface-floor))",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},children:[(0,r.jsx)("span",{style:{fontSize:28,fontWeight:700,color:e>0?"#f97316":"var(--text-faint)",lineHeight:1},children:e}),(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-faint)",marginTop:2},children:"days"})]})})}function p({def:e,earned:t}){let n=x[e.tier],i=!!t;return(0,r.jsxs)("div",{style:{background:i?n.bg:"var(--surface-panel)",border:`1px solid ${i?n.border:"var(--border-default)"}`,borderRadius:12,padding:"16px",display:"flex",flexDirection:"column",gap:8,opacity:i?1:.55,transition:"opacity 0.2s",position:"relative",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between"},children:[(0,r.jsx)("span",{style:{display:"inline-flex",color:i?n.text:"var(--text-faint)"},children:(0,r.jsx)(o.In,{name:i?e.icon:"lock",size:24,"aria-hidden":!0})}),(0,r.jsx)("span",{style:{fontSize:9,fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase",color:n.text,background:n.bg,border:`1px solid ${n.border}`,borderRadius:4,padding:"2px 6px"},children:e.tier})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{style:{fontSize:13,fontWeight:600,color:i?"var(--text-primary)":"var(--text-faint)",margin:0},children:e.title}),(0,r.jsx)("p",{style:{fontSize:11,color:"var(--text-faint)",margin:"3px 0 0",lineHeight:1.4},children:e.description})]}),i&&(0,r.jsxs)("p",{style:{fontSize:10,color:n.text,margin:0,fontFamily:"monospace"},children:["Earned ",new Date(t.earnedAt).toLocaleDateString()]})]})}function g({label:e,value:t,iconKey:n}){return(0,r.jsxs)("div",{style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)",borderRadius:10,padding:"14px 18px",display:"flex",flexDirection:"column",alignItems:"center",gap:4,flex:1,minWidth:100},children:[(0,r.jsx)(o.In,{name:n,size:20,"aria-hidden":!0}),(0,r.jsx)("span",{style:{fontSize:22,fontWeight:700,color:"var(--text-primary)",fontFamily:"monospace"},children:t}),(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-faint)",textTransform:"uppercase",letterSpacing:"0.06em",textAlign:"center"},children:e})]})}function u(){let{tq:e,ready:t}=(0,d.e)(),[n,x]=(0,i.useState)(null),[u,m]=(0,i.useState)(!0),[y,v]=(0,i.useState)(null);(0,i.useEffect)(()=>{t&&fetch(`/api/green/achievements${e}`).then(e=>e.json()).then(e=>{x(e);let t=new Date(Date.now()-864e5).toISOString(),n=e.state.earned.filter(e=>e.earnedAt>t).map(t=>e.definitions.find(e=>e.id===t.id)).filter(Boolean)[0];n&&v({id:n.id,title:n.title,icon:n.icon})}).catch(()=>{}).finally(()=>m(!1))},[t,e]);let b=n?.state,j=n?.definitions??[],S=b?.scoreHistory.slice(-7)??[],k=S.length>=2?S[0].score:null,w=b?.lastScore??null,E=null!==w&&null!==k?w-k:null;return(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(s.PrismDock,{}),(0,r.jsxs)("main",{className:"flex-1 flex flex-col items-center w-full max-w-4xl mx-auto px-6 pt-20 pb-16 gap-6",children:[y&&(0,r.jsxs)("div",{style:{width:"100%",background:"linear-gradient(135deg, rgba(52,211,153,0.15), rgba(52,211,153,0.05))",border:"1px solid rgba(52,211,153,0.35)",borderRadius:12,padding:"14px 20px",display:"flex",alignItems:"center",gap:12},children:[(0,r.jsx)("span",{style:{display:"inline-flex",color:c},children:(0,r.jsx)(o.In,{name:y.icon,size:26,"aria-hidden":!0})}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("p",{style:{margin:0,fontSize:13,fontWeight:600,color:c},children:["Achievement unlocked: ",y.title]}),(0,r.jsx)("p",{style:{margin:"2px 0 0",fontSize:11,color:"var(--text-faint)"},children:"Earned in the last 24 hours"})]}),(0,r.jsx)("button",{onClick:()=>v(null),style:{marginLeft:"auto",background:"none",border:"none",color:"var(--text-faint)",cursor:"pointer",fontSize:18},children:"\xd7"})]}),(0,r.jsxs)("div",{className:"w-full flex flex-col gap-1",children:[(0,r.jsx)(l.OU,{lens:"GREEN",page:"Streak & Achievements"}),(0,r.jsx)(l.sT,{lens:"GREEN",children:"Streak & Achievements"}),(0,r.jsx)("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--text-faint)"},children:(0,r.jsx)(a.I,{children:"Track your architecture improvement habit. Earn badges as you fix drift, break cycles, and build consistency."})})]}),u?(0,r.jsx)("div",{style:{width:"100%",display:"flex",flexDirection:"column",gap:16},children:[void 0,void 0,void 0].map((e,t)=>(0,r.jsx)("div",{style:{height:80,borderRadius:12,background:"var(--border-subtle)",animation:"pulse 2s cubic-bezier(0.4,0,0.6,1) infinite"}},t))}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{style:{width:"100%",background:"var(--surface-panel)",border:"1px solid var(--border-default)",borderRadius:16,padding:"28px 32px",display:"flex",gap:32,alignItems:"center",flexWrap:"wrap"},children:[(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:10,minWidth:140},children:[(0,r.jsx)(h,{current:b?.currentStreak??0,longest:b?.longestStreak??0}),(0,r.jsxs)("div",{style:{textAlign:"center"},children:[(b?.currentStreak??0)>0?(0,r.jsxs)("p",{style:{margin:0,fontSize:13,color:"#f97316",fontWeight:600},className:"inline-flex items-center gap-1.5",children:[(0,r.jsx)(o.In,{name:"heatmap",size:14,"aria-hidden":!0})," ",b.currentStreak,"-day streak"]}):(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-faint)"},children:"No active streak"}),(0,r.jsxs)("p",{style:{margin:"3px 0 0",fontSize:11,color:"var(--text-faint)"},children:["Best: ",b?.longestStreak??0," days"]})]})]}),(0,r.jsxs)("div",{style:{flex:1,minWidth:200},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:10},children:[(0,r.jsx)("p",{style:{margin:0,fontSize:11,color:"var(--text-faint)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"Score \xb7 30 days"}),(0,r.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[null!==w&&(0,r.jsx)("span",{style:{fontFamily:"monospace",fontSize:16,fontWeight:700,color:c},children:w}),null!==E&&(0,r.jsxs)("span",{style:{fontSize:11,fontFamily:"monospace",color:E>=0?c:"var(--sev-red)",background:E>=0?"rgba(52,211,153,0.1)":"rgba(248,113,113,0.1)",borderRadius:4,padding:"1px 6px"},children:[E>=0?"+":"",E," vs last week"]})]})]}),(0,r.jsx)(f,{history:b?.scoreHistory??[],width:340,height:60,color:c})]})]}),(0,r.jsxs)("div",{style:{width:"100%"},children:[(0,r.jsxs)("h2",{style:{fontSize:12,fontWeight:600,color:"var(--text-faint)",textTransform:"uppercase",letterSpacing:"0.08em",margin:"0 0 14px"},children:["Achievements — ",b?.earned.length??0," / ",j.length," earned"]}),(0,r.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(240px, 1fr))",gap:12},children:j.map(e=>{let t=b?.earned.find(t=>t.id===e.id);return(0,r.jsx)(p,{def:e,earned:t},e.id)})})]}),(0,r.jsxs)("div",{style:{width:"100%"},children:[(0,r.jsx)("h2",{style:{fontSize:12,fontWeight:600,color:"var(--text-faint)",textTransform:"uppercase",letterSpacing:"0.08em",margin:"0 0 14px"},children:"Lifetime Stats"}),(0,r.jsxs)("div",{style:{display:"flex",gap:12,flexWrap:"wrap"},children:[(0,r.jsx)(g,{label:"Drifts Fixed",value:b?.driftsFixed??0,iconKey:"remediation"}),(0,r.jsx)(g,{label:"Cycles Fixed",value:b?.cyclesFixed??0,iconKey:"cycles"}),(0,r.jsx)(g,{label:"Snapshots",value:b?.snapshotsTaken??0,iconKey:"time-capsule"}),(0,r.jsx)(g,{label:"Analysis Runs",value:b?.coverageRuns??0,iconKey:"rcs"})]})]})]})]}),(0,r.jsxs)("footer",{style:{textAlign:"center",padding:"16px 0",fontSize:11,color:"var(--text-faint)"},children:["prism",(0,r.jsx)("span",{style:{fontFamily:"monospace"},children:"0x2A"})," v","0.27.7"," \xb7 Achievements"]})]})}},48821:(e,t,n)=>{"use strict";n.d(t,{OU:()=>o,hw:()=>l,sT:()=>d});var r=n(54568),i=n(65587),s=n.n(i);n(94752);let l={BLUE:"var(--lens-blue)",AMBER:"var(--lens-amber)",GREEN:"var(--lens-green)",EXPLORER:"var(--lens-sky)",FRAMEWORKS:"var(--lens-rose)",FLEET:"var(--lens-violet)"},a={BLUE:"/blue",AMBER:"/amber",GREEN:"/green",EXPLORER:"/blue/explorer",FRAMEWORKS:"/green/frameworks",FLEET:"/fleet"};function o({lens:e,page:t,href:n,mid:i,className:d}){let c=l[e]??"rgb(148,163,184)",x=n??a[e]??"/";return(0,r.jsxs)("div",{className:`flex items-center gap-2 text-xs font-mono text-fg-muted ${d??""}`,children:[(0,r.jsxs)(s(),{href:x,className:"hover:text-fg transition-colors",children:["← ",(0,r.jsx)("span",{style:{color:c},children:e})]}),i&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)(s(),{href:i.href,className:"hover:text-fg transition-colors",children:i.label})]}),(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)("span",{className:"text-fg-muted",children:t})]})}function d({children:e,className:t,lens:n}){let i=n?l[n]:void 0;return(0,r.jsx)("h1",{className:`text-xl font-semibold tracking-tight ${i?"":"text-fg-bright"} ${t??""}`,style:i?{color:i}:void 0,children:e})}},79748:(e,t,n)=>{"use strict";var r=n(79796);n.o(r,"useParams")&&n.d(t,{useParams:function(){return r.useParams}}),n.o(r,"usePathname")&&n.d(t,{usePathname:function(){return r.usePathname}}),n.o(r,"useRouter")&&n.d(t,{useRouter:function(){return r.useRouter}}),n.o(r,"useSearchParams")&&n.d(t,{useSearchParams:function(){return r.useSearchParams}})},91413:(e,t,n)=>{Promise.resolve().then(n.bind(n,20594))}},e=>{e.O(0,[5587,542,4454,4752,587,1968,7358],()=>e(e.s=91413)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7667],{20594:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var r=n(54568),i=n(7620),s=n(34454),l=n(48821),a=n(94752),o=n(99459),d=n(72458);let c="var(--lens-green)",x={bronze:{text:"#cd7f32",bg:"rgba(205,127,50,0.15)",border:"rgba(205,127,50,0.35)"},silver:{text:"#c0c0c0",bg:"rgba(192,192,192,0.15)",border:"rgba(192,192,192,0.35)"},gold:{text:"#ffd700",bg:"rgba(255,215,0,0.15)",border:"rgba(255,215,0,0.35)"},platinum:{text:"#b9f2ff",bg:"rgba(185,242,255,0.15)",border:"rgba(185,242,255,0.35)"}};function f({history:e,width:t=280,height:n=56,color:i=c}){let s;if(e.length<2)return(0,r.jsx)("svg",{width:t,height:n,viewBox:`0 0 ${t} ${n}`,children:(0,r.jsx)("text",{x:t/2,y:n/2+4,textAnchor:"middle",style:{fill:"var(--text-faint)"},fontSize:"11",children:"No data yet"})});let l=e.filter(e=>null!==e.score);if(l.length<2)return(0,r.jsx)("svg",{width:t,height:n,viewBox:`0 0 ${t} ${n}`,children:(0,r.jsx)("text",{x:t/2,y:n/2+4,textAnchor:"middle",style:{fill:"var(--text-faint)"},fontSize:"11",children:"Need more data"})});let a=l.map(e=>e.score),o=Math.min(...a),d=Math.max(...a)-o||1,x=t-8,h=n-8,p=[],g=[];e.forEach((t,n)=>{let r=4+n/(e.length-1)*x;null===t.score?g.length>0&&(p.push(g),g=[]):g.push({x:r,y:4+h-(t.score-o)/d*h})}),g.length>0&&p.push(g);let u=e=>e.map((e,t)=>`${0===t?"M":"L"} ${e.x.toFixed(1)} ${e.y.toFixed(1)}`).join(" "),m=p.map(e=>{if(e.length<2)return"";let t=u(e),n=e[e.length-1],r=e[0];return`${t} L ${n.x.toFixed(1)} ${(4+h).toFixed(1)} L ${r.x.toFixed(1)} ${(4+h).toFixed(1)} Z`}).join(" ");return(0,r.jsxs)("svg",{width:t,height:n,viewBox:`0 0 ${t} ${n}`,style:{overflow:"visible"},children:[(0,r.jsx)("path",{d:m,fill:i,fillOpacity:.12,stroke:"none"}),p.map((e,t)=>(0,r.jsx)("path",{d:u(e),fill:"none",stroke:i,strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round"},t)),p[p.length-1]?.length>0&&(s=p[p.length-1][p[p.length-1].length-1],(0,r.jsx)("circle",{cx:s.x,cy:s.y,r:3,fill:i}))]})}function h({current:e,longest:t}){let n=t>0?Math.min(e/t*100,100):0,i={width:120,height:120,borderRadius:"50%",background:`conic-gradient(#f97316 0% ${n}%, var(--border-default) ${n}% 100%)`,display:"flex",alignItems:"center",justifyContent:"center",position:"relative"};return(0,r.jsx)("div",{style:i,children:(0,r.jsxs)("div",{style:{width:92,height:92,borderRadius:"50%",background:"var(--bg-app, var(--surface-floor))",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},children:[(0,r.jsx)("span",{style:{fontSize:28,fontWeight:700,color:e>0?"#f97316":"var(--text-faint)",lineHeight:1},children:e}),(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-faint)",marginTop:2},children:"days"})]})})}function p({def:e,earned:t}){let n=x[e.tier],i=!!t;return(0,r.jsxs)("div",{style:{background:i?n.bg:"var(--surface-panel)",border:`1px solid ${i?n.border:"var(--border-default)"}`,borderRadius:12,padding:"16px",display:"flex",flexDirection:"column",gap:8,opacity:i?1:.55,transition:"opacity 0.2s",position:"relative",overflow:"hidden"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between"},children:[(0,r.jsx)("span",{style:{display:"inline-flex",color:i?n.text:"var(--text-faint)"},children:(0,r.jsx)(o.In,{name:i?e.icon:"lock",size:24,"aria-hidden":!0})}),(0,r.jsx)("span",{style:{fontSize:9,fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase",color:n.text,background:n.bg,border:`1px solid ${n.border}`,borderRadius:4,padding:"2px 6px"},children:e.tier})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{style:{fontSize:13,fontWeight:600,color:i?"var(--text-primary)":"var(--text-faint)",margin:0},children:e.title}),(0,r.jsx)("p",{style:{fontSize:11,color:"var(--text-faint)",margin:"3px 0 0",lineHeight:1.4},children:e.description})]}),i&&(0,r.jsxs)("p",{style:{fontSize:10,color:n.text,margin:0,fontFamily:"monospace"},children:["Earned ",new Date(t.earnedAt).toLocaleDateString()]})]})}function g({label:e,value:t,iconKey:n}){return(0,r.jsxs)("div",{style:{background:"var(--surface-panel)",border:"1px solid var(--border-default)",borderRadius:10,padding:"14px 18px",display:"flex",flexDirection:"column",alignItems:"center",gap:4,flex:1,minWidth:100},children:[(0,r.jsx)(o.In,{name:n,size:20,"aria-hidden":!0}),(0,r.jsx)("span",{style:{fontSize:22,fontWeight:700,color:"var(--text-primary)",fontFamily:"monospace"},children:t}),(0,r.jsx)("span",{style:{fontSize:10,color:"var(--text-faint)",textTransform:"uppercase",letterSpacing:"0.06em",textAlign:"center"},children:e})]})}function u(){let{tq:e,ready:t}=(0,d.e)(),[n,x]=(0,i.useState)(null),[u,m]=(0,i.useState)(!0),[y,v]=(0,i.useState)(null);(0,i.useEffect)(()=>{t&&fetch(`/api/green/achievements${e}`).then(e=>e.json()).then(e=>{x(e);let t=new Date(Date.now()-864e5).toISOString(),n=e.state.earned.filter(e=>e.earnedAt>t).map(t=>e.definitions.find(e=>e.id===t.id)).filter(Boolean)[0];n&&v({id:n.id,title:n.title,icon:n.icon})}).catch(()=>{}).finally(()=>m(!1))},[t,e]);let b=n?.state,j=n?.definitions??[],S=b?.scoreHistory.slice(-7)??[],k=S.length>=2?S[0].score:null,w=b?.lastScore??null,E=null!==w&&null!==k?w-k:null;return(0,r.jsxs)("div",{className:"flex flex-col min-h-screen",style:{background:"var(--bg-app)"},children:[(0,r.jsx)(s.PrismDock,{}),(0,r.jsxs)("main",{className:"flex-1 flex flex-col items-center w-full max-w-4xl mx-auto px-6 pt-20 pb-16 gap-6",children:[y&&(0,r.jsxs)("div",{style:{width:"100%",background:"linear-gradient(135deg, rgba(52,211,153,0.15), rgba(52,211,153,0.05))",border:"1px solid rgba(52,211,153,0.35)",borderRadius:12,padding:"14px 20px",display:"flex",alignItems:"center",gap:12},children:[(0,r.jsx)("span",{style:{display:"inline-flex",color:c},children:(0,r.jsx)(o.In,{name:y.icon,size:26,"aria-hidden":!0})}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("p",{style:{margin:0,fontSize:13,fontWeight:600,color:c},children:["Achievement unlocked: ",y.title]}),(0,r.jsx)("p",{style:{margin:"2px 0 0",fontSize:11,color:"var(--text-faint)"},children:"Earned in the last 24 hours"})]}),(0,r.jsx)("button",{onClick:()=>v(null),style:{marginLeft:"auto",background:"none",border:"none",color:"var(--text-faint)",cursor:"pointer",fontSize:18},children:"\xd7"})]}),(0,r.jsxs)("div",{className:"w-full flex flex-col gap-1",children:[(0,r.jsx)(l.OU,{lens:"GREEN",page:"Streak & Achievements"}),(0,r.jsx)(l.sT,{lens:"GREEN",children:"Streak & Achievements"}),(0,r.jsx)("p",{style:{margin:"6px 0 0",fontSize:12,color:"var(--text-faint)"},children:(0,r.jsx)(a.I,{children:"Track your architecture improvement habit. Earn badges as you fix drift, break cycles, and build consistency."})})]}),u?(0,r.jsx)("div",{style:{width:"100%",display:"flex",flexDirection:"column",gap:16},children:[void 0,void 0,void 0].map((e,t)=>(0,r.jsx)("div",{style:{height:80,borderRadius:12,background:"var(--border-subtle)",animation:"pulse 2s cubic-bezier(0.4,0,0.6,1) infinite"}},t))}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{style:{width:"100%",background:"var(--surface-panel)",border:"1px solid var(--border-default)",borderRadius:16,padding:"28px 32px",display:"flex",gap:32,alignItems:"center",flexWrap:"wrap"},children:[(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",gap:10,minWidth:140},children:[(0,r.jsx)(h,{current:b?.currentStreak??0,longest:b?.longestStreak??0}),(0,r.jsxs)("div",{style:{textAlign:"center"},children:[(b?.currentStreak??0)>0?(0,r.jsxs)("p",{style:{margin:0,fontSize:13,color:"#f97316",fontWeight:600},className:"inline-flex items-center gap-1.5",children:[(0,r.jsx)(o.In,{name:"heatmap",size:14,"aria-hidden":!0})," ",b.currentStreak,"-day streak"]}):(0,r.jsx)("p",{style:{margin:0,fontSize:12,color:"var(--text-faint)"},children:"No active streak"}),(0,r.jsxs)("p",{style:{margin:"3px 0 0",fontSize:11,color:"var(--text-faint)"},children:["Best: ",b?.longestStreak??0," days"]})]})]}),(0,r.jsxs)("div",{style:{flex:1,minWidth:200},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:10},children:[(0,r.jsx)("p",{style:{margin:0,fontSize:11,color:"var(--text-faint)",textTransform:"uppercase",letterSpacing:"0.07em"},children:"Score \xb7 30 days"}),(0,r.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[null!==w&&(0,r.jsx)("span",{style:{fontFamily:"monospace",fontSize:16,fontWeight:700,color:c},children:w}),null!==E&&(0,r.jsxs)("span",{style:{fontSize:11,fontFamily:"monospace",color:E>=0?c:"var(--sev-red)",background:E>=0?"rgba(52,211,153,0.1)":"rgba(248,113,113,0.1)",borderRadius:4,padding:"1px 6px"},children:[E>=0?"+":"",E," vs last week"]})]})]}),(0,r.jsx)(f,{history:b?.scoreHistory??[],width:340,height:60,color:c})]})]}),(0,r.jsxs)("div",{style:{width:"100%"},children:[(0,r.jsxs)("h2",{style:{fontSize:12,fontWeight:600,color:"var(--text-faint)",textTransform:"uppercase",letterSpacing:"0.08em",margin:"0 0 14px"},children:["Achievements — ",b?.earned.length??0," / ",j.length," earned"]}),(0,r.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(240px, 1fr))",gap:12},children:j.map(e=>{let t=b?.earned.find(t=>t.id===e.id);return(0,r.jsx)(p,{def:e,earned:t},e.id)})})]}),(0,r.jsxs)("div",{style:{width:"100%"},children:[(0,r.jsx)("h2",{style:{fontSize:12,fontWeight:600,color:"var(--text-faint)",textTransform:"uppercase",letterSpacing:"0.08em",margin:"0 0 14px"},children:"Lifetime Stats"}),(0,r.jsxs)("div",{style:{display:"flex",gap:12,flexWrap:"wrap"},children:[(0,r.jsx)(g,{label:"Drifts Fixed",value:b?.driftsFixed??0,iconKey:"remediation"}),(0,r.jsx)(g,{label:"Cycles Fixed",value:b?.cyclesFixed??0,iconKey:"cycles"}),(0,r.jsx)(g,{label:"Snapshots",value:b?.snapshotsTaken??0,iconKey:"time-capsule"}),(0,r.jsx)(g,{label:"Analysis Runs",value:b?.coverageRuns??0,iconKey:"rcs"})]})]})]})]}),(0,r.jsxs)("footer",{style:{textAlign:"center",padding:"16px 0",fontSize:11,color:"var(--text-faint)"},children:["prism",(0,r.jsx)("span",{style:{fontFamily:"monospace"},children:"0x2A"})," v","1.0.0"," \xb7 Achievements"]})]})}},48821:(e,t,n)=>{"use strict";n.d(t,{OU:()=>o,hw:()=>l,sT:()=>d});var r=n(54568),i=n(65587),s=n.n(i);n(94752);let l={BLUE:"var(--lens-blue)",AMBER:"var(--lens-amber)",GREEN:"var(--lens-green)",EXPLORER:"var(--lens-sky)",FRAMEWORKS:"var(--lens-rose)",FLEET:"var(--lens-violet)"},a={BLUE:"/blue",AMBER:"/amber",GREEN:"/green",EXPLORER:"/blue/explorer",FRAMEWORKS:"/green/frameworks",FLEET:"/fleet"};function o({lens:e,page:t,href:n,mid:i,className:d}){let c=l[e]??"rgb(148,163,184)",x=n??a[e]??"/";return(0,r.jsxs)("div",{className:`flex items-center gap-2 text-xs font-mono text-fg-muted ${d??""}`,children:[(0,r.jsxs)(s(),{href:x,className:"hover:text-fg transition-colors",children:["← ",(0,r.jsx)("span",{style:{color:c},children:e})]}),i&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)(s(),{href:i.href,className:"hover:text-fg transition-colors",children:i.label})]}),(0,r.jsx)("span",{className:"text-fg-faint",children:"/"}),(0,r.jsx)("span",{className:"text-fg-muted",children:t})]})}function d({children:e,className:t,lens:n}){let i=n?l[n]:void 0;return(0,r.jsx)("h1",{className:`text-xl font-semibold tracking-tight ${i?"":"text-fg-bright"} ${t??""}`,style:i?{color:i}:void 0,children:e})}},79748:(e,t,n)=>{"use strict";var r=n(79796);n.o(r,"useParams")&&n.d(t,{useParams:function(){return r.useParams}}),n.o(r,"usePathname")&&n.d(t,{usePathname:function(){return r.usePathname}}),n.o(r,"useRouter")&&n.d(t,{useRouter:function(){return r.useRouter}}),n.o(r,"useSearchParams")&&n.d(t,{useSearchParams:function(){return r.useSearchParams}})},91413:(e,t,n)=>{Promise.resolve().then(n.bind(n,20594))}},e=>{e.O(0,[5587,542,4454,4752,587,1968,7358],()=>e(e.s=91413)),_N_E=e.O()}]);
|