adam-agent-server 1.1.1 → 1.2.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.
Files changed (45) hide show
  1. package/README.md +0 -1
  2. package/dist/{adam-tools-YBKSTHVJ.js → adam-tools-V22LRDCP.js} +1 -1
  3. package/dist/audit-manager-QDFDBK4E.js +1 -0
  4. package/dist/{bree-engine-Y24K4PXN.js → bree-engine-EKZFCS4Q.js} +1 -1
  5. package/dist/chunk-ITUBFUJQ.js +67 -0
  6. package/dist/chunk-IZWULGUS.js +83 -0
  7. package/dist/{chunk-Q4YE5BU7.js → chunk-JNRCXAW3.js} +1 -1
  8. package/dist/{chunk-WVGNP2LQ.js → chunk-KKLZIXBN.js} +1 -1
  9. package/dist/{chunk-MPRAVJUO.js → chunk-RPTHFQX7.js} +1 -1
  10. package/dist/{chunk-JTMFEUDA.js → chunk-SBX3HMDA.js} +1 -1
  11. package/dist/chunk-W3554FQ7.js +7 -0
  12. package/dist/chunk-Z5ET7WW2.js +1 -0
  13. package/dist/{chunk-6KLG4APZ.js → chunk-ZM6YED5F.js} +1 -1
  14. package/dist/cli.js +7 -7
  15. package/dist/{config-OH6Q2D2Y.js → config-7HYICF5P.js} +1 -1
  16. package/dist/{engine-JKSNQQDM.js → engine-5RJ7NJSM.js} +1 -1
  17. package/dist/{external-api-I6CENLIS.js → external-api-A4JXX4ZE.js} +1 -1
  18. package/dist/index.js +12 -9
  19. package/dist/{learner-UYDFNURD.js → learner-B6XVQKBF.js} +1 -1
  20. package/dist/{session-manager-VYKNKQ46.js → session-manager-Z6MIYRD3.js} +1 -1
  21. package/package.json +1 -1
  22. package/web/dist/assets/{ChannelDetail-e6rVX_y8.js → ChannelDetail-DoQs1auJ.js} +1 -1
  23. package/web/dist/assets/{Channels-DJvZPKer.js → Channels-Dc6QduC1.js} +1 -1
  24. package/web/dist/assets/{Chat-hTZdEwyE.js → Chat-NrKA_MiZ.js} +1 -1
  25. package/web/dist/assets/{Dashboard-B4rL_ePs.js → Dashboard-C67v0x7e.js} +1 -1
  26. package/web/dist/assets/{EnvVarEditor-C8kRWejV.js → EnvVarEditor-DeCQryTm.js} +1 -1
  27. package/web/dist/assets/{Evolution-BGwFCo7X.js → Evolution-CbFOTN2o.js} +1 -1
  28. package/web/dist/assets/{GoalDetail-BH2ku-0t.js → GoalDetail-DYUbYJpT.js} +1 -1
  29. package/web/dist/assets/{Goals-DynDtpMC.js → Goals-7eD9_7Qo.js} +1 -1
  30. package/web/dist/assets/{Logs-CyJFouE6.js → Logs-CDFbfvQT.js} +1 -1
  31. package/web/dist/assets/{Memories-ClcFD7OG.js → Memories-D0J8Es-o.js} +1 -1
  32. package/web/dist/assets/{Plugins-SNOQNNcL.js → Plugins-CXCUhsEZ.js} +1 -1
  33. package/web/dist/assets/{RoleDetail-vlTPiYwY.js → RoleDetail-C2lXyAjt.js} +2 -2
  34. package/web/dist/assets/{Roles-CFcuHIvA.js → Roles-Bia_f3ml.js} +1 -1
  35. package/web/dist/assets/{Settings-C9Kuz-6D.js → Settings-CzgdtkLo.js} +1 -1
  36. package/web/dist/assets/{Strategies-DZWlQCHp.js → Strategies-CRdpzdUe.js} +1 -1
  37. package/web/dist/assets/{Switch-DOi0EFHj.js → Switch-B05Q1L98.js} +1 -1
  38. package/web/dist/assets/{TaskDetail-DjmmnldI.js → TaskDetail-4yYEVV6Z.js} +1 -1
  39. package/web/dist/assets/{Work-CvESHC3Y.js → Work-CE6TB6LG.js} +1 -1
  40. package/web/dist/assets/{index-BFmC20R2.js → index-oA-kWqT5.js} +2 -2
  41. package/web/dist/index.html +1 -1
  42. package/dist/audit-manager-7M2CDMP5.js +0 -1
  43. package/dist/chunk-3RAFA6QK.js +0 -7
  44. package/dist/chunk-U5NRQNBB.js +0 -67
  45. package/dist/chunk-UW3OJG7U.js +0 -83
package/dist/cli.js CHANGED
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
- import{a as G,b as h,c as W,e as V}from"./chunk-VRP4LTHY.js";import{a as B,b as J,d as q}from"./chunk-PMHNW5IL.js";import"./chunk-6DXNXLYG.js";import{b as H}from"./chunk-7IFLU3CY.js";import{d as _}from"./chunk-6HD6NYIB.js";import{c as R,e as z,g as ue}from"./chunk-7LBDLAUQ.js";import{b as j,c as K,d as de}from"./chunk-KVSO3KGZ.js";import"./chunk-WBAPIPST.js";import"./chunk-INNDBLZE.js";import"./chunk-FCV2DPZQ.js";import{Command as Te}from"commander";import{fork as me}from"child_process";import{readFileSync as M,writeFileSync as ge,existsSync as v,unlinkSync as $,mkdirSync as pe,openSync as fe}from"fs";import{join as D}from"path";import{homedir as he}from"os";var P=D(he(),".adam"),S=D(P,"adam.pid"),k=D(P,"adam.port"),b=D(P,"server.log");function ve(){v(P)||pe(P,{recursive:!0})}function C(){if(!v(S))return null;let e=parseInt(M(S,"utf-8").trim(),10);return isNaN(e)?null:e}function ye(){if(!v(k))return null;let e=parseInt(M(k,"utf-8").trim(),10);return isNaN(e)?null:e}function A(e){try{return process.kill(e,0),!0}catch{return!1}}async function N(){ve();let e=C();if(e&&A(e))throw new Error(`Server already running (PID ${e})`);v(S)&&$(S),v(k)&&$(k);let o=fe(b,"a"),t=D(B,"dist/index.js"),n=me(t,[],{detached:!0,stdio:["ignore",o,o,"ipc"]}),l=await new Promise((i,c)=>{let p=setTimeout(()=>{n.kill(),c(new Error(`Server start timeout. Check logs: ${b}`))},1e4);n.on("message",a=>{if(a&&typeof a=="object"&&a.type==="ready"){clearTimeout(p);let s=a.port;s?i(s):c(new Error("Ready signal received but missing port"))}}),n.on("exit",a=>{clearTimeout(p);let s=v(b)?M(b,"utf-8").split(`
2
+ import{a as W,b as h,c as z,e as V}from"./chunk-VRP4LTHY.js";import{a as B,b as J,d as G}from"./chunk-PMHNW5IL.js";import{a as q}from"./chunk-Z5ET7WW2.js";import"./chunk-6DXNXLYG.js";import{b as _}from"./chunk-7IFLU3CY.js";import"./chunk-6HD6NYIB.js";import{c as M,e as K,g as de}from"./chunk-7LBDLAUQ.js";import{b as H,c as j,d as ce}from"./chunk-KVSO3KGZ.js";import"./chunk-WBAPIPST.js";import"./chunk-INNDBLZE.js";import"./chunk-FCV2DPZQ.js";import{Command as we}from"commander";import{fork as ue}from"child_process";import{readFileSync as L,writeFileSync as me,existsSync as v,unlinkSync as $,mkdirSync as pe,openSync as ge}from"fs";import{join as D}from"path";import{homedir as fe}from"os";var P=D(fe(),".adam"),S=D(P,"adam.pid"),k=D(P,"adam.port"),b=D(P,"server.log");function he(){v(P)||pe(P,{recursive:!0})}function C(){if(!v(S))return null;let e=parseInt(L(S,"utf-8").trim(),10);return isNaN(e)?null:e}function ve(){if(!v(k))return null;let e=parseInt(L(k,"utf-8").trim(),10);return isNaN(e)?null:e}function A(e){try{return process.kill(e,0),!0}catch{return!1}}async function N(){he();let e=C();if(e&&A(e))throw new Error(`Server already running (PID ${e})`);v(S)&&$(S),v(k)&&$(k);let o=ge(b,"a"),t=D(B,"dist/index.js"),n=ue(t,[],{detached:!0,stdio:["ignore",o,o,"ipc"]}),l=await new Promise((i,c)=>{let g=setTimeout(()=>{n.kill(),c(new Error(`Server start timeout. Check logs: ${b}`))},1e4);n.on("message",a=>{if(a&&typeof a=="object"&&a.type==="ready"){clearTimeout(g);let s=a.port;s?i(s):c(new Error("Ready signal received but missing port"))}}),n.on("exit",a=>{clearTimeout(g);let s=v(b)?L(b,"utf-8").split(`
3
3
  `).slice(-10).join(`
4
4
  `):"";c(new Error(`Server exited with code ${a}.
5
5
  ${s?`Last log lines:
6
- ${s}`:`Check logs: ${b}`}`))}),n.on("error",a=>{clearTimeout(p),c(a)})});return ge(S,String(n.pid)),n.disconnect(),n.unref(),{pid:n.pid,port:l}}async function U(){let e=C();if(!e)throw new Error("No PID file found \u2014 server not running?");if(!A(e))throw v(S)&&$(S),v(k)&&$(k),new Error("Server not running (stale PID file)");process.kill(e,"SIGTERM"),await new Promise(o=>{let t=0,n=setInterval(()=>{A(e)?(t++,t>=10&&(clearInterval(n),process.kill(e,"SIGKILL"),o())):(clearInterval(n),o())},500)}),v(S)&&$(S),v(k)&&$(k)}function I(){let e=C(),o=e?A(e):!1,t=ye();return{running:o,pid:e,port:t}}function Y(){return b}import{readFileSync as be,existsSync as $e,createReadStream as Ie}from"fs";import Pe from"react";import{render as De}from"ink";import d from"chalk";import*as Z from"readline";async function Q(e,o){try{let t={};o.model&&(t.model=o.model),o.timeout&&(t.timeout=o.timeout),o.budget&&(t.maxBudgetUsd=o.budget),o.workspace&&(t.workspacePath=o.workspace);let{taskId:n}=await h("/tasks",{method:"POST",body:{prompt:e,config:Object.keys(t).length>0?t:void 0}});o.json?console.log(JSON.stringify({taskId:n,status:"submitted"})):console.log(d.dim(`Task ${n} submitted`));let l=()=>{h(`/tasks/${n}/cancel`,{method:"POST"}).catch(()=>{}),o.json||console.log(d.yellow(`
6
+ ${s}`:`Check logs: ${b}`}`))}),n.on("error",a=>{clearTimeout(g),c(a)})});return me(S,String(n.pid)),n.disconnect(),n.unref(),{pid:n.pid,port:l}}async function U(){let e=C();if(!e)throw new Error("No PID file found \u2014 server not running?");if(!A(e))throw v(S)&&$(S),v(k)&&$(k),new Error("Server not running (stale PID file)");process.kill(e,"SIGTERM"),await new Promise(o=>{let t=0,n=setInterval(()=>{A(e)?(t++,t>=10&&(clearInterval(n),process.kill(e,"SIGKILL"),o())):(clearInterval(n),o())},500)}),v(S)&&$(S),v(k)&&$(k)}function I(){let e=C(),o=e?A(e):!1,t=ve();return{running:o,pid:e,port:t}}function Y(){return b}import{readFileSync as ke,existsSync as Te,createReadStream as be}from"fs";import $e from"react";import{render as Ie}from"ink";import d from"chalk";import*as Q from"readline";async function X(e,o){try{let t={};o.model&&(t.model=o.model),o.timeout&&(t.timeout=o.timeout),o.budget&&(t.maxBudgetUsd=o.budget),o.workspace&&(t.workspacePath=o.workspace);let{taskId:n}=await h("/tasks",{method:"POST",body:{prompt:e,config:Object.keys(t).length>0?t:void 0}});o.json?console.log(JSON.stringify({taskId:n,status:"submitted"})):console.log(d.dim(`Task ${n} submitted`));let l=()=>{h(`/tasks/${n}/cancel`,{method:"POST"}).catch(()=>{}),o.json||console.log(d.yellow(`
7
7
  Task cancelled.`)),process.exit(130)};process.on("SIGINT",l);let i=new V(n);await i.connect();let c=[];await new Promise(a=>{i.on("reasoning",s=>{let r=s;o.json?c.push({type:"reasoning",...r}):process.stdout.write(d.gray(r.content??""))}),i.on("tool_call",s=>{let r=s;o.json?c.push({type:"tool_call",...r}):console.log(d.blue(`
8
8
  [tool] ${r.toolName??"unknown"}`))}),i.on("tool_result",s=>{let r=s;if(o.json)c.push({type:"tool_result",...r});else{let m=r.content??"",f=m.split(`
9
9
  `);f.length>5?console.log(d.green(`[result] (${f.length} lines) \u25B8 truncated`)):console.log(d.green(`[result] ${m}`))}}),i.on("error",s=>{let r=s;o.json?c.push({type:"error",...r}):console.error(d.red(`
10
10
  [error] ${r.error??"unknown error"}`))}),i.on("approval_needed",s=>{let r=s;if(o.approval===!1){h(`/tasks/${n}/approve`,{method:"POST",body:{approvalId:r.approvalId,reason:"auto-approved via --no-approval"}}).catch(()=>{});return}if(o.json){c.push({type:"approval_needed",...r}),h(`/tasks/${n}/approve`,{method:"POST",body:{approvalId:r.approvalId}}).catch(()=>{});return}console.log(d.yellow(`
11
- \u26A0 Approval needed: ${r.toolName}`)),console.log(d.yellow(` Pattern: ${r.matchedPattern}`)),console.log(d.yellow(` Input: ${JSON.stringify(r.toolInput)}`));let m=Z.createInterface({input:process.stdin,output:process.stdout});m.question(d.yellow(" [a]pprove / [r]eject: "),f=>{m.close();let x=f.toLowerCase().startsWith("a")?"approve":"reject";h(`/tasks/${n}/${x}`,{method:"POST",body:{approvalId:r.approvalId}}).catch(()=>{})})}),i.on("complete",s=>{let r=s;o.json?console.log(JSON.stringify({taskId:n,status:"completed",events:c,result:r})):(console.log(d.dim(`
12
- \u2500\u2500\u2500 Task complete \u2500\u2500\u2500`)),r.costUsd!==void 0&&console.log(d.dim(`Cost: $${r.costUsd.toFixed(4)}`)),r.numTurns!==void 0&&console.log(d.dim(`Turns: ${r.numTurns}`))),i.close(),a()}),i.on("*",s=>{s.type})});let p=await h(`/tasks/${n}`);(p.task.status==="failed"||p.task.status==="cancelled")&&process.exit(1),process.exit(0)}catch(t){o.json?console.log(JSON.stringify({error:t.message})):console.error(d.red(t.message)),process.exit(1)}}import u from"chalk";var Se={pending:u.gray,queued:u.gray,running:u.yellow,paused:u.yellow,completed:u.green,failed:u.red,cancelled:u.gray};function X(e){return(Se[e]??u.white)(e)}function ee(e,o){return e.length<=o?e:e.slice(0,o-3)+"..."}function oe(e){if(e<1e3)return`${e}ms`;let o=Math.floor(e/1e3);if(o<60)return`${o}s`;let t=Math.floor(o/60),n=o%60;return`${t}m ${n}s`}async function te(e){try{let o=new URLSearchParams;e.status&&o.set("status",e.status),e.limit&&o.set("limit",e.limit);let t=o.toString(),{tasks:n}=await h(`/tasks${t?`?${t}`:""}`);if(n.length===0){console.log(u.dim("No tasks found"));return}console.log(u.bold(T("ID",10)+T("STATUS",12)+T("PROMPT",40)+T("DURATION",10)+"COST"));for(let l of n){let i=l.totalDurationMs?oe(l.totalDurationMs):"\u2014",c=l.costUsd!==void 0?`$${l.costUsd.toFixed(4)}`:"\u2014";console.log(T(l.id.slice(0,8),10)+T(X(l.status),22)+T(ee(l.prompt,38),40)+T(i,10)+c)}}catch(o){console.error(u.red(o.message)),process.exit(1)}}async function re(e){try{let{task:o}=await h(`/tasks/${e}`);console.log(u.bold("Task Details")),console.log(` ID: ${o.id}`),console.log(` Status: ${X(o.status)}`),console.log(` Prompt: ${o.prompt}`),console.log(` Created: ${new Date(o.createdAt).toLocaleString()}`),o.startedAt&&console.log(` Started: ${new Date(o.startedAt).toLocaleString()}`),o.completedAt&&console.log(` Finished: ${new Date(o.completedAt).toLocaleString()}`),o.totalDurationMs&&console.log(` Duration: ${oe(o.totalDurationMs)}`),o.costUsd!==void 0&&console.log(` Cost: $${o.costUsd.toFixed(4)}`),o.result&&console.log(` Result: ${ee(o.result,200)}`),o.error&&console.log(` Error: ${u.red(o.error)}`)}catch(o){console.error(u.red(o.message)),process.exit(1)}}async function ne(e){try{await h(`/tasks/${e}/cancel`,{method:"POST"}),console.log(`Task ${e} cancelled`)}catch(o){console.error(u.red(o.message)),process.exit(1)}}function T(e,o){return e.length>=o?e:e+" ".repeat(o-e.length)}de();ue();import O from"chalk";async function ie(e){try{let o=j();if(e.json){let t=R();console.log(JSON.stringify(t,null,2))}else{let t=R(),n=H(),l=z();console.log(O.bold(`Adam Configuration
11
+ \u26A0 Approval needed: ${r.toolName}`)),console.log(d.yellow(` Pattern: ${r.matchedPattern}`)),console.log(d.yellow(` Input: ${JSON.stringify(r.toolInput)}`));let m=Q.createInterface({input:process.stdin,output:process.stdout});m.question(d.yellow(" [a]pprove / [r]eject: "),f=>{m.close();let x=f.toLowerCase().startsWith("a")?"approve":"reject";h(`/tasks/${n}/${x}`,{method:"POST",body:{approvalId:r.approvalId}}).catch(()=>{})})}),i.on("complete",s=>{let r=s;o.json?console.log(JSON.stringify({taskId:n,status:"completed",events:c,result:r})):(console.log(d.dim(`
12
+ \u2500\u2500\u2500 Task complete \u2500\u2500\u2500`)),r.costUsd!==void 0&&console.log(d.dim(`Cost: $${r.costUsd.toFixed(4)}`)),r.numTurns!==void 0&&console.log(d.dim(`Turns: ${r.numTurns}`))),i.close(),a()}),i.on("*",s=>{s.type})});let g=await h(`/tasks/${n}`);(g.task.status==="failed"||g.task.status==="cancelled")&&process.exit(1),process.exit(0)}catch(t){o.json?console.log(JSON.stringify({error:t.message})):console.error(d.red(t.message)),process.exit(1)}}import u from"chalk";var ye={pending:u.gray,queued:u.gray,running:u.yellow,paused:u.yellow,completed:u.green,failed:u.red,cancelled:u.gray};function Z(e){return(ye[e]??u.white)(e)}function ee(e,o){return e.length<=o?e:e.slice(0,o-3)+"..."}function oe(e){if(e<1e3)return`${e}ms`;let o=Math.floor(e/1e3);if(o<60)return`${o}s`;let t=Math.floor(o/60),n=o%60;return`${t}m ${n}s`}async function te(e){try{let o=new URLSearchParams;e.status&&o.set("status",e.status),e.limit&&o.set("limit",e.limit);let t=o.toString(),{tasks:n}=await h(`/tasks${t?`?${t}`:""}`);if(n.length===0){console.log(u.dim("No tasks found"));return}console.log(u.bold(T("ID",10)+T("STATUS",12)+T("PROMPT",40)+T("DURATION",10)+"COST"));for(let l of n){let i=l.totalDurationMs?oe(l.totalDurationMs):"\u2014",c=l.costUsd!==void 0?`$${l.costUsd.toFixed(4)}`:"\u2014";console.log(T(l.id.slice(0,8),10)+T(Z(l.status),22)+T(ee(l.prompt,38),40)+T(i,10)+c)}}catch(o){console.error(u.red(o.message)),process.exit(1)}}async function re(e){try{let{task:o}=await h(`/tasks/${e}`);console.log(u.bold("Task Details")),console.log(` ID: ${o.id}`),console.log(` Status: ${Z(o.status)}`),console.log(` Prompt: ${o.prompt}`),console.log(` Created: ${new Date(o.createdAt).toLocaleString()}`),o.startedAt&&console.log(` Started: ${new Date(o.startedAt).toLocaleString()}`),o.completedAt&&console.log(` Finished: ${new Date(o.completedAt).toLocaleString()}`),o.totalDurationMs&&console.log(` Duration: ${oe(o.totalDurationMs)}`),o.costUsd!==void 0&&console.log(` Cost: $${o.costUsd.toFixed(4)}`),o.result&&console.log(` Result: ${ee(o.result,200)}`),o.error&&console.log(` Error: ${u.red(o.error)}`)}catch(o){console.error(u.red(o.message)),process.exit(1)}}async function ne(e){try{await h(`/tasks/${e}/cancel`,{method:"POST"}),console.log(`Task ${e} cancelled`)}catch(o){console.error(u.red(o.message)),process.exit(1)}}function T(e,o){return e.length>=o?e:e+" ".repeat(o-e.length)}ce();de();import O from"chalk";async function ie(e){try{let o=H();if(e.json){let t=M();console.log(JSON.stringify(t,null,2))}else{let t=M(),n=_(),l=K();console.log(O.bold(`Adam Configuration
13
13
  `)),l&&console.log(O.yellow(`No configuration saved. Use Settings UI or create ~/.adam/.env
14
- `));let i={Anthropic:[["anthropic.apiKey",t["anthropic.apiKey"]],["anthropic.baseUrl",t["anthropic.baseUrl"]],["anthropic.model",t["anthropic.model"]],["anthropic.defaultOpusModel",t["anthropic.defaultOpusModel"]],["anthropic.defaultSonnetModel",t["anthropic.defaultSonnetModel"]],["anthropic.defaultHaikuModel",t["anthropic.defaultHaikuModel"]],["anthropic.smallFastModel",t["anthropic.smallFastModel"]]],Defaults:[["defaults.model",t["defaults.model"]],["defaults.effort",t["defaults.effort"]],["defaults.maxTurns",t["defaults.maxTurns"]],["defaults.maxBudgetUsd",t["defaults.maxBudgetUsd"]],["defaults.timeout",t["defaults.timeout"]]],Server:[["server.port",t["server.port"]],["server.host",t["server.host"]],["server.apiKey",t["server.apiKey"]],["server.timezone",t["server.timezone"]]],Logging:[["logging.level",t["logging.level"]]],Evolution:[["roles.evolution.triggerEvery",t["roles.evolution.triggerEvery"]],["roles.evolution.reflectionThreshold",t["roles.evolution.reflectionThreshold"]]],Chat:[["chat.sessionTimeoutMinutes",t["chat.sessionTimeoutMinutes"]],["chat.maxSessionTurns",t["chat.maxSessionTurns"]],["chat.autoTitle",t["chat.autoTitle"]],["chat.archiveExtractMemory",t["chat.archiveExtractMemory"]]]},c={"anthropic.apiKey":"API Key","anthropic.baseUrl":"Base URL","anthropic.model":"Model","anthropic.defaultOpusModel":"Default Opus","anthropic.defaultSonnetModel":"Default Sonnet","anthropic.defaultHaikuModel":"Default Haiku","anthropic.smallFastModel":"Small Fast","defaults.model":"Default Model","defaults.effort":"Effort","defaults.maxTurns":"Max Turns","defaults.maxBudgetUsd":"Max Budget (USD)","defaults.timeout":"Timeout (sec)","server.port":"Port","server.host":"Host","server.apiKey":"API Key","server.timezone":"Timezone","logging.level":"Log Level","roles.evolution.triggerEvery":"Evolution Trigger Every","chat.sessionTimeoutMinutes":"Session Timeout (min)","chat.maxSessionTurns":"Max Session Turns","chat.autoTitle":"Auto Title","chat.archiveExtractMemory":"Archive Extract Memory","roles.evolution.reflectionThreshold":"Reflection Threshold"};for(let[p,a]of Object.entries(i)){let s=a.filter(([,r])=>r!=null&&r!=="");if(s.length!==0){console.log(O.cyan(`${p}:`));for(let[r,m]of s){let f=c[r]??r,L=r.includes("apiKey")||r.includes("token")||r.includes("secret")?se(String(m)):String(m);console.log(` ${f}: ${L}`)}console.log("")}}if(n){console.log(O.bold(`.env File Values:
15
- `));let p=["ANTHROPIC_API_KEY","ANTHROPIC_BASE_URL","ANTHROPIC_MODEL","ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL","ANTHROPIC_SMALL_FAST_MODEL"];for(let a of p)if(a in n){let s=a.includes("API_KEY");console.log(` ${a}: ${s?se(n[a]):n[a]}`)}console.log("")}}}finally{K()}}function se(e){return!e||e.length<8?"****":e.slice(0,4)+"****"}import w from"chalk";async function ae(e){try{let o=e.limit??"20",t=await h(`/evolution-audit?limit=${o}`);if(t.length===0){console.log(w.dim("No evolution records yet"));return}console.log(w.bold(`Evolution Audit Log (${t.length} records)
14
+ `));let i={Anthropic:[["anthropic.apiKey",t["anthropic.apiKey"]],["anthropic.baseUrl",t["anthropic.baseUrl"]],["anthropic.model",t["anthropic.model"]],["anthropic.defaultOpusModel",t["anthropic.defaultOpusModel"]],["anthropic.defaultSonnetModel",t["anthropic.defaultSonnetModel"]],["anthropic.defaultHaikuModel",t["anthropic.defaultHaikuModel"]],["anthropic.smallFastModel",t["anthropic.smallFastModel"]]],Defaults:[["defaults.model",t["defaults.model"]],["defaults.effort",t["defaults.effort"]],["defaults.maxTurns",t["defaults.maxTurns"]],["defaults.maxBudgetUsd",t["defaults.maxBudgetUsd"]],["defaults.timeout",t["defaults.timeout"]]],Server:[["server.port",t["server.port"]],["server.host",t["server.host"]],["server.apiKey",t["server.apiKey"]],["server.timezone",t["server.timezone"]]],Logging:[["logging.level",t["logging.level"]]],Evolution:[["roles.evolution.triggerEvery",t["roles.evolution.triggerEvery"]],["roles.evolution.reflectionThreshold",t["roles.evolution.reflectionThreshold"]]],Chat:[["chat.sessionTimeoutMinutes",t["chat.sessionTimeoutMinutes"]],["chat.maxSessionTurns",t["chat.maxSessionTurns"]],["chat.autoTitle",t["chat.autoTitle"]],["chat.archiveExtractMemory",t["chat.archiveExtractMemory"]]]},c={"anthropic.apiKey":"API Key","anthropic.baseUrl":"Base URL","anthropic.model":"Model","anthropic.defaultOpusModel":"Default Opus","anthropic.defaultSonnetModel":"Default Sonnet","anthropic.defaultHaikuModel":"Default Haiku","anthropic.smallFastModel":"Small Fast","defaults.model":"Default Model","defaults.effort":"Effort","defaults.maxTurns":"Max Turns","defaults.maxBudgetUsd":"Max Budget (USD)","defaults.timeout":"Timeout (sec)","server.port":"Port","server.host":"Host","server.apiKey":"API Key","server.timezone":"Timezone","logging.level":"Log Level","roles.evolution.triggerEvery":"Evolution Trigger Every","chat.sessionTimeoutMinutes":"Session Timeout (min)","chat.maxSessionTurns":"Max Session Turns","chat.autoTitle":"Auto Title","chat.archiveExtractMemory":"Archive Extract Memory","roles.evolution.reflectionThreshold":"Reflection Threshold"};for(let[g,a]of Object.entries(i)){let s=a.filter(([,r])=>r!=null&&r!=="");if(s.length!==0){console.log(O.cyan(`${g}:`));for(let[r,m]of s){let f=c[r]??r,R=r.includes("apiKey")||r.includes("token")||r.includes("secret")?se(String(m)):String(m);console.log(` ${f}: ${R}`)}console.log("")}}if(n){console.log(O.bold(`.env File Values:
15
+ `));let g=["ANTHROPIC_API_KEY","ANTHROPIC_BASE_URL","ANTHROPIC_MODEL","ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL","ANTHROPIC_SMALL_FAST_MODEL"];for(let a of g)if(a in n){let s=a.includes("API_KEY");console.log(` ${a}: ${s?se(n[a]):n[a]}`)}console.log("")}}}finally{j()}}function se(e){return!e||e.length<8?"****":e.slice(0,4)+"****"}import w from"chalk";async function ae(e){try{let o=e.limit??"20",t=await h(`/evolution-audit?limit=${o}`);if(t.length===0){console.log(w.dim("No evolution records yet"));return}console.log(w.bold(`Evolution Audit Log (${t.length} records)
16
16
  `));for(let n of t){let l=new Date(n.timestamp).toLocaleString();console.log(w.bold(`[${l}]`)+(n.triggerTaskId?w.dim(` task: ${n.triggerTaskId.slice(0,8)}`):"")),console.log(w.dim(" Diff:"));for(let i of n.diff.split(`
17
- `))i.startsWith("+")?console.log(w.green(` ${i}`)):i.startsWith("-")?console.log(w.red(` ${i}`)):console.log(w.dim(` ${i}`));console.log()}}catch(o){console.error(w.red(o.message)),process.exit(1)}}import g from"chalk";import{WebSocket as ke}from"ws";function we(){try{let e=_().server?.timezone;return e==="system"||!e?void 0:e}catch{return}}function le(e){let o=we();return new Date(e).toLocaleTimeString(void 0,o?{timeZone:o}:void 0)}async function ce(e){let o=I(),t=e.port?Number(e.port):o.port??7100,n=G(),l=new URL(`ws://localhost:${t}/events`);n&&l.searchParams.set("api_key",n);let i=l.toString(),c=e.component,p=e.level;function a(){let r=new ke(i);r.on("open",()=>{console.log(g.dim(`Connected to ${i}`)),e.follow&&console.log(g.dim("Following logs... (Ctrl+C to exit)"))}),r.on("message",m=>{try{let f=JSON.parse(m.toString());if(f.type==="log_event"&&f.msg){if(c&&f.component!==c||p&&f.level!==p)return;s(f)}}catch{}}),r.on("error",m=>{console.error(g.red(`WebSocket error: ${m.message}`))}),r.on("close",()=>{e.follow&&(console.log(g.yellow("Connection closed, reconnecting...")),setTimeout(a,1e3))})}function s(r){let m=le(r.timestamp),x={debug:g.gray,info:g.blue,warn:g.yellow,error:g.red,fatal:g.bgRed.white}[r.level]||g.white,L=g.cyan(`[${r.component}]`);console.log(`${g.dim(m)} ${x(r.level.toUpperCase().padEnd(5))} ${L} ${r.msg}`),r.metadata&&typeof r.metadata=="object"&&Object.keys(r.metadata).length>0&&console.log(g.dim(" ")+g.dim(JSON.stringify(r.metadata)))}a(),await new Promise(r=>{process.on("SIGINT",()=>r()),process.on("SIGTERM",()=>r()),e.follow||setTimeout(r,3e3)})}var y=new Te;y.name("adam").description("Adam Agent Server CLI").version(J());var E=y.command("server").description("Server management");E.command("start").description("Start the server daemon").action(async()=>{try{let{pid:e,port:o}=await N();console.log(`Server started (PID ${e}, port ${o})`)}catch(e){console.error("Failed to start server:",e.message),process.exit(1)}});E.command("stop").description("Stop the server daemon").action(async()=>{try{await U(),console.log("Server stopped")}catch(e){console.error("Failed to stop server:",e.message),process.exit(1)}});E.command("restart").description("Restart the server daemon").action(async()=>{try{I().running&&(await U(),console.log("Server stopped"));let{pid:o,port:t}=await N();console.log(`Server restarted (PID ${o}, port ${t})`)}catch(e){console.error("Failed to restart server:",e.message),process.exit(1)}});E.command("status").description("Show server status").action(()=>{let e=I();e.running?console.log(`Server is running (PID ${e.pid}, port ${e.port})`):e.pid?console.log("Server not running (stale PID file)"):console.log("Server not running")});E.command("logs").description("Show server logs").option("-f, --follow","Follow log output").action(async e=>{let o=Y();if(!$e(o)){console.log("No log file found");return}if(e.follow){let t=Ie(o,{encoding:"utf-8"});for await(let n of t)process.stdout.write(n)}else console.log(be(o,"utf-8"))});y.command("run <prompt>").description("Submit a task and stream output").option("--model <model>","Model to use").option("--timeout <seconds>","Task timeout",parseInt).option("--budget <usd>","Max budget in USD",parseFloat).option("--template <name>","Task template to use").option("--workspace <path>","Workspace directory").option("--no-approval","Auto-approve all approval requests").option("--json","Output as JSON").option("--server <url>","Server URL").action(Q);var F=y.command("tasks").description("Task management");F.command("list").description("List recent tasks").option("-s, --status <status>","Filter by status").option("-l, --limit <number>","Limit results","20").action(te);F.command("show <id>").description("Show task details").action(re);F.command("cancel <id>").description("Cancel a running task").action(ne);y.command("config").description("Display current configuration").option("--json","Output as JSON").action(ie);y.command("evolution").description("Show self-evolution audit log").option("-l, --limit <number>","Limit results","20").action(ae);y.command("logs").description("Stream server logs in real-time via WebSocket").option("-f, --follow","Follow logs continuously").option("-c, --component <component>","Filter by component (manager, worker, scheduler, api, ws)").option("-l, --level <level>","Filter by level (debug, info, warn, error)").option("-p, --port <port>","Server port").action(ce);y.command("register-ai-digest").description("Register the AI Hourly Digest task template (cron: every hour)").action(()=>{try{q(),console.log("AI Digest template registered successfully")}catch(e){console.error("Failed to register AI Digest template:",e.message),process.exit(1)}});y.action(async()=>{try{await W()}catch{I().running?console.error("Server is running but not responding. Check: adam server logs"):console.error("Server not running. Run: adam server start"),process.exit(1)}let e=(await import("./App-RIYRYLKD.js")).default,{waitUntilExit:o}=De(Pe.createElement(e));await o()});y.parse();
17
+ `))i.startsWith("+")?console.log(w.green(` ${i}`)):i.startsWith("-")?console.log(w.red(` ${i}`)):console.log(w.dim(` ${i}`));console.log()}}catch(o){console.error(w.red(o.message)),process.exit(1)}}import p from"chalk";import{WebSocket as Se}from"ws";async function le(e){let o=I(),t=e.port?Number(e.port):o.port??7100,n=W(),l=new URL(`ws://localhost:${t}/events`);n&&l.searchParams.set("api_key",n);let i=l.toString(),c=e.component,g=e.level;function a(){let r=new Se(i);r.on("open",()=>{console.log(p.dim(`Connected to ${i}`)),e.follow&&console.log(p.dim("Following logs... (Ctrl+C to exit)"))}),r.on("message",m=>{try{let f=JSON.parse(m.toString());if(f.type==="log_event"&&f.msg){if(c&&f.component!==c||g&&f.level!==g)return;s(f)}}catch{}}),r.on("error",m=>{console.error(p.red(`WebSocket error: ${m.message}`))}),r.on("close",()=>{e.follow&&(console.log(p.yellow("Connection closed, reconnecting...")),setTimeout(a,1e3))})}function s(r){let m=q(r.timestamp),x={debug:p.gray,info:p.blue,warn:p.yellow,error:p.red,fatal:p.bgRed.white}[r.level]||p.white,R=p.cyan(`[${r.component}]`);console.log(`${p.dim(m)} ${x(r.level.toUpperCase().padEnd(5))} ${R} ${r.msg}`),r.metadata&&typeof r.metadata=="object"&&Object.keys(r.metadata).length>0&&console.log(p.dim(" ")+p.dim(JSON.stringify(r.metadata)))}a(),await new Promise(r=>{process.on("SIGINT",()=>r()),process.on("SIGTERM",()=>r()),e.follow||setTimeout(r,3e3)})}var y=new we;y.name("adam").description("Adam Agent Server CLI").version(J());var E=y.command("server").description("Server management");E.command("start").description("Start the server daemon").action(async()=>{try{let{pid:e,port:o}=await N();console.log(`Server started (PID ${e}, port ${o})`)}catch(e){console.error("Failed to start server:",e.message),process.exit(1)}});E.command("stop").description("Stop the server daemon").action(async()=>{try{await U(),console.log("Server stopped")}catch(e){console.error("Failed to stop server:",e.message),process.exit(1)}});E.command("restart").description("Restart the server daemon").action(async()=>{try{I().running&&(await U(),console.log("Server stopped"));let{pid:o,port:t}=await N();console.log(`Server restarted (PID ${o}, port ${t})`)}catch(e){console.error("Failed to restart server:",e.message),process.exit(1)}});E.command("status").description("Show server status").action(()=>{let e=I();e.running?console.log(`Server is running (PID ${e.pid}, port ${e.port})`):e.pid?console.log("Server not running (stale PID file)"):console.log("Server not running")});E.command("logs").description("Show server logs").option("-f, --follow","Follow log output").action(async e=>{let o=Y();if(!Te(o)){console.log("No log file found");return}if(e.follow){let t=be(o,{encoding:"utf-8"});for await(let n of t)process.stdout.write(n)}else console.log(ke(o,"utf-8"))});y.command("run <prompt>").description("Submit a task and stream output").option("--model <model>","Model to use").option("--timeout <seconds>","Task timeout",parseInt).option("--budget <usd>","Max budget in USD",parseFloat).option("--template <name>","Task template to use").option("--workspace <path>","Workspace directory").option("--no-approval","Auto-approve all approval requests").option("--json","Output as JSON").option("--server <url>","Server URL").action(X);var F=y.command("tasks").description("Task management");F.command("list").description("List recent tasks").option("-s, --status <status>","Filter by status").option("-l, --limit <number>","Limit results","20").action(te);F.command("show <id>").description("Show task details").action(re);F.command("cancel <id>").description("Cancel a running task").action(ne);y.command("config").description("Display current configuration").option("--json","Output as JSON").action(ie);y.command("evolution").description("Show self-evolution audit log").option("-l, --limit <number>","Limit results","20").action(ae);y.command("logs").description("Stream server logs in real-time via WebSocket").option("-f, --follow","Follow logs continuously").option("-c, --component <component>","Filter by component (manager, worker, scheduler, api, ws)").option("-l, --level <level>","Filter by level (debug, info, warn, error)").option("-p, --port <port>","Server port").action(le);y.command("register-ai-digest").description("Register the AI Hourly Digest task template (cron: every hour)").action(()=>{try{G(),console.log("AI Digest template registered successfully")}catch(e){console.error("Failed to register AI Digest template:",e.message),process.exit(1)}});y.action(async()=>{try{await z()}catch{I().running?console.error("Server is running but not responding. Check: adam server logs"):console.error("Server not running. Run: adam server start"),process.exit(1)}let e=(await import("./App-RIYRYLKD.js")).default,{waitUntilExit:o}=Ie($e.createElement(e));await o()});y.parse();
@@ -1 +1 @@
1
- import{a as b,b as c,d,e}from"./chunk-JTMFEUDA.js";import{a}from"./chunk-6KLG4APZ.js";import"./chunk-7IFLU3CY.js";import"./chunk-6HD6NYIB.js";import"./chunk-WBAPIPST.js";import"./chunk-INNDBLZE.js";import"./chunk-FCV2DPZQ.js";export{a as DEFAULT_CONFIG,e as getChatConfig,d as getDefaults,b as loadConfig,c as loadDefaultConfig};
1
+ import{a as b,b as c,d,e}from"./chunk-SBX3HMDA.js";import{a}from"./chunk-ZM6YED5F.js";import"./chunk-7IFLU3CY.js";import"./chunk-6HD6NYIB.js";import"./chunk-WBAPIPST.js";import"./chunk-INNDBLZE.js";import"./chunk-FCV2DPZQ.js";export{a as DEFAULT_CONFIG,e as getChatConfig,d as getDefaults,b as loadConfig,c as loadDefaultConfig};
@@ -1 +1 @@
1
- import{a,b,c,d}from"./chunk-WVGNP2LQ.js";import"./chunk-2HN2TSP6.js";import"./chunk-EGS6U3V5.js";import"./chunk-6YURWVQG.js";import"./chunk-3RAFA6QK.js";import"./chunk-AJVN3KPM.js";import"./chunk-AR2IZMM2.js";import"./chunk-SWPXG2CY.js";import"./chunk-OFOVSC72.js";import"./chunk-L7JP7DUO.js";import"./chunk-KVSO3KGZ.js";import"./chunk-WBAPIPST.js";import"./chunk-INNDBLZE.js";import"./chunk-FCV2DPZQ.js";export{a as DeliveryEngine,b as getDeliveryEngine,c as initDeliveryEngine,d as stopDeliveryEngine};
1
+ import{a,b,c,d}from"./chunk-KKLZIXBN.js";import"./chunk-2HN2TSP6.js";import"./chunk-EGS6U3V5.js";import"./chunk-6YURWVQG.js";import"./chunk-W3554FQ7.js";import"./chunk-AJVN3KPM.js";import"./chunk-AR2IZMM2.js";import"./chunk-SWPXG2CY.js";import"./chunk-OFOVSC72.js";import"./chunk-L7JP7DUO.js";import"./chunk-KVSO3KGZ.js";import"./chunk-WBAPIPST.js";import"./chunk-INNDBLZE.js";import"./chunk-FCV2DPZQ.js";export{a as DeliveryEngine,b as getDeliveryEngine,c as initDeliveryEngine,d as stopDeliveryEngine};
@@ -1 +1 @@
1
- import{a as i}from"./chunk-6KLG4APZ.js";import"./chunk-WBAPIPST.js";import{c as a,h as c}from"./chunk-INNDBLZE.js";import"./chunk-FCV2DPZQ.js";c();var u=a("agent");async function m(n){let e=f();if(e.length===0)return{scores:[],errors:[]};let s=[],r=[];for(let t of e)try{let o=await l(t);o!==null&&s.push({nodeId:n,score:o,source:t.name,fetchedAt:Date.now()})}catch(o){r.push(`External API "${t.name}" (${t.url}): ${o instanceof Error?o.message:String(o)}`),u.warn({endpoint:t.name,error:o},"External API fetch failed")}return{scores:s,errors:r}}async function l(n){let e=await fetch(n.url,{signal:AbortSignal.timeout(5e3),headers:{Accept:"application/json"}});if(!e.ok)throw new Error(`HTTP ${e.status} ${e.statusText}`);let s=await e.json(),r=p(s,n.scorePath);if(typeof r!="number"||isNaN(r))throw new Error(`Score at "${n.scorePath}" is not a number: ${JSON.stringify(r)}`);return Math.max(0,Math.min(1,r))}function p(n,e){let s=e.replace(/^\$\.?/,""),r=n;for(let t of s.split(".")){if(r==null||typeof r!="object")return;r=r[t]}return r}function f(){return i.externalApis??[]}export{m as collectExternalApiScores};
1
+ import{a as i}from"./chunk-ZM6YED5F.js";import"./chunk-WBAPIPST.js";import{c as a,h as c}from"./chunk-INNDBLZE.js";import"./chunk-FCV2DPZQ.js";c();var u=a("agent");async function m(n){let e=f();if(e.length===0)return{scores:[],errors:[]};let s=[],r=[];for(let t of e)try{let o=await l(t);o!==null&&s.push({nodeId:n,score:o,source:t.name,fetchedAt:Date.now()})}catch(o){r.push(`External API "${t.name}" (${t.url}): ${o instanceof Error?o.message:String(o)}`),u.warn({endpoint:t.name,error:o},"External API fetch failed")}return{scores:s,errors:r}}async function l(n){let e=await fetch(n.url,{signal:AbortSignal.timeout(5e3),headers:{Accept:"application/json"}});if(!e.ok)throw new Error(`HTTP ${e.status} ${e.statusText}`);let s=await e.json(),r=p(s,n.scorePath);if(typeof r!="number"||isNaN(r))throw new Error(`Score at "${n.scorePath}" is not a number: ${JSON.stringify(r)}`);return Math.max(0,Math.min(1,r))}function p(n,e){let s=e.replace(/^\$\.?/,""),r=n;for(let t of s.split(".")){if(r==null||typeof r!="object")return;r=r[t]}return r}function f(){return i.externalApis??[]}export{m as collectExternalApiScores};