vibebusiness 1.2.83 → 1.2.85
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/.env +27 -14
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +87 -70
- package/.next/standalone/.next/app-path-routes-manifest.json +1 -1
- package/.next/standalone/.next/build-manifest.json +8 -8
- package/.next/standalone/.next/prerender-manifest.json +1 -1
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/routes-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +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 +2 -2
- 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/briefing/route.js +1 -0
- package/.next/standalone/.next/server/app/api/briefing/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/checkout/route.js +1 -1
- package/.next/standalone/.next/server/app/api/config/detect-repos/route.js +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/health/route.js +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/investor-updates/generate/route.js +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/api/license/route.js +1 -1
- package/.next/standalone/.next/server/app/api/portal/route.js +1 -1
- package/.next/standalone/.next/server/app/api/provider-status/route.js +1 -1
- package/.next/standalone/.next/server/app/api/social/[id]/publish/route.js +1 -1
- package/.next/standalone/.next/server/app/api/social/[id]/publish/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/[id]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/social/[id]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/social/route.js +1 -1
- package/.next/standalone/.next/server/app/api/social/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/webhook/route.js +1 -1
- package/.next/standalone/.next/server/app/briefing/page.js +1 -0
- package/.next/standalone/.next/server/app/briefing/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/briefing/page_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/goals/[id]/page.js +1 -1
- package/.next/standalone/.next/server/app/goals/[id]/page.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.js +1 -1
- package/.next/standalone/.next/server/app/hypotheses/[id]/page.js.nft.json +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/index.html +1 -0
- package/.next/standalone/.next/server/app/index.meta +6 -0
- package/.next/standalone/.next/server/app/index.rsc +6 -0
- package/.next/standalone/.next/server/app/kanban/page.js +1 -0
- package/.next/standalone/.next/server/app/kanban/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/kanban/page_client-reference-manifest.js +1 -0
- 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.js +1 -1
- package/.next/standalone/.next/server/app/roadmap/[id]/page.js.nft.json +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 -1
- package/.next/standalone/.next/server/app/roadmap/investors/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/roadmap/investors/page_client-reference-manifest.js +1 -1
- 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 -1
- package/.next/standalone/.next/server/app/roadmap/public/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/roadmap/public/page_client-reference-manifest.js +1 -1
- 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.js +1 -1
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +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 +3 -3
- package/.next/standalone/.next/server/app/social/page.js +1 -1
- package/.next/standalone/.next/server/app/social/page.js.nft.json +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 +3 -3
- 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.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 +3 -3
- 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 +18 -15
- package/.next/standalone/.next/server/chunks/3098.js +1 -0
- package/.next/standalone/.next/server/chunks/3871.js +1 -1
- package/.next/standalone/.next/server/chunks/4355.js +1 -0
- package/.next/standalone/.next/server/chunks/4471.js +2 -2
- 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.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/data/codebase-snapshot.json +55 -42
- package/.next/standalone/data/config.json +16 -40
- package/.next/standalone/data/positioning.json +10 -127
- package/.next/standalone/data/sessions.json +56 -312
- package/.next/standalone/node_modules/@esbuild/{darwin-arm64 → darwin-x64}/bin/esbuild +0 -0
- package/.next/standalone/node_modules/@esbuild/{darwin-arm64 → darwin-x64}/package.json +3 -3
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/scripts/analyze.ts +35 -10
- package/.next/standalone/scripts/implement.ts +67 -17
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/templates/commands/distribution-google-ads.md +86 -0
- package/.next/standalone/templates/commands/distribution-meta-ads.md +106 -0
- package/.next/standalone/templates/commands/distribution-repurpose.md +121 -0
- package/.next/standalone/templates/commands/distribution-seo-content.md +115 -0
- package/.next/standalone/templates/commands/distribution-social-expansion.md +128 -0
- package/.next/static/chunks/147-b00f2ac2bbec93ae.js +1 -0
- package/.next/static/chunks/159-4ce492ccac6de8f7.js +1 -0
- package/.next/static/chunks/47-eba0f8b4f9b17641.js +1 -0
- package/.next/static/chunks/547-921898871311cd72.js +1 -0
- package/.next/static/chunks/619-2b2ff3b9eaef112c.js +1 -0
- package/.next/static/chunks/735-b33805b2b19d17ad.js +1 -0
- package/.next/static/chunks/879-7fbd95e93ddc4636.js +1 -0
- package/.next/static/chunks/930-330300153dfcbfc0.js +1 -0
- package/.next/static/chunks/app/briefing/page-683aba0c52e910d7.js +1 -0
- package/.next/static/chunks/app/goals/[id]/page-40818dc7e710eeda.js +1 -0
- package/.next/static/chunks/app/goals/page-f80a64a68854e357.js +1 -0
- package/.next/static/chunks/app/hypotheses/[id]/page-023c882fa395f3ed.js +1 -0
- package/.next/static/chunks/app/hypotheses/page-168748bde00e7d90.js +1 -0
- package/.next/static/chunks/app/ideas/[id]/page-5f33e0ecf590ddec.js +1 -0
- package/.next/static/chunks/app/kanban/page-4f18f1e4f56948a5.js +1 -0
- package/.next/static/chunks/app/layout-cd1571ba4ed4a0fa.js +1 -0
- package/.next/static/chunks/app/page-0a8b9a7b052e6eac.js +1 -0
- package/.next/static/chunks/app/roadmap/[id]/page-9ba8a537e30c633c.js +1 -0
- package/.next/static/chunks/app/roadmap/investors/{page-0095ea5695573796.js → page-a914223623f56df3.js} +1 -1
- package/.next/static/chunks/app/roadmap/page-30de1fdc304eb572.js +1 -0
- package/.next/static/chunks/app/roadmap/public/page-c481b3f9217919ac.js +1 -0
- package/.next/static/chunks/app/sessions/page-d7eefd2fd42b4d55.js +1 -0
- package/.next/static/chunks/app/settings/{page-3afa908a96ce4e51.js → page-caf6daf930e4f2c6.js} +1 -1
- package/.next/static/chunks/app/social/page-21daeca0cf8af46b.js +1 -0
- package/.next/static/chunks/app/updates/[id]/page-2807cd17ae4938d0.js +1 -0
- package/.next/static/chunks/app/updates/new/{page-dcc67ffca587dcc2.js → page-ac5b966024ce0ddc.js} +1 -1
- package/.next/static/chunks/app/updates/page-b6efcdaae7f4f6d2.js +1 -0
- package/.next/static/chunks/{main-6ee938c5db2d5eb4.js → main-3eb11800bc19ca7f.js} +1 -1
- package/.next/static/chunks/{main-app-f42d9aa726a818bf.js → main-app-06ab73909d2a44c7.js} +1 -1
- package/.next/static/chunks/webpack-616e068a201ad621.js +1 -0
- package/.next/static/css/ff70d16171b1c02c.css +3 -0
- package/dist/bin/vibebusiness.js +1 -0
- package/dist/scripts/analyze.js +128 -8
- package/dist/scripts/heartbeat.js +17 -1
- package/dist/scripts/implement.js +77 -15
- package/package.json +1 -1
- package/templates/commands/distribution-google-ads.md +86 -0
- package/templates/commands/distribution-meta-ads.md +106 -0
- package/templates/commands/distribution-repurpose.md +121 -0
- package/templates/commands/distribution-seo-content.md +115 -0
- package/templates/commands/distribution-social-expansion.md +128 -0
- package/.next/standalone/.next/server/chunks/6299.js +0 -1
- package/.next/standalone/.next/server/chunks/995.js +0 -1
- package/.next/standalone/data/.analysis-prompt.txt +0 -170
- package/.next/standalone/data/business-context.json +0 -187
- package/.next/standalone/data/competitors.json +0 -576
- package/.next/standalone/data/copy/landing-improvements-2026-02-20.md +0 -111
- package/.next/standalone/data/copy/landing-landing-page-2026-02-20.md +0 -68
- package/.next/standalone/data/email-campaigns/sequences/onboarding.md +0 -183
- package/.next/standalone/data/email-campaigns/welcome-2026-02-20.md +0 -42
- package/.next/standalone/data/goals.json +0 -439
- package/.next/standalone/data/heartbeat-sessions.json +0 -7550
- package/.next/standalone/data/hypotheses.json +0 -269
- package/.next/standalone/data/ideas.json +0 -10747
- package/.next/standalone/data/implementations.json +0 -3304
- package/.next/standalone/data/pages.json +0 -22
- package/.next/standalone/data/payments.json +0 -33
- package/.next/standalone/data/reports/visuals/idea-first-tweet-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-lp-hero-specificity-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-lp-og-meta-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-lp-social-proof-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-readme-landing-url-card.png +0 -0
- package/.next/standalone/data/reports/visuals/idea-stripe-integration-card.png +0 -0
- package/.next/standalone/data/reports/visuals/promo-launch.png +0 -0
- package/.next/standalone/data/reports/visuals/promo-ship-fast.png +0 -0
- package/.next/standalone/data/reports/visuals/promo-while-you-slept-v2.png +0 -0
- package/.next/standalone/data/reports/visuals/promo-while-you-slept-v3.png +0 -0
- package/.next/standalone/data/reports/visuals/promo-while-you-slept.png +0 -0
- package/.next/standalone/data/social.json +0 -179
- package/.next/standalone/data/videos/ad-solo-founder-burnout.mp4 +0 -0
- package/.next/standalone/data/videos/staging/ad-solo-founder-burnout.json +0 -54
- package/.next/standalone/data/videos/while-you-slept-demo-feed.mp4 +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/48519e014fdef8bfe40a0d447e90c96c/0.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/48519e014fdef8bfe40a0d447e90c96c/index.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/0.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/1.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/2.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/index.pack +0 -0
- package/.next/standalone/node_modules/.cache/webpack/remotion-production-4.0.428/c99d23d3548030c8ff8de678c71eeb15/index.pack.old +0 -0
- package/.next/static/chunks/280-fd1092f75f985b1e.js +0 -1
- package/.next/static/chunks/354-d5bc9619159f46c5.js +0 -1
- package/.next/static/chunks/429-8f4030371ebef5c3.js +0 -1
- package/.next/static/chunks/809-833fcb9fe6e81fd6.js +0 -1
- package/.next/static/chunks/827-6cf4bfc10d1ff0c7.js +0 -1
- package/.next/static/chunks/851-65b033bf38847cbb.js +0 -1
- package/.next/static/chunks/app/goals/[id]/page-231bb4daae0f06eb.js +0 -1
- package/.next/static/chunks/app/goals/page-4dfa36ac38853b88.js +0 -1
- package/.next/static/chunks/app/hypotheses/[id]/page-6ec09d5470557c18.js +0 -1
- package/.next/static/chunks/app/hypotheses/page-1732b7466579493e.js +0 -1
- package/.next/static/chunks/app/ideas/[id]/page-b3dfe1e61fc656a4.js +0 -1
- package/.next/static/chunks/app/layout-eeef7928298d2198.js +0 -1
- package/.next/static/chunks/app/page-3635a292b3d471c0.js +0 -1
- package/.next/static/chunks/app/roadmap/[id]/page-b93a96f017c8d3dd.js +0 -1
- package/.next/static/chunks/app/roadmap/page-eacd69a99fcfc658.js +0 -1
- package/.next/static/chunks/app/roadmap/public/page-6b791041894b76d2.js +0 -1
- package/.next/static/chunks/app/sessions/page-a56ea625acdfa13e.js +0 -1
- package/.next/static/chunks/app/social/page-5211c78a5f37df65.js +0 -1
- package/.next/static/chunks/app/updates/[id]/page-fa20533878416cd0.js +0 -1
- package/.next/static/chunks/app/updates/page-19a09d7046577f70.js +0 -1
- package/.next/static/chunks/webpack-a3c37fcbf859f6f9.js +0 -1
- package/.next/static/css/654766eb547c6bab.css +0 -3
- /package/.next/static/{wJT1h-ifHTtYVlXZG2PFS → COv1w-K5vJ1LbOqnlKgHv}/_buildManifest.js +0 -0
- /package/.next/static/{wJT1h-ifHTtYVlXZG2PFS → COv1w-K5vJ1LbOqnlKgHv}/_ssgManifest.js +0 -0
|
@@ -1,359 +1,103 @@
|
|
|
1
1
|
{
|
|
2
2
|
"sessions": [
|
|
3
3
|
{
|
|
4
|
-
"id": "session-
|
|
5
|
-
"created_at": "2026-02-
|
|
6
|
-
"completed_at": "2026-02-
|
|
7
|
-
"type": "
|
|
8
|
-
"status": "
|
|
9
|
-
"repos_analyzed": [
|
|
10
|
-
"vibebusiness"
|
|
11
|
-
],
|
|
12
|
-
"ideas_generated": [
|
|
13
|
-
"idea-073e5d92",
|
|
14
|
-
"idea-5ef89036",
|
|
15
|
-
"idea-00594fc5",
|
|
16
|
-
"idea-7b49b4cb",
|
|
17
|
-
"idea-f0f8ee79"
|
|
18
|
-
],
|
|
19
|
-
"error_message": null,
|
|
20
|
-
"logs": [
|
|
21
|
-
"[2026-02-19T15:53:38.737Z] Session started",
|
|
22
|
-
"[2026-02-19T15:53:38.740Z] Generated quick analysis prompt",
|
|
23
|
-
"[2026-02-19T15:53:38.740Z] Running Claude Code analysis...",
|
|
24
|
-
"[2026-02-19T15:58:34.088Z] Analysis complete",
|
|
25
|
-
"[2026-02-19T15:58:34.089Z] Parsed 5 ideas from response",
|
|
26
|
-
"[2026-02-19T15:58:34.091Z] Saved 5 new ideas"
|
|
27
|
-
]
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"id": "session-5fc20224",
|
|
31
|
-
"created_at": "2026-02-19T16:03:22.863Z",
|
|
32
|
-
"completed_at": "2026-02-19T16:07:31.371Z",
|
|
33
|
-
"type": "quick",
|
|
34
|
-
"status": "completed",
|
|
35
|
-
"repos_analyzed": [
|
|
36
|
-
"vibebusiness"
|
|
37
|
-
],
|
|
38
|
-
"ideas_generated": [
|
|
39
|
-
"idea-14f841f3",
|
|
40
|
-
"idea-0e846f81",
|
|
41
|
-
"idea-141b5aa7",
|
|
42
|
-
"idea-6631456b",
|
|
43
|
-
"idea-f00f5ea1"
|
|
44
|
-
],
|
|
45
|
-
"error_message": null,
|
|
46
|
-
"logs": [
|
|
47
|
-
"[2026-02-19T16:03:22.863Z] Session started",
|
|
48
|
-
"[2026-02-19T16:03:22.868Z] Generated quick analysis prompt",
|
|
49
|
-
"[2026-02-19T16:03:22.869Z] Running Claude Code analysis...",
|
|
50
|
-
"[2026-02-19T16:07:31.367Z] Analysis complete",
|
|
51
|
-
"[2026-02-19T16:07:31.368Z] Parsed 5 ideas from response",
|
|
52
|
-
"[2026-02-19T16:07:31.369Z] Saved 5 new ideas"
|
|
53
|
-
]
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
"id": "session-3c9eb28f",
|
|
57
|
-
"created_at": "2026-02-19T16:05:23.699Z",
|
|
58
|
-
"completed_at": "2026-02-19T16:09:12.556Z",
|
|
59
|
-
"type": "quick",
|
|
60
|
-
"status": "completed",
|
|
61
|
-
"repos_analyzed": [
|
|
62
|
-
"vibebusiness"
|
|
63
|
-
],
|
|
64
|
-
"ideas_generated": [
|
|
65
|
-
"idea-d61a7886",
|
|
66
|
-
"idea-11c59e05",
|
|
67
|
-
"idea-cd2e2717",
|
|
68
|
-
"idea-f64edd0d",
|
|
69
|
-
"idea-19802dcd"
|
|
70
|
-
],
|
|
71
|
-
"error_message": null,
|
|
72
|
-
"logs": [
|
|
73
|
-
"[2026-02-19T16:05:23.699Z] Session started",
|
|
74
|
-
"[2026-02-19T16:05:23.714Z] Generated quick analysis prompt",
|
|
75
|
-
"[2026-02-19T16:05:23.718Z] Running Claude Code analysis...",
|
|
76
|
-
"[2026-02-19T16:09:12.512Z] Analysis complete",
|
|
77
|
-
"[2026-02-19T16:09:12.520Z] Parsed 5 ideas from response",
|
|
78
|
-
"[2026-02-19T16:09:12.542Z] Saved 5 new ideas"
|
|
79
|
-
]
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
"id": "session-6ee535aa",
|
|
83
|
-
"created_at": "2026-02-19T16:07:22.615Z",
|
|
84
|
-
"completed_at": "2026-02-19T16:11:42.637Z",
|
|
85
|
-
"type": "quick",
|
|
86
|
-
"status": "completed",
|
|
87
|
-
"repos_analyzed": [
|
|
88
|
-
"vibebusiness"
|
|
89
|
-
],
|
|
90
|
-
"ideas_generated": [
|
|
91
|
-
"idea-1710cde5",
|
|
92
|
-
"idea-968ad3d3",
|
|
93
|
-
"idea-d39f0f48",
|
|
94
|
-
"idea-3b117679",
|
|
95
|
-
"idea-b5e5adbb"
|
|
96
|
-
],
|
|
97
|
-
"error_message": null,
|
|
98
|
-
"logs": [
|
|
99
|
-
"[2026-02-19T16:07:22.615Z] Session started",
|
|
100
|
-
"[2026-02-19T16:07:22.617Z] Generated quick analysis prompt",
|
|
101
|
-
"[2026-02-19T16:07:22.617Z] Running Claude Code analysis...",
|
|
102
|
-
"[2026-02-19T16:11:42.627Z] Analysis complete",
|
|
103
|
-
"[2026-02-19T16:11:42.629Z] Parsed 5 ideas from response",
|
|
104
|
-
"[2026-02-19T16:11:42.633Z] Saved 5 new ideas"
|
|
105
|
-
]
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
"id": "session-ea0bae06",
|
|
109
|
-
"created_at": "2026-02-19T19:08:04.490Z",
|
|
110
|
-
"completed_at": "2026-02-19T19:13:20.209Z",
|
|
111
|
-
"type": "quick",
|
|
112
|
-
"status": "completed",
|
|
113
|
-
"repos_analyzed": [
|
|
114
|
-
"vibebusiness"
|
|
115
|
-
],
|
|
116
|
-
"ideas_generated": [
|
|
117
|
-
"idea-89e5667d",
|
|
118
|
-
"idea-67759730",
|
|
119
|
-
"idea-ecf9a6e0",
|
|
120
|
-
"idea-37e82b41",
|
|
121
|
-
"idea-d929c926"
|
|
122
|
-
],
|
|
123
|
-
"error_message": null,
|
|
124
|
-
"logs": [
|
|
125
|
-
"[2026-02-19T19:08:04.490Z] Session started",
|
|
126
|
-
"[2026-02-19T19:08:04.503Z] Generated quick analysis prompt",
|
|
127
|
-
"[2026-02-19T19:08:04.504Z] Running Claude Code analysis...",
|
|
128
|
-
"[2026-02-19T19:13:20.191Z] Analysis complete",
|
|
129
|
-
"[2026-02-19T19:13:20.194Z] Parsed 5 ideas from response",
|
|
130
|
-
"[2026-02-19T19:13:20.206Z] Saved 5 new ideas"
|
|
131
|
-
]
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
"id": "session-0d197ae2",
|
|
135
|
-
"created_at": "2026-02-19T19:10:03.196Z",
|
|
136
|
-
"completed_at": "2026-02-19T19:17:06.207Z",
|
|
137
|
-
"type": "quick",
|
|
138
|
-
"status": "completed",
|
|
139
|
-
"repos_analyzed": [
|
|
140
|
-
"vibebusiness"
|
|
141
|
-
],
|
|
142
|
-
"ideas_generated": [
|
|
143
|
-
"idea-8ed5995b",
|
|
144
|
-
"idea-85731847",
|
|
145
|
-
"idea-3f4595f7",
|
|
146
|
-
"idea-10968b11",
|
|
147
|
-
"idea-6409a41b"
|
|
148
|
-
],
|
|
149
|
-
"error_message": null,
|
|
150
|
-
"logs": [
|
|
151
|
-
"[2026-02-19T19:10:03.196Z] Session started",
|
|
152
|
-
"[2026-02-19T19:10:03.198Z] Generated quick analysis prompt",
|
|
153
|
-
"[2026-02-19T19:10:03.198Z] Running Claude Code analysis...",
|
|
154
|
-
"[2026-02-19T19:17:06.192Z] Analysis complete",
|
|
155
|
-
"[2026-02-19T19:17:06.194Z] Parsed 5 ideas from response",
|
|
156
|
-
"[2026-02-19T19:17:06.205Z] Saved 5 new ideas"
|
|
157
|
-
]
|
|
158
|
-
},
|
|
159
|
-
{
|
|
160
|
-
"id": "session-82376498",
|
|
161
|
-
"created_at": "2026-02-19T19:12:04.066Z",
|
|
162
|
-
"completed_at": "2026-02-19T19:18:56.689Z",
|
|
163
|
-
"type": "quick",
|
|
164
|
-
"status": "completed",
|
|
165
|
-
"repos_analyzed": [
|
|
166
|
-
"vibebusiness"
|
|
167
|
-
],
|
|
168
|
-
"ideas_generated": [
|
|
169
|
-
"idea-da1ad087",
|
|
170
|
-
"idea-7c9778a0",
|
|
171
|
-
"idea-1e41cc64",
|
|
172
|
-
"idea-b8e59666",
|
|
173
|
-
"idea-1a17712a"
|
|
174
|
-
],
|
|
175
|
-
"error_message": null,
|
|
176
|
-
"logs": [
|
|
177
|
-
"[2026-02-19T19:12:04.066Z] Session started",
|
|
178
|
-
"[2026-02-19T19:12:04.078Z] Generated quick analysis prompt",
|
|
179
|
-
"[2026-02-19T19:12:04.078Z] Running Claude Code analysis...",
|
|
180
|
-
"[2026-02-19T19:18:56.673Z] Analysis complete",
|
|
181
|
-
"[2026-02-19T19:18:56.675Z] Parsed 5 ideas from response",
|
|
182
|
-
"[2026-02-19T19:18:56.685Z] Saved 5 new ideas"
|
|
183
|
-
]
|
|
184
|
-
},
|
|
185
|
-
{
|
|
186
|
-
"id": "session-a025fcad",
|
|
187
|
-
"created_at": "2026-02-19T19:14:59.896Z",
|
|
188
|
-
"completed_at": "2026-02-19T19:19:06.116Z",
|
|
189
|
-
"type": "quick",
|
|
190
|
-
"status": "completed",
|
|
191
|
-
"repos_analyzed": [
|
|
192
|
-
"vibebusiness"
|
|
193
|
-
],
|
|
194
|
-
"ideas_generated": [
|
|
195
|
-
"idea-b90c6a2e",
|
|
196
|
-
"idea-0e5d52e5",
|
|
197
|
-
"idea-fed1a949",
|
|
198
|
-
"idea-4afc10b3",
|
|
199
|
-
"idea-7c25480d"
|
|
200
|
-
],
|
|
201
|
-
"error_message": null,
|
|
202
|
-
"logs": [
|
|
203
|
-
"[2026-02-19T19:14:59.896Z] Session started",
|
|
204
|
-
"[2026-02-19T19:14:59.906Z] Generated quick analysis prompt",
|
|
205
|
-
"[2026-02-19T19:14:59.907Z] Running Claude Code analysis...",
|
|
206
|
-
"[2026-02-19T19:19:06.099Z] Analysis complete",
|
|
207
|
-
"[2026-02-19T19:19:06.107Z] Parsed 5 ideas from response",
|
|
208
|
-
"[2026-02-19T19:19:06.115Z] Saved 5 new ideas"
|
|
209
|
-
]
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
"id": "session-53409667",
|
|
213
|
-
"created_at": "2026-02-19T19:17:00.097Z",
|
|
214
|
-
"completed_at": "2026-02-19T19:20:28.959Z",
|
|
215
|
-
"type": "quick",
|
|
216
|
-
"status": "completed",
|
|
4
|
+
"id": "session-3abcddf7",
|
|
5
|
+
"created_at": "2026-02-27T20:53:42.603Z",
|
|
6
|
+
"completed_at": "2026-02-27T20:53:43.008Z",
|
|
7
|
+
"type": "growth",
|
|
8
|
+
"status": "failed",
|
|
217
9
|
"repos_analyzed": [
|
|
218
10
|
"vibebusiness"
|
|
219
11
|
],
|
|
220
|
-
"ideas_generated": [
|
|
221
|
-
|
|
222
|
-
"idea-fada06b8",
|
|
223
|
-
"idea-c4d62334",
|
|
224
|
-
"idea-13892dc2",
|
|
225
|
-
"idea-88be6c65"
|
|
226
|
-
],
|
|
227
|
-
"error_message": null,
|
|
12
|
+
"ideas_generated": [],
|
|
13
|
+
"error_message": "spawn claude ENOENT",
|
|
228
14
|
"logs": [
|
|
229
|
-
"[2026-02-
|
|
230
|
-
"[2026-02-19T19:17:00.104Z] Generated quick analysis prompt",
|
|
231
|
-
"[2026-02-19T19:17:00.105Z] Running Claude Code analysis...",
|
|
232
|
-
"[2026-02-19T19:20:28.819Z] Analysis complete",
|
|
233
|
-
"[2026-02-19T19:20:28.837Z] Parsed 5 ideas from response",
|
|
234
|
-
"[2026-02-19T19:20:28.948Z] Saved 5 new ideas"
|
|
15
|
+
"[2026-02-27T20:53:42.603Z] Session started"
|
|
235
16
|
]
|
|
236
17
|
},
|
|
237
18
|
{
|
|
238
|
-
"id": "session-
|
|
239
|
-
"created_at": "2026-02-
|
|
240
|
-
"completed_at": "2026-02-
|
|
241
|
-
"type": "
|
|
242
|
-
"status": "
|
|
19
|
+
"id": "session-b993541e",
|
|
20
|
+
"created_at": "2026-02-27T20:57:10.312Z",
|
|
21
|
+
"completed_at": "2026-02-27T20:57:11.018Z",
|
|
22
|
+
"type": "growth",
|
|
23
|
+
"status": "failed",
|
|
243
24
|
"repos_analyzed": [
|
|
244
|
-
"
|
|
245
|
-
],
|
|
246
|
-
"ideas_generated": [
|
|
247
|
-
"idea-8c9cf42c",
|
|
248
|
-
"idea-5825de7b",
|
|
249
|
-
"idea-a6d79e32",
|
|
250
|
-
"idea-ef5e8ede",
|
|
251
|
-
"idea-97d7687c"
|
|
25
|
+
"100xmanager"
|
|
252
26
|
],
|
|
253
|
-
"
|
|
27
|
+
"ideas_generated": [],
|
|
28
|
+
"error_message": "Claude Code exited with code 1 after 0s: Error: Claude Code cannot be launched inside another Claude Code session.\nNested sessions share runtime resources and will crash all active sessions.\nTo bypass this check, unset the CLAUDECODE environment variable.\n",
|
|
254
29
|
"logs": [
|
|
255
|
-
"[2026-02-
|
|
256
|
-
"[2026-02-19T19:19:00.183Z] Generated quick analysis prompt",
|
|
257
|
-
"[2026-02-19T19:19:00.184Z] Running Claude Code analysis...",
|
|
258
|
-
"[2026-02-19T19:24:35.129Z] Analysis complete",
|
|
259
|
-
"[2026-02-19T19:24:35.130Z] Parsed 5 ideas from response",
|
|
260
|
-
"[2026-02-19T19:24:35.133Z] Saved 5 new ideas"
|
|
30
|
+
"[2026-02-27T20:57:10.312Z] Session started"
|
|
261
31
|
]
|
|
262
32
|
},
|
|
263
33
|
{
|
|
264
|
-
"id": "session-
|
|
265
|
-
"created_at": "2026-02-
|
|
266
|
-
"completed_at": "2026-02-
|
|
267
|
-
"type": "
|
|
34
|
+
"id": "session-c7729f90",
|
|
35
|
+
"created_at": "2026-02-27T20:57:19.613Z",
|
|
36
|
+
"completed_at": "2026-02-27T21:04:35.989Z",
|
|
37
|
+
"type": "growth",
|
|
268
38
|
"status": "completed",
|
|
269
39
|
"repos_analyzed": [
|
|
270
|
-
"
|
|
271
|
-
],
|
|
272
|
-
"ideas_generated": [
|
|
273
|
-
"idea-21f18d48",
|
|
274
|
-
"idea-6414baaa",
|
|
275
|
-
"idea-57b687b0",
|
|
276
|
-
"idea-76e9ff3b",
|
|
277
|
-
"idea-026b93d1"
|
|
40
|
+
"100xmanager"
|
|
278
41
|
],
|
|
42
|
+
"ideas_generated": [],
|
|
279
43
|
"error_message": null,
|
|
280
44
|
"logs": [
|
|
281
|
-
"[2026-02-
|
|
282
|
-
"[2026-02-
|
|
283
|
-
"[2026-02-
|
|
284
|
-
"[2026-02-
|
|
285
|
-
"[2026-02-
|
|
286
|
-
"[2026-02-
|
|
45
|
+
"[2026-02-27T20:57:19.613Z] Session started",
|
|
46
|
+
"[2026-02-27T20:57:19.615Z] Generated growth analysis prompt",
|
|
47
|
+
"[2026-02-27T20:57:19.615Z] Running Claude Code analysis...",
|
|
48
|
+
"[2026-02-27T21:04:35.988Z] Analysis complete",
|
|
49
|
+
"[2026-02-27T21:04:35.988Z] Parsed 0 ideas from response",
|
|
50
|
+
"[2026-02-27T21:04:35.989Z] No ideas generated"
|
|
287
51
|
]
|
|
288
52
|
},
|
|
289
53
|
{
|
|
290
|
-
"id": "session-
|
|
291
|
-
"created_at": "2026-02-
|
|
292
|
-
"completed_at": "2026-02-
|
|
293
|
-
"type": "
|
|
54
|
+
"id": "session-9694d604",
|
|
55
|
+
"created_at": "2026-02-27T21:10:29.614Z",
|
|
56
|
+
"completed_at": "2026-02-27T21:17:05.696Z",
|
|
57
|
+
"type": "growth",
|
|
294
58
|
"status": "completed",
|
|
295
59
|
"repos_analyzed": [
|
|
296
|
-
"
|
|
297
|
-
],
|
|
298
|
-
"ideas_generated": [
|
|
299
|
-
"idea-e9693da6",
|
|
300
|
-
"idea-214c06a3",
|
|
301
|
-
"idea-5d6a210a",
|
|
302
|
-
"idea-ac64b9f5",
|
|
303
|
-
"idea-fc4569d9"
|
|
60
|
+
"100xmanager"
|
|
304
61
|
],
|
|
62
|
+
"ideas_generated": [],
|
|
305
63
|
"error_message": null,
|
|
306
64
|
"logs": [
|
|
307
|
-
"[2026-02-
|
|
308
|
-
"[2026-02-
|
|
309
|
-
"[2026-02-
|
|
310
|
-
"[2026-02-
|
|
311
|
-
"[2026-02-
|
|
312
|
-
"[2026-02-
|
|
65
|
+
"[2026-02-27T21:10:29.614Z] Session started",
|
|
66
|
+
"[2026-02-27T21:10:29.616Z] Generated growth analysis prompt",
|
|
67
|
+
"[2026-02-27T21:10:29.616Z] Running Claude Code analysis...",
|
|
68
|
+
"[2026-02-27T21:17:05.696Z] Analysis complete",
|
|
69
|
+
"[2026-02-27T21:17:05.696Z] Parsed 0 ideas from response",
|
|
70
|
+
"[2026-02-27T21:17:05.696Z] No ideas generated"
|
|
313
71
|
]
|
|
314
72
|
},
|
|
315
73
|
{
|
|
316
|
-
"id": "session-
|
|
317
|
-
"created_at": "2026-02-
|
|
318
|
-
"completed_at":
|
|
319
|
-
"type": "
|
|
320
|
-
"status": "
|
|
74
|
+
"id": "session-d061b810",
|
|
75
|
+
"created_at": "2026-02-27T21:55:32.423Z",
|
|
76
|
+
"completed_at": null,
|
|
77
|
+
"type": "growth",
|
|
78
|
+
"status": "running",
|
|
321
79
|
"repos_analyzed": [
|
|
322
|
-
"
|
|
323
|
-
],
|
|
324
|
-
"ideas_generated": [
|
|
325
|
-
"idea-0907a0e3",
|
|
326
|
-
"idea-fb3eba74",
|
|
327
|
-
"idea-dd16ce17",
|
|
328
|
-
"idea-8e38d06e",
|
|
329
|
-
"idea-6b8f9511"
|
|
80
|
+
"100xmanager"
|
|
330
81
|
],
|
|
82
|
+
"ideas_generated": [],
|
|
331
83
|
"error_message": null,
|
|
332
84
|
"logs": [
|
|
333
|
-
"[2026-02-
|
|
334
|
-
"[2026-02-19T19:26:17.017Z] Generated quick analysis prompt",
|
|
335
|
-
"[2026-02-19T19:26:17.017Z] Running Claude Code analysis...",
|
|
336
|
-
"[2026-02-19T19:31:25.139Z] Analysis complete",
|
|
337
|
-
"[2026-02-19T19:31:25.141Z] Parsed 5 ideas from response",
|
|
338
|
-
"[2026-02-19T19:31:25.150Z] Saved 5 new ideas"
|
|
85
|
+
"[2026-02-27T21:55:32.423Z] Session started"
|
|
339
86
|
]
|
|
340
87
|
},
|
|
341
88
|
{
|
|
342
|
-
"id": "session-
|
|
343
|
-
"created_at": "2026-02-
|
|
344
|
-
"completed_at": "2026-02-
|
|
345
|
-
"type": "
|
|
89
|
+
"id": "session-8d51ce5b",
|
|
90
|
+
"created_at": "2026-02-27T22:01:41.457Z",
|
|
91
|
+
"completed_at": "2026-02-27T22:11:41.799Z",
|
|
92
|
+
"type": "growth",
|
|
346
93
|
"status": "failed",
|
|
347
94
|
"repos_analyzed": [
|
|
348
|
-
"
|
|
95
|
+
"100xmanager"
|
|
349
96
|
],
|
|
350
97
|
"ideas_generated": [],
|
|
351
|
-
"error_message": "
|
|
98
|
+
"error_message": "Claude Code timed out after 600s (limit: 600s)",
|
|
352
99
|
"logs": [
|
|
353
|
-
"[2026-02-
|
|
354
|
-
"[2026-02-19T20:11:45.301Z] Generated quick analysis prompt",
|
|
355
|
-
"[2026-02-19T20:11:45.301Z] Running Claude Code analysis...",
|
|
356
|
-
"[2026-02-22T00:00:00.000Z] Session marked failed by meta-task cleanup (zombie session — no ideas generated, stuck in running state)"
|
|
100
|
+
"[2026-02-27T22:01:41.457Z] Session started"
|
|
357
101
|
]
|
|
358
102
|
}
|
|
359
103
|
]
|
|
Binary file
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "@esbuild/darwin-
|
|
2
|
+
"name": "@esbuild/darwin-x64",
|
|
3
3
|
"version": "0.27.2",
|
|
4
|
-
"description": "The macOS
|
|
4
|
+
"description": "The macOS 64-bit binary for esbuild, a JavaScript bundler.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/evanw/esbuild.git"
|
|
@@ -15,6 +15,6 @@
|
|
|
15
15
|
"darwin"
|
|
16
16
|
],
|
|
17
17
|
"cpu": [
|
|
18
|
-
"
|
|
18
|
+
"x64"
|
|
19
19
|
]
|
|
20
20
|
}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* npm run analyze -- --type=metrics
|
|
12
12
|
* npm run analyze -- --type=seo
|
|
13
13
|
* npm run analyze -- --type=research --topic="response time optimization" --context=<base64>
|
|
14
|
+
* npm run analyze -- --type=growth
|
|
14
15
|
*/
|
|
15
16
|
|
|
16
17
|
import 'dotenv/config';
|
|
@@ -117,7 +118,7 @@ import {
|
|
|
117
118
|
} from './lib/paths';
|
|
118
119
|
|
|
119
120
|
// Analysis types
|
|
120
|
-
type AnalysisType = 'quick' | 'deep' | 'metrics' | 'seo' | 'research';
|
|
121
|
+
type AnalysisType = 'quick' | 'deep' | 'metrics' | 'seo' | 'research' | 'growth';
|
|
121
122
|
|
|
122
123
|
// Parse command line arguments
|
|
123
124
|
function parseArgs(): { type: AnalysisType; topic?: string; context?: string } {
|
|
@@ -129,7 +130,7 @@ function parseArgs(): { type: AnalysisType; topic?: string; context?: string } {
|
|
|
129
130
|
for (const arg of args) {
|
|
130
131
|
if (arg.startsWith('--type=')) {
|
|
131
132
|
const value = arg.split('=')[1];
|
|
132
|
-
if (['quick', 'deep', 'metrics', 'seo', 'research'].includes(value)) {
|
|
133
|
+
if (['quick', 'deep', 'metrics', 'seo', 'research', 'growth'].includes(value)) {
|
|
133
134
|
type = value as AnalysisType;
|
|
134
135
|
}
|
|
135
136
|
} else if (arg.startsWith('--topic=')) {
|
|
@@ -253,16 +254,38 @@ function updateSession(sessionId: string, updates: Partial<Session>): void {
|
|
|
253
254
|
}
|
|
254
255
|
}
|
|
255
256
|
|
|
256
|
-
//
|
|
257
|
+
// Buffer for session log lines, keyed by session id
|
|
258
|
+
const pendingLogs = new Map<string, string[]>();
|
|
259
|
+
|
|
260
|
+
// Add log to session (buffered — call flushSessionLogs to persist)
|
|
257
261
|
function addSessionLog(sessionId: string, message: string): void {
|
|
258
|
-
const sessions = loadSessions();
|
|
259
|
-
const index = sessions.sessions.findIndex((s) => s.id === sessionId);
|
|
260
|
-
if (index !== -1) {
|
|
261
|
-
const timestamp = new Date().toISOString();
|
|
262
|
-
sessions.sessions[index].logs.push(`[${timestamp}] ${message}`);
|
|
263
|
-
saveSessions(sessions);
|
|
264
|
-
}
|
|
265
262
|
console.log(message);
|
|
263
|
+
const timestamp = new Date().toISOString();
|
|
264
|
+
const entry = `[${timestamp}] ${message}`;
|
|
265
|
+
const existing = pendingLogs.get(sessionId) ?? [];
|
|
266
|
+
existing.push(entry);
|
|
267
|
+
pendingLogs.set(sessionId, existing);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// Flush buffered log lines to disk in a single write
|
|
271
|
+
function flushSessionLogs(sessionId: string): void {
|
|
272
|
+
const lines = pendingLogs.get(sessionId);
|
|
273
|
+
const n = lines?.length ?? 0;
|
|
274
|
+
console.log(`[analyze] Flushing ${n} buffered log lines for session ${sessionId}`);
|
|
275
|
+
try {
|
|
276
|
+
const sessions = loadSessions();
|
|
277
|
+
const index = sessions.sessions.findIndex((s) => s.id === sessionId);
|
|
278
|
+
if (index !== -1 && lines && lines.length > 0) {
|
|
279
|
+
sessions.sessions[index].logs.push(...lines);
|
|
280
|
+
saveSessions(sessions);
|
|
281
|
+
}
|
|
282
|
+
} catch (err) {
|
|
283
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
284
|
+
console.log(`[analyze] ERROR: failed to flush session logs for ${sessionId}: ${msg}`);
|
|
285
|
+
throw err;
|
|
286
|
+
} finally {
|
|
287
|
+
pendingLogs.delete(sessionId);
|
|
288
|
+
}
|
|
266
289
|
}
|
|
267
290
|
|
|
268
291
|
// Load goals and format as context string for prompts
|
|
@@ -848,6 +871,8 @@ async function main() {
|
|
|
848
871
|
console.error('\n=== Analysis Failed ===');
|
|
849
872
|
console.error(error);
|
|
850
873
|
process.exit(1);
|
|
874
|
+
} finally {
|
|
875
|
+
flushSessionLogs(session.id);
|
|
851
876
|
}
|
|
852
877
|
}
|
|
853
878
|
|