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

Function _dz

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

Source from the content-addressed store, hash-verified

2432\r
2433user_data\r
2434`)),J.push(Buffer.from(`--${j}--\r
2435`));let M=Buffer.concat(J);try{return await e5K(`Upload file ${K}`,async()=>{try{let X=await $1.post($,M,{headers:{...A,"Content-Type":`multipart/form-data; boundary=${j}`,"Content-Length":M.length.toString()},timeout:120000,signal:z?.signal,validateStatus:(P)=>P<500});if(X.status===200||X.status===201){let P=X.data?.id;if(!P)return{done:!1,error:"Upload succeeded but no file ID returned"};return Aa(`Uploaded file ${q} -> ${P} (${w} bytes)`),{done:!0,value:{path:K,fileId:P,size:w,success:!0}}}if(X.status===401)throw d("tengu_file_upload_failed",{error_type:"auth"}),new yj6("Authentication failed: invalid or missing API key");if(X.status===403)throw d("tengu_file_upload_failed",{error_type:"forbidden"}),new yj6("Access denied for upload");if(X.status===413)throw d("tengu_file_upload_failed",{error_type:"size"}),new yj6("File too large for upload");return{done:!1,error:`status ${X.status}`}}catch(X){if(X instanceof yj6)throw X;if($1.isCancel(X))throw new yj6("Upload canceled");if($1.isAxiosError(X))return{done:!1,error:X.message};throw X}})}catch(X){if(X instanceof yj6)return{path:K,error:X.message,success:!1};return d("tengu_file_upload_failed",{error_type:"network"}),{path:K,error:d6(X),success:!1}}}function _3K(q){let K=[],_=q.flatMap((z)=>z.split(" ").filter(Boolean));for(let z of _){let Y=z.indexOf(":");if(Y===-1)continue;let $=z.substring(0,Y),A=z.substring(Y+1);if(!$||!A){Wo1(`Invalid file spec: ${z}. Both file_id and path are required`);continue}K.push({fileId:$,relativePath:A})}return K}var a5K="files-api-2025-04-14,oauth-2025-04-20",s5K="2023-06-01",Rx8=3,dQz=500,o5K=524288000,iQz=5,yj6;var hx8=y(()=>{CK();I7();_8();y8();E8();k8();yj6=class yj6 extends Error{constructor(q){super(q);this.name="UploadNonRetriableError"}}});import{createHash as oQz,randomUUID as aQz}from"crypto";import{tmpdir as sQz}from"os";import{join as tQz}from"path";function YL6(q="claude-prompt",K=".md",_){let z=_?.contentHash?oQz("sha256").update(_.contentHash).digest("hex").slice(0,16):aQz();return tQz(sQz(),`${q}-${z}${K}`)}var Sx8=()=>{};import{stat as Do1,unlink as eQz}from"fs/promises";async function Kdz(q,K,_,z,Y){let $=z?["refs/seed/stash"]:[],A=(D)=>S7(L7(),["bundle","create",K,D,...$],{cwd:q,abortSignal:Y}),O=await A("--all");if(O.code!==0)return{ok:!1,error:`git bundle create --all failed (${O.code}): ${O.stderr.slice(0,200)}`,failReason:"git_error"};let{size:w}=await Do1(K);if(w<=_)return{ok:!0,size:w,scope:"all"};N(`[gitBundle] --all bundle is ${(w/1024/1024).toFixed(1)}MB (> ${(_/1024/1024).toFixed(0)}MB), retrying HEAD-only`);let j=await A("HEAD");if(j.code!==0)return{ok:!1,error:`git bundle create HEAD failed (${j.code}): ${j.stderr.slice(0,200)}`,failReason:"git_error"};let{size:H}=await Do1(K);if(H<=_)return{ok:!0,size:H,scope:"head"};N(`[gitBundle] HEAD bundle is ${(H/1024/1024).toFixed(1)}MB, retrying squashed-root`);let J=z?"refs/seed/stash^{tree}":"HEAD^{tree}",M=await S7(L7(),["commit-tree",J,"-m","seed"],{cwd:q,abortSignal:Y});if(M.code!==0)return{ok:!1,error:`git commit-tree failed (${M.code}): ${M.stderr.slice(0,200)}`,failReason:"git_error"};let X=M.stdout.trim();await S7(L7(),["update-ref","refs/seed/root",X],{cwd:q});let P=await S7(L7(),["bundle","create",K,"refs/seed/root"],{cwd:q,abortSignal:Y});if(P.code!==0)return{ok:!1,error:`git bundle create refs/seed/root failed (${P.code}): ${P.stderr.slice(0,200)}`,failReason:"git_error"};let{size:W}=await Do1(K);if(W<=_)return{ok:!0,size:W,scope:"squashed"};return{ok:!1,error:"Repo is too large to bundle. Please setup GitHub on https://claude.ai/code",failReason:"too_large"}}async function fo1(q,K){let _=K?.cwd??Z8(),z=hY(_);if(!z)return{success:!1,error:"Not in a git repository"};for(let j of["refs/seed/stash","refs/seed/root"])await S7(L7(),["update-ref","-d",j],{cwd:z});let Y=await S7(L7(),["for-each-ref","--count=1","refs/"],{cwd:z});if(Y.code===0&&Y.stdout.trim()==="")return d("tengu_ccr_bundle_upload",{outcome:"empty_repo"}),{success:!1,error:"Repository has no commits yet",failReason:"empty_repo"};let $=await S7(L7(),["stash","create"],{cwd:z,abortSignal:K?.signal}),A=$.code===0?$.stdout.trim():"",O=A!=="";if($.code!==0)N(`[gitBundle] git stash create failed (${$.code}), proceeding without WIP: ${$.stderr.slice(0,200)}`);else if(O)N(`[gitBundle] Captured WIP as stash ${A}`),await S7(L7(),["update-ref","refs/seed/stash",A],{cwd:z});let w=YL6("ccr-seed",".bundle");try{let j=g8("tengu_ccr_bundle_max_bytes",null)??qdz,H=await Kdz(z,w,j,O,K?.signal);if(!H.ok)return N(`[gitBundle] ${H.error}`),d("tengu_ccr_bundle_upload",{outcome:H.failReason,max_bytes:j}),{success:!1,error:H.error,failReason:H.failReason};let J=await K3K(w,"_source_seed.bundle",q,{signal:K?.signal});if(!J.success)return d("tengu_ccr_bundle_upload",{outcome:"failed"}),{success:!1,error:J.error};return N(`[gitBundle] Uploaded ${J.size} bytes as file_id ${J.fileId}`),d("tengu_ccr_bundle_upload",{outcome:"success",size_bytes:J.size,scope:H.scope,has_wip:O}),{success:!0,fileId:J.fileId,bundleSizeBytes:J.size,scope:H.scope,hasWip:O}}finally{try{await eQz(w)}catch{N(`[gitBundle] Could not delete ${w} (non-fatal)`)}for(let j of["refs/seed/stash","refs/seed/root"])await S7(L7(),["update-ref","-d",j],{cwd:z})}}var qdz=104857600;var z3K=y(()=>{k8();o1();hx8();I7();_8();XK();E5();Sx8()});var A3K={};T8(A3K,{validateSessionRepository:()=>xx8,validateGitState:()=>Zo1,teleportToRemoteWithErrorHandling:()=>Go1,teleportToRemote:()=>Lj6,teleportResumeCodeSession:()=>Ej6,teleportFromSessionsAPI:()=>$3K,processMessagesForTeleportResume:()=>Z68,pollRemoteSessionEvents:()=>T68,checkOutTeleportedSessionBranch:()=>G68,archiveRemoteSession:()=>$L6});import{randomUUID as Y3K}from"crypto";function _dz(q){if(q===null)return fw("Session resumed","suggestion");let K=q instanceof AP?q.formattedMessage:q.message;return fw(`Session resumed without branch: ${K}`,"warning")}function zdz(){return U8({content:`This session is being continued from another machine. Application state may have changed. The updated working directory is ${r1()}`,isMeta:!0})}async function $dz(q,K){let _=T4(q,75),z="claude/task";try{let Y=Ydz.replace("{description}",q),A=(await RG({systemPrompt:iK([]),userPrompt:Y,outputFormat:{type:"json_schema",schema:{type:"object",properties:{title:{type:"string"},branch:{type:"string"}},required:["title","branch"],additionalProperties:!1}},signal:K,options:{querySource:"teleport_generate_title",agents:[],isNonInteractiveSession:!1,hasAppendSystemPrompt:!1,mcpTools:[]}})).message.content[0];if(A?.type!=="text")return{title:_,branchName:"claude/task"};let O=m5(A.text.trim()),w=L.object({title:L.string(),branch:L.string()}).safeParse(O);if(w.success)return{title:w.data.title||_,branchName:w.data.branch||"claude/task"};return{title:_,branchName:"claude/task"}}catch(Y){return H6(Error(`Error generating title and branch: ${Y}`)),{title:_,branchName:"claude/task"}}}async function Zo1(){if(!await rW6({ignoreUntracked:!0}))throw d("tengu_teleport_error_git_not_clean",{}),new AP("Git working directory is not clean. Please commit or stash your changes before using --teleport.",$8.red(`Error: Git working directory is not clean. Please commit or stash your changes before using --teleport.
2436`))}async function Adz(q){let K=q?["fetch","origin",`${q}:${q}`]:["fetch","origin"],{code:_,stderr:z}=await a8(L7(),K);if(_!==0)if(q&&z.includes("refspec")){N(`Specific branch fetch failed, trying to fetch ref: ${q}`);let{code:Y,stderr:$}=await a8(L7(),["fetch","origin",q]);if(Y!==0)H6(Error(`Failed to fetch from remote origin: ${$}`))}else H6(Error(`Failed to fetch from remote origin: ${z}`))}async function Odz(q){let{code:K}=await a8(L7(),["rev-parse","--abbrev-ref",`${q}@{upstream}`]);if(K===0){N(`Branch '${q}' already has upstream set`);return}let{code:_}=await a8(L7(),["rev-parse","--verify",`origin/${q}`]);if(_===0){N(`Setting upstream for '${q}' to 'origin/${q}'`);let{code:z,stderr:Y}=await a8(L7(),["branch","--set-upstream-to",`origin/${q}`,q]);if(z!==0)N(`Failed to set upstream for '${q}': ${Y}`);else N(`Successfully set upstream for '${q}'`)}else N(`Remote branch 'origin/${q}' does not exist, skipping upstream setup`)}async function wdz(q){let{code:K,stderr:_}=await a8(L7(),["checkout",q]);if(K!==0){N(`Local checkout failed, trying to checkout from origin: ${_}`);let z=await a8(L7(),["checkout","-b",q,"--track",`origin/${q}`]);if(K=z.code,_=z.stderr,K!==0){N(`Remote checkout with -b failed, trying without -b: ${_}`);let Y=await a8(L7(),["checkout","--track",`origin/${q}`]);K=Y.code,_=Y.stderr}}if(K!==0)throw d("tengu_teleport_error_branch_checkout_failed",{}),new AP(`Failed to checkout branch '${q}': ${_}`,$8.red(`Failed to checkout branch '${q}'
2437`));await Odz(q)}async function Cx8(){let{stdout:q}=await a8(L7(),["branch","--show-current"]);return q.trim()}function Z68(q,K){return[...Ex8(q),zdz(),_dz(K)]}async function G68(q){try{let K=await Cx8();if(N(`Current branch before teleport: '${K}'`),q){N(`Switching to branch '${q}'...`),await Adz(q),await wdz(q);let z=await Cx8();N(`Branch after checkout: '${z}'`)}else N("No branch specified, staying on current branch");return{branchName:await Cx8(),branchError:null}}catch(K){let _=await Cx8(),z=x1(K);return{branchName:_,branchError:z}}}async function xx8(q){let K=await Dh(),_=K?`${K.owner}/${K.name}`:null,z=q.session_context.sources.find((j)=>j.type==="git_repository");if(!z?.url)return N(_?"Session has no associated repository, proceeding without validation":"Session has no repo requirement and not in git directory, proceeding"),{status:"no_repo_required"};let Y=P_6(z.url),$=Y?`${Y.owner}/${Y.name}`:W_6(z.url);if(!$)return{status:"no_repo_required"};if(N(`Session is for repository: ${$}, current repo: ${_??"none"}`),!_)return{status:"not_in_repo",sessionRepo:$,sessionHost:Y?.host,currentRepo:null};let A=(j)=>j.replace(/:\d+$/,""),O=_.toLowerCase()===$.toLowerCase(),w=!K||!Y||A(K.host.toLowerCase())===A(Y.host.toLowerCase());if(O&&w)return{status:"match",sessionRepo:$,currentRepo:_};return{status:"mismatch",sessionRepo:$,currentRepo:_,sessionHost:Y?.host,currentHost:K?.host}}async function Ej6(q,K){if(!OO("allow_remote_sessions"))throw Error("Remote sessions are disabled by your organization's policy.");N(`Resuming code session ID: ${q}`);try{let _=Kq()?.accessToken;if(!_)throw d("tengu_teleport_resume_error",{error_type:"no_access_token"}),Error("Claude Code web sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.");let z=await mW();if(!z)throw d("tengu_teleport_resume_error",{error_type:"no_org_uuid"}),Error("Unable to get organization UUID for constructing session URL");K?.("validating");let Y=await s46(q),$=await xx8(Y);switch($.status){case"match":case"no_repo_required":break;case"not_in_repo":{d("tengu_teleport_error_repo_not_in_git_dir_sessions_api",{sessionId:q});let A=$.sessionHost&&$.sessionHost.toLowerCase()!=="github.com"?`${$.sessionHost}/${$.sessionRepo}`:$.sessionRepo;throw new AP(`You must run claude --teleport ${q} from a checkout of ${A}.`,$8.red(`You must run claude --teleport ${q} from a checkout of ${$8.bold(A)}.

Callers 1

Z68Function · 0.85

Calls 1

fwFunction · 0.85

Tested by

no test coverage detected