neural-loom 0.2.60 → 0.2.61

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.
Files changed (185) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +3 -0
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/cache/.previewinfo +1 -1
  5. package/.next/cache/.rscinfo +1 -1
  6. package/.next/cache/.tsbuildinfo +1 -1
  7. package/.next/diagnostics/route-bundle-stats.json +2 -2
  8. package/.next/fallback-build-manifest.json +3 -3
  9. package/.next/prerender-manifest.json +3 -3
  10. package/.next/routes-manifest.json +18 -0
  11. package/.next/server/app/_global-error.html +1 -1
  12. package/.next/server/app/_global-error.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  15. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  16. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  17. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.html +1 -1
  19. package/.next/server/app/_not-found.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  24. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  25. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  26. package/.next/server/app/api/configs/route/app-paths-manifest.json +3 -0
  27. package/.next/server/app/api/configs/route/build-manifest.json +9 -0
  28. package/.next/server/app/api/configs/route/server-reference-manifest.json +4 -0
  29. package/.next/server/app/api/configs/route.js +6 -0
  30. package/.next/server/app/api/configs/route.js.map +5 -0
  31. package/.next/server/app/api/configs/route.js.nft.json +1 -0
  32. package/.next/server/app/api/configs/route_client-reference-manifest.js +3 -0
  33. package/.next/server/app/api/context/aider/route.js.nft.json +1 -1
  34. package/.next/server/app/api/context/claude/route.js.nft.json +1 -1
  35. package/.next/server/app/api/context/route.js.nft.json +1 -1
  36. package/.next/server/app/api/context/ssh/route.js.nft.json +1 -1
  37. package/.next/server/app/api/recents/route.js.nft.json +1 -1
  38. package/.next/server/app/api/sessions/inject/route.js +2 -2
  39. package/.next/server/app/api/sessions/inject/route.js.nft.json +1 -1
  40. package/.next/server/app/api/sessions/input/route.js +2 -2
  41. package/.next/server/app/api/sessions/input/route.js.nft.json +1 -1
  42. package/.next/server/app/api/sessions/launch/route.js +2 -2
  43. package/.next/server/app/api/sessions/launch/route.js.nft.json +1 -1
  44. package/.next/server/app/api/sessions/route.js +2 -2
  45. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  46. package/.next/server/app/api/sessions/scope/route.js +2 -2
  47. package/.next/server/app/api/sessions/scope/route.js.nft.json +1 -1
  48. package/.next/server/app/api/sessions/start/route.js +2 -2
  49. package/.next/server/app/api/sessions/start/route.js.nft.json +1 -1
  50. package/.next/server/app/api/sessions/stats/route.js +2 -2
  51. package/.next/server/app/api/sessions/stats/route.js.nft.json +1 -1
  52. package/.next/server/app/api/sessions/stop/route.js +2 -2
  53. package/.next/server/app/api/sessions/stop/route.js.nft.json +1 -1
  54. package/.next/server/app/api/sessions/upload-image/route/app-paths-manifest.json +3 -0
  55. package/.next/server/app/api/sessions/upload-image/route/build-manifest.json +9 -0
  56. package/.next/server/app/api/sessions/upload-image/route/server-reference-manifest.json +4 -0
  57. package/.next/server/app/api/sessions/upload-image/route.js +7 -0
  58. package/.next/server/app/api/sessions/upload-image/route.js.map +5 -0
  59. package/.next/server/app/api/sessions/upload-image/route.js.nft.json +1 -0
  60. package/.next/server/app/api/sessions/upload-image/route_client-reference-manifest.js +3 -0
  61. package/.next/server/app/api/sql/connections/route.js.nft.json +1 -1
  62. package/.next/server/app/api/sql/mcp/route.js.nft.json +1 -1
  63. package/.next/server/app/api/sql/query/route.js.nft.json +1 -1
  64. package/.next/server/app/api/sql/schema/route.js.nft.json +1 -1
  65. package/.next/server/app/api/telemetry/route/app-paths-manifest.json +3 -0
  66. package/.next/server/app/api/telemetry/route/build-manifest.json +9 -0
  67. package/.next/server/app/api/telemetry/route/server-reference-manifest.json +4 -0
  68. package/.next/server/app/api/telemetry/route.js +6 -0
  69. package/.next/server/app/api/telemetry/route.js.map +5 -0
  70. package/.next/server/app/api/telemetry/route.js.nft.json +1 -0
  71. package/.next/server/app/api/telemetry/route_client-reference-manifest.js +3 -0
  72. package/.next/server/app/index.html +1 -1
  73. package/.next/server/app/index.rsc +3 -3
  74. package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  75. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  76. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  77. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  78. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  79. package/.next/server/app/page/react-loadable-manifest.json +5 -5
  80. package/.next/server/app/page_client-reference-manifest.js +1 -1
  81. package/.next/server/app-paths-manifest.json +3 -0
  82. package/.next/server/chunks/[root-of-the-server]__0.ptwor._.js +1 -1
  83. package/.next/server/chunks/[root-of-the-server]__0.ptwor._.js.map +1 -1
  84. package/.next/server/chunks/[root-of-the-server]__00-sqou._.js +15 -0
  85. package/.next/server/chunks/{[root-of-the-server]__0thsozo._.js.map → [root-of-the-server]__00-sqou._.js.map} +1 -1
  86. package/.next/server/chunks/[root-of-the-server]__00l5btc._.js +1 -1
  87. package/.next/server/chunks/[root-of-the-server]__00l5btc._.js.map +1 -1
  88. package/.next/server/chunks/[root-of-the-server]__01621nz._.js +3 -0
  89. package/.next/server/chunks/[root-of-the-server]__01621nz._.js.map +1 -0
  90. package/.next/server/chunks/[root-of-the-server]__06men8g._.js +1 -1
  91. package/.next/server/chunks/[root-of-the-server]__06men8g._.js.map +1 -1
  92. package/.next/server/chunks/[root-of-the-server]__08r0s-s._.js +3 -0
  93. package/.next/server/chunks/[root-of-the-server]__08r0s-s._.js.map +1 -0
  94. package/.next/server/chunks/[root-of-the-server]__097vtn1._.js +15 -0
  95. package/.next/server/chunks/{[root-of-the-server]__0em6a~~._.js.map → [root-of-the-server]__097vtn1._.js.map} +1 -1
  96. package/.next/server/chunks/[root-of-the-server]__0_v2.a8._.js +15 -0
  97. package/.next/server/chunks/[root-of-the-server]__0_v2.a8._.js.map +1 -0
  98. package/.next/server/chunks/[root-of-the-server]__0co.g5k._.js +1 -1
  99. package/.next/server/chunks/[root-of-the-server]__0co.g5k._.js.map +1 -1
  100. package/.next/server/chunks/[root-of-the-server]__0e03ite._.js +15 -0
  101. package/.next/server/chunks/{[root-of-the-server]__10wwca8._.js.map → [root-of-the-server]__0e03ite._.js.map} +1 -1
  102. package/.next/server/chunks/[root-of-the-server]__0fxtx7z._.js +15 -0
  103. package/.next/server/chunks/[root-of-the-server]__0fxtx7z._.js.map +1 -0
  104. package/.next/server/chunks/[root-of-the-server]__0h.~hv6._.js +15 -0
  105. package/.next/server/chunks/{[root-of-the-server]__0s0is_9._.js.map → [root-of-the-server]__0h.~hv6._.js.map} +1 -1
  106. package/.next/server/chunks/[root-of-the-server]__0li1h1u._.js +33 -0
  107. package/.next/server/chunks/[root-of-the-server]__0li1h1u._.js.map +1 -0
  108. package/.next/server/chunks/[root-of-the-server]__0s1axek._.js +15 -0
  109. package/.next/server/chunks/{[root-of-the-server]__0i~01cv._.js.map → [root-of-the-server]__0s1axek._.js.map} +1 -1
  110. package/.next/server/chunks/[root-of-the-server]__0tq0maq._.js +15 -0
  111. package/.next/server/chunks/{[root-of-the-server]__0_o7_jj._.js.map → [root-of-the-server]__0tq0maq._.js.map} +1 -1
  112. package/.next/server/chunks/[root-of-the-server]__0viil6b._.js +15 -0
  113. package/.next/server/chunks/{[root-of-the-server]__07zx04e._.js.map → [root-of-the-server]__0viil6b._.js.map} +1 -1
  114. package/.next/server/chunks/_next-internal_server_app_api_configs_route_actions_087k_4j.js +3 -0
  115. package/.next/server/chunks/_next-internal_server_app_api_configs_route_actions_087k_4j.js.map +1 -0
  116. package/.next/server/chunks/_next-internal_server_app_api_sessions_upload-image_route_actions_09tfn3a.js +3 -0
  117. package/.next/server/chunks/_next-internal_server_app_api_sessions_upload-image_route_actions_09tfn3a.js.map +1 -0
  118. package/.next/server/chunks/_next-internal_server_app_api_telemetry_route_actions_0.yo5qr.js +3 -0
  119. package/.next/server/chunks/_next-internal_server_app_api_telemetry_route_actions_0.yo5qr.js.map +1 -0
  120. package/.next/server/chunks/ssr/_0t7oqy6._.js +1 -1
  121. package/.next/server/chunks/ssr/_0t7oqy6._.js.map +1 -1
  122. package/.next/server/middleware-build-manifest.js +3 -3
  123. package/.next/server/pages/404.html +1 -1
  124. package/.next/server/pages/500.html +1 -1
  125. package/.next/server/server-reference-manifest.js +1 -1
  126. package/.next/server/server-reference-manifest.json +1 -1
  127. package/.next/static/chunks/07lj0adi0kt5p.css +1 -0
  128. package/.next/static/chunks/0xhaghhxllgzs.js +1 -0
  129. package/.next/static/chunks/128c-kly7grxg.js +4 -0
  130. package/.next/static/chunks/{0y~7jjqbr14.5.js → 15_baizhaiq8c.js} +10 -7
  131. package/.next/static/chunks/15sigqif_v.mu.js +1 -0
  132. package/.next/static/chunks/17ud2wmsyqknc.js +11 -0
  133. package/.next/trace +1 -1
  134. package/.next/trace-build +1 -1
  135. package/.next/types/routes.d.ts +4 -1
  136. package/.next/types/validator.ts +27 -0
  137. package/bin/cli.js +4 -4
  138. package/bin/fix-pwa-ubuntu.sh +50 -0
  139. package/package.json +1 -1
  140. package/src/app/api/configs/route.ts +40 -0
  141. package/src/app/api/sessions/launch/route.ts +3 -3
  142. package/src/app/api/sessions/route.ts +2 -2
  143. package/src/app/api/sessions/start/route.ts +2 -2
  144. package/src/app/api/sessions/upload-image/route.ts +57 -0
  145. package/src/app/api/sql/connections/route.ts +9 -6
  146. package/src/app/api/sql/mcp/route.ts +3 -2
  147. package/src/app/api/sql/query/route.ts +3 -2
  148. package/src/app/api/sql/schema/route.ts +3 -2
  149. package/src/app/api/telemetry/route.ts +18 -0
  150. package/src/app/components/AiderWizard.tsx +46 -2
  151. package/src/app/components/ClaudeWizard.tsx +30 -0
  152. package/src/app/components/IdeLayout.tsx +566 -70
  153. package/src/app/components/TerminalConsole.tsx +54 -0
  154. package/src/app/page.module.css +8 -2
  155. package/src/app/page.tsx +534 -401
  156. package/src/lib/agents/AgentRunner.ts +88 -5
  157. package/src/lib/agents/AiderRunner.ts +4 -18
  158. package/src/lib/agents/ClaudeRunner.ts +16 -26
  159. package/src/lib/agents/DockerRunner.ts +16 -26
  160. package/src/lib/agents/MockRunner.ts +4 -16
  161. package/src/lib/agents/SSHRunner.ts +16 -26
  162. package/src/lib/agents/SessionConfig.ts +79 -0
  163. package/src/lib/agents/SessionManager.ts +16 -16
  164. package/src/lib/agents/SessionPersister.ts +13 -9
  165. package/src/lib/agents/ShellRunner.ts +14 -21
  166. package/src/lib/agents/WebSocketServer.ts +2 -2
  167. package/.next/server/chunks/[root-of-the-server]__01.zh3b._.js +0 -15
  168. package/.next/server/chunks/[root-of-the-server]__01.zh3b._.js.map +0 -1
  169. package/.next/server/chunks/[root-of-the-server]__07zx04e._.js +0 -15
  170. package/.next/server/chunks/[root-of-the-server]__0_o7_jj._.js +0 -15
  171. package/.next/server/chunks/[root-of-the-server]__0d0pykb._.js +0 -33
  172. package/.next/server/chunks/[root-of-the-server]__0d0pykb._.js.map +0 -1
  173. package/.next/server/chunks/[root-of-the-server]__0em6a~~._.js +0 -15
  174. package/.next/server/chunks/[root-of-the-server]__0i~01cv._.js +0 -15
  175. package/.next/server/chunks/[root-of-the-server]__0s0is_9._.js +0 -15
  176. package/.next/server/chunks/[root-of-the-server]__0thsozo._.js +0 -15
  177. package/.next/server/chunks/[root-of-the-server]__10wwca8._.js +0 -15
  178. package/.next/static/chunks/076_b43_kienv.js +0 -1
  179. package/.next/static/chunks/07r_au7dcyu8l.js +0 -11
  180. package/.next/static/chunks/0hoyc~vbuqe0t.css +0 -1
  181. package/.next/static/chunks/0k2co3uj4w81_.js +0 -1
  182. package/.next/static/chunks/0sqeixl35qoac.js +0 -1
  183. /package/.next/static/{PdRX_M_W5hqhNmHxYt-oH → b48zoI5QUg8m7v1asTiCM}/_buildManifest.js +0 -0
  184. /package/.next/static/{PdRX_M_W5hqhNmHxYt-oH → b48zoI5QUg8m7v1asTiCM}/_clientMiddlewareManifest.js +0 -0
  185. /package/.next/static/{PdRX_M_W5hqhNmHxYt-oH → b48zoI5QUg8m7v1asTiCM}/_ssgManifest.js +0 -0
@@ -1,15 +0,0 @@
1
- module.exports=[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"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},98003,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(46786);let s=null;function i(e){try{t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0});let a=r.default.join(e,".write-test-"+Math.random().toString(36).substring(7));return t.default.writeFileSync(a,"test"),t.default.unlinkSync(a),!0}catch{return!1}}e.s(["getConfigDir",0,function(){if(s)return s;let e=r.default.join(process.env.ORIGINAL_CWD||process.cwd(),".ai","neural-loom");try{t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0});let a=r.default.join(e,".write-test-"+Math.random().toString(36).substring(7));return t.default.writeFileSync(a,"test"),t.default.unlinkSync(a),s=e,e}catch(n){console.warn(`[Config] Primary config dir is not writable (${e}). Falling back to home directory.`);let i=r.default.join(a.default.homedir(),".ai","neural-loom");try{return t.default.existsSync(i)||t.default.mkdirSync(i,{recursive:!0}),s=i,i}catch(t){return console.error("[Config] Fallback config dir is also not writable!",t),s=e,e}}},"getDefaultWorkspaceRoot",0,function(){let e,s=process.env.ORIGINAL_CWD||process.cwd();if(i(s)&&!((e=s.toLowerCase().replace(/\\/g,"/")).includes("/program files")||e.includes("/windows/system32")||e.includes("/winnt")||e.startsWith("/usr/")||e.startsWith("/bin/")||e.startsWith("/sbin/")||e.startsWith("/etc/")||e.startsWith("/var/")))return s.replace(/\\/g,"/");let n=a.default.homedir();for(let e of[r.default.join(n,"OneDrive","Projects"),r.default.join(n,"Projects"),r.default.join(n,"source","repos"),r.default.join(n,"Documents"),n])try{if(t.default.existsSync(e)&&i(e))return e.replace(/\\/g,"/")}catch{}return n.replace(/\\/g,"/")},"isDirWritable",0,i])},24417,e=>{"use strict";var t=e.i(22734),r=e.i(14747);e.s(["getWorkspaceFileFolders",0,function(e){try{if(!e||!t.default.existsSync(e))return[];let a=r.default.resolve(e).replace(/\\/g,"/"),s=t.default.readdirSync(a).find(e=>e.endsWith(".code-workspace"));if(!s)return[];let i=r.default.join(a,s),n=t.default.readFileSync(i,"utf8"),o=JSON.parse(n);if(!o.folders||!Array.isArray(o.folders))return[];let l=[];for(let e of o.folders)if(e.path){let s=r.default.resolve(a,e.path).replace(/\\/g,"/");s!==a&&t.default.existsSync(s)&&l.push(s)}return l}catch(e){return console.error("[WorkspaceParser] Failed to parse code-workspace file:",e),[]}}])},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},46619,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(98003);class s{static writableCache=new Map;static isWritable(e){if(this.writableCache.has(e))return this.writableCache.get(e);let t=(0,a.isDirWritable)(e);return this.writableCache.set(e,t),t}static get workspaceRoot(){return process.env.ORIGINAL_CWD||process.cwd()}static ensureDirs(e){if(this.isWritable(e))try{let a=r.default.join(e,".ai","neural-loom");t.default.existsSync(a)||t.default.mkdirSync(a,{recursive:!0});let s=r.default.join(e,".claude","commands");t.default.existsSync(s)||t.default.mkdirSync(s,{recursive:!0})}catch(t){console.warn(`[ContextManager] Failed to ensure directories at ${e}:`,t)}}static initializeStaging(e=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(e))try{this.ensureDirs(e);let a=r.default.join(e,".claude","commands","ccp.md");t.default.existsSync(a)||t.default.writeFileSync(a,"Read the prompt from .ai/neural-loom/cprompt.md and execute it. This is a staged prompt from the NeuralLoom UI. Treat the contents as user instructions.\n");let s=r.default.join(e,".claude","commands","ccc.md");t.default.existsSync(s)||t.default.writeFileSync(s,"Read the context from .ai/neural-loom/ccontext.md. This is persistent context from the NeuralLoom UI. Absorb it as background information for this session. Acknowledge briefly what you received.\n")}catch(t){console.warn(`[ContextManager] Failed to initialize staging at ${e}:`,t)}}static updatePrompt(e,a=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(a))try{this.ensureDirs(a);let s=r.default.join(a,".ai","neural-loom","cprompt.md");t.default.writeFileSync(s,e)}catch(e){console.error(`[ContextManager] Failed to write prompt file at ${a}:`,e)}}static updateContext(e,a=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(a))try{this.ensureDirs(a);let s=r.default.join(a,".ai","neural-loom","ccontext.md");t.default.writeFileSync(s,e)}catch(e){console.error(`[ContextManager] Failed to write context file at ${a}:`,e)}}static updateRules(e,a=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(a))try{this.ensureDirs(a);let s=r.default.join(a,"AGENTS.md");t.default.writeFileSync(s,e,"utf8")}catch(e){console.error(`[ContextManager] Failed to write rules file at ${a}:`,e)}}static loadPrompt(e=process.env.ORIGINAL_CWD||process.cwd()){let a=r.default.join(e,".ai","neural-loom","cprompt.md");return t.default.existsSync(a)?t.default.readFileSync(a,"utf8"):""}static loadRules(e=process.env.ORIGINAL_CWD||process.cwd()){let a=r.default.join(e,"AGENTS.md");return t.default.existsSync(a)?t.default.readFileSync(a,"utf8"):""}static compileGlobalRules(){this.compileSessionContext()}static compileSessionContext(e=process.env.ORIGINAL_CWD||process.cwd(),a){if(this.isWritable(e))try{this.ensureDirs(e),this.initializeStaging(e);let s=r.default.join(e,"AGENTS.md"),i="";if(t.default.existsSync(s))i=t.default.readFileSync(s,"utf8");else{let e=r.default.join(this.workspaceRoot,"AGENTS.md");t.default.existsSync(e)&&(i=t.default.readFileSync(e,"utf8"))}let n=`## Workspace Root Map (${e}):
2
- ${this.generateProjectMapFor(e)}`;a&&Array.isArray(a)&&a.forEach(e=>{t.default.existsSync(e)&&(n+=`
3
-
4
- ## Scoped Directory Map (${e}):
5
- ${this.generateProjectMapFor(e)}`)});let o=`# System Rules & Guidelines
6
-
7
- ${i}
8
-
9
- # Project File Hierarchy Map
10
-
11
- ${n}`;this.updateContext(o,e);let l=r.default.join(e,".ai","neural-loom","cprompt.md");t.default.existsSync(l)||t.default.writeFileSync(l,"Hello! Please review the project context (/ccc) and check for any tasks to execute.")}catch(t){console.warn(`[ContextManager] Failed to compile session context at ${e}:`,t)}}static generateProjectMapFor(e){try{let a=(e,s=0)=>{if(s>2)return"";let i="";for(let n of t.default.readdirSync(e,{withFileTypes:!0})){if(n.name.startsWith(".")||"node_modules"===n.name||"out"===n.name||".next"===n.name)continue;let t=" ".repeat(s);n.isDirectory()?(i+=`${t}- [Dir] ${n.name}/
12
- `,i+=a(r.default.join(e,n.name),s+1)):i+=`${t}- [File] ${n.name}
13
- `}return i};return a(e)}catch(e){return"Error generating project map: "+(e instanceof Error?e.message:String(e))}}}e.s(["ContextManager",0,s])},71188,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),s=e.i(59756),i=e.i(61916),n=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(26937),m=e.i(10372),x=e.i(93695);e.i(52474);var y=e.i(220),g=e.i(89171),w=e.i(29307);async function v(e){try{let{id:t,delete:r}=await e.json();if(!t)return g.NextResponse.json({error:"Missing required field 'id'."},{status:400});let a=w.SessionManager.getInstance();if(r){let e=await a.deleteSession(t);return g.NextResponse.json({success:e})}{let e=await a.stopSession(t);return g.NextResponse.json({success:e})}}catch(t){let e=t instanceof Error?t.message:"Unknown error";return g.NextResponse.json({error:e},{status:500})}}e.s(["POST",0,v],64662);var R=e.i(64662);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sessions/stop/route",pathname:"/api/sessions/stop",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sessions/stop/route.ts",nextConfigOutput:"",userland:R,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:b,serverHooks:j}=S;async function A(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),S.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/sessions/stop/route";g=g.replace(/\/index$/,"")||"/";let w=await S.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,deploymentId:R,params:C,nextConfig:b,parsedUrl:j,isDraftMode:A,prerenderManifest:E,routerServerContext:N,isOnDemandRevalidate:k,revalidateOnlyGenerated:I,resolvedPathname:D,clientReferenceManifest:F,serverActionsManifest:P}=w,_=(0,o.normalizeAppPath)(g),O=!!(E.dynamicRoutes[_]||E.routes[D]),T=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,j,!1):t.end("This page could not be found"),null);if(O&&!A){let e=!!E.routes[D],t=E.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await T();throw new x.NoFallbackError}}let M=null;!O||S.isDev||A||(M="/index"===(M=D)?"/":M);let W=!0===S.isDev||!O,q=O&&!W;P&&F&&(0,n.setManifestsSingleton)({page:g,clientReferenceManifest:F,serverActionsManifest:P});let $=e.method||"GET",G=(0,i.getTracer)(),H=G.getActiveScopeSpan(),U=!!(null==N?void 0:N.isWrappedByNextServer),L=!!(0,s.getRequestMeta)(e,"minimalMode"),K=(0,s.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,b,E,L);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let B={params:C,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:W,incrementalCache:K,cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>S.onRequestError(e,t,a,s,N)},sharedContext:{buildId:v,deploymentId:R}},z=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),X=c.NextRequestAdapter.fromNodeNextRequest(z,(0,c.signalFromNodeResponse)(t));try{let s,n=async e=>S.handle(X,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=G.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.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 a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",a),s.updateName(t))}else e.updateName(`${$} ${g}`)}),o=async s=>{var i,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&k&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await n(s);e.fetchMetrics=B.renderOpts.fetchMetrics;let o=B.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=B.renderOpts.collectedTags;if(!O)return await (0,p.sendResponse)(z,V,i,B.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,a=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:k})},!1,N),t}},c=await S.handleResponse({req:e,nextConfig:b,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:I,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!O)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(o=c.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",k?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return L&&O||u.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(z,V,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};U&&H?await o(H):(s=G.getActiveScopeSpan(),await G.withPropagatedContext(e.headers,()=>G.trace(u.BaseServerSpan.handleRequest,{spanName:`${$} ${g}`,kind:i.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!U))}catch(t){if(t instanceof x.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:k})},!1,N),O)throw t;return await (0,p.sendResponse)(z,V,new Response(null,{status:500})),null}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:b})},"routeModule",0,S,"serverHooks",0,j,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,b],71188)}];
14
-
15
- //# sourceMappingURL=%5Broot-of-the-server%5D__0em6a~~._.js.map
@@ -1,15 +0,0 @@
1
- module.exports=[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"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},98003,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(46786);let i=null;function s(e){try{t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0});let a=r.default.join(e,".write-test-"+Math.random().toString(36).substring(7));return t.default.writeFileSync(a,"test"),t.default.unlinkSync(a),!0}catch{return!1}}e.s(["getConfigDir",0,function(){if(i)return i;let e=r.default.join(process.env.ORIGINAL_CWD||process.cwd(),".ai","neural-loom");try{t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0});let a=r.default.join(e,".write-test-"+Math.random().toString(36).substring(7));return t.default.writeFileSync(a,"test"),t.default.unlinkSync(a),i=e,e}catch(n){console.warn(`[Config] Primary config dir is not writable (${e}). Falling back to home directory.`);let s=r.default.join(a.default.homedir(),".ai","neural-loom");try{return t.default.existsSync(s)||t.default.mkdirSync(s,{recursive:!0}),i=s,s}catch(t){return console.error("[Config] Fallback config dir is also not writable!",t),i=e,e}}},"getDefaultWorkspaceRoot",0,function(){let e,i=process.env.ORIGINAL_CWD||process.cwd();if(s(i)&&!((e=i.toLowerCase().replace(/\\/g,"/")).includes("/program files")||e.includes("/windows/system32")||e.includes("/winnt")||e.startsWith("/usr/")||e.startsWith("/bin/")||e.startsWith("/sbin/")||e.startsWith("/etc/")||e.startsWith("/var/")))return i.replace(/\\/g,"/");let n=a.default.homedir();for(let e of[r.default.join(n,"OneDrive","Projects"),r.default.join(n,"Projects"),r.default.join(n,"source","repos"),r.default.join(n,"Documents"),n])try{if(t.default.existsSync(e)&&s(e))return e.replace(/\\/g,"/")}catch{}return n.replace(/\\/g,"/")},"isDirWritable",0,s])},24417,e=>{"use strict";var t=e.i(22734),r=e.i(14747);e.s(["getWorkspaceFileFolders",0,function(e){try{if(!e||!t.default.existsSync(e))return[];let a=r.default.resolve(e).replace(/\\/g,"/"),i=t.default.readdirSync(a).find(e=>e.endsWith(".code-workspace"));if(!i)return[];let s=r.default.join(a,i),n=t.default.readFileSync(s,"utf8"),o=JSON.parse(n);if(!o.folders||!Array.isArray(o.folders))return[];let l=[];for(let e of o.folders)if(e.path){let i=r.default.resolve(a,e.path).replace(/\\/g,"/");i!==a&&t.default.existsSync(i)&&l.push(i)}return l}catch(e){return console.error("[WorkspaceParser] Failed to parse code-workspace file:",e),[]}}])},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},46619,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(98003);class i{static writableCache=new Map;static isWritable(e){if(this.writableCache.has(e))return this.writableCache.get(e);let t=(0,a.isDirWritable)(e);return this.writableCache.set(e,t),t}static get workspaceRoot(){return process.env.ORIGINAL_CWD||process.cwd()}static ensureDirs(e){if(this.isWritable(e))try{let a=r.default.join(e,".ai","neural-loom");t.default.existsSync(a)||t.default.mkdirSync(a,{recursive:!0});let i=r.default.join(e,".claude","commands");t.default.existsSync(i)||t.default.mkdirSync(i,{recursive:!0})}catch(t){console.warn(`[ContextManager] Failed to ensure directories at ${e}:`,t)}}static initializeStaging(e=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(e))try{this.ensureDirs(e);let a=r.default.join(e,".claude","commands","ccp.md");t.default.existsSync(a)||t.default.writeFileSync(a,"Read the prompt from .ai/neural-loom/cprompt.md and execute it. This is a staged prompt from the NeuralLoom UI. Treat the contents as user instructions.\n");let i=r.default.join(e,".claude","commands","ccc.md");t.default.existsSync(i)||t.default.writeFileSync(i,"Read the context from .ai/neural-loom/ccontext.md. This is persistent context from the NeuralLoom UI. Absorb it as background information for this session. Acknowledge briefly what you received.\n")}catch(t){console.warn(`[ContextManager] Failed to initialize staging at ${e}:`,t)}}static updatePrompt(e,a=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(a))try{this.ensureDirs(a);let i=r.default.join(a,".ai","neural-loom","cprompt.md");t.default.writeFileSync(i,e)}catch(e){console.error(`[ContextManager] Failed to write prompt file at ${a}:`,e)}}static updateContext(e,a=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(a))try{this.ensureDirs(a);let i=r.default.join(a,".ai","neural-loom","ccontext.md");t.default.writeFileSync(i,e)}catch(e){console.error(`[ContextManager] Failed to write context file at ${a}:`,e)}}static updateRules(e,a=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(a))try{this.ensureDirs(a);let i=r.default.join(a,"AGENTS.md");t.default.writeFileSync(i,e,"utf8")}catch(e){console.error(`[ContextManager] Failed to write rules file at ${a}:`,e)}}static loadPrompt(e=process.env.ORIGINAL_CWD||process.cwd()){let a=r.default.join(e,".ai","neural-loom","cprompt.md");return t.default.existsSync(a)?t.default.readFileSync(a,"utf8"):""}static loadRules(e=process.env.ORIGINAL_CWD||process.cwd()){let a=r.default.join(e,"AGENTS.md");return t.default.existsSync(a)?t.default.readFileSync(a,"utf8"):""}static compileGlobalRules(){this.compileSessionContext()}static compileSessionContext(e=process.env.ORIGINAL_CWD||process.cwd(),a){if(this.isWritable(e))try{this.ensureDirs(e),this.initializeStaging(e);let i=r.default.join(e,"AGENTS.md"),s="";if(t.default.existsSync(i))s=t.default.readFileSync(i,"utf8");else{let e=r.default.join(this.workspaceRoot,"AGENTS.md");t.default.existsSync(e)&&(s=t.default.readFileSync(e,"utf8"))}let n=`## Workspace Root Map (${e}):
2
- ${this.generateProjectMapFor(e)}`;a&&Array.isArray(a)&&a.forEach(e=>{t.default.existsSync(e)&&(n+=`
3
-
4
- ## Scoped Directory Map (${e}):
5
- ${this.generateProjectMapFor(e)}`)});let o=`# System Rules & Guidelines
6
-
7
- ${s}
8
-
9
- # Project File Hierarchy Map
10
-
11
- ${n}`;this.updateContext(o,e);let l=r.default.join(e,".ai","neural-loom","cprompt.md");t.default.existsSync(l)||t.default.writeFileSync(l,"Hello! Please review the project context (/ccc) and check for any tasks to execute.")}catch(t){console.warn(`[ContextManager] Failed to compile session context at ${e}:`,t)}}static generateProjectMapFor(e){try{let a=(e,i=0)=>{if(i>2)return"";let s="";for(let n of t.default.readdirSync(e,{withFileTypes:!0})){if(n.name.startsWith(".")||"node_modules"===n.name||"out"===n.name||".next"===n.name)continue;let t=" ".repeat(i);n.isDirectory()?(s+=`${t}- [Dir] ${n.name}/
12
- `,s+=a(r.default.join(e,n.name),i+1)):s+=`${t}- [File] ${n.name}
13
- `}return s};return a(e)}catch(e){return"Error generating project map: "+(e instanceof Error?e.message:String(e))}}}e.s(["ContextManager",0,i])},75495,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),i=e.i(59756),s=e.i(61916),n=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(26937),m=e.i(10372),x=e.i(93695);e.i(52474);var y=e.i(220),g=e.i(89171),w=e.i(29307);async function v(e){try{let{id:t,command:r}=await e.json();if(!t||!r)return g.NextResponse.json({error:"Missing required fields 'id' or 'command'."},{status:400});let a=w.SessionManager.getInstance(),i=await a.injectCommand(t,r);return g.NextResponse.json({success:i})}catch(t){let e=t instanceof Error?t.message:"Unknown error";return g.NextResponse.json({error:e},{status:500})}}e.s(["POST",0,v],85875);var R=e.i(85875);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sessions/inject/route",pathname:"/api/sessions/inject",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sessions/inject/route.ts",nextConfigOutput:"",userland:R,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:b,serverHooks:j}=S;async function A(e,t,a){a.requestMeta&&(0,i.setRequestMeta)(e,a.requestMeta),S.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/sessions/inject/route";g=g.replace(/\/index$/,"")||"/";let w=await S.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,deploymentId:R,params:C,nextConfig:b,parsedUrl:j,isDraftMode:A,prerenderManifest:E,routerServerContext:N,isOnDemandRevalidate:k,revalidateOnlyGenerated:I,resolvedPathname:D,clientReferenceManifest:F,serverActionsManifest:P}=w,_=(0,o.normalizeAppPath)(g),O=!!(E.dynamicRoutes[_]||E.routes[D]),T=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,j,!1):t.end("This page could not be found"),null);if(O&&!A){let e=!!E.routes[D],t=E.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await T();throw new x.NoFallbackError}}let M=null;!O||S.isDev||A||(M="/index"===(M=D)?"/":M);let W=!0===S.isDev||!O,q=O&&!W;P&&F&&(0,n.setManifestsSingleton)({page:g,clientReferenceManifest:F,serverActionsManifest:P});let $=e.method||"GET",G=(0,s.getTracer)(),H=G.getActiveScopeSpan(),U=!!(null==N?void 0:N.isWrappedByNextServer),L=!!(0,i.getRequestMeta)(e,"minimalMode"),K=(0,i.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,b,E,L);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let B={params:C,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:W,incrementalCache:K,cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>S.onRequestError(e,t,a,i,N)},sharedContext:{buildId:v,deploymentId:R}},z=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),X=c.NextRequestAdapter.fromNodeNextRequest(z,(0,c.signalFromNodeResponse)(t));try{let i,n=async e=>S.handle(X,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=G.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.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 a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),i&&i!==e&&(i.setAttribute("http.route",a),i.updateName(t))}else e.updateName(`${$} ${g}`)}),o=async i=>{var s,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&k&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await n(i);e.fetchMetrics=B.renderOpts.fetchMetrics;let o=B.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=B.renderOpts.collectedTags;if(!O)return await (0,p.sendResponse)(z,V,s,B.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(s.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,a=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:k})},!1,N),t}},c=await S.handleResponse({req:e,nextConfig:b,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:I,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!O)return null;if((null==c||null==(s=c.value)?void 0:s.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(o=c.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",k?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return L&&O||u.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(z,V,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};U&&H?await o(H):(i=G.getActiveScopeSpan(),await G.withPropagatedContext(e.headers,()=>G.trace(u.BaseServerSpan.handleRequest,{spanName:`${$} ${g}`,kind:s.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!U))}catch(t){if(t instanceof x.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:k})},!1,N),O)throw t;return await (0,p.sendResponse)(z,V,new Response(null,{status:500})),null}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:b})},"routeModule",0,S,"serverHooks",0,j,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,b],75495)}];
14
-
15
- //# sourceMappingURL=%5Broot-of-the-server%5D__0i~01cv._.js.map
@@ -1,15 +0,0 @@
1
- module.exports=[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"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},98003,e=>{"use strict";var t=e.i(22734),r=e.i(14747),s=e.i(46786);let i=null;function a(e){try{t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0});let s=r.default.join(e,".write-test-"+Math.random().toString(36).substring(7));return t.default.writeFileSync(s,"test"),t.default.unlinkSync(s),!0}catch{return!1}}e.s(["getConfigDir",0,function(){if(i)return i;let e=r.default.join(process.env.ORIGINAL_CWD||process.cwd(),".ai","neural-loom");try{t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0});let s=r.default.join(e,".write-test-"+Math.random().toString(36).substring(7));return t.default.writeFileSync(s,"test"),t.default.unlinkSync(s),i=e,e}catch(n){console.warn(`[Config] Primary config dir is not writable (${e}). Falling back to home directory.`);let a=r.default.join(s.default.homedir(),".ai","neural-loom");try{return t.default.existsSync(a)||t.default.mkdirSync(a,{recursive:!0}),i=a,a}catch(t){return console.error("[Config] Fallback config dir is also not writable!",t),i=e,e}}},"getDefaultWorkspaceRoot",0,function(){let e,i=process.env.ORIGINAL_CWD||process.cwd();if(a(i)&&!((e=i.toLowerCase().replace(/\\/g,"/")).includes("/program files")||e.includes("/windows/system32")||e.includes("/winnt")||e.startsWith("/usr/")||e.startsWith("/bin/")||e.startsWith("/sbin/")||e.startsWith("/etc/")||e.startsWith("/var/")))return i.replace(/\\/g,"/");let n=s.default.homedir();for(let e of[r.default.join(n,"OneDrive","Projects"),r.default.join(n,"Projects"),r.default.join(n,"source","repos"),r.default.join(n,"Documents"),n])try{if(t.default.existsSync(e)&&a(e))return e.replace(/\\/g,"/")}catch{}return n.replace(/\\/g,"/")},"isDirWritable",0,a])},24417,e=>{"use strict";var t=e.i(22734),r=e.i(14747);e.s(["getWorkspaceFileFolders",0,function(e){try{if(!e||!t.default.existsSync(e))return[];let s=r.default.resolve(e).replace(/\\/g,"/"),i=t.default.readdirSync(s).find(e=>e.endsWith(".code-workspace"));if(!i)return[];let a=r.default.join(s,i),n=t.default.readFileSync(a,"utf8"),o=JSON.parse(n);if(!o.folders||!Array.isArray(o.folders))return[];let l=[];for(let e of o.folders)if(e.path){let i=r.default.resolve(s,e.path).replace(/\\/g,"/");i!==s&&t.default.existsSync(i)&&l.push(i)}return l}catch(e){return console.error("[WorkspaceParser] Failed to parse code-workspace file:",e),[]}}])},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},46619,e=>{"use strict";var t=e.i(22734),r=e.i(14747),s=e.i(98003);class i{static writableCache=new Map;static isWritable(e){if(this.writableCache.has(e))return this.writableCache.get(e);let t=(0,s.isDirWritable)(e);return this.writableCache.set(e,t),t}static get workspaceRoot(){return process.env.ORIGINAL_CWD||process.cwd()}static ensureDirs(e){if(this.isWritable(e))try{let s=r.default.join(e,".ai","neural-loom");t.default.existsSync(s)||t.default.mkdirSync(s,{recursive:!0});let i=r.default.join(e,".claude","commands");t.default.existsSync(i)||t.default.mkdirSync(i,{recursive:!0})}catch(t){console.warn(`[ContextManager] Failed to ensure directories at ${e}:`,t)}}static initializeStaging(e=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(e))try{this.ensureDirs(e);let s=r.default.join(e,".claude","commands","ccp.md");t.default.existsSync(s)||t.default.writeFileSync(s,"Read the prompt from .ai/neural-loom/cprompt.md and execute it. This is a staged prompt from the NeuralLoom UI. Treat the contents as user instructions.\n");let i=r.default.join(e,".claude","commands","ccc.md");t.default.existsSync(i)||t.default.writeFileSync(i,"Read the context from .ai/neural-loom/ccontext.md. This is persistent context from the NeuralLoom UI. Absorb it as background information for this session. Acknowledge briefly what you received.\n")}catch(t){console.warn(`[ContextManager] Failed to initialize staging at ${e}:`,t)}}static updatePrompt(e,s=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(s))try{this.ensureDirs(s);let i=r.default.join(s,".ai","neural-loom","cprompt.md");t.default.writeFileSync(i,e)}catch(e){console.error(`[ContextManager] Failed to write prompt file at ${s}:`,e)}}static updateContext(e,s=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(s))try{this.ensureDirs(s);let i=r.default.join(s,".ai","neural-loom","ccontext.md");t.default.writeFileSync(i,e)}catch(e){console.error(`[ContextManager] Failed to write context file at ${s}:`,e)}}static updateRules(e,s=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(s))try{this.ensureDirs(s);let i=r.default.join(s,"AGENTS.md");t.default.writeFileSync(i,e,"utf8")}catch(e){console.error(`[ContextManager] Failed to write rules file at ${s}:`,e)}}static loadPrompt(e=process.env.ORIGINAL_CWD||process.cwd()){let s=r.default.join(e,".ai","neural-loom","cprompt.md");return t.default.existsSync(s)?t.default.readFileSync(s,"utf8"):""}static loadRules(e=process.env.ORIGINAL_CWD||process.cwd()){let s=r.default.join(e,"AGENTS.md");return t.default.existsSync(s)?t.default.readFileSync(s,"utf8"):""}static compileGlobalRules(){this.compileSessionContext()}static compileSessionContext(e=process.env.ORIGINAL_CWD||process.cwd(),s){if(this.isWritable(e))try{this.ensureDirs(e),this.initializeStaging(e);let i=r.default.join(e,"AGENTS.md"),a="";if(t.default.existsSync(i))a=t.default.readFileSync(i,"utf8");else{let e=r.default.join(this.workspaceRoot,"AGENTS.md");t.default.existsSync(e)&&(a=t.default.readFileSync(e,"utf8"))}let n=`## Workspace Root Map (${e}):
2
- ${this.generateProjectMapFor(e)}`;s&&Array.isArray(s)&&s.forEach(e=>{t.default.existsSync(e)&&(n+=`
3
-
4
- ## Scoped Directory Map (${e}):
5
- ${this.generateProjectMapFor(e)}`)});let o=`# System Rules & Guidelines
6
-
7
- ${a}
8
-
9
- # Project File Hierarchy Map
10
-
11
- ${n}`;this.updateContext(o,e);let l=r.default.join(e,".ai","neural-loom","cprompt.md");t.default.existsSync(l)||t.default.writeFileSync(l,"Hello! Please review the project context (/ccc) and check for any tasks to execute.")}catch(t){console.warn(`[ContextManager] Failed to compile session context at ${e}:`,t)}}static generateProjectMapFor(e){try{let s=(e,i=0)=>{if(i>2)return"";let a="";for(let n of t.default.readdirSync(e,{withFileTypes:!0})){if(n.name.startsWith(".")||"node_modules"===n.name||"out"===n.name||".next"===n.name)continue;let t=" ".repeat(i);n.isDirectory()?(a+=`${t}- [Dir] ${n.name}/
12
- `,a+=s(r.default.join(e,n.name),i+1)):a+=`${t}- [File] ${n.name}
13
- `}return a};return s(e)}catch(e){return"Error generating project map: "+(e instanceof Error?e.message:String(e))}}}e.s(["ContextManager",0,i])},85427,e=>{"use strict";var t=e.i(22734),r=e.i(14747);let s=(0,e.i(98003).getConfigDir)(),i=r.default.join(s,"recents.json");function a(){t.default.existsSync(s)||t.default.mkdirSync(s,{recursive:!0})}function n(){if(t.default.existsSync(i))try{let e=JSON.parse(t.default.readFileSync(i,"utf8"));return{workspaces:Array.isArray(e.workspaces)?e.workspaces:[],scopes:Array.isArray(e.scopes)?e.scopes:[],lastSession:e.lastSession||null}}catch(e){console.error("[Recents] Failed to parse recents.json:",e)}return{workspaces:[],scopes:[],lastSession:null}}e.s(["addRecent",0,function(e,s){if(!s)return;let o=r.default.resolve(s).replace(/\\/g,"/");if(!t.default.existsSync(o))return;let l=n();"workspace"===e?l.workspaces=[o,...l.workspaces.filter(e=>e!==o)].slice(0,10):"scope"===e&&(l.scopes=[o,...l.scopes.filter(e=>e!==o)].slice(0,15));try{a(),t.default.writeFileSync(i,JSON.stringify(l,null,2),"utf8")}catch(e){console.error("[Recents] Failed to write recents.json:",e)}},"loadRecents",0,n,"saveLastSession",0,function(e){let r=n();r.lastSession=e;try{a(),t.default.writeFileSync(i,JSON.stringify(r,null,2),"utf8")}catch(e){console.error("[Recents] Failed to write recents.json:",e)}}])},88057,e=>{"use strict";var t=e.i(47909),r=e.i(74017),s=e.i(96250),i=e.i(59756),a=e.i(61916),n=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),d=e.i(95169),u=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(26937),y=e.i(10372),m=e.i(93695);e.i(52474);var x=e.i(220),S=e.i(89171),g=e.i(29307),w=e.i(10928),v=e.i(46619),R=e.i(85427),C=e.i(98003),j=e.i(22734),D=e.i(14747);async function N(e){try{let{sessionId:t,path:r,action:s="add"}=await e.json();if(!t||!r)return S.NextResponse.json({error:"Missing sessionId or path"},{status:400});let i=g.SessionManager.getInstance(),a=i.getSession(t);if(!a)return S.NextResponse.json({error:"Session not found"},{status:404});let n=D.default.resolve(r).replace(/\\/g,"/");if("add"===s){if(!j.default.existsSync(n))return S.NextResponse.json({error:"Path does not exist on the server"},{status:400});a.scopedDirs||(a.scopedDirs=[]),a.scopedDirs.includes(n)||(a.scopedDirs.push(n),w.SessionPersister.saveSession(a,!0));let e=(0,C.getConfigDir)();if("claude"===a.type||"claude-docker"===a.type){let t=D.default.join(e,"claude.json");if(j.default.existsSync(t))try{let e=JSON.parse(j.default.readFileSync(t,"utf8"));e.scopedDirs||(e.scopedDirs=[]),e.scopedDirs.includes(n)||(e.scopedDirs.push(n),j.default.writeFileSync(t,JSON.stringify(e,null,2),"utf8"))}catch(e){console.error("Failed to update claude.json with new scoped folder:",e)}}else if("aider"===a.type||"aider-docker"===a.type){let t=D.default.join(e,"aider.json");if(j.default.existsSync(t))try{let e=JSON.parse(j.default.readFileSync(t,"utf8"));e.scopedDirs||(e.scopedDirs=[]),e.scopedDirs.includes(n)||(e.scopedDirs.push(n),j.default.writeFileSync(t,JSON.stringify(e,null,2),"utf8"))}catch(e){console.error("Failed to update aider.json with new scoped folder:",e)}}(0,R.addRecent)("scope",n);let r=a.workspaceRoot||process.env.ORIGINAL_CWD||process.cwd();v.ContextManager.compileSessionContext(r,a.scopedDirs),"running"===a.status&&await i.injectCommand(t,"/ccc")}else if("remove"===s){a.scopedDirs&&(a.scopedDirs=a.scopedDirs.filter(e=>e!==n),w.SessionPersister.saveSession(a,!0));let e=(0,C.getConfigDir)();if("claude"===a.type||"claude-docker"===a.type){let t=D.default.join(e,"claude.json");if(j.default.existsSync(t))try{let e=JSON.parse(j.default.readFileSync(t,"utf8"));e.scopedDirs&&(e.scopedDirs=e.scopedDirs.filter(e=>e!==n),j.default.writeFileSync(t,JSON.stringify(e,null,2),"utf8"))}catch(e){console.error("Failed to remove scoped folder from claude.json:",e)}}else if("aider"===a.type||"aider-docker"===a.type){let t=D.default.join(e,"aider.json");if(j.default.existsSync(t))try{let e=JSON.parse(j.default.readFileSync(t,"utf8"));e.scopedDirs&&(e.scopedDirs=e.scopedDirs.filter(e=>e!==n),j.default.writeFileSync(t,JSON.stringify(e,null,2),"utf8"))}catch(e){console.error("Failed to remove scoped folder from aider.json:",e)}}let r=a.workspaceRoot||process.env.ORIGINAL_CWD||process.cwd();v.ContextManager.compileSessionContext(r,a.scopedDirs),"running"===a.status&&await i.injectCommand(t,"/ccc")}return S.NextResponse.json({success:!0,scopedDirs:a.scopedDirs||[]})}catch(t){let e=t instanceof Error?t.message:"Unknown error";return S.NextResponse.json({error:e},{status:500})}}e.s(["POST",0,N],59404);var k=e.i(59404);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sessions/scope/route",pathname:"/api/sessions/scope",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sessions/scope/route.ts",nextConfigOutput:"",userland:k,...{}}),{workAsyncStorage:b,workUnitAsyncStorage:F,serverHooks:E}=A;async function O(e,t,s){s.requestMeta&&(0,i.setRequestMeta)(e,s.requestMeta),A.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let S="/api/sessions/scope/route";S=S.replace(/\/index$/,"")||"/";let g=await A.prepare(e,t,{srcPage:S,multiZoneDraftMode:!1});if(!g)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:w,deploymentId:v,params:R,nextConfig:C,parsedUrl:j,isDraftMode:D,prerenderManifest:N,routerServerContext:k,isOnDemandRevalidate:b,revalidateOnlyGenerated:F,resolvedPathname:E,clientReferenceManifest:O,serverActionsManifest:I}=g,P=(0,o.normalizeAppPath)(S),_=!!(N.dynamicRoutes[P]||N.routes[E]),M=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,j,!1):t.end("This page could not be found"),null);if(_&&!D){let e=!!N.routes[E],t=N.dynamicRoutes[P];if(t&&!1===t.fallback&&!e){if(C.adapterPath)return await M();throw new m.NoFallbackError}}let W=null;!_||A.isDev||D||(W="/index"===(W=E)?"/":W);let T=!0===A.isDev||!_,q=_&&!T;I&&O&&(0,n.setManifestsSingleton)({page:S,clientReferenceManifest:O,serverActionsManifest:I});let $=e.method||"GET",G=(0,a.getTracer)(),L=G.getActiveScopeSpan(),H=!!(null==k?void 0:k.isWrappedByNextServer),U=!!(0,i.getRequestMeta)(e,"minimalMode"),J=(0,i.getRequestMeta)(e,"incrementalCache")||await A.getIncrementalCache(e,C,N,U);null==J||J.resetRequestCache(),globalThis.__incrementalCache=J;let K={params:R,previewProps:N.preview,renderOpts:{experimental:{authInterrupts:!!C.experimental.authInterrupts},cacheComponents:!!C.cacheComponents,supportsDynamicResponse:T,incrementalCache:J,cacheLifeProfiles:C.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,i)=>A.onRequestError(e,t,s,i,k)},sharedContext:{buildId:w,deploymentId:v}},B=new l.NodeNextRequest(e),z=new l.NodeNextResponse(t),V=c.NextRequestAdapter.fromNodeNextRequest(B,(0,c.signalFromNodeResponse)(t));try{let i,n=async e=>A.handle(V,K).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=G.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.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),i&&i!==e&&(i.setAttribute("http.route",s),i.updateName(t))}else e.updateName(`${$} ${S}`)}),o=async i=>{var a,o;let l=async({previousCacheEntry:r})=>{try{if(!U&&b&&F&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await n(i);e.fetchMetrics=K.renderOpts.fetchMetrics;let o=K.renderOpts.pendingWaitUntil;o&&s.waitUntil&&(s.waitUntil(o),o=void 0);let l=K.renderOpts.collectedTags;if(!_)return await (0,p.sendResponse)(B,z,a,K.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[y.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==K.renderOpts.collectedRevalidate&&!(K.renderOpts.collectedRevalidate>=y.INFINITE_CACHE)&&K.renderOpts.collectedRevalidate,s=void 0===K.renderOpts.collectedExpire||K.renderOpts.collectedExpire>=y.INFINITE_CACHE?void 0:K.renderOpts.collectedExpire;return{value:{kind:x.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 A.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:b})},!1,k),t}},c=await A.handleResponse({req:e,nextConfig:C,cacheKey:W,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:N,isRoutePPREnabled:!1,isOnDemandRevalidate:b,revalidateOnlyGenerated:F,responseGenerator:l,waitUntil:s.waitUntil,isMinimalMode:U});if(!_)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==x.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(o=c.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});U||t.setHeader("x-nextjs-cache",b?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),D&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let d=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return U&&_||d.delete(y.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||d.get("Cache-Control")||d.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(B,z,new Response(c.value.body,{headers:d,status:c.value.status||200})),null};H&&L?await o(L):(i=G.getActiveScopeSpan(),await G.withPropagatedContext(e.headers,()=>G.trace(d.BaseServerSpan.handleRequest,{spanName:`${$} ${S}`,kind:a.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!H))}catch(t){if(t instanceof m.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:P,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:b})},!1,k),_)throw t;return await (0,p.sendResponse)(B,z,new Response(null,{status:500})),null}}e.s(["handler",0,O,"patchFetch",0,function(){return(0,s.patchFetch)({workAsyncStorage:b,workUnitAsyncStorage:F})},"routeModule",0,A,"serverHooks",0,E,"workAsyncStorage",0,b,"workUnitAsyncStorage",0,F],88057)}];
14
-
15
- //# sourceMappingURL=%5Broot-of-the-server%5D__0s0is_9._.js.map
@@ -1,15 +0,0 @@
1
- module.exports=[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"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},98003,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(46786);let s=null;function i(e){try{t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0});let a=r.default.join(e,".write-test-"+Math.random().toString(36).substring(7));return t.default.writeFileSync(a,"test"),t.default.unlinkSync(a),!0}catch{return!1}}e.s(["getConfigDir",0,function(){if(s)return s;let e=r.default.join(process.env.ORIGINAL_CWD||process.cwd(),".ai","neural-loom");try{t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0});let a=r.default.join(e,".write-test-"+Math.random().toString(36).substring(7));return t.default.writeFileSync(a,"test"),t.default.unlinkSync(a),s=e,e}catch(n){console.warn(`[Config] Primary config dir is not writable (${e}). Falling back to home directory.`);let i=r.default.join(a.default.homedir(),".ai","neural-loom");try{return t.default.existsSync(i)||t.default.mkdirSync(i,{recursive:!0}),s=i,i}catch(t){return console.error("[Config] Fallback config dir is also not writable!",t),s=e,e}}},"getDefaultWorkspaceRoot",0,function(){let e,s=process.env.ORIGINAL_CWD||process.cwd();if(i(s)&&!((e=s.toLowerCase().replace(/\\/g,"/")).includes("/program files")||e.includes("/windows/system32")||e.includes("/winnt")||e.startsWith("/usr/")||e.startsWith("/bin/")||e.startsWith("/sbin/")||e.startsWith("/etc/")||e.startsWith("/var/")))return s.replace(/\\/g,"/");let n=a.default.homedir();for(let e of[r.default.join(n,"OneDrive","Projects"),r.default.join(n,"Projects"),r.default.join(n,"source","repos"),r.default.join(n,"Documents"),n])try{if(t.default.existsSync(e)&&i(e))return e.replace(/\\/g,"/")}catch{}return n.replace(/\\/g,"/")},"isDirWritable",0,i])},24417,e=>{"use strict";var t=e.i(22734),r=e.i(14747);e.s(["getWorkspaceFileFolders",0,function(e){try{if(!e||!t.default.existsSync(e))return[];let a=r.default.resolve(e).replace(/\\/g,"/"),s=t.default.readdirSync(a).find(e=>e.endsWith(".code-workspace"));if(!s)return[];let i=r.default.join(a,s),n=t.default.readFileSync(i,"utf8"),o=JSON.parse(n);if(!o.folders||!Array.isArray(o.folders))return[];let l=[];for(let e of o.folders)if(e.path){let s=r.default.resolve(a,e.path).replace(/\\/g,"/");s!==a&&t.default.existsSync(s)&&l.push(s)}return l}catch(e){return console.error("[WorkspaceParser] Failed to parse code-workspace file:",e),[]}}])},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},46619,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(98003);class s{static writableCache=new Map;static isWritable(e){if(this.writableCache.has(e))return this.writableCache.get(e);let t=(0,a.isDirWritable)(e);return this.writableCache.set(e,t),t}static get workspaceRoot(){return process.env.ORIGINAL_CWD||process.cwd()}static ensureDirs(e){if(this.isWritable(e))try{let a=r.default.join(e,".ai","neural-loom");t.default.existsSync(a)||t.default.mkdirSync(a,{recursive:!0});let s=r.default.join(e,".claude","commands");t.default.existsSync(s)||t.default.mkdirSync(s,{recursive:!0})}catch(t){console.warn(`[ContextManager] Failed to ensure directories at ${e}:`,t)}}static initializeStaging(e=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(e))try{this.ensureDirs(e);let a=r.default.join(e,".claude","commands","ccp.md");t.default.existsSync(a)||t.default.writeFileSync(a,"Read the prompt from .ai/neural-loom/cprompt.md and execute it. This is a staged prompt from the NeuralLoom UI. Treat the contents as user instructions.\n");let s=r.default.join(e,".claude","commands","ccc.md");t.default.existsSync(s)||t.default.writeFileSync(s,"Read the context from .ai/neural-loom/ccontext.md. This is persistent context from the NeuralLoom UI. Absorb it as background information for this session. Acknowledge briefly what you received.\n")}catch(t){console.warn(`[ContextManager] Failed to initialize staging at ${e}:`,t)}}static updatePrompt(e,a=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(a))try{this.ensureDirs(a);let s=r.default.join(a,".ai","neural-loom","cprompt.md");t.default.writeFileSync(s,e)}catch(e){console.error(`[ContextManager] Failed to write prompt file at ${a}:`,e)}}static updateContext(e,a=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(a))try{this.ensureDirs(a);let s=r.default.join(a,".ai","neural-loom","ccontext.md");t.default.writeFileSync(s,e)}catch(e){console.error(`[ContextManager] Failed to write context file at ${a}:`,e)}}static updateRules(e,a=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(a))try{this.ensureDirs(a);let s=r.default.join(a,"AGENTS.md");t.default.writeFileSync(s,e,"utf8")}catch(e){console.error(`[ContextManager] Failed to write rules file at ${a}:`,e)}}static loadPrompt(e=process.env.ORIGINAL_CWD||process.cwd()){let a=r.default.join(e,".ai","neural-loom","cprompt.md");return t.default.existsSync(a)?t.default.readFileSync(a,"utf8"):""}static loadRules(e=process.env.ORIGINAL_CWD||process.cwd()){let a=r.default.join(e,"AGENTS.md");return t.default.existsSync(a)?t.default.readFileSync(a,"utf8"):""}static compileGlobalRules(){this.compileSessionContext()}static compileSessionContext(e=process.env.ORIGINAL_CWD||process.cwd(),a){if(this.isWritable(e))try{this.ensureDirs(e),this.initializeStaging(e);let s=r.default.join(e,"AGENTS.md"),i="";if(t.default.existsSync(s))i=t.default.readFileSync(s,"utf8");else{let e=r.default.join(this.workspaceRoot,"AGENTS.md");t.default.existsSync(e)&&(i=t.default.readFileSync(e,"utf8"))}let n=`## Workspace Root Map (${e}):
2
- ${this.generateProjectMapFor(e)}`;a&&Array.isArray(a)&&a.forEach(e=>{t.default.existsSync(e)&&(n+=`
3
-
4
- ## Scoped Directory Map (${e}):
5
- ${this.generateProjectMapFor(e)}`)});let o=`# System Rules & Guidelines
6
-
7
- ${i}
8
-
9
- # Project File Hierarchy Map
10
-
11
- ${n}`;this.updateContext(o,e);let l=r.default.join(e,".ai","neural-loom","cprompt.md");t.default.existsSync(l)||t.default.writeFileSync(l,"Hello! Please review the project context (/ccc) and check for any tasks to execute.")}catch(t){console.warn(`[ContextManager] Failed to compile session context at ${e}:`,t)}}static generateProjectMapFor(e){try{let a=(e,s=0)=>{if(s>2)return"";let i="";for(let n of t.default.readdirSync(e,{withFileTypes:!0})){if(n.name.startsWith(".")||"node_modules"===n.name||"out"===n.name||".next"===n.name)continue;let t=" ".repeat(s);n.isDirectory()?(i+=`${t}- [Dir] ${n.name}/
12
- `,i+=a(r.default.join(e,n.name),s+1)):i+=`${t}- [File] ${n.name}
13
- `}return i};return a(e)}catch(e){return"Error generating project map: "+(e instanceof Error?e.message:String(e))}}}e.s(["ContextManager",0,s])},74961,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),s=e.i(59756),i=e.i(61916),n=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(26937),m=e.i(10372),x=e.i(93695);e.i(52474);var y=e.i(220),g=e.i(89171),w=e.i(29307);async function v(e){try{let{id:t}=await e.json();if(!t)return g.NextResponse.json({error:"Missing required field 'id'."},{status:400});let r=w.SessionManager.getInstance(),a=await r.startSession(t);return g.NextResponse.json({success:a})}catch(t){let e=t instanceof Error?t.message:"Unknown error";return g.NextResponse.json({error:e},{status:500})}}e.s(["POST",0,v],52453);var R=e.i(52453);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sessions/start/route",pathname:"/api/sessions/start",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sessions/start/route.ts",nextConfigOutput:"",userland:R,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:b,serverHooks:j}=S;async function A(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),S.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/sessions/start/route";g=g.replace(/\/index$/,"")||"/";let w=await S.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,deploymentId:R,params:C,nextConfig:b,parsedUrl:j,isDraftMode:A,prerenderManifest:E,routerServerContext:N,isOnDemandRevalidate:k,revalidateOnlyGenerated:I,resolvedPathname:D,clientReferenceManifest:F,serverActionsManifest:P}=w,_=(0,o.normalizeAppPath)(g),O=!!(E.dynamicRoutes[_]||E.routes[D]),T=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,j,!1):t.end("This page could not be found"),null);if(O&&!A){let e=!!E.routes[D],t=E.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await T();throw new x.NoFallbackError}}let M=null;!O||S.isDev||A||(M="/index"===(M=D)?"/":M);let W=!0===S.isDev||!O,q=O&&!W;P&&F&&(0,n.setManifestsSingleton)({page:g,clientReferenceManifest:F,serverActionsManifest:P});let $=e.method||"GET",G=(0,i.getTracer)(),H=G.getActiveScopeSpan(),U=!!(null==N?void 0:N.isWrappedByNextServer),L=!!(0,s.getRequestMeta)(e,"minimalMode"),K=(0,s.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,b,E,L);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let B={params:C,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:W,incrementalCache:K,cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>S.onRequestError(e,t,a,s,N)},sharedContext:{buildId:v,deploymentId:R}},z=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),X=c.NextRequestAdapter.fromNodeNextRequest(z,(0,c.signalFromNodeResponse)(t));try{let s,n=async e=>S.handle(X,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=G.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.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 a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",a),s.updateName(t))}else e.updateName(`${$} ${g}`)}),o=async s=>{var i,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&k&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await n(s);e.fetchMetrics=B.renderOpts.fetchMetrics;let o=B.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=B.renderOpts.collectedTags;if(!O)return await (0,p.sendResponse)(z,V,i,B.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,a=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:k})},!1,N),t}},c=await S.handleResponse({req:e,nextConfig:b,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:I,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!O)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(o=c.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",k?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return L&&O||u.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(z,V,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};U&&H?await o(H):(s=G.getActiveScopeSpan(),await G.withPropagatedContext(e.headers,()=>G.trace(u.BaseServerSpan.handleRequest,{spanName:`${$} ${g}`,kind:i.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!U))}catch(t){if(t instanceof x.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:k})},!1,N),O)throw t;return await (0,p.sendResponse)(z,V,new Response(null,{status:500})),null}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:b})},"routeModule",0,S,"serverHooks",0,j,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,b],74961)}];
14
-
15
- //# sourceMappingURL=%5Broot-of-the-server%5D__0thsozo._.js.map
@@ -1,15 +0,0 @@
1
- module.exports=[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"))},46786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},98003,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(46786);let s=null;function i(e){try{t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0});let a=r.default.join(e,".write-test-"+Math.random().toString(36).substring(7));return t.default.writeFileSync(a,"test"),t.default.unlinkSync(a),!0}catch{return!1}}e.s(["getConfigDir",0,function(){if(s)return s;let e=r.default.join(process.env.ORIGINAL_CWD||process.cwd(),".ai","neural-loom");try{t.default.existsSync(e)||t.default.mkdirSync(e,{recursive:!0});let a=r.default.join(e,".write-test-"+Math.random().toString(36).substring(7));return t.default.writeFileSync(a,"test"),t.default.unlinkSync(a),s=e,e}catch(n){console.warn(`[Config] Primary config dir is not writable (${e}). Falling back to home directory.`);let i=r.default.join(a.default.homedir(),".ai","neural-loom");try{return t.default.existsSync(i)||t.default.mkdirSync(i,{recursive:!0}),s=i,i}catch(t){return console.error("[Config] Fallback config dir is also not writable!",t),s=e,e}}},"getDefaultWorkspaceRoot",0,function(){let e,s=process.env.ORIGINAL_CWD||process.cwd();if(i(s)&&!((e=s.toLowerCase().replace(/\\/g,"/")).includes("/program files")||e.includes("/windows/system32")||e.includes("/winnt")||e.startsWith("/usr/")||e.startsWith("/bin/")||e.startsWith("/sbin/")||e.startsWith("/etc/")||e.startsWith("/var/")))return s.replace(/\\/g,"/");let n=a.default.homedir();for(let e of[r.default.join(n,"OneDrive","Projects"),r.default.join(n,"Projects"),r.default.join(n,"source","repos"),r.default.join(n,"Documents"),n])try{if(t.default.existsSync(e)&&i(e))return e.replace(/\\/g,"/")}catch{}return n.replace(/\\/g,"/")},"isDirWritable",0,i])},24417,e=>{"use strict";var t=e.i(22734),r=e.i(14747);e.s(["getWorkspaceFileFolders",0,function(e){try{if(!e||!t.default.existsSync(e))return[];let a=r.default.resolve(e).replace(/\\/g,"/"),s=t.default.readdirSync(a).find(e=>e.endsWith(".code-workspace"));if(!s)return[];let i=r.default.join(a,s),n=t.default.readFileSync(i,"utf8"),o=JSON.parse(n);if(!o.folders||!Array.isArray(o.folders))return[];let l=[];for(let e of o.folders)if(e.path){let s=r.default.resolve(a,e.path).replace(/\\/g,"/");s!==a&&t.default.existsSync(s)&&l.push(s)}return l}catch(e){return console.error("[WorkspaceParser] Failed to parse code-workspace file:",e),[]}}])},24361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},33405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},46619,e=>{"use strict";var t=e.i(22734),r=e.i(14747),a=e.i(98003);class s{static writableCache=new Map;static isWritable(e){if(this.writableCache.has(e))return this.writableCache.get(e);let t=(0,a.isDirWritable)(e);return this.writableCache.set(e,t),t}static get workspaceRoot(){return process.env.ORIGINAL_CWD||process.cwd()}static ensureDirs(e){if(this.isWritable(e))try{let a=r.default.join(e,".ai","neural-loom");t.default.existsSync(a)||t.default.mkdirSync(a,{recursive:!0});let s=r.default.join(e,".claude","commands");t.default.existsSync(s)||t.default.mkdirSync(s,{recursive:!0})}catch(t){console.warn(`[ContextManager] Failed to ensure directories at ${e}:`,t)}}static initializeStaging(e=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(e))try{this.ensureDirs(e);let a=r.default.join(e,".claude","commands","ccp.md");t.default.existsSync(a)||t.default.writeFileSync(a,"Read the prompt from .ai/neural-loom/cprompt.md and execute it. This is a staged prompt from the NeuralLoom UI. Treat the contents as user instructions.\n");let s=r.default.join(e,".claude","commands","ccc.md");t.default.existsSync(s)||t.default.writeFileSync(s,"Read the context from .ai/neural-loom/ccontext.md. This is persistent context from the NeuralLoom UI. Absorb it as background information for this session. Acknowledge briefly what you received.\n")}catch(t){console.warn(`[ContextManager] Failed to initialize staging at ${e}:`,t)}}static updatePrompt(e,a=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(a))try{this.ensureDirs(a);let s=r.default.join(a,".ai","neural-loom","cprompt.md");t.default.writeFileSync(s,e)}catch(e){console.error(`[ContextManager] Failed to write prompt file at ${a}:`,e)}}static updateContext(e,a=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(a))try{this.ensureDirs(a);let s=r.default.join(a,".ai","neural-loom","ccontext.md");t.default.writeFileSync(s,e)}catch(e){console.error(`[ContextManager] Failed to write context file at ${a}:`,e)}}static updateRules(e,a=process.env.ORIGINAL_CWD||process.cwd()){if(this.isWritable(a))try{this.ensureDirs(a);let s=r.default.join(a,"AGENTS.md");t.default.writeFileSync(s,e,"utf8")}catch(e){console.error(`[ContextManager] Failed to write rules file at ${a}:`,e)}}static loadPrompt(e=process.env.ORIGINAL_CWD||process.cwd()){let a=r.default.join(e,".ai","neural-loom","cprompt.md");return t.default.existsSync(a)?t.default.readFileSync(a,"utf8"):""}static loadRules(e=process.env.ORIGINAL_CWD||process.cwd()){let a=r.default.join(e,"AGENTS.md");return t.default.existsSync(a)?t.default.readFileSync(a,"utf8"):""}static compileGlobalRules(){this.compileSessionContext()}static compileSessionContext(e=process.env.ORIGINAL_CWD||process.cwd(),a){if(this.isWritable(e))try{this.ensureDirs(e),this.initializeStaging(e);let s=r.default.join(e,"AGENTS.md"),i="";if(t.default.existsSync(s))i=t.default.readFileSync(s,"utf8");else{let e=r.default.join(this.workspaceRoot,"AGENTS.md");t.default.existsSync(e)&&(i=t.default.readFileSync(e,"utf8"))}let n=`## Workspace Root Map (${e}):
2
- ${this.generateProjectMapFor(e)}`;a&&Array.isArray(a)&&a.forEach(e=>{t.default.existsSync(e)&&(n+=`
3
-
4
- ## Scoped Directory Map (${e}):
5
- ${this.generateProjectMapFor(e)}`)});let o=`# System Rules & Guidelines
6
-
7
- ${i}
8
-
9
- # Project File Hierarchy Map
10
-
11
- ${n}`;this.updateContext(o,e);let l=r.default.join(e,".ai","neural-loom","cprompt.md");t.default.existsSync(l)||t.default.writeFileSync(l,"Hello! Please review the project context (/ccc) and check for any tasks to execute.")}catch(t){console.warn(`[ContextManager] Failed to compile session context at ${e}:`,t)}}static generateProjectMapFor(e){try{let a=(e,s=0)=>{if(s>2)return"";let i="";for(let n of t.default.readdirSync(e,{withFileTypes:!0})){if(n.name.startsWith(".")||"node_modules"===n.name||"out"===n.name||".next"===n.name)continue;let t=" ".repeat(s);n.isDirectory()?(i+=`${t}- [Dir] ${n.name}/
12
- `,i+=a(r.default.join(e,n.name),s+1)):i+=`${t}- [File] ${n.name}
13
- `}return i};return a(e)}catch(e){return"Error generating project map: "+(e instanceof Error?e.message:String(e))}}}e.s(["ContextManager",0,s])},78761,e=>{"use strict";var t=e.i(47909),r=e.i(74017),a=e.i(96250),s=e.i(59756),i=e.i(61916),n=e.i(74677),o=e.i(69741),l=e.i(16795),c=e.i(87718),u=e.i(95169),d=e.i(47587),p=e.i(66012),f=e.i(70101),h=e.i(26937),m=e.i(10372),x=e.i(93695);e.i(52474);var y=e.i(220),g=e.i(89171),w=e.i(29307);async function v(e){try{let{id:t,text:r}=await e.json();if(!t||void 0===r)return g.NextResponse.json({error:"Missing required fields 'id' or 'text'."},{status:400});let a=w.SessionManager.getInstance().getSession(t);if(!a)return g.NextResponse.json({error:"Session not found"},{status:404});return await a.sendInput(r),g.NextResponse.json({success:!0,logs:a.logs})}catch(t){let e=t instanceof Error?t.message:"Unknown error";return g.NextResponse.json({error:e},{status:500})}}e.s(["POST",0,v],9853);var R=e.i(9853);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/sessions/input/route",pathname:"/api/sessions/input",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/src/app/api/sessions/input/route.ts",nextConfigOutput:"",userland:R,...{}}),{workAsyncStorage:C,workUnitAsyncStorage:b,serverHooks:j}=S;async function A(e,t,a){a.requestMeta&&(0,s.setRequestMeta)(e,a.requestMeta),S.isDev&&(0,s.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let g="/api/sessions/input/route";g=g.replace(/\/index$/,"")||"/";let w=await S.prepare(e,t,{srcPage:g,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:v,deploymentId:R,params:C,nextConfig:b,parsedUrl:j,isDraftMode:A,prerenderManifest:E,routerServerContext:N,isOnDemandRevalidate:k,revalidateOnlyGenerated:I,resolvedPathname:D,clientReferenceManifest:F,serverActionsManifest:P}=w,_=(0,o.normalizeAppPath)(g),O=!!(E.dynamicRoutes[_]||E.routes[D]),T=async()=>((null==N?void 0:N.render404)?await N.render404(e,t,j,!1):t.end("This page could not be found"),null);if(O&&!A){let e=!!E.routes[D],t=E.dynamicRoutes[_];if(t&&!1===t.fallback&&!e){if(b.adapterPath)return await T();throw new x.NoFallbackError}}let M=null;!O||S.isDev||A||(M="/index"===(M=D)?"/":M);let W=!0===S.isDev||!O,q=O&&!W;P&&F&&(0,n.setManifestsSingleton)({page:g,clientReferenceManifest:F,serverActionsManifest:P});let $=e.method||"GET",G=(0,i.getTracer)(),H=G.getActiveScopeSpan(),U=!!(null==N?void 0:N.isWrappedByNextServer),L=!!(0,s.getRequestMeta)(e,"minimalMode"),K=(0,s.getRequestMeta)(e,"incrementalCache")||await S.getIncrementalCache(e,b,E,L);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let B={params:C,previewProps:E.preview,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:W,incrementalCache:K,cacheLifeProfiles:b.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,s)=>S.onRequestError(e,t,a,s,N)},sharedContext:{buildId:v,deploymentId:R}},z=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),X=c.NextRequestAdapter.fromNodeNextRequest(z,(0,c.signalFromNodeResponse)(t));try{let s,n=async e=>S.handle(X,B).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=G.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.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 a=r.get("next.route");if(a){let t=`${$} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),s&&s!==e&&(s.setAttribute("http.route",a),s.updateName(t))}else e.updateName(`${$} ${g}`)}),o=async s=>{var i,o;let l=async({previousCacheEntry:r})=>{try{if(!L&&k&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await n(s);e.fetchMetrics=B.renderOpts.fetchMetrics;let o=B.renderOpts.pendingWaitUntil;o&&a.waitUntil&&(a.waitUntil(o),o=void 0);let l=B.renderOpts.collectedTags;if(!O)return await (0,p.sendResponse)(z,V,i,B.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[m.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==B.renderOpts.collectedRevalidate&&!(B.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&B.renderOpts.collectedRevalidate,a=void 0===B.renderOpts.collectedExpire||B.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:B.renderOpts.collectedExpire;return{value:{kind:y.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:g,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:k})},!1,N),t}},c=await S.handleResponse({req:e,nextConfig:b,cacheKey:M,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:I,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:L});if(!O)return null;if((null==c||null==(i=c.value)?void 0:i.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(o=c.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",k?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,f.fromNodeOutgoingHttpHeaders)(c.value.headers);return L&&O||u.delete(m.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(z,V,new Response(c.value.body,{headers:u,status:c.value.status||200})),null};U&&H?await o(H):(s=G.getActiveScopeSpan(),await G.withPropagatedContext(e.headers,()=>G.trace(u.BaseServerSpan.handleRequest,{spanName:`${$} ${g}`,kind:i.SpanKind.SERVER,attributes:{"http.method":$,"http.target":e.url}},o),void 0,!U))}catch(t){if(t instanceof x.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:k})},!1,N),O)throw t;return await (0,p.sendResponse)(z,V,new Response(null,{status:500})),null}}e.s(["handler",0,A,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:b})},"routeModule",0,S,"serverHooks",0,j,"workAsyncStorage",0,C,"workUnitAsyncStorage",0,b],78761)}];
14
-
15
- //# sourceMappingURL=%5Broot-of-the-server%5D__10wwca8._.js.map
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,54370,e=>{"use strict";var r=e.i(43476),o=e.i(71645);let t={position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(5, 7, 10, 0.85)",backdropFilter:"blur(12px)",zIndex:1100,display:"flex",alignItems:"center",justifyContent:"center"},n={width:"90%",maxWidth:"550px",height:"480px",backgroundColor:"var(--card)",border:"1px solid var(--border-focus)",borderRadius:"12px",boxShadow:"0 20px 25px -5px rgba(0,0,0,0.7), 0 10px 10px -5px rgba(0,0,0,0.7)",display:"flex",flexDirection:"column",overflow:"hidden"},l={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0.85rem 1.25rem",borderBottom:"1px solid var(--border)",background:"hsla(var(--border-hsl), 0.2)"},a={background:"none",border:"none",color:"var(--muted)",fontSize:"0.9rem",cursor:"pointer",padding:"0.25rem"},i={display:"flex",padding:"0.75rem 1.25rem",gap:"0.5rem",backgroundColor:"rgba(10, 15, 25, 0.5)",borderBottom:"1px solid var(--border)"},s={flex:1,padding:"0.45rem 0.75rem",backgroundColor:"#05070a",border:"1px solid var(--border)",borderRadius:"6px",color:"var(--foreground)",fontFamily:"var(--font-mono), monospace",fontSize:"0.8rem",outline:"none"},d={padding:"0.45rem 0.85rem",backgroundColor:"var(--border)",border:"1px solid var(--border-focus)",borderRadius:"6px",color:"var(--foreground)",fontSize:"0.75rem",fontWeight:600,cursor:"pointer"},c={padding:"0.15rem 0.45rem",backgroundColor:"rgba(255, 255, 255, 0.15)",border:"none",borderRadius:"4px",color:"var(--foreground)",fontSize:"0.7rem",cursor:"pointer",fontWeight:600},p={flex:1,padding:"0.5rem 1.25rem",overflowY:"auto",backgroundColor:"#070a0f"},u={display:"flex",flexDirection:"column",gap:"0.25rem"},m={display:"flex",alignItems:"center",gap:"0.6rem",padding:"0.45rem 0.65rem",borderRadius:"6px",cursor:"pointer",fontSize:"0.825rem",border:"1px solid transparent",userSelect:"none",transition:"all 0.15s ease"},x={textAlign:"center",padding:"2rem",fontSize:"0.85rem",color:"var(--muted)"},g={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0.85rem 1.25rem",borderTop:"1px solid var(--border)",background:"hsla(var(--border-hsl), 0.2)"},f={fontSize:"0.75rem",color:"var(--muted)",maxWidth:"240px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},b={padding:"0.45rem 0.9rem",borderRadius:"6px",border:"none",background:"linear-gradient(135deg, hsl(262, 83%, 60%) 0%, hsl(195, 100%, 45%) 100%)",color:"#fff",fontSize:"0.75rem",fontWeight:600,cursor:"pointer"},h={padding:"0.45rem 0.9rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"transparent",color:"var(--foreground)",fontSize:"0.75rem",fontWeight:600,cursor:"pointer"};e.s(["default",0,function({title:e,initialPath:y,onClose:v,onSelect:j}){let[k,C]=(0,o.useState)(y||""),[S,w]=(0,o.useState)(null),[D,R]=(0,o.useState)([]),[z,W]=(0,o.useState)(null),[F,I]=(0,o.useState)(""),[T,P]=(0,o.useState)(!1),[B,L]=(0,o.useState)(""),A=async e=>{P(!0),L("");try{let r=`/api/files?action=browse_dirs&path=${encodeURIComponent(e)}`,o=await fetch(r),t=await o.json();o.ok&&t.success?(C(t.currentPath),I(t.currentPath),w(t.parentPath),R(t.directories),W(null)):L(t.error||"Failed to load directory content.")}catch(e){console.error("Error browsing directories:",e),L("Failed to fetch directory contents.")}finally{P(!1)}};(0,o.useEffect)(()=>{A(y)},[y]);let O=e=>{A(e)},E=()=>{F.trim()&&A(F.trim())};return(0,r.jsx)("div",{style:t,children:(0,r.jsxs)("div",{style:n,children:[(0,r.jsxs)("div",{style:l,children:[(0,r.jsxs)("h3",{style:{fontSize:"1rem",fontWeight:700,margin:0,color:"var(--foreground)"},children:["📁 ",e]}),(0,r.jsx)("button",{onClick:v,style:a,"aria-label":"Close browser",children:"✖"})]}),(0,r.jsxs)("div",{style:i,children:[(0,r.jsx)("input",{type:"text",value:F,onChange:e=>I(e.target.value),onKeyDown:e=>{"Enter"===e.key&&E()},style:s,placeholder:"Absolute folder path..."}),(0,r.jsx)("button",{onClick:E,style:d,disabled:T,children:"Go"})]}),(0,r.jsx)("div",{style:p,children:T?(0,r.jsx)("div",{style:x,children:"Loading directories..."}):B?(0,r.jsxs)("div",{style:{...x,color:"var(--danger)"},children:[B,(0,r.jsx)("button",{onClick:()=>A(k||"."),style:{...d,display:"block",margin:"0.75rem auto 0"},children:"Retry"})]}):(0,r.jsxs)("div",{style:u,children:[S&&(0,r.jsxs)("div",{onClick:()=>O(S),onDoubleClick:()=>O(S),style:m,title:"Go up to parent directory",children:[(0,r.jsx)("span",{style:{fontSize:"1.1rem"},children:"⬆️"}),(0,r.jsx)("span",{style:{fontWeight:600},children:".. (Up)"})]}),0===D.length?(0,r.jsx)("div",{style:{...x,color:"var(--muted)"},children:"No subdirectories found"}):D.map(e=>{let o=z===e.path;return(0,r.jsxs)("div",{onClick:()=>W(e.path),onDoubleClick:()=>O(e.path),style:{...m,backgroundColor:o?"rgba(109, 40, 217, 0.25)":"transparent",borderColor:o?"var(--border-focus)":"transparent"},title:"Single click to highlight, double click to enter",children:[(0,r.jsx)("span",{style:{fontSize:"1.1rem"},children:"📁"}),(0,r.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),o&&(0,r.jsx)("button",{type:"button",onClick:r=>{r.stopPropagation(),O(e.path)},style:c,children:"Enter ➜"})]},e.path)})]})}),(0,r.jsxs)("div",{style:g,children:[(0,r.jsxs)("span",{style:f,children:["Selection: ",(0,r.jsx)("span",{style:{color:"var(--foreground)",fontFamily:"var(--font-mono), monospace"},children:z||k||"(None)"})]}),(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,r.jsx)("button",{onClick:v,style:h,children:"Cancel"}),(0,r.jsx)("button",{onClick:()=>{j(z||k),v()},style:b,disabled:T,children:"Select Folder"})]})]})]})})}])},44837,e=>{"use strict";var r=e.i(43476),o=e.i(71645),t=e.i(54370);let n={position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(5, 7, 10, 0.8)",backdropFilter:"blur(8px)",zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",animation:"fadeIn 0.2s ease-out"},l={width:"90%",maxWidth:"500px",backgroundColor:"var(--card)",border:"1px solid var(--border-focus)",borderRadius:"12px",boxShadow:"0 10px 25px -5px rgba(0, 0, 0, 0.5), 0 8px 10px -6px rgba(0, 0, 0, 0.5)",overflow:"hidden",display:"flex",flexDirection:"column"},a={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"1rem 1.25rem",borderBottom:"1px solid var(--border)",background:"hsla(var(--border-hsl), 0.2)"},i={background:"none",border:"none",color:"var(--muted)",fontSize:"0.9rem",cursor:"pointer",padding:"0.25rem"},s={padding:"1.25rem",display:"flex",flexDirection:"column"},d={display:"flex",flexDirection:"column",marginBottom:"1rem"},c={fontSize:"0.75rem",fontWeight:600,color:"var(--foreground)",marginBottom:"0.375rem",textTransform:"uppercase",letterSpacing:"0.05em"},p={width:"100%",padding:"0.5rem 0.75rem",backgroundColor:"#080c14",border:"1px solid var(--border)",borderRadius:"6px",color:"var(--foreground)",fontFamily:"var(--font-mono), monospace",fontSize:"0.825rem",outline:"none",transition:"border-color 0.15s ease"},u={marginTop:"0.75rem",padding:"0.75rem",borderRadius:"6px",border:"1px solid var(--danger)",backgroundColor:"rgba(239, 68, 68, 0.05)",color:"var(--danger)",fontSize:"0.8rem",lineHeight:1.4},m={display:"flex",justifyContent:"flex-end",gap:"0.75rem",padding:"1rem 1.25rem",borderTop:"1px solid var(--border)",background:"hsla(var(--border-hsl), 0.2)"},x={padding:"0.5rem 1rem",borderRadius:"6px",border:"none",background:"linear-gradient(135deg, hsl(262, 83%, 60%) 0%, hsl(195, 100%, 45%) 100%)",color:"#fff",fontSize:"0.8rem",fontWeight:600,cursor:"pointer"},g={padding:"0.5rem 1rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"transparent",color:"var(--foreground)",fontSize:"0.8rem",fontWeight:600,cursor:"pointer"},f={padding:"0.35rem 0.75rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"rgba(255, 255, 255, 0.05)",color:"var(--foreground)",fontSize:"0.75rem",fontWeight:600,cursor:"pointer",transition:"all 0.15s ease"};e.s(["default",0,function({onClose:e,onConfirmLaunch:b,isDocker:h}){let[y,v]=(0,o.useState)({name:h?"Claude Docker":"Claude Local",workspaceRoot:"",scopedDirs:[],extraFlags:""}),[j,k]=(0,o.useState)(""),[C,S]=(0,o.useState)(!0),[w,D]=(0,o.useState)(!1),[R,z]=(0,o.useState)(""),[W,F]=(0,o.useState)(!1),[I,T]=(0,o.useState)(!1),[P,B]=(0,o.useState)({workspaces:[],scopes:[]});(0,o.useEffect)(()=>{(async()=>{try{let e=await fetch("/api/context/claude");if(e.ok){let r=await e.json();r.success&&r.config&&v({name:r.config.name||(h?"Claude Docker":"Claude Local"),workspaceRoot:r.config.workspaceRoot||r.config.defaultWorkspaceRoot||"",scopedDirs:r.config.scopedDirs||[],extraFlags:r.config.extraFlags||""})}let r=await fetch("/api/recents");if(r.ok){let e=await r.json();e.success&&e.recents&&B(e.recents)}}catch(e){console.error("Failed to load Claude configuration / recents:",e)}finally{S(!1)}})()},[h]);let L=async()=>{D(!0),z("");try{let e=await fetch("/api/context/claude",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(y)});if(e.ok)D(!1),b(y.name,y.workspaceRoot,y.scopedDirs);else{let r=await e.json();z(r.error||"Failed to save settings."),D(!1)}}catch(e){console.error(e),z("Network error: failed to connect to NeuralLoom dashboard API."),D(!1)}};return C?(0,r.jsx)("div",{style:n,children:(0,r.jsx)("div",{style:l,children:(0,r.jsx)("div",{style:{textAlign:"center",padding:"2rem"},children:(0,r.jsx)("span",{style:{color:"var(--muted)"},children:"Loading Claude Configuration..."})})})}):(0,r.jsx)("div",{style:n,children:(0,r.jsxs)("div",{style:l,children:[(0,r.jsxs)("div",{style:a,children:[(0,r.jsxs)("h3",{style:{fontSize:"1.1rem",fontWeight:700,margin:0,display:"flex",alignItems:"center",gap:"0.5rem"},children:[h?"🐳":"🤖"," Claude PTY Launch Wizard ",h?"(Docker)":"(Local)"]}),(0,r.jsx)("button",{onClick:e,style:i,"aria-label":"Close wizard",children:"✖"})]}),(0,r.jsxs)("div",{style:s,children:[(0,r.jsx)("p",{style:{fontSize:"0.825rem",color:"var(--muted)",marginBottom:"1.25rem",lineHeight:1.4},children:"Configure the local workspace path and access parameters for the Claude Code session. Settings are saved in `.ai/neural-loom/claude.json`."}),(0,r.jsxs)("div",{style:d,children:[(0,r.jsx)("label",{style:c,children:"Session Display Name"}),(0,r.jsx)("input",{type:"text",value:y.name,onChange:e=>v({...y,name:e.target.value}),placeholder:h?"Claude Docker":"Claude Local",style:p})]}),(0,r.jsxs)("div",{style:d,children:[(0,r.jsx)("label",{style:c,children:"Workspace Directory (Root)"}),(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,r.jsx)("input",{type:"text",value:y.workspaceRoot,onChange:e=>v({...y,workspaceRoot:e.target.value}),placeholder:"e.g. C:\\Users\\Dave\\OneDrive\\Projects\\JS\\wingman",style:{...p,flex:1}}),(0,r.jsx)("button",{type:"button",onClick:()=>F(!0),style:f,children:"Browse..."})]}),P.workspaces.length>0&&(0,r.jsxs)("div",{style:{marginTop:"0.35rem",display:"flex",gap:"0.35rem",flexWrap:"wrap",alignItems:"center"},children:[(0,r.jsx)("span",{style:{fontSize:"0.65rem",color:"var(--muted)"},children:"Recent:"}),P.workspaces.map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>v({...y,workspaceRoot:e}),style:{background:"rgba(255,255,255,0.03)",border:"1px solid var(--border)",borderRadius:"3px",color:"var(--muted)",fontSize:"0.65rem",padding:"1px 6px",cursor:"pointer",fontFamily:"var(--font-mono)"},title:e,children:e.split(/[/\\]/).pop()||e},e))]}),(0,r.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--muted)",marginTop:"0.25rem"},children:"The active folder Claude Code will run in. Leave blank to run in the current orchestrator directory."})]}),(0,r.jsxs)("div",{style:d,children:[(0,r.jsx)("label",{style:c,children:"Extra Command Flags"}),(0,r.jsx)("input",{type:"text",value:y.extraFlags||"",onChange:e=>v({...y,extraFlags:e.target.value}),placeholder:"e.g. --resume ace806f9-cb5f-4a19-b0e9-d4331b7863a7",style:p}),(0,r.jsxs)("span",{style:{fontSize:"0.7rem",color:"var(--muted)",marginTop:"0.25rem"},children:["Custom parameters passed to the Claude CLI (e.g. ",(0,r.jsx)("code",{children:"--resume <session-id>"}),")."]})]}),(0,r.jsxs)("div",{style:d,children:[(0,r.jsx)("label",{style:c,children:"Scoped Directories (Additional Access)"}),y.scopedDirs.length>0&&(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem",marginBottom:"0.5rem"},children:y.scopedDirs.map((e,o)=>(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",backgroundColor:"#080c14",padding:"0.35rem 0.5rem",borderRadius:"4px",border:"1px solid var(--border)"},children:[(0,r.jsx)("span",{style:{fontSize:"0.8rem",fontFamily:"var(--font-mono), monospace",wordBreak:"break-all"},children:e}),(0,r.jsx)("button",{type:"button",onClick:()=>{let e=y.scopedDirs.filter((e,r)=>r!==o);v({...y,scopedDirs:e})},style:{background:"none",border:"none",color:"var(--danger)",cursor:"pointer",fontSize:"0.8rem",padding:"0 0.25rem"},children:"Remove"})]},o))}),(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,r.jsx)("input",{type:"text",value:j,onChange:e=>k(e.target.value),placeholder:"e.g. C:\\Users\\Dave\\OneDrive\\Projects\\JS\\other-repo",style:{...p,flex:1}}),(0,r.jsx)("button",{type:"button",onClick:()=>T(!0),style:f,children:"Browse..."}),(0,r.jsx)("button",{type:"button",onClick:()=>{j.trim()&&!y.scopedDirs.includes(j.trim())&&(v({...y,scopedDirs:[...y.scopedDirs,j.trim()]}),k(""))},style:{padding:"0.35rem 0.75rem",borderRadius:"6px",border:"1px solid var(--border-focus)",backgroundColor:"rgba(109, 40, 217, 0.1)",color:"var(--foreground)",fontSize:"0.75rem",fontWeight:600,cursor:"pointer"},children:"Add"})]}),P.scopes.length>0&&(0,r.jsxs)("div",{style:{marginTop:"0.35rem",display:"flex",gap:"0.35rem",flexWrap:"wrap",alignItems:"center"},children:[(0,r.jsx)("span",{style:{fontSize:"0.65rem",color:"var(--muted)"},children:"Recent:"}),P.scopes.filter(e=>!y.scopedDirs.includes(e)).map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>{y.scopedDirs.includes(e)||v({...y,scopedDirs:[...y.scopedDirs,e]})},style:{background:"rgba(168, 85, 247, 0.05)",border:"1px solid rgba(168, 85, 247, 0.2)",borderRadius:"3px",color:"#c084fc",fontSize:"0.65rem",padding:"1px 6px",cursor:"pointer",fontFamily:"var(--font-mono)"},title:e,children:["+",e.split(/[/\\]/).pop()||e]},e))]})]}),R&&(0,r.jsxs)("div",{style:u,children:["✗ ",R]})]}),(0,r.jsxs)("div",{style:m,children:[(0,r.jsx)("button",{onClick:e,style:g,disabled:w,children:"Cancel"}),(0,r.jsx)("button",{onClick:L,style:x,disabled:w,children:w?"Saving...":"Launch Session"})]}),W&&(0,r.jsx)(t.default,{title:"Select Workspace Root",initialPath:y.workspaceRoot,onClose:()=>F(!1),onSelect:e=>v({...y,workspaceRoot:e})}),I&&(0,r.jsx)(t.default,{title:"Add Scoped Directory",initialPath:j,onClose:()=>T(!1),onSelect:e=>k(e)})]})})}])},20032,e=>{e.n(e.i(44837))}]);
@@ -1,11 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,67585,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return a}});let s=e.r(32061);function a({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new s.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},9885,(e,t,r)=>{"use strict";function s(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return s}})},52157,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return i}});let s=e.r(43476),a=e.r(74080),n=e.r(63599),l=e.r(9885),o=e.r(43369);function i({moduleIds:e}){if("u">typeof window)return null;let t=n.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let s=t.reactLoadableManifest;for(let t of e){if(!s[t])continue;let e=s[t].files;r.push(...e)}}if(0===r.length)return null;let d=(0,o.getAssetTokenQuery)();return(0,s.jsx)(s.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,l.encodeURIPath)(e)}${d}`;return e.endsWith(".css")?(0,s.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,a.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},69093,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return d}});let s=e.r(43476),a=e.r(71645),n=e.r(67585),l=e.r(52157);function o(e){return{default:e&&"default"in e?e.default:e}}let i={loader:()=>Promise.resolve(o(()=>null)),loading:null,ssr:!0},d=function(e){let t={...i,...e},r=(0,a.lazy)(()=>t.loader().then(o)),d=t.loading;function c(e){let o=d?(0,s.jsx)(d,{isLoading:!0,pastDelay:!0,error:null}):null,i=!t.ssr||!!t.loading,c=i?a.Suspense:a.Fragment,u=t.ssr?(0,s.jsxs)(s.Fragment,{children:["u"<typeof window?(0,s.jsx)(l.PreloadChunks,{moduleIds:t.modules}):null,(0,s.jsx)(r,{...e})]}):(0,s.jsx)(n.BailoutToCSR,{reason:"next/dynamic",children:(0,s.jsx)(r,{...e})});return(0,s.jsx)(c,{...i?{fallback:o}:{},children:u})}return c.displayName="LoadableComponent",c}},70703,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return a}});let s=e.r(55682)._(e.r(69093));function a(e,t){let r={};"function"==typeof e&&(r.loader=e);let a={...r,...t};return(0,s.default)({...a,modules:a.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66381,e=>{"use strict";var t=e.i(43476),r=e.i(71645),s=e.i(74080);let a={display:"flex",height:"100%",width:"100%",backgroundColor:"#05070a",color:"#cbd5e1",fontSize:"0.875rem",minHeight:0},n={width:"280px",borderRight:"1px solid var(--border)",display:"flex",flexDirection:"column",minHeight:0,backgroundColor:"rgba(10, 15, 24, 0.4)",flexShrink:0},l={display:"flex",flexDirection:"column",padding:"1rem",minHeight:0},o={display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"0.75rem"},i={fontWeight:700,letterSpacing:"0.05em",textTransform:"uppercase",fontSize:"0.75rem",color:"var(--muted)"},d={padding:"0.2rem 0.5rem",borderRadius:"4px",border:"1px solid var(--primary)",backgroundColor:"transparent",color:"var(--primary)",fontSize:"0.7rem",fontWeight:600,cursor:"pointer"},c={display:"flex",flexDirection:"column",gap:"0.4rem",overflowY:"auto",maxHeight:"220px"},u={fontSize:"0.65rem",fontWeight:600,color:"var(--muted)",marginTop:"0.5rem",marginBottom:"0.2rem",letterSpacing:"0.05em"},p={display:"flex",justifyContent:"space-between",alignItems:"center",padding:"0.5rem 0.6rem",borderRadius:"6px",backgroundColor:"rgba(255, 255, 255, 0.02)",border:"1px solid var(--border)",cursor:"pointer",transition:"all 0.2s ease"},m={backgroundColor:"rgba(109, 40, 217, 0.08)",border:"1px solid var(--border-focus)",boxShadow:"0 0 10px rgba(109, 40, 217, 0.1)"},h={display:"flex",flexDirection:"column",gap:"0.15rem",flex:1,minWidth:0},f={fontWeight:600,fontSize:"0.8rem",color:"#fff",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},g={fontSize:"0.7rem",color:"var(--muted)",textTransform:"uppercase"},x={background:"none",border:"none",color:"rgba(239, 68, 68, 0.4)",cursor:"pointer",fontSize:"0.75rem",padding:"0.25rem"},y={display:"flex",flexDirection:"column",gap:"0.25rem",overflowY:"auto",flex:1,minHeight:0},b={fontSize:"0.75rem",color:"var(--muted)",textAlign:"center",padding:"1rem 0"},j={display:"flex",flexDirection:"column"},v={display:"flex",alignItems:"center",padding:"0.35rem 0.5rem",borderRadius:"4px",cursor:"pointer",userSelect:"none",transition:"background 0.2s ease"},_={marginRight:"0.4rem",fontSize:"0.9rem"},w={flex:1,fontSize:"0.8rem",color:"#e2e8f0",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},k={fontSize:"0.6rem",color:"var(--muted)",marginLeft:"0.25rem"},S={display:"flex",flexDirection:"column",gap:"0.2rem",paddingLeft:"1.5rem",marginTop:"0.15rem",borderLeft:"1px dashed rgba(255,255,255,0.06)",marginLeft:"0.8rem",marginBottom:"0.25rem"},C={display:"flex",alignItems:"center",padding:"0.15rem 0.25rem",fontSize:"0.75rem"},N={marginRight:"0.3rem",fontSize:"0.7rem"},E={flex:1,color:"var(--muted)",overflow:"hidden",textOverflow:"ellipsis"},R={fontSize:"0.65rem",color:"rgba(109, 40, 217, 0.75)",fontFamily:"monospace",paddingLeft:"0.5rem"},L={flex:1,display:"flex",flexDirection:"column",minHeight:0,backgroundColor:"#05070a"},T={display:"flex",justifyContent:"space-between",alignItems:"center",padding:"0.75rem 1rem",borderBottom:"1px solid var(--border)",backgroundColor:"rgba(15, 23, 42, 0.3)",flexShrink:0},W={fontSize:"0.75rem",color:"var(--muted)"},P={fontSize:"0.8rem",fontWeight:600,color:"#fff",display:"flex",alignItems:"center",gap:"0.4rem"},O={padding:"0.1rem 0.4rem",borderRadius:"4px",backgroundColor:"rgba(234, 179, 8, 0.12)",color:"#eab308",fontSize:"0.65rem",fontWeight:700,border:"1px solid rgba(234, 179, 8, 0.2)"},I={padding:"0.4rem 0.9rem",borderRadius:"6px",border:"none",backgroundColor:"var(--primary)",color:"#fff",fontSize:"0.8rem",fontWeight:600,transition:"all 0.2s ease"},D={height:"180px",borderBottom:"1px solid var(--border)",position:"relative",flexShrink:0},q={width:"100%",height:"100%",backgroundColor:"#080c14",border:"none",resize:"none",color:"#e2e8f0",fontFamily:"monospace",fontSize:"0.85rem",padding:"1rem",outline:"none",lineHeight:"1.4"},A={flex:1,display:"flex",flexDirection:"column",minHeight:0,padding:"1rem"},z={padding:"1rem",borderRadius:"8px",backgroundColor:"rgba(239, 68, 68, 0.08)",border:"1px solid rgba(239, 68, 68, 0.2)",overflowY:"auto"},B={margin:0,fontFamily:"monospace",fontSize:"0.8rem",color:"#f87171",whiteSpace:"pre-wrap"},$={marginTop:"1rem",padding:"0.75rem",borderRadius:"6px",backgroundColor:"rgba(0, 0, 0, 0.3)",border:"1px solid var(--border)"},F={display:"block",padding:"0.5rem",backgroundColor:"#090d16",borderRadius:"4px",fontFamily:"monospace",fontSize:"0.8rem",color:"var(--primary)",border:"1px solid var(--border)"},M={display:"flex",flexDirection:"column",height:"100%",minHeight:0},U={display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:"0.75rem",color:"var(--muted)",marginBottom:"0.5rem"},H={flex:1,overflow:"auto",border:"1px solid var(--border)",borderRadius:"6px"},G={width:"100%",borderCollapse:"collapse",fontFamily:"monospace",fontSize:"0.8rem"},Y={padding:"0.5rem 0.75rem",textAlign:"left",backgroundColor:"#0f172a",borderBottom:"1px solid var(--border)",color:"#94a3b8",fontWeight:600,position:"sticky",top:0,zIndex:1},J={padding:"0.4rem 0.75rem",borderBottom:"1px solid rgba(255, 255, 255, 0.03)",color:"#cbd5e1",whiteSpace:"nowrap"},Q={padding:"0.2rem 0.5rem",borderRadius:"4px",border:"1px solid var(--border)",backgroundColor:"rgba(255, 255, 255, 0.02)",color:"var(--muted)",fontSize:"0.7rem",fontWeight:600,cursor:"pointer",transition:"all 0.15s ease"},K={width:"100%",backgroundColor:"#070a12",border:"1px solid var(--border-focus)",borderRadius:"3px",color:"#fff",padding:"0.1rem 0.3rem",fontSize:"0.8rem",fontFamily:"monospace",outline:"none"},V={cursor:"pointer",transition:"all 0.15s ease"},X={backgroundColor:"transparent"},Z={backgroundColor:"rgba(255, 255, 255, 0.01)"},ee={flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--muted)",fontSize:"0.8rem",textAlign:"center"},et={flex:1,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"1rem"},er={width:"24px",height:"24px",border:"3px solid rgba(109, 40, 217, 0.15)",borderTop:"3px solid var(--primary)",borderRadius:"50%",animation:"spin 1s linear infinite"},es={width:"12px",height:"12px",border:"2px solid rgba(255, 255, 255, 0.1)",borderTop:"2px solid var(--muted)",borderRadius:"50%",animation:"spin 1s linear infinite"},ea={position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.7)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:999},en={width:"480px",backgroundColor:"#0d131f",borderRadius:"12px",border:"1px solid var(--border-focus)",padding:"1.5rem",boxShadow:"0 4px 24px rgba(0, 0, 0, 0.5)"},el={display:"flex",flexDirection:"column",gap:"0.35rem",marginBottom:"1rem"},eo={fontSize:"0.75rem",fontWeight:600,color:"var(--muted)"},ei={padding:"0.5rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"#070a12",color:"#fff",outline:"none",fontSize:"0.8rem"},ed={padding:"0.5rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"#070a12",color:"#fff",outline:"none",fontSize:"0.8rem"},ec={padding:"0.5rem",borderRadius:"6px",fontSize:"0.75rem",marginBottom:"1rem"},eu={display:"flex",justifyContent:"space-between",marginTop:"1.5rem"},ep={padding:"0.4rem 0.75rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"transparent",color:"var(--muted)",fontSize:"0.75rem",fontWeight:600,cursor:"pointer"},em={padding:"0.4rem 0.75rem",borderRadius:"6px",border:"none",backgroundColor:"transparent",color:"var(--muted)",fontSize:"0.75rem",fontWeight:600,cursor:"pointer"},eh={padding:"0.4rem 0.75rem",borderRadius:"6px",border:"none",backgroundColor:"var(--primary)",color:"#fff",fontSize:"0.75rem",fontWeight:600,cursor:"pointer"};if("u">typeof document){let e=document.createElement("style");e.innerHTML=`
2
- @keyframes spin {
3
- 0% { transform: rotate(0deg); }
4
- 100% { transform: rotate(360deg); }
5
- }
6
- .db-cell:hover {
7
- background-color: rgba(255, 255, 255, 0.03) !important;
8
- outline: 1px dashed rgba(255, 255, 255, 0.2);
9
- }
10
- `,document.head.appendChild(e)}e.s(["default",0,function({workspaceRoot:e}){let[ef,eg]=(0,r.useState)({global:[],workspace:[]}),[ex,ey]=(0,r.useState)(null),[eb,ej]=(0,r.useState)(!0),[ev,e_]=(0,r.useState)([]),[ew,ek]=(0,r.useState)(null),[eS,eC]=(0,r.useState)({}),[eN,eE]=(0,r.useState)(!1),[eR,eL]=(0,r.useState)("SELECT * FROM sqlite_master;"),[eT,eW]=(0,r.useState)(!1),[eP,eO]=(0,r.useState)(null),[eI,eD]=(0,r.useState)(null),[eq,eA]=(0,r.useState)(null),[ez,eB]=(0,r.useState)(null),[e$,eF]=(0,r.useState)(!1),[eM,eU]=(0,r.useState)(!1),[eH,eG]=(0,r.useState)({id:"",name:"",type:"sqlite",filepath:"./dev.db",host:"localhost",port:5432,database:"postgres",username:"postgres",password:"",ssl:!1,readOnly:!0}),[eY,eJ]=(0,r.useState)(!1),[eQ,eK]=(0,r.useState)(null),eV=async()=>{try{let t=await fetch(`/api/sql/connections?root=${encodeURIComponent(e)}`);if(t.ok){let e=await t.json();e.success&&(eg({global:e.global||[],workspace:e.workspace||[]}),ey(e.activeId),ej(e.isActiveGlobal))}}catch(e){console.error("Failed to load connection profiles:",e)}},eX=async()=>{if(!ex)return void e_([]);eE(!0);try{let t=await fetch(`/api/sql/schema?action=list_tables&root=${encodeURIComponent(e)}`);if(t.ok){let e=await t.json();e.success?(e_(e.tables||[]),eO(null)):eO(e.error||"Failed to load database schema.")}else{let e=await t.json();eO(e.error||"Failed to load database schema.")}}catch(e){console.error("Failed to load schema:",e)}finally{eE(!1)}},eZ=async t=>{if(eS[t])return void ek(ew===t?null:t);try{let r=await fetch(`/api/sql/schema?action=describe_table&table=${encodeURIComponent(t)}&root=${encodeURIComponent(e)}`);if(r.ok){let e=await r.json();e.success&&(eC(r=>({...r,[t]:e.columns})),ek(t))}}catch(e){console.error(`Failed to load columns for table ${t}:`,e)}};(0,r.useEffect)(()=>{eV()},[e]),(0,r.useEffect)(()=>{eX(),eD(null),ek(null),eC({});let e=eb?ef.global.find(e=>e.id===ex):ef.workspace.find(e=>e.id===ex);e&&("sqlite"===e.type?eL("SELECT name, type FROM sqlite_master WHERE type='table';"):"mssql"===e.type?eL("SELECT * FROM sys.tables;"):eL("SELECT * FROM information_schema.tables LIMIT 10;"))},[ex,eb,ef.global.length,ef.workspace.length]);let e0=async(t,r)=>{try{(await fetch("/api/sql/connections",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"set_active",profileId:t,isGlobal:r,root:e})})).ok&&(ey(t),ej(r))}catch(e){console.error("Failed to set active profile:",e)}},e1=async()=>{eK(null);try{let t=await fetch("/api/sql/connections",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"test",profile:eH,root:e})}),r=await t.json();r.success?eK({success:!0,message:"Connection test successful!"}):eK({success:!1,message:r.error||"Connection test failed."})}catch(e){eK({success:!1,message:e.message||"Failed to make test query."})}},e5=async t=>{if(t.preventDefault(),!eH.name||!eH.type)return;eJ(!0);let r=eH.id||`profile_${Math.random().toString(36).substring(7)}`,s={...eH,id:r,name:eH.name,type:eH.type};try{(await fetch("/api/sql/connections",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"save",profile:s,isGlobal:eM,root:e})})).ok&&(await eV(),eF(!1),ex||e0(r,eM))}catch(e){console.error("Failed to save profile:",e)}finally{eJ(!1)}},e2=async(t,r)=>{if(confirm("Are you sure you want to delete this connection profile?"))try{(await fetch("/api/sql/connections",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"delete",profileId:t,isGlobal:r,root:e})})).ok&&(await eV(),ex===t&&ey(null))}catch(e){console.error("Failed to delete connection profile:",e)}},e8=async(t,r,s,a)=>{if(e6?.readOnly)return void alert("Database connection is Read-Only. Updates are disabled.");let n=(e=>{let t=e.match(/from\s+([a-zA-Z0-9_\`"\[\]\.]+)/i);if(!t)return null;let r=t[1].trim(),s=(r=r.replace(/[\`"\[\]]/g,"")).split(".");return s[s.length-1]})(eR);if(!n)return void alert("Could not extract table name from query for inline edit. Please ensure your query includes 'FROM tableName'.");eB({rowIndex:t,field:r,status:"saving"});try{let a=eS[n];if(!a){let t=await fetch(`/api/sql/schema?action=describe_table&table=${encodeURIComponent(n)}&root=${encodeURIComponent(e)}`);if(t.ok){let e=await t.json();e.success&&e.columns&&(a=e.columns,eC(t=>({...t,[n]:e.columns})))}}if(!a)throw Error(`Could not load schema columns for table "${n}".`);let l=a.find(e=>e.isPrimaryKey);if(!l)throw Error(`Table "${n}" does not have a primary key. Inline editing requires a primary key.`);let o=eI?.rows[t];if(!o||!(l.name in o))throw Error(`Primary key column "${l.name}" was not returned in the query results. Please include it in your SELECT statement.`);let i=o[l.name],d=a.find(e=>e.name===r);if(!d)throw Error(`Column "${r}" was not found in schema columns.`);let c=e=>{let t=e.toLowerCase();return t.includes("int")||t.includes("decimal")||t.includes("numeric")||t.includes("float")||t.includes("double")||t.includes("real")},u="";if("NULL"===s.toUpperCase())u=`${r} = NULL`;else if(c(d.type)){if(""===s||isNaN(Number(s)))throw Error(`Value "${s}" is not a valid number for column "${r}".`);u=`${r} = ${s}`}else u=`${r} = '${s.replace(/'/g,"''")}'`;let p="";p=c(l.type)?`${l.name} = ${i}`:`${l.name} = '${String(i).replace(/'/g,"''")}'`;let m=`UPDATE ${n} SET ${u} WHERE ${p};`,h=await fetch("/api/sql/query",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sql:m,root:e})}),f=await h.json();if(h.ok&&f.success){if(eI){let e=[...eI.rows],a=s;"NULL"===s.toUpperCase()?a=null:c(d.type)&&(a=Number(s)),e[t]={...e[t],[r]:a},eD({...eI,rows:e})}eB({rowIndex:t,field:r,status:"success"}),setTimeout(()=>eB(null),1500)}else throw Error(f.error||"Update database query failed.")}catch(e){eB({rowIndex:t,field:r,status:"error",message:e.message}),alert(`Inline Update Failed:
11
- ${e.message}`)}},e7=async()=>{if(eR.trim()&&ex){eW(!0),eO(null),eD(null);try{let t=await fetch("/api/sql/query",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sql:eR.trim(),root:e})}),r=await t.json();t.ok&&r.success?(eD({rows:r.rows||[],fields:r.fields||[],durationMs:r.durationMs||0,affectedRows:r.affectedRows}),(eR.toLowerCase().includes("create table")||eR.toLowerCase().includes("drop table")||eR.toLowerCase().includes("alter table"))&&eX()):eO(r.error||"Failed to execute query.")}catch(e){eO(e.message||"An unexpected error occurred during execution.")}finally{eW(!1)}}},e6=eb?ef.global.find(e=>e.id===ex):ef.workspace.find(e=>e.id===ex);return(0,t.jsxs)("div",{style:a,children:[(0,t.jsxs)("div",{style:n,children:[(0,t.jsxs)("div",{style:l,children:[(0,t.jsxs)("div",{style:o,children:[(0,t.jsx)("span",{style:i,children:"Connections"}),(0,t.jsx)("button",{style:d,onClick:()=>{eK(null),eG({id:"",name:"",type:"sqlite",filepath:"./dev.db",host:"localhost",port:5432,database:"postgres",username:"postgres",password:"",ssl:!1,readOnly:!0}),eU(!1),eF(!0)},title:"Add Database Connection Profile",children:"➕ Add"})]}),(0,t.jsxs)("div",{style:c,children:[0===ef.global.length&&0===ef.workspace.length&&(0,t.jsx)("div",{style:b,children:"No connections configured. Add one to start."}),ef.workspace.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:u,children:"WORKSPACE CONNECTIONS"}),ef.workspace.map(e=>(0,t.jsxs)("div",{style:{...p,...ex===e.id&&!eb?m:{}},onClick:()=>e0(e.id,!1),children:[(0,t.jsxs)("div",{style:h,children:[(0,t.jsxs)("span",{style:f,children:["📁 ",e.name]}),(0,t.jsx)("span",{style:g,children:e.type})]}),(0,t.jsx)("button",{style:x,onClick:t=>{t.stopPropagation(),e2(e.id,!1)},children:"✖"})]},e.id))]}),ef.global.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:u,children:"GLOBAL CONNECTIONS"}),ef.global.map(e=>(0,t.jsxs)("div",{style:{...p,...ex===e.id&&eb?m:{}},onClick:()=>e0(e.id,!0),children:[(0,t.jsxs)("div",{style:h,children:[(0,t.jsxs)("span",{style:f,children:["🌐 ",e.name]}),(0,t.jsx)("span",{style:g,children:e.type})]}),(0,t.jsx)("button",{style:x,onClick:t=>{t.stopPropagation(),e2(e.id,!0)},children:"✖"})]},e.id))]})]})]}),(0,t.jsxs)("div",{style:{...l,flex:1,borderTop:"1px solid var(--border)"},children:[(0,t.jsxs)("div",{style:o,children:[(0,t.jsx)("span",{style:i,children:"Schema Tables"}),eN&&(0,t.jsx)("span",{style:es})]}),(0,t.jsxs)("div",{style:y,children:[!ex&&(0,t.jsx)("div",{style:b,children:"Select an active connection to view tables."}),ex&&0===ev.length&&!eN&&(0,t.jsx)("div",{style:b,children:"No tables found in database schema."}),ev.map(e=>(0,t.jsxs)("div",{style:j,children:[(0,t.jsxs)("div",{style:v,onClick:()=>eZ(e.name),children:[(0,t.jsx)("span",{style:_,children:"view"===e.type?"👁️":"📊"}),(0,t.jsx)("span",{style:w,children:e.name}),(0,t.jsx)("span",{style:k,children:ew===e.name?"▼":"▶"})]}),ew===e.name&&eS[e.name]&&(0,t.jsx)("div",{style:S,children:eS[e.name].map(e=>(0,t.jsxs)("div",{style:C,children:[(0,t.jsx)("span",{style:N,children:e.isPrimaryKey?"🔑":e.isForeignKey?"🔗":"▫"}),(0,t.jsx)("span",{style:E,title:e.type,children:e.name}),(0,t.jsx)("span",{style:R,children:e.type.toLowerCase().substring(0,12)})]},e.name))})]},e.name))]})]})]}),(0,t.jsxs)("div",{style:L,children:[(0,t.jsxs)("div",{style:T,children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[(0,t.jsx)("span",{style:W,children:"Active Connection:"}),e6?(0,t.jsxs)("span",{style:P,children:[eb?"🌐":"📁"," ",e6.name," (",e6.type,")",e6.readOnly&&(0,t.jsx)("span",{style:O,children:"Read-Only"})]}):(0,t.jsx)("span",{style:{...P,color:"var(--danger)"},children:"No Connection Selected"})]}),(0,t.jsx)("button",{style:{...I,opacity:!ex||eT?.6:1,cursor:!ex||eT?"not-allowed":"pointer"},onClick:e7,disabled:!ex||eT,children:eT?"⌛ Running...":"⚡ Execute Query (F5)"})]}),(0,t.jsx)("div",{style:D,children:(0,t.jsx)("textarea",{style:q,value:eR,onChange:e=>eL(e.target.value),placeholder:"Write your SQL query script here...",onKeyDown:e=>{("F5"===e.key||e.ctrlKey&&"Enter"===e.key)&&(e.preventDefault(),e7())}})}),(0,t.jsxs)("div",{style:A,children:[eP&&(0,t.jsxs)("div",{style:z,children:[(0,t.jsx)("h4",{style:{margin:"0 0 0.5rem 0",color:"var(--danger)"},children:"⚠️ Execution Error"}),(0,t.jsx)("pre",{style:B,children:eP}),eP.includes("not installed")&&(0,t.jsxs)("div",{style:$,children:[(0,t.jsx)("p",{style:{margin:"0 0 0.5rem 0"},children:"To resolve this, run this installer command in your workspace terminal:"}),(0,t.jsx)("code",{style:F,children:e6?.type==="sqlite"?"npm install better-sqlite3":e6?.type==="postgres"?"npm install pg":e6?.type==="mysql"?"npm install mysql2":"npm install mssql"})]})]}),eI&&(0,t.jsxs)("div",{style:M,children:[(0,t.jsxs)("div",{style:U,children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[(0,t.jsxs)("span",{children:["Query completed."," ",void 0!==eI.affectedRows?`Affected rows: ${eI.affectedRows}`:`Returned ${eI.rows.length} rows`]}),(0,t.jsxs)("span",{children:["Duration: ",eI.durationMs,"ms"]})]}),eI.rows.length>0&&(0,t.jsxs)("div",{style:{display:"flex",gap:"0.4rem"},children:[(0,t.jsx)("button",{onClick:()=>{if(eI&&0!==eI.rows.length)try{let e=eI.fields.join(","),t=eI.rows.map(e=>eI.fields.map(t=>{let r=e[t];if(null===r)return"NULL";let s=String(r);return s.includes(",")||s.includes('"')||s.includes("\n")||s.includes("\r")?`"${s.replace(/"/g,'""')}"`:s}).join(",")),r=[e,...t].join("\r\n"),s=new Blob([r],{type:"text/csv;charset=utf-8;"}),a=URL.createObjectURL(s),n=document.createElement("a");n.setAttribute("href",a),n.setAttribute("download",`query-results-${Date.now()}.csv`),document.body.appendChild(n),n.click(),document.body.removeChild(n)}catch(e){console.error("Export CSV failed:",e),alert("Failed to export as CSV")}},style:Q,children:"📥 Export CSV"}),(0,t.jsx)("button",{onClick:()=>{if(eI&&0!==eI.rows.length)try{let e=JSON.stringify(eI.rows,null,2),t=new Blob([e],{type:"application/json;charset=utf-8;"}),r=URL.createObjectURL(t),s=document.createElement("a");s.setAttribute("href",r),s.setAttribute("download",`query-results-${Date.now()}.json`),document.body.appendChild(s),s.click(),document.body.removeChild(s)}catch(e){console.error("Export JSON failed:",e),alert("Failed to export as JSON")}},style:Q,children:"📥 Export JSON"})]})]}),eI.rows.length>0?(0,t.jsx)("div",{style:H,children:(0,t.jsxs)("table",{style:G,children:[(0,t.jsx)("thead",{children:(0,t.jsx)("tr",{children:eI.fields.map(e=>(0,t.jsx)("th",{style:Y,children:e},e))})}),(0,t.jsx)("tbody",{children:eI.rows.map((e,r)=>(0,t.jsx)("tr",{style:r%2==0?X:Z,children:eI.fields.map(s=>{let a=eq&&eq.rowIndex===r&&eq.field===s,n=ez&&ez.rowIndex===r&&ez.field===s&&"saving"===ez.status,l=ez&&ez.rowIndex===r&&ez.field===s&&"success"===ez.status,o=ez&&ez.rowIndex===r&&ez.field===s&&"error"===ez.status,i={...J,...V};return n?i={...i,backgroundColor:"rgba(168, 85, 247, 0.15)"}:l?i={...i,backgroundColor:"rgba(16, 185, 129, 0.25)"}:o&&(i={...i,backgroundColor:"rgba(239, 68, 68, 0.25)"}),(0,t.jsx)("td",{style:i,onDoubleClick:()=>{e6?.readOnly?alert("Database connection is Read-Only. Editing is disabled."):eA({rowIndex:r,field:s,value:null===e[s]?"NULL":String(e[s])})},className:"db-cell",title:"Double click to edit cell",children:a?(0,t.jsx)("input",{style:K,value:eq.value,autoFocus:!0,onChange:e=>eA({...eq,value:e.target.value}),onKeyDown:async t=>{if("Enter"===t.key){t.preventDefault();let a=eq.value;eA(null),a!==(null===e[s]?"NULL":String(e[s]))&&await e8(r,s,a,e[s])}else"Escape"===t.key&&eA(null)},onBlur:async()=>{let t=eq.value;eA(null),t!==(null===e[s]?"NULL":String(e[s]))&&await e8(r,s,t,e[s])}}):null===e[s]?"NULL":"object"==typeof e[s]?JSON.stringify(e[s]):String(e[s])},s)})},r))})]})}):void 0===eI.affectedRows&&(0,t.jsx)("div",{style:ee,children:"Query executed successfully, but returned 0 results."})]}),!eP&&!eI&&!eT&&(0,t.jsx)("div",{style:ee,children:"Write a query script and click Execute to view table records."}),eT&&(0,t.jsxs)("div",{style:et,children:[(0,t.jsx)("span",{style:er}),(0,t.jsx)("span",{style:{color:"var(--muted)"},children:"Running database statement..."})]})]})]}),e$&&"u">typeof document&&(0,s.createPortal)((0,t.jsx)("div",{style:ea,children:(0,t.jsxs)("div",{style:en,children:[(0,t.jsxs)("h3",{style:{margin:"0 0 1rem 0",display:"flex",justifyContent:"space-between"},children:[(0,t.jsx)("span",{children:"🔌 Add Database Profile"}),(0,t.jsx)("span",{style:{cursor:"pointer"},onClick:()=>eF(!1),children:"✖"})]}),(0,t.jsxs)("form",{onSubmit:e5,children:[(0,t.jsxs)("div",{style:el,children:[(0,t.jsx)("label",{style:eo,children:"Profile Name"}),(0,t.jsx)("input",{style:ei,type:"text",required:!0,value:eH.name,onChange:e=>eG(t=>({...t,name:e.target.value})),placeholder:"e.g. Local Postgres, Dev SQLite"})]}),(0,t.jsxs)("div",{style:el,children:[(0,t.jsx)("label",{style:eo,children:"Scope Level"}),(0,t.jsxs)("div",{style:{display:"flex",gap:"1rem"},children:[(0,t.jsxs)("label",{style:{cursor:"pointer",display:"flex",alignItems:"center",gap:"0.25rem"},children:[(0,t.jsx)("input",{type:"radio",checked:!eM,onChange:()=>eU(!1)}),"Workspace Local"]}),(0,t.jsxs)("label",{style:{cursor:"pointer",display:"flex",alignItems:"center",gap:"0.25rem"},children:[(0,t.jsx)("input",{type:"radio",checked:eM,onChange:()=>eU(!0)}),"Global User Profile"]})]})]}),(0,t.jsxs)("div",{style:el,children:[(0,t.jsx)("label",{style:eo,children:"Database Type"}),(0,t.jsxs)("select",{style:ed,value:eH.type,onChange:e=>{let t=e.target.value,r=5432;"mysql"===t&&(r=3306),"mssql"===t&&(r=1433),eG(e=>({...e,type:t,filepath:"sqlite"===t?"./dev.db":void 0,port:"sqlite"!==t?r:void 0,database:"sqlite"===t?void 0:"mssql"===t?"master":"postgres"===t?"postgres":"",username:"sqlite"===t?void 0:"mssql"===t?"sa":"postgres"===t?"postgres":"root"}))},children:[(0,t.jsx)("option",{value:"sqlite",children:"SQLite (Local File)"}),(0,t.jsx)("option",{value:"postgres",children:"PostgreSQL"}),(0,t.jsx)("option",{value:"mysql",children:"MySQL"}),(0,t.jsx)("option",{value:"mssql",children:"Microsoft SQL Server"})]})]}),"sqlite"===eH.type?(0,t.jsxs)("div",{style:el,children:[(0,t.jsx)("label",{style:eo,children:"Database File Path"}),(0,t.jsx)("input",{style:ei,type:"text",required:!0,value:eH.filepath||"",onChange:e=>eG(t=>({...t,filepath:e.target.value})),placeholder:"Relative (e.g. ./data/dev.db) or Absolute path"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{style:{display:"flex",gap:"1rem"},children:[(0,t.jsxs)("div",{style:{...el,flex:3},children:[(0,t.jsx)("label",{style:eo,children:"Host IP Address"}),(0,t.jsx)("input",{style:ei,type:"text",required:!0,value:eH.host||"",onChange:e=>eG(t=>({...t,host:e.target.value})),placeholder:"localhost or IP"})]}),(0,t.jsxs)("div",{style:{...el,flex:1},children:[(0,t.jsx)("label",{style:eo,children:"Port"}),(0,t.jsx)("input",{style:ei,type:"number",required:!0,value:eH.port||0,onChange:e=>eG(t=>({...t,port:parseInt(e.target.value)}))})]})]}),(0,t.jsxs)("div",{style:el,children:[(0,t.jsx)("label",{style:eo,children:"Database Name"}),(0,t.jsx)("input",{style:ei,type:"text",required:!0,value:eH.database||"",onChange:e=>eG(t=>({...t,database:e.target.value}))})]}),(0,t.jsxs)("div",{style:{display:"flex",gap:"1rem"},children:[(0,t.jsxs)("div",{style:{...el,flex:1},children:[(0,t.jsx)("label",{style:eo,children:"Username"}),(0,t.jsx)("input",{style:ei,type:"text",required:!0,value:eH.username||"",onChange:e=>eG(t=>({...t,username:e.target.value}))})]}),(0,t.jsxs)("div",{style:{...el,flex:1},children:[(0,t.jsx)("label",{style:eo,children:"Password"}),(0,t.jsx)("input",{style:ei,type:"password",value:eH.password||"",onChange:e=>eG(t=>({...t,password:e.target.value}))})]})]}),("postgres"===eH.type||"mssql"===eH.type)&&(0,t.jsx)("div",{style:el,children:(0,t.jsxs)("label",{style:{cursor:"pointer",display:"flex",alignItems:"center",gap:"0.25rem"},children:[(0,t.jsx)("input",{type:"checkbox",checked:!!eH.ssl,onChange:e=>eG(t=>({...t,ssl:e.target.checked}))}),"Require SSL Secure Connection"]})})]}),(0,t.jsx)("div",{style:el,children:(0,t.jsxs)("label",{style:{cursor:"pointer",display:"flex",alignItems:"center",gap:"0.25rem"},children:[(0,t.jsx)("input",{type:"checkbox",checked:!!eH.readOnly,onChange:e=>eG(t=>({...t,readOnly:e.target.checked}))}),"Enforce Read-Only Connection (Disable mutations)"]})}),eQ&&(0,t.jsx)("div",{style:{...ec,backgroundColor:eQ.success?"rgba(16, 185, 129, 0.12)":"rgba(239, 68, 68, 0.12)",border:eQ.success?"1px solid var(--success)":"1px solid var(--danger)",color:eQ.success?"var(--success)":"var(--danger)"},children:eQ.message}),(0,t.jsxs)("div",{style:eu,children:[(0,t.jsx)("button",{type:"button",style:ep,onClick:e1,children:"🔍 Test Connection"}),(0,t.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,t.jsx)("button",{type:"button",style:em,onClick:()=>eF(!1),children:"Cancel"}),(0,t.jsx)("button",{type:"submit",style:eh,disabled:eY,children:eY?"Saving...":"Save Profile"})]})]})]})]})}),document.body)]})}])},20897,e=>{e.v({activeBorder:"page-module___8aEwW__activeBorder",agentBadge:"page-module___8aEwW__agentBadge",agentCard:"page-module___8aEwW__agentCard",agentGrid:"page-module___8aEwW__agentGrid",agentHeader:"page-module___8aEwW__agentHeader",agentName:"page-module___8aEwW__agentName",agentStateBadge:"page-module___8aEwW__agentStateBadge",ansiCyan:"page-module___8aEwW__ansiCyan",ansiGreen:"page-module___8aEwW__ansiGreen",ansiMagenta:"page-module___8aEwW__ansiMagenta",ansiRed:"page-module___8aEwW__ansiRed",ansiYellow:"page-module___8aEwW__ansiYellow",cardBody:"page-module___8aEwW__cardBody",container:"page-module___8aEwW__container",containerActive:"page-module___8aEwW__containerActive",contextDetails:"page-module___8aEwW__contextDetails",contextItem:"page-module___8aEwW__contextItem",contextList:"page-module___8aEwW__contextList",contextMeta:"page-module___8aEwW__contextMeta",contextTitle:"page-module___8aEwW__contextTitle",dashboardGrid:"page-module___8aEwW__dashboardGrid",envGrid:"page-module___8aEwW__envGrid",envName:"page-module___8aEwW__envName",envRow:"page-module___8aEwW__envRow",envStatus:"page-module___8aEwW__envStatus",footer:"page-module___8aEwW__footer",header:"page-module___8aEwW__header",logoArea:"page-module___8aEwW__logoArea",mainPanel:"page-module___8aEwW__mainPanel",pulse:"page-module___8aEwW__pulse","pulse-attention":"page-module___8aEwW__pulse-attention","pulse-thinking":"page-module___8aEwW__pulse-thinking",pulseDot:"page-module___8aEwW__pulseDot",quickLaunchBtn:"page-module___8aEwW__quickLaunchBtn",sectionTitle:"page-module___8aEwW__sectionTitle",sidePanel:"page-module___8aEwW__sidePanel","state-complete":"page-module___8aEwW__state-complete","state-idle":"page-module___8aEwW__state-idle","state-needs-input":"page-module___8aEwW__state-needs-input","state-thinking":"page-module___8aEwW__state-thinking",statusIndicator:"page-module___8aEwW__statusIndicator",stoppedBadge:"page-module___8aEwW__stoppedBadge",subtitle:"page-module___8aEwW__subtitle",terminalContainer:"page-module___8aEwW__terminalContainer",terminalInput:"page-module___8aEwW__terminalInput",terminalInputArea:"page-module___8aEwW__terminalInputArea",terminalLine:"page-module___8aEwW__terminalLine",terminalSendBtn:"page-module___8aEwW__terminalSendBtn",title:"page-module___8aEwW__title"})},52683,e=>{"use strict";var t=e.i(43476),r=e.i(71645),s=e.i(70703),a=e.i(20897),n=e.i(66381);let l=e=>"mock"===e?"🧪":e.includes("-docker")?"🐳":e.includes("-ssh")?"🌐":"💻",o=(0,s.default)(()=>e.A(33779),{loadableGenerated:{modules:[37314]},ssr:!1,loading:()=>(0,t.jsx)("div",{style:{height:"400px",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"#05070a",color:"var(--muted)",border:"1px solid var(--border)",borderBottomLeftRadius:"12px",borderBottomRightRadius:"12px"},children:(0,t.jsx)("span",{children:"Initializing terminal emulator..."})})}),i=(0,s.default)(()=>e.A(39429),{loadableGenerated:{modules:[1985]},ssr:!1,loading:()=>(0,t.jsx)("div",{style:{height:"280px",display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"var(--card)",border:"1px solid var(--border)",borderRadius:"12px",marginTop:"1.5rem"},children:(0,t.jsx)("span",{style:{color:"var(--muted)"},children:"Initializing prompt editor..."})})}),d=(0,s.default)(()=>e.A(56915),{loadableGenerated:{modules:[99026]},ssr:!1}),c=(0,s.default)(()=>e.A(78716),{loadableGenerated:{modules:[9949]},ssr:!1}),u=(0,s.default)(()=>e.A(33789),{loadableGenerated:{modules:[20032]},ssr:!1}),p=(0,s.default)(()=>e.A(78003),{loadableGenerated:{modules:[97722]},ssr:!1});e.s(["default",0,function(){let[e,s]=(0,r.useState)([]),[m,h]=(0,r.useState)(null),[f,g]=(0,r.useState)(!1),[x,y]=(0,r.useState)(!1),[b,j]=(0,r.useState)(!1),[v,_]=(0,r.useState)(!1),[w,k]=(0,r.useState)(!1),[S,C]=(0,r.useState)(!1),[N,E]=(0,r.useState)(""),[R,L]=(0,r.useState)(3001),[T,W]=(0,r.useState)("0.2.19"),[P,O]=(0,r.useState)(null),I=e.filter(e=>"workspace-terminal"!==e.id),D=e.find(e=>e.id===m),q=I.some(e=>("claude-docker"===e.type||"aider-docker"===e.type)&&"running"===e.status),A=I.some(e=>"claude-ssh"===e.type&&"running"===e.status),z=async()=>{try{let e=await fetch("/api/sessions"),t=await e.json();t.sessions&&s(t.sessions),t.wsPort&&L(t.wsPort),t.originalCwd&&E(t.originalCwd),t.version&&W(t.version)}catch(e){console.error("Failed to fetch sessions:",e)}},B=async()=>{try{let e=await fetch("/api/recents");if(e.ok){let t=await e.json();t.success&&t.recents&&t.recents.lastSession&&O(t.recents.lastSession)}}catch(e){console.error("Failed to fetch recents:",e)}};(0,r.useEffect)(()=>{(async()=>{await z(),await B()})(),"serviceWorker"in navigator&&navigator.serviceWorker.register("/sw.js").then(e=>console.log("Service Worker registered:",e.scope)).catch(e=>console.error("Service Worker registration failed:",e));let e=setInterval(z,4e3);return()=>clearInterval(e)},[]);let $=async(e,t,r,s)=>{g(!0);try{let a=t;a||("claude"===e?a="Claude Local":"claude-docker"===e?a="Claude Docker":"claude-ssh"===e?a="Claude SSH":"aider"===e?a="Aider Local":"aider-docker"===e?a="Aider Docker":"mock"===e&&(a="Mock Session"));let n={type:e,name:a,workspaceRoot:r,scopedDirs:s};if(("aider"===e||"aider-docker"===e)&&!r)try{let e=await fetch("/api/context/aider");if(e.ok){let t=await e.json();t.success&&t.config&&(n.workspaceRoot=t.config.workspaceRoot,n.scopedDirs=t.config.scopedDirs)}}catch(e){console.error("Failed to load aider configuration before launch:",e)}let l=await fetch("/api/sessions/launch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)}),o=await l.json();o.success&&(await z(),h(o.session.id),O({type:e,name:a,workspaceRoot:r,scopedDirs:s}))}catch(e){console.error("Failed to launch session:",e)}finally{g(!1)}},F=async(e,t=!1)=>{try{let r=await fetch("/api/sessions/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,delete:t})});(await r.json()).success&&(t&&m===e&&h(null),await z())}catch(e){console.error("Failed to stop session:",e)}};return(0,t.jsxs)("div",{className:`${a.default.container} ${D?a.default.containerActive:""}`,children:[(0,t.jsxs)("header",{className:a.default.header,children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1.5rem"},children:[(0,t.jsx)("img",{src:"/logo.png",alt:"NeuralLoom Logo",style:{width:"160px",height:"160px",borderRadius:"16px",objectFit:"contain"}}),(0,t.jsxs)("div",{className:a.default.logoArea,children:[(0,t.jsx)("h1",{className:a.default.title,style:{margin:0,lineHeight:1.1},children:"NeuralLoom"}),(0,t.jsx)("span",{className:a.default.subtitle,children:"Unified AI Orchestrator & Context Bridge"})]})]}),(0,t.jsxs)("div",{className:a.default.statusIndicator,children:[(0,t.jsx)("span",{className:a.default.pulseDot}),(0,t.jsx)("span",{children:"Orchestrator Online"})]})]}),D?(0,t.jsx)("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column"},children:(0,t.jsx)(p,{sessionId:D.id,workspaceRoot:D.workspaceRoot||"",scopedDirs:D.scopedDirs||[],onClose:()=>h(null),sessions:e,onSwitchSession:e=>h(e),onRefreshSessions:z,wsPort:R})}):(0,t.jsxs)("div",{className:a.default.dashboardGrid,children:[(0,t.jsxs)("main",{className:a.default.mainPanel,children:[(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a.default.sectionTitle,children:"Active AI Agents"}),0===I.length?(0,t.jsxs)("div",{className:"card",style:{padding:"3rem 1.5rem",textAlign:"center"},children:[(0,t.jsx)("p",{style:{color:"var(--muted)",marginBottom:"1.5rem"},children:"No active agent sessions in this workspace. Launch a Claude or Aider agent session to begin."}),(0,t.jsxs)("div",{style:{display:"flex",gap:"1rem",justifyContent:"center",flexWrap:"wrap"},children:[P&&(0,t.jsx)("button",{className:a.default.quickLaunchBtn,onClick:()=>{$(P.type,P.name,P.workspaceRoot,P.scopedDirs)},disabled:f,style:{background:"linear-gradient(135deg, hsl(38, 92%, 50%) 0%, hsl(0, 84%, 60%) 100%)",border:"none",maxWidth:"200px"},title:`Re-launch: ${P.name||P.type}`,children:"⚡ Re-launch Last Session"}),(0,t.jsx)("button",{className:a.default.quickLaunchBtn,onClick:()=>{C(!1),k(!0)},disabled:f,style:{background:"linear-gradient(135deg, hsl(262, 83%, 60%) 0%, hsl(195, 100%, 45%) 100%)",border:"none",maxWidth:"200px"},children:"Launch Claude PTY"}),(0,t.jsx)("button",{className:a.default.quickLaunchBtn,onClick:()=>{_(!1),j(!0)},disabled:f,style:{background:"linear-gradient(135deg, hsl(210, 80%, 45%) 0%, hsl(262, 80%, 55%) 100%)",border:"none",maxWidth:"200px"},children:"Launch Aider PTY"})]}),(0,t.jsxs)("div",{style:{marginTop:"1.5rem",fontSize:"0.75rem",color:"var(--muted)"},children:["Want to verify layout features first?"," ",(0,t.jsx)("span",{onClick:()=>$("mock"),style:{color:"var(--primary)",cursor:"pointer",textDecoration:"underline"},children:"Start simulated sandbox session"})]})]}):(0,t.jsx)("div",{className:a.default.agentGrid,children:I.map(e=>(0,t.jsxs)("div",{className:`${a.default.agentCard} card ${m===e.id?a.default.activeBorder:""}`,children:[(0,t.jsxs)("div",{className:a.default.agentHeader,children:[(0,t.jsx)("span",{className:a.default.agentName,children:e.name}),(0,t.jsxs)("div",{style:{display:"flex",gap:"0.35rem",alignItems:"center"},children:["running"===e.status&&e.agentState&&(0,t.jsxs)("span",{className:`${a.default.agentStateBadge} ${a.default["state-"+e.agentState]}`,children:["thinking"===e.agentState&&`${l(e.type)} 💭 thinking`,"needs-input"===e.agentState&&`${l(e.type)} ⚠️ needs input`,"complete"===e.agentState&&`${l(e.type)} ✅ complete`,"idle"===e.agentState&&`${l(e.type)} 💤 idle`]}),(0,t.jsx)("span",{className:`${a.default.agentBadge} ${"stopped"===e.status?a.default.stoppedBadge:""}`,children:e.status})]})]}),(0,t.jsxs)("div",{className:a.default.cardBody,children:[(0,t.jsxs)("p",{style:{fontSize:"0.825rem",color:"var(--muted)"},children:["ID: ",(0,t.jsx)("code",{style:{fontSize:"0.75rem"},children:e.id.substring(0,8)}),(0,t.jsx)("br",{}),"Type: ","claude"===e.type?"Claude Local PTY":"claude-docker"===e.type?"Claude Docker PTY":"claude-ssh"===e.type?"Claude SSH PTY":"aider"===e.type?"Aider Local PTY":"aider-docker"===e.type?"Aider Docker PTY":"mock"===e.type?"Simulated Mock PTY":"Unknown PTY",(0,t.jsx)("br",{}),"Logs: ",e.logsCount," captured lines"]}),(0,t.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginTop:"1rem"},children:["running"===e.status?(0,t.jsx)("button",{onClick:()=>F(e.id,!1),style:{flex:1,padding:"0.4rem 0.6rem",borderRadius:"6px",border:"1px solid var(--danger)",backgroundColor:"transparent",fontSize:"0.75rem",fontWeight:600,color:"var(--danger)"},children:"Stop"}):(0,t.jsx)("button",{onClick:()=>F(e.id,!0),style:{flex:1,padding:"0.4rem 0.6rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"transparent",fontSize:"0.75rem",fontWeight:600,color:"var(--muted)"},children:"Delete"}),(0,t.jsx)("button",{onClick:()=>h(e.id),style:{flex:2,padding:"0.4rem 0.6rem",borderRadius:"6px",border:"none",backgroundColor:m===e.id?"var(--border-focus)":"var(--primary)",fontSize:"0.75rem",fontWeight:600,color:"#fff"},children:m===e.id?"Connected":"Open Session"})]})]})]},e.id))})]}),m&&"workspace-terminal"!==m&&(0,t.jsxs)("section",{className:"card",style:{display:"flex",flexDirection:"column",border:"1px solid var(--border-focus)"},children:[(0,t.jsxs)("div",{className:a.default.agentHeader,style:{justifyContent:"space-between",background:"rgba(109, 40, 217, 0.08)"},children:[(0,t.jsxs)("span",{style:{fontWeight:600,display:"flex",alignItems:"center",gap:"0.5rem"},children:["🖥️ Console Bridge — ",e.find(e=>e.id===m)?.name]}),(0,t.jsxs)("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center"},children:[e.find(e=>e.id===m)?.status==="stopped"&&(0,t.jsx)("button",{onClick:async()=>{try{let e=await fetch("/api/sessions/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:m})});if(e.ok)await z();else{let t=await e.json();alert(t.error||"Failed to restart session.")}}catch(e){console.error("Failed to restart session:",e),alert("Network error: failed to restart session.")}},style:{padding:"0.2rem 0.5rem",borderRadius:"4px",border:"1px solid #eab308",backgroundColor:"rgba(234, 179, 8, 0.15)",color:"#eab308",fontSize:"0.7rem",fontWeight:600,cursor:"pointer",boxShadow:"0 0 8px rgba(234, 179, 8, 0.2)"},title:"Restart the stopped session process runner",children:"⚡ Restart Session"}),(0,t.jsx)("button",{onClick:()=>h(null),style:{border:"none",background:"none",color:"var(--muted)",cursor:"pointer",fontSize:"0.75rem"},children:"Close Panel ✖"})]})]}),(0,t.jsx)(o,{sessionId:m,wsPort:R})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a.default.sectionTitle,children:"Workspace Shell Terminal"}),(0,t.jsxs)("div",{className:"card",style:{display:"flex",flexDirection:"column",border:"1px solid var(--border)",padding:0},children:[(0,t.jsxs)("div",{className:a.default.agentHeader,style:{justifyContent:"space-between",background:"rgba(255, 255, 255, 0.02)"},children:[(0,t.jsxs)("span",{style:{fontWeight:600,display:"flex",alignItems:"center",gap:"0.5rem",fontSize:"0.85rem"},children:["💻 Local Workspace Shell (CWD: ",N||"root",")"]}),(0,t.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--muted)"},children:"Pre-configured environment"})]}),(0,t.jsx)(o,{sessionId:"workspace-terminal",height:"300px",wsPort:R})]})]}),(0,t.jsxs)("section",{style:{marginTop:"2rem"},children:[(0,t.jsx)("h2",{className:a.default.sectionTitle,children:"Shared Context Hub & Slash Commands"}),(0,t.jsxs)("div",{className:a.default.contextList,children:[(0,t.jsxs)("div",{className:`${a.default.contextItem} card`,children:[(0,t.jsxs)("div",{className:a.default.contextMeta,children:[(0,t.jsx)("span",{className:a.default.contextTitle,children:"Staged Context & System Rules (/ccc)"}),(0,t.jsx)("span",{className:a.default.contextDetails,children:"Compiles AGENTS.md guidelines and project files folder hierarchy map."})]}),(0,t.jsx)("button",{onClick:async()=>{m&&await fetch("/api/sessions/inject",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:m,command:"/ccc"})})},disabled:!m,style:{padding:"0.4rem 0.8rem",borderRadius:"6px",border:"1px solid var(--primary)",backgroundColor:"transparent",color:"var(--primary)",fontSize:"0.75rem",fontWeight:600,opacity:m?1:.5,cursor:m?"pointer":"not-allowed"},children:"🚀 Mount Context (/ccc)"})]}),(0,t.jsxs)("div",{className:`${a.default.contextItem} card`,children:[(0,t.jsxs)("div",{className:a.default.contextMeta,children:[(0,t.jsx)("span",{className:a.default.contextTitle,children:"Staged Developer Prompt (/ccp)"}),(0,t.jsx)("span",{className:a.default.contextDetails,children:"Executes instructions written in .ai/neural-loom/cprompt.md."})]}),(0,t.jsx)("button",{onClick:async()=>{m&&await fetch("/api/sessions/inject",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:m,command:"/ccp"})})},disabled:!m,style:{padding:"0.4rem 0.8rem",borderRadius:"6px",border:"1px solid var(--success)",backgroundColor:"transparent",color:"var(--success)",fontSize:"0.75rem",fontWeight:600,opacity:m?1:.5,cursor:m?"pointer":"not-allowed"},children:"⚡ Trigger Prompt (/ccp)"})]})]}),(0,t.jsx)(i,{})]}),(0,t.jsxs)("section",{style:{marginTop:"2rem"},children:[(0,t.jsx)("h2",{className:a.default.sectionTitle,children:"Built-in Database Explorer & SQL Client"}),(0,t.jsx)("div",{className:"card",style:{padding:0,overflow:"hidden",height:"480px",border:"1px solid var(--border)"},children:(0,t.jsx)(n.default,{workspaceRoot:N||""})})]})]}),(0,t.jsxs)("aside",{className:a.default.sidePanel,children:[(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:a.default.sectionTitle,children:"Execution Environments"}),(0,t.jsxs)("div",{className:a.default.envGrid,children:[(0,t.jsxs)("div",{className:a.default.envRow,children:[(0,t.jsx)("span",{className:a.default.envName,children:"💻 Local host OS"}),(0,t.jsx)("span",{className:a.default.envStatus,style:{color:"var(--success)"},children:"Active"})]}),(0,t.jsxs)("div",{className:a.default.envRow,style:{opacity:q?1:.6},children:[(0,t.jsx)("span",{className:a.default.envName,children:"🐳 Docker Sandbox"}),(0,t.jsx)("span",{className:a.default.envStatus,style:{color:q?"var(--success)":"var(--muted)"},children:q?"Active":"Not Mounted"})]}),(0,t.jsxs)("div",{className:a.default.envRow,style:{opacity:A?1:.6},children:[(0,t.jsx)("span",{className:a.default.envName,children:"🌐 Remote VM (SSH)"}),(0,t.jsx)("span",{className:a.default.envStatus,style:{color:A?"var(--success)":"var(--muted)"},children:A?"Active":"Disconnected"})]})]})]}),(0,t.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:[(0,t.jsxs)("button",{className:a.default.quickLaunchBtn,onClick:()=>{C(!1),k(!0)},disabled:f,style:{background:"linear-gradient(135deg, hsl(262, 83%, 60%) 0%, hsl(195, 100%, 45%) 100%)",border:"none"},children:[(0,t.jsx)("span",{children:"🤖"}),(0,t.jsx)("span",{children:"Launch Claude PTY"})]}),(0,t.jsxs)("button",{className:a.default.quickLaunchBtn,onClick:()=>{C(!0),k(!0)},disabled:f,style:{background:"linear-gradient(135deg, hsl(170, 72%, 40%) 0%, hsl(195, 100%, 40%) 100%)",border:"none"},children:[(0,t.jsx)("span",{children:"🐳"}),(0,t.jsx)("span",{children:"Launch Docker PTY"})]}),(0,t.jsxs)("button",{className:a.default.quickLaunchBtn,onClick:()=>y(!0),disabled:f,style:{background:"linear-gradient(135deg, hsl(38, 92%, 50%) 0%, hsl(0, 84%, 60%) 100%)",border:"none"},children:[(0,t.jsx)("span",{children:"🌐"}),(0,t.jsx)("span",{children:"Launch SSH PTY"})]}),(0,t.jsxs)("button",{className:a.default.quickLaunchBtn,onClick:()=>{_(!1),j(!0)},disabled:f,style:{background:"linear-gradient(135deg, hsl(210, 80%, 45%) 0%, hsl(262, 80%, 55%) 100%)",border:"none"},children:[(0,t.jsx)("span",{children:"🐍"}),(0,t.jsx)("span",{children:"Launch Aider PTY"})]}),(0,t.jsxs)("button",{className:a.default.quickLaunchBtn,onClick:()=>{_(!0),j(!0)},disabled:f,style:{background:"linear-gradient(135deg, hsl(195, 100%, 40%) 0%, hsl(262, 80%, 55%) 100%)",border:"none"},children:[(0,t.jsx)("span",{children:"🐳"}),(0,t.jsx)("span",{children:"Launch Aider Docker"})]})]}),(0,t.jsxs)("section",{className:"card",style:{padding:"1.5rem",display:"flex",flexDirection:"column",gap:"0.75rem"},children:[(0,t.jsx)("h3",{style:{fontSize:"1rem",fontWeight:700},children:"Quick Actions"}),(0,t.jsxs)("ul",{style:{listStyle:"none",fontSize:"0.875rem",display:"flex",flexDirection:"column",gap:"0.5rem",color:"var(--muted)"},children:[(0,t.jsxs)("li",{style:{display:"flex",justifyContent:"space-between"},children:[(0,t.jsx)("span",{children:"Configure global API Keys"}),(0,t.jsx)("span",{style:{color:"var(--primary)",cursor:"pointer"},children:"→"})]}),(0,t.jsxs)("li",{style:{display:"flex",justifyContent:"space-between"},children:[(0,t.jsx)("span",{children:"Edit rules templates"}),(0,t.jsx)("span",{style:{color:"var(--primary)",cursor:"pointer"},children:"→"})]}),(0,t.jsxs)("li",{style:{display:"flex",justifyContent:"space-between"},children:[(0,t.jsx)("span",{children:"Inspect process locks"}),(0,t.jsx)("span",{style:{color:"var(--primary)",cursor:"pointer"},children:"→"})]})]}),(0,t.jsxs)("div",{style:{marginTop:"1.2rem",textAlign:"center",fontSize:"0.72rem",color:"var(--muted)"},children:["Need to troubleshoot?"," ",(0,t.jsx)("span",{onClick:()=>$("mock"),style:{color:"var(--primary)",cursor:"pointer",textDecoration:"underline"},children:"Launch simulated playground sandbox"})]})]})]})]}),(0,t.jsxs)("footer",{className:a.default.footer,children:[(0,t.jsxs)("span",{children:["NeuralLoom v",T," — Experimental AI Orchestrator Bridge"]}),(0,t.jsxs)("span",{children:["Directory: ",N||"Loading..."]})]}),x&&(0,t.jsx)(d,{onClose:()=>y(!1),onConfirmLaunch:()=>{y(!1),$("claude-ssh")}}),b&&(0,t.jsx)(c,{onClose:()=>j(!1),isDocker:v,onConfirmLaunch:()=>{j(!1),$(v?"aider-docker":"aider")}}),w&&(0,t.jsx)(u,{onClose:()=>k(!1),isDocker:S,onConfirmLaunch:(e,t,r)=>{k(!1),$(S?"claude-docker":"claude",e,t,r)}})]})}])},33779,e=>{e.v(t=>Promise.all(["static/chunks/03g6xpslyid3~.js","static/chunks/0y~7jjqbr14.5.js","static/chunks/0ga14ztvrhau2.css"].map(t=>e.l(t))).then(()=>t(37314)))},39429,e=>{e.v(t=>Promise.all(["static/chunks/16w4~t4h7gk13.js"].map(t=>e.l(t))).then(()=>t(1985)))},56915,e=>{e.v(t=>Promise.all(["static/chunks/0lnobx4eh3~-_.js"].map(t=>e.l(t))).then(()=>t(99026)))},78716,e=>{e.v(t=>Promise.all(["static/chunks/0k2co3uj4w81_.js"].map(t=>e.l(t))).then(()=>t(9949)))},33789,e=>{e.v(t=>Promise.all(["static/chunks/076_b43_kienv.js"].map(t=>e.l(t))).then(()=>t(20032)))},78003,e=>{e.v(t=>Promise.all(["static/chunks/0gy2rolwxzjl8.js","static/chunks/0y~7jjqbr14.5.js","static/chunks/0sqeixl35qoac.js","static/chunks/0ga14ztvrhau2.css"].map(t=>e.l(t))).then(()=>t(97722)))}]);
@@ -1 +0,0 @@
1
- .page-module___8aEwW__container{flex-direction:column;gap:2rem;max-width:1400px;min-height:100vh;margin:0 auto;padding:2rem;display:flex}.page-module___8aEwW__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding-bottom:1.5rem;display:flex}.page-module___8aEwW__logoArea{flex-direction:column;gap:.25rem;display:flex}.page-module___8aEwW__title{letter-spacing:-.05em;background:linear-gradient(135deg, hsl(var(--primary-hsl)) 0%, hsl(var(--accent-hsl)) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:2.25rem;font-weight:800}.page-module___8aEwW__subtitle{color:var(--muted);font-size:.875rem}.page-module___8aEwW__statusIndicator{background-color:var(--card);border:1px solid var(--border);border-radius:9999px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;display:flex}.page-module___8aEwW__pulseDot{background-color:var(--success);width:8px;height:8px;box-shadow:0 0 10px var(--success);border-radius:50%;animation:2s infinite page-module___8aEwW__pulse}.page-module___8aEwW__dashboardGrid{grid-template-columns:2fr 1fr;gap:2rem;display:grid}@media (max-width:1024px){.page-module___8aEwW__dashboardGrid{grid-template-columns:1fr}}.page-module___8aEwW__mainPanel{flex-direction:column;gap:2rem;min-width:0;display:flex}.page-module___8aEwW__sidePanel{flex-direction:column;gap:2rem;display:flex}.page-module___8aEwW__sectionTitle{color:var(--foreground);margin-bottom:1rem;font-size:1.25rem;font-weight:700}.page-module___8aEwW__cardBody{flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.page-module___8aEwW__agentGrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;display:grid}.page-module___8aEwW__agentCard{background-color:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden}.page-module___8aEwW__agentHeader{background-color:hsla(var(--border-hsl), .3);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.page-module___8aEwW__agentName{font-size:1rem;font-weight:600}.page-module___8aEwW__agentBadge{background-color:hsla(var(--primary-hsl), .15);color:var(--primary);border-radius:4px;padding:.25rem .5rem;font-size:.75rem;font-weight:500}.page-module___8aEwW__envGrid{grid-template-columns:1fr;gap:1rem;display:grid}.page-module___8aEwW__envRow{background-color:var(--card);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.page-module___8aEwW__envName{font-size:.875rem;font-weight:500}.page-module___8aEwW__envStatus{color:var(--muted);font-size:.75rem}.page-module___8aEwW__quickLaunchBtn{background-color:var(--primary);color:#fff;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:1rem;font-size:1rem;font-weight:600;display:flex}.page-module___8aEwW__quickLaunchBtn:hover{background-color:var(--primary-hover);transform:translateY(-1px)}.page-module___8aEwW__contextList{flex-direction:column;gap:.75rem;display:flex}.page-module___8aEwW__contextItem{background-color:var(--card);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.page-module___8aEwW__contextMeta{flex-direction:column;gap:.25rem;display:flex}.page-module___8aEwW__contextTitle{font-size:.875rem;font-weight:600}.page-module___8aEwW__contextDetails{color:var(--muted);font-size:.75rem}.page-module___8aEwW__footer{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;margin-top:auto;padding-top:1.5rem;font-size:.75rem;display:flex}@keyframes page-module___8aEwW__pulse{0%{transform:scale(.95);box-shadow:0 0 #22c55eb3}70%{transform:scale(1);box-shadow:0 0 0 6px #22c55e00}to{transform:scale(.95);box-shadow:0 0 #22c55e00}}.page-module___8aEwW__activeBorder{box-shadow:0 0 12px hsla(var(--primary-hsl), .2);border-color:var(--border-focus)!important}.page-module___8aEwW__stoppedBadge{background-color:hsla(var(--danger-hsl), .15)!important;color:var(--danger)!important}.page-module___8aEwW__terminalContainer{border-bottom:1px solid var(--border);font-family:var(--font-mono);color:#c9d1d9;background-color:#05070a;flex-direction:column;gap:.35rem;height:380px;padding:1.5rem;font-size:.825rem;line-height:1.5;display:flex;overflow-y:auto}.page-module___8aEwW__terminalLine{white-space:pre-wrap;word-break:break-all}.page-module___8aEwW__terminalInputArea{background-color:#0b0f17;border-bottom-right-radius:12px;border-bottom-left-radius:12px;align-items:center;gap:.75rem;padding:1rem 1.5rem;display:flex}.page-module___8aEwW__terminalInput{color:var(--foreground);font-family:var(--font-mono);background:0 0;border:none;outline:none;flex:1;font-size:.825rem}.page-module___8aEwW__terminalSendBtn{background-color:var(--primary);color:#fff;border:none;border-radius:6px;padding:.4rem 1rem;font-size:.75rem;font-weight:600;transition:all .2s}.page-module___8aEwW__terminalSendBtn:hover:not(:disabled){background-color:var(--primary-hover);transform:translateY(-1px)}.page-module___8aEwW__terminalSendBtn:disabled{opacity:.5;cursor:not-allowed}.page-module___8aEwW__ansiMagenta{color:#ff79c6}.page-module___8aEwW__ansiCyan{color:#8be9fd}.page-module___8aEwW__ansiGreen{color:#50fa7b}.page-module___8aEwW__ansiRed{color:#f55}.page-module___8aEwW__ansiYellow{color:#f1fa8c}.page-module___8aEwW__containerActive{gap:1rem;width:100%;max-width:none;height:100vh;min-height:100vh;max-height:100vh;padding:1rem 1.5rem;overflow:hidden}.page-module___8aEwW__agentStateBadge{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;align-items:center;gap:.25rem;margin-right:.25rem;padding:.15rem .4rem;font-size:.65rem;font-weight:600;display:inline-flex}.page-module___8aEwW__state-thinking{color:#c084fc;background-color:#a855f726;border:1px solid #a855f74d;animation:2s ease-in-out infinite page-module___8aEwW__pulse-thinking;box-shadow:0 0 8px #a855f733}.page-module___8aEwW__state-needs-input{color:#e0825f;background-color:#d9775226;border:1px solid #d977524d;animation:1.5s ease-in-out infinite page-module___8aEwW__pulse-attention;box-shadow:0 0 8px #d9775233}.page-module___8aEwW__state-complete{color:#34d399;background-color:#10b98126;border:1px solid #10b9814d}.page-module___8aEwW__state-idle{color:var(--muted);background-color:#ffffff0d;border:1px solid #ffffff1a}@keyframes page-module___8aEwW__pulse-thinking{0%{box-shadow:0 0 #a855f766}70%{box-shadow:0 0 0 5px #a855f700}to{box-shadow:0 0 #a855f700}}@keyframes page-module___8aEwW__pulse-attention{0%{box-shadow:0 0 #d9775266}70%{box-shadow:0 0 0 5px #d9775200}to{box-shadow:0 0 #d9775200}}
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,54370,e=>{"use strict";var r=e.i(43476),o=e.i(71645);let t={position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(5, 7, 10, 0.85)",backdropFilter:"blur(12px)",zIndex:1100,display:"flex",alignItems:"center",justifyContent:"center"},i={width:"90%",maxWidth:"550px",height:"480px",backgroundColor:"var(--card)",border:"1px solid var(--border-focus)",borderRadius:"12px",boxShadow:"0 20px 25px -5px rgba(0,0,0,0.7), 0 10px 10px -5px rgba(0,0,0,0.7)",display:"flex",flexDirection:"column",overflow:"hidden"},n={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0.85rem 1.25rem",borderBottom:"1px solid var(--border)",background:"hsla(var(--border-hsl), 0.2)"},l={background:"none",border:"none",color:"var(--muted)",fontSize:"0.9rem",cursor:"pointer",padding:"0.25rem"},s={display:"flex",padding:"0.75rem 1.25rem",gap:"0.5rem",backgroundColor:"rgba(10, 15, 25, 0.5)",borderBottom:"1px solid var(--border)"},a={flex:1,padding:"0.45rem 0.75rem",backgroundColor:"#05070a",border:"1px solid var(--border)",borderRadius:"6px",color:"var(--foreground)",fontFamily:"var(--font-mono), monospace",fontSize:"0.8rem",outline:"none"},d={padding:"0.45rem 0.85rem",backgroundColor:"var(--border)",border:"1px solid var(--border-focus)",borderRadius:"6px",color:"var(--foreground)",fontSize:"0.75rem",fontWeight:600,cursor:"pointer"},c={padding:"0.15rem 0.45rem",backgroundColor:"rgba(255, 255, 255, 0.15)",border:"none",borderRadius:"4px",color:"var(--foreground)",fontSize:"0.7rem",cursor:"pointer",fontWeight:600},p={flex:1,padding:"0.5rem 1.25rem",overflowY:"auto",backgroundColor:"#070a0f"},u={display:"flex",flexDirection:"column",gap:"0.25rem"},m={display:"flex",alignItems:"center",gap:"0.6rem",padding:"0.45rem 0.65rem",borderRadius:"6px",cursor:"pointer",fontSize:"0.825rem",border:"1px solid transparent",userSelect:"none",transition:"all 0.15s ease"},g={textAlign:"center",padding:"2rem",fontSize:"0.85rem",color:"var(--muted)"},x={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"0.85rem 1.25rem",borderTop:"1px solid var(--border)",background:"hsla(var(--border-hsl), 0.2)"},h={fontSize:"0.75rem",color:"var(--muted)",maxWidth:"240px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},f={padding:"0.45rem 0.9rem",borderRadius:"6px",border:"none",background:"linear-gradient(135deg, hsl(262, 83%, 60%) 0%, hsl(195, 100%, 45%) 100%)",color:"#fff",fontSize:"0.75rem",fontWeight:600,cursor:"pointer"},b={padding:"0.45rem 0.9rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"transparent",color:"var(--foreground)",fontSize:"0.75rem",fontWeight:600,cursor:"pointer"};e.s(["default",0,function({title:e,initialPath:y,onClose:v,onSelect:j}){let[k,S]=(0,o.useState)(y||""),[C,w]=(0,o.useState)(null),[A,R]=(0,o.useState)([]),[z,D]=(0,o.useState)(null),[F,I]=(0,o.useState)(""),[K,P]=(0,o.useState)(!1),[T,W]=(0,o.useState)(""),B=async e=>{P(!0),W("");try{let r=`/api/files?action=browse_dirs&path=${encodeURIComponent(e)}`,o=await fetch(r),t=await o.json();o.ok&&t.success?(S(t.currentPath),I(t.currentPath),w(t.parentPath),R(t.directories),D(null)):W(t.error||"Failed to load directory content.")}catch(e){console.error("Error browsing directories:",e),W("Failed to fetch directory contents.")}finally{P(!1)}};(0,o.useEffect)(()=>{B(y)},[y]);let G=e=>{B(e)},O=()=>{F.trim()&&B(F.trim())};return(0,r.jsx)("div",{style:t,children:(0,r.jsxs)("div",{style:i,children:[(0,r.jsxs)("div",{style:n,children:[(0,r.jsxs)("h3",{style:{fontSize:"1rem",fontWeight:700,margin:0,color:"var(--foreground)"},children:["📁 ",e]}),(0,r.jsx)("button",{onClick:v,style:l,"aria-label":"Close browser",children:"✖"})]}),(0,r.jsxs)("div",{style:s,children:[(0,r.jsx)("input",{type:"text",value:F,onChange:e=>I(e.target.value),onKeyDown:e=>{"Enter"===e.key&&O()},style:a,placeholder:"Absolute folder path..."}),(0,r.jsx)("button",{onClick:O,style:d,disabled:K,children:"Go"})]}),(0,r.jsx)("div",{style:p,children:K?(0,r.jsx)("div",{style:g,children:"Loading directories..."}):T?(0,r.jsxs)("div",{style:{...g,color:"var(--danger)"},children:[T,(0,r.jsx)("button",{onClick:()=>B(k||"."),style:{...d,display:"block",margin:"0.75rem auto 0"},children:"Retry"})]}):(0,r.jsxs)("div",{style:u,children:[C&&(0,r.jsxs)("div",{onClick:()=>G(C),onDoubleClick:()=>G(C),style:m,title:"Go up to parent directory",children:[(0,r.jsx)("span",{style:{fontSize:"1.1rem"},children:"⬆️"}),(0,r.jsx)("span",{style:{fontWeight:600},children:".. (Up)"})]}),0===A.length?(0,r.jsx)("div",{style:{...g,color:"var(--muted)"},children:"No subdirectories found"}):A.map(e=>{let o=z===e.path;return(0,r.jsxs)("div",{onClick:()=>D(e.path),onDoubleClick:()=>G(e.path),style:{...m,backgroundColor:o?"rgba(109, 40, 217, 0.25)":"transparent",borderColor:o?"var(--border-focus)":"transparent"},title:"Single click to highlight, double click to enter",children:[(0,r.jsx)("span",{style:{fontSize:"1.1rem"},children:"📁"}),(0,r.jsx)("span",{style:{flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),o&&(0,r.jsx)("button",{type:"button",onClick:r=>{r.stopPropagation(),G(e.path)},style:c,children:"Enter ➜"})]},e.path)})]})}),(0,r.jsxs)("div",{style:x,children:[(0,r.jsxs)("span",{style:h,children:["Selection: ",(0,r.jsx)("span",{style:{color:"var(--foreground)",fontFamily:"var(--font-mono), monospace"},children:z||k||"(None)"})]}),(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,r.jsx)("button",{onClick:v,style:b,children:"Cancel"}),(0,r.jsx)("button",{onClick:()=>{j(z||k),v()},style:f,disabled:K,children:"Select Folder"})]})]})]})})}])},1663,e=>{"use strict";var r=e.i(43476),o=e.i(71645),t=e.i(54370);let i={position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(5, 7, 10, 0.8)",backdropFilter:"blur(8px)",zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",animation:"fadeIn 0.2s ease-out"},n={width:"90%",maxWidth:"500px",backgroundColor:"var(--card)",border:"1px solid var(--border-focus)",borderRadius:"12px",boxShadow:"0 10px 25px -5px rgba(0, 0, 0, 0.5), 0 8px 10px -6px rgba(0, 0, 0, 0.5)",overflow:"hidden",display:"flex",flexDirection:"column"},l={display:"flex",alignItems:"center",justifyContent:"space-between",padding:"1rem 1.25rem",borderBottom:"1px solid var(--border)",background:"hsla(var(--border-hsl), 0.2)"},s={background:"none",border:"none",color:"var(--muted)",fontSize:"0.9rem",cursor:"pointer",padding:"0.25rem"},a={padding:"1.25rem",display:"flex",flexDirection:"column"},d={display:"flex",flexDirection:"column",marginBottom:"1rem"},c={fontSize:"0.75rem",fontWeight:600,color:"var(--foreground)",marginBottom:"0.375rem",textTransform:"uppercase",letterSpacing:"0.05em"},p={width:"100%",padding:"0.5rem 0.75rem",backgroundColor:"#080c14",border:"1px solid var(--border)",borderRadius:"6px",color:"var(--foreground)",fontFamily:"var(--font-mono), monospace",fontSize:"0.825rem",outline:"none",transition:"border-color 0.15s ease"},u={width:"100%",padding:"0.5rem 0.75rem",backgroundColor:"#080c14",border:"1px solid var(--border)",borderRadius:"6px",color:"var(--foreground)",fontSize:"0.825rem",outline:"none",cursor:"pointer"},m={marginTop:"0.75rem",padding:"0.75rem",borderRadius:"6px",border:"1px solid var(--danger)",backgroundColor:"rgba(239, 68, 68, 0.05)",color:"var(--danger)",fontSize:"0.8rem",lineHeight:1.4},g={display:"flex",justifyContent:"flex-end",gap:"0.75rem",padding:"1rem 1.25rem",borderTop:"1px solid var(--border)",background:"hsla(var(--border-hsl), 0.2)"},x={padding:"0.5rem 1rem",borderRadius:"6px",border:"none",background:"linear-gradient(135deg, hsl(210, 80%, 45%) 0%, hsl(262, 80%, 55%) 100%)",color:"#fff",fontSize:"0.8rem",fontWeight:600,cursor:"pointer"},h={padding:"0.5rem 1rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"transparent",color:"var(--foreground)",fontSize:"0.8rem",fontWeight:600,cursor:"pointer"},f={padding:"0.35rem 0.75rem",borderRadius:"6px",border:"1px solid var(--border)",backgroundColor:"rgba(255, 255, 255, 0.05)",color:"var(--foreground)",fontSize:"0.75rem",fontWeight:600,cursor:"pointer",transition:"all 0.15s ease"};e.s(["default",0,function({onClose:e,onConfirmLaunch:b,isDocker:y}){let[v,j]=(0,o.useState)({openaiApiKey:"",anthropicApiKey:"",geminiApiKey:"",model:"claude-3-5-sonnet",extraFlags:"",workspaceRoot:"",scopedDirs:[],loadAllFiles:!0}),[k,S]=(0,o.useState)(""),[C,w]=(0,o.useState)(!0),[A,R]=(0,o.useState)(!1),[z,D]=(0,o.useState)(""),[F,I]=(0,o.useState)(!1),[K,P]=(0,o.useState)(!1),[T,W]=(0,o.useState)({workspaces:[],scopes:[]});(0,o.useEffect)(()=>{(async()=>{try{let e=await fetch("/api/context/aider");if(e.ok){let r=await e.json();r.success&&r.config&&j({openaiApiKey:r.config.openaiApiKey||"",anthropicApiKey:r.config.anthropicApiKey||"",geminiApiKey:r.config.geminiApiKey||"",model:r.config.model||"claude-3-5-sonnet",extraFlags:r.config.extraFlags||"",workspaceRoot:r.config.workspaceRoot||r.config.defaultWorkspaceRoot||"",scopedDirs:r.config.scopedDirs||[],loadAllFiles:!1!==r.config.loadAllFiles})}let r=await fetch("/api/recents");if(r.ok){let e=await r.json();e.success&&e.recents&&W(e.recents)}}catch(e){console.error("Failed to load Aider configuration / recents:",e)}finally{w(!1)}})()},[]);let B=async()=>{R(!0),D("");try{let e=await fetch("/api/context/aider",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(v)});if(e.ok)R(!1),b();else{let r=await e.json();D(r.error||"Failed to save settings."),R(!1)}}catch(e){console.error(e),D("Network error: failed to connect to NeuralLoom dashboard API."),R(!1)}};return C?(0,r.jsx)("div",{style:i,children:(0,r.jsx)("div",{style:n,children:(0,r.jsx)("div",{style:{textAlign:"center",padding:"2rem"},children:(0,r.jsx)("span",{style:{color:"var(--muted)"},children:"Loading Aider Configuration..."})})})}):(0,r.jsx)("div",{style:i,children:(0,r.jsxs)("div",{style:n,children:[(0,r.jsxs)("div",{style:l,children:[(0,r.jsxs)("h3",{style:{fontSize:"1.1rem",fontWeight:700,margin:0,display:"flex",alignItems:"center",gap:"0.5rem"},children:["🐍 Aider Launch Panel ",y?"(Docker)":""]}),(0,r.jsx)("button",{onClick:e,style:s,"aria-label":"Close wizard",children:"✖"})]}),(0,r.jsxs)("div",{style:a,children:[(0,r.jsx)("p",{style:{fontSize:"0.825rem",color:"var(--muted)",marginBottom:"1.25rem",lineHeight:1.4},children:"Configure model and environment variables for the Aider session. API keys are saved locally in `.ai/neural-loom/aider.json` and are ignored by git."}),(0,r.jsxs)("div",{style:d,children:[(0,r.jsx)("label",{style:c,children:"Anthropic API Key"}),(0,r.jsx)("input",{type:"password",value:v.anthropicApiKey,onChange:e=>j({...v,anthropicApiKey:e.target.value}),placeholder:v.anthropicApiKey?"••••••••••••••••":"sk-ant-...",style:p})]}),(0,r.jsxs)("div",{style:d,children:[(0,r.jsx)("label",{style:c,children:"OpenAI API Key"}),(0,r.jsx)("input",{type:"password",value:v.openaiApiKey,onChange:e=>j({...v,openaiApiKey:e.target.value}),placeholder:v.openaiApiKey?"••••••••••••••••":"sk-...",style:p})]}),(0,r.jsxs)("div",{style:d,children:[(0,r.jsx)("label",{style:c,children:"Gemini API Key"}),(0,r.jsx)("input",{type:"password",value:v.geminiApiKey,onChange:e=>j({...v,geminiApiKey:e.target.value}),placeholder:v.geminiApiKey?"••••••••••••••••":"AIzaSy...",style:p})]}),(0,r.jsxs)("div",{style:d,children:[(0,r.jsx)("label",{style:c,children:"Workspace Directory (Root)"}),(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,r.jsx)("input",{type:"text",value:v.workspaceRoot,onChange:e=>j({...v,workspaceRoot:e.target.value}),placeholder:"e.g. C:\\Users\\Dave\\OneDrive\\Projects\\JS\\neural-loom",style:{...p,flex:1}}),(0,r.jsx)("button",{type:"button",onClick:()=>I(!0),style:f,children:"Browse..."})]}),T.workspaces.length>0&&(0,r.jsxs)("div",{style:{marginTop:"0.35rem",display:"flex",gap:"0.35rem",flexWrap:"wrap",alignItems:"center"},children:[(0,r.jsx)("span",{style:{fontSize:"0.65rem",color:"var(--muted)"},children:"Recent:"}),T.workspaces.map(e=>(0,r.jsx)("button",{type:"button",onClick:()=>j({...v,workspaceRoot:e}),style:{background:"rgba(255,255,255,0.03)",border:"1px solid var(--border)",borderRadius:"3px",color:"var(--muted)",fontSize:"0.65rem",padding:"1px 6px",cursor:"pointer",fontFamily:"var(--font-mono)"},title:e,children:e.split(/[/\\]/).pop()||e},e))]}),(0,r.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--muted)",marginTop:"0.25rem"},children:"Leave blank to default to the current orchestrator directory."})]}),(0,r.jsxs)("div",{style:d,children:[(0,r.jsx)("label",{style:c,children:"Scoped Directories (Additional Access)"}),v.scopedDirs.length>0&&(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.5rem",marginBottom:"0.5rem"},children:v.scopedDirs.map((e,o)=>(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",backgroundColor:"#080c14",padding:"0.35rem 0.5rem",borderRadius:"4px",border:"1px solid var(--border)"},children:[(0,r.jsx)("span",{style:{fontSize:"0.8rem",fontFamily:"var(--font-mono), monospace",wordBreak:"break-all"},children:e}),(0,r.jsx)("button",{type:"button",onClick:()=>{let e=v.scopedDirs.filter((e,r)=>r!==o);j({...v,scopedDirs:e})},style:{background:"none",border:"none",color:"var(--danger)",cursor:"pointer",fontSize:"0.8rem",padding:"0 0.25rem"},children:"Remove"})]},o))}),(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,r.jsx)("input",{type:"text",value:k,onChange:e=>S(e.target.value),placeholder:"e.g. C:\\Users\\Dave\\OneDrive\\Projects\\JS\\wingman",style:{...p,flex:1}}),(0,r.jsx)("button",{type:"button",onClick:()=>P(!0),style:f,children:"Browse..."}),(0,r.jsx)("button",{type:"button",onClick:()=>{k.trim()&&!v.scopedDirs.includes(k.trim())&&(j({...v,scopedDirs:[...v.scopedDirs,k.trim()]}),S(""))},style:{padding:"0.35rem 0.75rem",borderRadius:"6px",border:"1px solid var(--border-focus)",backgroundColor:"rgba(109, 40, 217, 0.1)",color:"var(--foreground)",fontSize:"0.75rem",fontWeight:600,cursor:"pointer"},children:"Add"})]}),T.scopes.length>0&&(0,r.jsxs)("div",{style:{marginTop:"0.35rem",display:"flex",gap:"0.35rem",flexWrap:"wrap",alignItems:"center"},children:[(0,r.jsx)("span",{style:{fontSize:"0.65rem",color:"var(--muted)"},children:"Recent:"}),T.scopes.filter(e=>!v.scopedDirs.includes(e)).map(e=>(0,r.jsxs)("button",{type:"button",onClick:()=>{v.scopedDirs.includes(e)||j({...v,scopedDirs:[...v.scopedDirs,e]})},style:{background:"rgba(168, 85, 247, 0.05)",border:"1px solid rgba(168, 85, 247, 0.2)",borderRadius:"3px",color:"#c084fc",fontSize:"0.65rem",padding:"1px 6px",cursor:"pointer",fontFamily:"var(--font-mono)"},title:e,children:["+",e.split(/[/\\]/).pop()||e]},e))]})]}),(0,r.jsxs)("div",{style:d,children:[(0,r.jsx)("label",{style:c,children:"AI Model Selection"}),(0,r.jsxs)("select",{value:v.model,onChange:e=>j({...v,model:e.target.value}),style:u,children:[(0,r.jsx)("option",{value:"claude-3-5-sonnet",children:"Claude 3.5 Sonnet (Recommended)"}),(0,r.jsx)("option",{value:"gemini/gemini-2.5-flash",children:"Gemini 2.5 Flash (Recommended for Free Tier)"}),(0,r.jsx)("option",{value:"gemini/gemini-2.5-pro",children:"Gemini 2.5 Pro (Requires Paid/Billing Tier)"}),(0,r.jsx)("option",{value:"gemini/gemini-2.0-flash-exp",children:"Gemini 2.0 Flash Exp"}),(0,r.jsx)("option",{value:"gemini/gemini-1.5-pro",children:"Gemini 1.5 Pro"}),(0,r.jsx)("option",{value:"gemini/gemini-1.5-flash",children:"Gemini 1.5 Flash"}),(0,r.jsx)("option",{value:"gpt-4o",children:"GPT-4o"}),(0,r.jsx)("option",{value:"deepseek/deepseek-coder",children:"DeepSeek Coder"}),(0,r.jsx)("option",{value:"gpt-4-turbo",children:"GPT-4 Turbo"})]})]}),(0,r.jsxs)("div",{style:d,children:[(0,r.jsx)("label",{style:c,children:"Extra CLI Flags (Optional)"}),(0,r.jsx)("input",{type:"text",value:v.extraFlags,onChange:e=>j({...v,extraFlags:e.target.value}),placeholder:"e.g. --no-git --auto-commits",style:p}),(0,r.jsx)("span",{style:{fontSize:"0.7rem",color:"var(--muted)",marginTop:"0.25rem"},children:"Appended directly to the startup shell command."})]}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem",marginTop:"0.25rem",marginBottom:"1.25rem"},children:[(0,r.jsx)("input",{type:"checkbox",id:"loadAllFiles",checked:v.loadAllFiles,onChange:e=>j({...v,loadAllFiles:e.target.checked}),style:{width:"16px",height:"16px",cursor:"pointer",accentColor:"var(--accent)"}}),(0,r.jsx)("label",{htmlFor:"loadAllFiles",style:{fontSize:"0.8rem",color:"var(--foreground)",cursor:"pointer",userSelect:"none"},children:"Load all files in root directory on startup"})]}),z&&(0,r.jsxs)("div",{style:m,children:["✗ ",z]})]}),(0,r.jsxs)("div",{style:g,children:[(0,r.jsx)("button",{onClick:e,style:h,disabled:A,children:"Cancel"}),(0,r.jsx)("button",{onClick:B,style:x,disabled:A,children:A?"Saving...":"Save & Launch Session"})]}),F&&(0,r.jsx)(t.default,{title:"Select Workspace Root",initialPath:v.workspaceRoot,onClose:()=>I(!1),onSelect:e=>j({...v,workspaceRoot:e})}),K&&(0,r.jsx)(t.default,{title:"Add Scoped Directory",initialPath:k,onClose:()=>P(!1),onSelect:e=>S(e)})]})})}])},9949,e=>{e.n(e.i(1663))}]);