vibebusiness 1.2.71 → 1.2.72
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/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +41 -25
- package/.next/standalone/.next/app-path-routes-manifest.json +1 -1
- package/.next/standalone/.next/build-manifest.json +4 -4
- package/.next/standalone/.next/prerender-manifest.json +1 -1
- package/.next/standalone/.next/routes-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/.next/server/app/api/analyze/route.js +1 -1
- package/.next/standalone/.next/server/app/api/analyze/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/config/route.js +1 -1
- package/.next/standalone/.next/server/app/api/config/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/epics/[id]/ideas/route.js +1 -1
- package/.next/standalone/.next/server/app/api/epics/[id]/ideas/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/epics/[id]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/epics/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/epics/route.js +1 -1
- package/.next/standalone/.next/server/app/api/epics/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/goals/[id]/kpis/route.js +1 -1
- package/.next/standalone/.next/server/app/api/goals/[id]/kpis/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/goals/[id]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/goals/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/goals/route.js +1 -1
- package/.next/standalone/.next/server/app/api/goals/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/hypotheses/[id]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/hypotheses/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/hypotheses/route.js +1 -1
- package/.next/standalone/.next/server/app/api/hypotheses/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/card/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/card/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/comments/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/comments/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/implement/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/implement/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/transition/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[id]/transition/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/implementations/route.js +1 -1
- package/.next/standalone/.next/server/app/api/implementations/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/kpis/refresh/route.js +1 -1
- package/.next/standalone/.next/server/app/api/kpis/refresh/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/goals/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/goals/page.js +1 -1
- package/.next/standalone/.next/server/app/goals/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/goals/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hypotheses/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/hypotheses/page.js +1 -1
- package/.next/standalone/.next/server/app/hypotheses/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/hypotheses/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/ideas/[id]/page.js +1 -1
- package/.next/standalone/.next/server/app/ideas/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/ideas/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/page.js +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/investors/page.js +1 -0
- package/.next/standalone/.next/server/app/roadmap/investors/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/roadmap/investors/page_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/roadmap/page.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/roadmap/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/public/page.js +1 -0
- package/.next/standalone/.next/server/app/roadmap/public/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/roadmap/public/page_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/sessions/page.js +1 -1
- package/.next/standalone/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +1 -1
- package/.next/standalone/.next/server/app/social/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/social.html +1 -1
- package/.next/standalone/.next/server/app/social.rsc +1 -1
- package/.next/standalone/.next/server/app/updates/[id]/page.js +1 -1
- package/.next/standalone/.next/server/app/updates/[id]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/updates/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/updates/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/updates/new.html +1 -1
- package/.next/standalone/.next/server/app/updates/new.rsc +1 -1
- package/.next/standalone/.next/server/app/updates/page.js +1 -1
- package/.next/standalone/.next/server/app/updates/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/updates/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app-paths-manifest.json +17 -15
- package/.next/standalone/.next/server/chunks/3871.js +1 -0
- package/.next/standalone/.next/server/chunks/6299.js +1 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/data/business-context.json +1 -1
- package/.next/standalone/data/goals.json +1 -1
- package/.next/standalone/data/social.json +25 -1
- package/.next/standalone/package.json +1 -1
- package/.next/static/chunks/app/ideas/[id]/page-b3dfe1e61fc656a4.js +1 -0
- package/.next/static/chunks/app/roadmap/investors/page-0095ea5695573796.js +1 -0
- package/.next/static/chunks/app/roadmap/public/page-6b791041894b76d2.js +1 -0
- package/.next/static/chunks/{main-d878b9441f29f13f.js → main-6ee938c5db2d5eb4.js} +1 -1
- package/.next/static/css/ba6f5fe78931fee2.css +3 -0
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/534.js +0 -1
- package/.next/static/chunks/app/ideas/[id]/page-6d4f51cb25e7572d.js +0 -1
- package/.next/static/css/de9b407f2c259a06.css +0 -3
- /package/.next/static/{BBUKuE5twK2GcPPZZcp4j → qWTqRsgVgvrJaCLjUfRzd}/_buildManifest.js +0 -0
- /package/.next/static/{BBUKuE5twK2GcPPZZcp4j → qWTqRsgVgvrJaCLjUfRzd}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../data/.DS_Store","../../../../data/.analysis-prompt.txt","../../../../data/.gitkeep","../../../../data/business-context.json","../../../../data/codebase-snapshot.json","../../../../data/competitors.json","../../../../data/config.json","../../../../data/copy/landing-improvements-2026-02-20.md","../../../../data/copy/landing-landing-page-2026-02-20.md","../../../../data/email-campaigns/sequences/onboarding.md","../../../../data/email-campaigns/welcome-2026-02-20.md","../../../../data/goals.json","../../../../data/heartbeat-sessions.json","../../../../data/hypotheses.json","../../../../data/ideas.json","../../../../data/implementations.json","../../../../data/investor-updates.json","../../../../data/marketplace-positioning.json","../../../../data/pages.json","../../../../data/payments.json","../../../../data/positioning.json","../../../../data/posthog.json","../../../../data/reports/.DS_Store","../../../../data/reports/visuals/idea-lp-og-meta-card.png","../../../../data/reports/visuals/idea-readme-landing-url-card.png","../../../../data/reports/visuals/idea-stripe-integration-card.png","../../../../data/reports/visuals/promo-launch.png","../../../../data/reports/visuals/promo-ship-fast.png","../../../../data/reports/visuals/promo-while-you-slept-v2.png","../../../../data/reports/visuals/promo-while-you-slept-v3.png","../../../../data/reports/visuals/promo-while-you-slept.png","../../../../data/roadmap.json","../../../../data/sessions.json","../../../../data/social.json","../../../../data/video-ideas.md","../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/package.json","../../../../package.json","../../../package.json","../../chunks/4471.js","../../chunks/
|
|
1
|
+
{"version":1,"files":["../../../../data/.DS_Store","../../../../data/.analysis-prompt.txt","../../../../data/.gitkeep","../../../../data/business-context.json","../../../../data/codebase-snapshot.json","../../../../data/competitors.json","../../../../data/config.json","../../../../data/copy/landing-improvements-2026-02-20.md","../../../../data/copy/landing-landing-page-2026-02-20.md","../../../../data/email-campaigns/sequences/onboarding.md","../../../../data/email-campaigns/welcome-2026-02-20.md","../../../../data/goals.json","../../../../data/heartbeat-sessions.json","../../../../data/hypotheses.json","../../../../data/ideas.json","../../../../data/implementations.json","../../../../data/investor-updates.json","../../../../data/marketplace-positioning.json","../../../../data/pages.json","../../../../data/payments.json","../../../../data/positioning.json","../../../../data/posthog.json","../../../../data/reports/.DS_Store","../../../../data/reports/visuals/idea-lp-og-meta-card.png","../../../../data/reports/visuals/idea-readme-landing-url-card.png","../../../../data/reports/visuals/idea-stripe-integration-card.png","../../../../data/reports/visuals/promo-launch.png","../../../../data/reports/visuals/promo-ship-fast.png","../../../../data/reports/visuals/promo-while-you-slept-v2.png","../../../../data/reports/visuals/promo-while-you-slept-v3.png","../../../../data/reports/visuals/promo-while-you-slept.png","../../../../data/roadmap.json","../../../../data/sessions.json","../../../../data/social.json","../../../../data/video-ideas.md","../../../../node_modules/next/dist/client/components/action-async-storage-instance.js","../../../../node_modules/next/dist/client/components/action-async-storage.external.js","../../../../node_modules/next/dist/client/components/async-local-storage.js","../../../../node_modules/next/dist/client/components/request-async-storage-instance.js","../../../../node_modules/next/dist/client/components/request-async-storage.external.js","../../../../node_modules/next/dist/client/components/static-generation-async-storage-instance.js","../../../../node_modules/next/dist/client/components/static-generation-async-storage.external.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/package.json","../../../../package.json","../../../package.json","../../chunks/4471.js","../../chunks/6299.js","../../chunks/9276.js","../../chunks/9404.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/updates/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"47":{"*":{"id":"4812","name":"*","chunks":[],"async":false}},"80":{"*":{"id":"1868","name":"*","chunks":[],"async":false}},"786":{"*":{"id":"1855","name":"*","chunks":[],"async":false}},"1060":{"*":{"id":"9727","name":"*","chunks":[],"async":false}},"1259":{"*":{"id":"502","name":"*","chunks":[],"async":false}},"2674":{"*":{"id":"9973","name":"*","chunks":[],"async":false}},"2846":{"*":{"id":"2994","name":"*","chunks":[],"async":false}},"2972":{"*":{"id":"9404","name":"*","chunks":[],"async":false}},"3032":{"*":{"id":"1828","name":"*","chunks":[],"async":false}},"4067":{"*":{"id":"6893","name":"*","chunks":[],"async":false}},"4687":{"*":{"id":"8696","name":"*","chunks":[],"async":false}},"4707":{"*":{"id":"9671","name":"*","chunks":[],"async":false}},"6423":{"*":{"id":"4759","name":"*","chunks":[],"async":false}},"
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/updates/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"47":{"*":{"id":"4812","name":"*","chunks":[],"async":false}},"80":{"*":{"id":"1868","name":"*","chunks":[],"async":false}},"786":{"*":{"id":"1855","name":"*","chunks":[],"async":false}},"1034":{"*":{"id":"625","name":"*","chunks":[],"async":false}},"1060":{"*":{"id":"9727","name":"*","chunks":[],"async":false}},"1259":{"*":{"id":"502","name":"*","chunks":[],"async":false}},"2674":{"*":{"id":"9973","name":"*","chunks":[],"async":false}},"2846":{"*":{"id":"2994","name":"*","chunks":[],"async":false}},"2912":{"*":{"id":"7805","name":"*","chunks":[],"async":false}},"2972":{"*":{"id":"9404","name":"*","chunks":[],"async":false}},"3032":{"*":{"id":"1828","name":"*","chunks":[],"async":false}},"4067":{"*":{"id":"6893","name":"*","chunks":[],"async":false}},"4687":{"*":{"id":"8696","name":"*","chunks":[],"async":false}},"4707":{"*":{"id":"9671","name":"*","chunks":[],"async":false}},"5701":{"*":{"id":"1264","name":"*","chunks":[],"async":false}},"6423":{"*":{"id":"4759","name":"*","chunks":[],"async":false}},"6682":{"*":{"id":"5313","name":"*","chunks":[],"async":false}},"8013":{"*":{"id":"8841","name":"*","chunks":[],"async":false}},"8301":{"*":{"id":"8206","name":"*","chunks":[],"async":false}},"8825":{"*":{"id":"4663","name":"*","chunks":[],"async":false}},"8935":{"*":{"id":"1358","name":"*","chunks":[],"async":false}},"9107":{"*":{"id":"6114","name":"*","chunks":[],"async":false}},"9525":{"*":{"id":"4107","name":"*","chunks":[],"async":false}},"9646":{"*":{"id":"8022","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/luismey/Code/vibebusiness/node_modules/next/dist/client/components/app-router.js":{"id":2846,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/node_modules/next/dist/esm/client/components/app-router.js":{"id":2846,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/node_modules/next/dist/client/components/client-page.js":{"id":9107,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/node_modules/next/dist/esm/client/components/client-page.js":{"id":9107,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/node_modules/next/dist/client/components/error-boundary.js":{"id":1060,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":1060,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/node_modules/next/dist/client/components/layout-router.js":{"id":4707,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/node_modules/next/dist/esm/client/components/layout-router.js":{"id":4707,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/node_modules/next/dist/client/components/not-found-boundary.js":{"id":80,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":80,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/node_modules/next/dist/client/components/render-from-template-context.js":{"id":6423,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":6423,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/src/app/globals.css":{"id":2778,"name":"*","chunks":["185","static/chunks/app/layout-eeef7928298d2198.js"],"async":false},"/Users/luismey/Code/vibebusiness/src/app/hypotheses/[id]/page.tsx":{"id":9646,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/src/app/goals/[id]/page.tsx":{"id":8935,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/src/app/roadmap/[id]/page.tsx":{"id":47,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/src/app/settings/page.tsx":{"id":8301,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/src/app/social/page.tsx":{"id":4687,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/src/app/updates/new/page.tsx":{"id":9525,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/src/components/AnalystLayout.tsx":{"id":1259,"name":"*","chunks":["972","static/chunks/972-8c4b4e19760b26af.js","346","static/chunks/app/updates/page-19a09d7046577f70.js"],"async":false},"/Users/luismey/Code/vibebusiness/src/components/IdeaDetail.tsx":{"id":2912,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/src/components/GoalCard.tsx":{"id":2674,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/src/components/HypothesisCard.tsx":{"id":786,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/src/components/RoadmapViewToggle.tsx":{"id":3032,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/src/app/DashboardHeader.tsx":{"id":4067,"name":"*","chunks":["972","static/chunks/972-8c4b4e19760b26af.js","851","static/chunks/851-65b033bf38847cbb.js","931","static/chunks/app/page-3635a292b3d471c0.js"],"async":false},"/Users/luismey/Code/vibebusiness/src/components/IdeaKanban.tsx":{"id":8825,"name":"*","chunks":["972","static/chunks/972-8c4b4e19760b26af.js","851","static/chunks/851-65b033bf38847cbb.js","931","static/chunks/app/page-3635a292b3d471c0.js"],"async":false},"/Users/luismey/Code/vibebusiness/src/components/public-roadmap/ShareButtons.tsx":{"id":6682,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/node_modules/next/dist/client/link.js":{"id":2972,"name":"*","chunks":["972","static/chunks/972-8c4b4e19760b26af.js","346","static/chunks/app/updates/page-19a09d7046577f70.js"],"async":false},"/Users/luismey/Code/vibebusiness/node_modules/next/dist/esm/client/link.js":{"id":2972,"name":"*","chunks":["972","static/chunks/972-8c4b4e19760b26af.js","346","static/chunks/app/updates/page-19a09d7046577f70.js"],"async":false},"/Users/luismey/Code/vibebusiness/src/components/public-roadmap/PhaseNarrative.tsx":{"id":5701,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/src/components/public-roadmap/PhaseTimeline.tsx":{"id":8013,"name":"*","chunks":[],"async":false},"/Users/luismey/Code/vibebusiness/src/components/public-roadmap/PublicEpicCard.tsx":{"id":1034,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/luismey/Code/vibebusiness/src/":[],"/Users/luismey/Code/vibebusiness/src/app/layout":["static/css/ba6f5fe78931fee2.css"],"/Users/luismey/Code/vibebusiness/src/app/page":[],"/Users/luismey/Code/vibebusiness/src/app/updates/page":[]}}
|
|
@@ -2,45 +2,47 @@
|
|
|
2
2
|
"/_not-found/page": "app/_not-found/page.js",
|
|
3
3
|
"/api/config/detect-repos/route": "app/api/config/detect-repos/route.js",
|
|
4
4
|
"/api/epics/[id]/ideas/route": "app/api/epics/[id]/ideas/route.js",
|
|
5
|
-
"/api/goals/[id]/kpis/route": "app/api/goals/[id]/kpis/route.js",
|
|
6
5
|
"/api/epics/[id]/route": "app/api/epics/[id]/route.js",
|
|
6
|
+
"/api/goals/[id]/kpis/route": "app/api/goals/[id]/kpis/route.js",
|
|
7
7
|
"/api/goals/[id]/route": "app/api/goals/[id]/route.js",
|
|
8
8
|
"/api/hypotheses/[id]/route": "app/api/hypotheses/[id]/route.js",
|
|
9
|
+
"/api/ideas/[id]/comments/route": "app/api/ideas/[id]/comments/route.js",
|
|
9
10
|
"/api/ideas/[id]/route": "app/api/ideas/[id]/route.js",
|
|
10
11
|
"/api/ideas/[id]/implement/route": "app/api/ideas/[id]/implement/route.js",
|
|
11
|
-
"/api/ideas/[id]/comments/route": "app/api/ideas/[id]/comments/route.js",
|
|
12
12
|
"/api/ideas/[id]/transition/route": "app/api/ideas/[id]/transition/route.js",
|
|
13
|
-
"/api/kpis/refresh/route": "app/api/kpis/refresh/route.js",
|
|
14
13
|
"/api/investor-updates/generate/route": "app/api/investor-updates/generate/route.js",
|
|
15
|
-
"/api/
|
|
16
|
-
"/goals/[id]/page": "app/goals/[id]/page.js",
|
|
14
|
+
"/api/kpis/refresh/route": "app/api/kpis/refresh/route.js",
|
|
17
15
|
"/api/social/[id]/route": "app/api/social/[id]/route.js",
|
|
16
|
+
"/api/social/[id]/publish/route": "app/api/social/[id]/publish/route.js",
|
|
18
17
|
"/hypotheses/[id]/page": "app/hypotheses/[id]/page.js",
|
|
18
|
+
"/goals/[id]/page": "app/goals/[id]/page.js",
|
|
19
19
|
"/roadmap/[id]/page": "app/roadmap/[id]/page.js",
|
|
20
|
-
"/updates/new/page": "app/updates/new/page.js",
|
|
21
|
-
"/social/page": "app/social/page.js",
|
|
22
20
|
"/settings/page": "app/settings/page.js",
|
|
21
|
+
"/social/page": "app/social/page.js",
|
|
22
|
+
"/updates/new/page": "app/updates/new/page.js",
|
|
23
23
|
"/api/checkout/route": "app/api/checkout/route.js",
|
|
24
24
|
"/api/config/route": "app/api/config/route.js",
|
|
25
25
|
"/api/analyze/route": "app/api/analyze/route.js",
|
|
26
|
+
"/api/health/route": "app/api/health/route.js",
|
|
26
27
|
"/api/epics/route": "app/api/epics/route.js",
|
|
27
28
|
"/api/goals/route": "app/api/goals/route.js",
|
|
28
|
-
"/api/ideas/[id]/card/route": "app/api/ideas/[id]/card/route.js",
|
|
29
|
-
"/api/health/route": "app/api/health/route.js",
|
|
30
29
|
"/api/hypotheses/route": "app/api/hypotheses/route.js",
|
|
30
|
+
"/api/ideas/[id]/card/route": "app/api/ideas/[id]/card/route.js",
|
|
31
31
|
"/api/ideas/route": "app/api/ideas/route.js",
|
|
32
32
|
"/api/implementations/route": "app/api/implementations/route.js",
|
|
33
|
-
"/api/portal/route": "app/api/portal/route.js",
|
|
34
33
|
"/api/license/route": "app/api/license/route.js",
|
|
35
|
-
"/api/
|
|
34
|
+
"/api/portal/route": "app/api/portal/route.js",
|
|
36
35
|
"/api/social/route": "app/api/social/route.js",
|
|
37
|
-
"/
|
|
38
|
-
"/sessions/page": "app/sessions/page.js",
|
|
39
|
-
"/page": "app/page.js",
|
|
36
|
+
"/api/provider-status/route": "app/api/provider-status/route.js",
|
|
40
37
|
"/api/webhook/route": "app/api/webhook/route.js",
|
|
38
|
+
"/ideas/[id]/page": "app/ideas/[id]/page.js",
|
|
41
39
|
"/goals/page": "app/goals/page.js",
|
|
40
|
+
"/hypotheses/page": "app/hypotheses/page.js",
|
|
42
41
|
"/roadmap/page": "app/roadmap/page.js",
|
|
42
|
+
"/page": "app/page.js",
|
|
43
|
+
"/roadmap/public/page": "app/roadmap/public/page.js",
|
|
44
|
+
"/sessions/page": "app/sessions/page.js",
|
|
45
|
+
"/roadmap/investors/page": "app/roadmap/investors/page.js",
|
|
43
46
|
"/updates/[id]/page": "app/updates/[id]/page.js",
|
|
44
|
-
"/hypotheses/page": "app/hypotheses/page.js",
|
|
45
47
|
"/updates/page": "app/updates/page.js"
|
|
46
48
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=3871,exports.ids=[3871],exports.modules={3871:e=>{e.exports=JSON.parse('{"last_updated":"2026-02-18","current":{"tagline":"Monitor. Analyze. Ship.","value_proposition":"VibeBusiness turns ideas into shipped products — the first autonomous AI that researches your market, analyzes your metrics, decides what to build, implements it through code, ships it, and verifies the results. From zero to product, from product to growth, continuously.","target_audience":{"primary":"Indie hackers and solo technical founders — CLI-native developers who build their own products, ship fast, struggle with prioritization and growth. Already use Claude Code, Cursor, Supabase, Vercel, PostHog, Stripe. Budget: $20-100/month for essential tools.","secondary":["Vibe-coders (non-technical entrepreneurs) who built apps using Lovable/Bolt.new but face the \'what next?\' problem — better served after web dashboard exists","Small dev teams (2-10 engineers) at startups needing optimization — unlocks per-seat pricing and team features","Agencies and freelancers who build apps for clients and need strategic value beyond code delivery"],"anti_personas":["Enterprise product teams with dedicated PMs and analysts — they have specialized tools and processes","Non-technical users who can\'t run CLI tools — wait for hosted version","Developers who only want code completion — Cursor/Copilot serve them well"]},"differentiators":["Full lifecycle loop: observe → analyze → recommend → implement → ship → verify → learn — no competitor closes this","Brain/hands architecture: VibeBusiness decides WHAT; Claude Code CLI handles HOW — implementation improves for free as Claude Code improves","Autonomous heartbeat: runs proactively while you sleep — every other dev tool waits for you","Persistent business memory (MEMORY.md): gets smarter over months of observation — irreplaceable switching cost","BYOK model: near-zero COGS, 90-95% gross margins, user data never touches our servers","CLI-native: built for developers who live in the terminal, not another SaaS dashboard","Zero-to-product onboarding: from shower thought to shipped product in one session"],"messaging_pillars":[{"pillar":"Autonomous Intelligence","proof_points":["Heartbeat loop runs while you sleep — morning briefing with prioritized recommendations","MEMORY.md accumulates deep understanding over months of observation","Post-ship verification automatically measures outcomes against baselines","Already shipped production features autonomously (PR #74 verified, PR #75 in testing)"],"counter_objections":["Not a \'ChatGPT wrapper\' — it runs autonomously overnight, something no wrapper does","Human-on-the-loop (HOTL) model: you approve ideas, AI handles implementation details","Configurable autonomy dial: start conservative, loosen as trust builds"]},{"pillar":"Full Lifecycle Closure","proof_points":["Idea → research → prioritize → implement → ship → verify → learn — no other tool does all of this","Claude Code CLI as implementation backend — coding quality improves for free with each release","Zero-codebase onboarding: from idea to competitor research to landing page to first vibe cycle","Branch/PR workflow with atomic commits and success metric tracking"],"counter_objections":["AI coding tools write code but don\'t know WHAT to build — VibeBusiness provides the strategy","BI tools track metrics but don\'t DO anything — VibeBusiness acts on insights","Project management tools organize tasks but don\'t generate or execute them"]},{"pillar":"Built for Indie Hackers","proof_points":["BYOK: you control costs, your data never leaves your machine","CLI-first: runs where you already work, no context switching","$29/month Pro — priced for indie hacker tool budgets, not enterprise","SaaS-specific domain knowledge: AARRR, pricing frameworks, growth loops built in"],"counter_objections":["Not another $100+/month enterprise tool — designed for solo founders","Local-first architecture: no vendor lock-in on data","BYOK means your AI costs are transparent and under your control"]},{"pillar":"Compounding Value","proof_points":["MEMORY.md grows richer every vibe cycle — 700+ observations by Day 30","Implementation track record: complete history of ideas shipped and outcomes measured","Hypothesis validation: what was tried, what worked, and why — institutional knowledge","After 6+ months, understands your business better than any new tool could"],"counter_objections":["Not a one-shot validator — continuous intelligence that compounds over time","Switching cost is the intelligence, not data lock-in — your data is always portable","The longer you use it, the better it gets — unlike static tools"]}]},"copy_bank":{"headlines":[{"text":"Your AI Product Manager That Actually Ships Code","audience":"indie hackers","funnel_stage":"tofu"},{"text":"From Shower Thought to Shipped Product","audience":"vibe-coders","funnel_stage":"tofu"},{"text":"The Business Intelligence Tool That Works While You Sleep","audience":"indie hackers","funnel_stage":"tofu"},{"text":"Stop Guessing What to Build Next","audience":"solo founders","funnel_stage":"tofu"},{"text":"One Command. Your Entire Business Strategy.","audience":"developers","funnel_stage":"mofu"},{"text":"Every Other Dev Tool Waits for You. This One Works While You Don\'t.","audience":"indie hackers","funnel_stage":"tofu"}],"subheadlines":[{"text":"VibeBusiness autonomously researches your market, analyzes your metrics, decides what to build, implements it, and verifies the results.","audience":"indie hackers","funnel_stage":"tofu"},{"text":"The first autonomous AI that closes the full business lifecycle: from idea to shipped code to measured outcomes.","audience":"developers","funnel_stage":"mofu"},{"text":"Run one command. Get a better analysis than a $5K consultant. In 60 seconds.","audience":"indie hackers","funnel_stage":"mofu"},{"text":"Cursor writes the code. VibeBusiness decides what code to write.","audience":"cursor users","funnel_stage":"mofu"}],"ctas":[{"text":"npx vibebusiness","context":"Primary CTA — instant try via npx, zero friction","conversion_rate":null},{"text":"Start Your First Vibe Cycle","context":"Post-install activation CTA","conversion_rate":null},{"text":"See What VibeBusiness Finds in Your Codebase","context":"Curiosity-driven CTA for landing page","conversion_rate":null},{"text":"Get Your Free Business Analysis","context":"Value-forward CTA for non-technical visitors","conversion_rate":null}],"social_proof":[{"text":"Occupies genuine whitespace: after analyzing 40+ products across 8 competitive categories, no existing tool combines autonomous agent + codebase analysis + business strategy + implementation","type":"stat"},{"text":"BYOK model: 90-95% gross margins, near-zero COGS","type":"stat"},{"text":"Already shipping production features autonomously (PR #74 shipped and verified)","type":"stat"},{"text":"Built at the intersection of three $80B+ markets: AI coding tools, agentic AI, and vertical AI for business","type":"stat"}],"objection_handlers":[{"objection":"Isn\'t this just a ChatGPT wrapper?","response":"VibeBusiness runs autonomously overnight, accumulates months of business context in MEMORY.md, integrates with your actual Stripe and PostHog data, and ships production code through Claude Code CLI. No wrapper does that. Calling VibeBusiness an AI wrapper is like calling SaaS a MySQL wrapper."},{"objection":"Why not just use ChatGPT/Claude directly?","response":"ChatGPT forgets everything between sessions, can\'t observe your codebase continuously, doesn\'t integrate with your metrics, and never ships a line of code. VibeBusiness has persistent memory, real data integrations, and an autonomous implementation engine."},{"objection":"Can I trust AI for business decisions?","response":"VibeBusiness uses a Human-on-the-Loop (HOTL) model: the AI recommends, you approve. Every recommendation is grounded in your actual metrics, not generic advice. You see the reasoning chain, not just conclusions. Start conservative, increase autonomy as trust builds."},{"objection":"I already use Cursor — do I need this too?","response":"Cursor writes excellent code but doesn\'t know WHAT to build or WHY. VibeBusiness decides what code to write based on your business metrics, competitive landscape, and goals. They\'re complementary: Cursor is the hands, VibeBusiness is the brain."},{"objection":"What if it makes bad recommendations?","response":"Every recommendation includes its reasoning chain and confidence level. You approve before any code changes happen. VibeBusiness tracks recommendation acceptance rates and learns from your feedback. The feedback loop makes it better over time."},{"objection":"$29/month is too expensive","response":"VibeBusiness replaces fragmented spending across analytics dashboards ($108+/mo), idea validation tools, and business strategy sessions. At $29/month with BYOK, it\'s the cheapest business intelligence tool for indie hackers — and it actually ships code."}],"pain_points":[{"pain":"Decision paralysis: \'What should I build? What should I focus on? Is this even worth pursuing?\'","audience":"indie hackers","intensity":"high"},{"pain":"Distribution > product: \'90% of side projects die from no users, not bad code\'","audience":"solo founders","intensity":"high"},{"pain":"Pricing confusion: founders systematically underprice; 1% pricing improvement yields 11% profit increase","audience":"SaaS founders","intensity":"high"},{"pain":"AI tools make creation effortless but leave monetization painful","audience":"vibe-coders","intensity":"high"},{"pain":"Strategic isolation: no co-founder, no PM, no board to bounce ideas off of","audience":"solo founders","intensity":"medium"},{"pain":"Fragmented tools: Baremetrics for what\'s happening → ChatGPT for what to do → Notion for decisions → Cursor for building","audience":"indie hackers","intensity":"medium"},{"pain":"Scaling beyond MVP: built something that works but don\'t know how to grow it","audience":"indie hackers","intensity":"high"}]}}')}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=6299,exports.ids=[6299],exports.modules={9576:(t,e,a)=>{a.d(e,{Z:()=>l});var i=a(4770),n=a.n(i);let s={randomUUID:n().randomUUID},r=new Uint8Array(256),o=r.length,d=[];for(let t=0;t<256;++t)d.push((t+256).toString(16).slice(1));let l=function(t,e,a){if(s.randomUUID&&!e&&!t)return s.randomUUID();let i=(t=t||{}).random||(t.rng||function(){return o>r.length-16&&(n().randomFillSync(r),o=0),r.slice(o,o+=16)})();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){a=a||0;for(let t=0;t<16;++t)e[a+t]=i[t];return e}return function(t,e=0){return d[t[e+0]]+d[t[e+1]]+d[t[e+2]]+d[t[e+3]]+"-"+d[t[e+4]]+d[t[e+5]]+"-"+d[t[e+6]]+d[t[e+7]]+"-"+d[t[e+8]]+d[t[e+9]]+"-"+d[t[e+10]]+d[t[e+11]]+d[t[e+12]]+d[t[e+13]]+d[t[e+14]]+d[t[e+15]]}(i)}},6299:(t,e,a)=>{a.d(e,{BK:()=>ti,BM:()=>M,B_:()=>T,DT:()=>ta,Ge:()=>J,HX:()=>h,HZ:()=>D,Ir:()=>y,Iw:()=>_,KG:()=>tt,LB:()=>b,M6:()=>S,N0:()=>Y,NY:()=>I,Pk:()=>E,QV:()=>$,Rx:()=>j,Xe:()=>L,Z0:()=>te,_1:()=>B,a9:()=>v,ad:()=>x,b_:()=>f,c5:()=>Z,dZ:()=>O,iE:()=>P,k4:()=>A,kU:()=>U,lo:()=>X,pG:()=>m,pL:()=>w,rF:()=>V,rK:()=>K,s6:()=>k,t:()=>g,uQ:()=>d,x5:()=>H,zg:()=>G});var i=a(2048),n=a(5315),s=a.n(n),r=a(9576),o=a(2114);function d(){return process.env.AI_ANALYST_DATA_DIR||s().join(process.cwd(),"data")}function l(t){return s().join(d(),t)}async function c(){try{await i.promises.access(d())}catch{await i.promises.mkdir(d(),{recursive:!0})}}async function u(t,e){try{let e=await i.promises.readFile(t,"utf-8");return JSON.parse(e)}catch{return e}}async function p(t,e){await c(),await i.promises.writeFile(t,JSON.stringify(e,null,2),"utf-8")}async function _(){return(await u(l("ideas.json"),{ideas:[]})).ideas.map(t=>({...t,epic_id:t.epic_id??null,implementation:{...t.implementation,sub_tasks:t.implementation?.sub_tasks||[]}}))}async function f(t){return(await _()).find(e=>e.id===t)||null}async function g(t){let e=await _(),a=new Date().toISOString(),i={id:`idea-${(0,r.Z)().slice(0,8)}`,created_at:a,updated_at:a,title:t.title,summary:t.summary,category:t.category,priority:t.priority,effort:t.effort,impact:t.impact,context:t.context,rationale:t.rationale,implementation_plan:t.implementation_plan,success_metrics:t.success_metrics,stage:"inbox",source:t.source,implementation:{branch_name:null,pr_url:null,pr_number:null,commits:[],started_at:null,completed_at:null,sub_tasks:[]},comments:[],tags:t.tags||[],related_ideas:[],goal_id:t.goal_id||null,expected_impact:t.expected_impact||null,hypothesis_id:t.hypothesis_id||null,epic_id:t.epic_id||null,prerequisites:t.prerequisites};return e.push(i),await p(l("ideas.json"),{ideas:e}),i.hypothesis_id&&await F(i.hypothesis_id,i.id),i}async function m(t,e){let a=await _(),i=a.findIndex(e=>e.id===t);if(-1===i)return null;let n={...a[i],...e,updated_at:new Date().toISOString()};return a[i]=n,await p(l("ideas.json"),{ideas:a}),n}async function w(t,e,a){let i=await _(),n=i.findIndex(e=>e.id===t);if(-1===n)return null;let s=i[n],d=new Date().toISOString();if(a){let t={id:`comment-${(0,r.Z)().slice(0,8)}`,created_at:d,author:"human",author_name:"Founder",content:a};s.comments.push(t)}if(s.stage=e,s.updated_at=d,"in_progress"!==e||s.implementation.started_at){if("shipped"===e){s.implementation.completed_at=d;let t=[];if(s.goal_id){let e=(await S()).find(t=>t.id===s.goal_id);if(e)for(let a of e.kpis)t.push({goal_id:e.id,kpi_id:a.id,kpi_name:a.name,value:a.current_value,date:d})}s.verification={...o.Lu,kpi_snapshot_at_ship:t}}}else s.implementation.started_at=d;return i[n]=s,await p(l("ideas.json"),{ideas:i}),s}async function y(t,e){let a=await _(),i=a.findIndex(e=>e.id===t);if(-1===i)return null;let n={id:`comment-${(0,r.Z)().slice(0,8)}`,created_at:new Date().toISOString(),author:e.author,author_name:e.author_name,content:e.content};return a[i].comments.push(n),a[i].updated_at=new Date().toISOString(),await p(l("ideas.json"),{ideas:a}),n}async function h(t){let e=await _(),a=e.findIndex(e=>e.id===t);return -1!==a&&(e.splice(a,1),await p(l("ideas.json"),{ideas:e}),!0)}async function j(){return(await u(l("sessions.json"),{sessions:[]})).sessions}async function x(){return(await u(l("implementations.json"),{implementations:[]})).implementations}async function I(t){return(await x()).find(e=>e.idea_id===t&&"failed"!==e.status)||null}async function S(){return(await u(l("goals.json"),{goals:[]})).goals}async function v(t){return(await S()).find(e=>e.id===t)||null}async function D(t){let e=await S(),a=new Date().toISOString(),i=(t.kpis||[]).map((t,e)=>({...t,id:`kpi-${(0,r.Z)().slice(0,8)}`,history:[]})),n={id:`goal-${(0,r.Z)().slice(0,8)}`,created_at:a,updated_at:a,title:t.title,description:t.description,category:t.category,target_value:t.target_value,target_unit:t.target_unit,current_value:null,baseline_value:t.baseline_value||0,deadline:t.deadline,status:"on_track",kpis:i,related_ideas:[]};return e.push(n),await p(l("goals.json"),{goals:e}),n}async function b(t,e){let a=await S(),i=a.findIndex(e=>e.id===t);if(-1===i)return null;let n={...a[i],...e,updated_at:new Date().toISOString()};return a[i]=n,await p(l("goals.json"),{goals:a}),n}async function k(t){let e=await S(),a=e.findIndex(e=>e.id===t);return -1!==a&&(e.splice(a,1),await p(l("goals.json"),{goals:e}),!0)}async function O(t,e,a){let i=await S(),n=i.findIndex(e=>e.id===t);if(-1===n)return null;let s=i[n].kpis.findIndex(t=>t.id===e);if(-1===s)return null;let r={...i[n].kpis[s],...a};return i[n].kpis[s]=r,i[n].updated_at=new Date().toISOString(),await p(l("goals.json"),{goals:i}),r}async function $(t,e,a){let i=await S(),n=i.findIndex(e=>e.id===t);if(-1===n)return null;let s=i[n].kpis.findIndex(t=>t.id===e);if(-1===s)return null;let r={date:a.date||new Date().toISOString().split("T")[0],value:a.value};return i[n].kpis[s].history.push(r),i[n].kpis[s].current_value=a.value,i[n].updated_at=new Date().toISOString(),await p(l("goals.json"),{goals:i}),i[n].kpis[s]}async function Z(){return(await u(l("hypotheses.json"),{hypotheses:[]})).hypotheses}async function U(t){return(await Z()).find(e=>e.id===t)||null}async function M(t){let e=await Z(),a=new Date().toISOString(),i=`hyp-${(0,r.Z)().slice(0,8)}`;if(e.some(t=>t.id===i))throw console.error(`[createHypothesis] Hypothesis ID collision detected: ${i}`),Error(`Hypothesis ID collision detected: ${i}`);console.debug(`[createHypothesis] created id=${i}`);let n={id:i,created_at:a,updated_at:a,title:t.title,statement:t.statement,description:t.description,funnel_stage:t.funnel_stage,priority:t.priority,status:"stated",evidence_for:[],evidence_against:[],validation_criteria:[],validation_ideas:[],reference_model:t.reference_model,effort_to_test:t.effort_to_test,tags:t.tags||[]};return e.push(n),await p(l("hypotheses.json"),{hypotheses:e}),n}async function A(t,e){let a=await Z(),i=a.findIndex(e=>e.id===t);if(-1===i)return null;let n={...a[i],...e,updated_at:new Date().toISOString()};return a[i]=n,await p(l("hypotheses.json"),{hypotheses:a}),n}async function H(t){let e=await Z(),a=e.findIndex(e=>e.id===t);return -1!==a&&(e.splice(a,1),await p(l("hypotheses.json"),{hypotheses:e}),!0)}async function F(t,e){let a=await Z(),i=a.findIndex(e=>e.id===t);return -1===i?null:(a[i].validation_ideas.includes(e)||(a[i].validation_ideas.push(e),a[i].updated_at=new Date().toISOString(),await p(l("hypotheses.json"),{hypotheses:a})),a[i])}let N={xs:1,s:2,m:3,l:5,xl:8};function L(t,e){let a=e.filter(e=>t.idea_ids.includes(e.id)),i={},n=0,s=0;for(let t of a){i[t.stage]=(i[t.stage]||0)+1;let e=N[t.effort]||3;n+=e,"shipped"===t.stage&&(s+=e)}let r=i.shipped||0,o=a.length;return{total_ideas:o,by_stage:i,shipped_count:r,progress_pct:o>0?Math.round(r/o*100):0,effort_total:n,effort_completed:s}}function q(t,e){if(t.status_override)return t.status;let a=e.filter(e=>t.idea_ids.includes(e.id));return 0===a.length?"planned":a.every(t=>"shipped"===t.stage||"rejected"===t.stage)?"completed":a.some(t=>"in_progress"===t.stage||"testing"===t.stage)?"active":"planned"}async function B(){let t=await u(l("roadmap.json"),{epics:[]}),e=await _();return t.epics.map(t=>({...t,status:q(t,e)}))}async function G(t){return(await B()).find(e=>e.id===t)||null}async function T(t){let e=await u(l("roadmap.json"),{epics:[]}),a=new Date().toISOString(),i={id:`epic-${(0,r.Z)().slice(0,8)}`,created_at:a,updated_at:a,title:t.title,description:t.description,category:t.category,goal_id:t.goal_id??null,hypothesis_id:t.hypothesis_id??null,idea_ids:t.idea_ids||[],target_start:t.target_start??null,target_end:t.target_end??null,status:"planned",status_override:!1,depends_on:t.depends_on||[],sort_order:t.sort_order??e.epics.length,auto_generated:t.auto_generated??!1,rationale:t.rationale??null,tags:t.tags||[]};if(e.epics.push(i),await p(l("roadmap.json"),e),i.idea_ids.length>0){let t=await _(),e=!1;for(let a of t)i.idea_ids.includes(a.id)&&a.epic_id!==i.id&&(a.epic_id=i.id,e=!0);e&&await p(l("ideas.json"),{ideas:t})}return i}async function K(t,e){let a=await u(l("roadmap.json"),{epics:[]}),i=a.epics.findIndex(e=>e.id===t);if(-1===i)return null;let n={...a.epics[i],...e,updated_at:new Date().toISOString()};a.epics[i]=n,await p(l("roadmap.json"),a);let s=await _();return n.status=q(n,s),n}async function Y(t){let e=await u(l("roadmap.json"),{epics:[]}),a=e.epics.findIndex(e=>e.id===t);if(-1===a)return!1;let i=e.epics[a];if(e.epics.splice(a,1),await p(l("roadmap.json"),e),i.idea_ids.length>0){let e=await _(),a=!1;for(let i of e)i.epic_id===t&&(i.epic_id=null,a=!0);a&&await p(l("ideas.json"),{ideas:e})}return!0}async function E(t,e){let a=await u(l("roadmap.json"),{epics:[]}),i=a.epics.findIndex(e=>e.id===t);if(-1===i)return null;a.epics[i].idea_ids.includes(e)||(a.epics[i].idea_ids.push(e),a.epics[i].updated_at=new Date().toISOString(),await p(l("roadmap.json"),a));let n=await _(),s=n.find(t=>t.id===e);return s&&s.epic_id!==t&&(s.epic_id=t,await p(l("ideas.json"),{ideas:n})),a.epics[i]}async function J(t,e){let a=await u(l("roadmap.json"),{epics:[]}),i=a.epics.findIndex(e=>e.id===t);if(-1===i)return null;let n=a.epics[i].idea_ids.indexOf(e);-1!==n&&(a.epics[i].idea_ids.splice(n,1),a.epics[i].updated_at=new Date().toISOString(),await p(l("roadmap.json"),a));let s=await _(),r=s.find(t=>t.id===e);return r&&r.epic_id===t&&(r.epic_id=null,await p(l("ideas.json"),{ideas:s})),a.epics[i]}function Q(t,e){let a=new Date(t),i=0;for(;i<e;){a.setDate(a.getDate()+1);let t=a.getDay();0!==t&&6!==t&&i++}return a}function R(t){let[e,a,i]=t.split("-").map(Number);return new Date(e,a-1,i)}function X(t,e,a){let i=new Map,n=new Date;n.setHours(0,0,0,0);let s=new Map;for(let e of[...t].sort((t,e)=>t.sort_order-e.sort_order)){let t=e.goal_id,a=s.get(t);a?a.push(e):s.set(t,[e])}for(let[,t]of Array.from(s.entries())){let a=new Date(n);for(let n of t){if(n.target_start&&n.target_end){i.set(n.id,{start:n.target_start,end:n.target_end});let t=R(n.target_end);t>=a&&(a=Q(t,1));continue}let t=e.filter(t=>n.idea_ids.includes(t.id)),s=0;for(let e of t)s+=N[e.effort]||3;let r=Math.max(1,Math.ceil(s/4)),o=n.target_start||z(a),d=n.target_start?R(n.target_start):new Date(a),l=n.target_end?R(n.target_end):Q(d,r),c=n.target_end||z(l);i.set(n.id,{start:o,end:c}),a=Q(l,1)}}return i}function z(t){let e=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return`${e}-${a}-${i}`}let C={repos:[],workspace_dir:"",schedules:{quick:{focus:["recent_changes","todos","errors","fixme"],max_ideas:5},deep:{focus:["architecture","tech_debt","security","patterns","dependencies"],max_ideas:15},metrics:{focus:["funnels","dropoffs","conversions","performance"],max_ideas:10},seo:{focus:["blog_performance","technical_seo","content_gaps","backlinks"],max_ideas:8}}};async function P(){return u(l("config.json"),C)}async function V(t){await p(l("config.json"),t)}async function W(){try{await i.promises.access(l("config.json"))}catch{await p(l("config.json"),C)}}async function tt(){await c(),await W();try{await i.promises.access(l("ideas.json"))}catch{await p(l("ideas.json"),{ideas:[]})}try{await i.promises.access(l("sessions.json"))}catch{await p(l("sessions.json"),{sessions:[]})}try{await i.promises.access(l("implementations.json"))}catch{await p(l("implementations.json"),{implementations:[]})}try{await i.promises.access(l("goals.json"))}catch{await p(l("goals.json"),{goals:[]})}try{await i.promises.access(l("hypotheses.json"))}catch{await p(l("hypotheses.json"),{hypotheses:[]})}try{await i.promises.access(l("roadmap.json"))}catch{await p(l("roadmap.json"),{epics:[]})}try{await i.promises.access(l("investor-updates.json"))}catch{await p(l("investor-updates.json"),{updates:[]})}}async function te(){return(await u(l("investor-updates.json"),{updates:[]})).updates.sort((t,e)=>e.period_end.localeCompare(t.period_end))}async function ta(t){return(await te()).find(e=>e.id===t)||null}async function ti(t,e){let a=await u(l("investor-updates.json"),{updates:[]}),i=a.updates.findIndex(e=>e.id===t);return -1===i?null:(a.updates[i].status=e,await p(l("investor-updates.json"),a),a.updates[i])}},2114:(t,e,a)=>{a.d(e,{Lu:()=>n,pG:()=>i});let i={product:"bg-blue-100 text-blue-800",ux_design:"bg-purple-100 text-purple-800",growth:"bg-green-100 text-green-800",performance:"bg-orange-100 text-orange-800",tech_debt:"bg-yellow-100 text-yellow-800",security:"bg-red-100 text-red-800",infrastructure:"bg-gray-100 text-gray-800",content:"bg-pink-100 text-pink-800",analytics:"bg-cyan-100 text-cyan-800",integration:"bg-indigo-100 text-indigo-800"},n={status:"pending",first_evaluated_at:null,last_evaluated_at:null,evaluation_count:0,next_evaluation_after:null,summary:null,metric_evaluations:[],confidence:null,follow_up_idea_ids:[],requires_human_review:!1,human_review_reason:null,kpi_snapshot_at_ship:[]}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-a3c37fcbf859f6f9.js","static/chunks/fd9d1056-8c714984d5b17b60.js","static/chunks/117-23260fd0b5f0bd9a.js","static/chunks/main-app-f42d9aa726a818bf.js"],pages:{"/_app":["static/chunks/webpack-a3c37fcbf859f6f9.js","static/chunks/framework-f66176bb897dc684.js","static/chunks/main-
|
|
1
|
+
self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-a3c37fcbf859f6f9.js","static/chunks/fd9d1056-8c714984d5b17b60.js","static/chunks/117-23260fd0b5f0bd9a.js","static/chunks/main-app-f42d9aa726a818bf.js"],pages:{"/_app":["static/chunks/webpack-a3c37fcbf859f6f9.js","static/chunks/framework-f66176bb897dc684.js","static/chunks/main-6ee938c5db2d5eb4.js","static/chunks/pages/_app-72b849fbd24ac258.js"],"/_error":["static/chunks/webpack-a3c37fcbf859f6f9.js","static/chunks/framework-f66176bb897dc684.js","static/chunks/main-6ee938c5db2d5eb4.js","static/chunks/pages/_error-7ba65e1336b92748.js"]},ampFirstPages:[]},self.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/ba6f5fe78931fee2.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a3c37fcbf859f6f9.js"/><script src="/_next/static/chunks/fd9d1056-8c714984d5b17b60.js" async=""></script><script src="/_next/static/chunks/117-23260fd0b5f0bd9a.js" async=""></script><script src="/_next/static/chunks/main-app-f42d9aa726a818bf.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>AI Product Manager</title><meta name="description" content="AI Product Manager - Autonomous improvement proposals"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-screen bg-slate-50"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-a3c37fcbf859f6f9.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/ba6f5fe78931fee2.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[2846,[],\"\"]\n4:I[4707,[],\"\"]\n5:I[6423,[],\"\"]\nb:I[1060,[],\"\"]\n6:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n7:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n8:{\"display\":\"inline-block\"}\n9:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nc:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"qWTqRsgVgvrJaCLjUfRzd\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/ba6f5fe78931fee2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-slate-50\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$6\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$7\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$8\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$9\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$La\"],\"globalErrorComponent\":\"$b\",\"missingSlots\":\"$Wc\"}]\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"AI Product Manager\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"AI Product Manager - Autonomous improvement proposals\"}]]\n3:null\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-a3c37fcbf859f6f9.js" defer=""></script><script src="/_next/static/chunks/framework-f66176bb897dc684.js" defer=""></script><script src="/_next/static/chunks/main-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-a3c37fcbf859f6f9.js" defer=""></script><script src="/_next/static/chunks/framework-f66176bb897dc684.js" defer=""></script><script src="/_next/static/chunks/main-6ee938c5db2d5eb4.js" defer=""></script><script src="/_next/static/chunks/pages/_app-72b849fbd24ac258.js" defer=""></script><script src="/_next/static/chunks/pages/_error-7ba65e1336b92748.js" defer=""></script><script src="/_next/static/qWTqRsgVgvrJaCLjUfRzd/_buildManifest.js" defer=""></script><script src="/_next/static/qWTqRsgVgvrJaCLjUfRzd/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"qWTqRsgVgvrJaCLjUfRzd","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"node":{"793b9b6dac26832312ff3491cc002e5864502d02":{"workers":{"app/updates/[id]/page":"4445"},"layer":{"app/updates/[id]/page":"rsc"}}},"edge":{},"encryptionKey":"
|
|
1
|
+
{"node":{"793b9b6dac26832312ff3491cc002e5864502d02":{"workers":{"app/updates/[id]/page":"4445"},"layer":{"app/updates/[id]/page":"rsc"}}},"edge":{},"encryptionKey":"mc65xfYa9yTv1ubWXXYuflhDN0CFILrLTgUtohZ6RVk="}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"last_updated": "2026-02-
|
|
2
|
+
"last_updated": "2026-02-23T18:33:09.360Z",
|
|
3
3
|
"platform": "x",
|
|
4
4
|
"username": "@luisgmey",
|
|
5
5
|
"credentials_valid": true,
|
|
@@ -143,6 +143,30 @@
|
|
|
143
143
|
"tweet_id": null,
|
|
144
144
|
"tweet_url": null,
|
|
145
145
|
"media_paths": null
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"id": "draft-c54d247c",
|
|
149
|
+
"text": "Hot take: indie hackers don't have a shipping problem.\n\nWe have a prioritization problem.\n\nThe backlog is always full. The judgment about what actually matters? That's the broken part.\n\n#buildinpublic",
|
|
150
|
+
"source": "insight",
|
|
151
|
+
"source_ref": null,
|
|
152
|
+
"status": "draft",
|
|
153
|
+
"created_at": "2026-02-23T18:31:22.616Z",
|
|
154
|
+
"published_at": null,
|
|
155
|
+
"tweet_id": null,
|
|
156
|
+
"tweet_url": null,
|
|
157
|
+
"media_paths": null
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"id": "draft-56a9f5f5",
|
|
161
|
+
"text": "The bottleneck isn't your code velocity.\n\nIt's the 2-3 hours every Sunday you spend deciding WHAT to build next.\n\nShip speed is capped by decision speed.\n\nMost builders optimize the wrong constraint.",
|
|
162
|
+
"source": "insight",
|
|
163
|
+
"source_ref": null,
|
|
164
|
+
"status": "draft",
|
|
165
|
+
"created_at": "2026-02-23T18:33:09.360Z",
|
|
166
|
+
"published_at": null,
|
|
167
|
+
"tweet_id": null,
|
|
168
|
+
"tweet_url": null,
|
|
169
|
+
"media_paths": null
|
|
146
170
|
}
|
|
147
171
|
],
|
|
148
172
|
"metrics": {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[594],{703:function(e,t,s){Promise.resolve().then(s.bind(s,1259)),Promise.resolve().then(s.bind(s,2912))},401:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(9205).Z)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},875:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(9205).Z)("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},1671:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(9205).Z)("CircleCheckBig",[["path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14",key:"g774vq"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]])},519:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(9205).Z)("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]])},1723:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(9205).Z)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},8867:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(9205).Z)("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])},2735:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(9205).Z)("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]])},8736:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(9205).Z)("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]])},1817:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(9205).Z)("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]])},3276:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(9205).Z)("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]])},6076:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(9205).Z)("Rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]])},4743:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(9205).Z)("Send",[["path",{d:"m22 2-7 20-4-9-9-4Z",key:"1q3vgg"}],["path",{d:"M22 2 11 13",key:"nzbqef"}]])},4286:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(9205).Z)("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},933:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(9205).Z)("SquareCheckBig",[["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}],["path",{d:"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11",key:"1jnkn4"}]])},1239:function(e,t,s){"use strict";s.d(t,{Z:function(){return a}});let a=(0,s(9205).Z)("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]])},1259:function(e,t,s){"use strict";s.d(t,{default:function(){return f}});var a=s(7437),r=s(7648),l=s(9376),n=s(5466),i=s(2048),c=s(8896),d=s(8220),o=s(2718),m=s(5621),x=s(8728),h=s(2222),u=s(2023),p=s(1994),g=s(257);let b=[{href:"/",label:"Dashboard",icon:(0,a.jsx)(n.Z,{className:"w-5 h-5"})},{href:"/roadmap",label:"Roadmap",icon:(0,a.jsx)(i.Z,{className:"w-5 h-5"})},{href:"/goals",label:"Goals",icon:(0,a.jsx)(c.Z,{className:"w-5 h-5"})},{href:"/hypotheses",label:"Hypotheses",icon:(0,a.jsx)(d.Z,{className:"w-5 h-5"})},{href:"/social",label:"Social",icon:(0,a.jsx)(o.Z,{className:"w-5 h-5"})},{href:"/sessions",label:"Sessions",icon:(0,a.jsx)(m.Z,{className:"w-5 h-5"})},{href:"/settings",label:"Settings",icon:(0,a.jsx)(x.Z,{className:"w-5 h-5"})}];function f(e){let{children:t}=e,s=(0,l.usePathname)();return(0,a.jsxs)("div",{className:"min-h-screen flex",children:[(0,a.jsxs)("aside",{className:"w-64 bg-slate-900 text-white flex flex-col",children:[(0,a.jsx)("div",{className:"p-4 border-b border-slate-700",children:(0,a.jsxs)(r.default,{href:"/",className:"flex items-center gap-2",children:[(0,a.jsx)("div",{className:"w-10 h-10 bg-emerald-500 rounded-lg flex items-center justify-center",children:(0,a.jsx)(h.Z,{className:"w-6 h-6 text-white"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"font-bold text-lg leading-tight",children:"Analyst"}),(0,a.jsx)("p",{className:"text-xs text-slate-400",children:g.env.NEXT_PUBLIC_PRODUCT_NAME||"Business"})]})]})}),(0,a.jsx)("nav",{className:"flex-1 p-4",children:(0,a.jsx)("ul",{className:"space-y-1",children:b.map(e=>{let t="/"===e.href?"/"===s:s.startsWith(e.href);return(0,a.jsx)("li",{children:(0,a.jsxs)(r.default,{href:e.href,className:(0,p.Z)("flex items-center gap-3 px-3 py-2 rounded-lg transition-colors",t?"bg-slate-800 text-white":"text-slate-400 hover:text-white hover:bg-slate-800"),children:[e.icon,(0,a.jsx)("span",{children:e.label})]})},e.href)})})}),(0,a.jsx)("div",{className:"p-4 border-t border-slate-700",children:(0,a.jsxs)("div",{className:"flex items-center gap-2 text-xs text-slate-500",children:[(0,a.jsx)(u.Z,{className:"w-4 h-4"}),(0,a.jsx)("span",{children:"Powered by Claude"})]})})]}),(0,a.jsx)("main",{className:"flex-1 overflow-auto",children:t})]})}},2912:function(e,t,s){"use strict";s.d(t,{default:function(){return ed}});var a=s(7437),r=s(7648),l=s(2265),n=s(519),i=s(1817),c=s(2934),d=s(9205);let o=(0,d.Z)("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]),m=(0,d.Z)("ListChecks",[["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}],["path",{d:"M13 6h8",key:"15sg57"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 18h8",key:"oe0vm4"}]]);var x=s(6865),h=s(875);let u=(0,d.Z)("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);var p=s(1723);let g=(0,d.Z)("FileCode",[["path",{d:"M10 12.5 8 15l2 2.5",key:"1tg20x"}],["path",{d:"m14 12.5 2 2.5-2 2.5",key:"yinavb"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z",key:"1mlx9k"}]]),b=(0,d.Z)("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]),f=(0,d.Z)("CircleHelp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);var j=s(1047),N=s(4286);let v=(0,d.Z)("OctagonAlert",[["polygon",{points:"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2",key:"h1p8hx"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]),y=(0,d.Z)("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var w=s(2735),_=s(2660),k=s(505),Z=s(1239),S=s(525),C=s(8736);let M=(0,d.Z)("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);var q=s(6362),R=s(5846),P=s(8896),I=s(933),z=s(1994),T=s(6153),A=s(9376),D=s(1671);let F=(0,d.Z)("Pause",[["rect",{x:"14",y:"4",width:"4",height:"16",rx:"1",key:"zuxfzm"}],["rect",{x:"6",y:"4",width:"4",height:"16",rx:"1",key:"1okwgv"}]]);var E=s(3276);let H=(0,d.Z)("TestTube",[["path",{d:"M14.5 2v17.5c0 1.4-1.1 2.5-2.5 2.5c-1.4 0-2.5-1.1-2.5-2.5V2",key:"125lnx"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M14.5 16h-5",key:"1ox875"}]]),L=(0,d.Z)("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);var V=s(6076);let O={primary:"btn-primary",secondary:"btn-secondary",danger:"btn-danger",warning:"bg-amber-500 text-white hover:bg-amber-600 focus:ring-amber-500"};function U(e){let{ideaId:t,currentStage:s}=e,r=(0,A.useRouter)(),[n,c]=(0,l.useState)(!1),[d,m]=(0,l.useState)(null),[x,h]=(0,l.useState)(null),[u,g]=(0,l.useState)(""),b=function(e){switch(e){case"inbox":return[{toStage:"under_review",label:"Start Review",icon:(0,a.jsx)(p.Z,{className:"w-4 h-4"}),variant:"primary"},{toStage:"rejected",label:"Reject",icon:(0,a.jsx)(o,{className:"w-4 h-4"}),variant:"danger",requiresComment:!0}];case"under_review":return[{toStage:"approved",label:"Approve",icon:(0,a.jsx)(D.Z,{className:"w-4 h-4"}),variant:"primary"},{toStage:"deferred",label:"Defer",icon:(0,a.jsx)(F,{className:"w-4 h-4"}),variant:"warning",requiresComment:!0},{toStage:"rejected",label:"Reject",icon:(0,a.jsx)(o,{className:"w-4 h-4"}),variant:"danger",requiresComment:!0}];case"approved":return[{toStage:"in_progress",label:"Start Implementation",icon:(0,a.jsx)(E.Z,{className:"w-4 h-4"}),variant:"primary",triggerImplementation:!0},{toStage:"deferred",label:"Defer",icon:(0,a.jsx)(F,{className:"w-4 h-4"}),variant:"warning",requiresComment:!0}];case"in_progress":return[{toStage:"testing",label:"Move to Testing",icon:(0,a.jsx)(H,{className:"w-4 h-4"}),variant:"primary"},{toStage:"approved",label:"Back to Approved",icon:(0,a.jsx)(L,{className:"w-4 h-4"}),variant:"secondary"}];case"testing":return[{toStage:"shipped",label:"Ship It!",icon:(0,a.jsx)(V.Z,{className:"w-4 h-4"}),variant:"primary"},{toStage:"in_progress",label:"Back to In Progress",icon:(0,a.jsx)(L,{className:"w-4 h-4"}),variant:"secondary"}];case"shipped":return[{toStage:"rolled_back",label:"Roll Back",icon:(0,a.jsx)(L,{className:"w-4 h-4"}),variant:"danger",requiresComment:!0}];case"deferred":return[{toStage:"under_review",label:"Reopen Review",icon:(0,a.jsx)(p.Z,{className:"w-4 h-4"}),variant:"primary"},{toStage:"rejected",label:"Reject",icon:(0,a.jsx)(o,{className:"w-4 h-4"}),variant:"danger",requiresComment:!0}];case"rejected":case"rolled_back":return[{toStage:"inbox",label:"Reopen",icon:(0,a.jsx)(L,{className:"w-4 h-4"}),variant:"secondary"}];default:return[]}}(s),f=async(e,s)=>{c(!0),m(e);try{(await fetch("/api/ideas/".concat(t,"/transition"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({to_stage:e,comment:s})})).ok&&r.refresh()}catch(e){console.error("Failed to transition stage:",e)}finally{c(!1),m(null),h(null),g("")}},j=async()=>{c(!0),m("in_progress");try{let e=await fetch("/api/ideas/".concat(t,"/implement"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})}),s=await e.json();s.success?r.refresh():(console.error("Failed to start implementation:",s.error),alert(s.error||"Failed to start implementation"))}catch(e){console.error("Failed to start implementation:",e),alert("Failed to start implementation")}finally{c(!1),m(null)}},N=e=>{e.triggerImplementation?j():e.requiresComment?h(e):f(e.toStage)};return 0===b.length?null:(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"text-sm text-slate-500",children:["Current stage: ",(0,a.jsx)("span",{className:"font-medium text-slate-700",children:T.yb[s]})]}),(0,a.jsx)("div",{className:"flex flex-wrap gap-2",children:b.map(e=>(0,a.jsxs)("button",{onClick:()=>N(e),disabled:n,className:(0,z.Z)("btn gap-2",O[e.variant],n&&"opacity-75"),children:[d===e.toStage?(0,a.jsx)(i.Z,{className:"w-4 h-4 animate-spin"}):e.icon,(0,a.jsx)("span",{children:e.label})]},e.toStage))}),x&&(0,a.jsx)("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50",children:(0,a.jsxs)("div",{className:"bg-white rounded-lg shadow-xl p-6 w-full max-w-md animate-slide-in",children:[(0,a.jsx)("h3",{className:"text-lg font-semibold text-slate-900 mb-2",children:x.label}),(0,a.jsx)("p",{className:"text-sm text-slate-500 mb-4",children:"Please provide a reason for this action."}),(0,a.jsx)("textarea",{value:u,onChange:e=>g(e.target.value),placeholder:"Enter your comment...",className:"textarea h-24 mb-4",autoFocus:!0}),(0,a.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,a.jsx)("button",{onClick:()=>{h(null),g("")},className:"btn btn-secondary",disabled:n,children:"Cancel"}),(0,a.jsxs)("button",{onClick:()=>f(x.toStage,u),disabled:n||!u.trim(),className:(0,z.Z)("btn gap-2",O[x.variant]),children:[n?(0,a.jsx)(i.Z,{className:"w-4 h-4 animate-spin"}):x.icon,(0,a.jsx)("span",{children:"Confirm"})]})]})]})})]})}var B=s(2222);let G=(0,d.Z)("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);var W=s(4743);function X(e){let{ideaId:t,comments:s}=e,r=(0,A.useRouter)(),[n,c]=(0,l.useState)(""),[d,o]=(0,l.useState)(!1),m=async e=>{if(e.preventDefault(),n.trim()&&!d){o(!0);try{(await fetch("/api/ideas/".concat(t,"/comments"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({author:"human",author_name:"Founder",content:n.trim()})})).ok&&(c(""),r.refresh())}catch(e){console.error("Failed to add comment:",e)}finally{o(!1)}}};return(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h3",{className:"font-semibold text-slate-900",children:"Discussion"}),(0,a.jsx)("div",{className:"space-y-3",children:0===s.length?(0,a.jsx)("p",{className:"text-sm text-slate-400 italic",children:"No comments yet"}):s.map(e=>(0,a.jsxs)("div",{className:(0,z.Z)("comment-bubble",e.author),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:["ai"===e.author?(0,a.jsx)("div",{className:"w-6 h-6 bg-emerald-100 rounded-full flex items-center justify-center",children:(0,a.jsx)(B.Z,{className:"w-3.5 h-3.5 text-emerald-600"})}):(0,a.jsx)("div",{className:"w-6 h-6 bg-blue-100 rounded-full flex items-center justify-center",children:(0,a.jsx)(G,{className:"w-3.5 h-3.5 text-blue-600"})}),(0,a.jsx)("span",{className:"text-sm font-medium text-slate-700",children:e.author_name}),(0,a.jsx)("span",{className:"text-xs text-slate-400",children:new Date(e.created_at).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})})]}),(0,a.jsx)("p",{className:"text-sm text-slate-600 whitespace-pre-wrap",children:e.content})]},e.id))}),(0,a.jsxs)("form",{onSubmit:m,className:"flex gap-2",children:[(0,a.jsx)("input",{type:"text",value:n,onChange:e=>c(e.target.value),placeholder:"Add a comment...",className:"input flex-1",disabled:d}),(0,a.jsx)("button",{type:"submit",disabled:!n.trim()||d,className:"btn btn-primary",children:d?(0,a.jsx)(i.Z,{className:"w-4 h-4 animate-spin"}):(0,a.jsx)(W.Z,{className:"w-4 h-4"})})]})]})}var J=s(7168),K=s(401),Q=s(8867);let $={cloning:{label:"Cloning repository...",color:"text-blue-600"},branching:{label:"Creating branch...",color:"text-blue-600"},decomposing:{label:"Decomposing into sub-tasks...",color:"text-amber-600"},implementing:{label:"Implementing changes...",color:"text-violet-600"},testing:{label:"Running tests...",color:"text-cyan-600"},creating_pr:{label:"Creating PR...",color:"text-cyan-600"},completed:{label:"Completed",color:"text-emerald-600"},failed:{label:"Failed",color:"text-red-600"}};function Y(e){let{ideaId:t,onComplete:s}=e,[r,n]=(0,l.useState)(null),[c,d]=(0,l.useState)(!0),[m,x]=(0,l.useState)(!1),[h,u]=(0,l.useState)(!1),p=async()=>{try{let e=await fetch("/api/ideas/".concat(t,"/implement")),a=await e.json();a.success&&a.data?(n(a.data),("completed"===a.data.status||"failed"===a.data.status)&&(null==s||s())):n(null)}catch(e){console.error("Failed to fetch implementation status:",e)}finally{d(!1)}};if((0,l.useEffect)(()=>{p();let e=setInterval(()=>{r&&"completed"!==r.status&&"failed"!==r.status&&p()},3e3);return()=>clearInterval(e)},[t]),(0,l.useEffect)(()=>{if(r&&("completed"===r.status||"failed"===r.status))return;let e=setInterval(p,3e3);return()=>clearInterval(e)},[null==r?void 0:r.status]),c)return(0,a.jsxs)("div",{className:"flex items-center gap-2 text-slate-500",children:[(0,a.jsx)(i.Z,{className:"w-4 h-4 animate-spin"}),(0,a.jsx)("span",{className:"text-sm",children:"Loading..."})]});if(!r)return null;let g=$[r.status]||{label:r.status,color:"text-slate-600"},f=!["completed","failed"].includes(r.status);return(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("h3",{className:"font-semibold text-slate-900 flex items-center gap-2",children:[(0,a.jsx)(b,{className:"w-4 h-4"}),"Implementation Progress"]}),(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[f?(0,a.jsx)(i.Z,{className:(0,z.Z)("w-5 h-5 animate-spin",g.color)}):"completed"===r.status?(0,a.jsx)(D.Z,{className:"w-5 h-5 text-emerald-600"}):(0,a.jsx)(o,{className:"w-5 h-5 text-red-600"}),(0,a.jsx)("span",{className:(0,z.Z)("font-medium",g.color),children:g.label}),f&&(0,a.jsx)("button",{onClick:p,className:"p-1 text-slate-400 hover:text-slate-600",title:"Refresh",children:(0,a.jsx)(J.Z,{className:"w-4 h-4"})})]}),(0,a.jsxs)("div",{className:"p-3 bg-slate-50 rounded-lg border border-slate-200",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,a.jsx)(M,{className:"w-4 h-4 text-slate-500"}),(0,a.jsx)("code",{className:"flex-1 bg-slate-200 px-2 py-0.5 rounded font-mono text-xs",children:r.branch_name}),(0,a.jsx)("button",{onClick:()=>{(null==r?void 0:r.branch_name)&&(navigator.clipboard.writeText(r.branch_name),u(!0),setTimeout(()=>u(!1),2e3))},className:"p-1 text-slate-400 hover:text-slate-600",title:"Copy branch name",children:h?(0,a.jsx)(K.Z,{className:"w-4 h-4 text-emerald-600"}):(0,a.jsx)(Q.Z,{className:"w-4 h-4"})})]}),(0,a.jsxs)("div",{className:"mt-2 text-xs text-slate-500",children:["Repo: ",r.repo_name," • Workspace: ",r.workspace_path]}),r.pr_url&&(0,a.jsxs)("a",{href:r.pr_url,target:"_blank",rel:"noopener noreferrer",className:"mt-2 flex items-center gap-1 text-sm text-blue-600 hover:underline",children:[(0,a.jsx)("span",{children:"View Pull Request"}),(0,a.jsx)(q.Z,{className:"w-3 h-3"})]})]}),r.error_message&&(0,a.jsx)("div",{className:"p-3 bg-red-50 border border-red-200 rounded-lg text-sm text-red-700",children:r.error_message}),(0,a.jsxs)("div",{children:[(0,a.jsxs)("button",{onClick:()=>x(!m),className:"text-sm text-slate-500 hover:text-slate-700",children:[m?"Hide":"Show"," logs (",r.logs.length,")"]}),m&&(0,a.jsx)("div",{className:"mt-2 p-3 bg-slate-900 rounded-lg max-h-64 overflow-y-auto",children:(0,a.jsx)("pre",{className:"text-xs text-slate-300 font-mono whitespace-pre-wrap",children:r.logs.join("\n")})})]})]})}function ee(e){return new Date(e).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"2-digit"})}function et(e){let{title:t,icon:s,children:r}=e;return(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsxs)("h3",{className:"flex items-center gap-2 font-semibold text-slate-900",children:[s,(0,a.jsx)("span",{children:t})]}),(0,a.jsx)("div",{className:"text-sm text-slate-600",children:r})]})}function es(e){let{status:t}=e;switch(t){case"pending":return(0,a.jsx)(n.Z,{className:"w-4 h-4 text-slate-400"});case"in_progress":return(0,a.jsx)(i.Z,{className:"w-4 h-4 text-violet-500 animate-spin"});case"completed":return(0,a.jsx)(c.Z,{className:"w-4 h-4 text-emerald-500"});case"failed":return(0,a.jsx)(o,{className:"w-4 h-4 text-red-500"})}}function ea(e){return e?new Date(e).toLocaleString("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}):""}function er(e){let{failureType:t}=e;if(!t)return null;let s={timeout:{text:"timeout",className:"bg-orange-100 text-orange-700"},error:{text:"error",className:"bg-red-100 text-red-700"},tests_failed:{text:"tests failed",className:"bg-amber-100 text-amber-700"}}[t];return(0,a.jsx)("span",{className:(0,z.Z)("text-xs px-1.5 py-0.5 rounded font-medium",s.className),children:s.text})}function el(e){let{subTasks:t}=e,[s,r]=(0,l.useState)(null);if(0===t.length)return null;let n=t.filter(e=>"completed"===e.status).length,i=t.filter(e=>"failed"===e.status).length,c=Math.round(n/t.length*100);return(0,a.jsx)("div",{className:"bg-white rounded-lg shadow-sm border border-slate-200 p-6",children:(0,a.jsxs)(et,{title:"Sub-Tasks",icon:(0,a.jsx)(m,{className:"w-4 h-4 text-violet-500"}),children:[(0,a.jsxs)("div",{className:"mb-4",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between text-xs mb-1",children:[(0,a.jsxs)("span",{className:"text-slate-500",children:[n,"/",t.length," done",i>0&&(0,a.jsxs)("span",{className:"text-red-500 ml-1",children:["(",i," failed)"]})]}),(0,a.jsxs)("span",{className:"text-slate-500",children:[c,"%"]})]}),(0,a.jsx)("div",{className:"w-full bg-slate-200 rounded-full h-2",children:(0,a.jsx)("div",{className:(0,z.Z)("h-2 rounded-full transition-all",i>0?"bg-red-500":"bg-emerald-500"),style:{width:"".concat(c,"%")}})})]}),(0,a.jsx)("ul",{className:"space-y-2",children:t.map(e=>{let t=s===e.id;return(0,a.jsxs)("li",{className:"border border-slate-100 rounded-lg",children:[(0,a.jsxs)("button",{onClick:()=>r(t?null:e.id),className:"w-full flex items-center gap-2 p-2 text-left hover:bg-slate-50 rounded-lg",children:[(0,a.jsx)(es,{status:e.status}),(0,a.jsx)("span",{className:(0,z.Z)("flex-1 text-sm","completed"===e.status&&"line-through text-slate-400","failed"===e.status&&"text-red-600"),children:e.title}),"failed"===e.status&&e.failure_type&&(0,a.jsx)(er,{failureType:e.failure_type}),e.has_uncommitted_changes&&(0,a.jsx)("span",{title:"Uncommitted changes in workspace",children:(0,a.jsx)(x.Z,{className:"w-3.5 h-3.5 text-amber-500"})}),t?(0,a.jsx)(h.Z,{className:"w-3 h-3 text-slate-400"}):(0,a.jsx)(u,{className:"w-3 h-3 text-slate-400"})]}),t&&(0,a.jsxs)("div",{className:"px-8 pb-3 space-y-3",children:[(0,a.jsx)("p",{className:"text-xs text-slate-600 whitespace-pre-wrap",children:e.description}),(e.duration_ms||e.lines_added||e.lines_removed)&&(0,a.jsxs)("div",{className:"flex flex-wrap gap-3 text-xs text-slate-500",children:[e.duration_ms&&(0,a.jsxs)("span",{className:"flex items-center gap-1",children:[(0,a.jsx)(p.Z,{className:"w-3 h-3"}),function(e){if(!e)return"";let t=Math.floor(e/1e3),s=Math.floor(t/60),a=Math.floor(s/60);return a>0?"".concat(a,"h ").concat(s%60,"m"):s>0?"".concat(s,"m ").concat(t%60,"s"):"".concat(t,"s")}(e.duration_ms)]}),(e.lines_added||e.lines_removed)&&(0,a.jsxs)("span",{className:"flex items-center gap-1 font-mono",children:[(0,a.jsx)(g,{className:"w-3 h-3"}),(0,a.jsxs)("span",{className:"text-emerald-600",children:["+",e.lines_added||0]}),(0,a.jsxs)("span",{className:"text-red-600",children:["-",e.lines_removed||0]})]})]}),e.files_changed&&e.files_changed.length>0&&(0,a.jsxs)("div",{children:[(0,a.jsxs)("span",{className:"text-xs font-medium text-emerald-600 flex items-center gap-1",children:[(0,a.jsx)(g,{className:"w-3 h-3"}),"Files Changed:"]}),(0,a.jsx)("ul",{className:"mt-1",children:e.files_changed.map(e=>(0,a.jsx)("li",{className:"text-xs text-slate-600 font-mono",children:e},e))})]}),e.files_to_modify.length>0&&(0,a.jsxs)("div",{children:[(0,a.jsx)("span",{className:"text-xs font-medium text-slate-500",children:"Planned Files:"}),(0,a.jsx)("ul",{className:"mt-1",children:e.files_to_modify.map(e=>(0,a.jsx)("li",{className:"text-xs text-slate-400 font-mono",children:e},e))})]}),e.error_message&&(0,a.jsx)("div",{className:"p-2 bg-red-50 border border-red-200 rounded text-xs text-red-700 whitespace-pre-wrap",children:e.error_message}),e.output_snippet&&(0,a.jsxs)("details",{className:"group",children:[(0,a.jsxs)("summary",{className:"text-xs font-medium text-slate-500 cursor-pointer flex items-center gap-1",children:[(0,a.jsx)(b,{className:"w-3 h-3"}),"Output",(0,a.jsx)(u,{className:"w-3 h-3 group-open:rotate-90 transition-transform"})]}),(0,a.jsx)("pre",{className:"mt-1 p-2 bg-slate-50 border border-slate-200 rounded text-xs text-slate-600 overflow-x-auto max-h-48 overflow-y-auto whitespace-pre-wrap",children:e.output_snippet})]}),e.has_uncommitted_changes&&(0,a.jsxs)("div",{className:"flex items-center gap-2 p-2 bg-amber-50 border border-amber-200 rounded text-xs text-amber-700",children:[(0,a.jsx)(x.Z,{className:"w-3.5 h-3.5"}),"Uncommitted changes in workspace"]}),e.commit_hash&&(0,a.jsxs)("div",{className:"text-xs text-slate-400",children:["Commit: ",(0,a.jsx)("code",{className:"bg-slate-100 px-1 rounded",children:e.commit_hash.slice(0,8)})]}),(e.started_at||e.completed_at)&&(0,a.jsxs)("div",{className:"text-xs text-slate-400",children:[e.started_at&&(0,a.jsxs)("span",{children:["Started: ",ea(e.started_at)]}),e.completed_at&&(0,a.jsxs)("span",{className:"ml-3",children:["Finished: ",ea(e.completed_at)]})]})]})]},e.id)})})]})})}function en(e){let{status:t}=e;switch(t){case"met":return(0,a.jsx)(c.Z,{className:"w-4 h-4 text-emerald-500"});case"partially_met":return(0,a.jsx)(x.Z,{className:"w-4 h-4 text-amber-500"});case"not_met":return(0,a.jsx)(o,{className:"w-4 h-4 text-red-500"});case"no_data":return(0,a.jsx)(f,{className:"w-4 h-4 text-slate-400"});default:return(0,a.jsx)(j.Z,{className:"w-4 h-4 text-slate-400"})}}function ei(e){let{verification:t}=e;return(0,a.jsx)("div",{className:"bg-white rounded-lg shadow-sm border border-slate-200 p-6",children:(0,a.jsxs)(et,{title:"Post-Ship Verification",icon:(0,a.jsx)(N.Z,{className:"w-4 h-4 text-emerald-500"}),children:[(0,a.jsxs)("div",{className:"flex items-center gap-3 mb-3",children:[(0,a.jsx)("span",{className:(0,z.Z)("text-xs font-medium px-2 py-1 rounded",T.aR[t.status]),children:T.Wb[t.status]}),t.confidence&&(0,a.jsxs)("span",{className:"text-xs text-slate-500",children:["Confidence: ",t.confidence]})]}),t.summary&&(0,a.jsx)("p",{className:"text-sm text-slate-700 mb-4",children:t.summary}),t.requires_human_review&&(0,a.jsxs)("div",{className:"flex items-center gap-2 p-2 mb-4 bg-amber-50 border border-amber-200 rounded text-xs text-amber-700",children:[(0,a.jsx)(v,{className:"w-3.5 h-3.5 flex-shrink-0"}),(0,a.jsxs)("span",{children:["Requires human review: ",t.human_review_reason||"Review needed"]})]}),t.metric_evaluations.length>0&&(0,a.jsxs)("div",{className:"space-y-2 mb-4",children:[(0,a.jsx)("span",{className:"text-xs font-medium text-slate-500 uppercase",children:"Metric Results"}),(0,a.jsx)("ul",{className:"space-y-1.5",children:t.metric_evaluations.map((e,t)=>(0,a.jsxs)("li",{className:"flex items-start gap-2",children:[(0,a.jsx)(en,{status:e.status}),(0,a.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,a.jsx)("p",{className:"text-xs text-slate-700",children:e.metric}),(0,a.jsx)("p",{className:"text-xs text-slate-500 mt-0.5",children:e.evidence})]})]},t))})]}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-4 text-xs text-slate-400 pt-3 border-t border-slate-100",children:[t.first_evaluated_at&&(0,a.jsxs)("span",{children:["First evaluated: ",ee(t.first_evaluated_at)]}),t.evaluation_count>0&&(0,a.jsxs)("span",{children:["Evaluations: ",t.evaluation_count]}),t.next_evaluation_after&&(0,a.jsxs)("span",{children:["Next check: ",new Date(t.next_evaluation_after).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})]})]}),t.follow_up_idea_ids.length>0&&(0,a.jsxs)("div",{className:"mt-3 pt-3 border-t border-slate-100",children:[(0,a.jsx)("span",{className:"text-xs font-medium text-slate-500",children:"Follow-up ideas:"}),(0,a.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1",children:t.follow_up_idea_ids.map(e=>(0,a.jsx)(r.default,{href:"/ideas/".concat(e),className:"text-xs text-blue-600 hover:underline bg-blue-50 px-1.5 py-0.5 rounded",children:e},e))})]})]})})}function ec(e){let{ideaId:t}=e,[s,r]=(0,l.useState)(!1),n="/api/ideas/".concat(t,"/card");return((0,l.useEffect)(()=>{fetch(n,{method:"HEAD"}).then(e=>{e.ok&&r(!0)}).catch(()=>{})},[n]),s)?(0,a.jsx)("div",{className:"bg-white rounded-lg shadow-sm border border-slate-200 p-6",children:(0,a.jsx)(et,{title:"Ship Card",icon:(0,a.jsx)(y,{className:"w-4 h-4 text-violet-500"}),children:(0,a.jsxs)("div",{className:"mt-2",children:[(0,a.jsx)("img",{src:n,alt:"Ship announcement card",className:"w-full rounded-lg border border-slate-200"}),(0,a.jsxs)("a",{href:n,download:"".concat(t,"-card.png"),className:"inline-flex items-center gap-1.5 mt-3 text-xs text-slate-500 hover:text-slate-700",children:[(0,a.jsx)(w.Z,{className:"w-3.5 h-3.5"}),"Download PNG"]})]})})}):null}function ed(e){let{idea:t,linkedGoal:s}=e;return(0,a.jsxs)("div",{className:"max-w-4xl mx-auto p-6",children:[(0,a.jsxs)(r.default,{href:"/",className:"inline-flex items-center gap-2 text-sm text-slate-500 hover:text-slate-700 mb-6",children:[(0,a.jsx)(_.Z,{className:"w-4 h-4"}),(0,a.jsx)("span",{children:"Back to Dashboard"})]}),(0,a.jsxs)("div",{className:"bg-white rounded-lg shadow-sm border border-slate-200 p-6 mb-6",children:[(0,a.jsx)("div",{className:"flex items-start justify-between mb-4",children:(0,a.jsxs)("div",{className:"flex-1",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2 mb-3",children:[(0,a.jsx)("span",{className:(0,z.Z)("priority-badge",T.Gs[t.priority]),children:T.rF[t.priority]}),(0,a.jsx)("span",{className:(0,z.Z)("category-badge",T.pG[t.category]),children:T.Hs[t.category]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)("div",{className:(0,z.Z)("stage-indicator",T.lv[t.stage])}),(0,a.jsx)("span",{className:"text-xs text-slate-500",children:T.yb[t.stage]})]})]}),(0,a.jsx)("h1",{className:"text-2xl font-bold text-slate-900 mb-2",children:t.title}),(0,a.jsx)("p",{className:"text-slate-600",children:t.summary})]})}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-6 text-sm text-slate-500 pt-4 border-t border-slate-100",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(k.Z,{className:"w-4 h-4"}),(0,a.jsxs)("span",{children:["Created ",ee(t.created_at)]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(Z.Z,{className:"w-4 h-4"}),(0,a.jsxs)("span",{children:["Effort: ",T.bi[t.effort]]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(S.Z,{className:"w-4 h-4"}),(0,a.jsxs)("span",{children:["Impact: ",T.bi[t.impact]]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(C.Z,{className:"w-4 h-4"}),(0,a.jsxs)("span",{children:["Source: ",T.Vr[t.source.type]]})]})]}),t.tags.length>0&&(0,a.jsx)("div",{className:"flex flex-wrap gap-2 mt-4",children:t.tags.map(e=>(0,a.jsx)("span",{className:"px-2 py-1 bg-slate-100 text-slate-600 text-xs rounded",children:e},e))}),t.implementation.branch_name&&(0,a.jsx)("div",{className:"mt-4 p-3 bg-slate-50 rounded-lg border border-slate-200",children:(0,a.jsxs)("div",{className:"flex items-center gap-4 text-sm",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 text-slate-600",children:[(0,a.jsx)(M,{className:"w-4 h-4"}),(0,a.jsx)("code",{className:"bg-slate-200 px-2 py-0.5 rounded",children:t.implementation.branch_name})]}),t.implementation.pr_url&&(0,a.jsxs)("a",{href:t.implementation.pr_url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-blue-600 hover:underline",children:[(0,a.jsx)("span",{children:"View PR"}),(0,a.jsx)(q.Z,{className:"w-3 h-3"})]})]})})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[(0,a.jsxs)("div",{className:"lg:col-span-2 space-y-6",children:[(0,a.jsx)("div",{className:"bg-white rounded-lg shadow-sm border border-slate-200 p-6",children:(0,a.jsx)(et,{title:"Context",icon:(0,a.jsx)(R.Z,{className:"w-4 h-4 text-amber-500"}),children:(0,a.jsx)("p",{className:"whitespace-pre-wrap",children:t.context})})}),(0,a.jsx)("div",{className:"bg-white rounded-lg shadow-sm border border-slate-200 p-6",children:(0,a.jsx)(et,{title:"Rationale",icon:(0,a.jsx)(P.Z,{className:"w-4 h-4 text-blue-500"}),children:(0,a.jsx)("p",{className:"whitespace-pre-wrap",children:t.rationale})})}),(0,a.jsx)("div",{className:"bg-white rounded-lg shadow-sm border border-slate-200 p-6",children:(0,a.jsx)(et,{title:"Implementation Plan",icon:(0,a.jsx)(I.Z,{className:"w-4 h-4 text-emerald-500"}),children:(0,a.jsx)("div",{className:"whitespace-pre-wrap",children:t.implementation_plan})})}),t.implementation.sub_tasks&&t.implementation.sub_tasks.length>0&&(0,a.jsx)(el,{subTasks:t.implementation.sub_tasks}),"shipped"===t.stage&&t.verification&&(0,a.jsx)(ei,{verification:t.verification}),"shipped"===t.stage&&(0,a.jsx)(ec,{ideaId:t.id}),(0,a.jsx)("div",{className:"bg-white rounded-lg shadow-sm border border-slate-200 p-6",children:(0,a.jsx)(et,{title:"Success Metrics",icon:(0,a.jsx)(S.Z,{className:"w-4 h-4 text-violet-500"}),children:(0,a.jsx)("ul",{className:"list-disc list-inside space-y-1",children:t.success_metrics.map((e,t)=>(0,a.jsx)("li",{children:e},t))})})})]}),(0,a.jsxs)("div",{className:"space-y-6",children:[(s||t.expected_impact)&&(0,a.jsxs)("div",{className:"bg-white rounded-lg shadow-sm border border-slate-200 p-6",children:[(0,a.jsxs)("h3",{className:"flex items-center gap-2 font-semibold text-slate-900 mb-3",children:[(0,a.jsx)(P.Z,{className:"w-4 h-4 text-emerald-500"}),(0,a.jsx)("span",{children:"Goal Alignment"})]}),s?(0,a.jsxs)(r.default,{href:"/goals/".concat(s.id),className:"block p-3 bg-emerald-50 border border-emerald-200 rounded-lg hover:border-emerald-300 transition-colors",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,a.jsx)("span",{className:"text-sm font-medium text-emerald-800",children:s.title}),(0,a.jsx)(q.Z,{className:"w-3 h-3 text-emerald-600"})]}),(0,a.jsx)("p",{className:"text-xs text-emerald-600 line-clamp-2",children:s.description})]}):t.goal_id?(0,a.jsxs)("p",{className:"text-sm text-slate-500",children:["Linked to goal: ",(0,a.jsx)("code",{className:"text-xs bg-slate-100 px-1 rounded",children:t.goal_id})]}):null,t.expected_impact&&(0,a.jsxs)("div",{className:"mt-3 pt-3 border-t border-slate-100",children:[(0,a.jsx)("p",{className:"text-xs text-slate-500 uppercase font-medium mb-1",children:"Expected Impact"}),(0,a.jsx)("p",{className:"text-sm text-slate-700",children:t.expected_impact})]})]}),(0,a.jsx)("div",{className:"bg-white rounded-lg shadow-sm border border-slate-200 p-6",children:(0,a.jsx)(U,{ideaId:t.id,currentStage:t.stage})}),["in_progress","testing","shipped","rolled_back"].includes(t.stage)&&(0,a.jsx)("div",{className:"bg-white rounded-lg shadow-sm border border-slate-200 p-6",children:(0,a.jsx)(Y,{ideaId:t.id})}),(0,a.jsx)("div",{className:"bg-white rounded-lg shadow-sm border border-slate-200 p-6",children:(0,a.jsx)(X,{ideaId:t.id,comments:t.comments})}),t.source.files_analyzed&&t.source.files_analyzed.length>0&&(0,a.jsxs)("div",{className:"bg-white rounded-lg shadow-sm border border-slate-200 p-6",children:[(0,a.jsx)("h3",{className:"font-semibold text-slate-900 mb-3",children:"Files Analyzed"}),(0,a.jsx)("ul",{className:"space-y-1",children:t.source.files_analyzed.map((e,t)=>(0,a.jsx)("li",{className:"text-xs text-slate-500 font-mono truncate",children:e},t))})]})]})]})]})}},6153:function(e,t,s){"use strict";s.d(t,{G:function(){return i},GK:function(){return k},Gs:function(){return o},Hs:function(){return a},PN:function(){return u},PW:function(){return w},Q_:function(){return p},R$:function(){return v},Vr:function(){return m},Wb:function(){return h},aR:function(){return x},bi:function(){return c},en:function(){return N},i2:function(){return j},kT:function(){return g},l5:function(){return b},lE:function(){return y},lv:function(){return n},pG:function(){return r},rF:function(){return d},tV:function(){return f},tl:function(){return _},xP:function(){return Z},yb:function(){return l}});let a={product:"Product",ux_design:"UX/Design",growth:"Growth",performance:"Performance",tech_debt:"Tech Debt",security:"Security",infrastructure:"Infrastructure",content:"Content",analytics:"Analytics",integration:"Integration"},r={product:"bg-blue-100 text-blue-800",ux_design:"bg-purple-100 text-purple-800",growth:"bg-green-100 text-green-800",performance:"bg-orange-100 text-orange-800",tech_debt:"bg-yellow-100 text-yellow-800",security:"bg-red-100 text-red-800",infrastructure:"bg-gray-100 text-gray-800",content:"bg-pink-100 text-pink-800",analytics:"bg-cyan-100 text-cyan-800",integration:"bg-indigo-100 text-indigo-800"},l={inbox:"Inbox",under_review:"Under Review",approved:"Approved",in_progress:"In Progress",testing:"Testing",shipped:"Shipped",deferred:"Deferred",rejected:"Rejected",rolled_back:"Rolled Back"},n={inbox:"bg-amber-500",under_review:"bg-blue-500",approved:"bg-emerald-500",in_progress:"bg-violet-500",testing:"bg-cyan-500",shipped:"bg-green-500",deferred:"bg-gray-500",rejected:"bg-red-500",rolled_back:"bg-orange-500"},i=["inbox","under_review","approved","in_progress","testing","shipped"],c={xs:"XS",s:"S",m:"M",l:"L",xl:"XL"},d={critical:"Critical",high:"High",medium:"Medium",low:"Low"},o={critical:"bg-red-100 text-red-800 border-red-300",high:"bg-orange-100 text-orange-800 border-orange-300",medium:"bg-yellow-100 text-yellow-800 border-yellow-300",low:"bg-gray-100 text-gray-800 border-gray-300"},m={codebase_analysis:"Codebase Analysis",metrics_review:"Metrics Review",market_research:"Market Research",seo_audit:"SEO Audit",manual:"Manual"},x={pending:"bg-slate-100 text-slate-700",validated:"bg-emerald-100 text-emerald-800",needs_investigation:"bg-amber-100 text-amber-800",inconclusive:"bg-slate-100 text-slate-600",invalidated:"bg-red-100 text-red-800"},h={pending:"Pending",validated:"Validated",needs_investigation:"Needs Investigation",inconclusive:"Inconclusive",invalidated:"Invalidated"},u={ship:"Ship",update:"Update",milestone:"Milestone",digest:"Digest",manual:"Manual",thread:"Thread",insight:"Insight"},p={ship:"bg-green-100 text-green-800",update:"bg-blue-100 text-blue-800",milestone:"bg-amber-100 text-amber-800",digest:"bg-purple-100 text-purple-800",manual:"bg-slate-100 text-slate-800",thread:"bg-indigo-100 text-indigo-800",insight:"bg-cyan-100 text-cyan-800"},g={acquisition:"Acquisition",activation:"Activation",retention:"Retention",revenue:"Revenue",referral:"Referral"},b={acquisition:"bg-blue-100 text-blue-800",activation:"bg-emerald-100 text-emerald-800",retention:"bg-purple-100 text-purple-800",revenue:"bg-amber-100 text-amber-800",referral:"bg-pink-100 text-pink-800"},f={on_track:"On Track",at_risk:"At Risk",behind:"Behind",achieved:"Achieved"},j={on_track:"bg-emerald-100 text-emerald-800 border-emerald-300",at_risk:"bg-amber-100 text-amber-800 border-amber-300",behind:"bg-red-100 text-red-800 border-red-300",achieved:"bg-blue-100 text-blue-800 border-blue-300"},N={manual:"Manual",rest_api:"REST API",posthog:"PostHog",firestore:"Firestore",stripe:"Stripe",whatsapp:"WhatsApp"},v={stated:"Stated",testing:"Testing",validated:"Validated",invalidated:"Invalidated",deferred:"Deferred"},y={stated:"bg-slate-100 text-slate-800 border-slate-300",testing:"bg-amber-100 text-amber-800 border-amber-300",validated:"bg-emerald-100 text-emerald-800 border-emerald-300",invalidated:"bg-red-100 text-red-800 border-red-300",deferred:"bg-slate-100 text-slate-500 border-slate-200"},w={acquisition:"Acquisition",engagement:"Engagement",conversion:"Conversion",monetization:"Monetization"},_={acquisition:"bg-blue-100 text-blue-800",engagement:"bg-purple-100 text-purple-800",conversion:"bg-amber-100 text-amber-800",monetization:"bg-emerald-100 text-emerald-800"},k={planned:"Planned",active:"Active",completed:"Completed",paused:"Paused"},Z={planned:"bg-slate-100 text-slate-700 border-slate-300",active:"bg-blue-100 text-blue-800 border-blue-300",completed:"bg-emerald-100 text-emerald-800 border-emerald-300",paused:"bg-amber-100 text-amber-800 border-amber-300"}}},function(e){e.O(0,[972,827,971,117,744],function(){return e(e.s=703)}),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[309],{3358:function(e,t,s){Promise.resolve().then(s.t.bind(s,2972,23)),Promise.resolve().then(s.bind(s,5701)),Promise.resolve().then(s.bind(s,8013)),Promise.resolve().then(s.bind(s,1034)),Promise.resolve().then(s.bind(s,6682))},9205:function(e,t,s){"use strict";s.d(t,{Z:function(){return c}});var l=s(2265);let r=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),a=function(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return t.filter((e,t,s)=>!!e&&s.indexOf(e)===t).join(" ")};var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let i=(0,l.forwardRef)((e,t)=>{let{color:s="currentColor",size:r=24,strokeWidth:i=2,absoluteStrokeWidth:c,className:d="",children:o,iconNode:x,...m}=e;return(0,l.createElement)("svg",{ref:t,...n,width:r,height:r,stroke:s,strokeWidth:c?24*Number(i)/Number(r):i,className:a("lucide",d),...m},[...x.map(e=>{let[t,s]=e;return(0,l.createElement)(t,s)}),...Array.isArray(o)?o:[o]])}),c=(e,t)=>{let s=(0,l.forwardRef)((s,n)=>{let{className:c,...d}=s;return(0,l.createElement)(i,{ref:n,iconNode:t,className:a("lucide-".concat(r(e)),c),...d})});return s.displayName="".concat(e),s}},401:function(e,t,s){"use strict";s.d(t,{Z:function(){return l}});let l=(0,s(9205).Z)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},2934:function(e,t,s){"use strict";s.d(t,{Z:function(){return l}});let l=(0,s(9205).Z)("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},519:function(e,t,s){"use strict";s.d(t,{Z:function(){return l}});let l=(0,s(9205).Z)("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]])},1723:function(e,t,s){"use strict";s.d(t,{Z:function(){return l}});let l=(0,s(9205).Z)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},5846:function(e,t,s){"use strict";s.d(t,{Z:function(){return l}});let l=(0,s(9205).Z)("Lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]])},8896:function(e,t,s){"use strict";s.d(t,{Z:function(){return l}});let l=(0,s(9205).Z)("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]])},525:function(e,t,s){"use strict";s.d(t,{Z:function(){return l}});let l=(0,s(9205).Z)("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]])},1239:function(e,t,s){"use strict";s.d(t,{Z:function(){return l}});let l=(0,s(9205).Z)("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]])},5701:function(e,t,s){"use strict";s.d(t,{default:function(){return i}});var l=s(7437),r=s(8896),a=s(525),n=s(5846);function i(e){let{phase:t,showInvestorView:s=!1}=e,i=s&&t.investor_narrative?t.investor_narrative:t.narrative;return(0,l.jsx)("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-4",children:(0,l.jsxs)("div",{className:"flex items-start gap-3",children:[(0,l.jsx)(r.Z,{className:"w-5 h-5 text-blue-600 mt-0.5 flex-shrink-0"}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("h3",{className:"font-bold text-blue-900 mb-2",children:t.title}),(0,l.jsx)("p",{className:"text-sm text-blue-800 leading-relaxed",children:i}),s&&t.competitive_angle&&(0,l.jsxs)("div",{className:"mt-3 flex items-start gap-2 text-xs text-blue-700",children:[(0,l.jsx)(a.Z,{className:"w-4 h-4 flex-shrink-0 mt-0.5"}),(0,l.jsxs)("p",{children:[(0,l.jsx)("strong",{children:"Competitive Advantage:"})," ",t.competitive_angle]})]}),s&&t.unlocks_next&&(0,l.jsxs)("div",{className:"mt-2 flex items-start gap-2 text-xs text-blue-600",children:[(0,l.jsx)(n.Z,{className:"w-4 h-4 flex-shrink-0 mt-0.5"}),(0,l.jsxs)("p",{children:[(0,l.jsx)("strong",{children:"Unlocks:"})," ",t.unlocks_next]})]})]})]})})}},8013:function(e,t,s){"use strict";s.d(t,{default:function(){return c}});var l=s(7437),r=s(1994),a=s(2934),n=s(519),i=s(1723);function c(e){let{phases:t}=e;return(0,l.jsxs)("div",{className:"relative py-8",children:[(0,l.jsxs)("div",{className:"hidden md:block",children:[(0,l.jsx)("div",{className:"absolute top-12 left-0 right-0 h-0.5 bg-slate-300"}),(0,l.jsx)("div",{className:"flex justify-between relative",children:t.map((e,t)=>(0,l.jsxs)("div",{className:"relative flex flex-col items-center",children:[(0,l.jsx)("div",{className:(0,r.Z)("w-4 h-4 rounded-full z-10 border-2","completed"===e.status?"bg-emerald-500 border-emerald-500":"active"===e.status?"bg-blue-500 border-blue-500":"bg-white border-slate-300"),children:"completed"===e.status&&(0,l.jsx)(a.Z,{className:"w-3 h-3 text-white"})}),(0,l.jsxs)("div",{className:"mt-4 text-center max-w-xs",children:[(0,l.jsx)("p",{className:"font-bold text-slate-900",children:e.title}),(0,l.jsx)("p",{className:"text-sm text-slate-600 mt-0.5",children:e.timeline}),(0,l.jsx)("p",{className:"text-xs text-slate-500 mt-1",children:e.success_metric}),e.confidence&&"completed"!==e.status&&(0,l.jsxs)("span",{className:(0,r.Z)("inline-block mt-2 text-xs px-2 py-1 rounded-full","high"===e.confidence?"bg-emerald-100 text-emerald-700":"medium"===e.confidence?"bg-amber-100 text-amber-700":"bg-slate-100 text-slate-600"),children:[e.confidence," confidence"]})]})]},e.id))})]}),(0,l.jsx)("div",{className:"md:hidden space-y-6",children:t.map((e,s)=>(0,l.jsxs)("div",{className:"flex gap-4",children:[(0,l.jsxs)("div",{className:"flex flex-col items-center",children:[(0,l.jsx)("div",{className:(0,r.Z)("w-8 h-8 rounded-full flex items-center justify-center flex-shrink-0","completed"===e.status?"bg-emerald-500":"active"===e.status?"bg-blue-500":"bg-slate-300"),children:"completed"===e.status?(0,l.jsx)(a.Z,{className:"w-5 h-5 text-white"}):"active"===e.status?(0,l.jsx)(n.Z,{className:"w-5 h-5 text-white fill-current"}):(0,l.jsx)(i.Z,{className:"w-5 h-5 text-white"})}),s<t.length-1&&(0,l.jsx)("div",{className:"w-0.5 h-full bg-slate-300 flex-grow mt-2"})]}),(0,l.jsxs)("div",{className:"flex-1 pb-6",children:[(0,l.jsx)("p",{className:"font-bold text-slate-900",children:e.title}),(0,l.jsx)("p",{className:"text-sm text-slate-600 mt-0.5",children:e.timeline}),(0,l.jsx)("p",{className:"text-xs text-slate-500 mt-1",children:e.success_metric}),e.confidence&&"completed"!==e.status&&(0,l.jsxs)("span",{className:(0,r.Z)("inline-block mt-2 text-xs px-2 py-1 rounded-full","high"===e.confidence?"bg-emerald-100 text-emerald-700":"medium"===e.confidence?"bg-amber-100 text-amber-700":"bg-slate-100 text-slate-600"),children:[e.confidence," confidence"]})]})]},e.id))})]})}},1034:function(e,t,s){"use strict";s.d(t,{default:function(){return d}});var l=s(7437),r=s(1994),a=s(2934),n=s(8896),i=s(525),c=s(1239);function d(e){let{epic:t,showInvestorMetrics:s=!1}=e,d=Math.round(t.progress_pct/100*20),o="━".repeat(d)+"░".repeat(20-d);return(0,l.jsxs)("div",{className:"bg-white border border-slate-200 rounded-lg p-4 hover:border-blue-300 transition-colors",children:[(0,l.jsxs)("div",{className:"flex items-start justify-between gap-4 mb-3",children:[(0,l.jsx)("h4",{className:"font-semibold text-slate-900 flex-1",children:t.title}),(0,l.jsxs)("span",{className:(0,r.Z)("text-xs px-2 py-0.5 rounded-full border flex-shrink-0","completed"===t.status?"bg-emerald-50 text-emerald-700 border-emerald-200":"active"===t.status?"bg-blue-50 text-blue-700 border-blue-200":"bg-slate-50 text-slate-600 border-slate-200"),children:["completed"===t.status&&(0,l.jsx)(a.Z,{className:"w-3 h-3 inline mr-1"}),"completed"===t.status?"Completed":"active"===t.status?"Active":"Planned"]})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2 mb-3",children:[(0,l.jsx)("span",{className:(0,r.Z)("font-mono text-xs tracking-tight","completed"===t.status?"text-emerald-500":"active"===t.status?"text-blue-500":"text-slate-400"),children:o}),(0,l.jsxs)("span",{className:"text-xs text-slate-500",children:[Math.round(t.progress_pct),"%"]})]}),(0,l.jsxs)("div",{className:"flex items-start gap-2 mb-2",children:[(0,l.jsx)(n.Z,{className:"w-4 h-4 text-slate-400 mt-0.5 flex-shrink-0"}),(0,l.jsx)("p",{className:"text-sm text-slate-700",children:t.user_benefit})]}),s&&t.business_impact&&(0,l.jsxs)("div",{className:"flex items-start gap-2 mb-2",children:[(0,l.jsx)(i.Z,{className:"w-4 h-4 text-blue-500 mt-0.5 flex-shrink-0"}),(0,l.jsxs)("p",{className:"text-xs text-blue-700",children:[(0,l.jsx)("strong",{children:"Impact:"})," ",t.business_impact]})]}),s&&t.kpi_target&&(0,l.jsxs)("div",{className:"flex items-start gap-2 mb-2",children:[(0,l.jsx)(n.Z,{className:"w-4 h-4 text-purple-500 mt-0.5 flex-shrink-0"}),(0,l.jsxs)("p",{className:"text-xs text-purple-700",children:[(0,l.jsx)("strong",{children:"Target:"})," ",t.kpi_target]})]}),s&&t.competitive_moat&&(0,l.jsxs)("div",{className:"flex items-start gap-2",children:[(0,l.jsx)(c.Z,{className:"w-4 h-4 text-amber-500 mt-0.5 flex-shrink-0"}),(0,l.jsxs)("p",{className:"text-xs text-amber-700",children:[(0,l.jsx)("strong",{children:"Moat:"})," ",t.competitive_moat]})]})]})}},6682:function(e,t,s){"use strict";s.d(t,{default:function(){return d}});var l=s(7437),r=s(9205);let a=(0,r.Z)("Twitter",[["path",{d:"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z",key:"pff0z6"}]]);var n=s(401);let i=(0,r.Z)("Link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);var c=s(2265);function d(e){let{url:t,text:s}=e,[r,d]=(0,c.useState)(!1),o=t||window.location.href,x=s||"Check out the VibeBusiness public roadmap",m=async()=>{try{await navigator.clipboard.writeText(o),d(!0),setTimeout(()=>d(!1),2e3)}catch(e){console.error("Failed to copy:",e)}};return(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("span",{className:"text-sm font-medium text-slate-600",children:"Share:"}),(0,l.jsxs)("button",{onClick:()=>{let e="https://twitter.com/intent/tweet?text=".concat(encodeURIComponent(x),"&url=").concat(encodeURIComponent(o));window.open(e,"_blank","noopener,noreferrer")},className:"inline-flex items-center gap-2 px-4 py-2 bg-black text-white rounded-lg hover:bg-slate-800 transition-colors text-sm font-medium","aria-label":"Share on X/Twitter",children:[(0,l.jsx)(a,{className:"w-4 h-4"}),(0,l.jsx)("span",{children:"Share on X"})]}),(0,l.jsx)("button",{onClick:m,className:"inline-flex items-center gap-2 px-4 py-2 bg-slate-100 text-slate-700 rounded-lg hover:bg-slate-200 transition-colors text-sm font-medium","aria-label":"Copy link",children:r?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.Z,{className:"w-4 h-4 text-emerald-600"}),(0,l.jsx)("span",{className:"text-emerald-700",children:"Copied!"})]}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(i,{className:"w-4 h-4"}),(0,l.jsx)("span",{children:"Copy Link"})]})})]})}},1994:function(e,t,s){"use strict";t.Z=function(){for(var e,t,s=0,l="",r=arguments.length;s<r;s++)(e=arguments[s])&&(t=function e(t){var s,l,r="";if("string"==typeof t||"number"==typeof t)r+=t;else if("object"==typeof t){if(Array.isArray(t)){var a=t.length;for(s=0;s<a;s++)t[s]&&(l=e(t[s]))&&(r&&(r+=" "),r+=l)}else for(l in t)t[l]&&(r&&(r+=" "),r+=l)}return r}(e))&&(l&&(l+=" "),l+=t);return l}}},function(e){e.O(0,[972,971,117,744],function(){return e(e.s=3358)}),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[826],{928:function(e,t,r){Promise.resolve().then(r.bind(r,1259)),Promise.resolve().then(r.bind(r,6682))},9205:function(e,t,r){"use strict";r.d(t,{Z:function(){return c}});var n=r(2265);let a=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),s=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.filter((e,t,r)=>!!e&&r.indexOf(e)===t).join(" ")};var i={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let l=(0,n.forwardRef)((e,t)=>{let{color:r="currentColor",size:a=24,strokeWidth:l=2,absoluteStrokeWidth:c,className:o="",children:u,iconNode:h,...d}=e;return(0,n.createElement)("svg",{ref:t,...i,width:a,height:a,stroke:r,strokeWidth:c?24*Number(l)/Number(a):l,className:s("lucide",o),...d},[...h.map(e=>{let[t,r]=e;return(0,n.createElement)(t,r)}),...Array.isArray(u)?u:[u]])}),c=(e,t)=>{let r=(0,n.forwardRef)((r,i)=>{let{className:c,...o}=r;return(0,n.createElement)(l,{ref:i,iconNode:t,className:s("lucide-".concat(a(e)),c),...o})});return r.displayName="".concat(e),r}},2222:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(9205).Z)("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]])},401:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(9205).Z)("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]])},8220:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(9205).Z)("FlaskConical",[["path",{d:"M10 2v7.527a2 2 0 0 1-.211.896L4.72 20.55a1 1 0 0 0 .9 1.45h12.76a1 1 0 0 0 .9-1.45l-5.069-10.127A2 2 0 0 1 14 9.527V2",key:"pzvekw"}],["path",{d:"M8.5 2h7",key:"csnxdl"}],["path",{d:"M7 16h10",key:"wp8him"}]])},5621:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(9205).Z)("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]])},5466:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(9205).Z)("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]])},2048:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(9205).Z)("Map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]])},2718:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(9205).Z)("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]])},8728:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(9205).Z)("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},2023:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(9205).Z)("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]])},8896:function(e,t,r){"use strict";r.d(t,{Z:function(){return n}});let n=(0,r(9205).Z)("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]])},7648:function(e,t,r){"use strict";r.d(t,{default:function(){return a.a}});var n=r(2972),a=r.n(n)},9376:function(e,t,r){"use strict";var n=r(5475);r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}})},257:function(e,t,r){"use strict";var n,a;e.exports=(null==(n=r.g.process)?void 0:n.env)&&"object"==typeof(null==(a=r.g.process)?void 0:a.env)?r.g.process:r(4227)},4227:function(e){!function(){var t={229:function(e){var t,r,n,a=e.exports={};function s(){throw Error("setTimeout has not been defined")}function i(){throw Error("clearTimeout has not been defined")}function l(e){if(t===setTimeout)return setTimeout(e,0);if((t===s||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:s}catch(e){t=s}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}}();var c=[],o=!1,u=-1;function h(){o&&n&&(o=!1,n.length?c=n.concat(c):u=-1,c.length&&d())}function d(){if(!o){var e=l(h);o=!0;for(var t=c.length;t;){for(n=c,c=[];++u<t;)n&&n[u].run();u=-1,t=c.length}n=null,o=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===i||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function f(e,t){this.fun=e,this.array=t}function p(){}a.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];c.push(new f(e,t)),1!==c.length||o||l(d)},f.prototype.run=function(){this.fun.apply(null,this.array)},a.title="browser",a.browser=!0,a.env={},a.argv=[],a.version="",a.versions={},a.on=p,a.addListener=p,a.once=p,a.off=p,a.removeListener=p,a.removeAllListeners=p,a.emit=p,a.prependListener=p,a.prependOnceListener=p,a.listeners=function(e){return[]},a.binding=function(e){throw Error("process.binding is not supported")},a.cwd=function(){return"/"},a.chdir=function(e){throw Error("process.chdir is not supported")},a.umask=function(){return 0}}},r={};function n(e){var a=r[e];if(void 0!==a)return a.exports;var s=r[e]={exports:{}},i=!0;try{t[e](s,s.exports,n),i=!1}finally{i&&delete r[e]}return s.exports}n.ab="//";var a=n(229);e.exports=a}()},1259:function(e,t,r){"use strict";r.d(t,{default:function(){return v}});var n=r(7437),a=r(7648),s=r(9376),i=r(5466),l=r(2048),c=r(8896),o=r(8220),u=r(2718),h=r(5621),d=r(8728),f=r(2222),p=r(2023),x=r(1994),m=r(257);let y=[{href:"/",label:"Dashboard",icon:(0,n.jsx)(i.Z,{className:"w-5 h-5"})},{href:"/roadmap",label:"Roadmap",icon:(0,n.jsx)(l.Z,{className:"w-5 h-5"})},{href:"/goals",label:"Goals",icon:(0,n.jsx)(c.Z,{className:"w-5 h-5"})},{href:"/hypotheses",label:"Hypotheses",icon:(0,n.jsx)(o.Z,{className:"w-5 h-5"})},{href:"/social",label:"Social",icon:(0,n.jsx)(u.Z,{className:"w-5 h-5"})},{href:"/sessions",label:"Sessions",icon:(0,n.jsx)(h.Z,{className:"w-5 h-5"})},{href:"/settings",label:"Settings",icon:(0,n.jsx)(d.Z,{className:"w-5 h-5"})}];function v(e){let{children:t}=e,r=(0,s.usePathname)();return(0,n.jsxs)("div",{className:"min-h-screen flex",children:[(0,n.jsxs)("aside",{className:"w-64 bg-slate-900 text-white flex flex-col",children:[(0,n.jsx)("div",{className:"p-4 border-b border-slate-700",children:(0,n.jsxs)(a.default,{href:"/",className:"flex items-center gap-2",children:[(0,n.jsx)("div",{className:"w-10 h-10 bg-emerald-500 rounded-lg flex items-center justify-center",children:(0,n.jsx)(f.Z,{className:"w-6 h-6 text-white"})}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{className:"font-bold text-lg leading-tight",children:"Analyst"}),(0,n.jsx)("p",{className:"text-xs text-slate-400",children:m.env.NEXT_PUBLIC_PRODUCT_NAME||"Business"})]})]})}),(0,n.jsx)("nav",{className:"flex-1 p-4",children:(0,n.jsx)("ul",{className:"space-y-1",children:y.map(e=>{let t="/"===e.href?"/"===r:r.startsWith(e.href);return(0,n.jsx)("li",{children:(0,n.jsxs)(a.default,{href:e.href,className:(0,x.Z)("flex items-center gap-3 px-3 py-2 rounded-lg transition-colors",t?"bg-slate-800 text-white":"text-slate-400 hover:text-white hover:bg-slate-800"),children:[e.icon,(0,n.jsx)("span",{children:e.label})]})},e.href)})})}),(0,n.jsx)("div",{className:"p-4 border-t border-slate-700",children:(0,n.jsxs)("div",{className:"flex items-center gap-2 text-xs text-slate-500",children:[(0,n.jsx)(p.Z,{className:"w-4 h-4"}),(0,n.jsx)("span",{children:"Powered by Claude"})]})})]}),(0,n.jsx)("main",{className:"flex-1 overflow-auto",children:t})]})}},6682:function(e,t,r){"use strict";r.d(t,{default:function(){return o}});var n=r(7437),a=r(9205);let s=(0,a.Z)("Twitter",[["path",{d:"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z",key:"pff0z6"}]]);var i=r(401);let l=(0,a.Z)("Link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);var c=r(2265);function o(e){let{url:t,text:r}=e,[a,o]=(0,c.useState)(!1),u=t||window.location.href,h=r||"Check out the VibeBusiness public roadmap",d=async()=>{try{await navigator.clipboard.writeText(u),o(!0),setTimeout(()=>o(!1),2e3)}catch(e){console.error("Failed to copy:",e)}};return(0,n.jsxs)("div",{className:"flex items-center gap-3",children:[(0,n.jsx)("span",{className:"text-sm font-medium text-slate-600",children:"Share:"}),(0,n.jsxs)("button",{onClick:()=>{let e="https://twitter.com/intent/tweet?text=".concat(encodeURIComponent(h),"&url=").concat(encodeURIComponent(u));window.open(e,"_blank","noopener,noreferrer")},className:"inline-flex items-center gap-2 px-4 py-2 bg-black text-white rounded-lg hover:bg-slate-800 transition-colors text-sm font-medium","aria-label":"Share on X/Twitter",children:[(0,n.jsx)(s,{className:"w-4 h-4"}),(0,n.jsx)("span",{children:"Share on X"})]}),(0,n.jsx)("button",{onClick:d,className:"inline-flex items-center gap-2 px-4 py-2 bg-slate-100 text-slate-700 rounded-lg hover:bg-slate-200 transition-colors text-sm font-medium","aria-label":"Copy link",children:a?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.Z,{className:"w-4 h-4 text-emerald-600"}),(0,n.jsx)("span",{className:"text-emerald-700",children:"Copied!"})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(l,{className:"w-4 h-4"}),(0,n.jsx)("span",{children:"Copy Link"})]})})]})}},1994:function(e,t,r){"use strict";t.Z=function(){for(var e,t,r=0,n="",a=arguments.length;r<a;r++)(e=arguments[r])&&(t=function e(t){var r,n,a="";if("string"==typeof t||"number"==typeof t)a+=t;else if("object"==typeof t){if(Array.isArray(t)){var s=t.length;for(r=0;r<s;r++)t[r]&&(n=e(t[r]))&&(a&&(a+=" "),a+=n)}else for(n in t)t[n]&&(a&&(a+=" "),a+=n)}return a}(e))&&(n&&(n+=" "),n+=t);return n}}},function(e){e.O(0,[972,971,117,744],function(){return e(e.s=928)}),_N_E=e.O()}]);
|