mirror of
https://github.com/thedotmack/claude-mem
synced 2026-04-25 17:15:04 +02:00
3 lines
1.5 KiB
JavaScript
Executable File
3 lines
1.5 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
import x from"path";import{stdin as i}from"process";import{execSync as S}from"child_process";import l from"path";import{homedir as g}from"os";import{existsSync as _,readFileSync as R}from"fs";import{join as t,dirname as u,basename as y}from"path";import{homedir as c}from"os";import{fileURLToPath as d}from"url";function f(){return typeof __dirname<"u"?__dirname:u(d(import.meta.url))}var k=f(),r=process.env.CLAUDE_MEM_DATA_DIR||t(c(),".claude-mem"),s=process.env.CLAUDE_CONFIG_DIR||t(c(),".claude"),C=t(r,"archives"),I=t(r,"logs"),v=t(r,"trash"),O=t(r,"backups"),U=t(r,"settings.json"),j=t(r,"claude-mem.db"),M=t(r,"vector-db"),b=t(s,"settings.json"),H=t(s,"commands"),L=t(s,"CLAUDE.md");function a(){try{let e=l.join(g(),".claude-mem","settings.json");if(_(e)){let o=JSON.parse(R(e,"utf-8")),n=parseInt(o.env?.CLAUDE_MEM_WORKER_PORT,10);if(!isNaN(n))return n}}catch{}return parseInt(process.env.CLAUDE_MEM_WORKER_PORT||"37777",10)}async function p(e){let o=e?.cwd??process.cwd(),n=o?x.basename(o):"unknown-project",m=`http://127.0.0.1:${a()}/api/context/inject?project=${encodeURIComponent(n)}`;return S(`curl -s "${m}"`,{encoding:"utf-8",timeout:5e3})}var D=process.argv.includes("--colors");if(i.isTTY||D)p(void 0).then(e=>{console.log(e),process.exit(0)});else{let e="";i.on("data",o=>e+=o),i.on("end",async()=>{let o=e.trim()?JSON.parse(e):void 0,n=await p(o);console.log(JSON.stringify({hookSpecificOutput:{hookEventName:"SessionStart",additionalContext:n}})),process.exit(0)})}
|