neural-loom 0.2.57 → 0.2.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/cache/.previewinfo +1 -1
- package/.next/cache/.rscinfo +1 -1
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/diagnostics/route-bundle-stats.json +1 -1
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/context/aider/route.js.nft.json +1 -1
- package/.next/server/app/api/context/claude/route.js.nft.json +1 -1
- package/.next/server/app/api/context/route.js.nft.json +1 -1
- package/.next/server/app/api/context/ssh/route.js.nft.json +1 -1
- package/.next/server/app/api/git/route.js +2 -1
- package/.next/server/app/api/git/route.js.nft.json +1 -1
- package/.next/server/app/api/recents/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/inject/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/input/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/launch/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/scope/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/start/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/stats/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/stop/route.js.nft.json +1 -1
- package/.next/server/app/api/sql/connections/route.js.nft.json +1 -1
- package/.next/server/app/api/sql/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/sql/query/route.js.nft.json +1 -1
- package/.next/server/app/api/sql/schema/route.js.nft.json +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/page/react-loadable-manifest.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/chunks/[externals]__0layedb._.js +3 -0
- package/.next/server/chunks/[externals]__0layedb._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__0_o7_jj._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0_o7_jj._.js.map +1 -1
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_016qk~0.js +4 -0
- package/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_016qk~0.js.map +1 -0
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/0sqeixl35qoac.js +1 -0
- package/.next/static/chunks/{15b-kgkhsdb0s.js → 10pqt4p7e3rk1.js} +1 -1
- package/.next/trace +1 -1
- package/.next/trace-build +1 -1
- package/package.json +2 -1
- package/src/app/api/git/route.ts +79 -0
- package/src/app/components/IdeLayout.tsx +328 -0
- package/.next/server/chunks/[root-of-the-server]__0kn5tap._.js +0 -4
- package/.next/server/chunks/[root-of-the-server]__0kn5tap._.js.map +0 -1
- package/.next/static/chunks/12m0vh2h637z4.js +0 -1
- /package/.next/static/{HoQA8gsbI6xeWQpFAPJZ9 → cwv8IVp6ik4mwOjuM24B1}/_buildManifest.js +0 -0
- /package/.next/static/{HoQA8gsbI6xeWQpFAPJZ9 → cwv8IVp6ik4mwOjuM24B1}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{HoQA8gsbI6xeWQpFAPJZ9 → cwv8IVp6ik4mwOjuM24B1}/_ssgManifest.js +0 -0
package/.next/trace
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":276,"timestamp":42366483408,"id":4,"parentId":1,"tags":{},"startTime":1781958639964,"traceId":"ddc0cdba614495e5"},{"name":"load-custom-routes","duration":343,"timestamp":42366483802,"id":5,"parentId":1,"tags":{},"startTime":1781958639965,"traceId":"ddc0cdba614495e5"},{"name":"create-dist-dir","duration":684,"timestamp":42366484173,"id":6,"parentId":1,"tags":{},"startTime":1781958639965,"traceId":"ddc0cdba614495e5"},{"name":"clean","duration":630,"timestamp":42366487608,"id":7,"parentId":1,"tags":{},"startTime":1781958639968,"traceId":"ddc0cdba614495e5"},{"name":"discover-routes","duration":5764,"timestamp":42366511684,"id":8,"parentId":1,"tags":{},"startTime":1781958639993,"traceId":"ddc0cdba614495e5"},{"name":"create-root-mapping","duration":60,"timestamp":42366517496,"id":9,"parentId":1,"tags":{},"startTime":1781958639998,"traceId":"ddc0cdba614495e5"},{"name":"generate-route-types","duration":17113,"timestamp":42366518868,"id":10,"parentId":1,"tags":{},"startTime":1781958640000,"traceId":"ddc0cdba614495e5"},{"name":"public-dir-conflict-check","duration":101,"timestamp":42366536137,"id":11,"parentId":1,"tags":{},"startTime":1781958640017,"traceId":"ddc0cdba614495e5"},{"name":"generate-routes-manifest","duration":2735,"timestamp":42366536353,"id":12,"parentId":1,"tags":{},"startTime":1781958640017,"traceId":"ddc0cdba614495e5"},{"name":"run-turbopack","duration":2399315,"timestamp":42366546702,"id":14,"parentId":1,"tags":{},"startTime":1781958640028,"traceId":"ddc0cdba614495e5"},{"name":"turbopack-build-events","duration":66,"timestamp":42366855852,"id":15,"parentId":1,"tags":{},"startTime":1781958640337,"traceId":"ddc0cdba614495e5"},{"name":"run-typescript","duration":4604657,"timestamp":42368954689,"id":16,"parentId":1,"tags":{},"startTime":1781958642436,"traceId":"ddc0cdba614495e5"},{"name":"generate-required-server-files","duration":1523,"timestamp":42373560364,"id":18,"parentId":1,"tags":{},"startTime":1781958647041,"traceId":"ddc0cdba614495e5"},{"name":"check-static-error-page","duration":9647,"timestamp":42373723199,"id":20,"parentId":19,"tags":{},"startTime":1781958647204,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":657768,"timestamp":42373738656,"id":44,"parentId":22,"tags":{},"startTime":1781958647220,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":669326,"timestamp":42373727235,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1781958647208,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":778531,"timestamp":42373738870,"id":46,"parentId":24,"tags":{},"startTime":1781958647220,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":789493,"timestamp":42373727984,"id":24,"parentId":19,"tags":{"page":"/api/context/claude"},"startTime":1781958647209,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":795030,"timestamp":42373739735,"id":51,"parentId":29,"tags":{},"startTime":1781958647221,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":805620,"timestamp":42373729207,"id":29,"parentId":19,"tags":{"page":"/api/recents"},"startTime":1781958647210,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":804413,"timestamp":42373738777,"id":45,"parentId":23,"tags":{},"startTime":1781958647220,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":815536,"timestamp":42373727713,"id":23,"parentId":19,"tags":{"page":"/api/context/aider"},"startTime":1781958647209,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":820214,"timestamp":42373739104,"id":47,"parentId":25,"tags":{},"startTime":1781958647220,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":831165,"timestamp":42373728210,"id":25,"parentId":19,"tags":{"page":"/api/context"},"startTime":1781958647209,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":820576,"timestamp":42373739492,"id":49,"parentId":27,"tags":{},"startTime":1781958647220,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":831464,"timestamp":42373728656,"id":27,"parentId":19,"tags":{"page":"/api/files"},"startTime":1781958647210,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":821994,"timestamp":42373738295,"id":43,"parentId":21,"tags":{},"startTime":1781958647219,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":835183,"timestamp":42373725331,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1781958647206,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":821934,"timestamp":42373739243,"id":48,"parentId":26,"tags":{},"startTime":1781958647220,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":832782,"timestamp":42373728428,"id":26,"parentId":19,"tags":{"page":"/api/context/ssh"},"startTime":1781958647209,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":823811,"timestamp":42373740564,"id":59,"parentId":37,"tags":{},"startTime":1781958647221,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":832998,"timestamp":42373731432,"id":37,"parentId":19,"tags":{"page":"/api/sessions/stop"},"startTime":1781958647212,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":824280,"timestamp":42373740416,"id":57,"parentId":35,"tags":{},"startTime":1781958647221,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":834078,"timestamp":42373730653,"id":35,"parentId":19,"tags":{"page":"/api/sessions/start"},"startTime":1781958647212,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":838674,"timestamp":42373739940,"id":52,"parentId":30,"tags":{},"startTime":1781958647221,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":849224,"timestamp":42373729458,"id":30,"parentId":19,"tags":{"page":"/api/sessions/inject"},"startTime":1781958647210,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":840418,"timestamp":42373740725,"id":63,"parentId":41,"tags":{},"startTime":1781958647222,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":849092,"timestamp":42373732282,"id":41,"parentId":19,"tags":{"page":"/api/sql/schema"},"startTime":1781958647213,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":842237,"timestamp":42373745220,"id":64,"parentId":42,"tags":{},"startTime":1781958647226,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":855047,"timestamp":42373732465,"id":42,"parentId":19,"tags":{"page":"/"},"startTime":1781958647213,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":847077,"timestamp":42373740691,"id":62,"parentId":40,"tags":{},"startTime":1781958647222,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":855700,"timestamp":42373732102,"id":40,"parentId":19,"tags":{"page":"/api/sql/query"},"startTime":1781958647213,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":850261,"timestamp":42373739625,"id":50,"parentId":28,"tags":{},"startTime":1781958647220,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":861009,"timestamp":42373728922,"id":28,"parentId":19,"tags":{"page":"/api/git"},"startTime":1781958647210,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":853837,"timestamp":42373740609,"id":60,"parentId":38,"tags":{},"startTime":1781958647221,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":862818,"timestamp":42373731670,"id":38,"parentId":19,"tags":{"page":"/api/sql/connections"},"startTime":1781958647213,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":854314,"timestamp":42373740509,"id":58,"parentId":36,"tags":{},"startTime":1781958647221,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":863722,"timestamp":42373731160,"id":36,"parentId":19,"tags":{"page":"/api/sessions/stats"},"startTime":1781958647212,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":858627,"timestamp":42373740655,"id":61,"parentId":39,"tags":{},"startTime":1781958647222,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":867433,"timestamp":42373731895,"id":39,"parentId":19,"tags":{"page":"/api/sql/mcp"},"startTime":1781958647213,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":862206,"timestamp":42373740070,"id":53,"parentId":31,"tags":{},"startTime":1781958647221,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":872620,"timestamp":42373729699,"id":31,"parentId":19,"tags":{"page":"/api/sessions/input"},"startTime":1781958647211,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":866018,"timestamp":42373740249,"id":56,"parentId":34,"tags":{},"startTime":1781958647221,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":875970,"timestamp":42373730349,"id":34,"parentId":19,"tags":{"page":"/api/sessions/scope"},"startTime":1781958647211,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":867618,"timestamp":42373740137,"id":54,"parentId":32,"tags":{},"startTime":1781958647221,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":877866,"timestamp":42373729927,"id":32,"parentId":19,"tags":{"page":"/api/sessions/launch"},"startTime":1781958647211,"traceId":"ddc0cdba614495e5"},{"name":"is-page-static","duration":873789,"timestamp":42373740190,"id":55,"parentId":33,"tags":{},"startTime":1781958647221,"traceId":"ddc0cdba614495e5"},{"name":"check-page","duration":883875,"timestamp":42373730147,"id":33,"parentId":19,"tags":{"page":"/api/sessions"},"startTime":1781958647211,"traceId":"ddc0cdba614495e5"},{"name":"static-check","duration":891498,"timestamp":42373722545,"id":19,"parentId":1,"tags":{},"startTime":1781958647203,"traceId":"ddc0cdba614495e5"},{"name":"write-routes-manifest","duration":821,"timestamp":42374615209,"id":66,"parentId":1,"tags":{},"startTime":1781958648096,"traceId":"ddc0cdba614495e5"},{"name":"load-dotenv","duration":42,"timestamp":42374631706,"id":69,"parentId":68,"tags":{},"startTime":1781958648113,"traceId":"ddc0cdba614495e5"},{"name":"run-export-path-map","duration":414,"timestamp":42374636667,"id":70,"parentId":68,"tags":{},"startTime":1781958648118,"traceId":"ddc0cdba614495e5"},{"name":"next-export","duration":711126,"timestamp":42374630842,"id":68,"parentId":1,"tags":{},"startTime":1781958648112,"traceId":"ddc0cdba614495e5"},{"name":"move-exported-app-not-found-","duration":2313,"timestamp":42375343764,"id":71,"parentId":67,"tags":{},"startTime":1781958648825,"traceId":"ddc0cdba614495e5"},{"name":"move-exported-app-global-error-","duration":1480,"timestamp":42375346204,"id":72,"parentId":67,"tags":{},"startTime":1781958648827,"traceId":"ddc0cdba614495e5"},{"name":"static-generation","duration":730383,"timestamp":42374620865,"id":67,"parentId":1,"tags":{},"startTime":1781958648102,"traceId":"ddc0cdba614495e5"},{"name":"write-routes-manifest","duration":1127,"timestamp":42375351409,"id":73,"parentId":1,"tags":{},"startTime":1781958648832,"traceId":"ddc0cdba614495e5"},{"name":"print-tree-view","duration":3105,"timestamp":42375367503,"id":74,"parentId":1,"tags":{},"startTime":1781958648848,"traceId":"ddc0cdba614495e5"},{"name":"write-route-bundle-stats","duration":8830,"timestamp":42375370637,"id":75,"parentId":1,"tags":{},"startTime":1781958648851,"traceId":"ddc0cdba614495e5"},{"name":"telemetry-flush","duration":172002,"timestamp":42375379503,"id":76,"parentId":1,"tags":{},"startTime":1781958648860,"traceId":"ddc0cdba614495e5"},{"name":"next-build","duration":9117199,"timestamp":42366434330,"id":1,"tags":{"buildMode":"default","version":"16.2.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1781958639915,"traceId":"ddc0cdba614495e5"}]
|
|
1
|
+
[{"name":"generate-buildid","duration":196,"timestamp":4131744428,"id":4,"parentId":1,"tags":{},"startTime":1782087098945,"traceId":"4d09e263d7b43350"},{"name":"load-custom-routes","duration":324,"timestamp":4131744725,"id":5,"parentId":1,"tags":{},"startTime":1782087098945,"traceId":"4d09e263d7b43350"},{"name":"create-dist-dir","duration":476,"timestamp":4131745076,"id":6,"parentId":1,"tags":{},"startTime":1782087098946,"traceId":"4d09e263d7b43350"},{"name":"clean","duration":471,"timestamp":4131746276,"id":7,"parentId":1,"tags":{},"startTime":1782087098947,"traceId":"4d09e263d7b43350"},{"name":"discover-routes","duration":6503,"timestamp":4131772066,"id":8,"parentId":1,"tags":{},"startTime":1782087098973,"traceId":"4d09e263d7b43350"},{"name":"create-root-mapping","duration":53,"timestamp":4131778613,"id":9,"parentId":1,"tags":{},"startTime":1782087098979,"traceId":"4d09e263d7b43350"},{"name":"generate-route-types","duration":16167,"timestamp":4131779937,"id":10,"parentId":1,"tags":{},"startTime":1782087098981,"traceId":"4d09e263d7b43350"},{"name":"public-dir-conflict-check","duration":95,"timestamp":4131796247,"id":11,"parentId":1,"tags":{},"startTime":1782087098997,"traceId":"4d09e263d7b43350"},{"name":"generate-routes-manifest","duration":4706,"timestamp":4131796453,"id":12,"parentId":1,"tags":{},"startTime":1782087098997,"traceId":"4d09e263d7b43350"},{"name":"run-turbopack","duration":2706289,"timestamp":4131808920,"id":14,"parentId":1,"tags":{},"startTime":1782087099010,"traceId":"4d09e263d7b43350"},{"name":"turbopack-build-events","duration":66,"timestamp":4132232643,"id":15,"parentId":1,"tags":{},"startTime":1782087099433,"traceId":"4d09e263d7b43350"},{"name":"run-typescript","duration":4767538,"timestamp":4134528398,"id":16,"parentId":1,"tags":{},"startTime":1782087101729,"traceId":"4d09e263d7b43350"},{"name":"generate-required-server-files","duration":1506,"timestamp":4139298079,"id":18,"parentId":1,"tags":{},"startTime":1782087106499,"traceId":"4d09e263d7b43350"},{"name":"check-static-error-page","duration":9321,"timestamp":4139440159,"id":20,"parentId":19,"tags":{},"startTime":1782087106641,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":671574,"timestamp":4139463930,"id":44,"parentId":22,"tags":{},"startTime":1782087106665,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":690986,"timestamp":4139444665,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1782087106645,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":836178,"timestamp":4139464140,"id":48,"parentId":26,"tags":{},"startTime":1782087106665,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":854375,"timestamp":4139446011,"id":26,"parentId":19,"tags":{"page":"/api/context/ssh"},"startTime":1782087106647,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":840953,"timestamp":4139464044,"id":46,"parentId":24,"tags":{},"startTime":1782087106665,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":859399,"timestamp":4139445652,"id":24,"parentId":19,"tags":{"page":"/api/context/claude"},"startTime":1782087106646,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":841807,"timestamp":4139464501,"id":50,"parentId":28,"tags":{},"startTime":1782087106665,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":859989,"timestamp":4139446372,"id":28,"parentId":19,"tags":{"page":"/api/git"},"startTime":1782087106647,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":859353,"timestamp":4139463992,"id":45,"parentId":23,"tags":{},"startTime":1782087106665,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":878012,"timestamp":4139445398,"id":23,"parentId":19,"tags":{"page":"/api/context/aider"},"startTime":1782087106646,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":858364,"timestamp":4139465523,"id":62,"parentId":40,"tags":{},"startTime":1782087106666,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":875068,"timestamp":4139448881,"id":40,"parentId":19,"tags":{"page":"/api/sql/query"},"startTime":1782087106650,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":862503,"timestamp":4139465122,"id":56,"parentId":34,"tags":{},"startTime":1782087106666,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":880099,"timestamp":4139447575,"id":34,"parentId":19,"tags":{"page":"/api/sessions/scope"},"startTime":1782087106648,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":874217,"timestamp":4139465010,"id":54,"parentId":32,"tags":{},"startTime":1782087106666,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":892055,"timestamp":4139447221,"id":32,"parentId":19,"tags":{"page":"/api/sessions/launch"},"startTime":1782087106648,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":872232,"timestamp":4139468843,"id":64,"parentId":42,"tags":{},"startTime":1782087106670,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":891948,"timestamp":4139449181,"id":42,"parentId":19,"tags":{"page":"/"},"startTime":1782087106650,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":875886,"timestamp":4139465558,"id":63,"parentId":41,"tags":{},"startTime":1782087106666,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":892457,"timestamp":4139449031,"id":41,"parentId":19,"tags":{"page":"/api/sql/schema"},"startTime":1782087106650,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":878610,"timestamp":4139463712,"id":43,"parentId":21,"tags":{},"startTime":1782087106664,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":899837,"timestamp":4139442522,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1782087106643,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":878152,"timestamp":4139464609,"id":51,"parentId":29,"tags":{},"startTime":1782087106665,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":896184,"timestamp":4139446617,"id":29,"parentId":19,"tags":{"page":"/api/recents"},"startTime":1782087106647,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":879056,"timestamp":4139465454,"id":60,"parentId":38,"tags":{},"startTime":1782087106666,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":895976,"timestamp":4139448584,"id":38,"parentId":19,"tags":{"page":"/api/sql/connections"},"startTime":1782087106649,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":879429,"timestamp":4139465273,"id":57,"parentId":35,"tags":{},"startTime":1782087106666,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":896891,"timestamp":4139447836,"id":35,"parentId":19,"tags":{"page":"/api/sessions/start"},"startTime":1782087106649,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":879300,"timestamp":4139465497,"id":61,"parentId":39,"tags":{},"startTime":1782087106666,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":896071,"timestamp":4139448741,"id":39,"parentId":19,"tags":{"page":"/api/sql/mcp"},"startTime":1782087106649,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":879456,"timestamp":4139465406,"id":59,"parentId":37,"tags":{},"startTime":1782087106666,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":896452,"timestamp":4139448421,"id":37,"parentId":19,"tags":{"page":"/api/sessions/stop"},"startTime":1782087106649,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":883401,"timestamp":4139464943,"id":53,"parentId":31,"tags":{},"startTime":1782087106666,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":901343,"timestamp":4139447045,"id":31,"parentId":19,"tags":{"page":"/api/sessions/input"},"startTime":1782087106648,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":893704,"timestamp":4139464816,"id":52,"parentId":30,"tags":{},"startTime":1782087106666,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":911753,"timestamp":4139446809,"id":30,"parentId":19,"tags":{"page":"/api/sessions/inject"},"startTime":1782087106648,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":894713,"timestamp":4139465352,"id":58,"parentId":36,"tags":{},"startTime":1782087106666,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":911897,"timestamp":4139448205,"id":36,"parentId":19,"tags":{"page":"/api/sessions/stats"},"startTime":1782087106649,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":896502,"timestamp":4139465062,"id":55,"parentId":33,"tags":{},"startTime":1782087106666,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":914194,"timestamp":4139447406,"id":33,"parentId":19,"tags":{"page":"/api/sessions"},"startTime":1782087106648,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":897567,"timestamp":4139464090,"id":47,"parentId":25,"tags":{},"startTime":1782087106665,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":915827,"timestamp":4139445841,"id":25,"parentId":19,"tags":{"page":"/api/context"},"startTime":1782087106647,"traceId":"4d09e263d7b43350"},{"name":"is-page-static","duration":903027,"timestamp":4139464361,"id":49,"parentId":27,"tags":{},"startTime":1782087106665,"traceId":"4d09e263d7b43350"},{"name":"check-page","duration":921251,"timestamp":4139446178,"id":27,"parentId":19,"tags":{"page":"/api/files"},"startTime":1782087106647,"traceId":"4d09e263d7b43350"},{"name":"static-check","duration":927800,"timestamp":4139439663,"id":19,"parentId":1,"tags":{},"startTime":1782087106640,"traceId":"4d09e263d7b43350"},{"name":"write-routes-manifest","duration":860,"timestamp":4140368695,"id":66,"parentId":1,"tags":{},"startTime":1782087107569,"traceId":"4d09e263d7b43350"},{"name":"load-dotenv","duration":39,"timestamp":4140391446,"id":69,"parentId":68,"tags":{},"startTime":1782087107592,"traceId":"4d09e263d7b43350"},{"name":"run-export-path-map","duration":381,"timestamp":4140397113,"id":70,"parentId":68,"tags":{},"startTime":1782087107598,"traceId":"4d09e263d7b43350"},{"name":"next-export","duration":760134,"timestamp":4140390572,"id":68,"parentId":1,"tags":{},"startTime":1782087107591,"traceId":"4d09e263d7b43350"},{"name":"move-exported-app-not-found-","duration":2183,"timestamp":4141152462,"id":71,"parentId":67,"tags":{},"startTime":1782087108353,"traceId":"4d09e263d7b43350"},{"name":"move-exported-app-global-error-","duration":1621,"timestamp":4141154780,"id":72,"parentId":67,"tags":{},"startTime":1782087108356,"traceId":"4d09e263d7b43350"},{"name":"static-generation","duration":783814,"timestamp":4140376201,"id":67,"parentId":1,"tags":{},"startTime":1782087107577,"traceId":"4d09e263d7b43350"},{"name":"write-routes-manifest","duration":929,"timestamp":4141160140,"id":73,"parentId":1,"tags":{},"startTime":1782087108361,"traceId":"4d09e263d7b43350"},{"name":"print-tree-view","duration":3223,"timestamp":4141179083,"id":74,"parentId":1,"tags":{},"startTime":1782087108380,"traceId":"4d09e263d7b43350"},{"name":"write-route-bundle-stats","duration":12304,"timestamp":4141182338,"id":75,"parentId":1,"tags":{},"startTime":1782087108383,"traceId":"4d09e263d7b43350"},{"name":"telemetry-flush","duration":169822,"timestamp":4141194675,"id":76,"parentId":1,"tags":{},"startTime":1782087108395,"traceId":"4d09e263d7b43350"},{"name":"next-build","duration":9669753,"timestamp":4131694775,"id":1,"tags":{"buildMode":"default","version":"16.2.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782087098896,"traceId":"4d09e263d7b43350"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":2706289,"timestamp":4131808920,"id":14,"parentId":1,"tags":{},"startTime":1782087099010,"traceId":"4d09e263d7b43350"},{"name":"turbopack-build-events","duration":66,"timestamp":4132232643,"id":15,"parentId":1,"tags":{},"startTime":1782087099433,"traceId":"4d09e263d7b43350"},{"name":"run-typescript","duration":4767538,"timestamp":4134528398,"id":16,"parentId":1,"tags":{},"startTime":1782087101729,"traceId":"4d09e263d7b43350"},{"name":"static-check","duration":927800,"timestamp":4139439663,"id":19,"parentId":1,"tags":{},"startTime":1782087106640,"traceId":"4d09e263d7b43350"},{"name":"static-generation","duration":783814,"timestamp":4140376201,"id":67,"parentId":1,"tags":{},"startTime":1782087107577,"traceId":"4d09e263d7b43350"},{"name":"telemetry-flush","duration":169822,"timestamp":4141194675,"id":76,"parentId":1,"tags":{},"startTime":1782087108395,"traceId":"4d09e263d7b43350"},{"name":"next-build","duration":9669753,"timestamp":4131694775,"id":1,"tags":{"buildMode":"default","version":"16.2.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782087098896,"traceId":"4d09e263d7b43350"}]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "neural-loom",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.59",
|
|
4
4
|
"bin": {
|
|
5
5
|
"neural-loom": "./bin/cli.js"
|
|
6
6
|
},
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@monaco-editor/react": "^4.7.0",
|
|
24
|
+
"mssql": "^12.5.5",
|
|
24
25
|
"next": "16.2.6",
|
|
25
26
|
"node-pty": "^1.1.0",
|
|
26
27
|
"react": "19.2.4",
|
package/src/app/api/git/route.ts
CHANGED
|
@@ -96,6 +96,57 @@ export async function GET(request: Request) {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
+
if (action === "branches") {
|
|
100
|
+
const { stdout } = await execPromise("git branch --format=\"%(refname:short)|%(HEAD)\"", { cwd: targetRoot });
|
|
101
|
+
const branches = stdout.split(/\r?\n/).filter(Boolean).map(line => {
|
|
102
|
+
const [name, active] = line.split("|");
|
|
103
|
+
return {
|
|
104
|
+
name: name.trim(),
|
|
105
|
+
isActive: active === "*"
|
|
106
|
+
};
|
|
107
|
+
});
|
|
108
|
+
return NextResponse.json({ success: true, branches });
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (action === "log") {
|
|
112
|
+
try {
|
|
113
|
+
const { stdout } = await execPromise("git log --graph --abbrev-commit --decorate --format=format:\"%h||%p||%s||%an||%ar\" --all -n 100", { cwd: targetRoot });
|
|
114
|
+
const lines = stdout.split(/\r?\n/);
|
|
115
|
+
const logItems = lines.map(line => {
|
|
116
|
+
const parts = line.split("||");
|
|
117
|
+
if (parts.length >= 5) {
|
|
118
|
+
const firstPart = parts[0];
|
|
119
|
+
const hashMatch = firstPart.match(/([0-9a-f]{7,40})$/);
|
|
120
|
+
const hash = hashMatch ? hashMatch[1] : "";
|
|
121
|
+
const graph = firstPart.substring(0, firstPart.length - hash.length);
|
|
122
|
+
|
|
123
|
+
return {
|
|
124
|
+
isCommit: true,
|
|
125
|
+
graph,
|
|
126
|
+
hash,
|
|
127
|
+
parents: parts[1].trim().split(/\s+/).filter(Boolean),
|
|
128
|
+
subject: parts[2],
|
|
129
|
+
author: parts[3],
|
|
130
|
+
date: parts[4]
|
|
131
|
+
};
|
|
132
|
+
} else {
|
|
133
|
+
return {
|
|
134
|
+
isCommit: false,
|
|
135
|
+
graph: line,
|
|
136
|
+
hash: "",
|
|
137
|
+
parents: [],
|
|
138
|
+
subject: "",
|
|
139
|
+
author: "",
|
|
140
|
+
date: ""
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
return NextResponse.json({ success: true, log: logItems });
|
|
145
|
+
} catch (err) {
|
|
146
|
+
return NextResponse.json({ success: true, log: [] });
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
99
150
|
return NextResponse.json({ error: "Invalid action" }, { status: 400 });
|
|
100
151
|
} catch (error) {
|
|
101
152
|
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
@@ -189,6 +240,34 @@ export async function POST(request: Request) {
|
|
|
189
240
|
return NextResponse.json({ success: true, output: stdout + stderr });
|
|
190
241
|
}
|
|
191
242
|
|
|
243
|
+
if (action === "checkout") {
|
|
244
|
+
const { branchName } = body;
|
|
245
|
+
if (!branchName) {
|
|
246
|
+
return NextResponse.json({ error: "Missing branchName parameter" }, { status: 400 });
|
|
247
|
+
}
|
|
248
|
+
const { stdout, stderr } = await execPromise(`git checkout ${JSON.stringify(branchName)}`, { cwd: targetRoot });
|
|
249
|
+
return NextResponse.json({ success: true, output: stdout + stderr });
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if (action === "create_branch") {
|
|
253
|
+
const { branchName } = body;
|
|
254
|
+
if (!branchName) {
|
|
255
|
+
return NextResponse.json({ error: "Missing branchName parameter" }, { status: 400 });
|
|
256
|
+
}
|
|
257
|
+
const { stdout, stderr } = await execPromise(`git checkout -b ${JSON.stringify(branchName)}`, { cwd: targetRoot });
|
|
258
|
+
return NextResponse.json({ success: true, output: stdout + stderr });
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
if (action === "delete_branch") {
|
|
262
|
+
const { branchName, force } = body;
|
|
263
|
+
if (!branchName) {
|
|
264
|
+
return NextResponse.json({ error: "Missing branchName parameter" }, { status: 400 });
|
|
265
|
+
}
|
|
266
|
+
const flag = force ? "-D" : "-d";
|
|
267
|
+
const { stdout, stderr } = await execPromise(`git branch ${flag} ${JSON.stringify(branchName)}`, { cwd: targetRoot });
|
|
268
|
+
return NextResponse.json({ success: true, output: stdout + stderr });
|
|
269
|
+
}
|
|
270
|
+
|
|
192
271
|
return NextResponse.json({ error: "Invalid action" }, { status: 400 });
|
|
193
272
|
} catch (error) {
|
|
194
273
|
const errorMessage = error instanceof Error ? error.message : "Unknown error";
|
|
@@ -115,6 +115,16 @@ interface GitFile {
|
|
|
115
115
|
worktreeStatus?: string;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
+
interface GitLogItem {
|
|
119
|
+
isCommit: boolean;
|
|
120
|
+
graph: string;
|
|
121
|
+
hash: string;
|
|
122
|
+
parents: string[];
|
|
123
|
+
subject: string;
|
|
124
|
+
author: string;
|
|
125
|
+
date: string;
|
|
126
|
+
}
|
|
127
|
+
|
|
118
128
|
interface SessionStatus {
|
|
119
129
|
type?: string;
|
|
120
130
|
status?: string;
|
|
@@ -310,6 +320,12 @@ export default function IdeLayout({ sessionId, workspaceRoot, scopedDirs, onClos
|
|
|
310
320
|
const [gitBranch, setGitBranch] = useState("");
|
|
311
321
|
const [gitSync, setGitSync] = useState({ ahead: 0, behind: 0 });
|
|
312
322
|
const [commitMessage, setCommitMessage] = useState("");
|
|
323
|
+
const [gitBranches, setGitBranches] = useState<{ name: string; isActive: boolean }[]>([]);
|
|
324
|
+
const [gitLog, setGitLog] = useState<GitLogItem[]>([]);
|
|
325
|
+
const [isBranchesExpanded, setIsBranchesExpanded] = useState(false);
|
|
326
|
+
const [isHistoryExpanded, setIsHistoryExpanded] = useState(false);
|
|
327
|
+
const [newBranchName, setNewBranchName] = useState("");
|
|
328
|
+
const [branchActionLoading, setBranchActionLoading] = useState(false);
|
|
313
329
|
|
|
314
330
|
// Status & Telemetry
|
|
315
331
|
const [sessionStatus, setSessionStatus] = useState<SessionStatus | null>(null);
|
|
@@ -340,6 +356,34 @@ export default function IdeLayout({ sessionId, workspaceRoot, scopedDirs, onClos
|
|
|
340
356
|
setGitFiles(data.files || []);
|
|
341
357
|
setGitBranch(data.branch || "");
|
|
342
358
|
setGitSync({ ahead: data.ahead || 0, behind: data.behind || 0 });
|
|
359
|
+
|
|
360
|
+
if (data.isGit) {
|
|
361
|
+
// Fetch branches
|
|
362
|
+
try {
|
|
363
|
+
const branchesRes = await fetch(`/api/git?action=branches&root=${encodeURIComponent(workspaceRoot)}`);
|
|
364
|
+
if (branchesRes.ok) {
|
|
365
|
+
const branchesData = await branchesRes.json();
|
|
366
|
+
if (branchesData.success) {
|
|
367
|
+
setGitBranches(branchesData.branches || []);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
} catch (err) {
|
|
371
|
+
console.error("Failed to load git branches:", err);
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
// Fetch log
|
|
375
|
+
try {
|
|
376
|
+
const logRes = await fetch(`/api/git?action=log&root=${encodeURIComponent(workspaceRoot)}`);
|
|
377
|
+
if (logRes.ok) {
|
|
378
|
+
const logData = await logRes.json();
|
|
379
|
+
if (logData.success) {
|
|
380
|
+
setGitLog(logData.log || []);
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
} catch (err) {
|
|
384
|
+
console.error("Failed to load git log:", err);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
343
387
|
}
|
|
344
388
|
}
|
|
345
389
|
} catch (e) {
|
|
@@ -510,6 +554,102 @@ export default function IdeLayout({ sessionId, workspaceRoot, scopedDirs, onClos
|
|
|
510
554
|
}
|
|
511
555
|
};
|
|
512
556
|
|
|
557
|
+
const handleGitCheckout = async (branchName: string) => {
|
|
558
|
+
setBranchActionLoading(true);
|
|
559
|
+
try {
|
|
560
|
+
const res = await fetch("/api/git", {
|
|
561
|
+
method: "POST",
|
|
562
|
+
headers: { "Content-Type": "application/json" },
|
|
563
|
+
body: JSON.stringify({
|
|
564
|
+
action: "checkout",
|
|
565
|
+
branchName,
|
|
566
|
+
rootPath: workspaceRoot,
|
|
567
|
+
}),
|
|
568
|
+
});
|
|
569
|
+
const data = await res.json();
|
|
570
|
+
if (res.ok && data.success) {
|
|
571
|
+
await loadGitStatus();
|
|
572
|
+
} else {
|
|
573
|
+
alert(data.error || `Failed to checkout branch ${branchName}`);
|
|
574
|
+
}
|
|
575
|
+
} catch (e) {
|
|
576
|
+
console.error(e);
|
|
577
|
+
alert("Failed to checkout branch due to a network error.");
|
|
578
|
+
} finally {
|
|
579
|
+
setBranchActionLoading(false);
|
|
580
|
+
}
|
|
581
|
+
};
|
|
582
|
+
|
|
583
|
+
const handleGitCreateBranch = async (e?: React.FormEvent) => {
|
|
584
|
+
if (e) e.preventDefault();
|
|
585
|
+
if (!newBranchName.trim()) return;
|
|
586
|
+
setBranchActionLoading(true);
|
|
587
|
+
try {
|
|
588
|
+
const res = await fetch("/api/git", {
|
|
589
|
+
method: "POST",
|
|
590
|
+
headers: { "Content-Type": "application/json" },
|
|
591
|
+
body: JSON.stringify({
|
|
592
|
+
action: "create_branch",
|
|
593
|
+
branchName: newBranchName.trim(),
|
|
594
|
+
rootPath: workspaceRoot,
|
|
595
|
+
}),
|
|
596
|
+
});
|
|
597
|
+
const data = await res.json();
|
|
598
|
+
if (res.ok && data.success) {
|
|
599
|
+
setNewBranchName("");
|
|
600
|
+
await loadGitStatus();
|
|
601
|
+
} else {
|
|
602
|
+
alert(data.error || `Failed to create branch ${newBranchName}`);
|
|
603
|
+
}
|
|
604
|
+
} catch (e) {
|
|
605
|
+
console.error(e);
|
|
606
|
+
alert("Failed to create branch due to a network error.");
|
|
607
|
+
} finally {
|
|
608
|
+
setBranchActionLoading(false);
|
|
609
|
+
}
|
|
610
|
+
};
|
|
611
|
+
|
|
612
|
+
const handleGitDeleteBranch = async (branchName: string, force = false) => {
|
|
613
|
+
if (branchName === gitBranch) {
|
|
614
|
+
alert("Cannot delete the currently active branch.");
|
|
615
|
+
return;
|
|
616
|
+
}
|
|
617
|
+
const message = force
|
|
618
|
+
? `Are you sure you want to FORCE delete the branch "${branchName}"? All unmerged changes will be lost.`
|
|
619
|
+
: `Are you sure you want to delete the branch "${branchName}"?`;
|
|
620
|
+
if (!confirm(message)) return;
|
|
621
|
+
|
|
622
|
+
setBranchActionLoading(true);
|
|
623
|
+
try {
|
|
624
|
+
const res = await fetch("/api/git", {
|
|
625
|
+
method: "POST",
|
|
626
|
+
headers: { "Content-Type": "application/json" },
|
|
627
|
+
body: JSON.stringify({
|
|
628
|
+
action: "delete_branch",
|
|
629
|
+
branchName,
|
|
630
|
+
force,
|
|
631
|
+
rootPath: workspaceRoot,
|
|
632
|
+
}),
|
|
633
|
+
});
|
|
634
|
+
const data = await res.json();
|
|
635
|
+
if (res.ok && data.success) {
|
|
636
|
+
await loadGitStatus();
|
|
637
|
+
} else {
|
|
638
|
+
// If it failed because it's not merged, offer force delete
|
|
639
|
+
if (!force && data.error && (data.error.includes("not fully merged") || data.error.includes("not merged"))) {
|
|
640
|
+
handleGitDeleteBranch(branchName, true);
|
|
641
|
+
} else {
|
|
642
|
+
alert(data.error || `Failed to delete branch ${branchName}`);
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
} catch (e) {
|
|
646
|
+
console.error(e);
|
|
647
|
+
alert("Failed to delete branch due to a network error.");
|
|
648
|
+
} finally {
|
|
649
|
+
setBranchActionLoading(false);
|
|
650
|
+
}
|
|
651
|
+
};
|
|
652
|
+
|
|
513
653
|
const handleSelectGitFile = async (file: GitFile) => {
|
|
514
654
|
try {
|
|
515
655
|
const res = await fetch(`/api/git?action=diff&file=${encodeURIComponent(file.relativePath)}&root=${encodeURIComponent(workspaceRoot)}`);
|
|
@@ -1390,6 +1530,194 @@ export default function IdeLayout({ sessionId, workspaceRoot, scopedDirs, onClos
|
|
|
1390
1530
|
</div>
|
|
1391
1531
|
)}
|
|
1392
1532
|
</div>
|
|
1533
|
+
|
|
1534
|
+
{/* Branches Section */}
|
|
1535
|
+
<div style={{ borderTop: "1px solid var(--border)", paddingTop: "0.75rem" }}>
|
|
1536
|
+
<div
|
|
1537
|
+
onClick={() => setIsBranchesExpanded(!isBranchesExpanded)}
|
|
1538
|
+
style={{
|
|
1539
|
+
display: "flex",
|
|
1540
|
+
justifyContent: "space-between",
|
|
1541
|
+
alignItems: "center",
|
|
1542
|
+
cursor: "pointer",
|
|
1543
|
+
marginBottom: "0.5rem",
|
|
1544
|
+
userSelect: "none"
|
|
1545
|
+
}}
|
|
1546
|
+
>
|
|
1547
|
+
<span style={{ fontSize: "0.7rem", fontWeight: 700, textTransform: "uppercase", color: "var(--muted)", display: "flex", alignItems: "center", gap: "0.25rem" }}>
|
|
1548
|
+
{isBranchesExpanded ? "▼" : "▶"} Branches ({gitBranches.length})
|
|
1549
|
+
</span>
|
|
1550
|
+
</div>
|
|
1551
|
+
|
|
1552
|
+
{isBranchesExpanded && (
|
|
1553
|
+
<div style={{ display: "flex", flexDirection: "column", gap: "0.5rem" }}>
|
|
1554
|
+
{/* Create Branch Input */}
|
|
1555
|
+
<form onSubmit={handleGitCreateBranch} style={{ display: "flex", gap: "0.25rem" }}>
|
|
1556
|
+
<input
|
|
1557
|
+
type="text"
|
|
1558
|
+
placeholder="New branch name..."
|
|
1559
|
+
value={newBranchName}
|
|
1560
|
+
onChange={(e) => setNewBranchName(e.target.value)}
|
|
1561
|
+
disabled={branchActionLoading}
|
|
1562
|
+
style={{
|
|
1563
|
+
flex: 1,
|
|
1564
|
+
backgroundColor: "#05070a",
|
|
1565
|
+
border: "1px solid var(--border)",
|
|
1566
|
+
borderRadius: "4px",
|
|
1567
|
+
padding: "0.25rem 0.5rem",
|
|
1568
|
+
color: "#ffffff",
|
|
1569
|
+
fontSize: "0.7rem",
|
|
1570
|
+
outline: "none"
|
|
1571
|
+
}}
|
|
1572
|
+
/>
|
|
1573
|
+
<button
|
|
1574
|
+
type="submit"
|
|
1575
|
+
disabled={branchActionLoading || !newBranchName.trim()}
|
|
1576
|
+
style={{
|
|
1577
|
+
backgroundColor: "rgba(59, 130, 246, 0.15)",
|
|
1578
|
+
border: "1px solid #3b82f6",
|
|
1579
|
+
color: "#3b82f6",
|
|
1580
|
+
padding: "0.25rem 0.5rem",
|
|
1581
|
+
borderRadius: "4px",
|
|
1582
|
+
fontSize: "0.7rem",
|
|
1583
|
+
fontWeight: 600,
|
|
1584
|
+
cursor: "pointer",
|
|
1585
|
+
opacity: (!newBranchName.trim() || branchActionLoading) ? 0.5 : 1
|
|
1586
|
+
}}
|
|
1587
|
+
>
|
|
1588
|
+
+ Create
|
|
1589
|
+
</button>
|
|
1590
|
+
</form>
|
|
1591
|
+
|
|
1592
|
+
{/* Branch List */}
|
|
1593
|
+
<div style={{ display: "flex", flexDirection: "column", gap: "0.25rem", maxHeight: "150px", overflowY: "auto" }}>
|
|
1594
|
+
{gitBranches.map((br) => (
|
|
1595
|
+
<div
|
|
1596
|
+
key={br.name}
|
|
1597
|
+
style={{
|
|
1598
|
+
display: "flex",
|
|
1599
|
+
alignItems: "center",
|
|
1600
|
+
justifyContent: "space-between",
|
|
1601
|
+
padding: "0.35rem 0.5rem",
|
|
1602
|
+
borderRadius: "4px",
|
|
1603
|
+
backgroundColor: br.isActive ? "rgba(59, 130, 246, 0.08)" : "transparent",
|
|
1604
|
+
border: br.isActive ? "1px solid rgba(59, 130, 246, 0.2)" : "1px solid transparent",
|
|
1605
|
+
fontSize: "0.75rem",
|
|
1606
|
+
transition: "all 0.15s ease",
|
|
1607
|
+
}}
|
|
1608
|
+
>
|
|
1609
|
+
<div style={{ display: "flex", alignItems: "center", gap: "0.35rem", fontWeight: br.isActive ? 700 : 500, color: br.isActive ? "var(--primary)" : "#cbd5e1", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap", flex: 1 }}>
|
|
1610
|
+
<span style={{ fontSize: "0.7rem" }}>{br.isActive ? "●" : "○"}</span>
|
|
1611
|
+
<span style={{ overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }} title={br.name}>{br.name}</span>
|
|
1612
|
+
</div>
|
|
1613
|
+
<div style={{ display: "flex", gap: "0.25rem" }}>
|
|
1614
|
+
{!br.isActive && (
|
|
1615
|
+
<>
|
|
1616
|
+
<button
|
|
1617
|
+
type="button"
|
|
1618
|
+
onClick={() => handleGitCheckout(br.name)}
|
|
1619
|
+
disabled={branchActionLoading}
|
|
1620
|
+
title={`Switch to ${br.name}`}
|
|
1621
|
+
style={{
|
|
1622
|
+
background: "none",
|
|
1623
|
+
border: "none",
|
|
1624
|
+
cursor: "pointer",
|
|
1625
|
+
fontSize: "0.7rem",
|
|
1626
|
+
padding: "2px 4px",
|
|
1627
|
+
color: "var(--muted)"
|
|
1628
|
+
}}
|
|
1629
|
+
>
|
|
1630
|
+
➔
|
|
1631
|
+
</button>
|
|
1632
|
+
<button
|
|
1633
|
+
type="button"
|
|
1634
|
+
onClick={() => handleGitDeleteBranch(br.name)}
|
|
1635
|
+
disabled={branchActionLoading}
|
|
1636
|
+
title={`Delete ${br.name}`}
|
|
1637
|
+
style={{
|
|
1638
|
+
background: "none",
|
|
1639
|
+
border: "none",
|
|
1640
|
+
cursor: "pointer",
|
|
1641
|
+
fontSize: "0.7rem",
|
|
1642
|
+
padding: "2px 4px",
|
|
1643
|
+
color: "var(--muted)"
|
|
1644
|
+
}}
|
|
1645
|
+
>
|
|
1646
|
+
✖
|
|
1647
|
+
</button>
|
|
1648
|
+
</>
|
|
1649
|
+
)}
|
|
1650
|
+
</div>
|
|
1651
|
+
</div>
|
|
1652
|
+
))}
|
|
1653
|
+
</div>
|
|
1654
|
+
</div>
|
|
1655
|
+
)}
|
|
1656
|
+
</div>
|
|
1657
|
+
|
|
1658
|
+
{/* Commit History Section */}
|
|
1659
|
+
<div style={{ borderTop: "1px solid var(--border)", paddingTop: "0.75rem" }}>
|
|
1660
|
+
<div
|
|
1661
|
+
onClick={() => setIsHistoryExpanded(!isHistoryExpanded)}
|
|
1662
|
+
style={{
|
|
1663
|
+
display: "flex",
|
|
1664
|
+
justifyContent: "space-between",
|
|
1665
|
+
alignItems: "center",
|
|
1666
|
+
cursor: "pointer",
|
|
1667
|
+
marginBottom: "0.5rem",
|
|
1668
|
+
userSelect: "none"
|
|
1669
|
+
}}
|
|
1670
|
+
>
|
|
1671
|
+
<span style={{ fontSize: "0.7rem", fontWeight: 700, textTransform: "uppercase", color: "var(--muted)", display: "flex", alignItems: "center", gap: "0.25rem" }}>
|
|
1672
|
+
{isHistoryExpanded ? "▼" : "▶"} Commit History
|
|
1673
|
+
</span>
|
|
1674
|
+
</div>
|
|
1675
|
+
|
|
1676
|
+
{isHistoryExpanded && (
|
|
1677
|
+
<div style={{
|
|
1678
|
+
backgroundColor: "#05070a",
|
|
1679
|
+
border: "1px solid var(--border)",
|
|
1680
|
+
borderRadius: "6px",
|
|
1681
|
+
padding: "0.5rem",
|
|
1682
|
+
maxHeight: "220px",
|
|
1683
|
+
overflowY: "auto",
|
|
1684
|
+
overflowX: "auto"
|
|
1685
|
+
}}>
|
|
1686
|
+
{gitLog.length === 0 ? (
|
|
1687
|
+
<div style={{ color: "var(--muted)", fontStyle: "italic", fontSize: "0.7rem", textAlign: "center", padding: "0.5rem" }}>
|
|
1688
|
+
No commit history found.
|
|
1689
|
+
</div>
|
|
1690
|
+
) : (
|
|
1691
|
+
<div style={{ fontFamily: "var(--font-mono)", fontSize: "0.65rem", lineHeight: "1.4", whiteSpace: "pre" }}>
|
|
1692
|
+
{gitLog.map((item, idx) => (
|
|
1693
|
+
<div
|
|
1694
|
+
key={idx}
|
|
1695
|
+
style={{
|
|
1696
|
+
display: "flex",
|
|
1697
|
+
padding: "2px 0",
|
|
1698
|
+
borderBottom: "1px solid rgba(255,255,255,0.01)",
|
|
1699
|
+
alignItems: "center"
|
|
1700
|
+
}}
|
|
1701
|
+
>
|
|
1702
|
+
<span style={{ color: "#3b82f6", flexShrink: 0, fontWeight: 700 }}>{item.graph}</span>
|
|
1703
|
+
{item.isCommit && (
|
|
1704
|
+
<>
|
|
1705
|
+
<span style={{ color: "#eab308", marginRight: "6px", flexShrink: 0 }} title="Commit Hash">{item.hash}</span>
|
|
1706
|
+
<span style={{ flex: 1, textOverflow: "ellipsis", overflow: "hidden", whiteSpace: "nowrap", color: "#cbd5e1" }} title={item.subject}>
|
|
1707
|
+
{item.subject}
|
|
1708
|
+
</span>
|
|
1709
|
+
<span style={{ color: "var(--muted)", fontSize: "0.55rem", marginLeft: "6px", flexShrink: 0 }} title={`${item.author} (${item.date})`}>
|
|
1710
|
+
{item.date}
|
|
1711
|
+
</span>
|
|
1712
|
+
</>
|
|
1713
|
+
)}
|
|
1714
|
+
</div>
|
|
1715
|
+
))}
|
|
1716
|
+
</div>
|
|
1717
|
+
)}
|
|
1718
|
+
</div>
|
|
1719
|
+
)}
|
|
1720
|
+
</div>
|
|
1393
1721
|
</div>
|
|
1394
1722
|
) : (
|
|
1395
1723
|
<div style={{ padding: "1rem", color: "var(--muted)", fontSize: "0.75rem", fontStyle: "italic" }}>
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
module.exports=[24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},93695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},18622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,r)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},14747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},5687,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),n=e.i(59756),a=e.i(61916),i=e.i(74677),o=e.i(69741),l=e.i(16795),u=e.i(87718),c=e.i(95169),d=e.i(47587),p=e.i(66012),f=e.i(70101),g=e.i(26937),x=e.i(10372),h=e.i(93695);e.i(52474);var R=e.i(220),w=e.i(89171),v=e.i(24361),m=e.i(33405),y=e.i(22734),N=e.i(14747);let E=(0,v.promisify)(m.exec);async function j(e){try{let{searchParams:t}=new URL(e.url),r=t.get("action"),s=t.get("root"),n=t.get("file"),a=(s&&y.default.existsSync(s)?s:process.env.ORIGINAL_CWD||process.cwd()).replace(/\\/g,"/");try{await E("git rev-parse --is-inside-work-tree",{cwd:a})}catch{return w.NextResponse.json({success:!0,isGit:!1,files:[]})}if("status"===r){let{stdout:e}=await E("git status --porcelain",{cwd:a}),t=e.split(/\r?\n/).filter(Boolean).map(e=>{let t=e.substring(0,1),r=e.substring(1,2),s=e.substring(0,2),n=e.substring(3).trim();n.startsWith('"')&&n.endsWith('"')&&(n=n.slice(1,-1));let i=N.default.join(a,n).replace(/\\/g,"/");return{status:s.trim(),indexStatus:t,worktreeStatus:r,relativePath:n,absolutePath:i,name:N.default.basename(n)}}),r="";try{let{stdout:e}=await E("git rev-parse --abbrev-ref HEAD",{cwd:a});r=e.trim()}catch{}let s=0,n=0;try{let{stdout:e}=await E("git rev-list --left-right --count HEAD...@{u}",{cwd:a}),t=e.trim().split(/\s+/);2===t.length&&(s=parseInt(t[0],10)||0,n=parseInt(t[1],10)||0)}catch{}return w.NextResponse.json({success:!0,isGit:!0,files:t,branch:r,ahead:s,behind:n})}if("diff"===r){if(!n)return w.NextResponse.json({error:"Missing file parameter"},{status:400});let e=N.default.resolve(a,n).replace(/\\/g,"/");if(!y.default.existsSync(e))return w.NextResponse.json({error:"File not found"},{status:404});let{stdout:t}=await E("git status --porcelain -- "+JSON.stringify(n),{cwd:a});if(t.startsWith("??")){let t=y.default.readFileSync(e,"utf8").split(/\r?\n/).map(e=>"+"+e).join("\n");return w.NextResponse.json({success:!0,diff:t})}try{let{stdout:e}=await E(`git diff --no-color -- ${JSON.stringify(n)}`,{cwd:a});return w.NextResponse.json({success:!0,diff:e})}catch{return w.NextResponse.json({success:!0,diff:"Binary file or diff unavailable."})}}return w.NextResponse.json({error:"Invalid action"},{status:400})}catch(t){let e=t instanceof Error?t.message:"Unknown error";return w.NextResponse.json({error:e},{status:500})}}async function C(e){try{let{action:t,rootPath:r,file:s,message:n}=await e.json(),a=(r&&y.default.existsSync(r)?r:process.env.ORIGINAL_CWD||process.cwd()).replace(/\\/g,"/");try{await E("git rev-parse --is-inside-work-tree",{cwd:a})}catch{return w.NextResponse.json({error:"Not a git repository"},{status:400})}if("stage"===t)return s?await E(`git add ${JSON.stringify(s)}`,{cwd:a}):await E("git add -A",{cwd:a}),w.NextResponse.json({success:!0});if("unstage"===t)return s?await E(`git reset HEAD -- ${JSON.stringify(s)}`,{cwd:a}):await E("git reset HEAD -- .",{cwd:a}),w.NextResponse.json({success:!0});if("discard"===t){if(!s)return w.NextResponse.json({error:"Missing file parameter"},{status:400});let e=N.default.resolve(a,s).replace(/\\/g,"/"),{stdout:t}=await E("git status --porcelain -- "+JSON.stringify(s),{cwd:a});return t.startsWith("??")?y.default.existsSync(e)&&y.default.unlinkSync(e):await E(`git checkout -- ${JSON.stringify(s)}`,{cwd:a}),w.NextResponse.json({success:!0})}if("commit"===t){if(!n||!n.trim())return w.NextResponse.json({error:"Commit message cannot be empty"},{status:400});let{stdout:e}=await E(`git commit -m ${JSON.stringify(n.trim())}`,{cwd:a});return w.NextResponse.json({success:!0,output:e})}if("ignore"===t){if(!s)return w.NextResponse.json({error:"Missing file parameter"},{status:400});let e=N.default.join(a,".gitignore"),t="";if(y.default.existsSync(e)&&(t=y.default.readFileSync(e,"utf8")),!t.split(/\r?\n/).includes(s)){let r=t.endsWith("\n")||""===t?"":"\n";y.default.appendFileSync(e,`${r}${s}
|
|
2
|
-
`)}return w.NextResponse.json({success:!0})}if("pull"===t){let{stdout:e,stderr:t}=await E("git pull",{cwd:a});return w.NextResponse.json({success:!0,output:e+t})}if("push"===t){let{stdout:e,stderr:t}=await E("git push",{cwd:a});return w.NextResponse.json({success:!0,output:e+t})}return w.NextResponse.json({error:"Invalid action"},{status:400})}catch(t){let e=t instanceof Error?t.message:"Unknown error";return w.NextResponse.json({error:e},{status:500})}}e.s(["GET",0,j,"POST",0,C],89717);var S=e.i(89717);let b=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/git/route",pathname:"/api/git",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/git/route.ts",nextConfigOutput:"",userland:S,...{}}),{workAsyncStorage:A,workUnitAsyncStorage:O,serverHooks:k}=b;async function q(e,t,s){s.requestMeta&&(0,n.setRequestMeta)(e,s.requestMeta),b.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/git/route";w=w.replace(/\/index$/,"")||"/";let v=await b.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:m,deploymentId:y,params:N,nextConfig:E,parsedUrl:j,isDraftMode:C,prerenderManifest:S,routerServerContext:A,isOnDemandRevalidate:O,revalidateOnlyGenerated:k,resolvedPathname:q,clientReferenceManifest:T,serverActionsManifest:_}=v,P=(0,o.normalizeAppPath)(w),I=!!(S.dynamicRoutes[P]||S.routes[q]),H=async()=>((null==A?void 0:A.render404)?await A.render404(e,t,j,!1):t.end("This page could not be found"),null);if(I&&!C){let e=!!S.routes[q],t=S.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(E.adapterPath)return await H();throw new h.NoFallbackError}}let D=null;!I||b.isDev||C||(D="/index"===(D=q)?"/":D);let U=!0===b.isDev||!I,M=I&&!U;_&&T&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:T,serverActionsManifest:_});let $=e.method||"GET",F=(0,a.getTracer)(),W=F.getActiveScopeSpan(),B=!!(null==A?void 0:A.isWrappedByNextServer),G=!!(0,n.getRequestMeta)(e,"minimalMode"),K=(0,n.getRequestMeta)(e,"incrementalCache")||await b.getIncrementalCache(e,E,S,G);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let L={params:N,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:U,incrementalCache:K,cacheLifeProfiles:E.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>b.onRequestError(e,t,s,n,A)},sharedContext:{buildId:m,deploymentId:y}},J=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),X=u.NextRequestAdapter.fromNodeNextRequest(J,(0,u.signalFromNodeResponse)(t));try{let n,i=async e=>b.handle(X,L).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let s=r.get("next.route");if(s){let t=`${$} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",s),n.updateName(t))}else e.updateName(`${$} ${w}`)}),o=async n=>{var a,o;let l=async({previousCacheEntry:r})=>{try{if(!G&&O&&k&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(n);e.fetchMetrics=L.renderOpts.fetchMetrics;let o=L.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let l=L.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(J,V,a,L.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[x.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==L.renderOpts.collectedRevalidate&&!(L.renderOpts.collectedRevalidate>=x.INFINITE_CACHE)&&L.renderOpts.collectedRevalidate,s=void 0===L.renderOpts.collectedExpire||L.renderOpts.collectedExpire>=x.INFINITE_CACHE?void 0:L.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await b.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,A),t}},u=await b.handleResponse({req:e,nextConfig:E,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:O,revalidateOnlyGenerated:k,responseGenerator:l,waitUntil:s.waitUntil,isMinimalMode:G});if(!I)return null;if((null==u||null==(a=u.value)?void 0:a.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(o=u.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});G||t.setHeader("x-nextjs-cache",O?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),C&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return G&&I||c.delete(x.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,g.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(J,V,new Response(u.value.body,{headers:c,status:u.value.status||200})),null};B&&W?await o(W):(n=F.getActiveScopeSpan(),await F.withPropagatedContext(e.headers,()=>F.trace(c.BaseServerSpan.handleRequest,{spanName:`${$} ${w}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!B))}catch(t){if(t instanceof h.NoFallbackError||await b.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:O})},!1,A),I)throw t;return await (0,p.sendResponse)(J,V,new Response(null,{status:500})),null}}e.s(["handler",0,q,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:O})},"routeModule",0,b,"serverHooks",0,k,"workAsyncStorage",0,A,"workUnitAsyncStorage",0,O],5687)}];
|
|
3
|
-
|
|
4
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0kn5tap._.js.map
|