neural-loom 0.2.59 → 0.2.60
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/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 +2 -2
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- 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/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/{10pqt4p7e3rk1.js → 07r_au7dcyu8l.js} +1 -1
- package/.next/static/chunks/{0-vb7c~yrtpon.js → 0y~7jjqbr14.5.js} +12 -2
- package/.next/trace +1 -1
- package/.next/trace-build +1 -1
- package/package.json +2 -1
- package/src/app/components/TerminalConsole.tsx +314 -11
- /package/.next/static/{cwv8IVp6ik4mwOjuM24B1 → PdRX_M_W5hqhNmHxYt-oH}/_buildManifest.js +0 -0
- /package/.next/static/{cwv8IVp6ik4mwOjuM24B1 → PdRX_M_W5hqhNmHxYt-oH}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{cwv8IVp6ik4mwOjuM24B1 → PdRX_M_W5hqhNmHxYt-oH}/_ssgManifest.js +0 -0
package/.next/trace
CHANGED
|
@@ -1 +1 @@
|
|
|
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"}]
|
|
1
|
+
[{"name":"generate-buildid","duration":289,"timestamp":15887653929,"id":4,"parentId":1,"tags":{},"startTime":1782098854855,"traceId":"f3194e3b8a8014eb"},{"name":"load-custom-routes","duration":354,"timestamp":15887654335,"id":5,"parentId":1,"tags":{},"startTime":1782098854855,"traceId":"f3194e3b8a8014eb"},{"name":"create-dist-dir","duration":839,"timestamp":15887654727,"id":6,"parentId":1,"tags":{},"startTime":1782098854855,"traceId":"f3194e3b8a8014eb"},{"name":"clean","duration":716,"timestamp":15887658946,"id":7,"parentId":1,"tags":{},"startTime":1782098854860,"traceId":"f3194e3b8a8014eb"},{"name":"discover-routes","duration":6632,"timestamp":15887686082,"id":8,"parentId":1,"tags":{},"startTime":1782098854887,"traceId":"f3194e3b8a8014eb"},{"name":"create-root-mapping","duration":66,"timestamp":15887692767,"id":9,"parentId":1,"tags":{},"startTime":1782098854893,"traceId":"f3194e3b8a8014eb"},{"name":"generate-route-types","duration":19104,"timestamp":15887694530,"id":10,"parentId":1,"tags":{},"startTime":1782098854895,"traceId":"f3194e3b8a8014eb"},{"name":"public-dir-conflict-check","duration":128,"timestamp":15887713821,"id":11,"parentId":1,"tags":{},"startTime":1782098854915,"traceId":"f3194e3b8a8014eb"},{"name":"generate-routes-manifest","duration":2718,"timestamp":15887714075,"id":12,"parentId":1,"tags":{},"startTime":1782098854915,"traceId":"f3194e3b8a8014eb"},{"name":"run-turbopack","duration":2687848,"timestamp":15887727011,"id":14,"parentId":1,"tags":{},"startTime":1782098854928,"traceId":"f3194e3b8a8014eb"},{"name":"turbopack-build-events","duration":61,"timestamp":15888089614,"id":15,"parentId":1,"tags":{},"startTime":1782098855290,"traceId":"f3194e3b8a8014eb"},{"name":"run-typescript","duration":4891153,"timestamp":15890430282,"id":16,"parentId":1,"tags":{},"startTime":1782098857631,"traceId":"f3194e3b8a8014eb"},{"name":"generate-required-server-files","duration":1502,"timestamp":15895323235,"id":18,"parentId":1,"tags":{},"startTime":1782098862524,"traceId":"f3194e3b8a8014eb"},{"name":"check-static-error-page","duration":10695,"timestamp":15895474390,"id":20,"parentId":19,"tags":{},"startTime":1782098862675,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":809632,"timestamp":15895491271,"id":44,"parentId":22,"tags":{},"startTime":1782098862692,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":821655,"timestamp":15895479375,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1782098862680,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":962011,"timestamp":15895492098,"id":50,"parentId":28,"tags":{},"startTime":1782098862693,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":972768,"timestamp":15895481401,"id":28,"parentId":19,"tags":{"page":"/api/git"},"startTime":1782098862682,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":963600,"timestamp":15895490937,"id":43,"parentId":21,"tags":{},"startTime":1782098862692,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":977569,"timestamp":15895477017,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1782098862678,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":977005,"timestamp":15895491661,"id":46,"parentId":24,"tags":{},"startTime":1782098862692,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":988270,"timestamp":15895480469,"id":24,"parentId":19,"tags":{"page":"/api/context/claude"},"startTime":1782098862681,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":977395,"timestamp":15895492686,"id":56,"parentId":34,"tags":{},"startTime":1782098862693,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":987220,"timestamp":15895482912,"id":34,"parentId":19,"tags":{"page":"/api/sessions/scope"},"startTime":1782098862684,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":988038,"timestamp":15895492494,"id":53,"parentId":31,"tags":{},"startTime":1782098862693,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":998313,"timestamp":15895482271,"id":31,"parentId":19,"tags":{"page":"/api/sessions/input"},"startTime":1782098862683,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":988318,"timestamp":15895492621,"id":55,"parentId":33,"tags":{},"startTime":1782098862693,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":998299,"timestamp":15895482684,"id":33,"parentId":19,"tags":{"page":"/api/sessions"},"startTime":1782098862683,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":991274,"timestamp":15895492020,"id":49,"parentId":27,"tags":{},"startTime":1782098862693,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":1002244,"timestamp":15895481100,"id":27,"parentId":19,"tags":{"page":"/api/files"},"startTime":1782098862682,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":992167,"timestamp":15895491801,"id":47,"parentId":25,"tags":{},"startTime":1782098862693,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":1003312,"timestamp":15895480704,"id":25,"parentId":19,"tags":{"page":"/api/context"},"startTime":1782098862681,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":1016309,"timestamp":15895493005,"id":60,"parentId":38,"tags":{},"startTime":1782098862694,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":1025284,"timestamp":15895484079,"id":38,"parentId":19,"tags":{"page":"/api/sql/connections"},"startTime":1782098862685,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":1017937,"timestamp":15895491527,"id":45,"parentId":23,"tags":{},"startTime":1782098862692,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":1029319,"timestamp":15895480171,"id":23,"parentId":19,"tags":{"page":"/api/context/aider"},"startTime":1782098862681,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":1017691,"timestamp":15895491871,"id":48,"parentId":26,"tags":{},"startTime":1782098862693,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":1028668,"timestamp":15895480913,"id":26,"parentId":19,"tags":{"page":"/api/context/ssh"},"startTime":1782098862682,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":1018994,"timestamp":15895493044,"id":61,"parentId":39,"tags":{},"startTime":1782098862694,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":1027821,"timestamp":15895484269,"id":39,"parentId":19,"tags":{"page":"/api/sql/mcp"},"startTime":1782098862685,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":1019584,"timestamp":15895493077,"id":62,"parentId":40,"tags":{},"startTime":1782098862694,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":1028258,"timestamp":15895484435,"id":40,"parentId":19,"tags":{"page":"/api/sql/query"},"startTime":1782098862685,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":1020630,"timestamp":15895492181,"id":51,"parentId":29,"tags":{},"startTime":1782098862693,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":1031137,"timestamp":15895481693,"id":29,"parentId":19,"tags":{"page":"/api/recents"},"startTime":1782098862682,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":1023500,"timestamp":15895492961,"id":59,"parentId":37,"tags":{},"startTime":1782098862694,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":1032648,"timestamp":15895483859,"id":37,"parentId":19,"tags":{"page":"/api/sessions/stop"},"startTime":1782098862685,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":1024405,"timestamp":15895492839,"id":57,"parentId":35,"tags":{},"startTime":1782098862694,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":1034082,"timestamp":15895483216,"id":35,"parentId":19,"tags":{"page":"/api/sessions/start"},"startTime":1782098862684,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":1024984,"timestamp":15895492916,"id":58,"parentId":36,"tags":{},"startTime":1782098862694,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":1034306,"timestamp":15895483623,"id":36,"parentId":19,"tags":{"page":"/api/sessions/stats"},"startTime":1782098862684,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":1024968,"timestamp":15895493107,"id":63,"parentId":41,"tags":{},"startTime":1782098862694,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":1033513,"timestamp":15895484595,"id":41,"parentId":19,"tags":{"page":"/api/sql/schema"},"startTime":1782098862685,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":1025806,"timestamp":15895492361,"id":52,"parentId":30,"tags":{},"startTime":1782098862693,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":1036223,"timestamp":15895481957,"id":30,"parentId":19,"tags":{"page":"/api/sessions/inject"},"startTime":1782098862683,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":1030634,"timestamp":15895492563,"id":54,"parentId":32,"tags":{},"startTime":1782098862693,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":1040760,"timestamp":15895482479,"id":32,"parentId":19,"tags":{"page":"/api/sessions/launch"},"startTime":1782098862683,"traceId":"f3194e3b8a8014eb"},{"name":"is-page-static","duration":1026283,"timestamp":15895497021,"id":64,"parentId":42,"tags":{},"startTime":1782098862698,"traceId":"f3194e3b8a8014eb"},{"name":"check-page","duration":1038567,"timestamp":15895484748,"id":42,"parentId":19,"tags":{"page":"/"},"startTime":1782098862685,"traceId":"f3194e3b8a8014eb"},{"name":"static-check","duration":1049525,"timestamp":15895473813,"id":19,"parentId":1,"tags":{},"startTime":1782098862675,"traceId":"f3194e3b8a8014eb"},{"name":"write-routes-manifest","duration":870,"timestamp":15896524523,"id":66,"parentId":1,"tags":{},"startTime":1782098863725,"traceId":"f3194e3b8a8014eb"},{"name":"load-dotenv","duration":50,"timestamp":15896546193,"id":69,"parentId":68,"tags":{},"startTime":1782098863747,"traceId":"f3194e3b8a8014eb"},{"name":"run-export-path-map","duration":441,"timestamp":15896552270,"id":70,"parentId":68,"tags":{},"startTime":1782098863753,"traceId":"f3194e3b8a8014eb"},{"name":"next-export","duration":832486,"timestamp":15896545248,"id":68,"parentId":1,"tags":{},"startTime":1782098863746,"traceId":"f3194e3b8a8014eb"},{"name":"move-exported-app-not-found-","duration":2156,"timestamp":15897379653,"id":71,"parentId":67,"tags":{},"startTime":1782098864580,"traceId":"f3194e3b8a8014eb"},{"name":"move-exported-app-global-error-","duration":1749,"timestamp":15897381943,"id":72,"parentId":67,"tags":{},"startTime":1782098864583,"traceId":"f3194e3b8a8014eb"},{"name":"static-generation","duration":855737,"timestamp":15896531954,"id":67,"parentId":1,"tags":{},"startTime":1782098863733,"traceId":"f3194e3b8a8014eb"},{"name":"write-routes-manifest","duration":951,"timestamp":15897387812,"id":73,"parentId":1,"tags":{},"startTime":1782098864589,"traceId":"f3194e3b8a8014eb"},{"name":"print-tree-view","duration":2895,"timestamp":15897410621,"id":74,"parentId":1,"tags":{},"startTime":1782098864611,"traceId":"f3194e3b8a8014eb"},{"name":"write-route-bundle-stats","duration":11820,"timestamp":15897413546,"id":75,"parentId":1,"tags":{},"startTime":1782098864614,"traceId":"f3194e3b8a8014eb"},{"name":"telemetry-flush","duration":163593,"timestamp":15897425420,"id":76,"parentId":1,"tags":{},"startTime":1782098864626,"traceId":"f3194e3b8a8014eb"},{"name":"next-build","duration":10009052,"timestamp":15887579991,"id":1,"tags":{"buildMode":"default","version":"16.2.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782098854781,"traceId":"f3194e3b8a8014eb"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":2687848,"timestamp":15887727011,"id":14,"parentId":1,"tags":{},"startTime":1782098854928,"traceId":"f3194e3b8a8014eb"},{"name":"turbopack-build-events","duration":61,"timestamp":15888089614,"id":15,"parentId":1,"tags":{},"startTime":1782098855290,"traceId":"f3194e3b8a8014eb"},{"name":"run-typescript","duration":4891153,"timestamp":15890430282,"id":16,"parentId":1,"tags":{},"startTime":1782098857631,"traceId":"f3194e3b8a8014eb"},{"name":"static-check","duration":1049525,"timestamp":15895473813,"id":19,"parentId":1,"tags":{},"startTime":1782098862675,"traceId":"f3194e3b8a8014eb"},{"name":"static-generation","duration":855737,"timestamp":15896531954,"id":67,"parentId":1,"tags":{},"startTime":1782098863733,"traceId":"f3194e3b8a8014eb"},{"name":"telemetry-flush","duration":163593,"timestamp":15897425420,"id":76,"parentId":1,"tags":{},"startTime":1782098864626,"traceId":"f3194e3b8a8014eb"},{"name":"next-build","duration":10009052,"timestamp":15887579991,"id":1,"tags":{"buildMode":"default","version":"16.2.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782098854781,"traceId":"f3194e3b8a8014eb"}]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "neural-loom",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.60",
|
|
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
|
+
"@xterm/addon-search": "^0.16.0",
|
|
24
25
|
"mssql": "^12.5.5",
|
|
25
26
|
"next": "16.2.6",
|
|
26
27
|
"node-pty": "^1.1.0",
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
3
|
|
|
4
|
-
import { useEffect, useRef } from "react";
|
|
4
|
+
import { useEffect, useRef, useState } from "react";
|
|
5
5
|
import { Terminal } from "xterm";
|
|
6
6
|
import { FitAddon } from "xterm-addon-fit";
|
|
7
|
+
import { SearchAddon } from "@xterm/addon-search";
|
|
7
8
|
import "xterm/css/xterm.css";
|
|
8
9
|
|
|
9
10
|
interface TerminalConsoleProps {
|
|
@@ -12,12 +13,111 @@ interface TerminalConsoleProps {
|
|
|
12
13
|
wsPort?: number;
|
|
13
14
|
}
|
|
14
15
|
|
|
16
|
+
interface LogBufferItem {
|
|
17
|
+
type: "output" | "error" | "raw";
|
|
18
|
+
data?: string;
|
|
19
|
+
message?: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
15
22
|
export default function TerminalConsole({ sessionId, height = "400px", wsPort = 3001 }: TerminalConsoleProps) {
|
|
16
23
|
const terminalRef = useRef<HTMLDivElement>(null);
|
|
17
24
|
const xtermRef = useRef<Terminal | null>(null);
|
|
18
25
|
const wsRef = useRef<WebSocket | null>(null);
|
|
26
|
+
const searchInputRef = useRef<HTMLInputElement | null>(null);
|
|
27
|
+
|
|
28
|
+
// Pause & Resume scroll buffer state
|
|
29
|
+
const [isPaused, setIsPaused] = useState(false);
|
|
30
|
+
const [bufferedLogsCount, setBufferedLogsCount] = useState(0);
|
|
31
|
+
const isPausedRef = useRef(false);
|
|
32
|
+
const bufferedLogsRef = useRef<LogBufferItem[]>([]);
|
|
33
|
+
|
|
34
|
+
// Search state
|
|
35
|
+
const [searchOpen, setSearchOpen] = useState(false);
|
|
36
|
+
const [searchQuery, setSearchQuery] = useState("");
|
|
37
|
+
const [caseSensitive, setCaseSensitive] = useState(false);
|
|
38
|
+
const searchAddonRef = useRef<SearchAddon | null>(null);
|
|
39
|
+
|
|
40
|
+
// Focus search input when opened
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
if (searchOpen && searchInputRef.current) {
|
|
43
|
+
searchInputRef.current.focus();
|
|
44
|
+
searchInputRef.current.select();
|
|
45
|
+
}
|
|
46
|
+
}, [searchOpen]);
|
|
47
|
+
|
|
48
|
+
// Handle keyboard events in search bar
|
|
49
|
+
const handleSearchKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {
|
|
50
|
+
if (e.key === "Enter") {
|
|
51
|
+
e.preventDefault();
|
|
52
|
+
if (e.shiftKey) {
|
|
53
|
+
searchPrev();
|
|
54
|
+
} else {
|
|
55
|
+
searchNext();
|
|
56
|
+
}
|
|
57
|
+
} else if (e.key === "Escape") {
|
|
58
|
+
e.preventDefault();
|
|
59
|
+
setSearchOpen(false);
|
|
60
|
+
xtermRef.current?.focus();
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const searchNext = () => {
|
|
65
|
+
if (searchAddonRef.current && searchQuery) {
|
|
66
|
+
searchAddonRef.current.findNext(searchQuery, { caseSensitive, incremental: false });
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const searchPrev = () => {
|
|
71
|
+
if (searchAddonRef.current && searchQuery) {
|
|
72
|
+
searchAddonRef.current.findPrevious(searchQuery, { caseSensitive, incremental: false });
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
// Incremental search as user types
|
|
77
|
+
useEffect(() => {
|
|
78
|
+
if (searchAddonRef.current && searchQuery) {
|
|
79
|
+
searchAddonRef.current.findNext(searchQuery, { caseSensitive, incremental: true });
|
|
80
|
+
}
|
|
81
|
+
}, [searchQuery, caseSensitive]);
|
|
82
|
+
|
|
83
|
+
// Pause and Resume control handlers
|
|
84
|
+
const togglePause = () => {
|
|
85
|
+
setIsPaused((prev) => {
|
|
86
|
+
const next = !prev;
|
|
87
|
+
isPausedRef.current = next;
|
|
88
|
+
if (!next) {
|
|
89
|
+
flushBufferedLogs();
|
|
90
|
+
}
|
|
91
|
+
return next;
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
const flushBufferedLogs = () => {
|
|
96
|
+
const logs = bufferedLogsRef.current;
|
|
97
|
+
bufferedLogsRef.current = [];
|
|
98
|
+
setBufferedLogsCount(0);
|
|
99
|
+
const term = xtermRef.current;
|
|
100
|
+
if (!term) return;
|
|
101
|
+
for (const log of logs) {
|
|
102
|
+
if (log.type === "output" && log.data) {
|
|
103
|
+
term.write(log.data);
|
|
104
|
+
} else if (log.type === "error" && log.message) {
|
|
105
|
+
term.write(`\r\n\x1b[1;31m[System Error] ${log.message}\x1b[0m\r\n`);
|
|
106
|
+
} else if (log.type === "raw" && log.data) {
|
|
107
|
+
term.write(log.data);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
};
|
|
19
111
|
|
|
20
112
|
useEffect(() => {
|
|
113
|
+
// Reset states on session switch
|
|
114
|
+
setIsPaused(false);
|
|
115
|
+
isPausedRef.current = false;
|
|
116
|
+
bufferedLogsRef.current = [];
|
|
117
|
+
setBufferedLogsCount(0);
|
|
118
|
+
setSearchOpen(false);
|
|
119
|
+
setSearchQuery("");
|
|
120
|
+
|
|
21
121
|
if (!terminalRef.current) return;
|
|
22
122
|
|
|
23
123
|
let isDisposed = false;
|
|
@@ -47,9 +147,23 @@ export default function TerminalConsole({ sessionId, height = "400px", wsPort =
|
|
|
47
147
|
const fitAddon = new FitAddon();
|
|
48
148
|
term.loadAddon(fitAddon);
|
|
49
149
|
|
|
150
|
+
const searchAddon = new SearchAddon();
|
|
151
|
+
term.loadAddon(searchAddon);
|
|
152
|
+
searchAddonRef.current = searchAddon;
|
|
153
|
+
|
|
50
154
|
term.open(terminalRef.current);
|
|
51
155
|
term.focus();
|
|
52
156
|
|
|
157
|
+
// Attach search key handler
|
|
158
|
+
term.attachCustomKeyEventHandler((e) => {
|
|
159
|
+
if (e.ctrlKey && e.key === "f" && e.type === "keydown") {
|
|
160
|
+
e.preventDefault();
|
|
161
|
+
setSearchOpen(true);
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
return true;
|
|
165
|
+
});
|
|
166
|
+
|
|
53
167
|
// Monkeypatch to prevent crash during unmount / disposal
|
|
54
168
|
try {
|
|
55
169
|
const core = (term as any)._core;
|
|
@@ -159,13 +273,28 @@ export default function TerminalConsole({ sessionId, height = "400px", wsPort =
|
|
|
159
273
|
}
|
|
160
274
|
term.focus();
|
|
161
275
|
} else if (msg.type === "output") {
|
|
162
|
-
|
|
276
|
+
if (isPausedRef.current) {
|
|
277
|
+
bufferedLogsRef.current.push({ type: "output", data: msg.data });
|
|
278
|
+
setBufferedLogsCount(bufferedLogsRef.current.length);
|
|
279
|
+
} else {
|
|
280
|
+
term.write(msg.data);
|
|
281
|
+
}
|
|
163
282
|
} else if (msg.type === "error") {
|
|
164
|
-
|
|
283
|
+
if (isPausedRef.current) {
|
|
284
|
+
bufferedLogsRef.current.push({ type: "error", message: msg.message });
|
|
285
|
+
setBufferedLogsCount(bufferedLogsRef.current.length);
|
|
286
|
+
} else {
|
|
287
|
+
term.write(`\r\n\x1b[1;31m[System Error] ${msg.message}\x1b[0m\r\n`);
|
|
288
|
+
}
|
|
165
289
|
}
|
|
166
290
|
} catch {
|
|
167
291
|
// Fallback for raw stream chunks
|
|
168
|
-
|
|
292
|
+
if (isPausedRef.current) {
|
|
293
|
+
bufferedLogsRef.current.push({ type: "raw", data: event.data });
|
|
294
|
+
setBufferedLogsCount(bufferedLogsRef.current.length);
|
|
295
|
+
} else {
|
|
296
|
+
term.write(event.data);
|
|
297
|
+
}
|
|
169
298
|
}
|
|
170
299
|
};
|
|
171
300
|
|
|
@@ -232,16 +361,190 @@ export default function TerminalConsole({ sessionId, height = "400px", wsPort =
|
|
|
232
361
|
borderBottomLeftRadius: "12px",
|
|
233
362
|
borderBottomRightRadius: "12px",
|
|
234
363
|
overflow: "hidden",
|
|
235
|
-
|
|
364
|
+
display: "flex",
|
|
365
|
+
flexDirection: "column",
|
|
366
|
+
position: "relative"
|
|
236
367
|
}}
|
|
237
368
|
>
|
|
369
|
+
{/* Console Mini Toolbar */}
|
|
238
370
|
<div
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
371
|
+
style={{
|
|
372
|
+
display: "flex",
|
|
373
|
+
alignItems: "center",
|
|
374
|
+
justifyContent: "space-between",
|
|
375
|
+
padding: "6px 12px",
|
|
376
|
+
backgroundColor: "#030406",
|
|
377
|
+
borderBottom: "1px solid var(--border)",
|
|
378
|
+
fontSize: "0.7rem",
|
|
379
|
+
color: "var(--muted)",
|
|
380
|
+
userSelect: "none"
|
|
381
|
+
}}
|
|
382
|
+
>
|
|
383
|
+
<div style={{ display: "flex", alignItems: "center", gap: "0.5rem" }}>
|
|
384
|
+
<span>Session ID: <strong style={{ color: "#cbd5e1", fontFamily: "var(--font-mono)" }}>{sessionId.substring(0, 8)}</strong></span>
|
|
385
|
+
{isPaused && (
|
|
386
|
+
<span style={{
|
|
387
|
+
backgroundColor: "rgba(217, 119, 82, 0.15)",
|
|
388
|
+
color: "#e0825f",
|
|
389
|
+
padding: "1px 6px",
|
|
390
|
+
borderRadius: "3px",
|
|
391
|
+
fontWeight: 600,
|
|
392
|
+
fontSize: "0.6rem",
|
|
393
|
+
border: "1px solid rgba(217, 119, 82, 0.25)"
|
|
394
|
+
}}>
|
|
395
|
+
⏸️ Scroll Paused ({bufferedLogsCount} queued)
|
|
396
|
+
</span>
|
|
397
|
+
)}
|
|
398
|
+
</div>
|
|
399
|
+
<div style={{ display: "flex", gap: "0.35rem", alignItems: "center" }}>
|
|
400
|
+
<button
|
|
401
|
+
onClick={togglePause}
|
|
402
|
+
style={{
|
|
403
|
+
padding: "2px 6px",
|
|
404
|
+
borderRadius: "3px",
|
|
405
|
+
border: isPaused ? "1px solid #d97706" : "1px solid var(--border)",
|
|
406
|
+
backgroundColor: isPaused ? "rgba(217, 119, 82, 0.15)" : "transparent",
|
|
407
|
+
color: isPaused ? "#e0825f" : "var(--muted)",
|
|
408
|
+
fontSize: "0.65rem",
|
|
409
|
+
fontWeight: 600,
|
|
410
|
+
cursor: "pointer",
|
|
411
|
+
}}
|
|
412
|
+
title={isPaused ? "Resume stdout scrolling" : "Pause stdout scroll buffering"}
|
|
413
|
+
>
|
|
414
|
+
{isPaused ? "▶️ Resume" : "⏸️ Pause Scroll"}
|
|
415
|
+
</button>
|
|
416
|
+
<button
|
|
417
|
+
onClick={() => setSearchOpen(!searchOpen)}
|
|
418
|
+
style={{
|
|
419
|
+
padding: "2px 6px",
|
|
420
|
+
borderRadius: "3px",
|
|
421
|
+
border: searchOpen ? "1px solid var(--primary)" : "1px solid var(--border)",
|
|
422
|
+
backgroundColor: searchOpen ? "rgba(168, 85, 247, 0.15)" : "transparent",
|
|
423
|
+
color: searchOpen ? "#c084fc" : "var(--muted)",
|
|
424
|
+
fontSize: "0.65rem",
|
|
425
|
+
fontWeight: 600,
|
|
426
|
+
cursor: "pointer",
|
|
427
|
+
}}
|
|
428
|
+
title="Search console output (Ctrl+F)"
|
|
429
|
+
>
|
|
430
|
+
🔍 Search
|
|
431
|
+
</button>
|
|
432
|
+
</div>
|
|
433
|
+
</div>
|
|
434
|
+
|
|
435
|
+
<div style={{ flex: 1, position: "relative", minHeight: 0 }}>
|
|
436
|
+
{/* Search Overlay */}
|
|
437
|
+
{searchOpen && (
|
|
438
|
+
<div
|
|
439
|
+
style={{
|
|
440
|
+
position: "absolute",
|
|
441
|
+
top: "8px",
|
|
442
|
+
right: "24px",
|
|
443
|
+
zIndex: 50,
|
|
444
|
+
backgroundColor: "#0b101b",
|
|
445
|
+
border: "1px solid var(--border-focus)",
|
|
446
|
+
borderRadius: "6px",
|
|
447
|
+
padding: "6px 8px",
|
|
448
|
+
display: "flex",
|
|
449
|
+
alignItems: "center",
|
|
450
|
+
gap: "0.35rem",
|
|
451
|
+
boxShadow: "0 4px 12px rgba(0,0,0,0.5)"
|
|
452
|
+
}}
|
|
453
|
+
>
|
|
454
|
+
<input
|
|
455
|
+
ref={searchInputRef}
|
|
456
|
+
type="text"
|
|
457
|
+
value={searchQuery}
|
|
458
|
+
onChange={(e) => setSearchQuery(e.target.value)}
|
|
459
|
+
onKeyDown={handleSearchKeyDown}
|
|
460
|
+
placeholder="Find..."
|
|
461
|
+
style={{
|
|
462
|
+
backgroundColor: "#05070a",
|
|
463
|
+
border: "1px solid var(--border)",
|
|
464
|
+
borderRadius: "4px",
|
|
465
|
+
padding: "2px 6px",
|
|
466
|
+
color: "#e2e8f0",
|
|
467
|
+
fontSize: "0.7rem",
|
|
468
|
+
outline: "none",
|
|
469
|
+
width: "120px"
|
|
470
|
+
}}
|
|
471
|
+
/>
|
|
472
|
+
<button
|
|
473
|
+
onClick={searchPrev}
|
|
474
|
+
style={{
|
|
475
|
+
backgroundColor: "transparent",
|
|
476
|
+
border: "1px solid var(--border)",
|
|
477
|
+
color: "var(--foreground)",
|
|
478
|
+
borderRadius: "3px",
|
|
479
|
+
padding: "2px 4px",
|
|
480
|
+
cursor: "pointer",
|
|
481
|
+
fontSize: "0.65rem"
|
|
482
|
+
}}
|
|
483
|
+
title="Previous match (Shift+Enter)"
|
|
484
|
+
>
|
|
485
|
+
▲
|
|
486
|
+
</button>
|
|
487
|
+
<button
|
|
488
|
+
onClick={searchNext}
|
|
489
|
+
style={{
|
|
490
|
+
backgroundColor: "transparent",
|
|
491
|
+
border: "1px solid var(--border)",
|
|
492
|
+
color: "var(--foreground)",
|
|
493
|
+
borderRadius: "3px",
|
|
494
|
+
padding: "2px 4px",
|
|
495
|
+
cursor: "pointer",
|
|
496
|
+
fontSize: "0.65rem"
|
|
497
|
+
}}
|
|
498
|
+
title="Next match (Enter)"
|
|
499
|
+
>
|
|
500
|
+
▼
|
|
501
|
+
</button>
|
|
502
|
+
<button
|
|
503
|
+
onClick={() => setCaseSensitive(!caseSensitive)}
|
|
504
|
+
style={{
|
|
505
|
+
border: caseSensitive ? "1px solid var(--primary)" : "1px solid var(--border)",
|
|
506
|
+
backgroundColor: caseSensitive ? "rgba(168, 85, 247, 0.15)" : "transparent",
|
|
507
|
+
color: caseSensitive ? "#c084fc" : "var(--muted)",
|
|
508
|
+
borderRadius: "3px",
|
|
509
|
+
padding: "2px 4px",
|
|
510
|
+
cursor: "pointer",
|
|
511
|
+
fontSize: "0.65rem",
|
|
512
|
+
fontWeight: 600
|
|
513
|
+
}}
|
|
514
|
+
title="Match Case"
|
|
515
|
+
>
|
|
516
|
+
Aa
|
|
517
|
+
</button>
|
|
518
|
+
<button
|
|
519
|
+
onClick={() => {
|
|
520
|
+
setSearchOpen(false);
|
|
521
|
+
xtermRef.current?.focus();
|
|
522
|
+
}}
|
|
523
|
+
style={{
|
|
524
|
+
background: "none",
|
|
525
|
+
border: "none",
|
|
526
|
+
color: "var(--muted)",
|
|
527
|
+
cursor: "pointer",
|
|
528
|
+
fontSize: "0.75rem",
|
|
529
|
+
padding: "0 2px"
|
|
530
|
+
}}
|
|
531
|
+
title="Close search panel"
|
|
532
|
+
>
|
|
533
|
+
✖
|
|
534
|
+
</button>
|
|
535
|
+
</div>
|
|
536
|
+
)}
|
|
537
|
+
|
|
538
|
+
<div
|
|
539
|
+
ref={terminalRef}
|
|
540
|
+
style={{
|
|
541
|
+
width: "100%",
|
|
542
|
+
height: "100%",
|
|
543
|
+
padding: "8px"
|
|
544
|
+
}}
|
|
545
|
+
/>
|
|
546
|
+
</div>
|
|
245
547
|
</div>
|
|
246
548
|
);
|
|
247
549
|
}
|
|
550
|
+
|
|
File without changes
|
/package/.next/static/{cwv8IVp6ik4mwOjuM24B1 → PdRX_M_W5hqhNmHxYt-oH}/_clientMiddlewareManifest.js
RENAMED
|
File without changes
|
|
File without changes
|