(q)
| 1629 | `)&&ON8.test($))return{ok:!1,reason:"Newline followed by # inside a quoted argument can hide arguments from path validation"};for(let $ of K.envVars)if($.value.includes(` |
| 1630 | `)&&ON8.test($.value))return{ok:!1,reason:"Newline followed by # inside an env var value can hide arguments from path validation"};for(let $ of K.redirects)if($.target.includes(` |
| 1631 | `)&&ON8.test($.target))return{ok:!1,reason:"Newline followed by # inside a redirect target can hide arguments from path validation"};if(z==="jq"){for(let $ of _)if(/\bsystem\s*\(/.test($))return{ok:!1,reason:"jq command contains system() function which executes arbitrary commands"};if(_.some(($)=>/^(?:-[fL](?:$|[^A-Za-z])|--(?:from-file|rawfile|slurpfile|library-path)(?:$|=))/.test($)))return{ok:!1,reason:"jq command contains dangerous flags that could execute code or read arbitrary files"}}if(L9z.has(z))return{ok:!1,reason:`Zsh builtin '${z}' can bypass security checks`};if(R9z.has(z))if(z==="command"&&(_[1]==="-v"||_[1]==="-V"));else if(z==="fc"&&!_.slice(1).some(($)=>/^-[^-]*[es]/.test($)));else if(z==="compgen"&&!_.slice(1).some(($)=>/^-[^-]*[CFW]/.test($)));else return{ok:!1,reason:`'${z}' evaluates arguments as shell code`};for(let $ of K.argv)if($.includes("/proc/")&&Vm1.test($))return{ok:!1,reason:"Accesses /proc/*/environ which may expose secrets"};for(let $ of K.redirects)if($.target.includes("/proc/")&&Vm1.test($.target))return{ok:!1,reason:"Accesses /proc/*/environ which may expose secrets"}}return{ok:!0}}var $9z,A9z,wN8="__CMDSUB_OUTPUT__",Cr="__TRACKED_VAR__",O9z,w9z,j9z,H9z,J9z,M9z,sV4,X9z,iV4,vm1,P9z,W9z,D9z,f9z,Z9z,G9z,rV4,y9z,L9z,R9z,h9z,S9z,C9z,aV4,Vm1,ON8;var Rm1=y(()=>{fm1();qw6();$9z=new Set(["program","list","pipeline","redirected_statement"]),A9z=new Set(["&&","||","|",";","&","|&",` |
| 1632 | `]);O9z=/[ \t\n*?[]/,w9z=/^-[ioe]$/,j9z=/^-[ioe]./,H9z=/^--(input|output|error)=/,J9z=new Set(["HOME","PWD","OLDPWD","USER","LOGNAME","SHELL","PATH","HOSTNAME","UID","EUID","PPID","RANDOM","SECONDS","LINENO","TMPDIR","BASH_VERSION","BASHPID","SHLVL","HISTFILE","IFS"]),M9z=new Set(["?","$","!","#","0","-"]),sV4=new Set(["command_substitution","process_substitution","expansion","simple_expansion","brace_expression","subshell","compound_statement","for_statement","while_statement","until_statement","if_statement","case_statement","function_definition","test_command","ansi_c_string","translated_string","herestring_redirect","heredoc_redirect"]),X9z=[...sV4];iV4={">":">",">>":">>","<":"<",">&":">&","<&":"<&",">|":">|","&>":"&>","&>>":"&>>","<<<":"<<<"},vm1=/\{[^{}\s]*(,|\.\.)[^{}\s]*\}/,P9z=/[\x00-\x08\x0B-\x1F\x7F]/,W9z=/[\u00A0\u1680\u2000-\u200B\u2028\u2029\u202F\u205F\u3000\uFEFF]/,D9z=/\\[ \t]|[^ \t\n\\]\\\n/,f9z=/~\[/,Z9z=/(?:^|[\s;&|])=[a-zA-Z_]/,G9z=/\{[^}]*['"]/;rV4=String.fromCharCode(36);y9z=/^(?:[0-9]+|0[xX][0-9a-fA-F]+|[0-9]+#[0-9a-zA-Z]+|[-+*/%^&|~!<>=?:(),]+|<<|>>|\*\*|&&|\|\||[<>=!]=|\$\(\(|\)\))$/;L9z=new Set(["zmodload","emulate","sysopen","sysread","syswrite","sysseek","zpty","ztcp","zsocket","zf_rm","zf_mv","zf_ln","zf_chmod","zf_chown","zf_mkdir","zf_rmdir","zf_chgrp"]),R9z=new Set(["eval","source",".","exec","command","builtin","fc","coproc","noglob","nocorrect","trap","enable","mapfile","readarray","hash","bind","complete","compgen","alias","let"]),h9z={test:new Set(["-v","-R"]),"[":new Set(["-v","-R"]),"[[":new Set(["-v","-R"]),printf:new Set(["-v"]),read:new Set(["-a"]),unset:new Set(["-v"]),wait:new Set(["-p"])},S9z=new Set(["-eq","-ne","-lt","-le","-gt","-ge"]),C9z=new Set(["read","unset"]),aV4=new Set(["-p","-d","-n","-N","-t","-u","-i"]),Vm1=/\/proc\/.*\/environ/,ON8=/\n[ \t]*#/});function o$(q,K){try{return{success:!0,tokens:typeof K==="function"?kV6.parse(q,K):kV6.parse(q,K)}}catch(_){if(_ instanceof Error)H6(_);return{success:!1,error:_ instanceof Error?_.message:"Unknown parse error"}}}function b9z(q){try{let K=q.map((z,Y)=>{if(z===null||z===void 0)return String(z);let $=typeof z;if($==="string")return z;if($==="number"||$==="boolean")return String(z);if($==="object")throw Error(`Cannot quote argument at index ${Y}: object values are not supported`);if($==="symbol")throw Error(`Cannot quote argument at index ${Y}: symbol values are not supported`);if($==="function")throw Error(`Cannot quote argument at index ${Y}: function values are not supported`);throw Error(`Cannot quote argument at index ${Y}: unsupported type ${$}`)});return{success:!0,quoted:kV6.quote(K)}}catch(K){if(K instanceof Error)H6(K);return{success:!1,error:K instanceof Error?K.message:"Unknown quote error"}}}function JN8(q,K){let _=!1,z=!1,Y=0,$=0;for(let A=0;A<q.length;A++){let O=q[A];if(O==="\\"&&!_){A++;continue}if(O==='"'&&!_)Y++,z=!z;else if(O==="'"&&!z)$++,_=!_}if(Y%2!==0||$%2!==0)return!0;for(let A of K){if(typeof A!=="string")continue;let O=(A.match(/{/g)||[]).length,w=(A.match(/}/g)||[]).length;if(O!==w)return!0;let j=(A.match(/\(/g)||[]).length,H=(A.match(/\)/g)||[]).length;if(j!==H)return!0;let J=(A.match(/\[/g)||[]).length,M=(A.match(/\]/g)||[]).length;if(J!==M)return!0;if((A.match(/(?<!\\)"/g)||[]).length%2!==0)return!0;if((A.match(/(?<!\\)'/g)||[]).length%2!==0)return!0}return!1}function Oo6(q){let K=!1,_=!1;for(let z=0;z<q.length;z++){let Y=q[z];if(Y==="\\"&&!K){z++;continue}if(Y==='"'&&!K){_=!_;continue}if(Y==="'"&&!_){if(K=!K,!K){let $=0,A=z-1;while(A>=0&&q[A]==="\\")$++,A--;if($>0&&$%2===1)return!0;if($>0&&$%2===0&&q.indexOf("'",z+1)!==-1)return!0}continue}}return!1}function E4(q){let K=b9z([...q]);if(K.success)return K.quoted;try{let _=q.map((z)=>{if(z===null||z===void 0)return String(z);let Y=typeof z;if(Y==="string"||Y==="number"||Y==="boolean")return String(z);return g6(z)});return kV6.quote(_)}catch(_){if(_ instanceof Error)H6(_);throw Error("Failed to quote shell arguments safely")}}var kV6;var NX=y(()=>{E8();l8();kV6=O6(iG8(),1)});function AN4(q){return`prompt: ${q.trim()}`}function Jq6(){return!1}function ON4(q){return[]}function wN4(q){return[]}function MN8(q){return[]}async function XN8(q,K,_,z,Y,$){return{matches:!1,confidence:"high",reason:"This feature is disabled"}}async function jN4(q,K,_){return K||null}var $N4="prompt:";function jo6(){return v1("policySettings")?.allowManagedPermissionRulesOnly===!0}function WU(){return!jo6()}function I9z(q){let K=Hj(q);if(!K)return null;try{let{resolvedPath:_}=F$(X8(),K),z=xZ(_);if(z.trim()==="")return{};let Y=m5(z,!1);return Y&&typeof Y==="object"?Y:null}catch{return null}}function u9z(q,K){if(!q||!q.permissions)return[];let{permissions:_}=q,z=[];for(let Y of x9z){let $=_[Y];if($)for(let A of $)z.push({source:K,ruleBehavior:Y,ruleValue:G2(A)})}return z}function PN8(){if(jo6())return wo6("policySettings");let q=[];for(let K of Jl())q.push(...wo6(K));return q}function wo6(q){let K=v1(q);return u9z(K,q)}function HN4(q){if(!m9z.includes(q.source))return!1;let K=G9(q.ruleValue),_=v1(q.source);if(!_||!_.permissions)return!1;let z=_.permissions[q.ruleBehavior];if(!z)return!1;let Y=($)=>G9(G2($));if(!z.some(($)=>Y($)===K))return!1;try{let $={..._,permissions:{..._.permissions,[q.ruleBehavior]:z.filter((O)=>Y(O)!==K)}},{error:A}=W7(q.source,$);if(A)return!1;return!0}catch($){return H6($),!1}}function p9z(){return{permissions:{}}}function JN4({ruleValues:q,ruleBehavior:K},_){if(jo6())return!1;if(q.length<1)return!0;let z=q.map(G9),Y=v1(_)||I9z(_)||p9z();try{let $=Y.permissions||{},A=$[K]||[],O=new Set(A.map((J)=>G9(G2(J)))),w=z.filter((J)=>!O.has(J));if(w.length===0)return!0;let j={...Y,permissions:{...$,[K]:[...A,...w]}},H=W7(_,j);if(H.error)throw H.error;return!0}catch($){return H6($),!1}}var x9z,m9z;var iu=y(()=>{ZE();e7();vO();E8();kO();U1();Gf();x9z=["allow","deny","ask"];m9z=["userSettings","projectSettings","localSettings"]});import{posix as B9z}from"path";function DU(q){if(!q)return[];return q.flatMap((K)=>{switch(K.type){case"addRules":return K.rules;default:return[]}})}function L$(q,K){switch(K.type){case"setMode":return N(`Applying permission update: Setting mode to '${K.mode}'`),{...q,mode:K.mode};case"addRules":{let _=K.rules.map((Y)=>G9(Y));N(`Applying permission update: Adding ${K.rules.length} ${K.behavior} rule(s) to destination '${K.destination}': ${g6(_)}`);let z=K.behavior==="allow"?"alwaysAllowRules":K.behavior==="deny"?"alwaysDenyRules":"alwaysAskRules";return{...q,[z]:{...q[z],[K.destination]:[...q[z][K.destination]||[],..._]}}}case"replaceRules":{let _=K.rules.map((Y)=>G9(Y));N(`Replacing all ${K.behavior} rules for destination '${K.destination}' with ${K.rules.length} rule(s): ${g6(_)}`);let z=K.behavior==="allow"?"alwaysAllowRules":K.behavior==="deny"?"alwaysDenyRules":"alwaysAskRules";return{...q,[z]:{...q[z],[K.destination]:_}}}case"addDirectories":{N(`Applying permission update: Adding ${K.directories.length} director${K.directories.length===1?"y":"ies"} with destination '${K.destination}': ${g6(K.directories)}`);let _=new Map(q.additionalWorkingDirectories);for(let z of K.directories)_.set(z,{path:z,source:K.destination});return{...q,additionalWorkingDirectories:_}}case"removeRules":{let _=K.rules.map((O)=>G9(O));N(`Applying permission update: Removing ${K.rules.length} ${K.behavior} rule(s) from source '${K.destination}': ${g6(_)}`);let z=K.behavior==="allow"?"alwaysAllowRules":K.behavior==="deny"?"alwaysDenyRules":"alwaysAskRules",Y=q[z][K.destination]||[],$=new Set(_),A=Y.filter((O)=>!$.has(O));return{...q,[z]:{...q[z],[K.destination]:A}}}case"removeDirectories":{N(`Applying permission update: Removing ${K.directories.length} director${K.directories.length===1?"y":"ies"}: ${g6(K.directories)}`);let _=new Map(q.additionalWorkingDirectories);for(let z of K.directories)_.delete(z);return{...q,additionalWorkingDirectories:_}}default:return q}}function XN(q,K){let _=q;for(let z of K)_=L$(_,z);return _}function hm1(q){return q==="localSettings"||q==="userSettings"||q==="projectSettings"}function fU(q){if(!hm1(q.destination))return;switch(N(`Persisting permission update: ${q.type} to source '${q.destination}'`),q.type){case"addRules":{N(`Persisting ${q.rules.length} ${q.behavior} rule(s) to ${q.destination}`),JN4({ruleValues:q.rules,ruleBehavior:q.behavior},q.destination);break}case"addDirectories":{N(`Persisting ${q.directories.length} director${q.directories.length===1?"y":"ies"} to ${q.destination}`);let _=v1(q.destination)?.permissions?.additionalDirectories||[],z=q.directories.filter((Y)=>!_.includes(Y));if(z.length>0){let Y=[..._,...z];W7(q.destination,{permissions:{additionalDirectories:Y}})}break}case"removeRules":{N(`Removing ${q.rules.length} ${q.behavior} rule(s) from ${q.destination}`);let z=(v1(q.destination)?.permissions||{})[q.behavior]||[],Y=new Set(q.rules.map(G9)),$=z.filter((A)=>{let O=G9(G2(A));return!Y.has(O)});W7(q.destination,{permissions:{[q.behavior]:$}});break}case"removeDirectories":{N(`Removing ${q.directories.length} director${q.directories.length===1?"y":"ies"} from ${q.destination}`);let _=v1(q.destination)?.permissions?.additionalDirectories||[],z=new Set(q.directories),Y=_.filter(($)=>!z.has($));W7(q.destination,{permissions:{additionalDirectories:Y}});break}case"setMode":{N(`Persisting mode '${q.mode}' to ${q.destination}`),W7(q.destination,{permissions:{defaultMode:q.mode}});break}case"replaceRules":{N(`Replacing all ${q.behavior} rules in ${q.destination} with ${q.rules.length} rule(s)`);let K=q.rules.map(G9);W7(q.destination,{permissions:{[q.behavior]:K}});break}}}function ru(q){for(let K of q)fU(K)}function Kw6(q,K="session"){let _=MN4(q);if(_==="/")return;return{type:"addRules",rules:[{toolName:"Read",ruleContent:B9z.isAbsolute(_)?`/${_}/**`:`${_}/**`}],behavior:"allow",destination:K}}var LH=y(()=>{_8();U1();l8();Tz();Gf();iu()});function Ho6(q){return q.match(/^(.+):\*$/)?.[1]??null}function U9z(q){if(q.endsWith(":*"))return!1;for(let K=0;K<q.length;K++)if(q[K]==="*"){let _=0,z=K-1;while(z>=0&&q[z]==="\\")_++,z--;if(_%2===0)return!0}return!1}function lv(q,K,_=!1){let z=q.trim(),Y="",$=0;while($<z.length){let M=z[$];if(M==="\\"&&$+1<z.length){let X=z[$+1];if(X==="*"){Y+="\x00ESCAPED_STAR\x00",$+=2;continue}else if(X==="\\"){Y+="\x00ESCAPED_BACKSLASH\x00",$+=2;continue}}Y+=M,$++}let w=Y.replace(/[.+?^${}()|[\]\\'"]/g,"\\$&").replace(/\*/g,".*").replace(g9z,"\\*").replace(F9z,"\\\\"),j=(Y.match(/\*/g)||[]).length;if(w.endsWith(" .*")&&j===1)w=w.slice(0,-3)+"( .*)?";let H="s"+(_?"i":"");return new RegExp(`^${w}$`,H).test(K)}function WN8(q){let K=Ho6(q);if(K!==null)return{type:"prefix",prefix:K};if(U9z(q))return{type:"wildcard",pattern:q};return{type:"exact",command:q}}function DN8(q,K){return[{type:"addRules",rules:[{toolName:q,ruleContent:K}],behavior:"allow",destination:"localSettings"}]}function Jo6(q,K){return[{type:"addRules",rules:[{toolName:q,ruleContent:`${K}:*`}],behavior:"allow",destination:"localSettings"}]}var g9z,F9z;var br=y(()=>{g9z=new RegExp("\x00ESCAPED_STAR\x00","g"),F9z=new RegExp("\x00ESCAPED_BACKSLASH\x00","g")});var XN4=50000,Mo6=4,PN4=400000,WN4=200000,PN=50;function Q9z(){let q=g8("tengu_auto_mode_config",{})?.enabled;return q==="enabled"||q==="disabled"||q==="opt-in"?q:void 0}function Mq6(q,K,_){return}function fN4(q){let K=q.find((_)=>_.name==="claude-vscode");if(K&&K.type==="connected"){DN4=K,K.client.setNotificationHandler(d9z(),async(Y)=>{let{eventName:$,eventData:A}=Y.params;d(`tengu_vscode_${$}`,A)});let _={tengu_vscode_review_upsell:tY("tengu_vscode_review_upsell"),tengu_vscode_onboarding:tY("tengu_vscode_onboarding"),tengu_quiet_fern:g8("tengu_quiet_fern",!1),tengu_vscode_cc_auth:g8("tengu_vscode_cc_auth",!1)},z=Q9z();if(z!==void 0)_.tengu_auto_mode_state=z;K.client.notification({method:"experiment_gates",params:{gates:_}})}}var d9z,DN4=null;var VV6=y(()=>{_8();x7();o1();k8();d9z=B6(()=>L.object({method:L.literal("log_event"),params:L.object({eventName:L.string(),eventData:L.object({}).passthrough()})}))});function ZN4(q){return c9z.some((K)=>q.startsWith(K))}function GN4(q,K){if(q.isUsingOverage){if(q.overageStatus==="allowed_warning")return{message:"You're close to your extra usage spending limit",severity:"warning"};return null}if(q.status==="rejected")return{message:l9z(q,K),severity:"error"};if(q.status==="allowed_warning"){if(q.utilization!==void 0&&q.utilization<0.7)return null;let z=yK(),Y=z==="team"||z==="enterprise",$=B_()?.hasExtraUsageEnabled===!0;if(Y&&$&&!fg())return null;let A=n9z(q);if(A)return{message:A,severity:"warning"}}return null}function Sm1(q,K){let _=GN4(q,K);if(_&&_.severity==="error")return _.message;return null}function Cm1(q,K){let _=GN4(q,K);if(_&&_.severity==="warning")return _.message;return null}function l9z(q,K){let _=q.resetsAt,z=_?zP6(_,!0):void 0,Y=q.overageResetsAt?zP6(q.overageResetsAt,!0):void 0,$=z?` · resets ${z}`:"";if(q.overageStatus==="rejected"){let A="";if(_&&q.overageResetsAt)if(_<q.overageResetsAt)A=` · resets ${z}`;else A=` · resets ${Y}`;else if(z)A=` · resets ${z}`;else if(Y)A=` · resets ${Y}`;if(q.overageDisabledReason==="out_of_credits")return`You're out of extra usage${A}`;return NV6("limit",A,K)}if(q.rateLimitType==="seven_day_sonnet"){let A=yK();return NV6(A==="pro"||A==="enterprise"?"weekly limit":"Sonnet limit",$,K)}if(q.rateLimitType==="seven_day_opus")return NV6("Opus limit",$,K);if(q.rateLimitType==="seven_day")return NV6("weekly limit",$,K);if(q.rateLimitType==="five_hour")return NV6("session limit",$,K);return NV6("usage limit",$,K)}function n9z(q){let K=null;switch(q.rateLimitType){case"seven_day":K="weekly limit";break;case"five_hour":K="session limit";break;case"seven_day_opus":K="Opus limit";break;case"seven_day_sonnet":K="Sonnet limit";break;case"overage":K="extra usage";break;case void 0:return null}let _=q.utilization?Math.floor(q.utilization*100):void 0,z=q.resetsAt?zP6(q.resetsAt,!0):void 0,Y=i9z(q.rateLimitType);if(_&&z){let A=`You've used ${_}% of your ${K} · resets ${z}`;return Y?`${A} · ${Y}`:A}if(_){let A=`You've used ${_}% of your ${K}`;return Y?`${A} · ${Y}`:A}if(q.rateLimitType==="overage")K+=" limit";if(z){let A=`Approaching ${K} · resets ${z}`;return Y?`${A} · ${Y}`:A}let $=`Approaching ${K}`;return Y?`${$} · ${Y}`:$}function i9z(q){let K=yK(),_=B_()?.hasExtraUsageEnabled===!0;if(q==="five_hour"){if(K==="team"||K==="enterprise"){if(!_&&EG6())return"/extra-usage to request more";return null}if(K==="pro"||K==="max")return"/upgrade to keep using Claude Code"}if(q==="overage"){if(K==="team"||K==="enterprise"){if(!_&&EG6())return"/extra-usage to request more"}}return null}function bm1(q){let K=q.resetsAt?zP6(q.resetsAt,!0):"",_="";if(q.rateLimitType==="five_hour")_="session limit";else if(q.rateLimitType==="seven_day")_="weekly limit";else if(q.rateLimitType==="seven_day_opus")_="Opus limit";else if(q.rateLimitType==="seven_day_sonnet"){let Y=yK();_=Y==="pro"||Y==="enterprise"?"weekly limit":"Sonnet limit"}if(!_)return"Now using extra usage";return`You're now using extra usage${K?` · Your ${_} resets ${K}`:""}`}function NV6(q,K,_){return`You've hit your ${q}${K}`}var c9z;var xm1=y(()=>{G7();$n();U7();c9z=["You've hit your","You've used","You're now using extra usage","You're close to","You're out of extra usage"]});function a9z(q,K){let _=Date.now()/1000,z=q-K,Y=_-z;return Math.max(0,Math.min(1,Y/K))}function TN4(){return fN8}function vN4(q){let K={};for(let[_,z]of[["five_hour","5h"],["seven_day","7d"]]){let Y=q.get(`anthropic-ratelimit-unified-${z}-utilization`),$=q.get(`anthropic-ratelimit-unified-${z}-reset`);if(Y!==null&&$!==null)K[_]={utilization:Number(Y),resets_at:Number($)}}return K}function Im1(q){WN=q,Xq6.forEach((_)=>_(q));let K=Math.round((q.resetsAt?q.resetsAt-Date.now()/1000:0)/3600);d("tengu_claudeai_limits_status_changed",{status:q.status,unifiedRateLimitFallbackAvailable:q.unifiedRateLimitFallbackAvailable,hoursTillReset:K})}async function s9z(){let q=PH(),K=await eE({maxRetries:0,model:q,source:"quota_check"}),_=[{role:"user",content:"quota"}],z=qL(q);return K.beta.messages.create({model:q,max_tokens:1,messages:_,metadata:Pq6(),...z.length>0?{betas:z}:{}}).asResponse()}async function kN4(){if(iA())return;if(!Uk6(d7()))return;if(i7())return;try{let q=await s9z();um1(q.headers)}catch(q){if(q instanceof Qq)ZN8(q)}}function t9z(q,K){for(let[_,z]of Object.entries(o9z)){let Y=q.get(`anthropic-ratelimit-unified-${_}-surpassed-threshold`);if(Y!==null){let $=q.get(`anthropic-ratelimit-unified-${_}-utilization`),A=q.get(`anthropic-ratelimit-unified-${_}-reset`),O=$?Number($):void 0;return{status:"allowed_warning",resetsAt:A?Number(A):void 0,rateLimitType:z,utilization:O,unifiedRateLimitFallbackAvailable:K,isUsingOverage:!1,surpassedThreshold:Number(Y)}}}return null}function e9z(q,K,_){let{rateLimitType:z,claimAbbrev:Y,windowSeconds:$,thresholds:A}=K,O=q.get(`anthropic-ratelimit-unified-${Y}-utilization`),w=q.get(`anthropic-ratelimit-unified-${Y}-reset`);if(O===null||w===null)return null;let j=Number(O),H=Number(w),J=a9z(H,$);if(!A.some((X)=>j>=X.utilization&&J<=X.timePct))return null;return{status:"allowed_warning",resetsAt:H,rateLimitType:z,utilization:j,unifiedRateLimitFallbackAvailable:_,isUsingOverage:!1}}function q_z(q,K){let _=t9z(q,K);if(_)return _;for(let z of r9z){let Y=e9z(q,z,K);if(Y)return Y}return null}function VN4(q){let K=q.get("anthropic-ratelimit-unified-status")||"allowed",_=q.get("anthropic-ratelimit-unified-reset"),z=_?Number(_):void 0,Y=q.get("anthropic-ratelimit-unified-fallback")==="available",$=q.get("anthropic-ratelimit-unified-representative-claim"),A=q.get("anthropic-ratelimit-unified-overage-status"),O=q.get("anthropic-ratelimit-unified-overage-reset"),w=O?Number(O):void 0,j=q.get("anthropic-ratelimit-unified-overage-disabled-reason"),H=K==="rejected"&&(A==="allowed"||A==="allowed_warning"),J=K;if(K==="allowed"||K==="allowed_warning"){let M=q_z(q,Y);if(M)return M;J="allowed"}return{status:J,resetsAt:z,unifiedRateLimitFallbackAvailable:Y,...$&&{rateLimitType:$},...A&&{overageStatus:A},...w&&{overageResetsAt:w},...j&&{overageDisabledReason:j},isUsingOverage:H}}function NN4(q){let K=q.get("anthropic-ratelimit-unified-overage-disabled-reason")??null;if(j8().cachedExtraUsageDisabledReason!==K)b8((z)=>({...z,cachedExtraUsageDisabledReason:K}))}function um1(q){let K=d7();if(!Uk6(K)){if(fN8={},WN.status!=="allowed"||WN.resetsAt)Im1({status:"allowed",unifiedRateLimitFallbackAvailable:!1,isUsingOverage:!1});return}let _=DI1(q);fN8=vN4(_);let z=VN4(_);if(NN4(_),!QJ(WN,z))Im1(z)}function ZN8(q){if(!Uk6(d7())||q.status!==429)return;try{let K={...WN};if(q.headers){let _=DI1(q.headers);fN8=vN4(_),K=VN4(_),NN4(_)}if(K.status="rejected",!QJ(WN,K))Im1(K)}catch(K){H6(K)}}var r9z,o9z,WN,fN8,Xq6;var ZU=y(()=>{LZ();Ee();v8();G7();HG();V1();E8();aq();k8();ew();PG6();vr6();xm1();r9z=[{rateLimitType:"five_hour",claimAbbrev:"5h",windowSeconds:18000,thresholds:[{utilization:0.9,timePct:0.72}]},{rateLimitType:"seven_day",claimAbbrev:"7d",windowSeconds:604800,thresholds:[{utilization:0.75,timePct:0.6},{utilization:0.5,timePct:0.35},{utilization:0.25,timePct:0.15}]}],o9z={"5h":"five_hour","7d":"seven_day",overage:"overage"};WN={status:"allowed",unifiedRateLimitFallbackAvailable:!1,isUsingOverage:!1},fN8={};Xq6=new Set});function GN8(){return"user_intent"}function TN8(){let q=process.env.CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION;if(k_(q))return d("tengu_prompt_suggestion_init",{enabled:!1,source:"env"}),!1;if(i6(q))return d("tengu_prompt_suggestion_init",{enabled:!0,source:"env"}),!0;if(!g8("tengu_chomp_inflection",!1))return d("tengu_prompt_suggestion_init",{enabled:!1,source:"growthbook"}),!1;if(i7())return d("tengu_prompt_suggestion_init",{enabled:!1,source:"non_interactive"}),!1;if(nq()&&$Y())return d("tengu_prompt_suggestion_init",{enabled:!1,source:"swarm_teammate"}),!1;let K=N7()?.promptSuggestionEnabled!==!1;return d("tengu_prompt_suggestion_init",{enabled:K,source:"setting"}),K}function EN4(){if(_w6)_w6.abort(),_w6=null}function mm1(q){if(!q.promptSuggestionEnabled)return"disabled";if(q.pendingWorkerRequest||q.pendingSandboxRequest)return"pending_permission";if(q.elicitation.queue.length>0)return"elicitation_active";if(q.toolPermissionContext.mode==="plan")return"plan_mode";if(WN.status!=="allowed")return"rate_limit";return null}async function pm1(q,K,_,z,Y){if(q.signal.aborted)return w0("aborted",void 0,void 0,Y),null;if($7(K,(X)=>X.type==="assistant")<2)return w0("early_conversation",void 0,void 0,Y),null;let A=uP(K);if(A?.isApiErrorMessage)return w0("last_response_error",void 0,void 0,Y),null;let O=__z(A);if(O)return w0(O,void 0,void 0,Y),null;let w=_(),j=mm1(w);if(j)return w0(j,void 0,void 0,Y),null;let H=GN8(),{suggestion:J,generationRequestId:M}=await Bm1(q,H,z);if(q.signal.aborted)return w0("aborted",void 0,void 0,Y),null;if(!J)return w0("empty",void 0,H,Y),null;if(gm1(J,H,Y))return null;return{suggestion:J,promptId:H,generationRequestId:M}}async function LN4(q){if(q.querySource!=="repl_main_thread")return;_w6=new AbortController;let K=_w6,_=hL(q);try{let z=await pm1(K,q.messages,q.toolUseContext.getAppState,_,"cli");if(!z)return;if(q.toolUseContext.setAppState((Y)=>({...Y,promptSuggestion:{text:z.suggestion,promptId:z.promptId,shownAt:0,acceptedAt:0,generationRequestId:z.generationRequestId}})),Fm1()&&z.suggestion)Um1(z.suggestion,q,q.toolUseContext.setAppState,!1,_)}catch(z){if(z instanceof Error&&(z.name==="AbortError"||z.name==="APIUserAbortError")){w0("aborted",void 0,void 0,"cli");return}H6(x1(z))}finally{if(_w6===K)_w6=null}}function __z(q){if(!q)return null;let K=q.message.usage,_=K.input_tokens??0,z=K.cache_creation_input_tokens??0,Y=K.output_tokens??0;return _+z+Y>K_z?"cache_cold":null}async function Bm1(q,K,_){let z=z_z[K],Y=async()=>({behavior:"deny",message:"No tools needed for suggestion",decisionReason:{type:"other",reason:"suggestion only"}}),$=await hG({promptMessages:[U8({content:z})],cacheSafeParams:_,canUseTool:Y,querySource:"prompt_suggestion",forkLabel:"prompt_suggestion",overrides:{abortController:q},skipTranscript:!0,skipCacheWrite:!0}),A=$.messages.find((w)=>w.type==="assistant"),O=A?.type==="assistant"?A.requestId??null:null;for(let w of $.messages){if(w.type!=="assistant")continue;let j=w.message.content.find((H)=>H.type==="text");if(j?.type==="text"){let H=j.text.trim();if(H)return{suggestion:H,generationRequestId:O}}}return{suggestion:null,generationRequestId:O}}function gm1(q,K,_){if(!q)return w0("empty",void 0,K,_),!0;let z=q.toLowerCase(),Y=q.trim().split(/\s+/).length,$=[["done",()=>z==="done"],["meta_text",()=>z==="nothing found"||z==="nothing found."||z.startsWith("nothing to suggest")||z.startsWith("no suggestion")||/\bsilence is\b|\bstay(s|ing)? silent\b/.test(z)||/^\W*silence\W*$/.test(z)],["meta_wrapped",()=>/^\(.*\)$|^\[.*\]$/.test(q)],["error_message",()=>z.startsWith("api error:")||z.startsWith("prompt is too long")||z.startsWith("request timed out")||z.startsWith("invalid api key")||z.startsWith("image was too large")],["prefixed_label",()=>/^\w+:\s/.test(q)],["too_few_words",()=>{if(Y>=2)return!1;if(q.startsWith("/"))return!1;return!new Set(["yes","yeah","yep","yea","yup","sure","ok","okay","push","commit","deploy","stop","continue","check","exit","quit","no"]).has(z)}],["too_many_words",()=>Y>12],["too_long",()=>q.length>=100],["multiple_sentences",()=>/[.!?]\s+[A-Z]/.test(q)],["has_formatting",()=>/[\n*]|\*\*/.test(q)],["evaluative",()=>/thanks|thank you|looks good|sounds good|that works|that worked|that's all|nice|great|perfect|makes sense|awesome|excellent/.test(z)],["claude_voice",()=>/^(let me|i'll|i've|i'm|i can|i would|i think|i notice|here's|here is|here are|that's|this is|this will|you can|you should|you could|sure,|of course|certainly)/i.test(q)]];for(let[A,O]of $)if(O())return w0(A,q,K,_),!0;return!1}function RN4(q,K,_,z,Y){let $=Math.round(K.length/(q.length||1)*100)/100,A=K===q,O=Math.max(0,Date.now()-_);d("tengu_prompt_suggestion",{source:"sdk",outcome:A?"accepted":"ignored",prompt_id:z,...Y&&{generationRequestId:Y},...A&&{timeToAcceptMs:O},...!A&&{timeToIgnoreMs:O},similarity:$,...!1})}function w0(q,K,_,z){let Y=_??GN8();d("tengu_prompt_suggestion",{...z&&{source:z},outcome:"suppressed",reason:q,prompt_id:Y,...!1})}var _w6=null,K_z=1e4,yN4=`[SUGGESTION MODE: Suggest what the user might naturally type next into Claude Code.] |
| 1633 | |
| 1634 | FIRST: Look at the user's recent messages and original request. |
no test coverage detected