neural-loom 0.2.59 → 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 (186) 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]__0tq0maq._.js.map +1 -0
  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/{0-vb7c~yrtpon.js → 15_baizhaiq8c.js} +16 -3
  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 +2 -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 +368 -11
  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]__0_o7_jj._.js.map +0 -1
  172. package/.next/server/chunks/[root-of-the-server]__0d0pykb._.js +0 -33
  173. package/.next/server/chunks/[root-of-the-server]__0d0pykb._.js.map +0 -1
  174. package/.next/server/chunks/[root-of-the-server]__0em6a~~._.js +0 -15
  175. package/.next/server/chunks/[root-of-the-server]__0i~01cv._.js +0 -15
  176. package/.next/server/chunks/[root-of-the-server]__0s0is_9._.js +0 -15
  177. package/.next/server/chunks/[root-of-the-server]__0thsozo._.js +0 -15
  178. package/.next/server/chunks/[root-of-the-server]__10wwca8._.js +0 -15
  179. package/.next/static/chunks/076_b43_kienv.js +0 -1
  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/chunks/10pqt4p7e3rk1.js +0 -11
  184. /package/.next/static/{cwv8IVp6ik4mwOjuM24B1 → b48zoI5QUg8m7v1asTiCM}/_buildManifest.js +0 -0
  185. /package/.next/static/{cwv8IVp6ik4mwOjuM24B1 → b48zoI5QUg8m7v1asTiCM}/_clientMiddlewareManifest.js +0 -0
  186. /package/.next/static/{cwv8IVp6ik4mwOjuM24B1 → 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 +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))}]);