MCPcopy Index your code
hub / github.com/ChinaSiro/claude-code-sourcemap / YPK

Function YPK

package/cli.js:3988–3988  ·  view source on GitHub ↗
(q)

Source from the content-addressed store, hash-verified

3986<${FT}>${H}</${FT}>
3987<${wj}>${_}</${wj}>
3988<${gw}>${CL(j)}</${gw}>
3989</${XA}>`;IO({value:M,mode:"task-notification",priority:"later",agentId:O})}async function QI8(q,K){let{command:_,description:z,shellCommand:Y,toolUseId:$,agentId:A,kind:O}=q,{setAppState:w}=K,{taskOutput:j}=Y,H=j.taskId,J=pq(async()=>{Qa6(H,w)}),M={...C0(H,"local_bash",z,$),type:"local_bash",status:"running",command:_,completionStatusSentInAttachment:!1,shellCommand:Y,unregisterCleanup:J,lastReportedTotalLines:0,isBackgrounded:!0,agentId:A,kind:O};H0(M,w),Y.background(H);let X=R67(H,z,O,$,A);return Y.result.then(async(P)=>{X(),await S67(Y);let W=!1;A3(H,w,(D)=>{if(D.status==="killed")return W=!0,D;return{...D,status:P.code===0?"completed":"failed",result:{code:P.code,interrupted:P.interrupted},shellCommand:null,unregisterCleanup:void 0,endTime:Date.now()}}),nm8(H,z,W?"killed":P.code===0?"completed":"failed",P.code,w,$,O,A),Zw(H)}),{taskId:H,cleanup:()=>{J()}}}function dI8(q,K,_){let{command:z,description:Y,shellCommand:$,agentId:A}=q,O=$.taskOutput.taskId,w=pq(async()=>{Qa6(O,K)}),j={...C0(O,"local_bash",Y,_),type:"local_bash",status:"running",command:z,completionStatusSentInAttachment:!1,shellCommand:$,unregisterCleanup:w,lastReportedTotalLines:0,isBackgrounded:!1,agentId:A};return H0(j,K),O}function t4Y(q,K,_){let Y=K().tasks[q];if(!sv(Y)||Y.isBackgrounded||!Y.shellCommand)return!1;let{shellCommand:$,description:A}=Y,{toolUseId:O,kind:w,agentId:j}=Y;if(!$.background(q))return!1;_((J)=>{let M=J.tasks[q];if(!sv(M)||M.isBackgrounded)return J;return{...J,tasks:{...J.tasks,[q]:{...M,isBackgrounded:!0}}}});let H=R67(q,A,w,O,j);return $.result.then(async(J)=>{H(),await S67($);let M=!1,X;if(A3(q,_,(P)=>{if(P.status==="killed")return M=!0,P;return X=P.unregisterCleanup,{...P,status:J.code===0?"completed":"failed",result:{code:J.code,interrupted:J.interrupted},shellCommand:null,unregisterCleanup:void 0,endTime:Date.now()}}),X?.(),M)nm8(q,A,"killed",J.code,_,O,w,j);else{let P=J.code===0?"completed":"failed";nm8(q,A,P,J.code,_,O,w,j)}Zw(q)}),!0}function h67(q){return Object.values(q.tasks).some((K)=>{if(sv(K)&&!K.isBackgrounded&&K.shellCommand)return!0;if(EJ(K)&&!K.isBackgrounded&&!Bm8(K))return!0;return!1})}function ZI8(q,K){let _=q(),z=Object.keys(_.tasks).filter(($)=>{let A=_.tasks[$];return sv(A)&&!A.isBackgrounded&&A.shellCommand});for(let $ of z)t4Y($,q,K);let Y=Object.keys(_.tasks).filter(($)=>{let A=_.tasks[$];return EJ(A)&&!A.isBackgrounded});for(let $ of Y)lXK($,q,K)}function cI8(q,K,_,z,Y){if(!K.background(q))return!1;let $;z((O)=>{let w=O.tasks[q];if(!sv(w)||w.isBackgrounded)return O;return $=w.agentId,{...O,tasks:{...O.tasks,[q]:{...w,isBackgrounded:!0}}}});let A=R67(q,_,void 0,Y,$);return K.result.then(async(O)=>{A(),await S67(K);let w=!1,j;A3(q,z,(J)=>{if(J.status==="killed")return w=!0,J;return j=J.unregisterCleanup,{...J,status:O.code===0?"completed":"failed",result:{code:O.code,interrupted:O.interrupted},shellCommand:null,unregisterCleanup:void 0,endTime:Date.now()}}),j?.();let H=w?"killed":O.code===0?"completed":"failed";nm8(q,_,H,O.code,z,Y,void 0,$),Zw(q)}),!0}function lI8(q,K){A3(q,K,(_)=>_.notified?_:{..._,notified:!0})}function nI8(q,K){let _;K((z)=>{let Y=z.tasks[q];if(!sv(Y)||Y.isBackgrounded)return z;_=Y.unregisterCleanup;let{[q]:$,...A}=z.tasks;return{...z,tasks:A}}),_?.()}async function S67(q){try{await q.taskOutput.flush(),q.cleanup()}catch(K){H6(K)}}var FR6="Background command ",i4Y=5000,r4Y=45000,o4Y=1024,a4Y,Mm8;var vK6=y(()=>{RY();Yw6();GN();c9();e7();E8();p2();Ij();J0();gP();gm8();$F1();a4Y=[/\(y\/n\)/i,/\[y\/n\]/i,/\(yes\/no\)/i,/\b(?:Do you|Would you|Shall I|Are you sure|Ready to)\b.*\? *$/i,/Press (any key|Enter)/i,/Continue\?/i,/Overwrite\?/i];Mm8={name:"LocalShellTask",type:"local_bash",async kill(q,K){Qa6(q,K)}}});function KKY(q){let K=zKY(q),_=qKY.get(K);return _!==void 0?_:e4Y}function _KY(q){return q.trim().split(/\s+/)[0]||""}function zKY(q){let K=F2(q),_=K[K.length-1]||q;return _KY(_)}function nXK(q,K,_,z){let $=KKY(q)(K,_,z);return{isError:$.isError,message:$.message}}var e4Y=(q,K,_)=>({isError:q!==0,message:q!==0?`Command failed with exit code ${q}`:void 0}),qKY;var iXK=y(()=>{SG();qKY=new Map([["grep",(q,K,_)=>({isError:q>=2,message:q===1?"No matches found":void 0})],["rg",(q,K,_)=>({isError:q>=2,message:q===1?"No matches found":void 0})],["find",(q,K,_)=>({isError:q>=2,message:q===1?"Some directories were inaccessible":void 0})],["diff",(q,K,_)=>({isError:q>=2,message:q===1?"Files differ":void 0})],["test",(q,K,_)=>({isError:q>=2,message:q===1?"Condition is false":void 0})],["[",(q,K,_)=>({isError:q>=2,message:q===1?"Condition is false":void 0})]])});var YKY,rXK,oXK;var aXK=y(()=>{x7();YKY=B6(()=>L.object({entries:L.record(L.string(),L.string()),entryChecksums:L.record(L.string(),L.string()).optional()})),rXK=B6(()=>L.object({organizationId:L.string(),repo:L.string(),version:L.number(),lastModified:L.string(),checksum:L.string(),content:YKY()})),oXK=B6(()=>L.object({error:L.object({details:L.object({error_code:L.literal("team_memory_too_many_entries"),max_entries:L.number().int().positive(),received_entries:L.number().int().positive()})})}))});import{createHash as $KY}from"crypto";import{mkdir as AKY,readdir as OKY,readFile as sXK,stat as wKY,writeFile as jKY}from"fs/promises";import{join as HKY,relative as JKY,sep as MKY}from"path";function tXK(){return{lastKnownChecksum:null,serverChecksums:new Map,serverMaxEntries:null}}function PKY(q){return"sha256:"+$KY("sha256").update(q,"utf8").digest("hex")}function eXK(q){return q instanceof Error&&"code"in q&&typeof q.code==="string"}function I67(){if(E7()!=="firstParty"||!WP())return!1;let q=Kq();return Boolean(q?.accessToken&&q.scopes?.includes(Mh)&&q.scopes.includes(e96))}function u67(q){return`${process.env.TEAM_MEMORY_SYNC_URL||u7().BASE_API_URL}/api/claude_code/team_memory?repo=${encodeURIComponent(q)}`}function m67(){let q=Kq();if(q?.accessToken)return{headers:{Authorization:`Bearer ${q.accessToken}`,"anthropic-beta":rM,"User-Agent":n$()}};return{error:"No OAuth token available for team memory sync"}}async function WKY(q,K,_){try{await k$();let z=m67();if(z.error)return{success:!1,error:z.error,skipRetry:!0,errorType:"auth"};let Y={...z.headers};if(_)Y["If-None-Match"]=`"${_.replace(/"/g,"")}"`;let $=u67(K),A=await $1.get($,{headers:Y,timeout:x67,validateStatus:(j)=>j===200||j===304||j===404});if(A.status===304)return N("team-memory-sync: not modified (304)",{level:"debug"}),{success:!0,notModified:!0,checksum:_??void 0};if(A.status===404)return N("team-memory-sync: no remote data (404)",{level:"debug"}),q.lastKnownChecksum=null,{success:!0,isEmpty:!0};let O=rXK().safeParse(A.data);if(!O.success)return N("team-memory-sync: invalid response format",{level:"warn"}),{success:!1,error:"Invalid team memory response format",skipRetry:!0,errorType:"parse"};let w=O.data.checksum||A.headers.etag?.replace(/^"|"$/g,"")||void 0;if(w)q.lastKnownChecksum=w;return N(`team-memory-sync: fetched successfully (checksum: ${w??"none"})`,{level:"debug"}),{success:!0,data:O.data,isEmpty:!1,checksum:w}}catch(z){let{kind:Y,status:$,message:A}=Sc(z),O=$1.isAxiosError(z)?JSON.stringify(z.response?.data??""):"";if(Y!=="other")N(`team-memory-sync: fetch error ${$}: ${O}`,{level:"warn"});switch(Y){case"auth":return{success:!1,error:`Not authorized for team memory sync: ${O}`,skipRetry:!0,errorType:"auth",httpStatus:$};case"timeout":return{success:!1,error:"Team memory sync request timeout",errorType:"timeout"};case"network":return{success:!1,error:"Cannot connect to server",errorType:"network"};default:return{success:!1,error:A,errorType:"unknown",httpStatus:$}}}}async function DKY(q,K){try{await k$();let _=m67();if(_.error)return{success:!1,error:_.error,errorType:"auth"};let z=u67(K)+"&view=hashes",Y=await $1.get(z,{headers:_.headers,timeout:x67,validateStatus:(O)=>O===200||O===404});if(Y.status===404)return q.lastKnownChecksum=null,{success:!0,entryChecksums:{}};let $=Y.data?.checksum||Y.headers.etag?.replace(/^"|"$/g,""),A=Y.data?.entryChecksums;if(!A||typeof A!=="object")return{success:!1,error:"Server did not return entryChecksums (?view=hashes unsupported)",errorType:"parse"};if($)q.lastKnownChecksum=$;return{success:!0,version:Y.data?.version,checksum:$,entryChecksums:A}}catch(_){let{kind:z,status:Y,message:$}=Sc(_);switch(z){case"auth":return{success:!1,error:"Not authorized",errorType:"auth",httpStatus:Y};case"timeout":return{success:!1,error:"Timeout",errorType:"timeout"};case"network":return{success:!1,error:"Network error",errorType:"network"};default:return{success:!1,error:$,errorType:"unknown",httpStatus:Y}}}}async function fKY(q,K,_){let z=null;for(let Y=1;Y<=C67+1;Y++){if(z=await WKY(q,K,_),z.success||z.skipRetry)return z;if(Y>C67)return z;let $=hC(Y);N(`team-memory-sync: retry ${Y}/${C67}`,{level:"debug"}),await R7($)}return z}function ZKY(q){let K=Object.keys(q).sort();if(K.length===0)return[];let _=Buffer.byteLength('{"entries":{}}',"utf8"),z=(O,w)=>Buffer.byteLength(g6(O),"utf8")+Buffer.byteLength(g6(w),"utf8")+2,Y=[],$={},A=_;for(let O of K){let w=z(O,q[O]);if(A+w>XKY&&Object.keys($).length>0)Y.push($),$={},A=_;$[O]=q[O],A+=w}return Y.push($),Y}async function GKY(q,K,_,z){try{await k$();let Y=m67();if(Y.error)return{success:!1,error:Y.error,errorType:"auth"};let $={...Y.headers,"Content-Type":"application/json"};if(z)$["If-Match"]=`"${z.replace(/"/g,"")}"`;let A=u67(K),O=await $1.put(A,{entries:_},{headers:$,timeout:x67,validateStatus:(j)=>j===200||j===412});if(O.status===412)return N("team-memory-sync: conflict (412 Precondition Failed)",{level:"info"}),{success:!1,conflict:!0,error:"ETag mismatch"};let w=O.data?.checksum;if(w)q.lastKnownChecksum=w;return N(`team-memory-sync: uploaded ${Object.keys(_).length} entries (checksum: ${w??"none"})`,{level:"debug"}),{success:!0,checksum:w,lastModified:O.data?.lastModified}}catch(Y){let $=$1.isAxiosError(Y)?JSON.stringify(Y.response?.data??""):"";N(`team-memory-sync: upload failed: ${Y instanceof Error?Y.message:""} ${$}`,{level:"warn"});let{kind:A,status:O,message:w}=Sc(Y),j=A==="http"||A==="other"?"unknown":A,H,J,M;if(O===413&&$1.isAxiosError(Y)){let X=oXK().safeParse(Y.response?.data);if(X.success)H=X.data.error.details.error_code,J=X.data.error.details.max_entries,M=X.data.error.details.received_entries}return{success:!1,error:w,errorType:j,httpStatus:O,...H!==void 0&&{serverErrorCode:H},...J!==void 0&&{serverMaxEntries:J},...M!==void 0&&{serverReceivedEntries:M}}}}async function TKY(q){let K=wu(),_={},z=[];async function Y(A){try{let O=await OKY(A,{withFileTypes:!0});await Promise.all(O.map(async(w)=>{let j=HKY(A,w.name);if(w.isDirectory())await Y(j);else if(w.isFile())try{let H=await wKY(j);if(H.size>b67){N(`team-memory-sync: skipping oversized file ${w.name} (${H.size} > ${b67} bytes)`,{level:"info"});return}let J=await sXK(j,"utf8"),M=JKY(K,j).replaceAll("\\","/"),X=$a1(J);if(X.length>0){let P=X[0];z.push({path:M,ruleId:P.ruleId,label:P.label}),N(`team-memory-sync: skipping "${M}" — detected ${P.label}`,{level:"warn"});return}_[M]=J}catch{}}))}catch(O){if(eXK(O)){if(O.code!=="ENOENT"&&O.code!=="EACCES"&&O.code!=="EPERM")throw O}else throw O}}await Y(K);let $=Object.keys(_).sort();if(q!==null&&$.length>q){let A=$.slice(q);N(`team-memory-sync: ${$.length} local entries exceeds server cap of ${q}; ${A.length} file(s) will NOT sync: ${A.join(", ")}. Consider consolidating or removing some team memory files.`,{level:"warn"}),d("tengu_team_mem_entries_capped",{total_entries:$.length,dropped_count:A.length,max_entries:q});let O={};for(let w of $.slice(0,q))O[w]=_[w];return{entries:O,skippedSecrets:z}}return{entries:_,skippedSecrets:z}}async function vKY(q){let K=await Promise.all(Object.entries(q).map(async([_,z])=>{let Y;try{Y=await aV1(_)}catch(A){if(A instanceof lW)return N(`team-memory-sync: ${A.message}`,{level:"warn"}),!1;throw A}if(Buffer.byteLength(z,"utf8")>b67)return N(`team-memory-sync: skipping oversized remote entry "${_}"`,{level:"info"}),!1;try{if(await sXK(Y,"utf8")===z)return!1}catch(A){if(eXK(A)&&A.code!=="ENOENT"&&A.code!=="ENOTDIR")N(`team-memory-sync: unexpected read error for "${_}": ${A.code}`,{level:"debug"})}try{let A=Y.substring(0,Y.lastIndexOf(MKY));return await AKY(A,{recursive:!0}),await jKY(Y,z,"utf8"),!0}catch(A){return N(`team-memory-sync: failed to write "${_}": ${A}`,{level:"warn"}),!1}}));return $7(K,Boolean)}function qPK(){return I67()}async function KPK(q,K){let _=K?.skipEtagCache??!1,z=Date.now();if(!I67())return UR6(z,{success:!1,errorType:"no_oauth"}),{success:!1,filesWritten:0,entryCount:0,error:"OAuth not available"};let Y=await Fe();if(!Y)return UR6(z,{success:!1,errorType:"no_repo"}),{success:!1,filesWritten:0,entryCount:0,error:"No git remote found"};let $=_?null:q.lastKnownChecksum,A=await fKY(q,Y,$);if(!A.success)return UR6(z,{success:!1,errorType:A.errorType,status:A.httpStatus}),{success:!1,filesWritten:0,entryCount:0,error:A.error};if(A.notModified)return UR6(z,{success:!0,notModified:!0}),{success:!0,filesWritten:0,entryCount:0,notModified:!0};if(A.isEmpty||!A.data)return q.serverChecksums.clear(),UR6(z,{success:!0}),{success:!0,filesWritten:0,entryCount:0};let O=A.data.content.entries,w=A.data.content.entryChecksums;if(q.serverChecksums.clear(),w)for(let[H,J]of Object.entries(w))q.serverChecksums.set(H,J);else N("team-memory-sync: server response missing entryChecksums (pre-#283027 deploy) — next push will be full, not delta",{level:"debug"});let j=await vKY(O);if(j>0){let{clearMemoryFileCaches:H}=await Promise.resolve().then(() => (wM(),EH4));H()}return N(`team-memory-sync: pulled ${j} files`,{level:"info"}),UR6(z,{success:!0,filesWritten:j}),{success:!0,filesWritten:j,entryCount:Object.keys(O).length}}async function p67(q){let K=Date.now(),_=0;if(!I67())return dK6(K,{success:!1,errorType:"no_oauth"}),{success:!1,filesUploaded:0,error:"OAuth not available",errorType:"no_oauth"};let z=await Fe();if(!z)return dK6(K,{success:!1,errorType:"no_repo"}),{success:!1,filesUploaded:0,error:"No git remote found",errorType:"no_repo"};let Y=await TKY(q.serverMaxEntries),$=Y.entries,A=Y.skippedSecrets;if(A.length>0){let j=A.map((H)=>`"${H.path}" (${H.label})`).join(", ");N(`team-memory-sync: ${A.length} file(s) skipped due to detected secrets: ${j}. Remove the secret(s) to enable sync for these files.`,{level:"warn"}),d("tengu_team_mem_secret_skipped",{file_count:A.length,rule_ids:A.map((H)=>H.ruleId).join(",")})}let O=new Map;for(let[j,H]of Object.entries($))O.set(j,PKY(H));let w=!1;for(let j=0;j<=im8;j++){let H={};for(let[D,f]of O)if(q.serverChecksums.get(D)!==f)H[D]=$[D];if(Object.keys(H).length===0)return dK6(K,{success:!0,conflict:w,conflictRetries:_}),{success:!0,filesUploaded:0,...A.length>0&&{skippedSecrets:A}};let M=ZKY(H),X=0,P;for(let D of M){if(P=await GKY(q,z,D,q.lastKnownChecksum),!P.success)break;for(let f of Object.keys(D))q.serverChecksums.set(f,O.get(f));X+=Object.keys(D).length}if(P=P,P.success)return N(M.length>1?`team-memory-sync: pushed ${X} of ${O.size} files in ${M.length} batches`:`team-memory-sync: pushed ${X} of ${O.size} files (delta)`,{level:"info"}),dK6(K,{success:!0,filesUploaded:X,conflict:w,conflictRetries:_,putBatches:M.length>1?M.length:void 0}),{success:!0,filesUploaded:X,checksum:P.checksum,...A.length>0&&{skippedSecrets:A}};if(!P.conflict){if(P.serverMaxEntries!==void 0)q.serverMaxEntries=P.serverMaxEntries,N(`team-memory-sync: learned server max_entries=${P.serverMaxEntries} from 413; next push will truncate to this`,{level:"warn"});return dK6(K,{success:!1,filesUploaded:X,conflictRetries:_,putBatches:M.length>1?M.length:void 0,errorType:P.errorType,status:P.httpStatus,errorCode:P.serverErrorCode,serverMaxEntries:P.serverMaxEntries,serverReceivedEntries:P.serverReceivedEntries}),{success:!1,filesUploaded:X,error:P.error,errorType:P.errorType,httpStatus:P.httpStatus}}if(w=!0,j>=im8)return N(`team-memory-sync: giving up after ${im8} conflict retries`,{level:"warn"}),dK6(K,{success:!1,conflict:!0,conflictRetries:_,errorType:"conflict"}),{success:!1,filesUploaded:0,conflict:!0,error:"Conflict resolution failed after retries"};_++,N(`team-memory-sync: conflict (412), probing server hashes (attempt ${j+1}/${im8})`,{level:"info"});let W=await DKY(q,z);if(!W.success||!W.entryChecksums)return dK6(K,{success:!1,conflict:!0,conflictRetries:_,errorType:"conflict"}),{success:!1,filesUploaded:0,conflict:!0,error:`Conflict resolution hashes probe failed: ${W.error}`};q.serverChecksums.clear();for(let[D,f]of Object.entries(W.entryChecksums))q.serverChecksums.set(D,f)}return dK6(K,{success:!1,conflictRetries:_}),{success:!1,filesUploaded:0,error:"Unexpected end of conflict resolution loop"}}function UR6(q,K){d("tengu_team_mem_sync_pull",{success:K.success,files_written:K.filesWritten??0,not_modified:K.notModified??!1,duration_ms:Date.now()-q,...K.errorType&&{errorType:K.errorType},...K.status&&{status:K.status}})}function dK6(q,K){d("tengu_team_mem_sync_push",{success:K.success,files_uploaded:K.filesUploaded??0,conflict:K.conflict??!1,conflict_retries:K.conflictRetries??0,duration_ms:Date.now()-q,...K.errorType&&{errorType:K.errorType},...K.status&&{status:K.status},...K.putBatches&&{put_batches:K.putBatches},...K.errorCode&&{error_code:K.errorCode},...K.serverMaxEntries!==void 0&&{server_max_entries:K.serverMaxEntries},...K.serverReceivedEntries!==void 0&&{server_received_entries:K.serverReceivedEntries}})}var x67=30000,b67=250000,XKY=200000,C67=3,im8=2;var _PK=y(()=>{CK();H3();YL();G7();_8();y8();E5();Az();l8();k8();Wr();Aa1();aXK()});var g67={};T8(g67,{stopTeamMemoryWatcher:()=>$PK,startTeamMemoryWatcher:()=>RKY,notifyTeamMemoryWrite:()=>hKY,isPermanentFailure:()=>zPK,_startFileWatcherForTesting:()=>CKY,_resetWatcherStateForTesting:()=>SKY});import{watch as kKY}from"fs";import{mkdir as VKY,stat as NKY}from"fs/promises";import{join as yKY}from"path";function zPK(q){if(q.errorType==="no_oauth"||q.errorType==="no_repo")return!0;if(q.httpStatus!==void 0&&q.httpStatus>=400&&q.httpStatus<500&&q.httpStatus!==409&&q.httpStatus!==429)return!0;return!1}async function LKY(){if(!cK6)return;rm8=!0;try{let q=await p67(cK6);if(q.success)om8=!1;if(q.success&&q.filesUploaded>0)N(`team-memory-watcher: pushed ${q.filesUploaded} files`,{level:"info"});else if(!q.success){if(N(`team-memory-watcher: push failed: ${q.error}`,{level:"warn"}),zPK(q)&&Op===null)Op=q.httpStatus!==void 0?`http_${q.httpStatus}`:q.errorType??"unknown",N(`team-memory-watcher: suppressing retry until next unlink or session restart (${Op})`,{level:"warn"}),d("tengu_team_mem_push_suppressed",{reason:Op,...q.httpStatus&&{status:q.httpStatus}})}}catch(q){N(`team-memory-watcher: push error: ${d6(q)}`,{level:"warn"})}finally{rm8=!1,a88=null}}function o88(){if(Op!==null)return;if(om8=!0,wH6)clearTimeout(wH6);wH6=setTimeout(()=>{if(rm8){o88();return}a88=LKY()},EKY)}async function YPK(q){if(B67)return;B67=!0;try{await VKY(q,{recursive:!0}),QR6=kKY(q,{persistent:!0,recursive:!0},(K,_)=>{if(_===null){o88();return}if(Op!==null){NKY(yKY(q,_)).catch((z)=>{if(z.code!=="ENOENT")return;if(Op!==null)N(`team-memory-watcher: unlink cleared suppression (was: ${Op})`,{level:"info"}),Op=null;o88()});return}o88()}),QR6.on("error",(K)=>{N(`team-memory-watcher: fs.watch error: ${d6(K)}`,{level:"warn"})}),N(`team-memory-watcher: watching ${q}`,{level:"debug"})}catch(K){N(`team-memory-watcher: failed to watch ${q}: ${d6(K)}`,{level:"warn"})}pq(async()=>$PK())}async function RKY(){if(!Nf8()||!qPK())return;if(!await Fe()){N("team-memory-watcher: no github.com remote, skipping sync",{level:"debug"});return}cK6=tXK();let K=!1,_=0,z=!1;try{let Y=await KPK(cK6);if(K=Y.success,z=Y.entryCount>0,Y.success&&Y.filesWritten>0)_=Y.filesWritten,N(`team-memory-watcher: initial pull got ${Y.filesWritten} files`,{level:"info"})}catch(Y){N(`team-memory-watcher: initial pull failed: ${d6(Y)}`,{level:"warn"})}await YPK(wu()),d("tengu_team_mem_sync_started",{initial_pull_success:K,initial_files_pulled:_,watcher_started:!0,server_has_content:z})}async function hKY(){if(!cK6)return;o88()}async function $PK(){if(wH6)clearTimeout(wH6),wH6=null;if(QR6)QR6.close(),QR6=null;if(a88)try{await a88}catch{}if(om8&&cK6&&Op===null)try{await p67(cK6)}catch{}}function SKY(q){QR6=null,wH6=null,rm8=!1,om8=!1,a88=null,B67=q?.skipWatcher??!1,Op=q?.pushSuppressedReason??null,cK6=q?.syncState??null}function CKY(q){return YPK(q)}var EKY=2000,QR6=null,wH6=null,rm8=!1,om8=!1,a88=null,B67=!1,Op=null,cK6=null;var F67=y(()=>{YL();c9();_8();y8();E5();k8();_PK()});var HPK={};T8(HPK,{registerSessionFileAccessHooks:()=>xKY,isMemoryFileAccess:()=>U67});function wPK(q,K){switch(q){case Cq:{let _=i_.inputSchema.safeParse(K);return _.success?_.data.file_path:null}case X4:{let _=Ou8().safeParse(K);return _.success?_.data.file_path:null}case tK:{let _=QX.inputSchema.safeParse(K);return _.success?_.data.file_path:null}default:return null}}function jPK(q,K){switch(q){case Cq:{let _=i_.inputSchema.safeParse(K);if(!_.success)return null;return l88(_.data.file_path)}case n3:{let _=$R.inputSchema.safeParse(K);if(!_.success)return null;if(_.data.path){let z=l88(_.data.path);if(z)return z}if(_.data.glob){let z=cm8(_.data.glob);if(z)return z}return null}case i9:{let _=kb.inputSchema.safeParse(K);if(!_.success)return null;if(_.data.path){let Y=l88(_.data.path);if(Y)return Y}let z=cm8(_.data.pattern);if(z)return z;return null}default:return null}}function U67(q,K){if(jPK(q,K)==="session_memory")return!0;let _=wPK(q,K);if(_&&(pR6(_)||OPK.isTeamMemFile(_)))return!0;return!1}async function bKY(q,K,_){if(q.hook_event_name!=="PostToolUse")return{};let z=jPK(q.tool_name,q.tool_input),Y=zrq(),$=Y?{subagent_name:Y}:{};if(z==="session_memory")d("tengu_session_memory_accessed",{...$});else if(z==="session_transcript")d("tengu_transcript_accessed",{...$});let A=wPK(q.tool_name,q.tool_input);if(A&&pR6(A))switch(d("tengu_memdir_accessed",{tool:q.tool_name,...$}),q.tool_name){case Cq:d("tengu_memdir_file_read",{...$});break;case X4:d("tengu_memdir_file_edit",{...$});break;case tK:d("tengu_memdir_file_write",{...$});break}if(A&&OPK.isTeamMemFile(A))switch(d("tengu_team_mem_accessed",{tool:q.tool_name,...$}),q.tool_name){case Cq:d("tengu_team_mem_file_read",{...$});break;case X4:d("tengu_team_mem_file_edit",{...$}),APK?.notifyTeamMemoryWrite();break;case tK:d("tengu_team_mem_file_write",{...$}),APK?.notifyTeamMemoryWrite();break}return{}}function xKY(){let q={type:"callback",callback:bKY,timeout:1,internal:!0};It({PostToolUse:[{matcher:Cq,hooks:[q]},{matcher:n3,hooks:[q]},{matcher:i9,hooks:[q]},{matcher:X4,hooks:[q]},{matcher:tK,hooks:[q]}]})}var OPK,APK;var Q67=y(()=>{v8();k8();wu8();$p();IY();ka();E2();tL6();lj6();qM();n88();Ou();OPK=(YL(),Eq(Pi)),APK=(F67(),Eq(g67))});function JPK(){return!1}var jH6=y(()=>{xr();V1();m8()});import{stat as IKY}from"fs/promises";function dR6(){if(xX6()==="remote"){let A=process.env.CLAUDE_CODE_REMOTE_SESSION_ID;if(A){let O=process.env.SESSION_INGRESS_URL;if(!fy8(A,O)){let w=MM(A,O);return{commit:w,pr:w}}}return{commit:"",pr:""}}let q=D5(),K=dF6(q)!==null,_=IN4()||K?gX1(q):"Claude Opus 4.6",z=`\uD83E\uDD16 Generated with [Claude Code](${Zw6})`,Y=`Co-Authored-By: ${_} <noreply@anthropic.com>`,$=N7();if($.attribution)return{commit:$.attribution.commit??Y,pr:$.attribution.pr??z};if($.includeCoAuthoredBy===!1)return{commit:"",pr:""};return{commit:Y,pr:z}}function MPK(q){for(let K of AL7)if(q.includes(`<${K}>`))return!0;return!1}function uKY(q){let K=0;for(let _ of q){if(_.type!=="user")continue;let z=_.message?.content;if(!z)continue;let Y=!1;if(typeof z==="string"){if(MPK(z))continue;Y=z.trim().length>0}else if(Array.isArray(z))Y=z.some(($)=>{if(!$||typeof $!=="object"||!("type"in $))return!1;return $.type==="text"&&typeof $.text==="string"&&!MPK($.text)||$.type==="image"||$.type==="document"});if(Y)K++}return K}function mKY(q){let K=q.filter((_)=>_.type==="user"&&!(("isSidechain"in _)&&_.isSidechain));return uKY(K)}async function pKY(q){let K=q.attribution;if(!K)return null;let _=K.fileStates,Y=_ instanceof Map?Array.from(_.keys()):Object.keys(_);if(Y.length===0)return null;try{return await pN4([K],Y)}catch($){return H6($),null}}function gKY(q){let K=0;for(let _ of q){if(_.type!=="assistant")continue;let z=_.message?.content;if(!Array.isArray(z))continue;for(let Y of z){if(Y.type!=="tool_use"||!BKY.has(Y.name))continue;if(U67(Y.name,Y.input))K++}}return K}async function FKY(){try{let q=Y$(),K=(await IKY(q)).size,z=(await g$8(q,K)).postBoundaryBuf,Y=LB(z),$=Y.findLastIndex((O)=>O.type==="system"&&("subtype"in O)&&O.subtype==="compact_boundary"),A=$>=0?Y.slice($+1):Y;return{promptCount:mKY(A),memoryAccessCount:gKY(A)}}catch{return{promptCount:0,memoryAccessCount:0}}}async function XPK(q){if(xX6()==="remote"){let X=process.env.CLAUDE_CODE_REMOTE_SESSION_ID;if(X){let P=process.env.SESSION_INGRESS_URL;if(!fy8(X,P))return MM(X,P)}return""}let K=N7();if(K.attribution?.pr)return K.attribution.pr;if(K.includeCoAuthoredBy===!1)return"";let _=`\uD83E\uDD16 Generated with [Claude Code](${Zw6})`,z=q();if(N(`PR Attribution: appState.attribution exists: ${!!z.attribution}`),z.attribution){let X=z.attribution.fileStates,W=X instanceof Map?X.size:Object.keys(X).length;N(`PR Attribution: fileStates count: ${W}`)}let[Y,{promptCount:$,memoryAccessCount:A},O]=await Promise.all([pKY(z),FKY(),uN4()]),w=Y?.summary.claudePercent??0;N(`PR Attribution: claudePercent: ${w}, promptCount: ${$}, memoryAccessCount: ${A}`);let j=bY(D5()),H=O?j:mN4(j);if(w===0&&$===0&&A===0)return N("PR Attribution: returning default (no data)"),_;let J=A>0?`, ${A} ${A===1?"memory":"memories"} recalled`:"",M=`\uD83E\uDD16 Generated with [Claude Code](${Zw6}) (${w}% ${$}-shotted by ${H}${J})`;return N(`PR Attribution: returning summary: ${M}`),M}var BKY;var sm8=y(()=>{v8();RY();IY();E2();qM();xr();_8();vO();E8();aq();Q67();_K();QW6();U1();jH6();BKY=new Set([Cq,n3,i9,X4,tK])});function tm8(){return bL6()}function em8(){return BI8()}function QKY(){if(i6(process.env.CLAUDE_CODE_DISABLE_BACKGROUND_TASKS))return null;return"You can use the `run_in_background` parameter to run the command in the background. Only use this if you don't need the result immediately and are OK being notified when the command completes later. You do not need to check the output right away - you'll be notified when it finishes. You do not need to use '&' at the end of the command when using this parameter."}function PPK(){if(!Ik8())return"";let{commit:K,pr:_}=dR6();return`# Committing changes with git
3990
3991Only create commits when requested by the user. If unclear, ask first. When the user asks you to create a new git commit, follow these steps carefully:

Callers 2

RKYFunction · 0.85
CKYFunction · 0.85

Calls 7

o88Function · 0.85
NFunction · 0.85
d6Function · 0.85
pqFunction · 0.85
$PKFunction · 0.85
catchMethod · 0.45
onMethod · 0.45

Tested by

no test coverage detected