@z_ptah/agent 0.0.10 → 0.0.11
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/index.js +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import"dotenv/config";import{execSync as F}from"child_process";function T(e){let o=process.env[e];if(!o)throw new Error(`Missing required environment variable: ${e}`);return o}function W(){if(process.env.CLAUDE_PATH)return process.env.CLAUDE_PATH;try{return F("which claude",{encoding:"utf-8"}).trim()}catch{return"/usr/bin/claude"}}var s={serverUrl:T("PTAH_SERVER_URL"),token:T("PTAH_AGENT_TOKEN"),healthPort:Number(process.env.AGENT_HEALTH_PORT||9090),heartbeatIntervalMs:Number(process.env.HEARTBEAT_INTERVAL_MS||3e4),reconnectIntervalMs:Number(process.env.RECONNECT_INTERVAL_MS||5e3),projectsDir:process.env.PROJECTS_DIR||"/projects",claudePath:W()};import b from"ws";import{spawn as q}from"child_process";import{mkdirSync as X}from"fs";function D(e){let{commandId:o,sessionId:t,projectDir:r,message:n,claudeSessionId:a}=e,d=["-p",n,"--output-format","stream-json","--allowedTools","Read,Edit,Write,Glob,Grep"];a&&d.push("--resume",a),X(r,{recursive:!0}),console.log(`Starting Claude for session ${t} in ${r}`);let u=q(s.claudePath,d,{cwd:r,env:{...process.env},stdio:["pipe","pipe","pipe"]}),f="";u.stdout.on("data",c=>{let p=c.toString();f+=p,i({type:"agent:claude-output",payload:{commandId:o,sessionId:t,output:p,isComplete:!1}})}),u.stderr.on("data",c=>{let p=c.toString(),h={type:"agent:claude-output",payload:{commandId:o,sessionId:t,output:`[stderr] ${p}`,isComplete:!1}};i(h)}),u.on("close",c=>{console.log(`Claude exited with code ${c} for session ${t}`),w(t);let p;try{let J=f.split(`
|
|
2
|
+
import"dotenv/config";import{execSync as F}from"child_process";function T(e){let o=process.env[e];if(!o)throw new Error(`Missing required environment variable: ${e}`);return o}function W(){if(process.env.CLAUDE_PATH)return process.env.CLAUDE_PATH;try{return F("which claude",{encoding:"utf-8"}).trim()}catch{return"/usr/bin/claude"}}var s={serverUrl:T("PTAH_SERVER_URL"),token:T("PTAH_AGENT_TOKEN"),healthPort:Number(process.env.AGENT_HEALTH_PORT||9090),heartbeatIntervalMs:Number(process.env.HEARTBEAT_INTERVAL_MS||3e4),reconnectIntervalMs:Number(process.env.RECONNECT_INTERVAL_MS||5e3),projectsDir:process.env.PROJECTS_DIR||"/projects",claudePath:W()};import b from"ws";import{spawn as q}from"child_process";import{mkdirSync as X}from"fs";function D(e){let{commandId:o,sessionId:t,projectDir:r,message:n,claudeSessionId:a}=e,d=["-p",n,"--output-format","stream-json","--verbose","--allowedTools","Read,Edit,Write,Glob,Grep"];a&&d.push("--resume",a),X(r,{recursive:!0}),console.log(`Starting Claude for session ${t} in ${r}`);let u=q(s.claudePath,d,{cwd:r,env:{...process.env},stdio:["pipe","pipe","pipe"]}),f="";u.stdout.on("data",c=>{let p=c.toString();f+=p,i({type:"agent:claude-output",payload:{commandId:o,sessionId:t,output:p,isComplete:!1}})}),u.stderr.on("data",c=>{let p=c.toString(),h={type:"agent:claude-output",payload:{commandId:o,sessionId:t,output:`[stderr] ${p}`,isComplete:!1}};i(h)}),u.on("close",c=>{console.log(`Claude exited with code ${c} for session ${t}`),w(t);let p;try{let J=f.split(`
|
|
3
3
|
`).filter(Boolean);for(let V of J){let E=JSON.parse(V);typeof E.session_id=="string"&&(p=E.session_id)}}catch{}let h={type:"agent:claude-output",payload:{commandId:o,sessionId:t,output:c===0?"":`Process exited with code ${c}`,isComplete:!0,claudeSessionId:p??a}};i(h)}),u.on("error",c=>{console.error(`Claude spawn error for session ${t}:`,c),w(t);let p={type:"agent:claude-output",payload:{commandId:o,sessionId:t,output:`Error spawning Claude: ${c.message}`,isComplete:!0}};i(p)})}var x=new Map;function R(e){if(x.has(e.sessionId)){console.warn(`Session ${e.sessionId} already has an active Claude process`);return}x.set(e.sessionId,{commandId:e.commandId}),D(e)}function w(e){x.delete(e)}import{spawn as z}from"child_process";async function k(e){return new Promise((o,t)=>{console.log(`Building Docker in ${e}...`);let r=z("docker",["compose","up","-d","--build"],{cwd:e,stdio:"inherit"});r.on("close",n=>{n===0?(console.log("Docker build successful"),o()):t(new Error(`Docker build failed with code ${n}`))}),r.on("error",n=>{t(new Error(`Docker build error: ${n.message}`))})})}import{writeFile as K}from"fs/promises";import{spawn as Q}from"child_process";function y(e,o){return new Promise((t,r)=>{let n=Q(e,o,{stdio:"inherit"});n.on("close",a=>{a===0?t():r(new Error(`${e} failed with code ${a}`))}),n.on("error",r)})}async function N(e,o,t,r){let n=/^[a-z0-9][a-z0-9-]*$/;if(!n.test(e)||!n.test(o))throw new Error("Invalid project or org code for Nginx config");if(t<1024||t>65535||r<1024||r>65535)throw new Error("Invalid port number");let a=`${e}.${o}.mybptah.com`,d=`
|
|
4
4
|
server {
|
|
5
5
|
listen 80;
|