alchemylab 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +6 -6
- package/dist/http-server.js +248 -242
- package/dist/index.js +30 -24
- package/dist/mcp-direct.js +82 -76
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -194,14 +194,14 @@ if(s.agent){for(const e of r)e.enabled&&s.agent[e.name]&&e.name in n&&(s.agent[e
|
|
|
194
194
|
c.default.writeFileSync(e,JSON.stringify(s,null,2),"utf-8"),this.logger.info("Updated opencode.json agent tools",{bashOverrides:Object.keys(n).length})}}}catch(e){this.logger.warn("Failed to update opencode.json agent tools",{error:(0,h.getErrorMessage)(e)})}let d=!1
|
|
195
195
|
try{const e=a.default.join(this.options.projectPath,".alchemy_lab","opencode.json")
|
|
196
196
|
if(c.default.existsSync(e)){const s=c.default.readFileSync(e,"utf-8"),r=JSON.parse(s)
|
|
197
|
-
if(r.pid)try{process.kill(r.pid,"SIGTERM"),this.logger.info("Killed existing OpenCode process",{pid:r.pid}),await new Promise((e=>setTimeout(e,500)))}catch(e){"ESRCH"!==e?.code&&this.logger.warn("Could not kill OpenCode",{error:(0,h.getErrorMessage)(e)})}const{resolveServeCommand:
|
|
197
|
+
if(r.pid)try{process.kill(r.pid,"SIGTERM"),this.logger.info("Killed existing OpenCode process",{pid:r.pid}),await new Promise((e=>setTimeout(e,500)))}catch(e){"ESRCH"!==e?.code&&this.logger.warn("Could not kill OpenCode",{error:(0,h.getErrorMessage)(e)})}const o=r.port||0,{resolveServeCommand:n}=await Promise.resolve().then(t.bind(t,9068)),i=n(),a=(0,v.spawn)(i.command,[...i.prependArgs,"--port",o+""],{stdio:["ignore","pipe","pipe"],cwd:this.options.projectPath,detached:!0,env:process.env}),l=new Promise((e=>{let t=""
|
|
198
198
|
const s=setTimeout((()=>{this.logger.warn("Timeout waiting for OpenCode port, killing process")
|
|
199
|
-
try{
|
|
200
|
-
|
|
199
|
+
try{a.kill("SIGTERM")}catch{}e(null)}),1e4)
|
|
200
|
+
a.stdout?.on("data",(r=>{t+=r.toString()
|
|
201
201
|
const o=t.match(/listening on http:\/\/[^:]+:(\d+)/)
|
|
202
|
-
o&&(clearTimeout(s),
|
|
203
|
-
try{
|
|
204
|
-
|
|
202
|
+
o&&(clearTimeout(s),a.unref(),e({port:parseInt(o[1],10),pid:a.pid}))})),a.on("error",(()=>{clearTimeout(s)
|
|
203
|
+
try{a.kill("SIGTERM")}catch{}e(null)}))})),u=await l
|
|
204
|
+
u&&(this.trackChildPid(u.pid),c.default.writeFileSync(e,JSON.stringify({port:u.port,pid:u.pid,startedAt:(new Date).toISOString()},null,2)),this.logger.info("Restarted OpenCode",{port:u.port,pid:u.pid}),this.setOpenCodePort(u.port),d=!0)}}catch(e){this.logger.warn("Could not restart OpenCode",{error:(0,h.getErrorMessage)(e)})}s.json({success:!0,message:`Synced ${l} agent(s) to local files${d?" - OpenCode reloading":""}`,count:l,restarted:d})}catch(e){this.logger.error("Failed to sync agents",{error:(0,h.getErrorMessage)(e)}),s.status(500).json({success:!1,error:(0,h.getErrorMessage)(e)})}}async handleGenerateJournal(e,s){try{const{requestId:r}=e.body
|
|
205
205
|
if(!r)return void s.status(400).json({success:!1,error:"requestId is required"})
|
|
206
206
|
if(!/^req\d+$/.test(r))return void s.status(400).json({success:!1,error:"Invalid requestId format"})
|
|
207
207
|
this.logger.info("Generating journal for request",{requestId:r})
|