@autodevjapan/godd-mcp-alpha 0.37.1 → 0.38.0

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 (2) hide show
  1. package/dist/godd.cjs +2 -2
  2. package/package.json +1 -1
package/dist/godd.cjs CHANGED
@@ -48,9 +48,9 @@
48
48
  Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let a of e.seen.entries()){let s=a[1];if(t===a[0]){i(a);continue}if(e.external){let u=e.external.registry.get(a[0])?.id;if(t!==a[0]&&u){i(a);continue}}if(e.metadataRegistry.get(a[0])?.id){i(a);continue}if(s.cycle){i(a);continue}if(s.count>1&&e.reused==="ref"){i(a);continue}}}function br(e,t){let n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");let o=a=>{let s=e.seen.get(a);if(s.ref===null)return;let c=s.def??s.schema,u={...c},l=s.ref;if(s.ref=null,l){o(l);let p=e.seen.get(l),f=p.schema;if(f.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(f)):Object.assign(c,f),Object.assign(c,u),a._zod.parent===l)for(let h in c)h==="$ref"||h==="allOf"||h in u||delete c[h];if(f.$ref&&p.def)for(let h in c)h==="$ref"||h==="allOf"||h in p.def&&JSON.stringify(c[h])===JSON.stringify(p.def[h])&&delete c[h]}let d=a._zod.parent;if(d&&d!==l){o(d);let p=e.seen.get(d);if(p?.schema.$ref&&(c.$ref=p.schema.$ref,p.def))for(let f in c)f==="$ref"||f==="allOf"||f in p.def&&JSON.stringify(c[f])===JSON.stringify(p.def[f])&&delete c[f]}e.override({zodSchema:a,jsonSchema:c,path:s.path??[]})};for(let a of[...e.seen.entries()].reverse())o(a[0]);let r={};if(e.target==="draft-2020-12"?r.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?r.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?r.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let a=e.external.registry.get(t)?.id;if(!a)throw new Error("Schema is missing an `id` property");r.$id=e.external.uri(a)}Object.assign(r,n.def??n.schema);let i=e.external?.defs??{};for(let a of e.seen.entries()){let s=a[1];s.def&&s.defId&&(i[s.defId]=s.def)}e.external||Object.keys(i).length>0&&(e.target==="draft-2020-12"?r.$defs=i:r.definitions=i);try{let a=JSON.parse(JSON.stringify(r));return Object.defineProperty(a,"~standard",{value:{...t["~standard"],jsonSchema:{input:Wn(t,"input",e.processors),output:Wn(t,"output",e.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function Be(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let o=e._zod.def;if(o.type==="transform")return!0;if(o.type==="array")return Be(o.element,n);if(o.type==="set")return Be(o.valueType,n);if(o.type==="lazy")return Be(o.getter(),n);if(o.type==="promise"||o.type==="optional"||o.type==="nonoptional"||o.type==="nullable"||o.type==="readonly"||o.type==="default"||o.type==="prefault")return Be(o.innerType,n);if(o.type==="intersection")return Be(o.left,n)||Be(o.right,n);if(o.type==="record"||o.type==="map")return Be(o.keyType,n)||Be(o.valueType,n);if(o.type==="pipe")return Be(o.in,n)||Be(o.out,n);if(o.type==="object"){for(let r in o.shape)if(Be(o.shape[r],n))return!0;return!1}if(o.type==="union"){for(let r of o.options)if(Be(r,n))return!0;return!1}if(o.type==="tuple"){for(let r of o.items)if(Be(r,n))return!0;return!!(o.rest&&Be(o.rest,n))}return!1}var Ep=(e,t={})=>n=>{let o=_r({...n,processors:t});return ue(e,o),$r(o,e),br(o,e)},Wn=(e,t,n={})=>o=>{let{libraryOptions:r,target:i}=o??{},a=_r({...r??{},target:i,io:t,processors:n});return ue(e,a),$r(a,e),br(a,e)};var Az={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Op=(e,t,n,o)=>{let r=n;r.type="string";let{minimum:i,maximum:a,format:s,patterns:c,contentEncoding:u}=e._zod.bag;if(typeof i=="number"&&(r.minLength=i),typeof a=="number"&&(r.maxLength=a),s&&(r.format=Az[s]??s,r.format===""&&delete r.format,s==="time"&&delete r.format),u&&(r.contentEncoding=u),c&&c.size>0){let l=[...c];l.length===1?r.pattern=l[0].source:l.length>1&&(r.allOf=[...l.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},Np=(e,t,n,o)=>{let r=n,{minimum:i,maximum:a,format:s,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:l}=e._zod.bag;typeof s=="string"&&s.includes("int")?r.type="integer":r.type="number",typeof l=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(r.minimum=l,r.exclusiveMinimum=!0):r.exclusiveMinimum=l),typeof i=="number"&&(r.minimum=i,typeof l=="number"&&t.target!=="draft-04"&&(l>=i?delete r.minimum:delete r.exclusiveMinimum)),typeof u=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(r.maximum=u,r.exclusiveMaximum=!0):r.exclusiveMaximum=u),typeof a=="number"&&(r.maximum=a,typeof u=="number"&&t.target!=="draft-04"&&(u<=a?delete r.maximum:delete r.exclusiveMaximum)),typeof c=="number"&&(r.multipleOf=c)},Cp=(e,t,n,o)=>{n.type="boolean"},Dp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},Rp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},Ap=(e,t,n,o)=>{t.target==="openapi-3.0"?(n.type="string",n.nullable=!0,n.enum=[null]):n.type="null"},Zp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},Up=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},Mp=(e,t,n,o)=>{n.not={}},Lp=(e,t,n,o)=>{},qp=(e,t,n,o)=>{},Fp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},Vp=(e,t,n,o)=>{let r=e._zod.def,i=Yo(r.entries);i.every(a=>typeof a=="number")&&(n.type="number"),i.every(a=>typeof a=="string")&&(n.type="string"),n.enum=i},Gp=(e,t,n,o)=>{let r=e._zod.def,i=[];for(let a of r.values)if(a===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof a=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(a))}else i.push(a);if(i.length!==0)if(i.length===1){let a=i[0];n.type=a===null?"null":typeof a,t.target==="draft-04"||t.target==="openapi-3.0"?n.enum=[a]:n.const=a}else i.every(a=>typeof a=="number")&&(n.type="number"),i.every(a=>typeof a=="string")&&(n.type="string"),i.every(a=>typeof a=="boolean")&&(n.type="boolean"),i.every(a=>a===null)&&(n.type="null"),n.enum=i},Jp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},Kp=(e,t,n,o)=>{let r=n,i=e._zod.pattern;if(!i)throw new Error("Pattern not found in template literal");r.type="string",r.pattern=i.source},Bp=(e,t,n,o)=>{let r=n,i={type:"string",format:"binary",contentEncoding:"binary"},{minimum:a,maximum:s,mime:c}=e._zod.bag;a!==void 0&&(i.minLength=a),s!==void 0&&(i.maxLength=s),c?c.length===1?(i.contentMediaType=c[0],Object.assign(r,i)):(Object.assign(r,i),r.anyOf=c.map(u=>({contentMediaType:u}))):Object.assign(r,i)},Hp=(e,t,n,o)=>{n.type="boolean"},Wp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Yp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Xp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Qp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},ef=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},tf=(e,t,n,o)=>{let r=n,i=e._zod.def,{minimum:a,maximum:s}=e._zod.bag;typeof a=="number"&&(r.minItems=a),typeof s=="number"&&(r.maxItems=s),r.type="array",r.items=ue(i.element,t,{...o,path:[...o.path,"items"]})},rf=(e,t,n,o)=>{let r=n,i=e._zod.def;r.type="object",r.properties={};let a=i.shape;for(let u in a)r.properties[u]=ue(a[u],t,{...o,path:[...o.path,"properties",u]});let s=new Set(Object.keys(a)),c=new Set([...s].filter(u=>{let l=i.shape[u]._zod;return t.io==="input"?l.optin===void 0:l.optout===void 0}));c.size>0&&(r.required=Array.from(c)),i.catchall?._zod.def.type==="never"?r.additionalProperties=!1:i.catchall?i.catchall&&(r.additionalProperties=ue(i.catchall,t,{...o,path:[...o.path,"additionalProperties"]})):t.io==="output"&&(r.additionalProperties=!1)},pu=(e,t,n,o)=>{let r=e._zod.def,i=r.inclusive===!1,a=r.options.map((s,c)=>ue(s,t,{...o,path:[...o.path,i?"oneOf":"anyOf",c]}));i?n.oneOf=a:n.anyOf=a},nf=(e,t,n,o)=>{let r=e._zod.def,i=ue(r.left,t,{...o,path:[...o.path,"allOf",0]}),a=ue(r.right,t,{...o,path:[...o.path,"allOf",1]}),s=u=>"allOf"in u&&Object.keys(u).length===1,c=[...s(i)?i.allOf:[i],...s(a)?a.allOf:[a]];n.allOf=c},of=(e,t,n,o)=>{let r=n,i=e._zod.def;r.type="array";let a=t.target==="draft-2020-12"?"prefixItems":"items",s=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",c=i.items.map((p,f)=>ue(p,t,{...o,path:[...o.path,a,f]})),u=i.rest?ue(i.rest,t,{...o,path:[...o.path,s,...t.target==="openapi-3.0"?[i.items.length]:[]]}):null;t.target==="draft-2020-12"?(r.prefixItems=c,u&&(r.items=u)):t.target==="openapi-3.0"?(r.items={anyOf:c},u&&r.items.anyOf.push(u),r.minItems=c.length,u||(r.maxItems=c.length)):(r.items=c,u&&(r.additionalItems=u));let{minimum:l,maximum:d}=e._zod.bag;typeof l=="number"&&(r.minItems=l),typeof d=="number"&&(r.maxItems=d)},af=(e,t,n,o)=>{let r=n,i=e._zod.def;r.type="object";let a=i.keyType,c=a._zod.bag?.patterns;if(i.mode==="loose"&&c&&c.size>0){let l=ue(i.valueType,t,{...o,path:[...o.path,"patternProperties","*"]});r.patternProperties={};for(let d of c)r.patternProperties[d.source]=l}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(r.propertyNames=ue(i.keyType,t,{...o,path:[...o.path,"propertyNames"]})),r.additionalProperties=ue(i.valueType,t,{...o,path:[...o.path,"additionalProperties"]});let u=a._zod.values;if(u){let l=[...u].filter(d=>typeof d=="string"||typeof d=="number");l.length>0&&(r.required=l)}},sf=(e,t,n,o)=>{let r=e._zod.def,i=ue(r.innerType,t,o),a=t.seen.get(e);t.target==="openapi-3.0"?(a.ref=r.innerType,n.nullable=!0):n.anyOf=[i,{type:"null"}]},cf=(e,t,n,o)=>{let r=e._zod.def;ue(r.innerType,t,o);let i=t.seen.get(e);i.ref=r.innerType},uf=(e,t,n,o)=>{let r=e._zod.def;ue(r.innerType,t,o);let i=t.seen.get(e);i.ref=r.innerType,n.default=JSON.parse(JSON.stringify(r.defaultValue))},lf=(e,t,n,o)=>{let r=e._zod.def;ue(r.innerType,t,o);let i=t.seen.get(e);i.ref=r.innerType,t.io==="input"&&(n._prefault=JSON.parse(JSON.stringify(r.defaultValue)))},df=(e,t,n,o)=>{let r=e._zod.def;ue(r.innerType,t,o);let i=t.seen.get(e);i.ref=r.innerType;let a;try{a=r.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=a},pf=(e,t,n,o)=>{let r=e._zod.def,i=t.io==="input"?r.in._zod.def.type==="transform"?r.out:r.in:r.out;ue(i,t,o);let a=t.seen.get(e);a.ref=i},ff=(e,t,n,o)=>{let r=e._zod.def;ue(r.innerType,t,o);let i=t.seen.get(e);i.ref=r.innerType,n.readOnly=!0},mf=(e,t,n,o)=>{let r=e._zod.def;ue(r.innerType,t,o);let i=t.seen.get(e);i.ref=r.innerType},fu=(e,t,n,o)=>{let r=e._zod.def;ue(r.innerType,t,o);let i=t.seen.get(e);i.ref=r.innerType},gf=(e,t,n,o)=>{let r=e._zod.innerType;ue(r,t,o);let i=t.seen.get(e);i.ref=r},du={string:Op,number:Np,boolean:Cp,bigint:Dp,symbol:Rp,null:Ap,undefined:Zp,void:Up,never:Mp,any:Lp,unknown:qp,date:Fp,enum:Vp,literal:Gp,nan:Jp,template_literal:Kp,file:Bp,success:Hp,custom:Wp,function:Yp,transform:Xp,map:Qp,set:ef,array:tf,object:rf,union:pu,intersection:nf,tuple:of,record:af,nullable:sf,nonoptional:cf,default:uf,prefault:lf,catch:df,pipe:pf,readonly:ff,promise:mf,optional:fu,lazy:gf};function Yn(e,t){if("_idmap"in e){let o=e,r=_r({...t,processors:du}),i={};for(let c of o._idmap.entries()){let[u,l]=c;ue(l,r)}let a={},s={registry:o,uri:t?.uri,defs:i};r.external=s;for(let c of o._idmap.entries()){let[u,l]=c;$r(r,l),a[u]=br(r,l)}if(Object.keys(i).length>0){let c=r.target==="draft-2020-12"?"$defs":"definitions";a.__shared={[c]:i}}return{schemas:a}}let n=_r({...t,processors:du});return ue(e,n),$r(n,e),br(n,e)}var mu=class{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(t){this.ctx.counter=t}get seen(){return this.ctx.seen}constructor(t){let n=t?.target??"draft-2020-12";n==="draft-4"&&(n="draft-04"),n==="draft-7"&&(n="draft-07"),this.ctx=_r({processors:du,target:n,...t?.metadata&&{metadata:t.metadata},...t?.unrepresentable&&{unrepresentable:t.unrepresentable},...t?.override&&{override:t.override},...t?.io&&{io:t.io}})}process(t,n={path:[],schemaPath:[]}){return ue(t,this.ctx,n)}emit(t,n){n&&(n.cycles&&(this.ctx.cycles=n.cycles),n.reused&&(this.ctx.reused=n.reused),n.external&&(this.ctx.external=n.external)),$r(this.ctx,t);let o=br(this.ctx,t),{"~standard":r,...i}=o;return i}};var Vy={};function Xn(e){return!!e._zod}function xr(e,t){return Xn(e)?Mr(e,t):e.safeParse(t)}function gu(e){if(!e)return;let t;if(Xn(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function Ky(e){if(Xn(e)){let i=e._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let n=e._def;if(n){if(n.value!==void 0)return n.value;if(Array.isArray(n.values)&&n.values.length>0)return n.values[0]}let o=e.value;if(o!==void 0)return o}var Q={};Gt(Q,{$brand:()=>Ho,$input:()=>zc,$output:()=>Sc,NEVER:()=>Ga,TimePrecision:()=>jc,ZodAny:()=>Rf,ZodArray:()=>Mf,ZodBase64:()=>Du,ZodBase64URL:()=>Ru,ZodBigInt:()=>oo,ZodBigIntFormat:()=>Uu,ZodBoolean:()=>no,ZodCIDRv4:()=>Nu,ZodCIDRv6:()=>Cu,ZodCUID:()=>zu,ZodCUID2:()=>Iu,ZodCatch:()=>am,ZodCodec:()=>Gu,ZodCustom:()=>Ki,ZodCustomStringFormat:()=>to,ZodDate:()=>qi,ZodDefault:()=>em,ZodDiscriminatedUnion:()=>qf,ZodE164:()=>Au,ZodEmail:()=>ku,ZodEmoji:()=>wu,ZodEnum:()=>Qn,ZodError:()=>Fz,ZodExactOptional:()=>Yf,ZodFile:()=>Hf,ZodFirstPartyTypeKind:()=>ym,ZodFunction:()=>gm,ZodGUID:()=>Zi,ZodIPv4:()=>Eu,ZodIPv6:()=>Ou,ZodISODate:()=>yu,ZodISODateTime:()=>vu,ZodISODuration:()=>$u,ZodISOTime:()=>_u,ZodIntersection:()=>Ff,ZodIssueCode:()=>Gz,ZodJWT:()=>Zu,ZodKSUID:()=>ju,ZodLazy:()=>pm,ZodLiteral:()=>Bf,ZodMAC:()=>Of,ZodMap:()=>Jf,ZodNaN:()=>cm,ZodNanoID:()=>Su,ZodNever:()=>Zf,ZodNonOptional:()=>Fu,ZodNull:()=>Df,ZodNullable:()=>Qf,ZodNumber:()=>ro,ZodNumberFormat:()=>en,ZodObject:()=>Fi,ZodOptional:()=>qu,ZodPipe:()=>Vu,ZodPrefault:()=>rm,ZodPromise:()=>mm,ZodReadonly:()=>um,ZodRealError:()=>tt,ZodRecord:()=>Ji,ZodSet:()=>Kf,ZodString:()=>eo,ZodStringFormat:()=>fe,ZodSuccess:()=>im,ZodSymbol:()=>Nf,ZodTemplateLiteral:()=>dm,ZodTransform:()=>Wf,ZodTuple:()=>Vf,ZodType:()=>J,ZodULID:()=>Pu,ZodURL:()=>Li,ZodUUID:()=>Dt,ZodUndefined:()=>Cf,ZodUnion:()=>Vi,ZodUnknown:()=>Af,ZodVoid:()=>Uf,ZodXID:()=>Tu,ZodXor:()=>Lf,_ZodString:()=>xu,_default:()=>tm,_function:()=>W_,any:()=>O_,array:()=>X,base64:()=>g_,base64url:()=>h_,bigint:()=>I_,boolean:()=>xe,catch:()=>sm,check:()=>Y_,cidrv4:()=>f_,cidrv6:()=>m_,clone:()=>Te,codec:()=>K_,coerce:()=>_m,config:()=>be,core:()=>ut,cuid:()=>i_,cuid2:()=>a_,custom:()=>Ju,date:()=>C_,decode:()=>Sf,decodeAsync:()=>If,describe:()=>X_,discriminatedUnion:()=>Gi,e164:()=>v_,email:()=>Hy,emoji:()=>n_,encode:()=>wf,encodeAsync:()=>zf,endsWith:()=>Kr,enum:()=>Oe,exactOptional:()=>Xf,file:()=>F_,flattenError:()=>On,float32:()=>k_,float64:()=>w_,formatError:()=>Nn,fromJSONSchema:()=>o$,function:()=>W_,getErrorMap:()=>Kz,globalRegistry:()=>ze,gt:()=>St,gte:()=>je,guid:()=>Wy,hash:()=>x_,hex:()=>b_,hostname:()=>$_,httpUrl:()=>r_,includes:()=>Gr,instanceof:()=>e$,int:()=>bu,int32:()=>S_,int64:()=>P_,intersection:()=>ao,ipv4:()=>l_,ipv6:()=>p_,iso:()=>kr,json:()=>r$,jwt:()=>y_,keyof:()=>D_,ksuid:()=>u_,lazy:()=>fm,length:()=>yr,literal:()=>A,locales:()=>Jn,looseObject:()=>Ee,looseRecord:()=>U_,lowercase:()=>Fr,lt:()=>wt,lte:()=>Ke,mac:()=>d_,map:()=>M_,maxLength:()=>vr,maxSize:()=>Xt,meta:()=>Q_,mime:()=>Br,minLength:()=>Ct,minSize:()=>zt,multipleOf:()=>Yt,nan:()=>J_,nanoid:()=>o_,nativeEnum:()=>q_,negative:()=>Ni,never:()=>Mu,nonnegative:()=>Di,nonoptional:()=>om,nonpositive:()=>Ci,normalize:()=>Hr,null:()=>io,nullable:()=>Ui,nullish:()=>V_,number:()=>ce,object:()=>O,optional:()=>ye,overwrite:()=>mt,parse:()=>$f,parseAsync:()=>bf,partialRecord:()=>Z_,pipe:()=>Mi,positive:()=>Oi,prefault:()=>nm,preprocess:()=>Bi,prettifyError:()=>Wa,promise:()=>H_,property:()=>Ri,readonly:()=>lm,record:()=>he,refine:()=>hm,regex:()=>qr,regexes:()=>et,registry:()=>di,safeDecode:()=>Tf,safeDecodeAsync:()=>Ef,safeEncode:()=>Pf,safeEncodeAsync:()=>jf,safeParse:()=>xf,safeParseAsync:()=>kf,set:()=>L_,setErrorMap:()=>Jz,size:()=>hr,slugify:()=>Hn,startsWith:()=>Jr,strictObject:()=>R_,string:()=>y,stringFormat:()=>__,stringbool:()=>t$,success:()=>G_,superRefine:()=>vm,symbol:()=>j_,templateLiteral:()=>B_,toJSONSchema:()=>Yn,toLowerCase:()=>Yr,toUpperCase:()=>Xr,transform:()=>Lu,treeifyError:()=>Ha,trim:()=>Wr,tuple:()=>Gf,uint32:()=>z_,uint64:()=>T_,ulid:()=>s_,undefined:()=>E_,union:()=>de,unknown:()=>me,uppercase:()=>Vr,url:()=>t_,util:()=>k,uuid:()=>Yy,uuidv4:()=>Xy,uuidv6:()=>Qy,uuidv7:()=>e_,void:()=>N_,xid:()=>c_,xor:()=>A_});var Ai={};Gt(Ai,{ZodAny:()=>Rf,ZodArray:()=>Mf,ZodBase64:()=>Du,ZodBase64URL:()=>Ru,ZodBigInt:()=>oo,ZodBigIntFormat:()=>Uu,ZodBoolean:()=>no,ZodCIDRv4:()=>Nu,ZodCIDRv6:()=>Cu,ZodCUID:()=>zu,ZodCUID2:()=>Iu,ZodCatch:()=>am,ZodCodec:()=>Gu,ZodCustom:()=>Ki,ZodCustomStringFormat:()=>to,ZodDate:()=>qi,ZodDefault:()=>em,ZodDiscriminatedUnion:()=>qf,ZodE164:()=>Au,ZodEmail:()=>ku,ZodEmoji:()=>wu,ZodEnum:()=>Qn,ZodExactOptional:()=>Yf,ZodFile:()=>Hf,ZodFunction:()=>gm,ZodGUID:()=>Zi,ZodIPv4:()=>Eu,ZodIPv6:()=>Ou,ZodIntersection:()=>Ff,ZodJWT:()=>Zu,ZodKSUID:()=>ju,ZodLazy:()=>pm,ZodLiteral:()=>Bf,ZodMAC:()=>Of,ZodMap:()=>Jf,ZodNaN:()=>cm,ZodNanoID:()=>Su,ZodNever:()=>Zf,ZodNonOptional:()=>Fu,ZodNull:()=>Df,ZodNullable:()=>Qf,ZodNumber:()=>ro,ZodNumberFormat:()=>en,ZodObject:()=>Fi,ZodOptional:()=>qu,ZodPipe:()=>Vu,ZodPrefault:()=>rm,ZodPromise:()=>mm,ZodReadonly:()=>um,ZodRecord:()=>Ji,ZodSet:()=>Kf,ZodString:()=>eo,ZodStringFormat:()=>fe,ZodSuccess:()=>im,ZodSymbol:()=>Nf,ZodTemplateLiteral:()=>dm,ZodTransform:()=>Wf,ZodTuple:()=>Vf,ZodType:()=>J,ZodULID:()=>Pu,ZodURL:()=>Li,ZodUUID:()=>Dt,ZodUndefined:()=>Cf,ZodUnion:()=>Vi,ZodUnknown:()=>Af,ZodVoid:()=>Uf,ZodXID:()=>Tu,ZodXor:()=>Lf,_ZodString:()=>xu,_default:()=>tm,_function:()=>W_,any:()=>O_,array:()=>X,base64:()=>g_,base64url:()=>h_,bigint:()=>I_,boolean:()=>xe,catch:()=>sm,check:()=>Y_,cidrv4:()=>f_,cidrv6:()=>m_,codec:()=>K_,cuid:()=>i_,cuid2:()=>a_,custom:()=>Ju,date:()=>C_,describe:()=>X_,discriminatedUnion:()=>Gi,e164:()=>v_,email:()=>Hy,emoji:()=>n_,enum:()=>Oe,exactOptional:()=>Xf,file:()=>F_,float32:()=>k_,float64:()=>w_,function:()=>W_,guid:()=>Wy,hash:()=>x_,hex:()=>b_,hostname:()=>$_,httpUrl:()=>r_,instanceof:()=>e$,int:()=>bu,int32:()=>S_,int64:()=>P_,intersection:()=>ao,ipv4:()=>l_,ipv6:()=>p_,json:()=>r$,jwt:()=>y_,keyof:()=>D_,ksuid:()=>u_,lazy:()=>fm,literal:()=>A,looseObject:()=>Ee,looseRecord:()=>U_,mac:()=>d_,map:()=>M_,meta:()=>Q_,nan:()=>J_,nanoid:()=>o_,nativeEnum:()=>q_,never:()=>Mu,nonoptional:()=>om,null:()=>io,nullable:()=>Ui,nullish:()=>V_,number:()=>ce,object:()=>O,optional:()=>ye,partialRecord:()=>Z_,pipe:()=>Mi,prefault:()=>nm,preprocess:()=>Bi,promise:()=>H_,readonly:()=>lm,record:()=>he,refine:()=>hm,set:()=>L_,strictObject:()=>R_,string:()=>y,stringFormat:()=>__,stringbool:()=>t$,success:()=>G_,superRefine:()=>vm,symbol:()=>j_,templateLiteral:()=>B_,transform:()=>Lu,tuple:()=>Gf,uint32:()=>z_,uint64:()=>T_,ulid:()=>s_,undefined:()=>E_,union:()=>de,unknown:()=>me,url:()=>t_,uuid:()=>Yy,uuidv4:()=>Xy,uuidv6:()=>Qy,uuidv7:()=>e_,void:()=>N_,xid:()=>c_,xor:()=>A_});var hu={};Gt(hu,{endsWith:()=>Kr,gt:()=>St,gte:()=>je,includes:()=>Gr,length:()=>yr,lowercase:()=>Fr,lt:()=>wt,lte:()=>Ke,maxLength:()=>vr,maxSize:()=>Xt,mime:()=>Br,minLength:()=>Ct,minSize:()=>zt,multipleOf:()=>Yt,negative:()=>Ni,nonnegative:()=>Di,nonpositive:()=>Ci,normalize:()=>Hr,overwrite:()=>mt,positive:()=>Oi,property:()=>Ri,regex:()=>qr,size:()=>hr,slugify:()=>Hn,startsWith:()=>Jr,toLowerCase:()=>Yr,toUpperCase:()=>Xr,trim:()=>Wr,uppercase:()=>Vr});var kr={};Gt(kr,{ZodISODate:()=>yu,ZodISODateTime:()=>vu,ZodISODuration:()=>$u,ZodISOTime:()=>_u,date:()=>vf,datetime:()=>hf,duration:()=>_f,time:()=>yf});var vu=m("ZodISODateTime",(e,t)=>{Ss.init(e,t),fe.init(e,t)});function hf(e){return Ec(vu,e)}var yu=m("ZodISODate",(e,t)=>{zs.init(e,t),fe.init(e,t)});function vf(e){return Oc(yu,e)}var _u=m("ZodISOTime",(e,t)=>{Is.init(e,t),fe.init(e,t)});function yf(e){return Nc(_u,e)}var $u=m("ZodISODuration",(e,t)=>{Ps.init(e,t),fe.init(e,t)});function _f(e){return Cc($u,e)}var By=(e,t)=>{ri.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>Nn(e,n)},flatten:{value:n=>On(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,Tn,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,Tn,2)}},isEmpty:{get(){return e.issues.length===0}}})},Fz=m("ZodError",By),tt=m("ZodError",By,{Parent:Error});var $f=Cn(tt),bf=Rn(tt),xf=Zn(tt),kf=Un(tt),wf=Ya(tt),Sf=Xa(tt),zf=Qa(tt),If=es(tt),Pf=ts(tt),Tf=rs(tt),jf=ns(tt),Ef=os(tt);var J=m("ZodType",(e,t)=>(q.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Wn(e,"input"),output:Wn(e,"output")}}),e.toJSONSchema=Ep(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(k.mergeDefs(t,{checks:[...t.checks??[],...n.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0}),e.with=e.check,e.clone=(n,o)=>Te(e,n,o),e.brand=()=>e,e.register=((n,o)=>(n.add(e,o),e)),e.parse=(n,o)=>$f(e,n,o,{callee:e.parse}),e.safeParse=(n,o)=>xf(e,n,o),e.parseAsync=async(n,o)=>bf(e,n,o,{callee:e.parseAsync}),e.safeParseAsync=async(n,o)=>kf(e,n,o),e.spa=e.safeParseAsync,e.encode=(n,o)=>wf(e,n,o),e.decode=(n,o)=>Sf(e,n,o),e.encodeAsync=async(n,o)=>zf(e,n,o),e.decodeAsync=async(n,o)=>If(e,n,o),e.safeEncode=(n,o)=>Pf(e,n,o),e.safeDecode=(n,o)=>Tf(e,n,o),e.safeEncodeAsync=async(n,o)=>jf(e,n,o),e.safeDecodeAsync=async(n,o)=>Ef(e,n,o),e.refine=(n,o)=>e.check(hm(n,o)),e.superRefine=n=>e.check(vm(n)),e.overwrite=n=>e.check(mt(n)),e.optional=()=>ye(e),e.exactOptional=()=>Xf(e),e.nullable=()=>Ui(e),e.nullish=()=>ye(Ui(e)),e.nonoptional=n=>om(e,n),e.array=()=>X(e),e.or=n=>de([e,n]),e.and=n=>ao(e,n),e.transform=n=>Mi(e,Lu(n)),e.default=n=>tm(e,n),e.prefault=n=>nm(e,n),e.catch=n=>sm(e,n),e.pipe=n=>Mi(e,n),e.readonly=()=>lm(e),e.describe=n=>{let o=e.clone();return ze.add(o,{description:n}),o},Object.defineProperty(e,"description",{get(){return ze.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return ze.get(e);let o=e.clone();return ze.add(o,n[0]),o},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=n=>n(e),e)),xu=m("_ZodString",(e,t)=>{gr.init(e,t),J.init(e,t),e._zod.processJSONSchema=(o,r,i)=>Op(e,o,r,i);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...o)=>e.check(qr(...o)),e.includes=(...o)=>e.check(Gr(...o)),e.startsWith=(...o)=>e.check(Jr(...o)),e.endsWith=(...o)=>e.check(Kr(...o)),e.min=(...o)=>e.check(Ct(...o)),e.max=(...o)=>e.check(vr(...o)),e.length=(...o)=>e.check(yr(...o)),e.nonempty=(...o)=>e.check(Ct(1,...o)),e.lowercase=o=>e.check(Fr(o)),e.uppercase=o=>e.check(Vr(o)),e.trim=()=>e.check(Wr()),e.normalize=(...o)=>e.check(Hr(...o)),e.toLowerCase=()=>e.check(Yr()),e.toUpperCase=()=>e.check(Xr()),e.slugify=()=>e.check(Hn())}),eo=m("ZodString",(e,t)=>{gr.init(e,t),xu.init(e,t),e.email=n=>e.check(pi(ku,n)),e.url=n=>e.check(Bn(Li,n)),e.jwt=n=>e.check(Ei(Zu,n)),e.emoji=n=>e.check(vi(wu,n)),e.guid=n=>e.check(Kn(Zi,n)),e.uuid=n=>e.check(fi(Dt,n)),e.uuidv4=n=>e.check(mi(Dt,n)),e.uuidv6=n=>e.check(gi(Dt,n)),e.uuidv7=n=>e.check(hi(Dt,n)),e.nanoid=n=>e.check(yi(Su,n)),e.guid=n=>e.check(Kn(Zi,n)),e.cuid=n=>e.check(_i(zu,n)),e.cuid2=n=>e.check($i(Iu,n)),e.ulid=n=>e.check(bi(Pu,n)),e.base64=n=>e.check(Pi(Du,n)),e.base64url=n=>e.check(Ti(Ru,n)),e.xid=n=>e.check(xi(Tu,n)),e.ksuid=n=>e.check(ki(ju,n)),e.ipv4=n=>e.check(wi(Eu,n)),e.ipv6=n=>e.check(Si(Ou,n)),e.cidrv4=n=>e.check(zi(Nu,n)),e.cidrv6=n=>e.check(Ii(Cu,n)),e.e164=n=>e.check(ji(Au,n)),e.datetime=n=>e.check(hf(n)),e.date=n=>e.check(vf(n)),e.time=n=>e.check(yf(n)),e.duration=n=>e.check(_f(n))});function y(e){return Ic(eo,e)}var fe=m("ZodStringFormat",(e,t)=>{le.init(e,t),xu.init(e,t)}),ku=m("ZodEmail",(e,t)=>{hs.init(e,t),fe.init(e,t)});function Hy(e){return pi(ku,e)}var Zi=m("ZodGUID",(e,t)=>{ms.init(e,t),fe.init(e,t)});function Wy(e){return Kn(Zi,e)}var Dt=m("ZodUUID",(e,t)=>{gs.init(e,t),fe.init(e,t)});function Yy(e){return fi(Dt,e)}function Xy(e){return mi(Dt,e)}function Qy(e){return gi(Dt,e)}function e_(e){return hi(Dt,e)}var Li=m("ZodURL",(e,t)=>{vs.init(e,t),fe.init(e,t)});function t_(e){return Bn(Li,e)}function r_(e){return Bn(Li,{protocol:/^https?$/,hostname:et.domain,...k.normalizeParams(e)})}var wu=m("ZodEmoji",(e,t)=>{ys.init(e,t),fe.init(e,t)});function n_(e){return vi(wu,e)}var Su=m("ZodNanoID",(e,t)=>{_s.init(e,t),fe.init(e,t)});function o_(e){return yi(Su,e)}var zu=m("ZodCUID",(e,t)=>{$s.init(e,t),fe.init(e,t)});function i_(e){return _i(zu,e)}var Iu=m("ZodCUID2",(e,t)=>{bs.init(e,t),fe.init(e,t)});function a_(e){return $i(Iu,e)}var Pu=m("ZodULID",(e,t)=>{xs.init(e,t),fe.init(e,t)});function s_(e){return bi(Pu,e)}var Tu=m("ZodXID",(e,t)=>{ks.init(e,t),fe.init(e,t)});function c_(e){return xi(Tu,e)}var ju=m("ZodKSUID",(e,t)=>{ws.init(e,t),fe.init(e,t)});function u_(e){return ki(ju,e)}var Eu=m("ZodIPv4",(e,t)=>{Ts.init(e,t),fe.init(e,t)});function l_(e){return wi(Eu,e)}var Of=m("ZodMAC",(e,t)=>{Es.init(e,t),fe.init(e,t)});function d_(e){return Tc(Of,e)}var Ou=m("ZodIPv6",(e,t)=>{js.init(e,t),fe.init(e,t)});function p_(e){return Si(Ou,e)}var Nu=m("ZodCIDRv4",(e,t)=>{Os.init(e,t),fe.init(e,t)});function f_(e){return zi(Nu,e)}var Cu=m("ZodCIDRv6",(e,t)=>{Ns.init(e,t),fe.init(e,t)});function m_(e){return Ii(Cu,e)}var Du=m("ZodBase64",(e,t)=>{Cs.init(e,t),fe.init(e,t)});function g_(e){return Pi(Du,e)}var Ru=m("ZodBase64URL",(e,t)=>{Ds.init(e,t),fe.init(e,t)});function h_(e){return Ti(Ru,e)}var Au=m("ZodE164",(e,t)=>{Rs.init(e,t),fe.init(e,t)});function v_(e){return ji(Au,e)}var Zu=m("ZodJWT",(e,t)=>{As.init(e,t),fe.init(e,t)});function y_(e){return Ei(Zu,e)}var to=m("ZodCustomStringFormat",(e,t)=>{Zs.init(e,t),fe.init(e,t)});function __(e,t,n={}){return Qr(to,e,t,n)}function $_(e){return Qr(to,"hostname",et.hostname,e)}function b_(e){return Qr(to,"hex",et.hex,e)}function x_(e,t){let n=t?.enc??"hex",o=`${e}_${n}`,r=et[o];if(!r)throw new Error(`Unrecognized hash format: ${o}`);return Qr(to,o,r,t)}var ro=m("ZodNumber",(e,t)=>{ai.init(e,t),J.init(e,t),e._zod.processJSONSchema=(o,r,i)=>Np(e,o,r,i),e.gt=(o,r)=>e.check(St(o,r)),e.gte=(o,r)=>e.check(je(o,r)),e.min=(o,r)=>e.check(je(o,r)),e.lt=(o,r)=>e.check(wt(o,r)),e.lte=(o,r)=>e.check(Ke(o,r)),e.max=(o,r)=>e.check(Ke(o,r)),e.int=o=>e.check(bu(o)),e.safe=o=>e.check(bu(o)),e.positive=o=>e.check(St(0,o)),e.nonnegative=o=>e.check(je(0,o)),e.negative=o=>e.check(wt(0,o)),e.nonpositive=o=>e.check(Ke(0,o)),e.multipleOf=(o,r)=>e.check(Yt(o,r)),e.step=(o,r)=>e.check(Yt(o,r)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function ce(e){return Dc(ro,e)}var en=m("ZodNumberFormat",(e,t)=>{Us.init(e,t),ro.init(e,t)});function bu(e){return Ac(en,e)}function k_(e){return Zc(en,e)}function w_(e){return Uc(en,e)}function S_(e){return Mc(en,e)}function z_(e){return Lc(en,e)}var no=m("ZodBoolean",(e,t)=>{qn.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Cp(e,n,o,r)});function xe(e){return qc(no,e)}var oo=m("ZodBigInt",(e,t)=>{si.init(e,t),J.init(e,t),e._zod.processJSONSchema=(o,r,i)=>Dp(e,o,r,i),e.gte=(o,r)=>e.check(je(o,r)),e.min=(o,r)=>e.check(je(o,r)),e.gt=(o,r)=>e.check(St(o,r)),e.gte=(o,r)=>e.check(je(o,r)),e.min=(o,r)=>e.check(je(o,r)),e.lt=(o,r)=>e.check(wt(o,r)),e.lte=(o,r)=>e.check(Ke(o,r)),e.max=(o,r)=>e.check(Ke(o,r)),e.positive=o=>e.check(St(BigInt(0),o)),e.negative=o=>e.check(wt(BigInt(0),o)),e.nonpositive=o=>e.check(Ke(BigInt(0),o)),e.nonnegative=o=>e.check(je(BigInt(0),o)),e.multipleOf=(o,r)=>e.check(Yt(o,r));let n=e._zod.bag;e.minValue=n.minimum??null,e.maxValue=n.maximum??null,e.format=n.format??null});function I_(e){return Vc(oo,e)}var Uu=m("ZodBigIntFormat",(e,t)=>{Ms.init(e,t),oo.init(e,t)});function P_(e){return Jc(Uu,e)}function T_(e){return Kc(Uu,e)}var Nf=m("ZodSymbol",(e,t)=>{Ls.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Rp(e,n,o,r)});function j_(e){return Bc(Nf,e)}var Cf=m("ZodUndefined",(e,t)=>{qs.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Zp(e,n,o,r)});function E_(e){return Hc(Cf,e)}var Df=m("ZodNull",(e,t)=>{Fs.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Ap(e,n,o,r)});function io(e){return Wc(Df,e)}var Rf=m("ZodAny",(e,t)=>{Vs.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Lp(e,n,o,r)});function O_(){return Yc(Rf)}var Af=m("ZodUnknown",(e,t)=>{Gs.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>qp(e,n,o,r)});function me(){return Xc(Af)}var Zf=m("ZodNever",(e,t)=>{Js.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Mp(e,n,o,r)});function Mu(e){return Qc(Zf,e)}var Uf=m("ZodVoid",(e,t)=>{Ks.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Up(e,n,o,r)});function N_(e){return eu(Uf,e)}var qi=m("ZodDate",(e,t)=>{Bs.init(e,t),J.init(e,t),e._zod.processJSONSchema=(o,r,i)=>Fp(e,o,r,i),e.min=(o,r)=>e.check(je(o,r)),e.max=(o,r)=>e.check(Ke(o,r));let n=e._zod.bag;e.minDate=n.minimum?new Date(n.minimum):null,e.maxDate=n.maximum?new Date(n.maximum):null});function C_(e){return tu(qi,e)}var Mf=m("ZodArray",(e,t)=>{Hs.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>tf(e,n,o,r),e.element=t.element,e.min=(n,o)=>e.check(Ct(n,o)),e.nonempty=n=>e.check(Ct(1,n)),e.max=(n,o)=>e.check(vr(n,o)),e.length=(n,o)=>e.check(yr(n,o)),e.unwrap=()=>e.element});function X(e,t){return jp(Mf,e,t)}function D_(e){let t=e._zod.def.shape;return Oe(Object.keys(t))}var Fi=m("ZodObject",(e,t)=>{Tp.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>rf(e,n,o,r),k.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>Oe(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:me()}),e.loose=()=>e.clone({...e._zod.def,catchall:me()}),e.strict=()=>e.clone({...e._zod.def,catchall:Mu()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>k.extend(e,n),e.safeExtend=n=>k.safeExtend(e,n),e.merge=n=>k.merge(e,n),e.pick=n=>k.pick(e,n),e.omit=n=>k.omit(e,n),e.partial=(...n)=>k.partial(qu,e,n[0]),e.required=(...n)=>k.required(Fu,e,n[0])});function O(e,t){let n={type:"object",shape:e??{},...k.normalizeParams(t)};return new Fi(n)}function R_(e,t){return new Fi({type:"object",shape:e,catchall:Mu(),...k.normalizeParams(t)})}function Ee(e,t){return new Fi({type:"object",shape:e,catchall:me(),...k.normalizeParams(t)})}var Vi=m("ZodUnion",(e,t)=>{Fn.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>pu(e,n,o,r),e.options=t.options});function de(e,t){return new Vi({type:"union",options:e,...k.normalizeParams(t)})}var Lf=m("ZodXor",(e,t)=>{Vi.init(e,t),Ws.init(e,t),e._zod.processJSONSchema=(n,o,r)=>pu(e,n,o,r),e.options=t.options});function A_(e,t){return new Lf({type:"union",options:e,inclusive:!1,...k.normalizeParams(t)})}var qf=m("ZodDiscriminatedUnion",(e,t)=>{Vi.init(e,t),Ys.init(e,t)});function Gi(e,t,n){return new qf({type:"union",options:t,discriminator:e,...k.normalizeParams(n)})}var Ff=m("ZodIntersection",(e,t)=>{Xs.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>nf(e,n,o,r)});function ao(e,t){return new Ff({type:"intersection",left:e,right:t})}var Vf=m("ZodTuple",(e,t)=>{ci.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>of(e,n,o,r),e.rest=n=>e.clone({...e._zod.def,rest:n})});function Gf(e,t,n){let o=t instanceof q,r=o?n:t,i=o?t:null;return new Vf({type:"tuple",items:e,rest:i,...k.normalizeParams(r)})}var Ji=m("ZodRecord",(e,t)=>{Qs.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>af(e,n,o,r),e.keyType=t.keyType,e.valueType=t.valueType});function he(e,t,n){return new Ji({type:"record",keyType:e,valueType:t,...k.normalizeParams(n)})}function Z_(e,t,n){let o=Te(e);return o._zod.values=void 0,new Ji({type:"record",keyType:o,valueType:t,...k.normalizeParams(n)})}function U_(e,t,n){return new Ji({type:"record",keyType:e,valueType:t,mode:"loose",...k.normalizeParams(n)})}var Jf=m("ZodMap",(e,t)=>{ec.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Qp(e,n,o,r),e.keyType=t.keyType,e.valueType=t.valueType,e.min=(...n)=>e.check(zt(...n)),e.nonempty=n=>e.check(zt(1,n)),e.max=(...n)=>e.check(Xt(...n)),e.size=(...n)=>e.check(hr(...n))});function M_(e,t,n){return new Jf({type:"map",keyType:e,valueType:t,...k.normalizeParams(n)})}var Kf=m("ZodSet",(e,t)=>{tc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>ef(e,n,o,r),e.min=(...n)=>e.check(zt(...n)),e.nonempty=n=>e.check(zt(1,n)),e.max=(...n)=>e.check(Xt(...n)),e.size=(...n)=>e.check(hr(...n))});function L_(e,t){return new Kf({type:"set",valueType:e,...k.normalizeParams(t)})}var Qn=m("ZodEnum",(e,t)=>{rc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(o,r,i)=>Vp(e,o,r,i),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(o,r)=>{let i={};for(let a of o)if(n.has(a))i[a]=t.entries[a];else throw new Error(`Key ${a} not found in enum`);return new Qn({...t,checks:[],...k.normalizeParams(r),entries:i})},e.exclude=(o,r)=>{let i={...t.entries};for(let a of o)if(n.has(a))delete i[a];else throw new Error(`Key ${a} not found in enum`);return new Qn({...t,checks:[],...k.normalizeParams(r),entries:i})}});function Oe(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(o=>[o,o])):e;return new Qn({type:"enum",entries:n,...k.normalizeParams(t)})}function q_(e,t){return new Qn({type:"enum",entries:e,...k.normalizeParams(t)})}var Bf=m("ZodLiteral",(e,t)=>{nc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Gp(e,n,o,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function A(e,t){return new Bf({type:"literal",values:Array.isArray(e)?e:[e],...k.normalizeParams(t)})}var Hf=m("ZodFile",(e,t)=>{oc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Bp(e,n,o,r),e.min=(n,o)=>e.check(zt(n,o)),e.max=(n,o)=>e.check(Xt(n,o)),e.mime=(n,o)=>e.check(Br(Array.isArray(n)?n:[n],o))});function F_(e){return ou(Hf,e)}var Wf=m("ZodTransform",(e,t)=>{ic.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Xp(e,n,o,r),e._zod.parse=(n,o)=>{if(o.direction==="backward")throw new lr(e.constructor.name);n.addIssue=i=>{if(typeof i=="string")n.issues.push(k.issue(i,n.value,t));else{let a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=n.value),a.inst??(a.inst=e),n.issues.push(k.issue(a))}};let r=t.transform(n.value,n);return r instanceof Promise?r.then(i=>(n.value=i,n)):(n.value=r,n)}});function Lu(e){return new Wf({type:"transform",transform:e})}var qu=m("ZodOptional",(e,t)=>{ui.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>fu(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function ye(e){return new qu({type:"optional",innerType:e})}var Yf=m("ZodExactOptional",(e,t)=>{ac.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>fu(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function Xf(e){return new Yf({type:"optional",innerType:e})}var Qf=m("ZodNullable",(e,t)=>{sc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>sf(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function Ui(e){return new Qf({type:"nullable",innerType:e})}function V_(e){return ye(Ui(e))}var em=m("ZodDefault",(e,t)=>{cc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>uf(e,n,o,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function tm(e,t){return new em({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():k.shallowClone(t)}})}var rm=m("ZodPrefault",(e,t)=>{uc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>lf(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function nm(e,t){return new rm({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():k.shallowClone(t)}})}var Fu=m("ZodNonOptional",(e,t)=>{lc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>cf(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function om(e,t){return new Fu({type:"nonoptional",innerType:e,...k.normalizeParams(t)})}var im=m("ZodSuccess",(e,t)=>{dc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Hp(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function G_(e){return new im({type:"success",innerType:e})}var am=m("ZodCatch",(e,t)=>{pc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>df(e,n,o,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function sm(e,t){return new am({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var cm=m("ZodNaN",(e,t)=>{fc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Jp(e,n,o,r)});function J_(e){return nu(cm,e)}var Vu=m("ZodPipe",(e,t)=>{mc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>pf(e,n,o,r),e.in=t.in,e.out=t.out});function Mi(e,t){return new Vu({type:"pipe",in:e,out:t})}var Gu=m("ZodCodec",(e,t)=>{Vu.init(e,t),Vn.init(e,t)});function K_(e,t,n){return new Gu({type:"pipe",in:e,out:t,transform:n.decode,reverseTransform:n.encode})}var um=m("ZodReadonly",(e,t)=>{gc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>ff(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function lm(e){return new um({type:"readonly",innerType:e})}var dm=m("ZodTemplateLiteral",(e,t)=>{hc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Kp(e,n,o,r)});function B_(e,t){return new dm({type:"template_literal",parts:e,...k.normalizeParams(t)})}var pm=m("ZodLazy",(e,t)=>{_c.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>gf(e,n,o,r),e.unwrap=()=>e._zod.def.getter()});function fm(e){return new pm({type:"lazy",getter:e})}var mm=m("ZodPromise",(e,t)=>{yc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>mf(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function H_(e){return new mm({type:"promise",innerType:e})}var gm=m("ZodFunction",(e,t)=>{vc.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Yp(e,n,o,r)});function W_(e){return new gm({type:"function",input:Array.isArray(e?.input)?Gf(e?.input):e?.input??X(me()),output:e?.output??me()})}var Ki=m("ZodCustom",(e,t)=>{$c.init(e,t),J.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Wp(e,n,o,r)});function Y_(e){let t=new pe({check:"custom"});return t._zod.check=e,t}function Ju(e,t){return iu(Ki,e??(()=>!0),t)}function hm(e,t={}){return au(Ki,e,t)}function vm(e){return su(e)}var X_=cu,Q_=uu;function e$(e,t={}){let n=new Ki({type:"custom",check:"custom",fn:o=>o instanceof e,abort:!0,...k.normalizeParams(t)});return n._zod.bag.Class=e,n._zod.check=o=>{o.value instanceof e||o.issues.push({code:"invalid_type",expected:e.name,input:o.value,inst:n,path:[...n._zod.def.path??[]]})},n}var t$=(...e)=>lu({Codec:Gu,Boolean:no,String:eo},...e);function r$(e){let t=fm(()=>de([y(e),ce(),xe(),io(),X(t),he(y(),t)]));return t}function Bi(e,t){return Mi(Lu(e),t)}var Gz={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function Jz(e){be({customError:e})}function Kz(){return be().customError}var ym;ym||(ym={});var T={...Ai,...hu,iso:kr},Bz=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function Hz(e,t){let n=e.$schema;return n==="https://json-schema.org/draft/2020-12/schema"?"draft-2020-12":n==="http://json-schema.org/draft-07/schema#"?"draft-7":n==="http://json-schema.org/draft-04/schema#"?"draft-4":t??"draft-2020-12"}function Wz(e,t){if(!e.startsWith("#"))throw new Error("External $ref is not supported, only local refs (#/...) are allowed");let n=e.slice(1).split("/").filter(Boolean);if(n.length===0)return t.rootSchema;let o=t.version==="draft-2020-12"?"$defs":"definitions";if(n[0]===o){let r=n[1];if(!r||!t.defs[r])throw new Error(`Reference not found: ${e}`);return t.defs[r]}throw new Error(`Reference not found: ${e}`)}function n$(e,t){if(e.not!==void 0){if(typeof e.not=="object"&&Object.keys(e.not).length===0)return T.never();throw new Error("not is not supported in Zod (except { not: {} } for never)")}if(e.unevaluatedItems!==void 0)throw new Error("unevaluatedItems is not supported");if(e.unevaluatedProperties!==void 0)throw new Error("unevaluatedProperties is not supported");if(e.if!==void 0||e.then!==void 0||e.else!==void 0)throw new Error("Conditional schemas (if/then/else) are not supported");if(e.dependentSchemas!==void 0||e.dependentRequired!==void 0)throw new Error("dependentSchemas and dependentRequired are not supported");if(e.$ref){let r=e.$ref;if(t.refs.has(r))return t.refs.get(r);if(t.processing.has(r))return T.lazy(()=>{if(!t.refs.has(r))throw new Error(`Circular reference not resolved: ${r}`);return t.refs.get(r)});t.processing.add(r);let i=Wz(r,t),a=Le(i,t);return t.refs.set(r,a),t.processing.delete(r),a}if(e.enum!==void 0){let r=e.enum;if(t.version==="openapi-3.0"&&e.nullable===!0&&r.length===1&&r[0]===null)return T.null();if(r.length===0)return T.never();if(r.length===1)return T.literal(r[0]);if(r.every(a=>typeof a=="string"))return T.enum(r);let i=r.map(a=>T.literal(a));return i.length<2?i[0]:T.union([i[0],i[1],...i.slice(2)])}if(e.const!==void 0)return T.literal(e.const);let n=e.type;if(Array.isArray(n)){let r=n.map(i=>{let a={...e,type:i};return n$(a,t)});return r.length===0?T.never():r.length===1?r[0]:T.union(r)}if(!n)return T.any();let o;switch(n){case"string":{let r=T.string();if(e.format){let i=e.format;i==="email"?r=r.check(T.email()):i==="uri"||i==="uri-reference"?r=r.check(T.url()):i==="uuid"||i==="guid"?r=r.check(T.uuid()):i==="date-time"?r=r.check(T.iso.datetime()):i==="date"?r=r.check(T.iso.date()):i==="time"?r=r.check(T.iso.time()):i==="duration"?r=r.check(T.iso.duration()):i==="ipv4"?r=r.check(T.ipv4()):i==="ipv6"?r=r.check(T.ipv6()):i==="mac"?r=r.check(T.mac()):i==="cidr"?r=r.check(T.cidrv4()):i==="cidr-v6"?r=r.check(T.cidrv6()):i==="base64"?r=r.check(T.base64()):i==="base64url"?r=r.check(T.base64url()):i==="e164"?r=r.check(T.e164()):i==="jwt"?r=r.check(T.jwt()):i==="emoji"?r=r.check(T.emoji()):i==="nanoid"?r=r.check(T.nanoid()):i==="cuid"?r=r.check(T.cuid()):i==="cuid2"?r=r.check(T.cuid2()):i==="ulid"?r=r.check(T.ulid()):i==="xid"?r=r.check(T.xid()):i==="ksuid"&&(r=r.check(T.ksuid()))}typeof e.minLength=="number"&&(r=r.min(e.minLength)),typeof e.maxLength=="number"&&(r=r.max(e.maxLength)),e.pattern&&(r=r.regex(new RegExp(e.pattern))),o=r;break}case"number":case"integer":{let r=n==="integer"?T.number().int():T.number();typeof e.minimum=="number"&&(r=r.min(e.minimum)),typeof e.maximum=="number"&&(r=r.max(e.maximum)),typeof e.exclusiveMinimum=="number"?r=r.gt(e.exclusiveMinimum):e.exclusiveMinimum===!0&&typeof e.minimum=="number"&&(r=r.gt(e.minimum)),typeof e.exclusiveMaximum=="number"?r=r.lt(e.exclusiveMaximum):e.exclusiveMaximum===!0&&typeof e.maximum=="number"&&(r=r.lt(e.maximum)),typeof e.multipleOf=="number"&&(r=r.multipleOf(e.multipleOf)),o=r;break}case"boolean":{o=T.boolean();break}case"null":{o=T.null();break}case"object":{let r={},i=e.properties||{},a=new Set(e.required||[]);for(let[c,u]of Object.entries(i)){let l=Le(u,t);r[c]=a.has(c)?l:l.optional()}if(e.propertyNames){let c=Le(e.propertyNames,t),u=e.additionalProperties&&typeof e.additionalProperties=="object"?Le(e.additionalProperties,t):T.any();if(Object.keys(r).length===0){o=T.record(c,u);break}let l=T.object(r).passthrough(),d=T.looseRecord(c,u);o=T.intersection(l,d);break}if(e.patternProperties){let c=e.patternProperties,u=Object.keys(c),l=[];for(let p of u){let f=Le(c[p],t),g=T.string().regex(new RegExp(p));l.push(T.looseRecord(g,f))}let d=[];if(Object.keys(r).length>0&&d.push(T.object(r).passthrough()),d.push(...l),d.length===0)o=T.object({}).passthrough();else if(d.length===1)o=d[0];else{let p=T.intersection(d[0],d[1]);for(let f=2;f<d.length;f++)p=T.intersection(p,d[f]);o=p}break}let s=T.object(r);e.additionalProperties===!1?o=s.strict():typeof e.additionalProperties=="object"?o=s.catchall(Le(e.additionalProperties,t)):o=s.passthrough();break}case"array":{let r=e.prefixItems,i=e.items;if(r&&Array.isArray(r)){let a=r.map(c=>Le(c,t)),s=i&&typeof i=="object"&&!Array.isArray(i)?Le(i,t):void 0;s?o=T.tuple(a).rest(s):o=T.tuple(a),typeof e.minItems=="number"&&(o=o.check(T.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(T.maxLength(e.maxItems)))}else if(Array.isArray(i)){let a=i.map(c=>Le(c,t)),s=e.additionalItems&&typeof e.additionalItems=="object"?Le(e.additionalItems,t):void 0;s?o=T.tuple(a).rest(s):o=T.tuple(a),typeof e.minItems=="number"&&(o=o.check(T.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(T.maxLength(e.maxItems)))}else if(i!==void 0){let a=Le(i,t),s=T.array(a);typeof e.minItems=="number"&&(s=s.min(e.minItems)),typeof e.maxItems=="number"&&(s=s.max(e.maxItems)),o=s}else o=T.array(T.any());break}default:throw new Error(`Unsupported type: ${n}`)}return e.description&&(o=o.describe(e.description)),e.default!==void 0&&(o=o.default(e.default)),o}function Le(e,t){if(typeof e=="boolean")return e?T.any():T.never();let n=n$(e,t),o=e.type||e.enum!==void 0||e.const!==void 0;if(e.anyOf&&Array.isArray(e.anyOf)){let s=e.anyOf.map(u=>Le(u,t)),c=T.union(s);n=o?T.intersection(n,c):c}if(e.oneOf&&Array.isArray(e.oneOf)){let s=e.oneOf.map(u=>Le(u,t)),c=T.xor(s);n=o?T.intersection(n,c):c}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)n=o?n:T.any();else{let s=o?n:Le(e.allOf[0],t),c=o?0:1;for(let u=c;u<e.allOf.length;u++)s=T.intersection(s,Le(e.allOf[u],t));n=s}e.nullable===!0&&t.version==="openapi-3.0"&&(n=T.nullable(n)),e.readOnly===!0&&(n=T.readonly(n));let r={},i=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(let s of i)s in e&&(r[s]=e[s]);let a=["contentEncoding","contentMediaType","contentSchema"];for(let s of a)s in e&&(r[s]=e[s]);for(let s of Object.keys(e))Bz.has(s)||(r[s]=e[s]);return Object.keys(r).length>0&&t.registry.add(n,r),n}function o$(e,t){if(typeof e=="boolean")return e?T.any():T.never();let n=Hz(e,t?.defaultTarget),o=e.$defs||e.definitions||{},r={version:n,defs:o,refs:new Map,processing:new Set,rootSchema:e,registry:t?.registry??ze};return Le(e,r)}var _m={};Gt(_m,{bigint:()=>e0,boolean:()=>Qz,date:()=>t0,number:()=>Xz,string:()=>Yz});function Yz(e){return Pc(eo,e)}function Xz(e){return Rc(ro,e)}function Qz(e){return Fc(no,e)}function e0(e){return Gc(oo,e)}function t0(e){return ru(qi,e)}be(bc());var bm="2025-11-25";var i$=[bm,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],wr="io.modelcontextprotocol/related-task",Bu="2.0",Ne=Ju(e=>e!==null&&(typeof e=="object"||typeof e=="function")),a$=de([y(),ce().int()]),s$=y(),zA=Ee({ttl:de([ce(),io()]).optional(),pollInterval:ce().optional()}),n0=O({ttl:ce().optional()}),o0=O({taskId:y()}),xm=Ee({progressToken:a$.optional(),[wr]:o0.optional()}),lt=O({_meta:xm.optional()}),Hi=lt.extend({task:n0.optional()}),c$=e=>Hi.safeParse(e).success,Ce=O({method:y(),params:lt.loose().optional()}),gt=O({_meta:xm.optional()}),ht=O({method:y(),params:gt.loose().optional()}),De=Ee({_meta:xm.optional()}),Hu=de([y(),ce().int()]),u$=O({jsonrpc:A(Bu),id:Hu,...Ce.shape}).strict(),km=e=>u$.safeParse(e).success,l$=O({jsonrpc:A(Bu),...ht.shape}).strict(),d$=e=>l$.safeParse(e).success,wm=O({jsonrpc:A(Bu),id:Hu,result:De}).strict(),Wi=e=>wm.safeParse(e).success;var ne;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(ne||(ne={}));var Sm=O({jsonrpc:A(Bu),id:Hu.optional(),error:O({code:ce().int(),message:y(),data:me().optional()})}).strict();var p$=e=>Sm.safeParse(e).success;var f$=de([u$,l$,wm,Sm]),IA=de([wm,Sm]),Wu=De.strict(),i0=gt.extend({requestId:Hu.optional(),reason:y().optional()}),Yu=ht.extend({method:A("notifications/cancelled"),params:i0}),a0=O({src:y(),mimeType:y().optional(),sizes:X(y()).optional(),theme:Oe(["light","dark"]).optional()}),Yi=O({icons:X(a0).optional()}),so=O({name:y(),title:y().optional()}),m$=so.extend({...so.shape,...Yi.shape,version:y(),websiteUrl:y().optional(),description:y().optional()}),s0=ao(O({applyDefaults:xe().optional()}),he(y(),me())),c0=Bi(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,ao(O({form:s0.optional(),url:Ne.optional()}),he(y(),me()).optional())),u0=Ee({list:Ne.optional(),cancel:Ne.optional(),requests:Ee({sampling:Ee({createMessage:Ne.optional()}).optional(),elicitation:Ee({create:Ne.optional()}).optional()}).optional()}),l0=Ee({list:Ne.optional(),cancel:Ne.optional(),requests:Ee({tools:Ee({call:Ne.optional()}).optional()}).optional()}),d0=O({experimental:he(y(),Ne).optional(),sampling:O({context:Ne.optional(),tools:Ne.optional()}).optional(),elicitation:c0.optional(),roots:O({listChanged:xe().optional()}).optional(),tasks:u0.optional()}),p0=lt.extend({protocolVersion:y(),capabilities:d0,clientInfo:m$}),zm=Ce.extend({method:A("initialize"),params:p0});var f0=O({experimental:he(y(),Ne).optional(),logging:Ne.optional(),completions:Ne.optional(),prompts:O({listChanged:xe().optional()}).optional(),resources:O({subscribe:xe().optional(),listChanged:xe().optional()}).optional(),tools:O({listChanged:xe().optional()}).optional(),tasks:l0.optional()}),m0=De.extend({protocolVersion:y(),capabilities:f0,serverInfo:m$,instructions:y().optional()}),Im=ht.extend({method:A("notifications/initialized"),params:gt.optional()});var Xu=Ce.extend({method:A("ping"),params:lt.optional()}),g0=O({progress:ce(),total:ye(ce()),message:ye(y())}),h0=O({...gt.shape,...g0.shape,progressToken:a$}),Qu=ht.extend({method:A("notifications/progress"),params:h0}),v0=lt.extend({cursor:s$.optional()}),Xi=Ce.extend({params:v0.optional()}),Qi=De.extend({nextCursor:s$.optional()}),y0=Oe(["working","input_required","completed","failed","cancelled"]),ea=O({taskId:y(),status:y0,ttl:de([ce(),io()]),createdAt:y(),lastUpdatedAt:y(),pollInterval:ye(ce()),statusMessage:ye(y())}),co=De.extend({task:ea}),_0=gt.merge(ea),ta=ht.extend({method:A("notifications/tasks/status"),params:_0}),el=Ce.extend({method:A("tasks/get"),params:lt.extend({taskId:y()})}),tl=De.merge(ea),rl=Ce.extend({method:A("tasks/result"),params:lt.extend({taskId:y()})}),PA=De.loose(),nl=Xi.extend({method:A("tasks/list")}),ol=Qi.extend({tasks:X(ea)}),il=Ce.extend({method:A("tasks/cancel"),params:lt.extend({taskId:y()})}),g$=De.merge(ea),h$=O({uri:y(),mimeType:ye(y()),_meta:he(y(),me()).optional()}),v$=h$.extend({text:y()}),Pm=y().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),y$=h$.extend({blob:Pm}),ra=Oe(["user","assistant"]),uo=O({audience:X(ra).optional(),priority:ce().min(0).max(1).optional(),lastModified:kr.datetime({offset:!0}).optional()}),_$=O({...so.shape,...Yi.shape,uri:y(),description:ye(y()),mimeType:ye(y()),annotations:uo.optional(),_meta:ye(Ee({}))}),$0=O({...so.shape,...Yi.shape,uriTemplate:y(),description:ye(y()),mimeType:ye(y()),annotations:uo.optional(),_meta:ye(Ee({}))}),b0=Xi.extend({method:A("resources/list")}),x0=Qi.extend({resources:X(_$)}),k0=Xi.extend({method:A("resources/templates/list")}),w0=Qi.extend({resourceTemplates:X($0)}),Tm=lt.extend({uri:y()}),S0=Tm,z0=Ce.extend({method:A("resources/read"),params:S0}),I0=De.extend({contents:X(de([v$,y$]))}),P0=ht.extend({method:A("notifications/resources/list_changed"),params:gt.optional()}),T0=Tm,j0=Ce.extend({method:A("resources/subscribe"),params:T0}),E0=Tm,O0=Ce.extend({method:A("resources/unsubscribe"),params:E0}),N0=gt.extend({uri:y()}),C0=ht.extend({method:A("notifications/resources/updated"),params:N0}),D0=O({name:y(),description:ye(y()),required:ye(xe())}),R0=O({...so.shape,...Yi.shape,description:ye(y()),arguments:ye(X(D0)),_meta:ye(Ee({}))}),jm=Xi.extend({method:A("prompts/list")}),A0=Qi.extend({prompts:X(R0)}),Z0=lt.extend({name:y(),arguments:he(y(),y()).optional()}),Em=Ce.extend({method:A("prompts/get"),params:Z0}),Om=O({type:A("text"),text:y(),annotations:uo.optional(),_meta:he(y(),me()).optional()}),Nm=O({type:A("image"),data:Pm,mimeType:y(),annotations:uo.optional(),_meta:he(y(),me()).optional()}),Cm=O({type:A("audio"),data:Pm,mimeType:y(),annotations:uo.optional(),_meta:he(y(),me()).optional()}),U0=O({type:A("tool_use"),name:y(),id:y(),input:he(y(),me()),_meta:he(y(),me()).optional()}),M0=O({type:A("resource"),resource:de([v$,y$]),annotations:uo.optional(),_meta:he(y(),me()).optional()}),L0=_$.extend({type:A("resource_link")}),Dm=de([Om,Nm,Cm,L0,M0]),q0=O({role:ra,content:Dm}),F0=De.extend({description:y().optional(),messages:X(q0)}),V0=ht.extend({method:A("notifications/prompts/list_changed"),params:gt.optional()}),G0=O({title:y().optional(),readOnlyHint:xe().optional(),destructiveHint:xe().optional(),idempotentHint:xe().optional(),openWorldHint:xe().optional()}),J0=O({taskSupport:Oe(["required","optional","forbidden"]).optional()}),$$=O({...so.shape,...Yi.shape,description:y().optional(),inputSchema:O({type:A("object"),properties:he(y(),Ne).optional(),required:X(y()).optional()}).catchall(me()),outputSchema:O({type:A("object"),properties:he(y(),Ne).optional(),required:X(y()).optional()}).catchall(me()).optional(),annotations:G0.optional(),execution:J0.optional(),_meta:he(y(),me()).optional()}),Rm=Xi.extend({method:A("tools/list")}),K0=Qi.extend({tools:X($$)}),al=De.extend({content:X(Dm).default([]),structuredContent:he(y(),me()).optional(),isError:xe().optional()}),TA=al.or(De.extend({toolResult:me()})),B0=Hi.extend({name:y(),arguments:he(y(),me()).optional()}),na=Ce.extend({method:A("tools/call"),params:B0}),H0=ht.extend({method:A("notifications/tools/list_changed"),params:gt.optional()}),jA=O({autoRefresh:xe().default(!0),debounceMs:ce().int().nonnegative().default(300)}),oa=Oe(["debug","info","notice","warning","error","critical","alert","emergency"]),W0=lt.extend({level:oa}),Am=Ce.extend({method:A("logging/setLevel"),params:W0}),Y0=gt.extend({level:oa,logger:y().optional(),data:me()}),X0=ht.extend({method:A("notifications/message"),params:Y0}),Q0=O({name:y().optional()}),eI=O({hints:X(Q0).optional(),costPriority:ce().min(0).max(1).optional(),speedPriority:ce().min(0).max(1).optional(),intelligencePriority:ce().min(0).max(1).optional()}),tI=O({mode:Oe(["auto","required","none"]).optional()}),rI=O({type:A("tool_result"),toolUseId:y().describe("The unique identifier for the corresponding tool call."),content:X(Dm).default([]),structuredContent:O({}).loose().optional(),isError:xe().optional(),_meta:he(y(),me()).optional()}),nI=Gi("type",[Om,Nm,Cm]),Ku=Gi("type",[Om,Nm,Cm,U0,rI]),oI=O({role:ra,content:de([Ku,X(Ku)]),_meta:he(y(),me()).optional()}),iI=Hi.extend({messages:X(oI),modelPreferences:eI.optional(),systemPrompt:y().optional(),includeContext:Oe(["none","thisServer","allServers"]).optional(),temperature:ce().optional(),maxTokens:ce().int(),stopSequences:X(y()).optional(),metadata:Ne.optional(),tools:X($$).optional(),toolChoice:tI.optional()}),aI=Ce.extend({method:A("sampling/createMessage"),params:iI}),ia=De.extend({model:y(),stopReason:ye(Oe(["endTurn","stopSequence","maxTokens"]).or(y())),role:ra,content:nI}),Zm=De.extend({model:y(),stopReason:ye(Oe(["endTurn","stopSequence","maxTokens","toolUse"]).or(y())),role:ra,content:de([Ku,X(Ku)])}),sI=O({type:A("boolean"),title:y().optional(),description:y().optional(),default:xe().optional()}),cI=O({type:A("string"),title:y().optional(),description:y().optional(),minLength:ce().optional(),maxLength:ce().optional(),format:Oe(["email","uri","date","date-time"]).optional(),default:y().optional()}),uI=O({type:Oe(["number","integer"]),title:y().optional(),description:y().optional(),minimum:ce().optional(),maximum:ce().optional(),default:ce().optional()}),lI=O({type:A("string"),title:y().optional(),description:y().optional(),enum:X(y()),default:y().optional()}),dI=O({type:A("string"),title:y().optional(),description:y().optional(),oneOf:X(O({const:y(),title:y()})),default:y().optional()}),pI=O({type:A("string"),title:y().optional(),description:y().optional(),enum:X(y()),enumNames:X(y()).optional(),default:y().optional()}),fI=de([lI,dI]),mI=O({type:A("array"),title:y().optional(),description:y().optional(),minItems:ce().optional(),maxItems:ce().optional(),items:O({type:A("string"),enum:X(y())}),default:X(y()).optional()}),gI=O({type:A("array"),title:y().optional(),description:y().optional(),minItems:ce().optional(),maxItems:ce().optional(),items:O({anyOf:X(O({const:y(),title:y()}))}),default:X(y()).optional()}),hI=de([mI,gI]),vI=de([pI,fI,hI]),yI=de([vI,sI,cI,uI]),_I=Hi.extend({mode:A("form").optional(),message:y(),requestedSchema:O({type:A("object"),properties:he(y(),yI),required:X(y()).optional()})}),$I=Hi.extend({mode:A("url"),message:y(),elicitationId:y(),url:y().url()}),bI=de([_I,$I]),xI=Ce.extend({method:A("elicitation/create"),params:bI}),kI=gt.extend({elicitationId:y()}),wI=ht.extend({method:A("notifications/elicitation/complete"),params:kI}),lo=De.extend({action:Oe(["accept","decline","cancel"]),content:Bi(e=>e===null?void 0:e,he(y(),de([y(),ce(),xe(),X(y())])).optional())}),SI=O({type:A("ref/resource"),uri:y()});var zI=O({type:A("ref/prompt"),name:y()}),II=lt.extend({ref:de([zI,SI]),argument:O({name:y(),value:y()}),context:O({arguments:he(y(),y()).optional()}).optional()}),PI=Ce.extend({method:A("completion/complete"),params:II});var TI=De.extend({completion:Ee({values:X(y()).max(100),total:ye(ce().int()),hasMore:ye(xe())})}),jI=O({uri:y().startsWith("file://"),name:y().optional(),_meta:he(y(),me()).optional()}),EI=Ce.extend({method:A("roots/list"),params:lt.optional()}),Um=De.extend({roots:X(jI)}),OI=ht.extend({method:A("notifications/roots/list_changed"),params:gt.optional()}),EA=de([Xu,zm,PI,Am,Em,jm,b0,k0,z0,j0,O0,na,Rm,el,rl,nl,il]),OA=de([Yu,Qu,Im,OI,ta]),NA=de([Wu,ia,Zm,lo,Um,tl,ol,co]),CA=de([Xu,aI,xI,EI,el,rl,nl,il]),DA=de([Yu,Qu,X0,C0,P0,H0,V0,ta,wI]),RA=de([Wu,m0,TI,F0,A0,x0,w0,I0,al,K0,tl,ol,co]),B=class e extends Error{constructor(t,n,o){super(`MCP error ${t}: ${n}`),this.code=t,this.data=o,this.name="McpError"}static fromError(t,n,o){if(t===ne.UrlElicitationRequired&&o){let r=o;if(r.elicitations)return new $m(r.elicitations,n)}return new e(t,n,o)}},$m=class extends B{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(ne.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}};function Sr(e){return e==="completed"||e==="failed"||e==="cancelled"}var hZ=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Mm(e){let n=gu(e)?.method;if(!n)throw new Error("Schema is missing a method literal");let o=Ky(n);if(typeof o!="string")throw new Error("Schema method literal must be a string");return o}function Lm(e,t){let n=xr(e,t);if(!n.success)throw n.error;return n.data}var ZI=6e4,sl=class{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(Yu,n=>{this._oncancel(n)}),this.setNotificationHandler(Qu,n=>{this._onprogress(n)}),this.setRequestHandler(Xu,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(el,async(n,o)=>{let r=await this._taskStore.getTask(n.params.taskId,o.sessionId);if(!r)throw new B(ne.InvalidParams,"Failed to retrieve task: Task not found");return{...r}}),this.setRequestHandler(rl,async(n,o)=>{let r=async()=>{let i=n.params.taskId;if(this._taskMessageQueue){let s;for(;s=await this._taskMessageQueue.dequeue(i,o.sessionId);){if(s.type==="response"||s.type==="error"){let c=s.message,u=c.id,l=this._requestResolvers.get(u);if(l)if(this._requestResolvers.delete(u),s.type==="response")l(c);else{let d=c,p=new B(d.error.code,d.error.message,d.error.data);l(p)}else{let d=s.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${u}`))}continue}await this._transport?.send(s.message,{relatedRequestId:o.requestId})}}let a=await this._taskStore.getTask(i,o.sessionId);if(!a)throw new B(ne.InvalidParams,`Task not found: ${i}`);if(!Sr(a.status))return await this._waitForTaskUpdate(i,o.signal),await r();if(Sr(a.status)){let s=await this._taskStore.getTaskResult(i,o.sessionId);return this._clearTaskQueue(i),{...s,_meta:{...s._meta,[wr]:{taskId:i}}}}return await r()};return await r()}),this.setRequestHandler(nl,async(n,o)=>{try{let{tasks:r,nextCursor:i}=await this._taskStore.listTasks(n.params?.cursor,o.sessionId);return{tasks:r,nextCursor:i,_meta:{}}}catch(r){throw new B(ne.InvalidParams,`Failed to list tasks: ${r instanceof Error?r.message:String(r)}`)}}),this.setRequestHandler(il,async(n,o)=>{try{let r=await this._taskStore.getTask(n.params.taskId,o.sessionId);if(!r)throw new B(ne.InvalidParams,`Task not found: ${n.params.taskId}`);if(Sr(r.status))throw new B(ne.InvalidParams,`Cannot cancel task in terminal status: ${r.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",o.sessionId),this._clearTaskQueue(n.params.taskId);let i=await this._taskStore.getTask(n.params.taskId,o.sessionId);if(!i)throw new B(ne.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...i}}catch(r){throw r instanceof B?r:new B(ne.InvalidRequest,`Failed to cancel task: ${r instanceof Error?r.message:String(r)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,n,o,r,i=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(r,n),startTime:Date.now(),timeout:n,maxTotalTimeout:o,resetTimeoutOnProgress:i,onTimeout:r})}_resetTimeout(t){let n=this._timeoutInfo.get(t);if(!n)return!1;let o=Date.now()-n.startTime;if(n.maxTotalTimeout&&o>=n.maxTotalTimeout)throw this._timeoutInfo.delete(t),B.fromError(ne.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:o});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(t){let n=this._timeoutInfo.get(t);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(t))}async connect(t){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=t;let n=this.transport?.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};let o=this.transport?.onerror;this._transport.onerror=i=>{o?.(i),this._onerror(i)};let r=this._transport?.onmessage;this._transport.onmessage=(i,a)=>{r?.(i,a),Wi(i)||p$(i)?this._onresponse(i):km(i)?this._onrequest(i,a):d$(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let o of this._timeoutInfo.values())clearTimeout(o.timeoutId);this._timeoutInfo.clear();for(let o of this._requestHandlerAbortControllers.values())o.abort();this._requestHandlerAbortControllers.clear();let n=B.fromError(ne.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let o of t.values())o(n)}_onerror(t){this.onerror?.(t)}_onnotification(t){let n=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(t)).catch(o=>this._onerror(new Error(`Uncaught error in notification handler: ${o}`)))}_onrequest(t,n){let o=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,r=this._transport,i=t.params?._meta?.[wr]?.taskId;if(o===void 0){let l={jsonrpc:"2.0",id:t.id,error:{code:ne.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:l,timestamp:Date.now()},r?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):r?.send(l).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let a=new AbortController;this._requestHandlerAbortControllers.set(t.id,a);let s=c$(t.params)?t.params.task:void 0,c=this._taskStore?this.requestTaskStore(t,r?.sessionId):void 0,u={signal:a.signal,sessionId:r?.sessionId,_meta:t.params?._meta,sendNotification:async l=>{if(a.signal.aborted)return;let d={relatedRequestId:t.id};i&&(d.relatedTask={taskId:i}),await this.notification(l,d)},sendRequest:async(l,d,p)=>{if(a.signal.aborted)throw new B(ne.ConnectionClosed,"Request was cancelled");let f={...p,relatedRequestId:t.id};i&&!f.relatedTask&&(f.relatedTask={taskId:i});let g=f.relatedTask?.taskId??i;return g&&c&&await c.updateTaskStatus(g,"input_required"),await this.request(l,d,f)},authInfo:n?.authInfo,requestId:t.id,requestInfo:n?.requestInfo,taskId:i,taskStore:c,taskRequestedTtl:s?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};Promise.resolve().then(()=>{s&&this.assertTaskHandlerCapability(t.method)}).then(()=>o(t,u)).then(async l=>{if(a.signal.aborted)return;let d={result:l,jsonrpc:"2.0",id:t.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:d,timestamp:Date.now()},r?.sessionId):await r?.send(d)},async l=>{if(a.signal.aborted)return;let d={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(l.code)?l.code:ne.InternalError,message:l.message??"Internal error",...l.data!==void 0&&{data:l.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:d,timestamp:Date.now()},r?.sessionId):await r?.send(d)}).catch(l=>this._onerror(new Error(`Failed to send response: ${l}`))).finally(()=>{this._requestHandlerAbortControllers.get(t.id)===a&&this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){let{progressToken:n,...o}=t.params,r=Number(n),i=this._progressHandlers.get(r);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let a=this._responseHandlers.get(r),s=this._timeoutInfo.get(r);if(s&&a&&s.resetTimeoutOnProgress)try{this._resetTimeout(r)}catch(c){this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),a(c);return}i(o)}_onresponse(t){let n=Number(t.id),o=this._requestResolvers.get(n);if(o){if(this._requestResolvers.delete(n),Wi(t))o(t);else{let a=new B(t.error.code,t.error.message,t.error.data);o(a)}return}let r=this._responseHandlers.get(n);if(r===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let i=!1;if(Wi(t)&&t.result&&typeof t.result=="object"){let a=t.result;if(a.task&&typeof a.task=="object"){let s=a.task;typeof s.taskId=="string"&&(i=!0,this._taskProgressTokens.set(s.taskId,n))}}if(i||this._progressHandlers.delete(n),Wi(t))r(t);else{let a=B.fromError(t.error.code,t.error.message,t.error.data);r(a)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,n,o){let{task:r}=o??{};if(!r){try{yield{type:"result",result:await this.request(t,n,o)}}catch(a){yield{type:"error",error:a instanceof B?a:new B(ne.InternalError,String(a))}}return}let i;try{let a=await this.request(t,co,o);if(a.task)i=a.task.taskId,yield{type:"taskCreated",task:a.task};else throw new B(ne.InternalError,"Task creation did not return a task");for(;;){let s=await this.getTask({taskId:i},o);if(yield{type:"taskStatus",task:s},Sr(s.status)){s.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},n,o)}:s.status==="failed"?yield{type:"error",error:new B(ne.InternalError,`Task ${i} failed`)}:s.status==="cancelled"&&(yield{type:"error",error:new B(ne.InternalError,`Task ${i} was cancelled`)});return}if(s.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},n,o)};return}let c=s.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,c)),o?.signal?.throwIfAborted()}}catch(a){yield{type:"error",error:a instanceof B?a:new B(ne.InternalError,String(a))}}}request(t,n,o){let{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a,task:s,relatedTask:c}=o??{};return new Promise((u,l)=>{let d=U=>{l(U)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),s&&this.assertTaskCapability(t.method)}catch(U){d(U);return}o?.signal?.throwIfAborted();let p=this._requestMessageId++,f={...t,jsonrpc:"2.0",id:p};o?.onprogress&&(this._progressHandlers.set(p,o.onprogress),f.params={...t.params,_meta:{...t.params?._meta||{},progressToken:p}}),s&&(f.params={...f.params,task:s}),c&&(f.params={...f.params,_meta:{...f.params?._meta||{},[wr]:c}});let g=U=>{this._responseHandlers.delete(p),this._progressHandlers.delete(p),this._cleanupTimeout(p),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:p,reason:String(U)}},{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}).catch(C=>this._onerror(new Error(`Failed to send cancellation: ${C}`)));let D=U instanceof B?U:new B(ne.RequestTimeout,String(U));l(D)};this._responseHandlers.set(p,U=>{if(!o?.signal?.aborted){if(U instanceof Error)return l(U);try{let D=xr(n,U.result);D.success?u(D.data):l(D.error)}catch(D){l(D)}}}),o?.signal?.addEventListener("abort",()=>{g(o?.signal?.reason)});let h=o?.timeout??ZI,z=()=>g(B.fromError(ne.RequestTimeout,"Request timed out",{timeout:h}));this._setupTimeout(p,h,o?.maxTotalTimeout,z,o?.resetTimeoutOnProgress??!1);let I=c?.taskId;if(I){let U=D=>{let C=this._responseHandlers.get(p);C?C(D):this._onerror(new Error(`Response handler missing for side-channeled request ${p}`))};this._requestResolvers.set(p,U),this._enqueueTaskMessage(I,{type:"request",message:f,timestamp:Date.now()}).catch(D=>{this._cleanupTimeout(p),l(D)})}else this._transport.send(f,{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}).catch(U=>{this._cleanupTimeout(p),l(U)})})}async getTask(t,n){return this.request({method:"tasks/get",params:t},tl,n)}async getTaskResult(t,n,o){return this.request({method:"tasks/result",params:t},n,o)}async listTasks(t,n){return this.request({method:"tasks/list",params:t},ol,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},g$,n)}async notification(t,n){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let o=n?.relatedTask?.taskId;if(o){let s={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[wr]:n.relatedTask}}};await this._enqueueTaskMessage(o,{type:"notification",message:s,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let s={...t,jsonrpc:"2.0"};n?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[wr]:n.relatedTask}}}),this._transport?.send(s,n).catch(c=>this._onerror(c))});return}let a={...t,jsonrpc:"2.0"};n?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[wr]:n.relatedTask}}}),await this._transport.send(a,n)}setRequestHandler(t,n){let o=Mm(t);this.assertRequestHandlerCapability(o),this._requestHandlers.set(o,(r,i)=>{let a=Lm(t,r);return Promise.resolve(n(a,i))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,n){let o=Mm(t);this._notificationHandlers.set(o,r=>{let i=Lm(t,r);return Promise.resolve(n(i))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let n=this._taskProgressTokens.get(t);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,n,o){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let r=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,n,o,r)}async _clearTaskQueue(t,n){if(this._taskMessageQueue){let o=await this._taskMessageQueue.dequeueAll(t,n);for(let r of o)if(r.type==="request"&&km(r.message)){let i=r.message.id,a=this._requestResolvers.get(i);a?(a(new B(ne.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,n){let o=this._options?.defaultTaskPollInterval??1e3;try{let r=await this._taskStore?.getTask(t);r?.pollInterval&&(o=r.pollInterval)}catch{}return new Promise((r,i)=>{if(n.aborted){i(new B(ne.InvalidRequest,"Request cancelled"));return}let a=setTimeout(r,o);n.addEventListener("abort",()=>{clearTimeout(a),i(new B(ne.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,n){let o=this._taskStore;if(!o)throw new Error("No task store configured");return{createTask:async r=>{if(!t)throw new Error("No request provided");return await o.createTask(r,t.id,{method:t.method,params:t.params},n)},getTask:async r=>{let i=await o.getTask(r,n);if(!i)throw new B(ne.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(r,i,a)=>{await o.storeTaskResult(r,i,a,n);let s=await o.getTask(r,n);if(s){let c=ta.parse({method:"notifications/tasks/status",params:s});await this.notification(c),Sr(s.status)&&this._cleanupTaskProgressHandler(r)}},getTaskResult:r=>o.getTaskResult(r,n),updateTaskStatus:async(r,i,a)=>{let s=await o.getTask(r,n);if(!s)throw new B(ne.InvalidParams,`Task "${r}" not found - it may have been cleaned up`);if(Sr(s.status))throw new B(ne.InvalidParams,`Cannot update task "${r}" from terminal status "${s.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await o.updateTaskStatus(r,i,a,n);let c=await o.getTask(r,n);if(c){let u=ta.parse({method:"notifications/tasks/status",params:c});await this.notification(u),Sr(c.status)&&this._cleanupTaskProgressHandler(r)}},listTasks:r=>o.listTasks(r,n)}}};function b$(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function x$(e,t){let n={...e};for(let o in t){let r=o,i=t[r];if(i===void 0)continue;let a=n[r];b$(a)&&b$(i)?n[r]={...a,...i}:n[r]=i}return n}var ck=hd(zh(),1),uk=hd(sk(),1);function TN(){let e=new ck.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,uk.default)(e),e}var Fl=class{constructor(t){this._ajv=t??TN()}getValidator(t){let n="$id"in t&&typeof t.$id=="string"?this._ajv.getSchema(t.$id)??this._ajv.compile(t):this._ajv.compile(t);return o=>n(o)?{valid:!0,data:o,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(n.errors)}}};var Vl=class{constructor(t){this._server=t}requestStream(t,n,o){return this._server.requestStream(t,n,o)}createMessageStream(t,n){let o=this._server.getClientCapabilities();if((t.tools||t.toolChoice)&&!o?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let r=t.messages[t.messages.length-1],i=Array.isArray(r.content)?r.content:[r.content],a=i.some(l=>l.type==="tool_result"),s=t.messages.length>1?t.messages[t.messages.length-2]:void 0,c=s?Array.isArray(s.content)?s.content:[s.content]:[],u=c.some(l=>l.type==="tool_use");if(a){if(i.some(l=>l.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!u)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(u){let l=new Set(c.filter(p=>p.type==="tool_use").map(p=>p.id)),d=new Set(i.filter(p=>p.type==="tool_result").map(p=>p.toolUseId));if(l.size!==d.size||![...l].every(p=>d.has(p)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return this.requestStream({method:"sampling/createMessage",params:t},ia,n)}elicitInputStream(t,n){let o=this._server.getClientCapabilities(),r=t.mode??"form";switch(r){case"url":{if(!o?.elicitation?.url)throw new Error("Client does not support url elicitation.");break}case"form":{if(!o?.elicitation?.form)throw new Error("Client does not support form elicitation.");break}}let i=r==="form"&&t.mode===void 0?{...t,mode:"form"}:t;return this.requestStream({method:"elicitation/create",params:i},lo,n)}async getTask(t,n){return this._server.getTask({taskId:t},n)}async getTaskResult(t,n,o){return this._server.getTaskResult({taskId:t},n,o)}async listTasks(t,n){return this._server.listTasks(t?{cursor:t}:void 0,n)}async cancelTask(t,n){return this._server.cancelTask({taskId:t},n)}};function lk(e,t,n){if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!e.tools?.call)throw new Error(`${n} does not support task creation for tools/call (required for ${t})`);break;default:break}}function dk(e,t,n){if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!e.sampling?.createMessage)throw new Error(`${n} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!e.elicitation?.create)throw new Error(`${n} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}var Gl=class extends sl{constructor(t,n){super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(oa.options.map((o,r)=>[o,r])),this.isMessageIgnored=(o,r)=>{let i=this._loggingLevels.get(r);return i?this.LOG_LEVEL_SEVERITY.get(o)<this.LOG_LEVEL_SEVERITY.get(i):!1},this._capabilities=n?.capabilities??{},this._instructions=n?.instructions,this._jsonSchemaValidator=n?.jsonSchemaValidator??new Fl,this.setRequestHandler(zm,o=>this._oninitialize(o)),this.setNotificationHandler(Im,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(Am,async(o,r)=>{let i=r.sessionId||r.requestInfo?.headers["mcp-session-id"]||void 0,{level:a}=o.params,s=oa.safeParse(a);return s.success&&this._loggingLevels.set(i,s.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new Vl(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=x$(this._capabilities,t)}setRequestHandler(t,n){let r=gu(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let i;if(Xn(r)){let s=r;i=s._zod?.def?.value??s.value}else{let s=r;i=s._def?.value??s.value}if(typeof i!="string")throw new Error("Schema method literal must be a string");if(i==="tools/call"){let s=async(c,u)=>{let l=xr(na,c);if(!l.success){let g=l.error instanceof Error?l.error.message:String(l.error);throw new B(ne.InvalidParams,`Invalid tools/call request: ${g}`)}let{params:d}=l.data,p=await Promise.resolve(n(c,u));if(d.task){let g=xr(co,p);if(!g.success){let h=g.error instanceof Error?g.error.message:String(g.error);throw new B(ne.InvalidParams,`Invalid task creation result: ${h}`)}return g.data}let f=xr(al,p);if(!f.success){let g=f.error instanceof Error?f.error.message:String(f.error);throw new B(ne.InvalidParams,`Invalid tools/call result: ${g}`)}return f.data};return super.setRequestHandler(t,s)}return super.setRequestHandler(t,n)}assertCapabilityForMethod(t){switch(t){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${t})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${t})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${t})`);break;case"ping":break}}assertNotificationCapability(t){switch(t){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${t})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${t})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${t})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${t})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(t){if(this._capabilities)switch(t){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${t})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${t})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${t})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${t})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${t})`);break;case"ping":case"initialize":break}}assertTaskCapability(t){dk(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&lk(this._capabilities.tasks?.requests,t,"Server")}async _oninitialize(t){let n=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:i$.includes(n)?n:bm,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},Wu)}async createMessage(t,n){if((t.tools||t.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let o=t.messages[t.messages.length-1],r=Array.isArray(o.content)?o.content:[o.content],i=r.some(u=>u.type==="tool_result"),a=t.messages.length>1?t.messages[t.messages.length-2]:void 0,s=a?Array.isArray(a.content)?a.content:[a.content]:[],c=s.some(u=>u.type==="tool_use");if(i){if(r.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!c)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(c){let u=new Set(s.filter(d=>d.type==="tool_use").map(d=>d.id)),l=new Set(r.filter(d=>d.type==="tool_result").map(d=>d.toolUseId));if(u.size!==l.size||![...u].every(d=>l.has(d)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return t.tools?this.request({method:"sampling/createMessage",params:t},Zm,n):this.request({method:"sampling/createMessage",params:t},ia,n)}async elicitInput(t,n){switch(t.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let r=t;return this.request({method:"elicitation/create",params:r},lo,n)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let r=t.mode==="form"?t:{...t,mode:"form"},i=await this.request({method:"elicitation/create",params:r},lo,n);if(i.action==="accept"&&i.content&&r.requestedSchema)try{let s=this._jsonSchemaValidator.getValidator(r.requestedSchema)(i.content);if(!s.valid)throw new B(ne.InvalidParams,`Elicitation response content does not match requested schema: ${s.errorMessage}`)}catch(a){throw a instanceof B?a:new B(ne.InternalError,`Error validating elicitation response: ${a instanceof Error?a.message:String(a)}`)}return i}}}createElicitationCompletionNotifier(t,n){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:t}},n)}async listRoots(t,n){return this.request({method:"roots/list",params:t},Um,n)}async sendLoggingMessage(t,n){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,n))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}};var Ch=hd(require("node:process"),1);var Jl=class{append(t){this._buffer=this._buffer?Buffer.concat([this._buffer,t]):t}readMessage(){if(!this._buffer)return null;let t=this._buffer.indexOf(`
49
49
  `);if(t===-1)return null;let n=this._buffer.toString("utf8",0,t).replace(/\r$/,"");return this._buffer=this._buffer.subarray(t+1),jN(n)}clear(){this._buffer=void 0}};function jN(e){return f$.parse(JSON.parse(e))}function pk(e){return JSON.stringify(e)+`
50
50
  `}var Kl=class{constructor(t=Ch.default.stdin,n=Ch.default.stdout){this._stdin=t,this._stdout=n,this._readBuffer=new Jl,this._started=!1,this._ondata=o=>{this._readBuffer.append(o),this.processReadBuffer()},this._onerror=o=>{this.onerror?.(o)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(t){return new Promise(n=>{let o=pk(t);this._stdout.write(o)?n():this._stdout.once("drain",n)})}};var Ra=process.env.GODD_BRAND_PREFIX??"godd",V={displayName:"GoDD MCP \u03B1",cli:Ra,mcpKey:Ra,configFile:`config.${Ra}`,licensePrefix:Ra.toUpperCase(),toolPrefix:`${Ra}_`};var Bl=require("node:fs"),mk=require("node:path");var Aa=["en","ja","ru"];function To(e){return Aa.includes(e)?e:null}var EN=Q.object({vcs:Q.string().optional(),browser_automation:Q.string().optional(),e2e_testing:Q.string().optional(),unit_testing:Q.string().optional(),linting:Q.string().optional(),formatting:Q.string().optional(),type_checking:Q.string().optional(),coverage:Q.string().optional(),documentation:Q.string().optional(),secret_scanning:Q.string().optional(),security_analysis:Q.string().optional(),unused_code:Q.string().optional(),dependency_analysis:Q.string().optional()}),Dh=Q.enum(Aa),fk=Q.object({display_language:Dh.default("en"),main_language:Dh.default("en"),sub_languages:Q.array(Dh).default([]),programming_languages:Q.array(Q.string()).default([]),frontend:Q.array(Q.string()).default([]),backend:Q.array(Q.string()).default([]),database:Q.array(Q.string()).default([]),orm:Q.array(Q.string()).default([]),infra:Q.array(Q.string()).default([]),game:Q.array(Q.string()).default([]),mobile:Q.array(Q.string()).default([]),other:Q.array(Q.string()).default([]),tools:EN.default({})});function Hl(e=process.cwd()){let t=(0,mk.resolve)(e,V.configFile);if(!(0,Bl.existsSync)(t))return null;try{let n=(0,Bl.readFileSync)(t,"utf-8"),o=CN(n);return ON(o),NN(o),fk.parse(o)}catch(n){return console.error(`[${V.displayName}] Failed to parse ${V.configFile}:`,n instanceof Error?n.message:n),null}}function ON(e){if("language"in e&&!("display_language"in e)){let t=e.language;e.display_language=t,e.main_language=t,delete e.language}}function NN(e){if("e2e_tool"in e){let t=typeof e.tools=="object"&&!Array.isArray(e.tools)?e.tools:{};t.e2e_testing=e.e2e_tool,e.tools=t,delete e.e2e_tool}Array.isArray(e.tools)&&e.tools.length===0&&(e.tools={})}function CN(e){let t={},n="",o=e.split(`
51
- `);for(let r of o){let i=r.trim();if(!i||i.startsWith("#"))continue;if(r.length-r.trimStart().length>=2&&n&&i.includes(":")&&!i.startsWith("- ")){let s=i.indexOf(":"),c=i.slice(0,s).trim(),u=i.slice(s+1).trim();if(c&&u){let l=t[n];l&&typeof l=="object"&&!Array.isArray(l)?l[c]=u:t[n]={[c]:u}}continue}if(i.startsWith("- ")){if(n){let s=t[n];Array.isArray(s)&&s.push(i.slice(2).trim())}}else if(i.includes(":")){let s=i.indexOf(":"),c=i.slice(0,s).trim(),u=i.slice(s+1).trim();u===""||u==="[]"?(t[c]=[],n=c):u.startsWith("[")&&u.endsWith("]")?(t[c]=u.slice(1,-1).split(",").map(l=>l.trim()).filter(Boolean),n=c):(t[c]=u,n=c)}}return t}var Wl=new Set(["typescript","javascript","python","java","csharp","cpp","c","go","rust","php","swift","kotlin","ruby","dart","r","scala","objective-c","sql","html-css","bash","elixir","haskell","perl","lua","julia","clojure","fsharp","groovy","visual-basic","powershell","erlang","ocaml","zig","nim","crystal","solidity","fortran","cobol","assembly","d","ada","v","pascal","prolog","gdscript","gdshader"]),Yl=new Set(["react","nextjs","vue","nuxt","svelte","angular","flutter","blazor","solid","astro","remix","qwik","ember","htmx","alpine","vite","electron","tauri"]),Xl=new Set(["express","nestjs","hono","fastify","fastapi","django","flask","gin","echo","fiber","chi","spring-boot","quarkus","micronaut","ktor","laravel","symfony","slim","codeigniter","cakephp","rails","sinatra","hanami","actix-web","axum","rocket","phoenix","aspnet","vapor","play","akka-http","servant","yesod","mojolicious","dancer","ring","pedestal","dart-frog"]),Ql=new Set(["postgresql","mysql","mongodb","redis","sqlite","dynamodb","cassandra","neo4j","elasticsearch","supabase","firebase","cockroachdb"]),ed=new Set(["prisma","drizzle","typeorm","sequelize","sqlalchemy","tortoise-orm","eloquent","doctrine","activerecord","hibernate","mybatis","entity-framework","gorm","ent","diesel","sea-orm","ecto","exposed","peewee","django-orm"]),td=new Set(["docker","terraform","vercel","aws","gcp","github-actions","azure","cloudflare","fly-io","render","heroku","kubernetes","ansible","pulumi","netlify","railway"]),rd=new Set(["react-native","expo","flutter","swiftui","uikit","jetpack-compose","kotlin-multiplatform","ionic","capacitor","maui","xamarin","tauri-mobile","nativescript"]),nd=new Set(["godot","phaser","pyxel","unity","unreal","bevy","love2d","monogame","pygame","libgdx","cocos2d","defold","renpy"]),DN={typescript:{frontend:["react","nextjs","vue","nuxt","svelte","angular","solid","astro","remix","qwik","ember","htmx","alpine","vite","electron","tauri"],backend:["express","nestjs","hono","fastify"],orm:["prisma","drizzle","typeorm","sequelize"],mobile:["react-native","expo","ionic","capacitor","nativescript"]},javascript:{frontend:["react","nextjs","vue","nuxt","svelte","angular","solid","astro","remix","qwik","ember","htmx","alpine","vite","electron","tauri"],backend:["express","nestjs","hono","fastify"],orm:["prisma","drizzle","typeorm","sequelize"],mobile:["react-native","expo","ionic","capacitor","nativescript"]},python:{backend:["fastapi","django","flask"],orm:["sqlalchemy","tortoise-orm","peewee","django-orm"],game:["pygame","renpy","pyxel"]},go:{backend:["gin","echo","fiber","chi"],orm:["gorm","ent"]},rust:{frontend:["tauri"],backend:["actix-web","axum","rocket"],orm:["diesel","sea-orm"],game:["bevy"]},java:{backend:["spring-boot","quarkus","micronaut"],orm:["hibernate","mybatis"],mobile:["jetpack-compose"],game:["libgdx"]},kotlin:{backend:["spring-boot","ktor"],orm:["exposed","hibernate"],mobile:["jetpack-compose","kotlin-multiplatform"]},php:{backend:["laravel","symfony","slim","codeigniter","cakephp"],orm:["eloquent","doctrine"]},ruby:{backend:["rails","sinatra","hanami"],orm:["activerecord"]},swift:{backend:["vapor"],mobile:["swiftui","uikit"]},dart:{frontend:["flutter"],backend:["dart-frog"],mobile:["flutter"]},csharp:{backend:["aspnet"],orm:["entity-framework"],mobile:["maui","xamarin"],game:["unity","monogame"]},elixir:{backend:["phoenix"],orm:["ecto"]},scala:{backend:["play","akka-http"]},haskell:{backend:["servant","yesod"]},perl:{backend:["mojolicious","dancer"]},clojure:{backend:["ring","pedestal"]},lua:{game:["love2d","defold"]},gdscript:{game:["godot"]},cpp:{game:["unreal","cocos2d","godot"]}};function jo(e,t,n){if(n.length===0)return e;let o=new Set;for(let r of n){let i=DN[r];if(!i)continue;let a=i[t];if(a)for(let s of a)o.add(s)}return o.size===0?e:e.filter(r=>o.has(r))}function RN(e,t){let n=e.length,o=t.length,r=Array.from({length:n+1},()=>Array(o+1).fill(0));for(let i=0;i<=n;i++)r[i][0]=i;for(let i=0;i<=o;i++)r[0][i]=i;for(let i=1;i<=n;i++)for(let a=1;a<=o;a++){let s=e[i-1]===t[a-1]?0:1;r[i][a]=Math.min(r[i-1][a]+1,r[i][a-1]+1,r[i-1][a-1]+s)}return r[n][o]}function AN(e,t,n=2){let o=null,r=n+1;for(let i of t){if(Math.abs(i.length-e.length)>n)continue;let a=RN(e.toLowerCase(),i.toLowerCase());a<r&&(r=a,o=i)}return o}var ZN=[{field:"programming_languages",known:Wl},{field:"frontend",known:Yl},{field:"backend",known:Xl},{field:"database",known:Ql},{field:"orm",known:ed},{field:"infra",known:td},{field:"game",known:nd},{field:"mobile",known:rd}];function od(e){let t=[];for(let{field:n,known:o}of ZN){let r=e[n];if(Array.isArray(r))for(let i of r)typeof i=="string"&&(o.has(i)||t.push({field:n,value:i,suggestion:AN(i,o)}))}return t}var gk=[{field:"display_language",type:"string",descriptions:{en:"GoDD display language (en / ja / ru)",ja:"GoDD \u306E\u8868\u793A\u8A00\u8A9E\uFF08en / ja / ru\uFF09",ru:"\u042F\u0437\u044B\u043A \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F GoDD (en / ja / ru)"},values:["en","ja","ru"]},{field:"main_language",type:"string",descriptions:{en:"Project main language (en / ja / ru)",ja:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30A4\u30F3\u8A00\u8A9E\uFF08en / ja / ru\uFF09",ru:"\u041E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u044F\u0437\u044B\u043A \u043F\u0440\u043E\u0435\u043A\u0442\u0430 (en / ja / ru)"},values:["en","ja","ru"]},{field:"sub_languages",type:"string[]",descriptions:{en:"Team sub-languages",ja:"\u30C1\u30FC\u30E0\u306E\u30B5\u30D6\u8A00\u8A9E",ru:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u044F\u0437\u044B\u043A\u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u044B"},values:["en","ja","ru"]},{field:"programming_languages",type:"string[]",descriptions:{en:"Programming languages",ja:"\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u8A00\u8A9E",ru:"\u042F\u0437\u044B\u043A\u0438 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F"},values:[...Wl]},{field:"frontend",type:"string[]",descriptions:{en:"Frontend frameworks",ja:"\u30D5\u30ED\u30F3\u30C8\u30A8\u30F3\u30C9\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF",ru:"\u0424\u0440\u043E\u043D\u0442\u0435\u043D\u0434-\u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438"},values:[...Yl]},{field:"backend",type:"string[]",descriptions:{en:"Backend frameworks",ja:"\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF",ru:"\u0411\u044D\u043A\u0435\u043D\u0434-\u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438"},values:[...Xl]},{field:"database",type:"string[]",descriptions:{en:"Databases",ja:"\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9",ru:"\u0411\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445"},values:[...Ql]},{field:"orm",type:"string[]",descriptions:{en:"ORM",ja:"ORM",ru:"ORM"},values:[...ed]},{field:"infra",type:"string[]",descriptions:{en:"Infrastructure",ja:"\u30A4\u30F3\u30D5\u30E9",ru:"\u0418\u043D\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430"},values:[...td]},{field:"game",type:"string[]",descriptions:{en:"Game engines / frameworks",ja:"\u30B2\u30FC\u30E0\u30A8\u30F3\u30B8\u30F3 / \u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF",ru:"\u0418\u0433\u0440\u043E\u0432\u044B\u0435 \u0434\u0432\u0438\u0436\u043A\u0438 / \u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438"},values:[...nd]},{field:"mobile",type:"string[]",descriptions:{en:"Mobile / Cross-platform",ja:"\u30E2\u30D0\u30A4\u30EB / \u30AF\u30ED\u30B9\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0",ru:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0435 / \u041A\u0440\u043E\u0441\u0441\u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u0435\u043D\u043D\u044B\u0435"},values:[...rd]},{field:"other",type:"string[]",descriptions:{en:"Other (no validation, free text)",ja:"\u305D\u306E\u4ED6\uFF08\u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\u5BFE\u8C61\u5916\u3001\u81EA\u7531\u8A18\u8FF0\uFF09",ru:"\u041F\u0440\u043E\u0447\u0435\u0435 (\u0431\u0435\u0437 \u0432\u0430\u043B\u0438\u0434\u0430\u0446\u0438\u0438, \u0441\u0432\u043E\u0431\u043E\u0434\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442)"},values:[]}];function hk(){return new Set([...gk.map(e=>e.field),"tools"])}var UN={en:{validValues:"Valid values",toolsDescription:"Tool settings (optional). Keys: vcs, browser_automation, e2e_testing, unit_testing, linting, formatting, type_checking, coverage, documentation, secret_scanning, security_analysis, unused_code, dependency_analysis"},ja:{validValues:"\u6709\u52B9\u5024",toolsDescription:"\u30C4\u30FC\u30EB\u8A2D\u5B9A\uFF08\u7701\u7565\u53EF\uFF09\u3002\u30AD\u30FC: vcs, browser_automation, e2e_testing, unit_testing, linting, formatting, type_checking, coverage, documentation, secret_scanning, security_analysis, unused_code, dependency_analysis"},ru:{validValues:"\u0414\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F",toolsDescription:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E). \u041A\u043B\u044E\u0447\u0438: vcs, browser_automation, e2e_testing, unit_testing, linting, formatting, type_checking, coverage, documentation, secret_scanning, security_analysis, unused_code, dependency_analysis"}};function vk(e="ja"){let t=UN[e],n=[];for(let o of gk)n.push(`### ${o.field} (${o.type})`),n.push(o.descriptions[e]),o.values.length>0&&n.push(`${t.validValues}: ${o.values.join(", ")}`),n.push("");return n.push("### tools (object)"),n.push(t.toolsDescription),n.push(""),n.join(`
51
+ `);for(let r of o){let i=r.trim();if(!i||i.startsWith("#"))continue;if(r.length-r.trimStart().length>=2&&n&&i.includes(":")&&!i.startsWith("- ")){let s=i.indexOf(":"),c=i.slice(0,s).trim(),u=i.slice(s+1).trim();if(c&&u){let l=t[n];l&&typeof l=="object"&&!Array.isArray(l)?l[c]=u:t[n]={[c]:u}}continue}if(i.startsWith("- ")){if(n){let s=t[n];Array.isArray(s)&&s.push(i.slice(2).trim())}}else if(i.includes(":")){let s=i.indexOf(":"),c=i.slice(0,s).trim(),u=i.slice(s+1).trim();u===""||u==="[]"?(t[c]=[],n=c):u.startsWith("[")&&u.endsWith("]")?(t[c]=u.slice(1,-1).split(",").map(l=>l.trim()).filter(Boolean),n=c):(t[c]=u,n=c)}}return t}var Wl=new Set(["typescript","javascript","python","java","csharp","cpp","c","go","rust","php","swift","kotlin","ruby","dart","r","scala","objective-c","sql","html-css","bash","elixir","haskell","perl","lua","julia","clojure","fsharp","groovy","visual-basic","powershell","erlang","ocaml","zig","nim","crystal","solidity","fortran","cobol","assembly","d","ada","v","pascal","prolog","gdscript","gdshader"]),Yl=new Set(["react","nextjs","vue","nuxt","svelte","angular","flutter","blazor","solid","astro","remix","qwik","ember","htmx","alpine","vite","electron","tauri","liftkit"]),Xl=new Set(["express","nestjs","hono","fastify","fastapi","django","flask","gin","echo","fiber","chi","spring-boot","quarkus","micronaut","ktor","laravel","symfony","slim","codeigniter","cakephp","rails","sinatra","hanami","actix-web","axum","rocket","phoenix","aspnet","vapor","play","akka-http","servant","yesod","mojolicious","dancer","ring","pedestal","dart-frog"]),Ql=new Set(["postgresql","mysql","mongodb","redis","sqlite","dynamodb","cassandra","neo4j","elasticsearch","supabase","firebase","cockroachdb"]),ed=new Set(["prisma","drizzle","typeorm","sequelize","sqlalchemy","tortoise-orm","eloquent","doctrine","activerecord","hibernate","mybatis","entity-framework","gorm","ent","diesel","sea-orm","ecto","exposed","peewee","django-orm"]),td=new Set(["docker","terraform","vercel","aws","gcp","github-actions","azure","cloudflare","fly-io","render","heroku","kubernetes","ansible","pulumi","netlify","railway"]),rd=new Set(["react-native","expo","flutter","swiftui","uikit","jetpack-compose","kotlin-multiplatform","ionic","capacitor","maui","xamarin","tauri-mobile","nativescript"]),nd=new Set(["godot","phaser","pyxel","unity","unreal","bevy","love2d","monogame","pygame","libgdx","cocos2d","defold","renpy"]),DN={typescript:{frontend:["react","nextjs","vue","nuxt","svelte","angular","solid","astro","remix","qwik","ember","htmx","alpine","vite","electron","tauri"],backend:["express","nestjs","hono","fastify"],orm:["prisma","drizzle","typeorm","sequelize"],mobile:["react-native","expo","ionic","capacitor","nativescript"]},javascript:{frontend:["react","nextjs","vue","nuxt","svelte","angular","solid","astro","remix","qwik","ember","htmx","alpine","vite","electron","tauri"],backend:["express","nestjs","hono","fastify"],orm:["prisma","drizzle","typeorm","sequelize"],mobile:["react-native","expo","ionic","capacitor","nativescript"]},python:{backend:["fastapi","django","flask"],orm:["sqlalchemy","tortoise-orm","peewee","django-orm"],game:["pygame","renpy","pyxel"]},go:{backend:["gin","echo","fiber","chi"],orm:["gorm","ent"]},rust:{frontend:["tauri"],backend:["actix-web","axum","rocket"],orm:["diesel","sea-orm"],game:["bevy"]},java:{backend:["spring-boot","quarkus","micronaut"],orm:["hibernate","mybatis"],mobile:["jetpack-compose"],game:["libgdx"]},kotlin:{backend:["spring-boot","ktor"],orm:["exposed","hibernate"],mobile:["jetpack-compose","kotlin-multiplatform"]},php:{backend:["laravel","symfony","slim","codeigniter","cakephp"],orm:["eloquent","doctrine"]},ruby:{backend:["rails","sinatra","hanami"],orm:["activerecord"]},swift:{backend:["vapor"],mobile:["swiftui","uikit"]},dart:{frontend:["flutter"],backend:["dart-frog"],mobile:["flutter"]},csharp:{backend:["aspnet"],orm:["entity-framework"],mobile:["maui","xamarin"],game:["unity","monogame"]},elixir:{backend:["phoenix"],orm:["ecto"]},scala:{backend:["play","akka-http"]},haskell:{backend:["servant","yesod"]},perl:{backend:["mojolicious","dancer"]},clojure:{backend:["ring","pedestal"]},lua:{game:["love2d","defold"]},gdscript:{game:["godot"]},cpp:{game:["unreal","cocos2d","godot"]}};function jo(e,t,n){if(n.length===0)return e;let o=new Set;for(let r of n){let i=DN[r];if(!i)continue;let a=i[t];if(a)for(let s of a)o.add(s)}return o.size===0?e:e.filter(r=>o.has(r))}function RN(e,t){let n=e.length,o=t.length,r=Array.from({length:n+1},()=>Array(o+1).fill(0));for(let i=0;i<=n;i++)r[i][0]=i;for(let i=0;i<=o;i++)r[0][i]=i;for(let i=1;i<=n;i++)for(let a=1;a<=o;a++){let s=e[i-1]===t[a-1]?0:1;r[i][a]=Math.min(r[i-1][a]+1,r[i][a-1]+1,r[i-1][a-1]+s)}return r[n][o]}function AN(e,t,n=2){let o=null,r=n+1;for(let i of t){if(Math.abs(i.length-e.length)>n)continue;let a=RN(e.toLowerCase(),i.toLowerCase());a<r&&(r=a,o=i)}return o}var ZN=[{field:"programming_languages",known:Wl},{field:"frontend",known:Yl},{field:"backend",known:Xl},{field:"database",known:Ql},{field:"orm",known:ed},{field:"infra",known:td},{field:"game",known:nd},{field:"mobile",known:rd}];function od(e){let t=[];for(let{field:n,known:o}of ZN){let r=e[n];if(Array.isArray(r))for(let i of r)typeof i=="string"&&(o.has(i)||t.push({field:n,value:i,suggestion:AN(i,o)}))}return t}var gk=[{field:"display_language",type:"string",descriptions:{en:"GoDD display language (en / ja / ru)",ja:"GoDD \u306E\u8868\u793A\u8A00\u8A9E\uFF08en / ja / ru\uFF09",ru:"\u042F\u0437\u044B\u043A \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F GoDD (en / ja / ru)"},values:["en","ja","ru"]},{field:"main_language",type:"string",descriptions:{en:"Project main language (en / ja / ru)",ja:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30A4\u30F3\u8A00\u8A9E\uFF08en / ja / ru\uFF09",ru:"\u041E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u044F\u0437\u044B\u043A \u043F\u0440\u043E\u0435\u043A\u0442\u0430 (en / ja / ru)"},values:["en","ja","ru"]},{field:"sub_languages",type:"string[]",descriptions:{en:"Team sub-languages",ja:"\u30C1\u30FC\u30E0\u306E\u30B5\u30D6\u8A00\u8A9E",ru:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u044F\u0437\u044B\u043A\u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u044B"},values:["en","ja","ru"]},{field:"programming_languages",type:"string[]",descriptions:{en:"Programming languages",ja:"\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u8A00\u8A9E",ru:"\u042F\u0437\u044B\u043A\u0438 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F"},values:[...Wl]},{field:"frontend",type:"string[]",descriptions:{en:"Frontend frameworks",ja:"\u30D5\u30ED\u30F3\u30C8\u30A8\u30F3\u30C9\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF",ru:"\u0424\u0440\u043E\u043D\u0442\u0435\u043D\u0434-\u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438"},values:[...Yl]},{field:"backend",type:"string[]",descriptions:{en:"Backend frameworks",ja:"\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF",ru:"\u0411\u044D\u043A\u0435\u043D\u0434-\u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438"},values:[...Xl]},{field:"database",type:"string[]",descriptions:{en:"Databases",ja:"\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9",ru:"\u0411\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445"},values:[...Ql]},{field:"orm",type:"string[]",descriptions:{en:"ORM",ja:"ORM",ru:"ORM"},values:[...ed]},{field:"infra",type:"string[]",descriptions:{en:"Infrastructure",ja:"\u30A4\u30F3\u30D5\u30E9",ru:"\u0418\u043D\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430"},values:[...td]},{field:"game",type:"string[]",descriptions:{en:"Game engines / frameworks",ja:"\u30B2\u30FC\u30E0\u30A8\u30F3\u30B8\u30F3 / \u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF",ru:"\u0418\u0433\u0440\u043E\u0432\u044B\u0435 \u0434\u0432\u0438\u0436\u043A\u0438 / \u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438"},values:[...nd]},{field:"mobile",type:"string[]",descriptions:{en:"Mobile / Cross-platform",ja:"\u30E2\u30D0\u30A4\u30EB / \u30AF\u30ED\u30B9\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0",ru:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0435 / \u041A\u0440\u043E\u0441\u0441\u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u0435\u043D\u043D\u044B\u0435"},values:[...rd]},{field:"other",type:"string[]",descriptions:{en:"Other (no validation, free text)",ja:"\u305D\u306E\u4ED6\uFF08\u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\u5BFE\u8C61\u5916\u3001\u81EA\u7531\u8A18\u8FF0\uFF09",ru:"\u041F\u0440\u043E\u0447\u0435\u0435 (\u0431\u0435\u0437 \u0432\u0430\u043B\u0438\u0434\u0430\u0446\u0438\u0438, \u0441\u0432\u043E\u0431\u043E\u0434\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442)"},values:[]}];function hk(){return new Set([...gk.map(e=>e.field),"tools"])}var UN={en:{validValues:"Valid values",toolsDescription:"Tool settings (optional). Keys: vcs, browser_automation, e2e_testing, unit_testing, linting, formatting, type_checking, coverage, documentation, secret_scanning, security_analysis, unused_code, dependency_analysis"},ja:{validValues:"\u6709\u52B9\u5024",toolsDescription:"\u30C4\u30FC\u30EB\u8A2D\u5B9A\uFF08\u7701\u7565\u53EF\uFF09\u3002\u30AD\u30FC: vcs, browser_automation, e2e_testing, unit_testing, linting, formatting, type_checking, coverage, documentation, secret_scanning, security_analysis, unused_code, dependency_analysis"},ru:{validValues:"\u0414\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F",toolsDescription:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 (\u043D\u0435\u043E\u0431\u044F\u0437\u0430\u0442\u0435\u043B\u044C\u043D\u043E). \u041A\u043B\u044E\u0447\u0438: vcs, browser_automation, e2e_testing, unit_testing, linting, formatting, type_checking, coverage, documentation, secret_scanning, security_analysis, unused_code, dependency_analysis"}};function vk(e="ja"){let t=UN[e],n=[];for(let o of gk)n.push(`### ${o.field} (${o.type})`),n.push(o.descriptions[e]),o.values.length>0&&n.push(`${t.validValues}: ${o.values.join(", ")}`),n.push("");return n.push("### tools (object)"),n.push(t.toolsDescription),n.push(""),n.join(`
52
52
  `)}var Rh="https://www.getgodd.dev/contact",MN={en:{header:"\u26A0 config.godd contains unrecognized values. Please fix them and try again.",problemValues:"Problematic values:",suggestion:(e,t)=>` - "${e}" \u2192 did you mean "${t}"?`,unsupported:e=>` - "${e}" \u2192 currently unsupported. Contact ${Rh} to request support.`,fixHeader:"How to fix:",fixEdit:" 1. Edit config.godd directly to correct the values",fixReinit:' 2. Or run "godd init --force" to regenerate'},ja:{header:"\u26A0 config.godd \u306B\u8A8D\u8B58\u3067\u304D\u306A\u3044\u5024\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u4FEE\u6B63\u3057\u3066\u304B\u3089\u518D\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002",problemValues:"\u554F\u984C\u306E\u3042\u308B\u5024:",suggestion:(e,t)=>` - "${e}" \u2192 \u3082\u3057\u304B\u3057\u3066 "${t}" \u3067\u3059\u304B\uFF1F`,unsupported:e=>` - "${e}" \u2192 \u73FE\u5728\u672A\u5BFE\u5FDC\u3067\u3059\u3002\u5BFE\u5FDC\u3092\u3054\u5E0C\u671B\u306E\u5834\u5408\u306F ${Rh} \u304B\u3089\u3054\u9023\u7D61\u304F\u3060\u3055\u3044\u3002`,fixHeader:"\u4FEE\u6B63\u65B9\u6CD5:",fixEdit:" 1. config.godd \u3092\u76F4\u63A5\u7DE8\u96C6\u3057\u3066\u6B63\u3057\u3044\u5024\u306B\u4FEE\u6B63\u3059\u308B",fixReinit:' 2. \u307E\u305F\u306F "godd init --force" \u3067\u518D\u751F\u6210\u3059\u308B'},ru:{header:"\u26A0 config.godd \u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F. \u0418\u0441\u043F\u0440\u0430\u0432\u044C\u0442\u0435 \u0438\u0445 \u0438 \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430.",problemValues:"\u041F\u0440\u043E\u0431\u043B\u0435\u043C\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F:",suggestion:(e,t)=>` - "${e}" \u2192 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u044B \u0438\u043C\u0435\u043B\u0438 \u0432 \u0432\u0438\u0434\u0443 "${t}"?`,unsupported:e=>` - "${e}" \u2192 \u043F\u043E\u043A\u0430 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F. \u0421\u0432\u044F\u0436\u0438\u0442\u0435\u0441\u044C \u0441 ${Rh} \u0434\u043B\u044F \u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0438.`,fixHeader:"\u041A\u0430\u043A \u0438\u0441\u043F\u0440\u0430\u0432\u0438\u0442\u044C:",fixEdit:" 1. \u041E\u0442\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u0443\u0439\u0442\u0435 config.godd \u043D\u0430\u043F\u0440\u044F\u043C\u0443\u044E, \u0443\u043A\u0430\u0437\u0430\u0432 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F",fixReinit:' 2. \u0418\u043B\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u0435 "godd init --force" \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F'}};function yk(e,t="ja"){let n=MN[t],o=new Map;for(let i of e){let a=o.get(i.field)??[];a.push(i),o.set(i.field,a)}let r=[n.header,"",n.problemValues];for(let[i,a]of o){r.push(` ${i}:`);for(let s of a)r.push(s.suggestion?n.suggestion(s.value,s.suggestion):n.unsupported(s.value))}return r.push("",n.fixHeader,n.fixEdit,n.fixReinit),r.join(`
53
- `)}var ir="0.37.1";var Ah={en:{dev:"Development (plan \u2192 implement \u2192 test \u2192 quality \u2192 docs in stages)",check:"Quality gate (verify Spec alignment, tests, types, lint, security)",docs:"Generate/update documentation",ship:"Ship (commit at proper granularity \u2192 quality check \u2192 push \u2192 create PR)",setup:"Environment setup (with recommended stack presets, confirms missing info)",review:"Review (CTO-level review + quality gate)",test:"Run/create tests",impact:"Impact analysis",commit:"Commit changes",push:"Push to remote",pr:"Create PR (template-compliant)",deploy:"Deploy (with verification & rollback plan)",adr:"Create ADR (Architecture Decision Record)",release:"Generate release notes (SemVer-compliant)",github:"GitHub configuration (repository/branch protection, etc.)",config:"Generate/repair config.godd (auto-detect stack + validation)",questions:"Interactive Q&A from question list (\u8CEA\u554F\u30EA\u30B9\u30C8.md)",e2e:"Browser-based E2E testing (execute & verify critical user flows)",benchmark:"Competitive prompt analysis (compare GoDD vs Cursor Rules / Claude Code / Codex)",map:"Project knowledge graph (visualize architecture & dependencies with Mermaid)",learn:"Save/recall project-specific patterns, conventions, and pitfalls",diagram:"Auto-update architecture diagrams (maintain living Mermaid docs in sync with code)",slide:"Generate presentation slides from project docs (Marp Markdown format)"},ja:{dev:"\u958B\u767A\uFF08\u6BB5\u968E\u7684\u306B\u8A08\u753B\u2192\u5B9F\u88C5\u2192\u30C6\u30B9\u30C8\u2192\u54C1\u8CEA\u2192\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u5B9F\u884C\uFF09",check:"\u54C1\u8CEA\u30B2\u30FC\u30C8\uFF08Spec\u6574\u5408\u30FB\u30C6\u30B9\u30C8\u30FB\u578B\u30FBLint\u30FB\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u3092\u691C\u8A3C\uFF09",docs:"\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u751F\u6210/\u66F4\u65B0",ship:"\u63D0\u51FA\uFF08\u9069\u5207\u306A\u7C92\u5EA6\u3067\u30B3\u30DF\u30C3\u30C8 \u2192 \u54C1\u8CEA\u30C1\u30A7\u30C3\u30AF \u2192 \u30D7\u30C3\u30B7\u30E5 \u2192 PR \u4F5C\u6210\uFF09",setup:"\u74B0\u5883\u69CB\u7BC9\uFF08\u63A8\u5968\u30B9\u30BF\u30C3\u30AF\u30D7\u30EA\u30BB\u30C3\u30C8\u4ED8\u304D\u30FB\u4E0D\u8DB3\u60C5\u5831\u306F\u78BA\u8A8D\uFF09",review:"\u30EC\u30D3\u30E5\u30FC\uFF08CTO \u30EC\u30D9\u30EB\u306E\u30EC\u30D3\u30E5\u30FC + \u54C1\u8CEA\u30B2\u30FC\u30C8\uFF09",test:"\u30C6\u30B9\u30C8\u5B9F\u884C/\u4F5C\u6210",impact:"\u5F71\u97FF\u5206\u6790",commit:"\u5909\u66F4\u3092\u30B3\u30DF\u30C3\u30C8",push:"\u30EA\u30E2\u30FC\u30C8\u306B\u30D7\u30C3\u30B7\u30E5",pr:"PR \u4F5C\u6210\uFF08\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u6E96\u62E0\uFF09",deploy:"\u30C7\u30D7\u30ED\u30A4\uFF08\u691C\u8A3C\u30FB\u30ED\u30FC\u30EB\u30D0\u30C3\u30AF\u8A08\u753B\u4ED8\u304D\uFF09",adr:"ADR\uFF08Architecture Decision Record\uFF09\u4F5C\u6210",release:"\u30EA\u30EA\u30FC\u30B9\u30CE\u30FC\u30C8\u751F\u6210\uFF08SemVer \u6E96\u62E0\uFF09",github:"GitHub \u8A2D\u5B9A\uFF08\u30EA\u30DD\u30B8\u30C8\u30EA/\u30D6\u30E9\u30F3\u30C1\u4FDD\u8B77\u7B49\uFF09",config:"config.godd \u3092\u6B63\u78BA\u306B\u751F\u6210\u30FB\u4FEE\u6B63\u3059\u308B\uFF08\u30B9\u30BF\u30C3\u30AF\u81EA\u52D5\u691C\u51FA + \u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\uFF09",questions:"\u8CEA\u554F\u30EA\u30B9\u30C8\uFF08\u8CEA\u554F\u30EA\u30B9\u30C8.md\uFF09\u304B\u3089\u30A4\u30F3\u30BF\u30E9\u30AF\u30C6\u30A3\u30D6\u306B\u8CEA\u554F\u3092\u7BA1\u7406",e2e:"\u30D6\u30E9\u30A6\u30B6\u30D9\u30FC\u30B9 E2E \u30C6\u30B9\u30C8\uFF08\u91CD\u8981\u30E6\u30FC\u30B6\u30FC\u30D5\u30ED\u30FC\u306E\u5B9F\u884C\u30FB\u691C\u8A3C\uFF09",benchmark:"\u7AF6\u5408\u30D7\u30ED\u30F3\u30D7\u30C8\u5206\u6790\uFF08GoDD vs Cursor Rules / Claude Code / Codex \u3092\u6BD4\u8F03\uFF09",map:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30CA\u30EC\u30C3\u30B8\u30B0\u30E9\u30D5\uFF08Mermaid \u3067\u30A2\u30FC\u30AD\u30C6\u30AF\u30C1\u30E3\u30FB\u4F9D\u5B58\u95A2\u4FC2\u3092\u53EF\u8996\u5316\uFF09",learn:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u56FA\u6709\u306E\u30D1\u30BF\u30FC\u30F3\u30FB\u6163\u4F8B\u30FB\u843D\u3068\u3057\u7A74\u3092\u4FDD\u5B58/\u53C2\u7167",diagram:"\u30A2\u30FC\u30AD\u30C6\u30AF\u30C1\u30E3\u56F3\u306E\u81EA\u52D5\u66F4\u65B0\uFF08\u30B3\u30FC\u30C9\u3068\u540C\u671F\u3057\u305F Mermaid \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u7DAD\u6301\uFF09",slide:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u304B\u3089\u30D7\u30EC\u30BC\u30F3\u30B9\u30E9\u30A4\u30C9\u3092\u751F\u6210\uFF08Marp Markdown \u5F62\u5F0F\uFF09"},ru:{dev:"\u0420\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u043A\u0430 (\u043F\u043B\u0430\u043D \u2192 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u2192 \u0442\u0435\u0441\u0442\u044B \u2192 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u043E \u2192 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044F \u043F\u043E\u044D\u0442\u0430\u043F\u043D\u043E)",check:"\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u044C \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430 (Spec, \u0442\u0435\u0441\u0442\u044B, \u0442\u0438\u043F\u044B, \u043B\u0438\u043D\u0442\u0435\u0440, \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C)",docs:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F/\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u0438",ship:"\u041E\u0442\u043F\u0440\u0430\u0432\u043A\u0430 (\u043A\u043E\u043C\u043C\u0438\u0442 \u2192 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u2192 \u043F\u0443\u0448 \u2192 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 PR)",setup:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0441\u0440\u0435\u0434\u044B (\u0441 \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u044B\u043C\u0438 \u043F\u0440\u0435\u0441\u0435\u0442\u0430\u043C\u0438 \u0441\u0442\u0435\u043A\u0430)",review:"\u0420\u0435\u0432\u044C\u044E (CTO-\u0443\u0440\u043E\u0432\u0435\u043D\u044C + \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430)",test:"\u0417\u0430\u043F\u0443\u0441\u043A/\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0442\u0435\u0441\u0442\u043E\u0432",impact:"\u0410\u043D\u0430\u043B\u0438\u0437 \u0432\u043B\u0438\u044F\u043D\u0438\u044F",commit:"\u0417\u0430\u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",push:"\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0432 \u0443\u0434\u0430\u043B\u0451\u043D\u043D\u044B\u0439 \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439",pr:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C PR (\u043F\u043E \u0448\u0430\u0431\u043B\u043E\u043D\u0443)",deploy:"\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C (\u0441 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u043E\u0439 \u0438 \u043F\u043B\u0430\u043D\u043E\u043C \u043E\u0442\u043A\u0430\u0442\u0430)",adr:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C ADR (\u0437\u0430\u043F\u0438\u0441\u044C \u0430\u0440\u0445\u0438\u0442\u0435\u043A\u0442\u0443\u0440\u043D\u043E\u0433\u043E \u0440\u0435\u0448\u0435\u043D\u0438\u044F)",release:"\u0421\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u043A \u0440\u0435\u043B\u0438\u0437\u0443 (SemVer)",github:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 GitHub (\u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439/\u0437\u0430\u0449\u0438\u0442\u0430 \u0432\u0435\u0442\u043E\u043A \u0438 \u0442.\u0434.)",config:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F/\u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 config.godd (\u0430\u0432\u0442\u043E\u0434\u0435\u0442\u0435\u043A\u0442 \u0441\u0442\u0435\u043A\u0430 + \u0432\u0430\u043B\u0438\u0434\u0430\u0446\u0438\u044F)",questions:"\u0418\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 Q&A \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432 (\u8CEA\u554F\u30EA\u30B9\u30C8.md)",e2e:"E2E-\u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 (\u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043A\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 \u043F\u043E\u0442\u043E\u043A\u043E\u0432)",benchmark:"\u041A\u043E\u043D\u043A\u0443\u0440\u0435\u043D\u0442\u043D\u044B\u0439 \u0430\u043D\u0430\u043B\u0438\u0437 \u043F\u0440\u043E\u043C\u043F\u0442\u043E\u0432 (\u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u0435 GoDD \u0441 Cursor Rules / Claude Code / Codex)",map:"\u0413\u0440\u0430\u0444 \u0437\u043D\u0430\u043D\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 (\u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0430\u0440\u0445\u0438\u0442\u0435\u043A\u0442\u0443\u0440\u044B \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0435\u0439 \u0447\u0435\u0440\u0435\u0437 Mermaid)",learn:"\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435/\u0432\u044B\u0437\u043E\u0432 \u0441\u043F\u0435\u0446\u0438\u0444\u0438\u0447\u043D\u044B\u0445 \u0434\u043B\u044F \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043F\u0430\u0442\u0442\u0435\u0440\u043D\u043E\u0432, \u0441\u043E\u0433\u043B\u0430\u0448\u0435\u043D\u0438\u0439 \u0438 \u043F\u043E\u0434\u0432\u043E\u0434\u043D\u044B\u0445 \u043A\u0430\u043C\u043D\u0435\u0439",diagram:"\u0410\u0432\u0442\u043E\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043A\u0442\u0443\u0440\u043D\u044B\u0445 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C (\u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u044B\u0445 Mermaid-\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432)",slide:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F \u0441\u043B\u0430\u0439\u0434\u043E\u0432 \u0438\u0437 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 (\u0444\u043E\u0440\u043C\u0430\u0442 Marp Markdown)"}};var LN={dev:[{name:"request",required:!0},{name:"done_when",required:!1}],check:[{name:"target",required:!1}],docs:[{name:"target",required:!1}],ship:[{name:"title",required:!1}],review:[{name:"target",required:!1},{name:"action",required:!1}],test:[{name:"target",required:!1}],impact:[{name:"target",required:!1}],commit:[{name:"message",required:!1}],pr:[{name:"title",required:!1}],deploy:[{name:"target",required:!1}],adr:[{name:"title",required:!1}],release:[{name:"tag",required:!1}],setup:[{name:"preset",required:!1}],github:[{name:"request",required:!1}],config:[],questions:[{name:"action",required:!1}],e2e:[{name:"target",required:!1},{name:"url",required:!1}],benchmark:[{name:"target",required:!1}],map:[{name:"target",required:!1}],learn:[{name:"action",required:!1}],diagram:[{name:"target",required:!1}],slide:[{name:"type",required:!1},{name:"source",required:!1}]},Zh={en:{dev:{request:"Request details",done_when:"Completion criteria"},check:{target:"Check target (omit for all recent changes)"},docs:{target:"Target file/feature"},ship:{title:"PR title"},review:{target:"Target file/PR (e.g., PR URL, PR number, file path)",action:"Post-review action (approve / request-changes / comment)"},test:{target:"Test target"},impact:{target:"Analysis target"},commit:{message:"Commit message"},pr:{title:"PR title"},deploy:{target:"Deploy target"},adr:{title:"Decision title"},release:{tag:"Target tag (omit for HEAD since last release)"},setup:{preset:"Stack preset (omakase = recommended)"},github:{request:"Configuration request"},questions:{action:"Action: list (default) / resolve <id> / add <question>"},e2e:{target:"Target page/flow to test",url:"Base URL of the application"},benchmark:{target:"Competitor system to analyze (cursor-rules / claude-code / codex / all)"},map:{target:"Target scope (module/directory/layer to visualize)"},learn:{action:"Action: save <category> <content> / recall / list / forget <id>"},diagram:{target:"Target diagram scope (architecture / module / data-flow / erd / all)"},slide:{type:"Presentation type (sprint-review / architecture / release / onboarding)",source:"Source documents to base slides on"}},ja:{dev:{request:"\u4F9D\u983C\u5185\u5BB9",done_when:"\u5B8C\u4E86\u6761\u4EF6"},check:{target:"\u30C1\u30A7\u30C3\u30AF\u5BFE\u8C61\uFF08\u7701\u7565\u6642: \u76F4\u8FD1\u306E\u5909\u66F4\u5168\u4F53\uFF09"},docs:{target:"\u5BFE\u8C61\u30D5\u30A1\u30A4\u30EB/\u6A5F\u80FD"},ship:{title:"PR \u30BF\u30A4\u30C8\u30EB"},review:{target:"\u5BFE\u8C61\u30D5\u30A1\u30A4\u30EB/PR\uFF08\u4F8B: PR URL, PR\u756A\u53F7, \u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF09",action:"\u30EC\u30D3\u30E5\u30FC\u5F8C\u306E\u30A2\u30AF\u30B7\u30E7\u30F3\uFF08approve / request-changes / comment\uFF09"},test:{target:"\u30C6\u30B9\u30C8\u5BFE\u8C61"},impact:{target:"\u5206\u6790\u5BFE\u8C61"},commit:{message:"\u30B3\u30DF\u30C3\u30C8\u30E1\u30C3\u30BB\u30FC\u30B8"},pr:{title:"PR \u30BF\u30A4\u30C8\u30EB"},deploy:{target:"\u30C7\u30D7\u30ED\u30A4\u5148"},adr:{title:"\u5224\u65AD\u306E\u30BF\u30A4\u30C8\u30EB"},release:{tag:"\u5BFE\u8C61\u30BF\u30B0\uFF08\u7701\u7565\u6642: \u76F4\u8FD1\u30EA\u30EA\u30FC\u30B9\u304B\u3089 HEAD\uFF09"},setup:{preset:"\u30B9\u30BF\u30C3\u30AF\u30D7\u30EA\u30BB\u30C3\u30C8\uFF08omakase = \u63A8\u5968\u69CB\u6210\uFF09"},github:{request:"\u8A2D\u5B9A\u5185\u5BB9"},questions:{action:"\u64CD\u4F5C: list\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8\uFF09/ resolve <id> / add <\u8CEA\u554F\u6587>"},e2e:{target:"\u30C6\u30B9\u30C8\u5BFE\u8C61\u306E\u30DA\u30FC\u30B8/\u30D5\u30ED\u30FC",url:"\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30D9\u30FC\u30B9 URL"},benchmark:{target:"\u5206\u6790\u5BFE\u8C61\u306E\u7AF6\u5408\uFF08cursor-rules / claude-code / codex / all\uFF09"},map:{target:"\u53EF\u8996\u5316\u5BFE\u8C61\uFF08\u30E2\u30B8\u30E5\u30FC\u30EB/\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA/\u30EC\u30A4\u30E4\u30FC\uFF09"},learn:{action:"\u64CD\u4F5C: save <\u30AB\u30C6\u30B4\u30EA> <\u5185\u5BB9> / recall / list / forget <id>"},diagram:{target:"\u56F3\u306E\u5BFE\u8C61\u7BC4\u56F2\uFF08architecture / module / data-flow / erd / all\uFF09"},slide:{type:"\u30D7\u30EC\u30BC\u30F3\u7A2E\u985E\uFF08sprint-review / architecture / release / onboarding\uFF09",source:"\u30BD\u30FC\u30B9\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8"}},ru:{dev:{request:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",done_when:"\u041A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F"},check:{target:"\u041E\u0431\u044A\u0435\u043A\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: \u0432\u0441\u0435 \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F)"},docs:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u0444\u0430\u0439\u043B/\u0444\u0443\u043D\u043A\u0446\u0438\u044F"},ship:{title:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A PR"},review:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u0444\u0430\u0439\u043B/PR (URL PR, \u043D\u043E\u043C\u0435\u0440 PR, \u043F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443)",action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043F\u043E\u0441\u043B\u0435 \u0440\u0435\u0432\u044C\u044E (approve / request-changes / comment)"},test:{target:"\u041E\u0431\u044A\u0435\u043A\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F"},impact:{target:"\u041E\u0431\u044A\u0435\u043A\u0442 \u0430\u043D\u0430\u043B\u0438\u0437\u0430"},commit:{message:"\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u043C\u0438\u0442\u0430"},pr:{title:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A PR"},deploy:{target:"\u0426\u0435\u043B\u044C \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F"},adr:{title:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0440\u0435\u0448\u0435\u043D\u0438\u044F"},release:{tag:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u0442\u0435\u0433 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: \u043E\u0442 HEAD \u0434\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0440\u0435\u043B\u0438\u0437\u0430)"},setup:{preset:"\u041F\u0440\u0435\u0441\u0435\u0442 \u0441\u0442\u0435\u043A\u0430 (omakase = \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u0430\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F)"},github:{request:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438"},questions:{action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435: list (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E) / resolve <id> / add <\u0432\u043E\u043F\u0440\u043E\u0441>"},e2e:{target:"\u0426\u0435\u043B\u0435\u0432\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430/\u043F\u043E\u0442\u043E\u043A \u0434\u043B\u044F \u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",url:"\u0411\u0430\u0437\u043E\u0432\u044B\u0439 URL \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F"},benchmark:{target:"\u041A\u043E\u043D\u043A\u0443\u0440\u0435\u043D\u0442\u043D\u0430\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0430 \u0434\u043B\u044F \u0430\u043D\u0430\u043B\u0438\u0437\u0430 (cursor-rules / claude-code / codex / all)"},map:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 (\u043C\u043E\u0434\u0443\u043B\u044C/\u043A\u0430\u0442\u0430\u043B\u043E\u0433/\u0441\u043B\u043E\u0439 \u0434\u043B\u044F \u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438)"},learn:{action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435: save <\u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F> <\u0441\u043E\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u0435> / recall / list / forget <id>"},diagram:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B (architecture / module / data-flow / erd / all)"},slide:{type:"\u0422\u0438\u043F \u043F\u0440\u0435\u0437\u0435\u043D\u0442\u0430\u0446\u0438\u0438 (sprint-review / architecture / release / onboarding)",source:"\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B"}}},qN=["dev","check","docs","ship","setup","review","test","impact","commit","push","pr","deploy","adr","release","github","config","questions","e2e","benchmark","map","learn","diagram","slide"];var Uh={dev:{slugs:["common","dev"]},ship:{slugs:["common","commit","push","pr","check"]},review:{slugs:["common","review","check"]}};var _k=new Set(["dev","review","setup","test","impact","docs","check","deploy","adr","release","e2e","benchmark","map","learn","diagram","slide"]);function $k(e){return e in Uh||_k.has(e)}function bk(e){if(Uh[e])return Uh[e].slugs;if(_k.has(e))return["common",e]}var Mh=new Set(["config","questions"]);function Lh(e="en"){let t=V.toolPrefix,n=Ah[e]??Ah.en;return qN.map(o=>({name:`${t}${o}`,description:n[o]??Ah.en[o]}))}function xk(e="en"){let t=V.toolPrefix,n=Zh[e]??Zh.en,o=Zh.en;return Lh(e).map(r=>{let i=r.name.replace(t,""),a=LN[i]??[];return{name:r.name,description:r.description,inputSchema:{type:"object",properties:Object.fromEntries(a.map(s=>[s.name,{type:"string",description:n[i]?.[s.name]??o[i]?.[s.name]??s.name}])),required:a.filter(s=>s.required).map(s=>s.name)}}})}var Co=require("node:fs"),Ek=require("node:path");var Ue=require("node:fs"),Ot=require("node:path"),Ik=require("node:readline"),ad=require("node:child_process");var FN={selectDisplayLanguage:"Select display language:",selectMainLanguage:"Select the main language for your project:",selectSubLanguages:"Select sub-languages used in your team:",selectSubLanguagesHint:"(comma-separated numbers, or press Enter to skip)",skipSubLanguages:"No sub-languages selected.",scanningProject:"Scanning project...",detectedStack:"Detected stack:",confirmStack:"Is this correct?",manualStackEntry:"Please select your tech stack manually.",selectProjectType:"What are you building? (select all that apply)",projectTypes:{web:"Web App (frontend + backend)",api:"API / Backend only",mobile:"Mobile App",game:"Game",cli:"CLI / Library / Script",desktop:"Desktop App"},selectProgrammingLanguages:"Programming languages:",selectFrontend:"Frontend frameworks:",selectBackend:"Backend frameworks:",selectDatabase:"Databases:",selectOrm:"ORM:",selectInfra:"Infrastructure:",selectGame:"Game engines / frameworks:",selectMobile:"Mobile / Cross-platform:",toolRecommendationsTitle:"Recommended tools for your stack:",toolInstallMode:"How would you like to install?",toolInstallDefault:"Default (install all)",toolInstallCustom:"Custom (choose individually)",toolInstallSkip:"Skip (install later)",toolInstallPrompt:"Install?",toolInstalling:"Installing",toolInstallSuccess:"Installed successfully.",toolInstallFailed:"Installation failed. You can install it later via setup prompt.",toolUniversalTag:"all projects",toolStackSpecificTag:"your stack",toolCategories:{vcs:"Version Control",browser_automation:"Browser Automation",e2e_testing:"E2E Testing",unit_testing:"Unit Testing",linting:"Linting",formatting:"Formatting",type_checking:"Type Checking",coverage:"Coverage",documentation:"Documentation",secret_scanning:"Secret Scanning",security_analysis:"Security Analysis",unused_code:"Unused Code Detection",dependency_analysis:"Dependency Analysis"},githubDetected:"GitHub repository detected. Configuring auto-delete for merged branches...",githubConfigSuccess:"\u2713 Merged branches will be auto-deleted on GitHub.",githubConfigFailed:"\u2717 Could not configure auto-delete. Run `gh repo edit --delete-branch-on-merge` manually.",configCreated:"Generated",configExists:"already exists",configOverwritten:"Overwritten",useForceFlag:"Use --force to overwrite.",languages:"Languages",frontend:"Frontend",backend:"Backend",database:"Database",orm:"ORM",infra:"Infra",game:"Game",mobile:"Mobile",pressEnterToClose:"Press Enter to close...",unknownCommand:"Unknown command",usage:"Usage:",installSuccess:"Registered with Cursor!",installUpdated:"Configuration updated",installUnchanged:"Already up to date",licenseNotSet:"License key is not set. Set GODD_LICENSE_KEY environment variable or run: godd install --license-key=YOUR_KEY",restartCursor:"Restart Cursor to activate the MCP server.",installFailed:"Installation failed:",uninstallTitle:"Uninstall",uninstallSuccess:"Removed from Cursor",uninstallNotFound:"Not found (already removed)",uninstallFailed:"Uninstall failed:",initTitle:"Project initialization",initAutoHint:"Non-interactive mode (--auto): stack scan + config only; tool install wizard skipped. Use interactive init when you need guided tool setup.",yes:"Yes",no:"No",none:"None",invalidChoice:"Invalid choice. Please try again.",enterNumbers:"Enter numbers",updateAvailable:"A newer version is available:",updateCurrent:"current:",licenseMissing:"GODD_LICENSE_KEY environment variable is not set.",licenseMissingHint:"Re-register with: godd install --license-key=YOUR_KEY",licenseFailed:"License validation failed",configNotFound:"not found in project directory.",configNotFoundHint:'Run "godd init" to generate project configuration for better prompt accuracy.',configUnknownValues:"contains unknown values:",didYouMean:"did you mean",serverStarted:"started (stdio)",corruptMcpJson:"is corrupt. Backed up to {backup} and creating a fresh config.",licenseNotConfigured:"License key is not configured. Set GODD_LICENSE_KEY and restart Cursor.",resolvePromptFailed:"Failed to resolve prompt",resolveToolFailed:"Failed to resolve tool",localToolFailed:"Local tool execution failed",helpInstall:"Register MCP server into Cursor",helpInit:"Initialize project (interactive; use --auto for scan-only)",helpUninstall:"Remove MCP server from Cursor",helpServe:"Start MCP stdio server (called by Cursor)",fatalError:"Fatal error",compositeMissingSlugs:"WARNING: The following sections could not be loaded"},VN={selectDisplayLanguage:"\u8868\u793A\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",selectMainLanguage:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30A4\u30F3\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",selectSubLanguages:"\u30C1\u30FC\u30E0\u3067\u4F7F\u7528\u3059\u308B\u30B5\u30D6\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",selectSubLanguagesHint:"(\u30AB\u30F3\u30DE\u533A\u5207\u308A\u306E\u756A\u53F7\u3001\u307E\u305F\u306FEnter\u3067\u30B9\u30AD\u30C3\u30D7)",skipSubLanguages:"\u30B5\u30D6\u8A00\u8A9E\u306F\u9078\u629E\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002",scanningProject:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u30B9\u30AD\u30E3\u30F3\u4E2D...",detectedStack:"\u691C\u51FA\u3055\u308C\u305F\u30B9\u30BF\u30C3\u30AF:",confirmStack:"\u3053\u306E\u5185\u5BB9\u3067\u6B63\u3057\u3044\u3067\u3059\u304B\uFF1F",manualStackEntry:"\u6280\u8853\u30B9\u30BF\u30C3\u30AF\u3092\u624B\u52D5\u3067\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",selectProjectType:"\u4F55\u3092\u4F5C\u308A\u307E\u3059\u304B\uFF1F\uFF08\u8A72\u5F53\u3059\u308B\u3082\u306E\u3092\u3059\u3079\u3066\u9078\u629E\uFF09",projectTypes:{web:"Web \u30A2\u30D7\u30EA\uFF08\u30D5\u30ED\u30F3\u30C8 + \u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\uFF09",api:"API / \u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u306E\u307F",mobile:"\u30E2\u30D0\u30A4\u30EB\u30A2\u30D7\u30EA",game:"\u30B2\u30FC\u30E0",cli:"CLI / \u30E9\u30A4\u30D6\u30E9\u30EA / \u30B9\u30AF\u30EA\u30D7\u30C8",desktop:"\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7\u30A2\u30D7\u30EA"},selectProgrammingLanguages:"\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u8A00\u8A9E:",selectFrontend:"\u30D5\u30ED\u30F3\u30C8\u30A8\u30F3\u30C9\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF:",selectBackend:"\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF:",selectDatabase:"\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9:",selectOrm:"ORM:",selectInfra:"\u30A4\u30F3\u30D5\u30E9:",selectGame:"\u30B2\u30FC\u30E0\u30A8\u30F3\u30B8\u30F3 / \u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF:",selectMobile:"\u30E2\u30D0\u30A4\u30EB / \u30AF\u30ED\u30B9\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0:",toolRecommendationsTitle:"\u30B9\u30BF\u30C3\u30AF\u306B\u63A8\u5968\u3055\u308C\u308B\u30C4\u30FC\u30EB:",toolInstallMode:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u65B9\u6CD5\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",toolInstallDefault:"\u30C7\u30D5\u30A9\u30EB\u30C8\uFF08\u3059\u3079\u3066\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\uFF09",toolInstallCustom:"\u30AB\u30B9\u30BF\u30E0\uFF08\u500B\u5225\u306B\u9078\u629E\uFF09",toolInstallSkip:"\u30B9\u30AD\u30C3\u30D7\uFF08\u5F8C\u3067\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\uFF09",toolInstallPrompt:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B\uFF1F",toolInstalling:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u4E2D",toolInstallSuccess:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002",toolInstallFailed:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002setup \u30D7\u30ED\u30F3\u30D7\u30C8\u3067\u5F8C\u304B\u3089\u5BFE\u5FDC\u3067\u304D\u307E\u3059\u3002",toolUniversalTag:"\u5168\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5171\u901A",toolStackSpecificTag:"\u30B9\u30BF\u30C3\u30AF\u56FA\u6709",toolCategories:{vcs:"\u30D0\u30FC\u30B8\u30E7\u30F3\u7BA1\u7406",browser_automation:"\u30D6\u30E9\u30A6\u30B6\u81EA\u52D5\u5316",e2e_testing:"E2E \u30C6\u30B9\u30C8",unit_testing:"\u30E6\u30CB\u30C3\u30C8\u30C6\u30B9\u30C8",linting:"\u30EA\u30F3\u30BF\u30FC",formatting:"\u30D5\u30A9\u30FC\u30DE\u30C3\u30BF\u30FC",type_checking:"\u578B\u30C1\u30A7\u30C3\u30AF",coverage:"\u30AB\u30D0\u30EC\u30C3\u30B8",documentation:"\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u751F\u6210",secret_scanning:"\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u30B9\u30AD\u30E3\u30F3",security_analysis:"\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u5206\u6790",unused_code:"\u672A\u4F7F\u7528\u30B3\u30FC\u30C9\u691C\u51FA",dependency_analysis:"\u4F9D\u5B58\u5206\u6790"},githubDetected:"GitHub \u30EA\u30DD\u30B8\u30C8\u30EA\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u30DE\u30FC\u30B8\u6E08\u307F\u30D6\u30E9\u30F3\u30C1\u306E\u81EA\u52D5\u524A\u9664\u3092\u8A2D\u5B9A\u4E2D...",githubConfigSuccess:"\u2713 \u30DE\u30FC\u30B8\u6E08\u307F\u30D6\u30E9\u30F3\u30C1\u306F GitHub \u4E0A\u3067\u81EA\u52D5\u524A\u9664\u3055\u308C\u307E\u3059\u3002",githubConfigFailed:"\u2717 \u81EA\u52D5\u524A\u9664\u306E\u8A2D\u5B9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u624B\u52D5\u3067 `gh repo edit --delete-branch-on-merge` \u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002",configCreated:"\u3092\u751F\u6210\u3057\u307E\u3057\u305F",configExists:"\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059",configOverwritten:"\u3092\u4E0A\u66F8\u304D\u3057\u307E\u3057\u305F",useForceFlag:"\u4E0A\u66F8\u304D\u3059\u308B\u5834\u5408\u306F --force \u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002",languages:"\u8A00\u8A9E",frontend:"\u30D5\u30ED\u30F3\u30C8\u30A8\u30F3\u30C9",backend:"\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9",database:"\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9",orm:"ORM",infra:"\u30A4\u30F3\u30D5\u30E9",game:"\u30B2\u30FC\u30E0",mobile:"\u30E2\u30D0\u30A4\u30EB",pressEnterToClose:"Enter \u30AD\u30FC\u3092\u62BC\u3059\u3068\u9589\u3058\u307E\u3059...",unknownCommand:"\u4E0D\u660E\u306A\u30B3\u30DE\u30F3\u30C9",usage:"\u4F7F\u3044\u65B9:",installSuccess:"Cursor \u306B\u767B\u9332\u3057\u307E\u3057\u305F\uFF01",installUpdated:"\u8A2D\u5B9A\u3092\u66F4\u65B0\u3057\u307E\u3057\u305F",installUnchanged:"\u65E2\u306B\u6700\u65B0\u306E\u8A2D\u5B9A\u3067\u3059",licenseNotSet:"\u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u304C\u672A\u8A2D\u5B9A\u3067\u3059\u3002\u74B0\u5883\u5909\u6570 GODD_LICENSE_KEY \u3092\u8A2D\u5B9A\u3059\u308B\u304B\u3001godd install --license-key=YOUR_KEY \u3067\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\u3002",restartCursor:"Cursor \u3092\u518D\u8D77\u52D5\u3059\u308B\u3068 MCP \u30B5\u30FC\u30D0\u30FC\u304C\u6709\u52B9\u306B\u306A\u308A\u307E\u3059\u3002",installFailed:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F:",uninstallTitle:"\u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",uninstallSuccess:"Cursor \u304B\u3089\u524A\u9664\u3057\u307E\u3057\u305F",uninstallNotFound:"\u767B\u9332\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u65E2\u306B\u524A\u9664\u6E08\u307F\uFF09",uninstallFailed:"\u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F:",initTitle:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u521D\u671F\u5316",initAutoHint:"\u975E\u5BFE\u8A71\u30E2\u30FC\u30C9\uFF08--auto\uFF09: \u30B9\u30BF\u30C3\u30AF\u81EA\u52D5\u691C\u51FA\u3068 config.godd \u306E\u307F\u3002\u30C4\u30FC\u30EB\u5C0E\u5165\u30A6\u30A3\u30B6\u30FC\u30C9\u306F\u7701\u7565\u3055\u308C\u307E\u3059\u3002\u624B\u52D5\u3067\u30C4\u30FC\u30EB\u3092\u9078\u3073\u305F\u3044\u5834\u5408\u306F\u5BFE\u8A71\u5F0F init \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002",yes:"\u306F\u3044",no:"\u3044\u3044\u3048",none:"\u306A\u3057",invalidChoice:"\u7121\u52B9\u306A\u9078\u629E\u3067\u3059\u3002\u3082\u3046\u4E00\u5EA6\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",enterNumbers:"\u756A\u53F7\u3092\u5165\u529B",updateAvailable:"\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059:",updateCurrent:"\u73FE\u5728:",licenseMissing:"GODD_LICENSE_KEY \u74B0\u5883\u5909\u6570\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",licenseMissingHint:"godd install --license-key=YOUR_KEY \u3067\u518D\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\u3002",licenseFailed:"\u30E9\u30A4\u30BB\u30F3\u30B9\u691C\u8A3C\u5931\u6557",configNotFound:"\u304C\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002",configNotFoundHint:"\u300Cgodd init\u300D\u3092\u5B9F\u884C\u3057\u3066\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A2D\u5B9A\u3092\u751F\u6210\u3059\u308B\u3068\u3001\u30D7\u30ED\u30F3\u30D7\u30C8\u306E\u7CBE\u5EA6\u304C\u5411\u4E0A\u3057\u307E\u3059\u3002",configUnknownValues:"\u306B\u4E0D\u660E\u306A\u5024\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059:",didYouMean:"\u3082\u3057\u304B\u3057\u3066",serverStarted:"\u3092\u8D77\u52D5\u3057\u307E\u3057\u305F (stdio)",corruptMcpJson:"\u304C\u58CA\u308C\u3066\u3044\u307E\u3059\u3002{backup} \u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3092\u4F5C\u6210\u3057\u3001\u65B0\u898F\u8A2D\u5B9A\u3092\u4F5C\u6210\u3057\u307E\u3059\u3002",licenseNotConfigured:"\u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002GODD_LICENSE_KEY \u3092\u8A2D\u5B9A\u3057\u3066 Cursor \u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u3002",resolvePromptFailed:"\u30D7\u30ED\u30F3\u30D7\u30C8\u306E\u89E3\u6C7A\u306B\u5931\u6557\u3057\u307E\u3057\u305F",resolveToolFailed:"\u30C4\u30FC\u30EB\u306E\u89E3\u6C7A\u306B\u5931\u6557\u3057\u307E\u3057\u305F",localToolFailed:"\u30ED\u30FC\u30AB\u30EB\u30C4\u30FC\u30EB\u306E\u5B9F\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F",helpInstall:"MCP \u30B5\u30FC\u30D0\u30FC\u3092 Cursor \u306B\u767B\u9332",helpInit:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u521D\u671F\u5316\uFF08\u5BFE\u8A71\u5F0F\uFF0F--auto \u3067\u30B9\u30AD\u30E3\u30F3\u306E\u307F\uFF09",helpUninstall:"MCP \u30B5\u30FC\u30D0\u30FC\u3092 Cursor \u304B\u3089\u524A\u9664",helpServe:"MCP stdio \u30B5\u30FC\u30D0\u30FC\u3092\u8D77\u52D5\uFF08Cursor \u304C\u547C\u3073\u51FA\u3057\uFF09",fatalError:"\u81F4\u547D\u7684\u306A\u30A8\u30E9\u30FC",compositeMissingSlugs:"\u8B66\u544A: \u4EE5\u4E0B\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F"},GN={selectDisplayLanguage:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u044F\u0437\u044B\u043A \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F:",selectMainLanguage:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u044F\u0437\u044B\u043A \u043F\u0440\u043E\u0435\u043A\u0442\u0430:",selectSubLanguages:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u044F\u0437\u044B\u043A\u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u044B:",selectSubLanguagesHint:"(\u043D\u043E\u043C\u0435\u0440\u0430 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E \u0438\u043B\u0438 Enter \u0434\u043B\u044F \u043F\u0440\u043E\u043F\u0443\u0441\u043A\u0430)",skipSubLanguages:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u044F\u0437\u044B\u043A\u0438 \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u044B.",scanningProject:"\u0421\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u043F\u0440\u043E\u0435\u043A\u0442\u0430...",detectedStack:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0439 \u0441\u0442\u0435\u043A:",confirmStack:"\u0412\u0441\u0451 \u0432\u0435\u0440\u043D\u043E?",manualStackEntry:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0435\u0445\u043D\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0441\u0442\u0435\u043A \u0432\u0440\u0443\u0447\u043D\u0443\u044E.",selectProjectType:"\u0427\u0442\u043E \u0432\u044B \u0441\u043E\u0437\u0434\u0430\u0451\u0442\u0435? (\u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0441\u0435 \u043F\u043E\u0434\u0445\u043E\u0434\u044F\u0449\u0438\u0435)",projectTypes:{web:"\u0412\u0435\u0431-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 (\u0444\u0440\u043E\u043D\u0442\u0435\u043D\u0434 + \u0431\u044D\u043A\u0435\u043D\u0434)",api:"API / \u0442\u043E\u043B\u044C\u043A\u043E \u0431\u044D\u043A\u0435\u043D\u0434",mobile:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435",game:"\u0418\u0433\u0440\u0430",cli:"CLI / \u0411\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430 / \u0421\u043A\u0440\u0438\u043F\u0442",desktop:"\u0414\u0435\u0441\u043A\u0442\u043E\u043F\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435"},selectProgrammingLanguages:"\u042F\u0437\u044B\u043A\u0438 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F:",selectFrontend:"\u0424\u0440\u043E\u043D\u0442\u0435\u043D\u0434-\u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438:",selectBackend:"\u0411\u044D\u043A\u0435\u043D\u0434-\u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438:",selectDatabase:"\u0411\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445:",selectOrm:"ORM:",selectInfra:"\u0418\u043D\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430:",selectGame:"\u0418\u0433\u0440\u043E\u0432\u044B\u0435 \u0434\u0432\u0438\u0436\u043A\u0438 / \u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438:",selectMobile:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0435 / \u043A\u0440\u043E\u0441\u0441\u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u0435\u043D\u043D\u044B\u0435:",toolRecommendationsTitle:"\u0420\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B \u0434\u043B\u044F \u0432\u0430\u0448\u0435\u0433\u043E \u0441\u0442\u0435\u043A\u0430:",toolInstallMode:"\u041A\u0430\u043A \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C?",toolInstallDefault:"\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E (\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0441\u0435)",toolInstallCustom:"\u0412\u044B\u0431\u043E\u0440\u043E\u0447\u043D\u043E (\u0432\u044B\u0431\u0440\u0430\u0442\u044C \u043F\u043E \u043E\u0434\u043D\u043E\u043C\u0443)",toolInstallSkip:"\u041F\u0440\u043E\u043F\u0443\u0441\u0442\u0438\u0442\u044C (\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0437\u0436\u0435)",toolInstallPrompt:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C?",toolInstalling:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0430",toolInstallSuccess:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E \u0443\u0441\u043F\u0435\u0448\u043D\u043E.",toolInstallFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C. \u041C\u043E\u0436\u043D\u043E \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0437\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 setup.",toolUniversalTag:"\u0432\u0441\u0435 \u043F\u0440\u043E\u0435\u043A\u0442\u044B",toolStackSpecificTag:"\u0434\u043B\u044F \u0432\u0430\u0448\u0435\u0433\u043E \u0441\u0442\u0435\u043A\u0430",toolCategories:{vcs:"\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u044C \u0432\u0435\u0440\u0441\u0438\u0439",browser_automation:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044F \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430",e2e_testing:"E2E \u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",unit_testing:"\u042E\u043D\u0438\u0442-\u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",linting:"\u041B\u0438\u043D\u0442\u0438\u043D\u0433",formatting:"\u0424\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",type_checking:"\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0442\u0438\u043F\u043E\u0432",coverage:"\u041F\u043E\u043A\u0440\u044B\u0442\u0438\u0435 \u043A\u043E\u0434\u0430",documentation:"\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044F",secret_scanning:"\u0421\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0441\u0435\u043A\u0440\u0435\u0442\u043E\u0432",security_analysis:"\u0410\u043D\u0430\u043B\u0438\u0437 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438",unused_code:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u0438\u0435 \u043D\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u043E\u0433\u043E \u043A\u043E\u0434\u0430",dependency_analysis:"\u0410\u043D\u0430\u043B\u0438\u0437 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0435\u0439"},githubDetected:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0451\u043D GitHub-\u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439. \u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0430\u0432\u0442\u043E\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0451\u043D\u043D\u044B\u0445 \u0432\u0435\u0442\u043E\u043A...",githubConfigSuccess:"\u2713 \u041E\u0431\u044A\u0435\u0434\u0438\u043D\u0451\u043D\u043D\u044B\u0435 \u0432\u0435\u0442\u043A\u0438 \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0443\u0434\u0430\u043B\u044F\u0442\u044C\u0441\u044F \u043D\u0430 GitHub.",githubConfigFailed:"\u2717 \u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435. \u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 `gh repo edit --delete-branch-on-merge` \u0432\u0440\u0443\u0447\u043D\u0443\u044E.",configCreated:"\u0421\u043E\u0437\u0434\u0430\u043D",configExists:"\u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442",configOverwritten:"\u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0430\u043D",useForceFlag:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 --force \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0438.",languages:"\u042F\u0437\u044B\u043A\u0438",frontend:"\u0424\u0440\u043E\u043D\u0442\u0435\u043D\u0434",backend:"\u0411\u044D\u043A\u0435\u043D\u0434",database:"\u0411\u0430\u0437\u0430 \u0434\u0430\u043D\u043D\u044B\u0445",orm:"ORM",infra:"\u0418\u043D\u0444\u0440\u0430",game:"\u0418\u0433\u0440\u044B",mobile:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0435",pressEnterToClose:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 Enter \u0434\u043B\u044F \u0432\u044B\u0445\u043E\u0434\u0430...",unknownCommand:"\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043A\u043E\u043C\u0430\u043D\u0434\u0430",usage:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435:",installSuccess:"\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u0432 Cursor!",installUpdated:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430",installUnchanged:"\u0423\u0436\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E",licenseNotSet:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u043E\u043D\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u043D\u0435 \u0437\u0430\u0434\u0430\u043D. \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 GODD_LICENSE_KEY \u0438\u043B\u0438 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435: godd install --license-key=YOUR_KEY",restartCursor:"\u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 Cursor \u0434\u043B\u044F \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u0438 MCP-\u0441\u0435\u0440\u0432\u0435\u0440\u0430.",installFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438:",uninstallTitle:"\u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435",uninstallSuccess:"\u0423\u0434\u0430\u043B\u0435\u043D\u043E \u0438\u0437 Cursor",uninstallNotFound:"\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E (\u0443\u0436\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u043E)",uninstallFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F:",initTitle:"\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043F\u0440\u043E\u0435\u043A\u0442\u0430",initAutoHint:"\u041D\u0435\u0438\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0440\u0435\u0436\u0438\u043C (--auto): \u0442\u043E\u043B\u044C\u043A\u043E \u0430\u0432\u0442\u043E\u0441\u043A\u0430\u043D \u0441\u0442\u0435\u043A\u0430 \u0438 config; \u043C\u0430\u0441\u0442\u0435\u0440 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0440\u043E\u043F\u0443\u0449\u0435\u043D. \u0414\u043B\u044F \u0432\u044B\u0431\u043E\u0440\u0430 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0438\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 init.",yes:"\u0414\u0430",no:"\u041D\u0435\u0442",none:"\u041D\u0435\u0442",invalidChoice:"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u044B\u0431\u043E\u0440. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437.",enterNumbers:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u043E\u043C\u0435\u0440\u0430",updateAvailable:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u043D\u043E\u0432\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F:",updateCurrent:"\u0442\u0435\u043A\u0443\u0449\u0430\u044F:",licenseMissing:"\u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u0441\u0440\u0435\u0434\u044B GODD_LICENSE_KEY \u043D\u0435 \u0437\u0430\u0434\u0430\u043D\u0430.",licenseMissingHint:"\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0439\u0442\u0435: godd install --license-key=YOUR_KEY",licenseFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438",configNotFound:"\u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430.",configNotFoundHint:'\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 "godd init" \u0434\u043B\u044F \u0433\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430.',configUnknownValues:"\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F:",didYouMean:"\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u044B \u0438\u043C\u0435\u043B\u0438 \u0432 \u0432\u0438\u0434\u0443",serverStarted:"\u0437\u0430\u043F\u0443\u0449\u0435\u043D (stdio)",corruptMcpJson:"\u043F\u043E\u0432\u0440\u0435\u0436\u0434\u0451\u043D. \u0420\u0435\u0437\u0435\u0440\u0432\u043D\u0430\u044F \u043A\u043E\u043F\u0438\u044F: {backup}. \u0421\u043E\u0437\u0434\u0430\u0451\u0442\u0441\u044F \u043D\u043E\u0432\u0430\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F.",licenseNotConfigured:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u043E\u043D\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D. \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 GODD_LICENSE_KEY \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 Cursor.",resolvePromptFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u043F\u0440\u043E\u043C\u043F\u0442",resolveToolFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442",localToolFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430",helpInstall:"\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C MCP-\u0441\u0435\u0440\u0432\u0435\u0440 \u0432 Cursor",helpInit:"\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0435\u043A\u0442 (\u0438\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u043E; --auto \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435)",helpUninstall:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C MCP-\u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u0437 Cursor",helpServe:"\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C MCP stdio-\u0441\u0435\u0440\u0432\u0435\u0440 (\u0432\u044B\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F Cursor)",fatalError:"\u041A\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430",compositeMissingSlugs:"\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415: \u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043B\u044B \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C"},kk={en:FN,ja:VN,ru:GN};function Se(e){return kk[e]??kk.en}var qh={en:"English",ja:"\u65E5\u672C\u8A9E",ru:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"};var $=e=>({win32:e,darwin:e,linux:e}),_=(e,...t)=>t.some(n=>e.programming_languages.includes(n)),pn=(e,...t)=>t.some(n=>e.mobile.includes(n)),JN=[{category:"vcs",tool:"gh",installCmd:{win32:"winget install GitHub.cli",darwin:"brew install gh",linux:'(type -p wget >/dev/null || sudo apt-get install wget -y) && sudo mkdir -p -m 755 /etc/apt/keyrings && out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg && cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null && sudo apt-get update && sudo apt-get install gh -y'},universal:!0,condition:()=>!0},{category:"browser_automation",tool:"browser-use",installCmd:$("pip install --upgrade browser-use"),universal:!0,condition:()=>!0},{category:"secret_scanning",tool:"gitleaks",installCmd:{win32:"winget install Gitleaks.Gitleaks",darwin:"brew install gitleaks",linux:"go install github.com/gitleaks/gitleaks/v8@latest"},universal:!0,condition:()=>!0},{category:"e2e_testing",tool:"playwright",installCmd:$("npm i -D @playwright/test@latest && npx playwright install"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"unit_testing",tool:"vitest",installCmd:$("npm i -D vitest@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"linting",tool:"biome",installCmd:$("npm i -D @biomejs/biome@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"formatting",tool:"biome",installCmd:$("npm i -D @biomejs/biome@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"type_checking",tool:"typescript",installCmd:$("npm i -D typescript@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"coverage",tool:"@vitest/coverage-v8",installCmd:$("npm i -D @vitest/coverage-v8@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"unused_code",tool:"knip",installCmd:$("npm i -D knip@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"dependency_analysis",tool:"dependency-cruiser",installCmd:$("npm i -D dependency-cruiser@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"documentation",tool:"typedoc",installCmd:$("npm i -D typedoc@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"e2e_testing",tool:"pytest",installCmd:$("pip install --upgrade pytest httpx pytest-asyncio"),universal:!1,condition:e=>_(e,"python")},{category:"unit_testing",tool:"pytest",installCmd:$("pip install --upgrade pytest"),universal:!1,condition:e=>_(e,"python")},{category:"linting",tool:"ruff",installCmd:$("pip install --upgrade ruff"),universal:!1,condition:e=>_(e,"python")},{category:"formatting",tool:"ruff",installCmd:$("pip install --upgrade ruff"),universal:!1,condition:e=>_(e,"python")},{category:"type_checking",tool:"pyright",installCmd:$("pip install --upgrade pyright"),universal:!1,condition:e=>_(e,"python")},{category:"coverage",tool:"pytest-cov",installCmd:$("pip install --upgrade pytest-cov"),universal:!1,condition:e=>_(e,"python")},{category:"unused_code",tool:"vulture",installCmd:$("pip install --upgrade vulture"),universal:!1,condition:e=>_(e,"python")},{category:"dependency_analysis",tool:"pipdeptree",installCmd:$("pip install --upgrade pipdeptree"),universal:!1,condition:e=>_(e,"python")},{category:"documentation",tool:"mkdocs",installCmd:$("pip install --upgrade mkdocs mkdocs-material"),universal:!1,condition:e=>_(e,"python")},{category:"security_analysis",tool:"bandit",installCmd:$("pip install --upgrade bandit"),universal:!1,condition:e=>_(e,"python")},{category:"unit_testing",tool:"testify",installCmd:$("go get github.com/stretchr/testify@latest"),universal:!1,condition:e=>_(e,"go")},{category:"formatting",tool:"gofmt",installCmd:$("echo gofmt \u2014 built-in with Go toolchain"),universal:!1,condition:e=>_(e,"go")},{category:"coverage",tool:"go-cover",installCmd:$("echo go test -cover \u2014 built-in with Go toolchain"),universal:!1,condition:e=>_(e,"go")},{category:"linting",tool:"golangci-lint",installCmd:{win32:"go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest",darwin:"brew install golangci-lint",linux:"go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest"},universal:!1,condition:e=>_(e,"go")},{category:"unused_code",tool:"deadcode",installCmd:$("go install golang.org/x/tools/cmd/deadcode@latest"),universal:!1,condition:e=>_(e,"go")},{category:"documentation",tool:"godoc",installCmd:$("go install golang.org/x/tools/cmd/godoc@latest"),universal:!1,condition:e=>_(e,"go")},{category:"security_analysis",tool:"gosec",installCmd:$("go install github.com/securego/gosec/v2/cmd/gosec@latest"),universal:!1,condition:e=>_(e,"go")},{category:"unit_testing",tool:"junit5",installCmd:$("echo JUnit 5 \u2014 add to pom.xml or build.gradle"),universal:!1,condition:e=>_(e,"java")&&!_(e,"kotlin")},{category:"linting",tool:"checkstyle",installCmd:$("echo Checkstyle \u2014 add Gradle/Maven plugin"),universal:!1,condition:e=>_(e,"java")&&!_(e,"kotlin")},{category:"formatting",tool:"google-java-format",installCmd:$("echo google-java-format \u2014 add to build config"),universal:!1,condition:e=>_(e,"java")&&!_(e,"kotlin")},{category:"coverage",tool:"jacoco",installCmd:$("echo JaCoCo \u2014 add Gradle/Maven plugin"),universal:!1,condition:e=>_(e,"java")},{category:"security_analysis",tool:"spotbugs",installCmd:$("echo SpotBugs \u2014 add Gradle/Maven plugin"),universal:!1,condition:e=>_(e,"java")},{category:"unit_testing",tool:"junit5",installCmd:$("echo JUnit 5 + MockK \u2014 add to build.gradle.kts"),universal:!1,condition:e=>_(e,"kotlin")},{category:"linting",tool:"detekt",installCmd:$("echo detekt \u2014 add Gradle plugin"),universal:!1,condition:e=>_(e,"kotlin")},{category:"formatting",tool:"ktlint",installCmd:$("echo ktlint \u2014 add Gradle plugin"),universal:!1,condition:e=>_(e,"kotlin")},{category:"coverage",tool:"kover",installCmd:$("echo Kover \u2014 add Gradle plugin"),universal:!1,condition:e=>_(e,"kotlin")},{category:"documentation",tool:"dokka",installCmd:$("echo Dokka \u2014 add Gradle plugin"),universal:!1,condition:e=>_(e,"kotlin")},{category:"unit_testing",tool:"xunit",installCmd:$("dotnet add package xunit xunit.runner.visualstudio"),universal:!1,condition:e=>_(e,"csharp")},{category:"formatting",tool:"dotnet-format",installCmd:$("echo dotnet format \u2014 built-in (.NET 6+)"),universal:!1,condition:e=>_(e,"csharp")},{category:"coverage",tool:"coverlet",installCmd:$("dotnet add package coverlet.collector"),universal:!1,condition:e=>_(e,"csharp")},{category:"linting",tool:"dotnet-analyzers",installCmd:$("echo .NET Analyzers \u2014 built-in with .NET 5+ SDK"),universal:!1,condition:e=>_(e,"csharp")},{category:"documentation",tool:"docfx",installCmd:$("dotnet tool install -g docfx"),universal:!1,condition:e=>_(e,"csharp")},{category:"unit_testing",tool:"googletest",installCmd:$("echo GoogleTest \u2014 add via CMake FetchContent"),universal:!1,condition:e=>_(e,"cpp","c")},{category:"linting",tool:"clang-tidy",installCmd:{win32:"choco install llvm",darwin:"brew install llvm",linux:"sudo apt-get install -y clang-tidy"},universal:!1,condition:e=>_(e,"cpp","c")},{category:"formatting",tool:"clang-format",installCmd:{win32:"choco install llvm",darwin:"brew install clang-format",linux:"sudo apt-get install -y clang-format"},universal:!1,condition:e=>_(e,"cpp","c")},{category:"coverage",tool:"lcov",installCmd:{win32:"choco install lcov",darwin:"brew install lcov",linux:"sudo apt-get install -y lcov"},universal:!1,condition:e=>_(e,"cpp","c")},{category:"documentation",tool:"doxygen",installCmd:{win32:"choco install doxygen.install",darwin:"brew install doxygen",linux:"sudo apt-get install -y doxygen"},universal:!1,condition:e=>_(e,"cpp","c")},{category:"security_analysis",tool:"cppcheck",installCmd:{win32:"choco install cppcheck",darwin:"brew install cppcheck",linux:"sudo apt-get install -y cppcheck"},universal:!1,condition:e=>_(e,"cpp","c")},{category:"unit_testing",tool:"phpunit",installCmd:$("composer require --dev phpunit/phpunit"),universal:!1,condition:e=>_(e,"php")},{category:"linting",tool:"phpstan",installCmd:$("composer require --dev phpstan/phpstan"),universal:!1,condition:e=>_(e,"php")},{category:"formatting",tool:"php-cs-fixer",installCmd:$("composer require --dev friendsofphp/php-cs-fixer"),universal:!1,condition:e=>_(e,"php")},{category:"documentation",tool:"phpdoc",installCmd:$("composer require --dev phpdocumentor/phpdocumentor"),universal:!1,condition:e=>_(e,"php")},{category:"security_analysis",tool:"psalm",installCmd:$("composer require --dev vimeo/psalm"),universal:!1,condition:e=>_(e,"php")},{category:"unit_testing",tool:"rspec",installCmd:$("gem install rspec && rspec --init"),universal:!1,condition:e=>_(e,"ruby")},{category:"linting",tool:"rubocop",installCmd:$("gem install rubocop"),universal:!1,condition:e=>_(e,"ruby")},{category:"formatting",tool:"rubocop",installCmd:$("gem install rubocop"),universal:!1,condition:e=>_(e,"ruby")},{category:"coverage",tool:"simplecov",installCmd:$("gem install simplecov"),universal:!1,condition:e=>_(e,"ruby")},{category:"documentation",tool:"yard",installCmd:$("gem install yard"),universal:!1,condition:e=>_(e,"ruby")},{category:"security_analysis",tool:"brakeman",installCmd:$("gem install brakeman"),universal:!1,condition:e=>_(e,"ruby")},{category:"linting",tool:"swiftlint",installCmd:{win32:"echo SwiftLint \u2014 not available on Windows",darwin:"brew install swiftlint",linux:"echo SwiftLint \u2014 install from GitHub releases"},universal:!1,condition:e=>_(e,"swift")},{category:"formatting",tool:"swiftformat",installCmd:{win32:"echo SwiftFormat \u2014 not available on Windows",darwin:"brew install swiftformat",linux:"echo SwiftFormat \u2014 install from GitHub releases"},universal:!1,condition:e=>_(e,"swift")},{category:"linting",tool:"clippy",installCmd:$("rustup component add clippy"),universal:!1,condition:e=>_(e,"rust")},{category:"formatting",tool:"rustfmt",installCmd:$("rustup component add rustfmt"),universal:!1,condition:e=>_(e,"rust")},{category:"coverage",tool:"tarpaulin",installCmd:$("cargo install cargo-tarpaulin"),universal:!1,condition:e=>_(e,"rust")},{category:"security_analysis",tool:"cargo-audit",installCmd:$("cargo install cargo-audit"),universal:!1,condition:e=>_(e,"rust")},{category:"unit_testing",tool:"flutter-test",installCmd:$("echo flutter test \u2014 built-in with Flutter SDK"),universal:!1,condition:e=>pn(e,"flutter")},{category:"linting",tool:"flutter-lints",installCmd:$("dart pub add --dev flutter_lints"),universal:!1,condition:e=>pn(e,"flutter")},{category:"documentation",tool:"dartdoc",installCmd:$("dart pub global activate dartdoc"),universal:!1,condition:e=>_(e,"dart")},{category:"linting",tool:"credo",installCmd:$('echo Credo \u2014 add {:credo, "~> 1.7"} to mix.exs'),universal:!1,condition:e=>_(e,"elixir")},{category:"type_checking",tool:"dialyxir",installCmd:$('echo Dialyxir \u2014 add {:dialyxir, "~> 1.4"} to mix.exs'),universal:!1,condition:e=>_(e,"elixir")},{category:"coverage",tool:"excoveralls",installCmd:$('echo ExCoveralls \u2014 add {:excoveralls, "~> 0.18"} to mix.exs'),universal:!1,condition:e=>_(e,"elixir")},{category:"documentation",tool:"ex-doc",installCmd:$('echo ExDoc \u2014 add {:ex_doc, "~> 0.34"} to mix.exs'),universal:!1,condition:e=>_(e,"elixir")},{category:"unit_testing",tool:"scalatest",installCmd:$("echo ScalaTest \u2014 add to build.sbt"),universal:!1,condition:e=>_(e,"scala")},{category:"linting",tool:"scalafix",installCmd:$("echo Scalafix \u2014 add sbt plugin"),universal:!1,condition:e=>_(e,"scala")},{category:"formatting",tool:"scalafmt",installCmd:$("echo Scalafmt \u2014 add sbt plugin"),universal:!1,condition:e=>_(e,"scala")},{category:"coverage",tool:"scoverage",installCmd:$("echo Scoverage \u2014 add sbt plugin"),universal:!1,condition:e=>_(e,"scala")},{category:"unit_testing",tool:"testthat",installCmd:$(`Rscript -e 'install.packages("testthat")'`),universal:!1,condition:e=>_(e,"r")},{category:"linting",tool:"lintr",installCmd:$(`Rscript -e 'install.packages("lintr")'`),universal:!1,condition:e=>_(e,"r")},{category:"formatting",tool:"styler",installCmd:$(`Rscript -e 'install.packages("styler")'`),universal:!1,condition:e=>_(e,"r")},{category:"coverage",tool:"covr",installCmd:$(`Rscript -e 'install.packages("covr")'`),universal:!1,condition:e=>_(e,"r")},{category:"documentation",tool:"roxygen2",installCmd:$(`Rscript -e 'install.packages("roxygen2")'`),universal:!1,condition:e=>_(e,"r")},{category:"unit_testing",tool:"hspec",installCmd:$("cabal install hspec"),universal:!1,condition:e=>_(e,"haskell")},{category:"linting",tool:"hlint",installCmd:$("cabal install hlint"),universal:!1,condition:e=>_(e,"haskell")},{category:"formatting",tool:"ormolu",installCmd:$("cabal install ormolu"),universal:!1,condition:e=>_(e,"haskell")},{category:"linting",tool:"perlcritic",installCmd:$("cpanm Perl::Critic"),universal:!1,condition:e=>_(e,"perl")},{category:"formatting",tool:"perltidy",installCmd:$("cpanm Perl::Tidy"),universal:!1,condition:e=>_(e,"perl")},{category:"linting",tool:"clj-kondo",installCmd:{win32:"echo clj-kondo \u2014 download from GitHub releases",darwin:"brew install borkdude/brew/clj-kondo",linux:"echo clj-kondo \u2014 download from GitHub releases"},universal:!1,condition:e=>_(e,"clojure")},{category:"formatting",tool:"cljfmt",installCmd:$("echo cljfmt \u2014 add to deps.edn"),universal:!1,condition:e=>_(e,"clojure")},{category:"formatting",tool:"juliaformatter",installCmd:$(`julia -e 'using Pkg; Pkg.add("JuliaFormatter")'`),universal:!1,condition:e=>_(e,"julia")},{category:"documentation",tool:"documenter",installCmd:$(`julia -e 'using Pkg; Pkg.add("Documenter")'`),universal:!1,condition:e=>_(e,"julia")},{category:"unit_testing",tool:"busted",installCmd:$("luarocks install busted"),universal:!1,condition:e=>_(e,"lua")},{category:"linting",tool:"luacheck",installCmd:$("luarocks install luacheck"),universal:!1,condition:e=>_(e,"lua")},{category:"formatting",tool:"stylua",installCmd:{win32:"cargo install stylua",darwin:"brew install stylua",linux:"cargo install stylua"},universal:!1,condition:e=>_(e,"lua")},{category:"unit_testing",tool:"forge-test",installCmd:{win32:"echo Foundry \u2014 install from https://getfoundry.sh",darwin:"curl -L https://foundry.paradigm.xyz | bash && foundryup",linux:"curl -L https://foundry.paradigm.xyz | bash && foundryup"},universal:!1,condition:e=>_(e,"solidity")},{category:"linting",tool:"solhint",installCmd:$("npm i -g solhint@latest"),universal:!1,condition:e=>_(e,"solidity")},{category:"formatting",tool:"prettier-solidity",installCmd:$("npm i -D prettier@latest prettier-plugin-solidity@latest"),universal:!1,condition:e=>_(e,"solidity")},{category:"security_analysis",tool:"slither",installCmd:$("pip install --upgrade slither-analyzer"),universal:!1,condition:e=>_(e,"solidity")},{category:"e2e_testing",tool:"detox",installCmd:$("npm i -D detox@latest"),universal:!1,condition:e=>pn(e,"react-native","expo")},{category:"linting",tool:"detekt",installCmd:$("echo detekt \u2014 add Gradle plugin"),universal:!1,condition:e=>pn(e,"jetpack-compose","kotlin-multiplatform")},{category:"linting",tool:"swiftlint",installCmd:{win32:"echo SwiftLint \u2014 not available on Windows",darwin:"brew install swiftlint",linux:"echo SwiftLint \u2014 install from GitHub releases"},universal:!1,condition:e=>pn(e,"swiftui","uikit")},{category:"e2e_testing",tool:"cypress",installCmd:$("npm i -D cypress@latest"),universal:!1,condition:e=>pn(e,"ionic","capacitor")},{category:"unit_testing",tool:"xunit",installCmd:$("dotnet add package xunit xunit.runner.visualstudio"),universal:!1,condition:e=>pn(e,"maui")},{category:"linting",tool:"gdlint",installCmd:$("pip install --upgrade gdtoolkit"),universal:!1,condition:e=>_(e,"gdscript")},{category:"formatting",tool:"gdformat",installCmd:$("pip install --upgrade gdtoolkit"),universal:!1,condition:e=>_(e,"gdscript")},{category:"unit_testing",tool:"xunit",installCmd:$("dotnet add package xunit xunit.runner.visualstudio"),universal:!1,condition:e=>_(e,"fsharp")},{category:"formatting",tool:"fantomas",installCmd:$("dotnet tool install -g fantomas"),universal:!1,condition:e=>_(e,"fsharp")},{category:"unit_testing",tool:"alcotest",installCmd:$("opam install alcotest"),universal:!1,condition:e=>_(e,"ocaml")},{category:"formatting",tool:"ocamlformat",installCmd:$("opam install ocamlformat"),universal:!1,condition:e=>_(e,"ocaml")},{category:"linting",tool:"elvis",installCmd:$("echo elvis \u2014 add as rebar3 plugin"),universal:!1,condition:e=>_(e,"erlang")},{category:"linting",tool:"ameba",installCmd:$("echo Ameba \u2014 add to shard.yml"),universal:!1,condition:e=>_(e,"crystal")},{category:"linting",tool:"codenarc",installCmd:$("echo CodeNarc \u2014 add Gradle plugin"),universal:!1,condition:e=>_(e,"groovy")},{category:"linting",tool:"oclint",installCmd:{win32:"echo OCLint \u2014 not available on Windows",darwin:"brew install oclint",linux:"echo OCLint \u2014 install from GitHub releases"},universal:!1,condition:e=>_(e,"objective-c")},{category:"formatting",tool:"clang-format",installCmd:{win32:"choco install llvm",darwin:"brew install clang-format",linux:"sudo apt-get install -y clang-format"},universal:!1,condition:e=>_(e,"objective-c")},{category:"unit_testing",tool:"mstest",installCmd:$("dotnet add package MSTest.TestFramework MSTest.TestAdapter"),universal:!1,condition:e=>_(e,"visual-basic")},{category:"unit_testing",tool:"pester",installCmd:$("Install-Module -Name Pester -Force -SkipPublisherCheck"),universal:!1,condition:e=>_(e,"powershell")},{category:"linting",tool:"psscriptanalyzer",installCmd:$("Install-Module -Name PSScriptAnalyzer -Force"),universal:!1,condition:e=>_(e,"powershell")}];function wk(e){let t=new Set,n=[];for(let o of JN)t.has(o.category)||o.condition(e)&&(n.push(o),t.add(o.category));return n}var qt=require("node:fs"),Za=require("node:path");var Fh="<!-- GoDD:start -->",id="<!-- GoDD:end -->";function KN(e){let t=["### GoDD stack snapshot","","Auto-detected from this repository (updated when `godd_config` or `godd init` runs):",""];for(let[n,o]of Object.entries(e))Array.isArray(o)&&o.length>0&&t.push(`- **${n}**: ${o.join(", ")}`);return t.push("",`_Generated by ${V.displayName} MCP \u2014 keep this block for drift detection._`),t.join(`
53
+ `)}var ir="0.38.0";var Ah={en:{dev:"Development (plan \u2192 implement \u2192 test \u2192 quality \u2192 docs in stages)",check:"Quality gate (verify Spec alignment, tests, types, lint, security)",docs:"Generate/update documentation",ship:"Ship (commit at proper granularity \u2192 quality check \u2192 push \u2192 create PR)",setup:"Environment setup (with recommended stack presets, confirms missing info)",review:"Review (CTO-level review + quality gate)",test:"Run/create tests",impact:"Impact analysis",commit:"Commit changes",push:"Push to remote",pr:"Create PR (template-compliant)",deploy:"Deploy (with verification & rollback plan)",adr:"Create ADR (Architecture Decision Record)",release:"Generate release notes (SemVer-compliant)",github:"GitHub configuration (repository/branch protection, etc.)",config:"Generate/repair config.godd (auto-detect stack + validation)",questions:"Interactive Q&A from question list (\u8CEA\u554F\u30EA\u30B9\u30C8.md)",e2e:"Browser-based E2E testing (execute & verify critical user flows)",benchmark:"Competitive prompt analysis (compare GoDD vs Cursor Rules / Claude Code / Codex)",map:"Project knowledge graph (visualize architecture & dependencies with Mermaid)",learn:"Save/recall project-specific patterns, conventions, and pitfalls",diagram:"Auto-update architecture diagrams (maintain living Mermaid docs in sync with code)",slide:"Generate presentation slides from project docs (Marp Markdown format)"},ja:{dev:"\u958B\u767A\uFF08\u6BB5\u968E\u7684\u306B\u8A08\u753B\u2192\u5B9F\u88C5\u2192\u30C6\u30B9\u30C8\u2192\u54C1\u8CEA\u2192\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u5B9F\u884C\uFF09",check:"\u54C1\u8CEA\u30B2\u30FC\u30C8\uFF08Spec\u6574\u5408\u30FB\u30C6\u30B9\u30C8\u30FB\u578B\u30FBLint\u30FB\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u3092\u691C\u8A3C\uFF09",docs:"\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u751F\u6210/\u66F4\u65B0",ship:"\u63D0\u51FA\uFF08\u9069\u5207\u306A\u7C92\u5EA6\u3067\u30B3\u30DF\u30C3\u30C8 \u2192 \u54C1\u8CEA\u30C1\u30A7\u30C3\u30AF \u2192 \u30D7\u30C3\u30B7\u30E5 \u2192 PR \u4F5C\u6210\uFF09",setup:"\u74B0\u5883\u69CB\u7BC9\uFF08\u63A8\u5968\u30B9\u30BF\u30C3\u30AF\u30D7\u30EA\u30BB\u30C3\u30C8\u4ED8\u304D\u30FB\u4E0D\u8DB3\u60C5\u5831\u306F\u78BA\u8A8D\uFF09",review:"\u30EC\u30D3\u30E5\u30FC\uFF08CTO \u30EC\u30D9\u30EB\u306E\u30EC\u30D3\u30E5\u30FC + \u54C1\u8CEA\u30B2\u30FC\u30C8\uFF09",test:"\u30C6\u30B9\u30C8\u5B9F\u884C/\u4F5C\u6210",impact:"\u5F71\u97FF\u5206\u6790",commit:"\u5909\u66F4\u3092\u30B3\u30DF\u30C3\u30C8",push:"\u30EA\u30E2\u30FC\u30C8\u306B\u30D7\u30C3\u30B7\u30E5",pr:"PR \u4F5C\u6210\uFF08\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u6E96\u62E0\uFF09",deploy:"\u30C7\u30D7\u30ED\u30A4\uFF08\u691C\u8A3C\u30FB\u30ED\u30FC\u30EB\u30D0\u30C3\u30AF\u8A08\u753B\u4ED8\u304D\uFF09",adr:"ADR\uFF08Architecture Decision Record\uFF09\u4F5C\u6210",release:"\u30EA\u30EA\u30FC\u30B9\u30CE\u30FC\u30C8\u751F\u6210\uFF08SemVer \u6E96\u62E0\uFF09",github:"GitHub \u8A2D\u5B9A\uFF08\u30EA\u30DD\u30B8\u30C8\u30EA/\u30D6\u30E9\u30F3\u30C1\u4FDD\u8B77\u7B49\uFF09",config:"config.godd \u3092\u6B63\u78BA\u306B\u751F\u6210\u30FB\u4FEE\u6B63\u3059\u308B\uFF08\u30B9\u30BF\u30C3\u30AF\u81EA\u52D5\u691C\u51FA + \u30D0\u30EA\u30C7\u30FC\u30B7\u30E7\u30F3\uFF09",questions:"\u8CEA\u554F\u30EA\u30B9\u30C8\uFF08\u8CEA\u554F\u30EA\u30B9\u30C8.md\uFF09\u304B\u3089\u30A4\u30F3\u30BF\u30E9\u30AF\u30C6\u30A3\u30D6\u306B\u8CEA\u554F\u3092\u7BA1\u7406",e2e:"\u30D6\u30E9\u30A6\u30B6\u30D9\u30FC\u30B9 E2E \u30C6\u30B9\u30C8\uFF08\u91CD\u8981\u30E6\u30FC\u30B6\u30FC\u30D5\u30ED\u30FC\u306E\u5B9F\u884C\u30FB\u691C\u8A3C\uFF09",benchmark:"\u7AF6\u5408\u30D7\u30ED\u30F3\u30D7\u30C8\u5206\u6790\uFF08GoDD vs Cursor Rules / Claude Code / Codex \u3092\u6BD4\u8F03\uFF09",map:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30CA\u30EC\u30C3\u30B8\u30B0\u30E9\u30D5\uFF08Mermaid \u3067\u30A2\u30FC\u30AD\u30C6\u30AF\u30C1\u30E3\u30FB\u4F9D\u5B58\u95A2\u4FC2\u3092\u53EF\u8996\u5316\uFF09",learn:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u56FA\u6709\u306E\u30D1\u30BF\u30FC\u30F3\u30FB\u6163\u4F8B\u30FB\u843D\u3068\u3057\u7A74\u3092\u4FDD\u5B58/\u53C2\u7167",diagram:"\u30A2\u30FC\u30AD\u30C6\u30AF\u30C1\u30E3\u56F3\u306E\u81EA\u52D5\u66F4\u65B0\uFF08\u30B3\u30FC\u30C9\u3068\u540C\u671F\u3057\u305F Mermaid \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u7DAD\u6301\uFF09",slide:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u304B\u3089\u30D7\u30EC\u30BC\u30F3\u30B9\u30E9\u30A4\u30C9\u3092\u751F\u6210\uFF08Marp Markdown \u5F62\u5F0F\uFF09"},ru:{dev:"\u0420\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u043A\u0430 (\u043F\u043B\u0430\u043D \u2192 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u2192 \u0442\u0435\u0441\u0442\u044B \u2192 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u043E \u2192 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044F \u043F\u043E\u044D\u0442\u0430\u043F\u043D\u043E)",check:"\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u044C \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430 (Spec, \u0442\u0435\u0441\u0442\u044B, \u0442\u0438\u043F\u044B, \u043B\u0438\u043D\u0442\u0435\u0440, \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C)",docs:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F/\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u0438",ship:"\u041E\u0442\u043F\u0440\u0430\u0432\u043A\u0430 (\u043A\u043E\u043C\u043C\u0438\u0442 \u2192 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u2192 \u043F\u0443\u0448 \u2192 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 PR)",setup:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0441\u0440\u0435\u0434\u044B (\u0441 \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u044B\u043C\u0438 \u043F\u0440\u0435\u0441\u0435\u0442\u0430\u043C\u0438 \u0441\u0442\u0435\u043A\u0430)",review:"\u0420\u0435\u0432\u044C\u044E (CTO-\u0443\u0440\u043E\u0432\u0435\u043D\u044C + \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0430)",test:"\u0417\u0430\u043F\u0443\u0441\u043A/\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0442\u0435\u0441\u0442\u043E\u0432",impact:"\u0410\u043D\u0430\u043B\u0438\u0437 \u0432\u043B\u0438\u044F\u043D\u0438\u044F",commit:"\u0417\u0430\u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",push:"\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0432 \u0443\u0434\u0430\u043B\u0451\u043D\u043D\u044B\u0439 \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439",pr:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C PR (\u043F\u043E \u0448\u0430\u0431\u043B\u043E\u043D\u0443)",deploy:"\u0420\u0430\u0437\u0432\u0435\u0440\u043D\u0443\u0442\u044C (\u0441 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u043E\u0439 \u0438 \u043F\u043B\u0430\u043D\u043E\u043C \u043E\u0442\u043A\u0430\u0442\u0430)",adr:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C ADR (\u0437\u0430\u043F\u0438\u0441\u044C \u0430\u0440\u0445\u0438\u0442\u0435\u043A\u0442\u0443\u0440\u043D\u043E\u0433\u043E \u0440\u0435\u0448\u0435\u043D\u0438\u044F)",release:"\u0421\u0433\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0437\u0430\u043C\u0435\u0442\u043A\u0438 \u043A \u0440\u0435\u043B\u0438\u0437\u0443 (SemVer)",github:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 GitHub (\u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439/\u0437\u0430\u0449\u0438\u0442\u0430 \u0432\u0435\u0442\u043E\u043A \u0438 \u0442.\u0434.)",config:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F/\u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 config.godd (\u0430\u0432\u0442\u043E\u0434\u0435\u0442\u0435\u043A\u0442 \u0441\u0442\u0435\u043A\u0430 + \u0432\u0430\u043B\u0438\u0434\u0430\u0446\u0438\u044F)",questions:"\u0418\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 Q&A \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430 \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432 (\u8CEA\u554F\u30EA\u30B9\u30C8.md)",e2e:"E2E-\u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 (\u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435 \u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u043A\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0445 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445 \u043F\u043E\u0442\u043E\u043A\u043E\u0432)",benchmark:"\u041A\u043E\u043D\u043A\u0443\u0440\u0435\u043D\u0442\u043D\u044B\u0439 \u0430\u043D\u0430\u043B\u0438\u0437 \u043F\u0440\u043E\u043C\u043F\u0442\u043E\u0432 (\u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u0435 GoDD \u0441 Cursor Rules / Claude Code / Codex)",map:"\u0413\u0440\u0430\u0444 \u0437\u043D\u0430\u043D\u0438\u0439 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 (\u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0430\u0440\u0445\u0438\u0442\u0435\u043A\u0442\u0443\u0440\u044B \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0435\u0439 \u0447\u0435\u0440\u0435\u0437 Mermaid)",learn:"\u0421\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435/\u0432\u044B\u0437\u043E\u0432 \u0441\u043F\u0435\u0446\u0438\u0444\u0438\u0447\u043D\u044B\u0445 \u0434\u043B\u044F \u043F\u0440\u043E\u0435\u043A\u0442\u0430 \u043F\u0430\u0442\u0442\u0435\u0440\u043D\u043E\u0432, \u0441\u043E\u0433\u043B\u0430\u0448\u0435\u043D\u0438\u0439 \u0438 \u043F\u043E\u0434\u0432\u043E\u0434\u043D\u044B\u0445 \u043A\u0430\u043C\u043D\u0435\u0439",diagram:"\u0410\u0432\u0442\u043E\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043A\u0442\u0443\u0440\u043D\u044B\u0445 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C (\u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u044B\u0445 Mermaid-\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432)",slide:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F \u0441\u043B\u0430\u0439\u0434\u043E\u0432 \u0438\u0437 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0440\u043E\u0435\u043A\u0442\u0430 (\u0444\u043E\u0440\u043C\u0430\u0442 Marp Markdown)"}};var LN={dev:[{name:"request",required:!0},{name:"done_when",required:!1}],check:[{name:"target",required:!1}],docs:[{name:"target",required:!1}],ship:[{name:"title",required:!1}],review:[{name:"target",required:!1},{name:"action",required:!1}],test:[{name:"target",required:!1}],impact:[{name:"target",required:!1}],commit:[{name:"message",required:!1}],pr:[{name:"title",required:!1}],deploy:[{name:"target",required:!1}],adr:[{name:"title",required:!1}],release:[{name:"tag",required:!1}],setup:[{name:"preset",required:!1}],github:[{name:"request",required:!1}],config:[],questions:[{name:"action",required:!1}],e2e:[{name:"target",required:!1},{name:"url",required:!1}],benchmark:[{name:"target",required:!1}],map:[{name:"target",required:!1}],learn:[{name:"action",required:!1}],diagram:[{name:"target",required:!1}],slide:[{name:"type",required:!1},{name:"source",required:!1}]},Zh={en:{dev:{request:"Request details",done_when:"Completion criteria"},check:{target:"Check target (omit for all recent changes)"},docs:{target:"Target file/feature"},ship:{title:"PR title"},review:{target:"Target file/PR (e.g., PR URL, PR number, file path)",action:"Post-review action (approve / request-changes / comment)"},test:{target:"Test target"},impact:{target:"Analysis target"},commit:{message:"Commit message"},pr:{title:"PR title"},deploy:{target:"Deploy target"},adr:{title:"Decision title"},release:{tag:"Target tag (omit for HEAD since last release)"},setup:{preset:"Stack preset (omakase = recommended)"},github:{request:"Configuration request"},questions:{action:"Action: list (default) / resolve <id> / add <question>"},e2e:{target:"Target page/flow to test",url:"Base URL of the application"},benchmark:{target:"Competitor system to analyze (cursor-rules / claude-code / codex / all)"},map:{target:"Target scope (module/directory/layer to visualize)"},learn:{action:"Action: save <category> <content> / recall / list / forget <id>"},diagram:{target:"Target diagram scope (architecture / module / data-flow / erd / all)"},slide:{type:"Presentation type (sprint-review / architecture / release / onboarding)",source:"Source documents to base slides on"}},ja:{dev:{request:"\u4F9D\u983C\u5185\u5BB9",done_when:"\u5B8C\u4E86\u6761\u4EF6"},check:{target:"\u30C1\u30A7\u30C3\u30AF\u5BFE\u8C61\uFF08\u7701\u7565\u6642: \u76F4\u8FD1\u306E\u5909\u66F4\u5168\u4F53\uFF09"},docs:{target:"\u5BFE\u8C61\u30D5\u30A1\u30A4\u30EB/\u6A5F\u80FD"},ship:{title:"PR \u30BF\u30A4\u30C8\u30EB"},review:{target:"\u5BFE\u8C61\u30D5\u30A1\u30A4\u30EB/PR\uFF08\u4F8B: PR URL, PR\u756A\u53F7, \u30D5\u30A1\u30A4\u30EB\u30D1\u30B9\uFF09",action:"\u30EC\u30D3\u30E5\u30FC\u5F8C\u306E\u30A2\u30AF\u30B7\u30E7\u30F3\uFF08approve / request-changes / comment\uFF09"},test:{target:"\u30C6\u30B9\u30C8\u5BFE\u8C61"},impact:{target:"\u5206\u6790\u5BFE\u8C61"},commit:{message:"\u30B3\u30DF\u30C3\u30C8\u30E1\u30C3\u30BB\u30FC\u30B8"},pr:{title:"PR \u30BF\u30A4\u30C8\u30EB"},deploy:{target:"\u30C7\u30D7\u30ED\u30A4\u5148"},adr:{title:"\u5224\u65AD\u306E\u30BF\u30A4\u30C8\u30EB"},release:{tag:"\u5BFE\u8C61\u30BF\u30B0\uFF08\u7701\u7565\u6642: \u76F4\u8FD1\u30EA\u30EA\u30FC\u30B9\u304B\u3089 HEAD\uFF09"},setup:{preset:"\u30B9\u30BF\u30C3\u30AF\u30D7\u30EA\u30BB\u30C3\u30C8\uFF08omakase = \u63A8\u5968\u69CB\u6210\uFF09"},github:{request:"\u8A2D\u5B9A\u5185\u5BB9"},questions:{action:"\u64CD\u4F5C: list\uFF08\u30C7\u30D5\u30A9\u30EB\u30C8\uFF09/ resolve <id> / add <\u8CEA\u554F\u6587>"},e2e:{target:"\u30C6\u30B9\u30C8\u5BFE\u8C61\u306E\u30DA\u30FC\u30B8/\u30D5\u30ED\u30FC",url:"\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30D9\u30FC\u30B9 URL"},benchmark:{target:"\u5206\u6790\u5BFE\u8C61\u306E\u7AF6\u5408\uFF08cursor-rules / claude-code / codex / all\uFF09"},map:{target:"\u53EF\u8996\u5316\u5BFE\u8C61\uFF08\u30E2\u30B8\u30E5\u30FC\u30EB/\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA/\u30EC\u30A4\u30E4\u30FC\uFF09"},learn:{action:"\u64CD\u4F5C: save <\u30AB\u30C6\u30B4\u30EA> <\u5185\u5BB9> / recall / list / forget <id>"},diagram:{target:"\u56F3\u306E\u5BFE\u8C61\u7BC4\u56F2\uFF08architecture / module / data-flow / erd / all\uFF09"},slide:{type:"\u30D7\u30EC\u30BC\u30F3\u7A2E\u985E\uFF08sprint-review / architecture / release / onboarding\uFF09",source:"\u30BD\u30FC\u30B9\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8"}},ru:{dev:{request:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438",done_when:"\u041A\u0440\u0438\u0442\u0435\u0440\u0438\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F"},check:{target:"\u041E\u0431\u044A\u0435\u043A\u0442 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: \u0432\u0441\u0435 \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0435 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F)"},docs:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u0444\u0430\u0439\u043B/\u0444\u0443\u043D\u043A\u0446\u0438\u044F"},ship:{title:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A PR"},review:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u0444\u0430\u0439\u043B/PR (URL PR, \u043D\u043E\u043C\u0435\u0440 PR, \u043F\u0443\u0442\u044C \u043A \u0444\u0430\u0439\u043B\u0443)",action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043F\u043E\u0441\u043B\u0435 \u0440\u0435\u0432\u044C\u044E (approve / request-changes / comment)"},test:{target:"\u041E\u0431\u044A\u0435\u043A\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F"},impact:{target:"\u041E\u0431\u044A\u0435\u043A\u0442 \u0430\u043D\u0430\u043B\u0438\u0437\u0430"},commit:{message:"\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043A\u043E\u043C\u043C\u0438\u0442\u0430"},pr:{title:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A PR"},deploy:{target:"\u0426\u0435\u043B\u044C \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044B\u0432\u0430\u043D\u0438\u044F"},adr:{title:"\u0417\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A \u0440\u0435\u0448\u0435\u043D\u0438\u044F"},release:{tag:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u0442\u0435\u0433 (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: \u043E\u0442 HEAD \u0434\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0440\u0435\u043B\u0438\u0437\u0430)"},setup:{preset:"\u041F\u0440\u0435\u0441\u0435\u0442 \u0441\u0442\u0435\u043A\u0430 (omakase = \u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u0430\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F)"},github:{request:"\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438"},questions:{action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435: list (\u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E) / resolve <id> / add <\u0432\u043E\u043F\u0440\u043E\u0441>"},e2e:{target:"\u0426\u0435\u043B\u0435\u0432\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430/\u043F\u043E\u0442\u043E\u043A \u0434\u043B\u044F \u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",url:"\u0411\u0430\u0437\u043E\u0432\u044B\u0439 URL \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F"},benchmark:{target:"\u041A\u043E\u043D\u043A\u0443\u0440\u0435\u043D\u0442\u043D\u0430\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0430 \u0434\u043B\u044F \u0430\u043D\u0430\u043B\u0438\u0437\u0430 (cursor-rules / claude-code / codex / all)"},map:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 (\u043C\u043E\u0434\u0443\u043B\u044C/\u043A\u0430\u0442\u0430\u043B\u043E\u0433/\u0441\u043B\u043E\u0439 \u0434\u043B\u044F \u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438)"},learn:{action:"\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435: save <\u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F> <\u0441\u043E\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u0435> / recall / list / forget <id>"},diagram:{target:"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u043E\u0431\u044A\u0435\u043A\u0442 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B (architecture / module / data-flow / erd / all)"},slide:{type:"\u0422\u0438\u043F \u043F\u0440\u0435\u0437\u0435\u043D\u0442\u0430\u0446\u0438\u0438 (sprint-review / architecture / release / onboarding)",source:"\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B"}}},qN=["dev","check","docs","ship","setup","review","test","impact","commit","push","pr","deploy","adr","release","github","config","questions","e2e","benchmark","map","learn","diagram","slide"];var Uh={dev:{slugs:["common","dev"]},ship:{slugs:["common","commit","push","pr","check"]},review:{slugs:["common","review","check"]}};var _k=new Set(["dev","review","setup","test","impact","docs","check","deploy","adr","release","e2e","benchmark","map","learn","diagram","slide"]);function $k(e){return e in Uh||_k.has(e)}function bk(e){if(Uh[e])return Uh[e].slugs;if(_k.has(e))return["common",e]}var Mh=new Set(["config","questions"]);function Lh(e="en"){let t=V.toolPrefix,n=Ah[e]??Ah.en;return qN.map(o=>({name:`${t}${o}`,description:n[o]??Ah.en[o]}))}function xk(e="en"){let t=V.toolPrefix,n=Zh[e]??Zh.en,o=Zh.en;return Lh(e).map(r=>{let i=r.name.replace(t,""),a=LN[i]??[];return{name:r.name,description:r.description,inputSchema:{type:"object",properties:Object.fromEntries(a.map(s=>[s.name,{type:"string",description:n[i]?.[s.name]??o[i]?.[s.name]??s.name}])),required:a.filter(s=>s.required).map(s=>s.name)}}})}var Co=require("node:fs"),Ek=require("node:path");var Ue=require("node:fs"),Ot=require("node:path"),Ik=require("node:readline"),ad=require("node:child_process");var FN={selectDisplayLanguage:"Select display language:",selectMainLanguage:"Select the main language for your project:",selectSubLanguages:"Select sub-languages used in your team:",selectSubLanguagesHint:"(comma-separated numbers, or press Enter to skip)",skipSubLanguages:"No sub-languages selected.",scanningProject:"Scanning project...",detectedStack:"Detected stack:",confirmStack:"Is this correct?",manualStackEntry:"Please select your tech stack manually.",selectProjectType:"What are you building? (select all that apply)",projectTypes:{web:"Web App (frontend + backend)",api:"API / Backend only",mobile:"Mobile App",game:"Game",cli:"CLI / Library / Script",desktop:"Desktop App"},selectProgrammingLanguages:"Programming languages:",selectFrontend:"Frontend frameworks:",selectBackend:"Backend frameworks:",selectDatabase:"Databases:",selectOrm:"ORM:",selectInfra:"Infrastructure:",selectGame:"Game engines / frameworks:",selectMobile:"Mobile / Cross-platform:",toolRecommendationsTitle:"Recommended tools for your stack:",toolInstallMode:"How would you like to install?",toolInstallDefault:"Default (install all)",toolInstallCustom:"Custom (choose individually)",toolInstallSkip:"Skip (install later)",toolInstallPrompt:"Install?",toolInstalling:"Installing",toolInstallSuccess:"Installed successfully.",toolInstallFailed:"Installation failed. You can install it later via setup prompt.",toolUniversalTag:"all projects",toolStackSpecificTag:"your stack",toolCategories:{vcs:"Version Control",browser_automation:"Browser Automation",e2e_testing:"E2E Testing",unit_testing:"Unit Testing",linting:"Linting",formatting:"Formatting",type_checking:"Type Checking",coverage:"Coverage",documentation:"Documentation",secret_scanning:"Secret Scanning",security_analysis:"Security Analysis",unused_code:"Unused Code Detection",dependency_analysis:"Dependency Analysis"},githubDetected:"GitHub repository detected. Configuring auto-delete for merged branches...",githubConfigSuccess:"\u2713 Merged branches will be auto-deleted on GitHub.",githubConfigFailed:"\u2717 Could not configure auto-delete. Run `gh repo edit --delete-branch-on-merge` manually.",configCreated:"Generated",configExists:"already exists",configOverwritten:"Overwritten",useForceFlag:"Use --force to overwrite.",languages:"Languages",frontend:"Frontend",backend:"Backend",database:"Database",orm:"ORM",infra:"Infra",game:"Game",mobile:"Mobile",pressEnterToClose:"Press Enter to close...",unknownCommand:"Unknown command",usage:"Usage:",installSuccess:"Registered with Cursor!",installUpdated:"Configuration updated",installUnchanged:"Already up to date",licenseNotSet:"License key is not set. Set GODD_LICENSE_KEY environment variable or run: godd install --license-key=YOUR_KEY",restartCursor:"Restart Cursor to activate the MCP server.",installFailed:"Installation failed:",uninstallTitle:"Uninstall",uninstallSuccess:"Removed from Cursor",uninstallNotFound:"Not found (already removed)",uninstallFailed:"Uninstall failed:",initTitle:"Project initialization",initAutoHint:"Non-interactive mode (--auto): stack scan + config only; tool install wizard skipped. Use interactive init when you need guided tool setup.",yes:"Yes",no:"No",none:"None",invalidChoice:"Invalid choice. Please try again.",enterNumbers:"Enter numbers",updateAvailable:"A newer version is available:",updateCurrent:"current:",licenseMissing:"GODD_LICENSE_KEY environment variable is not set.",licenseMissingHint:"Re-register with: godd install --license-key=YOUR_KEY",licenseFailed:"License validation failed",configNotFound:"not found in project directory.",configNotFoundHint:'Run "godd init" to generate project configuration for better prompt accuracy.',configUnknownValues:"contains unknown values:",didYouMean:"did you mean",serverStarted:"started (stdio)",corruptMcpJson:"is corrupt. Backed up to {backup} and creating a fresh config.",licenseNotConfigured:"License key is not configured. Set GODD_LICENSE_KEY and restart Cursor.",resolvePromptFailed:"Failed to resolve prompt",resolveToolFailed:"Failed to resolve tool",localToolFailed:"Local tool execution failed",helpInstall:"Register MCP server into Cursor",helpInit:"Initialize project (interactive; use --auto for scan-only)",helpUninstall:"Remove MCP server from Cursor",helpServe:"Start MCP stdio server (called by Cursor)",fatalError:"Fatal error",compositeMissingSlugs:"WARNING: The following sections could not be loaded"},VN={selectDisplayLanguage:"\u8868\u793A\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",selectMainLanguage:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u306E\u30E1\u30A4\u30F3\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",selectSubLanguages:"\u30C1\u30FC\u30E0\u3067\u4F7F\u7528\u3059\u308B\u30B5\u30D6\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",selectSubLanguagesHint:"(\u30AB\u30F3\u30DE\u533A\u5207\u308A\u306E\u756A\u53F7\u3001\u307E\u305F\u306FEnter\u3067\u30B9\u30AD\u30C3\u30D7)",skipSubLanguages:"\u30B5\u30D6\u8A00\u8A9E\u306F\u9078\u629E\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002",scanningProject:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u30B9\u30AD\u30E3\u30F3\u4E2D...",detectedStack:"\u691C\u51FA\u3055\u308C\u305F\u30B9\u30BF\u30C3\u30AF:",confirmStack:"\u3053\u306E\u5185\u5BB9\u3067\u6B63\u3057\u3044\u3067\u3059\u304B\uFF1F",manualStackEntry:"\u6280\u8853\u30B9\u30BF\u30C3\u30AF\u3092\u624B\u52D5\u3067\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002",selectProjectType:"\u4F55\u3092\u4F5C\u308A\u307E\u3059\u304B\uFF1F\uFF08\u8A72\u5F53\u3059\u308B\u3082\u306E\u3092\u3059\u3079\u3066\u9078\u629E\uFF09",projectTypes:{web:"Web \u30A2\u30D7\u30EA\uFF08\u30D5\u30ED\u30F3\u30C8 + \u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\uFF09",api:"API / \u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u306E\u307F",mobile:"\u30E2\u30D0\u30A4\u30EB\u30A2\u30D7\u30EA",game:"\u30B2\u30FC\u30E0",cli:"CLI / \u30E9\u30A4\u30D6\u30E9\u30EA / \u30B9\u30AF\u30EA\u30D7\u30C8",desktop:"\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7\u30A2\u30D7\u30EA"},selectProgrammingLanguages:"\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u8A00\u8A9E:",selectFrontend:"\u30D5\u30ED\u30F3\u30C8\u30A8\u30F3\u30C9\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF:",selectBackend:"\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF:",selectDatabase:"\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9:",selectOrm:"ORM:",selectInfra:"\u30A4\u30F3\u30D5\u30E9:",selectGame:"\u30B2\u30FC\u30E0\u30A8\u30F3\u30B8\u30F3 / \u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF:",selectMobile:"\u30E2\u30D0\u30A4\u30EB / \u30AF\u30ED\u30B9\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0:",toolRecommendationsTitle:"\u30B9\u30BF\u30C3\u30AF\u306B\u63A8\u5968\u3055\u308C\u308B\u30C4\u30FC\u30EB:",toolInstallMode:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u65B9\u6CD5\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044:",toolInstallDefault:"\u30C7\u30D5\u30A9\u30EB\u30C8\uFF08\u3059\u3079\u3066\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\uFF09",toolInstallCustom:"\u30AB\u30B9\u30BF\u30E0\uFF08\u500B\u5225\u306B\u9078\u629E\uFF09",toolInstallSkip:"\u30B9\u30AD\u30C3\u30D7\uFF08\u5F8C\u3067\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\uFF09",toolInstallPrompt:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B\uFF1F",toolInstalling:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u4E2D",toolInstallSuccess:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002",toolInstallFailed:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002setup \u30D7\u30ED\u30F3\u30D7\u30C8\u3067\u5F8C\u304B\u3089\u5BFE\u5FDC\u3067\u304D\u307E\u3059\u3002",toolUniversalTag:"\u5168\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5171\u901A",toolStackSpecificTag:"\u30B9\u30BF\u30C3\u30AF\u56FA\u6709",toolCategories:{vcs:"\u30D0\u30FC\u30B8\u30E7\u30F3\u7BA1\u7406",browser_automation:"\u30D6\u30E9\u30A6\u30B6\u81EA\u52D5\u5316",e2e_testing:"E2E \u30C6\u30B9\u30C8",unit_testing:"\u30E6\u30CB\u30C3\u30C8\u30C6\u30B9\u30C8",linting:"\u30EA\u30F3\u30BF\u30FC",formatting:"\u30D5\u30A9\u30FC\u30DE\u30C3\u30BF\u30FC",type_checking:"\u578B\u30C1\u30A7\u30C3\u30AF",coverage:"\u30AB\u30D0\u30EC\u30C3\u30B8",documentation:"\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u751F\u6210",secret_scanning:"\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u30B9\u30AD\u30E3\u30F3",security_analysis:"\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u5206\u6790",unused_code:"\u672A\u4F7F\u7528\u30B3\u30FC\u30C9\u691C\u51FA",dependency_analysis:"\u4F9D\u5B58\u5206\u6790"},githubDetected:"GitHub \u30EA\u30DD\u30B8\u30C8\u30EA\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u30DE\u30FC\u30B8\u6E08\u307F\u30D6\u30E9\u30F3\u30C1\u306E\u81EA\u52D5\u524A\u9664\u3092\u8A2D\u5B9A\u4E2D...",githubConfigSuccess:"\u2713 \u30DE\u30FC\u30B8\u6E08\u307F\u30D6\u30E9\u30F3\u30C1\u306F GitHub \u4E0A\u3067\u81EA\u52D5\u524A\u9664\u3055\u308C\u307E\u3059\u3002",githubConfigFailed:"\u2717 \u81EA\u52D5\u524A\u9664\u306E\u8A2D\u5B9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u624B\u52D5\u3067 `gh repo edit --delete-branch-on-merge` \u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002",configCreated:"\u3092\u751F\u6210\u3057\u307E\u3057\u305F",configExists:"\u306F\u65E2\u306B\u5B58\u5728\u3057\u307E\u3059",configOverwritten:"\u3092\u4E0A\u66F8\u304D\u3057\u307E\u3057\u305F",useForceFlag:"\u4E0A\u66F8\u304D\u3059\u308B\u5834\u5408\u306F --force \u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002",languages:"\u8A00\u8A9E",frontend:"\u30D5\u30ED\u30F3\u30C8\u30A8\u30F3\u30C9",backend:"\u30D0\u30C3\u30AF\u30A8\u30F3\u30C9",database:"\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9",orm:"ORM",infra:"\u30A4\u30F3\u30D5\u30E9",game:"\u30B2\u30FC\u30E0",mobile:"\u30E2\u30D0\u30A4\u30EB",pressEnterToClose:"Enter \u30AD\u30FC\u3092\u62BC\u3059\u3068\u9589\u3058\u307E\u3059...",unknownCommand:"\u4E0D\u660E\u306A\u30B3\u30DE\u30F3\u30C9",usage:"\u4F7F\u3044\u65B9:",installSuccess:"Cursor \u306B\u767B\u9332\u3057\u307E\u3057\u305F\uFF01",installUpdated:"\u8A2D\u5B9A\u3092\u66F4\u65B0\u3057\u307E\u3057\u305F",installUnchanged:"\u65E2\u306B\u6700\u65B0\u306E\u8A2D\u5B9A\u3067\u3059",licenseNotSet:"\u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u304C\u672A\u8A2D\u5B9A\u3067\u3059\u3002\u74B0\u5883\u5909\u6570 GODD_LICENSE_KEY \u3092\u8A2D\u5B9A\u3059\u308B\u304B\u3001godd install --license-key=YOUR_KEY \u3067\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\u3002",restartCursor:"Cursor \u3092\u518D\u8D77\u52D5\u3059\u308B\u3068 MCP \u30B5\u30FC\u30D0\u30FC\u304C\u6709\u52B9\u306B\u306A\u308A\u307E\u3059\u3002",installFailed:"\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F:",uninstallTitle:"\u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB",uninstallSuccess:"Cursor \u304B\u3089\u524A\u9664\u3057\u307E\u3057\u305F",uninstallNotFound:"\u767B\u9332\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u65E2\u306B\u524A\u9664\u6E08\u307F\uFF09",uninstallFailed:"\u30A2\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F:",initTitle:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u521D\u671F\u5316",initAutoHint:"\u975E\u5BFE\u8A71\u30E2\u30FC\u30C9\uFF08--auto\uFF09: \u30B9\u30BF\u30C3\u30AF\u81EA\u52D5\u691C\u51FA\u3068 config.godd \u306E\u307F\u3002\u30C4\u30FC\u30EB\u5C0E\u5165\u30A6\u30A3\u30B6\u30FC\u30C9\u306F\u7701\u7565\u3055\u308C\u307E\u3059\u3002\u624B\u52D5\u3067\u30C4\u30FC\u30EB\u3092\u9078\u3073\u305F\u3044\u5834\u5408\u306F\u5BFE\u8A71\u5F0F init \u3092\u4F7F\u3063\u3066\u304F\u3060\u3055\u3044\u3002",yes:"\u306F\u3044",no:"\u3044\u3044\u3048",none:"\u306A\u3057",invalidChoice:"\u7121\u52B9\u306A\u9078\u629E\u3067\u3059\u3002\u3082\u3046\u4E00\u5EA6\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002",enterNumbers:"\u756A\u53F7\u3092\u5165\u529B",updateAvailable:"\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059:",updateCurrent:"\u73FE\u5728:",licenseMissing:"GODD_LICENSE_KEY \u74B0\u5883\u5909\u6570\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002",licenseMissingHint:"godd install --license-key=YOUR_KEY \u3067\u518D\u767B\u9332\u3057\u3066\u304F\u3060\u3055\u3044\u3002",licenseFailed:"\u30E9\u30A4\u30BB\u30F3\u30B9\u691C\u8A3C\u5931\u6557",configNotFound:"\u304C\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002",configNotFoundHint:"\u300Cgodd init\u300D\u3092\u5B9F\u884C\u3057\u3066\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A2D\u5B9A\u3092\u751F\u6210\u3059\u308B\u3068\u3001\u30D7\u30ED\u30F3\u30D7\u30C8\u306E\u7CBE\u5EA6\u304C\u5411\u4E0A\u3057\u307E\u3059\u3002",configUnknownValues:"\u306B\u4E0D\u660E\u306A\u5024\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059:",didYouMean:"\u3082\u3057\u304B\u3057\u3066",serverStarted:"\u3092\u8D77\u52D5\u3057\u307E\u3057\u305F (stdio)",corruptMcpJson:"\u304C\u58CA\u308C\u3066\u3044\u307E\u3059\u3002{backup} \u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3092\u4F5C\u6210\u3057\u3001\u65B0\u898F\u8A2D\u5B9A\u3092\u4F5C\u6210\u3057\u307E\u3059\u3002",licenseNotConfigured:"\u30E9\u30A4\u30BB\u30F3\u30B9\u30AD\u30FC\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002GODD_LICENSE_KEY \u3092\u8A2D\u5B9A\u3057\u3066 Cursor \u3092\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044\u3002",resolvePromptFailed:"\u30D7\u30ED\u30F3\u30D7\u30C8\u306E\u89E3\u6C7A\u306B\u5931\u6557\u3057\u307E\u3057\u305F",resolveToolFailed:"\u30C4\u30FC\u30EB\u306E\u89E3\u6C7A\u306B\u5931\u6557\u3057\u307E\u3057\u305F",localToolFailed:"\u30ED\u30FC\u30AB\u30EB\u30C4\u30FC\u30EB\u306E\u5B9F\u884C\u306B\u5931\u6557\u3057\u307E\u3057\u305F",helpInstall:"MCP \u30B5\u30FC\u30D0\u30FC\u3092 Cursor \u306B\u767B\u9332",helpInit:"\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u521D\u671F\u5316\uFF08\u5BFE\u8A71\u5F0F\uFF0F--auto \u3067\u30B9\u30AD\u30E3\u30F3\u306E\u307F\uFF09",helpUninstall:"MCP \u30B5\u30FC\u30D0\u30FC\u3092 Cursor \u304B\u3089\u524A\u9664",helpServe:"MCP stdio \u30B5\u30FC\u30D0\u30FC\u3092\u8D77\u52D5\uFF08Cursor \u304C\u547C\u3073\u51FA\u3057\uFF09",fatalError:"\u81F4\u547D\u7684\u306A\u30A8\u30E9\u30FC",compositeMissingSlugs:"\u8B66\u544A: \u4EE5\u4E0B\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F"},GN={selectDisplayLanguage:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u044F\u0437\u044B\u043A \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F:",selectMainLanguage:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u044F\u0437\u044B\u043A \u043F\u0440\u043E\u0435\u043A\u0442\u0430:",selectSubLanguages:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u044F\u0437\u044B\u043A\u0438 \u043A\u043E\u043C\u0430\u043D\u0434\u044B:",selectSubLanguagesHint:"(\u043D\u043E\u043C\u0435\u0440\u0430 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u0443\u044E \u0438\u043B\u0438 Enter \u0434\u043B\u044F \u043F\u0440\u043E\u043F\u0443\u0441\u043A\u0430)",skipSubLanguages:"\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u044F\u0437\u044B\u043A\u0438 \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u044B.",scanningProject:"\u0421\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u043F\u0440\u043E\u0435\u043A\u0442\u0430...",detectedStack:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u043D\u044B\u0439 \u0441\u0442\u0435\u043A:",confirmStack:"\u0412\u0441\u0451 \u0432\u0435\u0440\u043D\u043E?",manualStackEntry:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0435\u0445\u043D\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0441\u0442\u0435\u043A \u0432\u0440\u0443\u0447\u043D\u0443\u044E.",selectProjectType:"\u0427\u0442\u043E \u0432\u044B \u0441\u043E\u0437\u0434\u0430\u0451\u0442\u0435? (\u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0441\u0435 \u043F\u043E\u0434\u0445\u043E\u0434\u044F\u0449\u0438\u0435)",projectTypes:{web:"\u0412\u0435\u0431-\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 (\u0444\u0440\u043E\u043D\u0442\u0435\u043D\u0434 + \u0431\u044D\u043A\u0435\u043D\u0434)",api:"API / \u0442\u043E\u043B\u044C\u043A\u043E \u0431\u044D\u043A\u0435\u043D\u0434",mobile:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435",game:"\u0418\u0433\u0440\u0430",cli:"CLI / \u0411\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430 / \u0421\u043A\u0440\u0438\u043F\u0442",desktop:"\u0414\u0435\u0441\u043A\u0442\u043E\u043F\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435"},selectProgrammingLanguages:"\u042F\u0437\u044B\u043A\u0438 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F:",selectFrontend:"\u0424\u0440\u043E\u043D\u0442\u0435\u043D\u0434-\u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438:",selectBackend:"\u0411\u044D\u043A\u0435\u043D\u0434-\u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438:",selectDatabase:"\u0411\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445:",selectOrm:"ORM:",selectInfra:"\u0418\u043D\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430:",selectGame:"\u0418\u0433\u0440\u043E\u0432\u044B\u0435 \u0434\u0432\u0438\u0436\u043A\u0438 / \u0444\u0440\u0435\u0439\u043C\u0432\u043E\u0440\u043A\u0438:",selectMobile:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0435 / \u043A\u0440\u043E\u0441\u0441\u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u0435\u043D\u043D\u044B\u0435:",toolRecommendationsTitle:"\u0420\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B \u0434\u043B\u044F \u0432\u0430\u0448\u0435\u0433\u043E \u0441\u0442\u0435\u043A\u0430:",toolInstallMode:"\u041A\u0430\u043A \u0432\u044B \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C?",toolInstallDefault:"\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E (\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0441\u0435)",toolInstallCustom:"\u0412\u044B\u0431\u043E\u0440\u043E\u0447\u043D\u043E (\u0432\u044B\u0431\u0440\u0430\u0442\u044C \u043F\u043E \u043E\u0434\u043D\u043E\u043C\u0443)",toolInstallSkip:"\u041F\u0440\u043E\u043F\u0443\u0441\u0442\u0438\u0442\u044C (\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0437\u0436\u0435)",toolInstallPrompt:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C?",toolInstalling:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0430",toolInstallSuccess:"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E \u0443\u0441\u043F\u0435\u0448\u043D\u043E.",toolInstallFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C. \u041C\u043E\u0436\u043D\u043E \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u043F\u043E\u0437\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 setup.",toolUniversalTag:"\u0432\u0441\u0435 \u043F\u0440\u043E\u0435\u043A\u0442\u044B",toolStackSpecificTag:"\u0434\u043B\u044F \u0432\u0430\u0448\u0435\u0433\u043E \u0441\u0442\u0435\u043A\u0430",toolCategories:{vcs:"\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u044C \u0432\u0435\u0440\u0441\u0438\u0439",browser_automation:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044F \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430",e2e_testing:"E2E \u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",unit_testing:"\u042E\u043D\u0438\u0442-\u0442\u0435\u0441\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",linting:"\u041B\u0438\u043D\u0442\u0438\u043D\u0433",formatting:"\u0424\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435",type_checking:"\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0442\u0438\u043F\u043E\u0432",coverage:"\u041F\u043E\u043A\u0440\u044B\u0442\u0438\u0435 \u043A\u043E\u0434\u0430",documentation:"\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044F",secret_scanning:"\u0421\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0441\u0435\u043A\u0440\u0435\u0442\u043E\u0432",security_analysis:"\u0410\u043D\u0430\u043B\u0438\u0437 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438",unused_code:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0435\u043D\u0438\u0435 \u043D\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u043E\u0433\u043E \u043A\u043E\u0434\u0430",dependency_analysis:"\u0410\u043D\u0430\u043B\u0438\u0437 \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0435\u0439"},githubDetected:"\u041E\u0431\u043D\u0430\u0440\u0443\u0436\u0451\u043D GitHub-\u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u0439. \u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0430\u0432\u0442\u043E\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0451\u043D\u043D\u044B\u0445 \u0432\u0435\u0442\u043E\u043A...",githubConfigSuccess:"\u2713 \u041E\u0431\u044A\u0435\u0434\u0438\u043D\u0451\u043D\u043D\u044B\u0435 \u0432\u0435\u0442\u043A\u0438 \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0443\u0434\u0430\u043B\u044F\u0442\u044C\u0441\u044F \u043D\u0430 GitHub.",githubConfigFailed:"\u2717 \u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435. \u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 `gh repo edit --delete-branch-on-merge` \u0432\u0440\u0443\u0447\u043D\u0443\u044E.",configCreated:"\u0421\u043E\u0437\u0434\u0430\u043D",configExists:"\u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442",configOverwritten:"\u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0430\u043D",useForceFlag:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 --force \u0434\u043B\u044F \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0438.",languages:"\u042F\u0437\u044B\u043A\u0438",frontend:"\u0424\u0440\u043E\u043D\u0442\u0435\u043D\u0434",backend:"\u0411\u044D\u043A\u0435\u043D\u0434",database:"\u0411\u0430\u0437\u0430 \u0434\u0430\u043D\u043D\u044B\u0445",orm:"ORM",infra:"\u0418\u043D\u0444\u0440\u0430",game:"\u0418\u0433\u0440\u044B",mobile:"\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u044B\u0435",pressEnterToClose:"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 Enter \u0434\u043B\u044F \u0432\u044B\u0445\u043E\u0434\u0430...",unknownCommand:"\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043A\u043E\u043C\u0430\u043D\u0434\u0430",usage:"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435:",installSuccess:"\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u0432 Cursor!",installUpdated:"\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430",installUnchanged:"\u0423\u0436\u0435 \u0430\u043A\u0442\u0443\u0430\u043B\u044C\u043D\u043E",licenseNotSet:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u043E\u043D\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u043D\u0435 \u0437\u0430\u0434\u0430\u043D. \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 GODD_LICENSE_KEY \u0438\u043B\u0438 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435: godd install --license-key=YOUR_KEY",restartCursor:"\u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 Cursor \u0434\u043B\u044F \u0430\u043A\u0442\u0438\u0432\u0430\u0446\u0438\u0438 MCP-\u0441\u0435\u0440\u0432\u0435\u0440\u0430.",installFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438:",uninstallTitle:"\u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435",uninstallSuccess:"\u0423\u0434\u0430\u043B\u0435\u043D\u043E \u0438\u0437 Cursor",uninstallNotFound:"\u041D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E (\u0443\u0436\u0435 \u0443\u0434\u0430\u043B\u0435\u043D\u043E)",uninstallFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F:",initTitle:"\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043F\u0440\u043E\u0435\u043A\u0442\u0430",initAutoHint:"\u041D\u0435\u0438\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u0440\u0435\u0436\u0438\u043C (--auto): \u0442\u043E\u043B\u044C\u043A\u043E \u0430\u0432\u0442\u043E\u0441\u043A\u0430\u043D \u0441\u0442\u0435\u043A\u0430 \u0438 config; \u043C\u0430\u0441\u0442\u0435\u0440 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0440\u043E\u043F\u0443\u0449\u0435\u043D. \u0414\u043B\u044F \u0432\u044B\u0431\u043E\u0440\u0430 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0438\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 init.",yes:"\u0414\u0430",no:"\u041D\u0435\u0442",none:"\u041D\u0435\u0442",invalidChoice:"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0432\u044B\u0431\u043E\u0440. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437.",enterNumbers:"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u043E\u043C\u0435\u0440\u0430",updateAvailable:"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u043D\u043E\u0432\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F:",updateCurrent:"\u0442\u0435\u043A\u0443\u0449\u0430\u044F:",licenseMissing:"\u041F\u0435\u0440\u0435\u043C\u0435\u043D\u043D\u0430\u044F \u0441\u0440\u0435\u0434\u044B GODD_LICENSE_KEY \u043D\u0435 \u0437\u0430\u0434\u0430\u043D\u0430.",licenseMissingHint:"\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0439\u0442\u0435: godd install --license-key=YOUR_KEY",licenseFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438 \u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0438",configNotFound:"\u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D \u0432 \u0434\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430.",configNotFoundHint:'\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 "godd init" \u0434\u043B\u044F \u0433\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043F\u0440\u043E\u0435\u043A\u0442\u0430.',configUnknownValues:"\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u0442 \u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F:",didYouMean:"\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u044B \u0438\u043C\u0435\u043B\u0438 \u0432 \u0432\u0438\u0434\u0443",serverStarted:"\u0437\u0430\u043F\u0443\u0449\u0435\u043D (stdio)",corruptMcpJson:"\u043F\u043E\u0432\u0440\u0435\u0436\u0434\u0451\u043D. \u0420\u0435\u0437\u0435\u0440\u0432\u043D\u0430\u044F \u043A\u043E\u043F\u0438\u044F: {backup}. \u0421\u043E\u0437\u0434\u0430\u0451\u0442\u0441\u044F \u043D\u043E\u0432\u0430\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F.",licenseNotConfigured:"\u041B\u0438\u0446\u0435\u043D\u0437\u0438\u043E\u043D\u043D\u044B\u0439 \u043A\u043B\u044E\u0447 \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D. \u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u0435 GODD_LICENSE_KEY \u0438 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u0435 Cursor.",resolvePromptFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u043F\u0440\u043E\u043C\u043F\u0442",resolveToolFailed:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442",localToolFailed:"\u041E\u0448\u0438\u0431\u043A\u0430 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430",helpInstall:"\u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C MCP-\u0441\u0435\u0440\u0432\u0435\u0440 \u0432 Cursor",helpInit:"\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0435\u043A\u0442 (\u0438\u043D\u0442\u0435\u0440\u0430\u043A\u0442\u0438\u0432\u043D\u043E; --auto \u2014 \u0442\u043E\u043B\u044C\u043A\u043E \u0441\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435)",helpUninstall:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C MCP-\u0441\u0435\u0440\u0432\u0435\u0440 \u0438\u0437 Cursor",helpServe:"\u0417\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C MCP stdio-\u0441\u0435\u0440\u0432\u0435\u0440 (\u0432\u044B\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F Cursor)",fatalError:"\u041A\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043A\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430",compositeMissingSlugs:"\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415: \u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043B\u044B \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C"},kk={en:FN,ja:VN,ru:GN};function Se(e){return kk[e]??kk.en}var qh={en:"English",ja:"\u65E5\u672C\u8A9E",ru:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"};var $=e=>({win32:e,darwin:e,linux:e}),_=(e,...t)=>t.some(n=>e.programming_languages.includes(n)),pn=(e,...t)=>t.some(n=>e.mobile.includes(n)),JN=[{category:"vcs",tool:"gh",installCmd:{win32:"winget install GitHub.cli",darwin:"brew install gh",linux:'(type -p wget >/dev/null || sudo apt-get install wget -y) && sudo mkdir -p -m 755 /etc/apt/keyrings && out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg && cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null && sudo apt-get update && sudo apt-get install gh -y'},universal:!0,condition:()=>!0},{category:"browser_automation",tool:"browser-use",installCmd:$("pip install --upgrade browser-use"),universal:!0,condition:()=>!0},{category:"secret_scanning",tool:"gitleaks",installCmd:{win32:"winget install Gitleaks.Gitleaks",darwin:"brew install gitleaks",linux:"go install github.com/gitleaks/gitleaks/v8@latest"},universal:!0,condition:()=>!0},{category:"e2e_testing",tool:"playwright",installCmd:$("npm i -D @playwright/test@latest && npx playwright install"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"unit_testing",tool:"vitest",installCmd:$("npm i -D vitest@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"linting",tool:"biome",installCmd:$("npm i -D @biomejs/biome@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"formatting",tool:"biome",installCmd:$("npm i -D @biomejs/biome@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"type_checking",tool:"typescript",installCmd:$("npm i -D typescript@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"coverage",tool:"@vitest/coverage-v8",installCmd:$("npm i -D @vitest/coverage-v8@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"unused_code",tool:"knip",installCmd:$("npm i -D knip@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"dependency_analysis",tool:"dependency-cruiser",installCmd:$("npm i -D dependency-cruiser@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"documentation",tool:"typedoc",installCmd:$("npm i -D typedoc@latest"),universal:!1,condition:e=>_(e,"typescript","javascript")},{category:"e2e_testing",tool:"pytest",installCmd:$("pip install --upgrade pytest httpx pytest-asyncio"),universal:!1,condition:e=>_(e,"python")},{category:"unit_testing",tool:"pytest",installCmd:$("pip install --upgrade pytest"),universal:!1,condition:e=>_(e,"python")},{category:"linting",tool:"ruff",installCmd:$("pip install --upgrade ruff"),universal:!1,condition:e=>_(e,"python")},{category:"formatting",tool:"ruff",installCmd:$("pip install --upgrade ruff"),universal:!1,condition:e=>_(e,"python")},{category:"type_checking",tool:"pyright",installCmd:$("pip install --upgrade pyright"),universal:!1,condition:e=>_(e,"python")},{category:"coverage",tool:"pytest-cov",installCmd:$("pip install --upgrade pytest-cov"),universal:!1,condition:e=>_(e,"python")},{category:"unused_code",tool:"vulture",installCmd:$("pip install --upgrade vulture"),universal:!1,condition:e=>_(e,"python")},{category:"dependency_analysis",tool:"pipdeptree",installCmd:$("pip install --upgrade pipdeptree"),universal:!1,condition:e=>_(e,"python")},{category:"documentation",tool:"mkdocs",installCmd:$("pip install --upgrade mkdocs mkdocs-material"),universal:!1,condition:e=>_(e,"python")},{category:"security_analysis",tool:"bandit",installCmd:$("pip install --upgrade bandit"),universal:!1,condition:e=>_(e,"python")},{category:"unit_testing",tool:"testify",installCmd:$("go get github.com/stretchr/testify@latest"),universal:!1,condition:e=>_(e,"go")},{category:"formatting",tool:"gofmt",installCmd:$("echo gofmt \u2014 built-in with Go toolchain"),universal:!1,condition:e=>_(e,"go")},{category:"coverage",tool:"go-cover",installCmd:$("echo go test -cover \u2014 built-in with Go toolchain"),universal:!1,condition:e=>_(e,"go")},{category:"linting",tool:"golangci-lint",installCmd:{win32:"go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest",darwin:"brew install golangci-lint",linux:"go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest"},universal:!1,condition:e=>_(e,"go")},{category:"unused_code",tool:"deadcode",installCmd:$("go install golang.org/x/tools/cmd/deadcode@latest"),universal:!1,condition:e=>_(e,"go")},{category:"documentation",tool:"godoc",installCmd:$("go install golang.org/x/tools/cmd/godoc@latest"),universal:!1,condition:e=>_(e,"go")},{category:"security_analysis",tool:"gosec",installCmd:$("go install github.com/securego/gosec/v2/cmd/gosec@latest"),universal:!1,condition:e=>_(e,"go")},{category:"unit_testing",tool:"junit5",installCmd:$("echo JUnit 5 \u2014 add to pom.xml or build.gradle"),universal:!1,condition:e=>_(e,"java")&&!_(e,"kotlin")},{category:"linting",tool:"checkstyle",installCmd:$("echo Checkstyle \u2014 add Gradle/Maven plugin"),universal:!1,condition:e=>_(e,"java")&&!_(e,"kotlin")},{category:"formatting",tool:"google-java-format",installCmd:$("echo google-java-format \u2014 add to build config"),universal:!1,condition:e=>_(e,"java")&&!_(e,"kotlin")},{category:"coverage",tool:"jacoco",installCmd:$("echo JaCoCo \u2014 add Gradle/Maven plugin"),universal:!1,condition:e=>_(e,"java")},{category:"security_analysis",tool:"spotbugs",installCmd:$("echo SpotBugs \u2014 add Gradle/Maven plugin"),universal:!1,condition:e=>_(e,"java")},{category:"unit_testing",tool:"junit5",installCmd:$("echo JUnit 5 + MockK \u2014 add to build.gradle.kts"),universal:!1,condition:e=>_(e,"kotlin")},{category:"linting",tool:"detekt",installCmd:$("echo detekt \u2014 add Gradle plugin"),universal:!1,condition:e=>_(e,"kotlin")},{category:"formatting",tool:"ktlint",installCmd:$("echo ktlint \u2014 add Gradle plugin"),universal:!1,condition:e=>_(e,"kotlin")},{category:"coverage",tool:"kover",installCmd:$("echo Kover \u2014 add Gradle plugin"),universal:!1,condition:e=>_(e,"kotlin")},{category:"documentation",tool:"dokka",installCmd:$("echo Dokka \u2014 add Gradle plugin"),universal:!1,condition:e=>_(e,"kotlin")},{category:"unit_testing",tool:"xunit",installCmd:$("dotnet add package xunit xunit.runner.visualstudio"),universal:!1,condition:e=>_(e,"csharp")},{category:"formatting",tool:"dotnet-format",installCmd:$("echo dotnet format \u2014 built-in (.NET 6+)"),universal:!1,condition:e=>_(e,"csharp")},{category:"coverage",tool:"coverlet",installCmd:$("dotnet add package coverlet.collector"),universal:!1,condition:e=>_(e,"csharp")},{category:"linting",tool:"dotnet-analyzers",installCmd:$("echo .NET Analyzers \u2014 built-in with .NET 5+ SDK"),universal:!1,condition:e=>_(e,"csharp")},{category:"documentation",tool:"docfx",installCmd:$("dotnet tool install -g docfx"),universal:!1,condition:e=>_(e,"csharp")},{category:"unit_testing",tool:"googletest",installCmd:$("echo GoogleTest \u2014 add via CMake FetchContent"),universal:!1,condition:e=>_(e,"cpp","c")},{category:"linting",tool:"clang-tidy",installCmd:{win32:"choco install llvm",darwin:"brew install llvm",linux:"sudo apt-get install -y clang-tidy"},universal:!1,condition:e=>_(e,"cpp","c")},{category:"formatting",tool:"clang-format",installCmd:{win32:"choco install llvm",darwin:"brew install clang-format",linux:"sudo apt-get install -y clang-format"},universal:!1,condition:e=>_(e,"cpp","c")},{category:"coverage",tool:"lcov",installCmd:{win32:"choco install lcov",darwin:"brew install lcov",linux:"sudo apt-get install -y lcov"},universal:!1,condition:e=>_(e,"cpp","c")},{category:"documentation",tool:"doxygen",installCmd:{win32:"choco install doxygen.install",darwin:"brew install doxygen",linux:"sudo apt-get install -y doxygen"},universal:!1,condition:e=>_(e,"cpp","c")},{category:"security_analysis",tool:"cppcheck",installCmd:{win32:"choco install cppcheck",darwin:"brew install cppcheck",linux:"sudo apt-get install -y cppcheck"},universal:!1,condition:e=>_(e,"cpp","c")},{category:"unit_testing",tool:"phpunit",installCmd:$("composer require --dev phpunit/phpunit"),universal:!1,condition:e=>_(e,"php")},{category:"linting",tool:"phpstan",installCmd:$("composer require --dev phpstan/phpstan"),universal:!1,condition:e=>_(e,"php")},{category:"formatting",tool:"php-cs-fixer",installCmd:$("composer require --dev friendsofphp/php-cs-fixer"),universal:!1,condition:e=>_(e,"php")},{category:"documentation",tool:"phpdoc",installCmd:$("composer require --dev phpdocumentor/phpdocumentor"),universal:!1,condition:e=>_(e,"php")},{category:"security_analysis",tool:"psalm",installCmd:$("composer require --dev vimeo/psalm"),universal:!1,condition:e=>_(e,"php")},{category:"unit_testing",tool:"rspec",installCmd:$("gem install rspec && rspec --init"),universal:!1,condition:e=>_(e,"ruby")},{category:"linting",tool:"rubocop",installCmd:$("gem install rubocop"),universal:!1,condition:e=>_(e,"ruby")},{category:"formatting",tool:"rubocop",installCmd:$("gem install rubocop"),universal:!1,condition:e=>_(e,"ruby")},{category:"coverage",tool:"simplecov",installCmd:$("gem install simplecov"),universal:!1,condition:e=>_(e,"ruby")},{category:"documentation",tool:"yard",installCmd:$("gem install yard"),universal:!1,condition:e=>_(e,"ruby")},{category:"security_analysis",tool:"brakeman",installCmd:$("gem install brakeman"),universal:!1,condition:e=>_(e,"ruby")},{category:"linting",tool:"swiftlint",installCmd:{win32:"echo SwiftLint \u2014 not available on Windows",darwin:"brew install swiftlint",linux:"echo SwiftLint \u2014 install from GitHub releases"},universal:!1,condition:e=>_(e,"swift")},{category:"formatting",tool:"swiftformat",installCmd:{win32:"echo SwiftFormat \u2014 not available on Windows",darwin:"brew install swiftformat",linux:"echo SwiftFormat \u2014 install from GitHub releases"},universal:!1,condition:e=>_(e,"swift")},{category:"linting",tool:"clippy",installCmd:$("rustup component add clippy"),universal:!1,condition:e=>_(e,"rust")},{category:"formatting",tool:"rustfmt",installCmd:$("rustup component add rustfmt"),universal:!1,condition:e=>_(e,"rust")},{category:"coverage",tool:"tarpaulin",installCmd:$("cargo install cargo-tarpaulin"),universal:!1,condition:e=>_(e,"rust")},{category:"security_analysis",tool:"cargo-audit",installCmd:$("cargo install cargo-audit"),universal:!1,condition:e=>_(e,"rust")},{category:"unit_testing",tool:"flutter-test",installCmd:$("echo flutter test \u2014 built-in with Flutter SDK"),universal:!1,condition:e=>pn(e,"flutter")},{category:"linting",tool:"flutter-lints",installCmd:$("dart pub add --dev flutter_lints"),universal:!1,condition:e=>pn(e,"flutter")},{category:"documentation",tool:"dartdoc",installCmd:$("dart pub global activate dartdoc"),universal:!1,condition:e=>_(e,"dart")},{category:"linting",tool:"credo",installCmd:$('echo Credo \u2014 add {:credo, "~> 1.7"} to mix.exs'),universal:!1,condition:e=>_(e,"elixir")},{category:"type_checking",tool:"dialyxir",installCmd:$('echo Dialyxir \u2014 add {:dialyxir, "~> 1.4"} to mix.exs'),universal:!1,condition:e=>_(e,"elixir")},{category:"coverage",tool:"excoveralls",installCmd:$('echo ExCoveralls \u2014 add {:excoveralls, "~> 0.18"} to mix.exs'),universal:!1,condition:e=>_(e,"elixir")},{category:"documentation",tool:"ex-doc",installCmd:$('echo ExDoc \u2014 add {:ex_doc, "~> 0.34"} to mix.exs'),universal:!1,condition:e=>_(e,"elixir")},{category:"unit_testing",tool:"scalatest",installCmd:$("echo ScalaTest \u2014 add to build.sbt"),universal:!1,condition:e=>_(e,"scala")},{category:"linting",tool:"scalafix",installCmd:$("echo Scalafix \u2014 add sbt plugin"),universal:!1,condition:e=>_(e,"scala")},{category:"formatting",tool:"scalafmt",installCmd:$("echo Scalafmt \u2014 add sbt plugin"),universal:!1,condition:e=>_(e,"scala")},{category:"coverage",tool:"scoverage",installCmd:$("echo Scoverage \u2014 add sbt plugin"),universal:!1,condition:e=>_(e,"scala")},{category:"unit_testing",tool:"testthat",installCmd:$(`Rscript -e 'install.packages("testthat")'`),universal:!1,condition:e=>_(e,"r")},{category:"linting",tool:"lintr",installCmd:$(`Rscript -e 'install.packages("lintr")'`),universal:!1,condition:e=>_(e,"r")},{category:"formatting",tool:"styler",installCmd:$(`Rscript -e 'install.packages("styler")'`),universal:!1,condition:e=>_(e,"r")},{category:"coverage",tool:"covr",installCmd:$(`Rscript -e 'install.packages("covr")'`),universal:!1,condition:e=>_(e,"r")},{category:"documentation",tool:"roxygen2",installCmd:$(`Rscript -e 'install.packages("roxygen2")'`),universal:!1,condition:e=>_(e,"r")},{category:"unit_testing",tool:"hspec",installCmd:$("cabal install hspec"),universal:!1,condition:e=>_(e,"haskell")},{category:"linting",tool:"hlint",installCmd:$("cabal install hlint"),universal:!1,condition:e=>_(e,"haskell")},{category:"formatting",tool:"ormolu",installCmd:$("cabal install ormolu"),universal:!1,condition:e=>_(e,"haskell")},{category:"linting",tool:"perlcritic",installCmd:$("cpanm Perl::Critic"),universal:!1,condition:e=>_(e,"perl")},{category:"formatting",tool:"perltidy",installCmd:$("cpanm Perl::Tidy"),universal:!1,condition:e=>_(e,"perl")},{category:"linting",tool:"clj-kondo",installCmd:{win32:"echo clj-kondo \u2014 download from GitHub releases",darwin:"brew install borkdude/brew/clj-kondo",linux:"echo clj-kondo \u2014 download from GitHub releases"},universal:!1,condition:e=>_(e,"clojure")},{category:"formatting",tool:"cljfmt",installCmd:$("echo cljfmt \u2014 add to deps.edn"),universal:!1,condition:e=>_(e,"clojure")},{category:"formatting",tool:"juliaformatter",installCmd:$(`julia -e 'using Pkg; Pkg.add("JuliaFormatter")'`),universal:!1,condition:e=>_(e,"julia")},{category:"documentation",tool:"documenter",installCmd:$(`julia -e 'using Pkg; Pkg.add("Documenter")'`),universal:!1,condition:e=>_(e,"julia")},{category:"unit_testing",tool:"busted",installCmd:$("luarocks install busted"),universal:!1,condition:e=>_(e,"lua")},{category:"linting",tool:"luacheck",installCmd:$("luarocks install luacheck"),universal:!1,condition:e=>_(e,"lua")},{category:"formatting",tool:"stylua",installCmd:{win32:"cargo install stylua",darwin:"brew install stylua",linux:"cargo install stylua"},universal:!1,condition:e=>_(e,"lua")},{category:"unit_testing",tool:"forge-test",installCmd:{win32:"echo Foundry \u2014 install from https://getfoundry.sh",darwin:"curl -L https://foundry.paradigm.xyz | bash && foundryup",linux:"curl -L https://foundry.paradigm.xyz | bash && foundryup"},universal:!1,condition:e=>_(e,"solidity")},{category:"linting",tool:"solhint",installCmd:$("npm i -g solhint@latest"),universal:!1,condition:e=>_(e,"solidity")},{category:"formatting",tool:"prettier-solidity",installCmd:$("npm i -D prettier@latest prettier-plugin-solidity@latest"),universal:!1,condition:e=>_(e,"solidity")},{category:"security_analysis",tool:"slither",installCmd:$("pip install --upgrade slither-analyzer"),universal:!1,condition:e=>_(e,"solidity")},{category:"e2e_testing",tool:"detox",installCmd:$("npm i -D detox@latest"),universal:!1,condition:e=>pn(e,"react-native","expo")},{category:"linting",tool:"detekt",installCmd:$("echo detekt \u2014 add Gradle plugin"),universal:!1,condition:e=>pn(e,"jetpack-compose","kotlin-multiplatform")},{category:"linting",tool:"swiftlint",installCmd:{win32:"echo SwiftLint \u2014 not available on Windows",darwin:"brew install swiftlint",linux:"echo SwiftLint \u2014 install from GitHub releases"},universal:!1,condition:e=>pn(e,"swiftui","uikit")},{category:"e2e_testing",tool:"cypress",installCmd:$("npm i -D cypress@latest"),universal:!1,condition:e=>pn(e,"ionic","capacitor")},{category:"unit_testing",tool:"xunit",installCmd:$("dotnet add package xunit xunit.runner.visualstudio"),universal:!1,condition:e=>pn(e,"maui")},{category:"linting",tool:"gdlint",installCmd:$("pip install --upgrade gdtoolkit"),universal:!1,condition:e=>_(e,"gdscript")},{category:"formatting",tool:"gdformat",installCmd:$("pip install --upgrade gdtoolkit"),universal:!1,condition:e=>_(e,"gdscript")},{category:"unit_testing",tool:"xunit",installCmd:$("dotnet add package xunit xunit.runner.visualstudio"),universal:!1,condition:e=>_(e,"fsharp")},{category:"formatting",tool:"fantomas",installCmd:$("dotnet tool install -g fantomas"),universal:!1,condition:e=>_(e,"fsharp")},{category:"unit_testing",tool:"alcotest",installCmd:$("opam install alcotest"),universal:!1,condition:e=>_(e,"ocaml")},{category:"formatting",tool:"ocamlformat",installCmd:$("opam install ocamlformat"),universal:!1,condition:e=>_(e,"ocaml")},{category:"linting",tool:"elvis",installCmd:$("echo elvis \u2014 add as rebar3 plugin"),universal:!1,condition:e=>_(e,"erlang")},{category:"linting",tool:"ameba",installCmd:$("echo Ameba \u2014 add to shard.yml"),universal:!1,condition:e=>_(e,"crystal")},{category:"linting",tool:"codenarc",installCmd:$("echo CodeNarc \u2014 add Gradle plugin"),universal:!1,condition:e=>_(e,"groovy")},{category:"linting",tool:"oclint",installCmd:{win32:"echo OCLint \u2014 not available on Windows",darwin:"brew install oclint",linux:"echo OCLint \u2014 install from GitHub releases"},universal:!1,condition:e=>_(e,"objective-c")},{category:"formatting",tool:"clang-format",installCmd:{win32:"choco install llvm",darwin:"brew install clang-format",linux:"sudo apt-get install -y clang-format"},universal:!1,condition:e=>_(e,"objective-c")},{category:"unit_testing",tool:"mstest",installCmd:$("dotnet add package MSTest.TestFramework MSTest.TestAdapter"),universal:!1,condition:e=>_(e,"visual-basic")},{category:"unit_testing",tool:"pester",installCmd:$("Install-Module -Name Pester -Force -SkipPublisherCheck"),universal:!1,condition:e=>_(e,"powershell")},{category:"linting",tool:"psscriptanalyzer",installCmd:$("Install-Module -Name PSScriptAnalyzer -Force"),universal:!1,condition:e=>_(e,"powershell")}];function wk(e){let t=new Set,n=[];for(let o of JN)t.has(o.category)||o.condition(e)&&(n.push(o),t.add(o.category));return n}var qt=require("node:fs"),Za=require("node:path");var Fh="<!-- GoDD:start -->",id="<!-- GoDD:end -->";function KN(e){let t=["### GoDD stack snapshot","","Auto-detected from this repository (updated when `godd_config` or `godd init` runs):",""];for(let[n,o]of Object.entries(e))Array.isArray(o)&&o.length>0&&t.push(`- **${n}**: ${o.join(", ")}`);return t.push("",`_Generated by ${V.displayName} MCP \u2014 keep this block for drift detection._`),t.join(`
54
54
  `)}function Eo(e,t){let n=(0,Za.resolve)(e,"AGENTS.md"),o=KN(t),r=`${Fh}
55
55
  ${o}
56
56
  ${id}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autodevjapan/godd-mcp-alpha",
3
- "version": "0.37.1",
3
+ "version": "0.38.0",
4
4
  "type": "module",
5
5
  "description": "GoDD MCP α Server — AI Prompt Delivery System for Cursor IDE",
6
6
  "license": "UNLICENSED",