@autodevjapan/godd-mcp-alpha 1.4.1 → 1.4.2

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
@@ -185,9 +185,9 @@ ${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.pus
185
185
 
186
186
  Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let s of e.seen.entries()){let a=s[1];if(t===s[0]){o(s);continue}if(e.external){let l=e.external.registry.get(s[0])?.id;if(t!==s[0]&&l){o(s);continue}}if(e.metadataRegistry.get(s[0])?.id){o(s);continue}if(a.cycle){o(s);continue}if(a.count>1&&e.reused==="ref"){o(s);continue}}}function Zr(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let i=s=>{let a=e.seen.get(s);if(a.ref===null)return;let c=a.def??a.schema,l={...c},u=a.ref;if(a.ref=null,u){i(u);let f=e.seen.get(u),p=f.schema;if(p.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(p)):Object.assign(c,p),Object.assign(c,l),s._zod.parent===u)for(let m in c)m==="$ref"||m==="allOf"||m in l||delete c[m];if(p.$ref&&f.def)for(let m in c)m==="$ref"||m==="allOf"||m in f.def&&JSON.stringify(c[m])===JSON.stringify(f.def[m])&&delete c[m]}let d=s._zod.parent;if(d&&d!==u){i(d);let f=e.seen.get(d);if(f?.schema.$ref&&(c.$ref=f.schema.$ref,f.def))for(let p in c)p==="$ref"||p==="allOf"||p in f.def&&JSON.stringify(c[p])===JSON.stringify(f.def[p])&&delete c[p]}e.override({zodSchema:s,jsonSchema:c,path:a.path??[]})};for(let s of[...e.seen.entries()].reverse())i(s[0]);let n={};if(e.target==="draft-2020-12"?n.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?n.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?n.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let s=e.external.registry.get(t)?.id;if(!s)throw new Error("Schema is missing an `id` property");n.$id=e.external.uri(s)}Object.assign(n,r.def??r.schema);let o=e.external?.defs??{};for(let s of e.seen.entries()){let a=s[1];a.def&&a.defId&&(o[a.defId]=a.def)}e.external||Object.keys(o).length>0&&(e.target==="draft-2020-12"?n.$defs=o:n.definitions=o);try{let s=JSON.parse(JSON.stringify(n));return Object.defineProperty(s,"~standard",{value:{...t["~standard"],jsonSchema:{input:Di(t,"input",e.processors),output:Di(t,"output",e.processors)}},enumerable:!1,writable:!1}),s}catch{throw new Error("Error converting schema to JSON.")}}function ot(e,t){let r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);let i=e._zod.def;if(i.type==="transform")return!0;if(i.type==="array")return ot(i.element,r);if(i.type==="set")return ot(i.valueType,r);if(i.type==="lazy")return ot(i.getter(),r);if(i.type==="promise"||i.type==="optional"||i.type==="nonoptional"||i.type==="nullable"||i.type==="readonly"||i.type==="default"||i.type==="prefault")return ot(i.innerType,r);if(i.type==="intersection")return ot(i.left,r)||ot(i.right,r);if(i.type==="record"||i.type==="map")return ot(i.keyType,r)||ot(i.valueType,r);if(i.type==="pipe")return ot(i.in,r)||ot(i.out,r);if(i.type==="object"){for(let n in i.shape)if(ot(i.shape[n],r))return!0;return!1}if(i.type==="union"){for(let n of i.options)if(ot(n,r))return!0;return!1}if(i.type==="tuple"){for(let n of i.items)if(ot(n,r))return!0;return!!(i.rest&&ot(i.rest,r))}return!1}var ng=(e,t={})=>r=>{let i=Ur({...r,processors:t});return ge(e,i),qr(i,e),Zr(i,e)},Di=(e,t,r={})=>i=>{let{libraryOptions:n,target:o}=i??{},s=Ur({...n??{},target:o,io:t,processors:r});return ge(e,s),qr(s,e),Zr(s,e)};var zO={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},ig=(e,t,r,i)=>{let n=r;n.type="string";let{minimum:o,maximum:s,format:a,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof o=="number"&&(n.minLength=o),typeof s=="number"&&(n.maxLength=s),a&&(n.format=zO[a]??a,n.format===""&&delete n.format,a==="time"&&delete n.format),l&&(n.contentEncoding=l),c&&c.size>0){let u=[...c];u.length===1?n.pattern=u[0].source:u.length>1&&(n.allOf=[...u.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},og=(e,t,r,i)=>{let n=r,{minimum:o,maximum:s,format:a,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;typeof a=="string"&&a.includes("int")?n.type="integer":n.type="number",typeof u=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(n.minimum=u,n.exclusiveMinimum=!0):n.exclusiveMinimum=u),typeof o=="number"&&(n.minimum=o,typeof u=="number"&&t.target!=="draft-04"&&(u>=o?delete n.minimum:delete n.exclusiveMinimum)),typeof l=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(n.maximum=l,n.exclusiveMaximum=!0):n.exclusiveMaximum=l),typeof s=="number"&&(n.maximum=s,typeof l=="number"&&t.target!=="draft-04"&&(l<=s?delete n.maximum:delete n.exclusiveMaximum)),typeof c=="number"&&(n.multipleOf=c)},sg=(e,t,r,i)=>{r.type="boolean"},ag=(e,t,r,i)=>{if(t.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},cg=(e,t,r,i)=>{if(t.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},lg=(e,t,r,i)=>{t.target==="openapi-3.0"?(r.type="string",r.nullable=!0,r.enum=[null]):r.type="null"},ug=(e,t,r,i)=>{if(t.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},dg=(e,t,r,i)=>{if(t.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},fg=(e,t,r,i)=>{r.not={}},pg=(e,t,r,i)=>{},mg=(e,t,r,i)=>{},gg=(e,t,r,i)=>{if(t.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},hg=(e,t,r,i)=>{let n=e._zod.def,o=Go(n.entries);o.every(s=>typeof s=="number")&&(r.type="number"),o.every(s=>typeof s=="string")&&(r.type="string"),r.enum=o},yg=(e,t,r,i)=>{let n=e._zod.def,o=[];for(let s of n.values)if(s===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof s=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");o.push(Number(s))}else o.push(s);if(o.length!==0)if(o.length===1){let s=o[0];r.type=s===null?"null":typeof s,t.target==="draft-04"||t.target==="openapi-3.0"?r.enum=[s]:r.const=s}else o.every(s=>typeof s=="number")&&(r.type="number"),o.every(s=>typeof s=="string")&&(r.type="string"),o.every(s=>typeof s=="boolean")&&(r.type="boolean"),o.every(s=>s===null)&&(r.type="null"),r.enum=o},vg=(e,t,r,i)=>{if(t.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},_g=(e,t,r,i)=>{let n=r,o=e._zod.pattern;if(!o)throw new Error("Pattern not found in template literal");n.type="string",n.pattern=o.source},bg=(e,t,r,i)=>{let n=r,o={type:"string",format:"binary",contentEncoding:"binary"},{minimum:s,maximum:a,mime:c}=e._zod.bag;s!==void 0&&(o.minLength=s),a!==void 0&&(o.maxLength=a),c?c.length===1?(o.contentMediaType=c[0],Object.assign(n,o)):(Object.assign(n,o),n.anyOf=c.map(l=>({contentMediaType:l}))):Object.assign(n,o)},$g=(e,t,r,i)=>{r.type="boolean"},kg=(e,t,r,i)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Sg=(e,t,r,i)=>{if(t.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},xg=(e,t,r,i)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},wg=(e,t,r,i)=>{if(t.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Ig=(e,t,r,i)=>{if(t.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},zg=(e,t,r,i)=>{let n=r,o=e._zod.def,{minimum:s,maximum:a}=e._zod.bag;typeof s=="number"&&(n.minItems=s),typeof a=="number"&&(n.maxItems=a),n.type="array",n.items=ge(o.element,t,{...i,path:[...i.path,"items"]})},Pg=(e,t,r,i)=>{let n=r,o=e._zod.def;n.type="object",n.properties={};let s=o.shape;for(let l in s)n.properties[l]=ge(s[l],t,{...i,path:[...i.path,"properties",l]});let a=new Set(Object.keys(s)),c=new Set([...a].filter(l=>{let u=o.shape[l]._zod;return t.io==="input"?u.optin===void 0:u.optout===void 0}));c.size>0&&(n.required=Array.from(c)),o.catchall?._zod.def.type==="never"?n.additionalProperties=!1:o.catchall?o.catchall&&(n.additionalProperties=ge(o.catchall,t,{...i,path:[...i.path,"additionalProperties"]})):t.io==="output"&&(n.additionalProperties=!1)},qu=(e,t,r,i)=>{let n=e._zod.def,o=n.inclusive===!1,s=n.options.map((a,c)=>ge(a,t,{...i,path:[...i.path,o?"oneOf":"anyOf",c]}));o?r.oneOf=s:r.anyOf=s},Tg=(e,t,r,i)=>{let n=e._zod.def,o=ge(n.left,t,{...i,path:[...i.path,"allOf",0]}),s=ge(n.right,t,{...i,path:[...i.path,"allOf",1]}),a=l=>"allOf"in l&&Object.keys(l).length===1,c=[...a(o)?o.allOf:[o],...a(s)?s.allOf:[s]];r.allOf=c},Eg=(e,t,r,i)=>{let n=r,o=e._zod.def;n.type="array";let s=t.target==="draft-2020-12"?"prefixItems":"items",a=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",c=o.items.map((f,p)=>ge(f,t,{...i,path:[...i.path,s,p]})),l=o.rest?ge(o.rest,t,{...i,path:[...i.path,a,...t.target==="openapi-3.0"?[o.items.length]:[]]}):null;t.target==="draft-2020-12"?(n.prefixItems=c,l&&(n.items=l)):t.target==="openapi-3.0"?(n.items={anyOf:c},l&&n.items.anyOf.push(l),n.minItems=c.length,l||(n.maxItems=c.length)):(n.items=c,l&&(n.additionalItems=l));let{minimum:u,maximum:d}=e._zod.bag;typeof u=="number"&&(n.minItems=u),typeof d=="number"&&(n.maxItems=d)},Ng=(e,t,r,i)=>{let n=r,o=e._zod.def;n.type="object";let s=o.keyType,c=s._zod.bag?.patterns;if(o.mode==="loose"&&c&&c.size>0){let u=ge(o.valueType,t,{...i,path:[...i.path,"patternProperties","*"]});n.patternProperties={};for(let d of c)n.patternProperties[d.source]=u}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(n.propertyNames=ge(o.keyType,t,{...i,path:[...i.path,"propertyNames"]})),n.additionalProperties=ge(o.valueType,t,{...i,path:[...i.path,"additionalProperties"]});let l=s._zod.values;if(l){let u=[...l].filter(d=>typeof d=="string"||typeof d=="number");u.length>0&&(n.required=u)}},Og=(e,t,r,i)=>{let n=e._zod.def,o=ge(n.innerType,t,i),s=t.seen.get(e);t.target==="openapi-3.0"?(s.ref=n.innerType,r.nullable=!0):r.anyOf=[o,{type:"null"}]},jg=(e,t,r,i)=>{let n=e._zod.def;ge(n.innerType,t,i);let o=t.seen.get(e);o.ref=n.innerType},Cg=(e,t,r,i)=>{let n=e._zod.def;ge(n.innerType,t,i);let o=t.seen.get(e);o.ref=n.innerType,r.default=JSON.parse(JSON.stringify(n.defaultValue))},Dg=(e,t,r,i)=>{let n=e._zod.def;ge(n.innerType,t,i);let o=t.seen.get(e);o.ref=n.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(n.defaultValue)))},Ag=(e,t,r,i)=>{let n=e._zod.def;ge(n.innerType,t,i);let o=t.seen.get(e);o.ref=n.innerType;let s;try{s=n.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s},Rg=(e,t,r,i)=>{let n=e._zod.def,o=t.io==="input"?n.in._zod.def.type==="transform"?n.out:n.in:n.out;ge(o,t,i);let s=t.seen.get(e);s.ref=o},Mg=(e,t,r,i)=>{let n=e._zod.def;ge(n.innerType,t,i);let o=t.seen.get(e);o.ref=n.innerType,r.readOnly=!0},Lg=(e,t,r,i)=>{let n=e._zod.def;ge(n.innerType,t,i);let o=t.seen.get(e);o.ref=n.innerType},Zu=(e,t,r,i)=>{let n=e._zod.def;ge(n.innerType,t,i);let o=t.seen.get(e);o.ref=n.innerType},Ug=(e,t,r,i)=>{let n=e._zod.innerType;ge(n,t,i);let o=t.seen.get(e);o.ref=n},Uu={string:ig,number:og,boolean:sg,bigint:ag,symbol:cg,null:lg,undefined:ug,void:dg,never:fg,any:pg,unknown:mg,date:gg,enum:hg,literal:yg,nan:vg,template_literal:_g,file:bg,success:$g,custom:kg,function:Sg,transform:xg,map:wg,set:Ig,array:zg,object:Pg,union:qu,intersection:Tg,tuple:Eg,record:Ng,nullable:Og,nonoptional:jg,default:Cg,prefault:Dg,catch:Ag,pipe:Rg,readonly:Mg,promise:Lg,optional:Zu,lazy:Ug};function Ai(e,t){if("_idmap"in e){let i=e,n=Ur({...t,processors:Uu}),o={};for(let c of i._idmap.entries()){let[l,u]=c;ge(u,n)}let s={},a={registry:i,uri:t?.uri,defs:o};n.external=a;for(let c of i._idmap.entries()){let[l,u]=c;qr(n,u),s[l]=Zr(n,u)}if(Object.keys(o).length>0){let c=n.target==="draft-2020-12"?"$defs":"definitions";s.__shared={[c]:o}}return{schemas:s}}let r=Ur({...t,processors:Uu});return ge(e,r),qr(r,e),Zr(r,e)}var Fu=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 r=t?.target??"draft-2020-12";r==="draft-4"&&(r="draft-04"),r==="draft-7"&&(r="draft-07"),this.ctx=Ur({processors:Uu,target:r,...t?.metadata&&{metadata:t.metadata},...t?.unrepresentable&&{unrepresentable:t.unrepresentable},...t?.override&&{override:t.override},...t?.io&&{io:t.io}})}process(t,r={path:[],schemaPath:[]}){return ge(t,this.ctx,r)}emit(t,r){r&&(r.cycles&&(this.ctx.cycles=r.cycles),r.reused&&(this.ctx.reused=r.reused),r.external&&(this.ctx.external=r.external)),qr(this.ctx,t);let i=Zr(this.ctx,t),{"~standard":n,...o}=i;return o}};var Jk={};function Ri(e){return!!e._zod}function Fr(e,t){return Ri(e)?_n(e,t):e.safeParse(t)}function Vu(e){if(!e)return;let t;if(Ri(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function Yk(e){if(Ri(e)){let o=e._zod?.def;if(o){if(o.value!==void 0)return o.value;if(Array.isArray(o.values)&&o.values.length>0)return o.values[0]}}let r=e._def;if(r){if(r.value!==void 0)return r.value;if(Array.isArray(r.values)&&r.values.length>0)return r.values[0]}let i=e.value;if(i!==void 0)return i}var F={};ur(F,{$brand:()=>Vo,$input:()=>tu,$output:()=>eu,NEVER:()=>bc,TimePrecision:()=>ou,ZodAny:()=>ah,ZodArray:()=>dh,ZodBase64:()=>ud,ZodBase64URL:()=>dd,ZodBigInt:()=>Fi,ZodBigIntFormat:()=>md,ZodBoolean:()=>Zi,ZodCIDRv4:()=>cd,ZodCIDRv6:()=>ld,ZodCUID:()=>td,ZodCUID2:()=>rd,ZodCatch:()=>Nh,ZodCodec:()=>bd,ZodCustom:()=>Fs,ZodCustomStringFormat:()=>Ui,ZodDate:()=>Ms,ZodDefault:()=>wh,ZodDiscriminatedUnion:()=>ph,ZodE164:()=>fd,ZodEmail:()=>Qu,ZodEmoji:()=>Xu,ZodEnum:()=>Mi,ZodError:()=>jO,ZodExactOptional:()=>kh,ZodFile:()=>bh,ZodFirstPartyTypeKind:()=>Fh,ZodFunction:()=>Uh,ZodGUID:()=>js,ZodIPv4:()=>sd,ZodIPv6:()=>ad,ZodISODate:()=>Bu,ZodISODateTime:()=>Gu,ZodISODuration:()=>Hu,ZodISOTime:()=>Ju,ZodIntersection:()=>mh,ZodIssueCode:()=>DO,ZodJWT:()=>pd,ZodKSUID:()=>od,ZodLazy:()=>Rh,ZodLiteral:()=>_h,ZodMAC:()=>nh,ZodMap:()=>yh,ZodNaN:()=>jh,ZodNanoID:()=>ed,ZodNever:()=>lh,ZodNonOptional:()=>vd,ZodNull:()=>sh,ZodNullable:()=>xh,ZodNumber:()=>qi,ZodNumberFormat:()=>jn,ZodObject:()=>Ls,ZodOptional:()=>yd,ZodPipe:()=>_d,ZodPrefault:()=>zh,ZodPromise:()=>Lh,ZodReadonly:()=>Ch,ZodRealError:()=>ft,ZodRecord:()=>Zs,ZodSet:()=>vh,ZodString:()=>Li,ZodStringFormat:()=>be,ZodSuccess:()=>Eh,ZodSymbol:()=>ih,ZodTemplateLiteral:()=>Ah,ZodTransform:()=>$h,ZodTuple:()=>gh,ZodType:()=>H,ZodULID:()=>nd,ZodURL:()=>As,ZodUUID:()=>Qt,ZodUndefined:()=>oh,ZodUnion:()=>Us,ZodUnknown:()=>ch,ZodVoid:()=>uh,ZodXID:()=>id,ZodXor:()=>fh,_ZodString:()=>Yu,_default:()=>Ih,_function:()=>ex,any:()=>AS,array:()=>ne,base64:()=>_S,base64url:()=>bS,bigint:()=>NS,boolean:()=>Ee,catch:()=>Oh,check:()=>tx,cidrv4:()=>yS,cidrv6:()=>vS,clone:()=>Ue,codec:()=>YS,coerce:()=>Vh,config:()=>Te,core:()=>kt,cuid:()=>lS,cuid2:()=>uS,custom:()=>$d,date:()=>MS,decode:()=>Wg,decodeAsync:()=>Qg,describe:()=>rx,discriminatedUnion:()=>qs,e164:()=>$S,email:()=>Xk,emoji:()=>aS,encode:()=>Hg,encodeAsync:()=>Yg,endsWith:()=>In,enum:()=>Fe,exactOptional:()=>Sh,file:()=>BS,flattenError:()=>yi,float32:()=>zS,float64:()=>PS,formatError:()=>vi,fromJSONSchema:()=>cx,function:()=>ex,getErrorMap:()=>RO,globalRegistry:()=>Re,gt:()=>Lt,gte:()=>qe,guid:()=>eS,hash:()=>IS,hex:()=>wS,hostname:()=>xS,httpUrl:()=>sS,includes:()=>xn,instanceof:()=>ix,int:()=>Wu,int32:()=>TS,int64:()=>OS,intersection:()=>Vi,ipv4:()=>mS,ipv6:()=>hS,iso:()=>Vr,json:()=>sx,jwt:()=>kS,keyof:()=>LS,ksuid:()=>pS,lazy:()=>Mh,length:()=>Lr,literal:()=>L,locales:()=>Ni,looseObject:()=>Ze,looseRecord:()=>FS,lowercase:()=>kn,lt:()=>Mt,lte:()=>it,mac:()=>gS,map:()=>VS,maxLength:()=>Mr,maxSize:()=>yr,meta:()=>nx,mime:()=>zn,minLength:()=>Yt,minSize:()=>Ut,multipleOf:()=>hr,nan:()=>WS,nanoid:()=>cS,nativeEnum:()=>GS,negative:()=>Ps,never:()=>gd,nonnegative:()=>Es,nonoptional:()=>Th,nonpositive:()=>Ts,normalize:()=>Pn,null:()=>Rs,nullable:()=>Cs,nullish:()=>JS,number:()=>fe,object:()=>D,optional:()=>xe,overwrite:()=>zt,parse:()=>Kg,parseAsync:()=>Gg,partialRecord:()=>ZS,pipe:()=>Ds,positive:()=>zs,prefault:()=>Ph,preprocess:()=>Vs,prettifyError:()=>wc,promise:()=>XS,property:()=>Ns,readonly:()=>Dh,record:()=>ve,refine:()=>qh,regex:()=>$n,regexes:()=>dt,registry:()=>ss,safeDecode:()=>eh,safeDecodeAsync:()=>rh,safeEncode:()=>Xg,safeEncodeAsync:()=>th,safeParse:()=>Bg,safeParseAsync:()=>Jg,set:()=>KS,setErrorMap:()=>AO,size:()=>Rr,slugify:()=>Ci,startsWith:()=>wn,strictObject:()=>US,string:()=>$,stringFormat:()=>SS,stringbool:()=>ox,success:()=>HS,superRefine:()=>Zh,symbol:()=>CS,templateLiteral:()=>QS,toJSONSchema:()=>Ai,toLowerCase:()=>En,toUpperCase:()=>Nn,transform:()=>hd,treeifyError:()=>xc,trim:()=>Tn,tuple:()=>hh,uint32:()=>ES,uint64:()=>jS,ulid:()=>dS,undefined:()=>DS,union:()=>ke,unknown:()=>$e,uppercase:()=>Sn,url:()=>oS,util:()=>T,uuid:()=>tS,uuidv4:()=>rS,uuidv6:()=>nS,uuidv7:()=>iS,void:()=>RS,xid:()=>fS,xor:()=>qS});var Os={};ur(Os,{ZodAny:()=>ah,ZodArray:()=>dh,ZodBase64:()=>ud,ZodBase64URL:()=>dd,ZodBigInt:()=>Fi,ZodBigIntFormat:()=>md,ZodBoolean:()=>Zi,ZodCIDRv4:()=>cd,ZodCIDRv6:()=>ld,ZodCUID:()=>td,ZodCUID2:()=>rd,ZodCatch:()=>Nh,ZodCodec:()=>bd,ZodCustom:()=>Fs,ZodCustomStringFormat:()=>Ui,ZodDate:()=>Ms,ZodDefault:()=>wh,ZodDiscriminatedUnion:()=>ph,ZodE164:()=>fd,ZodEmail:()=>Qu,ZodEmoji:()=>Xu,ZodEnum:()=>Mi,ZodExactOptional:()=>kh,ZodFile:()=>bh,ZodFunction:()=>Uh,ZodGUID:()=>js,ZodIPv4:()=>sd,ZodIPv6:()=>ad,ZodIntersection:()=>mh,ZodJWT:()=>pd,ZodKSUID:()=>od,ZodLazy:()=>Rh,ZodLiteral:()=>_h,ZodMAC:()=>nh,ZodMap:()=>yh,ZodNaN:()=>jh,ZodNanoID:()=>ed,ZodNever:()=>lh,ZodNonOptional:()=>vd,ZodNull:()=>sh,ZodNullable:()=>xh,ZodNumber:()=>qi,ZodNumberFormat:()=>jn,ZodObject:()=>Ls,ZodOptional:()=>yd,ZodPipe:()=>_d,ZodPrefault:()=>zh,ZodPromise:()=>Lh,ZodReadonly:()=>Ch,ZodRecord:()=>Zs,ZodSet:()=>vh,ZodString:()=>Li,ZodStringFormat:()=>be,ZodSuccess:()=>Eh,ZodSymbol:()=>ih,ZodTemplateLiteral:()=>Ah,ZodTransform:()=>$h,ZodTuple:()=>gh,ZodType:()=>H,ZodULID:()=>nd,ZodURL:()=>As,ZodUUID:()=>Qt,ZodUndefined:()=>oh,ZodUnion:()=>Us,ZodUnknown:()=>ch,ZodVoid:()=>uh,ZodXID:()=>id,ZodXor:()=>fh,_ZodString:()=>Yu,_default:()=>Ih,_function:()=>ex,any:()=>AS,array:()=>ne,base64:()=>_S,base64url:()=>bS,bigint:()=>NS,boolean:()=>Ee,catch:()=>Oh,check:()=>tx,cidrv4:()=>yS,cidrv6:()=>vS,codec:()=>YS,cuid:()=>lS,cuid2:()=>uS,custom:()=>$d,date:()=>MS,describe:()=>rx,discriminatedUnion:()=>qs,e164:()=>$S,email:()=>Xk,emoji:()=>aS,enum:()=>Fe,exactOptional:()=>Sh,file:()=>BS,float32:()=>zS,float64:()=>PS,function:()=>ex,guid:()=>eS,hash:()=>IS,hex:()=>wS,hostname:()=>xS,httpUrl:()=>sS,instanceof:()=>ix,int:()=>Wu,int32:()=>TS,int64:()=>OS,intersection:()=>Vi,ipv4:()=>mS,ipv6:()=>hS,json:()=>sx,jwt:()=>kS,keyof:()=>LS,ksuid:()=>pS,lazy:()=>Mh,literal:()=>L,looseObject:()=>Ze,looseRecord:()=>FS,mac:()=>gS,map:()=>VS,meta:()=>nx,nan:()=>WS,nanoid:()=>cS,nativeEnum:()=>GS,never:()=>gd,nonoptional:()=>Th,null:()=>Rs,nullable:()=>Cs,nullish:()=>JS,number:()=>fe,object:()=>D,optional:()=>xe,partialRecord:()=>ZS,pipe:()=>Ds,prefault:()=>Ph,preprocess:()=>Vs,promise:()=>XS,readonly:()=>Dh,record:()=>ve,refine:()=>qh,set:()=>KS,strictObject:()=>US,string:()=>$,stringFormat:()=>SS,stringbool:()=>ox,success:()=>HS,superRefine:()=>Zh,symbol:()=>CS,templateLiteral:()=>QS,transform:()=>hd,tuple:()=>hh,uint32:()=>ES,uint64:()=>jS,ulid:()=>dS,undefined:()=>DS,union:()=>ke,unknown:()=>$e,url:()=>oS,uuid:()=>tS,uuidv4:()=>rS,uuidv6:()=>nS,uuidv7:()=>iS,void:()=>RS,xid:()=>fS,xor:()=>qS});var Ku={};ur(Ku,{endsWith:()=>In,gt:()=>Lt,gte:()=>qe,includes:()=>xn,length:()=>Lr,lowercase:()=>kn,lt:()=>Mt,lte:()=>it,maxLength:()=>Mr,maxSize:()=>yr,mime:()=>zn,minLength:()=>Yt,minSize:()=>Ut,multipleOf:()=>hr,negative:()=>Ps,nonnegative:()=>Es,nonpositive:()=>Ts,normalize:()=>Pn,overwrite:()=>zt,positive:()=>zs,property:()=>Ns,regex:()=>$n,size:()=>Rr,slugify:()=>Ci,startsWith:()=>wn,toLowerCase:()=>En,toUpperCase:()=>Nn,trim:()=>Tn,uppercase:()=>Sn});var Vr={};ur(Vr,{ZodISODate:()=>Bu,ZodISODateTime:()=>Gu,ZodISODuration:()=>Hu,ZodISOTime:()=>Ju,date:()=>Zg,datetime:()=>qg,duration:()=>Vg,time:()=>Fg});var Gu=y("ZodISODateTime",(e,t)=>{el.init(e,t),be.init(e,t)});function qg(e){return su(Gu,e)}var Bu=y("ZodISODate",(e,t)=>{tl.init(e,t),be.init(e,t)});function Zg(e){return au(Bu,e)}var Ju=y("ZodISOTime",(e,t)=>{rl.init(e,t),be.init(e,t)});function Fg(e){return cu(Ju,e)}var Hu=y("ZodISODuration",(e,t)=>{nl.init(e,t),be.init(e,t)});function Vg(e){return lu(Hu,e)}var Qk=(e,t)=>{Yo.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>vi(e,r)},flatten:{value:r=>yi(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,mi,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,mi,2)}},isEmpty:{get(){return e.issues.length===0}}})},jO=y("ZodError",Qk),ft=y("ZodError",Qk,{Parent:Error});var Kg=_i(ft),Gg=$i(ft),Bg=Si(ft),Jg=xi(ft),Hg=Ic(ft),Wg=zc(ft),Yg=Pc(ft),Qg=Tc(ft),Xg=Ec(ft),eh=Nc(ft),th=Oc(ft),rh=jc(ft);var H=y("ZodType",(e,t)=>(G.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Di(e,"input"),output:Di(e,"output")}}),e.toJSONSchema=ng(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...r)=>e.clone(T.mergeDefs(t,{checks:[...t.checks??[],...r.map(i=>typeof i=="function"?{_zod:{check:i,def:{check:"custom"},onattach:[]}}:i)]}),{parent:!0}),e.with=e.check,e.clone=(r,i)=>Ue(e,r,i),e.brand=()=>e,e.register=((r,i)=>(r.add(e,i),e)),e.parse=(r,i)=>Kg(e,r,i,{callee:e.parse}),e.safeParse=(r,i)=>Bg(e,r,i),e.parseAsync=async(r,i)=>Gg(e,r,i,{callee:e.parseAsync}),e.safeParseAsync=async(r,i)=>Jg(e,r,i),e.spa=e.safeParseAsync,e.encode=(r,i)=>Hg(e,r,i),e.decode=(r,i)=>Wg(e,r,i),e.encodeAsync=async(r,i)=>Yg(e,r,i),e.decodeAsync=async(r,i)=>Qg(e,r,i),e.safeEncode=(r,i)=>Xg(e,r,i),e.safeDecode=(r,i)=>eh(e,r,i),e.safeEncodeAsync=async(r,i)=>th(e,r,i),e.safeDecodeAsync=async(r,i)=>rh(e,r,i),e.refine=(r,i)=>e.check(qh(r,i)),e.superRefine=r=>e.check(Zh(r)),e.overwrite=r=>e.check(zt(r)),e.optional=()=>xe(e),e.exactOptional=()=>Sh(e),e.nullable=()=>Cs(e),e.nullish=()=>xe(Cs(e)),e.nonoptional=r=>Th(e,r),e.array=()=>ne(e),e.or=r=>ke([e,r]),e.and=r=>Vi(e,r),e.transform=r=>Ds(e,hd(r)),e.default=r=>Ih(e,r),e.prefault=r=>Ph(e,r),e.catch=r=>Oh(e,r),e.pipe=r=>Ds(e,r),e.readonly=()=>Dh(e),e.describe=r=>{let i=e.clone();return Re.add(i,{description:r}),i},Object.defineProperty(e,"description",{get(){return Re.get(e)?.description},configurable:!0}),e.meta=(...r)=>{if(r.length===0)return Re.get(e);let i=e.clone();return Re.add(i,r[0]),i},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=r=>r(e),e)),Yu=y("_ZodString",(e,t)=>{Ar.init(e,t),H.init(e,t),e._zod.processJSONSchema=(i,n,o)=>ig(e,i,n,o);let r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,e.regex=(...i)=>e.check($n(...i)),e.includes=(...i)=>e.check(xn(...i)),e.startsWith=(...i)=>e.check(wn(...i)),e.endsWith=(...i)=>e.check(In(...i)),e.min=(...i)=>e.check(Yt(...i)),e.max=(...i)=>e.check(Mr(...i)),e.length=(...i)=>e.check(Lr(...i)),e.nonempty=(...i)=>e.check(Yt(1,...i)),e.lowercase=i=>e.check(kn(i)),e.uppercase=i=>e.check(Sn(i)),e.trim=()=>e.check(Tn()),e.normalize=(...i)=>e.check(Pn(...i)),e.toLowerCase=()=>e.check(En()),e.toUpperCase=()=>e.check(Nn()),e.slugify=()=>e.check(Ci())}),Li=y("ZodString",(e,t)=>{Ar.init(e,t),Yu.init(e,t),e.email=r=>e.check(as(Qu,r)),e.url=r=>e.check(ji(As,r)),e.jwt=r=>e.check(Is(pd,r)),e.emoji=r=>e.check(fs(Xu,r)),e.guid=r=>e.check(Oi(js,r)),e.uuid=r=>e.check(cs(Qt,r)),e.uuidv4=r=>e.check(ls(Qt,r)),e.uuidv6=r=>e.check(us(Qt,r)),e.uuidv7=r=>e.check(ds(Qt,r)),e.nanoid=r=>e.check(ps(ed,r)),e.guid=r=>e.check(Oi(js,r)),e.cuid=r=>e.check(ms(td,r)),e.cuid2=r=>e.check(gs(rd,r)),e.ulid=r=>e.check(hs(nd,r)),e.base64=r=>e.check(Ss(ud,r)),e.base64url=r=>e.check(xs(dd,r)),e.xid=r=>e.check(ys(id,r)),e.ksuid=r=>e.check(vs(od,r)),e.ipv4=r=>e.check(_s(sd,r)),e.ipv6=r=>e.check(bs(ad,r)),e.cidrv4=r=>e.check($s(cd,r)),e.cidrv6=r=>e.check(ks(ld,r)),e.e164=r=>e.check(ws(fd,r)),e.datetime=r=>e.check(qg(r)),e.date=r=>e.check(Zg(r)),e.time=r=>e.check(Fg(r)),e.duration=r=>e.check(Vg(r))});function $(e){return ru(Li,e)}var be=y("ZodStringFormat",(e,t)=>{ye.init(e,t),Yu.init(e,t)}),Qu=y("ZodEmail",(e,t)=>{Kc.init(e,t),be.init(e,t)});function Xk(e){return as(Qu,e)}var js=y("ZodGUID",(e,t)=>{Fc.init(e,t),be.init(e,t)});function eS(e){return Oi(js,e)}var Qt=y("ZodUUID",(e,t)=>{Vc.init(e,t),be.init(e,t)});function tS(e){return cs(Qt,e)}function rS(e){return ls(Qt,e)}function nS(e){return us(Qt,e)}function iS(e){return ds(Qt,e)}var As=y("ZodURL",(e,t)=>{Gc.init(e,t),be.init(e,t)});function oS(e){return ji(As,e)}function sS(e){return ji(As,{protocol:/^https?$/,hostname:dt.domain,...T.normalizeParams(e)})}var Xu=y("ZodEmoji",(e,t)=>{Bc.init(e,t),be.init(e,t)});function aS(e){return fs(Xu,e)}var ed=y("ZodNanoID",(e,t)=>{Jc.init(e,t),be.init(e,t)});function cS(e){return ps(ed,e)}var td=y("ZodCUID",(e,t)=>{Hc.init(e,t),be.init(e,t)});function lS(e){return ms(td,e)}var rd=y("ZodCUID2",(e,t)=>{Wc.init(e,t),be.init(e,t)});function uS(e){return gs(rd,e)}var nd=y("ZodULID",(e,t)=>{Yc.init(e,t),be.init(e,t)});function dS(e){return hs(nd,e)}var id=y("ZodXID",(e,t)=>{Qc.init(e,t),be.init(e,t)});function fS(e){return ys(id,e)}var od=y("ZodKSUID",(e,t)=>{Xc.init(e,t),be.init(e,t)});function pS(e){return vs(od,e)}var sd=y("ZodIPv4",(e,t)=>{il.init(e,t),be.init(e,t)});function mS(e){return _s(sd,e)}var nh=y("ZodMAC",(e,t)=>{sl.init(e,t),be.init(e,t)});function gS(e){return iu(nh,e)}var ad=y("ZodIPv6",(e,t)=>{ol.init(e,t),be.init(e,t)});function hS(e){return bs(ad,e)}var cd=y("ZodCIDRv4",(e,t)=>{al.init(e,t),be.init(e,t)});function yS(e){return $s(cd,e)}var ld=y("ZodCIDRv6",(e,t)=>{cl.init(e,t),be.init(e,t)});function vS(e){return ks(ld,e)}var ud=y("ZodBase64",(e,t)=>{ll.init(e,t),be.init(e,t)});function _S(e){return Ss(ud,e)}var dd=y("ZodBase64URL",(e,t)=>{ul.init(e,t),be.init(e,t)});function bS(e){return xs(dd,e)}var fd=y("ZodE164",(e,t)=>{dl.init(e,t),be.init(e,t)});function $S(e){return ws(fd,e)}var pd=y("ZodJWT",(e,t)=>{fl.init(e,t),be.init(e,t)});function kS(e){return Is(pd,e)}var Ui=y("ZodCustomStringFormat",(e,t)=>{pl.init(e,t),be.init(e,t)});function SS(e,t,r={}){return On(Ui,e,t,r)}function xS(e){return On(Ui,"hostname",dt.hostname,e)}function wS(e){return On(Ui,"hex",dt.hex,e)}function IS(e,t){let r=t?.enc??"hex",i=`${e}_${r}`,n=dt[i];if(!n)throw new Error(`Unrecognized hash format: ${i}`);return On(Ui,i,n,t)}var qi=y("ZodNumber",(e,t)=>{ts.init(e,t),H.init(e,t),e._zod.processJSONSchema=(i,n,o)=>og(e,i,n,o),e.gt=(i,n)=>e.check(Lt(i,n)),e.gte=(i,n)=>e.check(qe(i,n)),e.min=(i,n)=>e.check(qe(i,n)),e.lt=(i,n)=>e.check(Mt(i,n)),e.lte=(i,n)=>e.check(it(i,n)),e.max=(i,n)=>e.check(it(i,n)),e.int=i=>e.check(Wu(i)),e.safe=i=>e.check(Wu(i)),e.positive=i=>e.check(Lt(0,i)),e.nonnegative=i=>e.check(qe(0,i)),e.negative=i=>e.check(Mt(0,i)),e.nonpositive=i=>e.check(it(0,i)),e.multipleOf=(i,n)=>e.check(hr(i,n)),e.step=(i,n)=>e.check(hr(i,n)),e.finite=()=>e;let r=e._zod.bag;e.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),e.isFinite=!0,e.format=r.format??null});function fe(e){return uu(qi,e)}var jn=y("ZodNumberFormat",(e,t)=>{ml.init(e,t),qi.init(e,t)});function Wu(e){return fu(jn,e)}function zS(e){return pu(jn,e)}function PS(e){return mu(jn,e)}function TS(e){return gu(jn,e)}function ES(e){return hu(jn,e)}var Zi=y("ZodBoolean",(e,t)=>{zi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>sg(e,r,i,n)});function Ee(e){return yu(Zi,e)}var Fi=y("ZodBigInt",(e,t)=>{rs.init(e,t),H.init(e,t),e._zod.processJSONSchema=(i,n,o)=>ag(e,i,n,o),e.gte=(i,n)=>e.check(qe(i,n)),e.min=(i,n)=>e.check(qe(i,n)),e.gt=(i,n)=>e.check(Lt(i,n)),e.gte=(i,n)=>e.check(qe(i,n)),e.min=(i,n)=>e.check(qe(i,n)),e.lt=(i,n)=>e.check(Mt(i,n)),e.lte=(i,n)=>e.check(it(i,n)),e.max=(i,n)=>e.check(it(i,n)),e.positive=i=>e.check(Lt(BigInt(0),i)),e.negative=i=>e.check(Mt(BigInt(0),i)),e.nonpositive=i=>e.check(it(BigInt(0),i)),e.nonnegative=i=>e.check(qe(BigInt(0),i)),e.multipleOf=(i,n)=>e.check(hr(i,n));let r=e._zod.bag;e.minValue=r.minimum??null,e.maxValue=r.maximum??null,e.format=r.format??null});function NS(e){return _u(Fi,e)}var md=y("ZodBigIntFormat",(e,t)=>{gl.init(e,t),Fi.init(e,t)});function OS(e){return $u(md,e)}function jS(e){return ku(md,e)}var ih=y("ZodSymbol",(e,t)=>{hl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>cg(e,r,i,n)});function CS(e){return Su(ih,e)}var oh=y("ZodUndefined",(e,t)=>{yl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>ug(e,r,i,n)});function DS(e){return xu(oh,e)}var sh=y("ZodNull",(e,t)=>{vl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>lg(e,r,i,n)});function Rs(e){return wu(sh,e)}var ah=y("ZodAny",(e,t)=>{_l.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>pg(e,r,i,n)});function AS(){return Iu(ah)}var ch=y("ZodUnknown",(e,t)=>{bl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>mg(e,r,i,n)});function $e(){return zu(ch)}var lh=y("ZodNever",(e,t)=>{$l.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>fg(e,r,i,n)});function gd(e){return Pu(lh,e)}var uh=y("ZodVoid",(e,t)=>{kl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>dg(e,r,i,n)});function RS(e){return Tu(uh,e)}var Ms=y("ZodDate",(e,t)=>{Sl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(i,n,o)=>gg(e,i,n,o),e.min=(i,n)=>e.check(qe(i,n)),e.max=(i,n)=>e.check(it(i,n));let r=e._zod.bag;e.minDate=r.minimum?new Date(r.minimum):null,e.maxDate=r.maximum?new Date(r.maximum):null});function MS(e){return Eu(Ms,e)}var dh=y("ZodArray",(e,t)=>{xl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>zg(e,r,i,n),e.element=t.element,e.min=(r,i)=>e.check(Yt(r,i)),e.nonempty=r=>e.check(Yt(1,r)),e.max=(r,i)=>e.check(Mr(r,i)),e.length=(r,i)=>e.check(Lr(r,i)),e.unwrap=()=>e.element});function ne(e,t){return rg(dh,e,t)}function LS(e){let t=e._zod.def.shape;return Fe(Object.keys(t))}var Ls=y("ZodObject",(e,t)=>{tg.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Pg(e,r,i,n),T.defineLazy(e,"shape",()=>t.shape),e.keyof=()=>Fe(Object.keys(e._zod.def.shape)),e.catchall=r=>e.clone({...e._zod.def,catchall:r}),e.passthrough=()=>e.clone({...e._zod.def,catchall:$e()}),e.loose=()=>e.clone({...e._zod.def,catchall:$e()}),e.strict=()=>e.clone({...e._zod.def,catchall:gd()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=r=>T.extend(e,r),e.safeExtend=r=>T.safeExtend(e,r),e.merge=r=>T.merge(e,r),e.pick=r=>T.pick(e,r),e.omit=r=>T.omit(e,r),e.partial=(...r)=>T.partial(yd,e,r[0]),e.required=(...r)=>T.required(vd,e,r[0])});function D(e,t){let r={type:"object",shape:e??{},...T.normalizeParams(t)};return new Ls(r)}function US(e,t){return new Ls({type:"object",shape:e,catchall:gd(),...T.normalizeParams(t)})}function Ze(e,t){return new Ls({type:"object",shape:e,catchall:$e(),...T.normalizeParams(t)})}var Us=y("ZodUnion",(e,t)=>{Pi.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>qu(e,r,i,n),e.options=t.options});function ke(e,t){return new Us({type:"union",options:e,...T.normalizeParams(t)})}var fh=y("ZodXor",(e,t)=>{Us.init(e,t),wl.init(e,t),e._zod.processJSONSchema=(r,i,n)=>qu(e,r,i,n),e.options=t.options});function qS(e,t){return new fh({type:"union",options:e,inclusive:!1,...T.normalizeParams(t)})}var ph=y("ZodDiscriminatedUnion",(e,t)=>{Us.init(e,t),Il.init(e,t)});function qs(e,t,r){return new ph({type:"union",options:t,discriminator:e,...T.normalizeParams(r)})}var mh=y("ZodIntersection",(e,t)=>{zl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Tg(e,r,i,n)});function Vi(e,t){return new mh({type:"intersection",left:e,right:t})}var gh=y("ZodTuple",(e,t)=>{ns.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Eg(e,r,i,n),e.rest=r=>e.clone({...e._zod.def,rest:r})});function hh(e,t,r){let i=t instanceof G,n=i?r:t,o=i?t:null;return new gh({type:"tuple",items:e,rest:o,...T.normalizeParams(n)})}var Zs=y("ZodRecord",(e,t)=>{Pl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Ng(e,r,i,n),e.keyType=t.keyType,e.valueType=t.valueType});function ve(e,t,r){return new Zs({type:"record",keyType:e,valueType:t,...T.normalizeParams(r)})}function ZS(e,t,r){let i=Ue(e);return i._zod.values=void 0,new Zs({type:"record",keyType:i,valueType:t,...T.normalizeParams(r)})}function FS(e,t,r){return new Zs({type:"record",keyType:e,valueType:t,mode:"loose",...T.normalizeParams(r)})}var yh=y("ZodMap",(e,t)=>{Tl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>wg(e,r,i,n),e.keyType=t.keyType,e.valueType=t.valueType,e.min=(...r)=>e.check(Ut(...r)),e.nonempty=r=>e.check(Ut(1,r)),e.max=(...r)=>e.check(yr(...r)),e.size=(...r)=>e.check(Rr(...r))});function VS(e,t,r){return new yh({type:"map",keyType:e,valueType:t,...T.normalizeParams(r)})}var vh=y("ZodSet",(e,t)=>{El.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Ig(e,r,i,n),e.min=(...r)=>e.check(Ut(...r)),e.nonempty=r=>e.check(Ut(1,r)),e.max=(...r)=>e.check(yr(...r)),e.size=(...r)=>e.check(Rr(...r))});function KS(e,t){return new vh({type:"set",valueType:e,...T.normalizeParams(t)})}var Mi=y("ZodEnum",(e,t)=>{Nl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(i,n,o)=>hg(e,i,n,o),e.enum=t.entries,e.options=Object.values(t.entries);let r=new Set(Object.keys(t.entries));e.extract=(i,n)=>{let o={};for(let s of i)if(r.has(s))o[s]=t.entries[s];else throw new Error(`Key ${s} not found in enum`);return new Mi({...t,checks:[],...T.normalizeParams(n),entries:o})},e.exclude=(i,n)=>{let o={...t.entries};for(let s of i)if(r.has(s))delete o[s];else throw new Error(`Key ${s} not found in enum`);return new Mi({...t,checks:[],...T.normalizeParams(n),entries:o})}});function Fe(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(i=>[i,i])):e;return new Mi({type:"enum",entries:r,...T.normalizeParams(t)})}function GS(e,t){return new Mi({type:"enum",entries:e,...T.normalizeParams(t)})}var _h=y("ZodLiteral",(e,t)=>{Ol.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>yg(e,r,i,n),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 L(e,t){return new _h({type:"literal",values:Array.isArray(e)?e:[e],...T.normalizeParams(t)})}var bh=y("ZodFile",(e,t)=>{jl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>bg(e,r,i,n),e.min=(r,i)=>e.check(Ut(r,i)),e.max=(r,i)=>e.check(yr(r,i)),e.mime=(r,i)=>e.check(zn(Array.isArray(r)?r:[r],i))});function BS(e){return ju(bh,e)}var $h=y("ZodTransform",(e,t)=>{Cl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>xg(e,r,i,n),e._zod.parse=(r,i)=>{if(i.direction==="backward")throw new Nr(e.constructor.name);r.addIssue=o=>{if(typeof o=="string")r.issues.push(T.issue(o,r.value,t));else{let s=o;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=e),r.issues.push(T.issue(s))}};let n=t.transform(r.value,r);return n instanceof Promise?n.then(o=>(r.value=o,r)):(r.value=n,r)}});function hd(e){return new $h({type:"transform",transform:e})}var yd=y("ZodOptional",(e,t)=>{is.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Zu(e,r,i,n),e.unwrap=()=>e._zod.def.innerType});function xe(e){return new yd({type:"optional",innerType:e})}var kh=y("ZodExactOptional",(e,t)=>{Dl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Zu(e,r,i,n),e.unwrap=()=>e._zod.def.innerType});function Sh(e){return new kh({type:"optional",innerType:e})}var xh=y("ZodNullable",(e,t)=>{Al.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Og(e,r,i,n),e.unwrap=()=>e._zod.def.innerType});function Cs(e){return new xh({type:"nullable",innerType:e})}function JS(e){return xe(Cs(e))}var wh=y("ZodDefault",(e,t)=>{Rl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Cg(e,r,i,n),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Ih(e,t){return new wh({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():T.shallowClone(t)}})}var zh=y("ZodPrefault",(e,t)=>{Ml.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Dg(e,r,i,n),e.unwrap=()=>e._zod.def.innerType});function Ph(e,t){return new zh({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():T.shallowClone(t)}})}var vd=y("ZodNonOptional",(e,t)=>{Ll.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>jg(e,r,i,n),e.unwrap=()=>e._zod.def.innerType});function Th(e,t){return new vd({type:"nonoptional",innerType:e,...T.normalizeParams(t)})}var Eh=y("ZodSuccess",(e,t)=>{Ul.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>$g(e,r,i,n),e.unwrap=()=>e._zod.def.innerType});function HS(e){return new Eh({type:"success",innerType:e})}var Nh=y("ZodCatch",(e,t)=>{ql.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Ag(e,r,i,n),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Oh(e,t){return new Nh({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var jh=y("ZodNaN",(e,t)=>{Zl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>vg(e,r,i,n)});function WS(e){return Ou(jh,e)}var _d=y("ZodPipe",(e,t)=>{Fl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Rg(e,r,i,n),e.in=t.in,e.out=t.out});function Ds(e,t){return new _d({type:"pipe",in:e,out:t})}var bd=y("ZodCodec",(e,t)=>{_d.init(e,t),Ti.init(e,t)});function YS(e,t,r){return new bd({type:"pipe",in:e,out:t,transform:r.decode,reverseTransform:r.encode})}var Ch=y("ZodReadonly",(e,t)=>{Vl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Mg(e,r,i,n),e.unwrap=()=>e._zod.def.innerType});function Dh(e){return new Ch({type:"readonly",innerType:e})}var Ah=y("ZodTemplateLiteral",(e,t)=>{Kl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>_g(e,r,i,n)});function QS(e,t){return new Ah({type:"template_literal",parts:e,...T.normalizeParams(t)})}var Rh=y("ZodLazy",(e,t)=>{Jl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Ug(e,r,i,n),e.unwrap=()=>e._zod.def.getter()});function Mh(e){return new Rh({type:"lazy",getter:e})}var Lh=y("ZodPromise",(e,t)=>{Bl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Lg(e,r,i,n),e.unwrap=()=>e._zod.def.innerType});function XS(e){return new Lh({type:"promise",innerType:e})}var Uh=y("ZodFunction",(e,t)=>{Gl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>Sg(e,r,i,n)});function ex(e){return new Uh({type:"function",input:Array.isArray(e?.input)?hh(e?.input):e?.input??ne($e()),output:e?.output??$e()})}var Fs=y("ZodCustom",(e,t)=>{Hl.init(e,t),H.init(e,t),e._zod.processJSONSchema=(r,i,n)=>kg(e,r,i,n)});function tx(e){let t=new _e({check:"custom"});return t._zod.check=e,t}function $d(e,t){return Cu(Fs,e??(()=>!0),t)}function qh(e,t={}){return Du(Fs,e,t)}function Zh(e){return Au(e)}var rx=Ru,nx=Mu;function ix(e,t={}){let r=new Fs({type:"custom",check:"custom",fn:i=>i instanceof e,abort:!0,...T.normalizeParams(t)});return r._zod.bag.Class=e,r._zod.check=i=>{i.value instanceof e||i.issues.push({code:"invalid_type",expected:e.name,input:i.value,inst:r,path:[...r._zod.def.path??[]]})},r}var ox=(...e)=>Lu({Codec:bd,Boolean:Zi,String:Li},...e);function sx(e){let t=Mh(()=>ke([$(e),fe(),Ee(),Rs(),ne(t),ve($(),t)]));return t}function Vs(e,t){return Ds(hd(e),t)}var DO={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 AO(e){Te({customError:e})}function RO(){return Te().customError}var Fh;Fh||(Fh={});var C={...Os,...Ku,iso:Vr},MO=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 LO(e,t){let r=e.$schema;return r==="https://json-schema.org/draft/2020-12/schema"?"draft-2020-12":r==="http://json-schema.org/draft-07/schema#"?"draft-7":r==="http://json-schema.org/draft-04/schema#"?"draft-4":t??"draft-2020-12"}function UO(e,t){if(!e.startsWith("#"))throw new Error("External $ref is not supported, only local refs (#/...) are allowed");let r=e.slice(1).split("/").filter(Boolean);if(r.length===0)return t.rootSchema;let i=t.version==="draft-2020-12"?"$defs":"definitions";if(r[0]===i){let n=r[1];if(!n||!t.defs[n])throw new Error(`Reference not found: ${e}`);return t.defs[n]}throw new Error(`Reference not found: ${e}`)}function ax(e,t){if(e.not!==void 0){if(typeof e.not=="object"&&Object.keys(e.not).length===0)return C.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 n=e.$ref;if(t.refs.has(n))return t.refs.get(n);if(t.processing.has(n))return C.lazy(()=>{if(!t.refs.has(n))throw new Error(`Circular reference not resolved: ${n}`);return t.refs.get(n)});t.processing.add(n);let o=UO(n,t),s=Xe(o,t);return t.refs.set(n,s),t.processing.delete(n),s}if(e.enum!==void 0){let n=e.enum;if(t.version==="openapi-3.0"&&e.nullable===!0&&n.length===1&&n[0]===null)return C.null();if(n.length===0)return C.never();if(n.length===1)return C.literal(n[0]);if(n.every(s=>typeof s=="string"))return C.enum(n);let o=n.map(s=>C.literal(s));return o.length<2?o[0]:C.union([o[0],o[1],...o.slice(2)])}if(e.const!==void 0)return C.literal(e.const);let r=e.type;if(Array.isArray(r)){let n=r.map(o=>{let s={...e,type:o};return ax(s,t)});return n.length===0?C.never():n.length===1?n[0]:C.union(n)}if(!r)return C.any();let i;switch(r){case"string":{let n=C.string();if(e.format){let o=e.format;o==="email"?n=n.check(C.email()):o==="uri"||o==="uri-reference"?n=n.check(C.url()):o==="uuid"||o==="guid"?n=n.check(C.uuid()):o==="date-time"?n=n.check(C.iso.datetime()):o==="date"?n=n.check(C.iso.date()):o==="time"?n=n.check(C.iso.time()):o==="duration"?n=n.check(C.iso.duration()):o==="ipv4"?n=n.check(C.ipv4()):o==="ipv6"?n=n.check(C.ipv6()):o==="mac"?n=n.check(C.mac()):o==="cidr"?n=n.check(C.cidrv4()):o==="cidr-v6"?n=n.check(C.cidrv6()):o==="base64"?n=n.check(C.base64()):o==="base64url"?n=n.check(C.base64url()):o==="e164"?n=n.check(C.e164()):o==="jwt"?n=n.check(C.jwt()):o==="emoji"?n=n.check(C.emoji()):o==="nanoid"?n=n.check(C.nanoid()):o==="cuid"?n=n.check(C.cuid()):o==="cuid2"?n=n.check(C.cuid2()):o==="ulid"?n=n.check(C.ulid()):o==="xid"?n=n.check(C.xid()):o==="ksuid"&&(n=n.check(C.ksuid()))}typeof e.minLength=="number"&&(n=n.min(e.minLength)),typeof e.maxLength=="number"&&(n=n.max(e.maxLength)),e.pattern&&(n=n.regex(new RegExp(e.pattern))),i=n;break}case"number":case"integer":{let n=r==="integer"?C.number().int():C.number();typeof e.minimum=="number"&&(n=n.min(e.minimum)),typeof e.maximum=="number"&&(n=n.max(e.maximum)),typeof e.exclusiveMinimum=="number"?n=n.gt(e.exclusiveMinimum):e.exclusiveMinimum===!0&&typeof e.minimum=="number"&&(n=n.gt(e.minimum)),typeof e.exclusiveMaximum=="number"?n=n.lt(e.exclusiveMaximum):e.exclusiveMaximum===!0&&typeof e.maximum=="number"&&(n=n.lt(e.maximum)),typeof e.multipleOf=="number"&&(n=n.multipleOf(e.multipleOf)),i=n;break}case"boolean":{i=C.boolean();break}case"null":{i=C.null();break}case"object":{let n={},o=e.properties||{},s=new Set(e.required||[]);for(let[c,l]of Object.entries(o)){let u=Xe(l,t);n[c]=s.has(c)?u:u.optional()}if(e.propertyNames){let c=Xe(e.propertyNames,t),l=e.additionalProperties&&typeof e.additionalProperties=="object"?Xe(e.additionalProperties,t):C.any();if(Object.keys(n).length===0){i=C.record(c,l);break}let u=C.object(n).passthrough(),d=C.looseRecord(c,l);i=C.intersection(u,d);break}if(e.patternProperties){let c=e.patternProperties,l=Object.keys(c),u=[];for(let f of l){let p=Xe(c[f],t),g=C.string().regex(new RegExp(f));u.push(C.looseRecord(g,p))}let d=[];if(Object.keys(n).length>0&&d.push(C.object(n).passthrough()),d.push(...u),d.length===0)i=C.object({}).passthrough();else if(d.length===1)i=d[0];else{let f=C.intersection(d[0],d[1]);for(let p=2;p<d.length;p++)f=C.intersection(f,d[p]);i=f}break}let a=C.object(n);e.additionalProperties===!1?i=a.strict():typeof e.additionalProperties=="object"?i=a.catchall(Xe(e.additionalProperties,t)):i=a.passthrough();break}case"array":{let n=e.prefixItems,o=e.items;if(n&&Array.isArray(n)){let s=n.map(c=>Xe(c,t)),a=o&&typeof o=="object"&&!Array.isArray(o)?Xe(o,t):void 0;a?i=C.tuple(s).rest(a):i=C.tuple(s),typeof e.minItems=="number"&&(i=i.check(C.minLength(e.minItems))),typeof e.maxItems=="number"&&(i=i.check(C.maxLength(e.maxItems)))}else if(Array.isArray(o)){let s=o.map(c=>Xe(c,t)),a=e.additionalItems&&typeof e.additionalItems=="object"?Xe(e.additionalItems,t):void 0;a?i=C.tuple(s).rest(a):i=C.tuple(s),typeof e.minItems=="number"&&(i=i.check(C.minLength(e.minItems))),typeof e.maxItems=="number"&&(i=i.check(C.maxLength(e.maxItems)))}else if(o!==void 0){let s=Xe(o,t),a=C.array(s);typeof e.minItems=="number"&&(a=a.min(e.minItems)),typeof e.maxItems=="number"&&(a=a.max(e.maxItems)),i=a}else i=C.array(C.any());break}default:throw new Error(`Unsupported type: ${r}`)}return e.description&&(i=i.describe(e.description)),e.default!==void 0&&(i=i.default(e.default)),i}function Xe(e,t){if(typeof e=="boolean")return e?C.any():C.never();let r=ax(e,t),i=e.type||e.enum!==void 0||e.const!==void 0;if(e.anyOf&&Array.isArray(e.anyOf)){let a=e.anyOf.map(l=>Xe(l,t)),c=C.union(a);r=i?C.intersection(r,c):c}if(e.oneOf&&Array.isArray(e.oneOf)){let a=e.oneOf.map(l=>Xe(l,t)),c=C.xor(a);r=i?C.intersection(r,c):c}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)r=i?r:C.any();else{let a=i?r:Xe(e.allOf[0],t),c=i?0:1;for(let l=c;l<e.allOf.length;l++)a=C.intersection(a,Xe(e.allOf[l],t));r=a}e.nullable===!0&&t.version==="openapi-3.0"&&(r=C.nullable(r)),e.readOnly===!0&&(r=C.readonly(r));let n={},o=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(let a of o)a in e&&(n[a]=e[a]);let s=["contentEncoding","contentMediaType","contentSchema"];for(let a of s)a in e&&(n[a]=e[a]);for(let a of Object.keys(e))MO.has(a)||(n[a]=e[a]);return Object.keys(n).length>0&&t.registry.add(r,n),r}function cx(e,t){if(typeof e=="boolean")return e?C.any():C.never();let r=LO(e,t?.defaultTarget),i=e.$defs||e.definitions||{},n={version:r,defs:i,refs:new Map,processing:new Set,rootSchema:e,registry:t?.registry??Re};return Xe(e,n)}var Vh={};ur(Vh,{bigint:()=>VO,boolean:()=>FO,date:()=>KO,number:()=>ZO,string:()=>qO});function qO(e){return nu(Li,e)}function ZO(e){return du(qi,e)}function FO(e){return vu(Zi,e)}function VO(e){return bu(Fi,e)}function KO(e){return Nu(Ms,e)}Te(Wl());var Gh="2025-11-25";var lx=[Gh,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],Kr="io.modelcontextprotocol/related-task",Sd="2.0",je=$d(e=>e!==null&&(typeof e=="object"||typeof e=="function")),ux=ke([$(),fe().int()]),dx=$(),HK=Ze({ttl:fe().optional(),pollInterval:fe().optional()}),BO=D({ttl:fe().optional()}),JO=D({taskId:$()}),Bh=Ze({progressToken:ux.optional(),[Kr]:JO.optional()}),St=D({_meta:Bh.optional()}),Ks=St.extend({task:BO.optional()}),fx=e=>Ks.safeParse(e).success,Ve=D({method:$(),params:St.loose().optional()}),Pt=D({_meta:Bh.optional()}),Tt=D({method:$(),params:Pt.loose().optional()}),Ke=Ze({_meta:Bh.optional()}),xd=ke([$(),fe().int()]),px=D({jsonrpc:L(Sd),id:xd,...Ve.shape}).strict(),Jh=e=>px.safeParse(e).success,mx=D({jsonrpc:L(Sd),...Tt.shape}).strict(),gx=e=>mx.safeParse(e).success,Hh=D({jsonrpc:L(Sd),id:xd,result:Ke}).strict(),Gs=e=>Hh.safeParse(e).success;var ae;(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"})(ae||(ae={}));var Wh=D({jsonrpc:L(Sd),id:xd.optional(),error:D({code:fe().int(),message:$(),data:$e().optional()})}).strict();var hx=e=>Wh.safeParse(e).success;var yx=ke([px,mx,Hh,Wh]),WK=ke([Hh,Wh]),wd=Ke.strict(),HO=Pt.extend({requestId:xd.optional(),reason:$().optional()}),Id=Tt.extend({method:L("notifications/cancelled"),params:HO}),WO=D({src:$(),mimeType:$().optional(),sizes:ne($()).optional(),theme:Fe(["light","dark"]).optional()}),Bs=D({icons:ne(WO).optional()}),Ki=D({name:$(),title:$().optional()}),vx=Ki.extend({...Ki.shape,...Bs.shape,version:$(),websiteUrl:$().optional(),description:$().optional()}),YO=Vi(D({applyDefaults:Ee().optional()}),ve($(),$e())),QO=Vs(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,Vi(D({form:YO.optional(),url:je.optional()}),ve($(),$e()).optional())),XO=Ze({list:je.optional(),cancel:je.optional(),requests:Ze({sampling:Ze({createMessage:je.optional()}).optional(),elicitation:Ze({create:je.optional()}).optional()}).optional()}),ej=Ze({list:je.optional(),cancel:je.optional(),requests:Ze({tools:Ze({call:je.optional()}).optional()}).optional()}),tj=D({experimental:ve($(),je).optional(),sampling:D({context:je.optional(),tools:je.optional()}).optional(),elicitation:QO.optional(),roots:D({listChanged:Ee().optional()}).optional(),tasks:XO.optional(),extensions:ve($(),je).optional()}),rj=St.extend({protocolVersion:$(),capabilities:tj,clientInfo:vx}),Yh=Ve.extend({method:L("initialize"),params:rj});var nj=D({experimental:ve($(),je).optional(),logging:je.optional(),completions:je.optional(),prompts:D({listChanged:Ee().optional()}).optional(),resources:D({subscribe:Ee().optional(),listChanged:Ee().optional()}).optional(),tools:D({listChanged:Ee().optional()}).optional(),tasks:ej.optional(),extensions:ve($(),je).optional()}),ij=Ke.extend({protocolVersion:$(),capabilities:nj,serverInfo:vx,instructions:$().optional()}),Qh=Tt.extend({method:L("notifications/initialized"),params:Pt.optional()});var zd=Ve.extend({method:L("ping"),params:St.optional()}),oj=D({progress:fe(),total:xe(fe()),message:xe($())}),sj=D({...Pt.shape,...oj.shape,progressToken:ux}),Pd=Tt.extend({method:L("notifications/progress"),params:sj}),aj=St.extend({cursor:dx.optional()}),Js=Ve.extend({params:aj.optional()}),Hs=Ke.extend({nextCursor:dx.optional()}),cj=Fe(["working","input_required","completed","failed","cancelled"]),Ws=D({taskId:$(),status:cj,ttl:ke([fe(),Rs()]),createdAt:$(),lastUpdatedAt:$(),pollInterval:xe(fe()),statusMessage:xe($())}),Gi=Ke.extend({task:Ws}),lj=Pt.merge(Ws),Ys=Tt.extend({method:L("notifications/tasks/status"),params:lj}),Td=Ve.extend({method:L("tasks/get"),params:St.extend({taskId:$()})}),Ed=Ke.merge(Ws),Nd=Ve.extend({method:L("tasks/result"),params:St.extend({taskId:$()})}),YK=Ke.loose(),Od=Js.extend({method:L("tasks/list")}),jd=Hs.extend({tasks:ne(Ws)}),Cd=Ve.extend({method:L("tasks/cancel"),params:St.extend({taskId:$()})}),_x=Ke.merge(Ws),bx=D({uri:$(),mimeType:xe($()),_meta:ve($(),$e()).optional()}),$x=bx.extend({text:$()}),Xh=$().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),kx=bx.extend({blob:Xh}),Qs=Fe(["user","assistant"]),Bi=D({audience:ne(Qs).optional(),priority:fe().min(0).max(1).optional(),lastModified:Vr.datetime({offset:!0}).optional()}),Sx=D({...Ki.shape,...Bs.shape,uri:$(),description:xe($()),mimeType:xe($()),size:xe(fe()),annotations:Bi.optional(),_meta:xe(Ze({}))}),uj=D({...Ki.shape,...Bs.shape,uriTemplate:$(),description:xe($()),mimeType:xe($()),annotations:Bi.optional(),_meta:xe(Ze({}))}),dj=Js.extend({method:L("resources/list")}),fj=Hs.extend({resources:ne(Sx)}),pj=Js.extend({method:L("resources/templates/list")}),mj=Hs.extend({resourceTemplates:ne(uj)}),ey=St.extend({uri:$()}),gj=ey,hj=Ve.extend({method:L("resources/read"),params:gj}),yj=Ke.extend({contents:ne(ke([$x,kx]))}),vj=Tt.extend({method:L("notifications/resources/list_changed"),params:Pt.optional()}),_j=ey,bj=Ve.extend({method:L("resources/subscribe"),params:_j}),$j=ey,kj=Ve.extend({method:L("resources/unsubscribe"),params:$j}),Sj=Pt.extend({uri:$()}),xj=Tt.extend({method:L("notifications/resources/updated"),params:Sj}),wj=D({name:$(),description:xe($()),required:xe(Ee())}),Ij=D({...Ki.shape,...Bs.shape,description:xe($()),arguments:xe(ne(wj)),_meta:xe(Ze({}))}),ty=Js.extend({method:L("prompts/list")}),zj=Hs.extend({prompts:ne(Ij)}),Pj=St.extend({name:$(),arguments:ve($(),$()).optional()}),ry=Ve.extend({method:L("prompts/get"),params:Pj}),ny=D({type:L("text"),text:$(),annotations:Bi.optional(),_meta:ve($(),$e()).optional()}),iy=D({type:L("image"),data:Xh,mimeType:$(),annotations:Bi.optional(),_meta:ve($(),$e()).optional()}),oy=D({type:L("audio"),data:Xh,mimeType:$(),annotations:Bi.optional(),_meta:ve($(),$e()).optional()}),Tj=D({type:L("tool_use"),name:$(),id:$(),input:ve($(),$e()),_meta:ve($(),$e()).optional()}),Ej=D({type:L("resource"),resource:ke([$x,kx]),annotations:Bi.optional(),_meta:ve($(),$e()).optional()}),Nj=Sx.extend({type:L("resource_link")}),sy=ke([ny,iy,oy,Nj,Ej]),Oj=D({role:Qs,content:sy}),jj=Ke.extend({description:$().optional(),messages:ne(Oj)}),Cj=Tt.extend({method:L("notifications/prompts/list_changed"),params:Pt.optional()}),Dj=D({title:$().optional(),readOnlyHint:Ee().optional(),destructiveHint:Ee().optional(),idempotentHint:Ee().optional(),openWorldHint:Ee().optional()}),Aj=D({taskSupport:Fe(["required","optional","forbidden"]).optional()}),xx=D({...Ki.shape,...Bs.shape,description:$().optional(),inputSchema:D({type:L("object"),properties:ve($(),je).optional(),required:ne($()).optional()}).catchall($e()),outputSchema:D({type:L("object"),properties:ve($(),je).optional(),required:ne($()).optional()}).catchall($e()).optional(),annotations:Dj.optional(),execution:Aj.optional(),_meta:ve($(),$e()).optional()}),ay=Js.extend({method:L("tools/list")}),Rj=Hs.extend({tools:ne(xx)}),Dd=Ke.extend({content:ne(sy).default([]),structuredContent:ve($(),$e()).optional(),isError:Ee().optional()}),QK=Dd.or(Ke.extend({toolResult:$e()})),Mj=Ks.extend({name:$(),arguments:ve($(),$e()).optional()}),Xs=Ve.extend({method:L("tools/call"),params:Mj}),Lj=Tt.extend({method:L("notifications/tools/list_changed"),params:Pt.optional()}),XK=D({autoRefresh:Ee().default(!0),debounceMs:fe().int().nonnegative().default(300)}),ea=Fe(["debug","info","notice","warning","error","critical","alert","emergency"]),Uj=St.extend({level:ea}),cy=Ve.extend({method:L("logging/setLevel"),params:Uj}),qj=Pt.extend({level:ea,logger:$().optional(),data:$e()}),Zj=Tt.extend({method:L("notifications/message"),params:qj}),Fj=D({name:$().optional()}),Vj=D({hints:ne(Fj).optional(),costPriority:fe().min(0).max(1).optional(),speedPriority:fe().min(0).max(1).optional(),intelligencePriority:fe().min(0).max(1).optional()}),Kj=D({mode:Fe(["auto","required","none"]).optional()}),Gj=D({type:L("tool_result"),toolUseId:$().describe("The unique identifier for the corresponding tool call."),content:ne(sy).default([]),structuredContent:D({}).loose().optional(),isError:Ee().optional(),_meta:ve($(),$e()).optional()}),Bj=qs("type",[ny,iy,oy]),kd=qs("type",[ny,iy,oy,Tj,Gj]),Jj=D({role:Qs,content:ke([kd,ne(kd)]),_meta:ve($(),$e()).optional()}),Hj=Ks.extend({messages:ne(Jj),modelPreferences:Vj.optional(),systemPrompt:$().optional(),includeContext:Fe(["none","thisServer","allServers"]).optional(),temperature:fe().optional(),maxTokens:fe().int(),stopSequences:ne($()).optional(),metadata:je.optional(),tools:ne(xx).optional(),toolChoice:Kj.optional()}),Wj=Ve.extend({method:L("sampling/createMessage"),params:Hj}),ta=Ke.extend({model:$(),stopReason:xe(Fe(["endTurn","stopSequence","maxTokens"]).or($())),role:Qs,content:Bj}),ly=Ke.extend({model:$(),stopReason:xe(Fe(["endTurn","stopSequence","maxTokens","toolUse"]).or($())),role:Qs,content:ke([kd,ne(kd)])}),Yj=D({type:L("boolean"),title:$().optional(),description:$().optional(),default:Ee().optional()}),Qj=D({type:L("string"),title:$().optional(),description:$().optional(),minLength:fe().optional(),maxLength:fe().optional(),format:Fe(["email","uri","date","date-time"]).optional(),default:$().optional()}),Xj=D({type:Fe(["number","integer"]),title:$().optional(),description:$().optional(),minimum:fe().optional(),maximum:fe().optional(),default:fe().optional()}),eC=D({type:L("string"),title:$().optional(),description:$().optional(),enum:ne($()),default:$().optional()}),tC=D({type:L("string"),title:$().optional(),description:$().optional(),oneOf:ne(D({const:$(),title:$()})),default:$().optional()}),rC=D({type:L("string"),title:$().optional(),description:$().optional(),enum:ne($()),enumNames:ne($()).optional(),default:$().optional()}),nC=ke([eC,tC]),iC=D({type:L("array"),title:$().optional(),description:$().optional(),minItems:fe().optional(),maxItems:fe().optional(),items:D({type:L("string"),enum:ne($())}),default:ne($()).optional()}),oC=D({type:L("array"),title:$().optional(),description:$().optional(),minItems:fe().optional(),maxItems:fe().optional(),items:D({anyOf:ne(D({const:$(),title:$()}))}),default:ne($()).optional()}),sC=ke([iC,oC]),aC=ke([rC,nC,sC]),cC=ke([aC,Yj,Qj,Xj]),lC=Ks.extend({mode:L("form").optional(),message:$(),requestedSchema:D({type:L("object"),properties:ve($(),cC),required:ne($()).optional()})}),uC=Ks.extend({mode:L("url"),message:$(),elicitationId:$(),url:$().url()}),dC=ke([lC,uC]),fC=Ve.extend({method:L("elicitation/create"),params:dC}),pC=Pt.extend({elicitationId:$()}),mC=Tt.extend({method:L("notifications/elicitation/complete"),params:pC}),Ji=Ke.extend({action:Fe(["accept","decline","cancel"]),content:Vs(e=>e===null?void 0:e,ve($(),ke([$(),fe(),Ee(),ne($())])).optional())}),gC=D({type:L("ref/resource"),uri:$()});var hC=D({type:L("ref/prompt"),name:$()}),yC=St.extend({ref:ke([hC,gC]),argument:D({name:$(),value:$()}),context:D({arguments:ve($(),$()).optional()}).optional()}),vC=Ve.extend({method:L("completion/complete"),params:yC});var _C=Ke.extend({completion:Ze({values:ne($()).max(100),total:xe(fe().int()),hasMore:xe(Ee())})}),bC=D({uri:$().startsWith("file://"),name:$().optional(),_meta:ve($(),$e()).optional()}),$C=Ve.extend({method:L("roots/list"),params:St.optional()}),uy=Ke.extend({roots:ne(bC)}),kC=Tt.extend({method:L("notifications/roots/list_changed"),params:Pt.optional()}),eG=ke([zd,Yh,vC,cy,ry,ty,dj,pj,hj,bj,kj,Xs,ay,Td,Nd,Od,Cd]),tG=ke([Id,Pd,Qh,kC,Ys]),rG=ke([wd,ta,ly,Ji,uy,Ed,jd,Gi]),nG=ke([zd,Wj,fC,$C,Td,Nd,Od,Cd]),iG=ke([Id,Pd,Zj,xj,vj,Lj,Cj,Ys,mC]),oG=ke([wd,ij,_C,jj,zj,fj,mj,yj,Dd,Rj,Ed,jd,Gi]),Q=class e extends Error{constructor(t,r,i){super(`MCP error ${t}: ${r}`),this.code=t,this.data=i,this.name="McpError"}static fromError(t,r,i){if(t===ae.UrlElicitationRequired&&i){let n=i;if(n.elicitations)return new Kh(n.elicitations,r)}return new e(t,r,i)}},Kh=class extends Q{constructor(t,r=`URL elicitation${t.length>1?"s":""} required`){super(ae.UrlElicitationRequired,r,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}};function Gr(e){return e==="completed"||e==="failed"||e==="cancelled"}var LG=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function dy(e){let r=Vu(e)?.method;if(!r)throw new Error("Schema is missing a method literal");let i=Yk(r);if(typeof i!="string")throw new Error("Schema method literal must be a string");return i}function fy(e,t){let r=Fr(e,t);if(!r.success)throw r.error;return r.data}var PC=6e4,Ad=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(Id,r=>{this._oncancel(r)}),this.setNotificationHandler(Pd,r=>{this._onprogress(r)}),this.setRequestHandler(zd,r=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Td,async(r,i)=>{let n=await this._taskStore.getTask(r.params.taskId,i.sessionId);if(!n)throw new Q(ae.InvalidParams,"Failed to retrieve task: Task not found");return{...n}}),this.setRequestHandler(Nd,async(r,i)=>{let n=async()=>{let o=r.params.taskId;if(this._taskMessageQueue){let a;for(;a=await this._taskMessageQueue.dequeue(o,i.sessionId);){if(a.type==="response"||a.type==="error"){let c=a.message,l=c.id,u=this._requestResolvers.get(l);if(u)if(this._requestResolvers.delete(l),a.type==="response")u(c);else{let d=c,f=new Q(d.error.code,d.error.message,d.error.data);u(f)}else{let d=a.type==="response"?"Response":"Error";this._onerror(new Error(`${d} handler missing for request ${l}`))}continue}await this._transport?.send(a.message,{relatedRequestId:i.requestId})}}let s=await this._taskStore.getTask(o,i.sessionId);if(!s)throw new Q(ae.InvalidParams,`Task not found: ${o}`);if(!Gr(s.status))return await this._waitForTaskUpdate(o,i.signal),await n();if(Gr(s.status)){let a=await this._taskStore.getTaskResult(o,i.sessionId);return this._clearTaskQueue(o),{...a,_meta:{...a._meta,[Kr]:{taskId:o}}}}return await n()};return await n()}),this.setRequestHandler(Od,async(r,i)=>{try{let{tasks:n,nextCursor:o}=await this._taskStore.listTasks(r.params?.cursor,i.sessionId);return{tasks:n,nextCursor:o,_meta:{}}}catch(n){throw new Q(ae.InvalidParams,`Failed to list tasks: ${n instanceof Error?n.message:String(n)}`)}}),this.setRequestHandler(Cd,async(r,i)=>{try{let n=await this._taskStore.getTask(r.params.taskId,i.sessionId);if(!n)throw new Q(ae.InvalidParams,`Task not found: ${r.params.taskId}`);if(Gr(n.status))throw new Q(ae.InvalidParams,`Cannot cancel task in terminal status: ${n.status}`);await this._taskStore.updateTaskStatus(r.params.taskId,"cancelled","Client cancelled task execution.",i.sessionId),this._clearTaskQueue(r.params.taskId);let o=await this._taskStore.getTask(r.params.taskId,i.sessionId);if(!o)throw new Q(ae.InvalidParams,`Task not found after cancellation: ${r.params.taskId}`);return{_meta:{},...o}}catch(n){throw n instanceof Q?n:new Q(ae.InvalidRequest,`Failed to cancel task: ${n instanceof Error?n.message:String(n)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,r,i,n,o=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(n,r),startTime:Date.now(),timeout:r,maxTotalTimeout:i,resetTimeoutOnProgress:o,onTimeout:n})}_resetTimeout(t){let r=this._timeoutInfo.get(t);if(!r)return!1;let i=Date.now()-r.startTime;if(r.maxTotalTimeout&&i>=r.maxTotalTimeout)throw this._timeoutInfo.delete(t),Q.fromError(ae.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:i});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(t){let r=this._timeoutInfo.get(t);r&&(clearTimeout(r.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 r=this.transport?.onclose;this._transport.onclose=()=>{r?.(),this._onclose()};let i=this.transport?.onerror;this._transport.onerror=o=>{i?.(o),this._onerror(o)};let n=this._transport?.onmessage;this._transport.onmessage=(o,s)=>{n?.(o,s),Gs(o)||hx(o)?this._onresponse(o):Jh(o)?this._onrequest(o,s):gx(o)?this._onnotification(o):this._onerror(new Error(`Unknown message type: ${JSON.stringify(o)}`))},await this._transport.start()}_onclose(){let t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let i of this._timeoutInfo.values())clearTimeout(i.timeoutId);this._timeoutInfo.clear();for(let i of this._requestHandlerAbortControllers.values())i.abort();this._requestHandlerAbortControllers.clear();let r=Q.fromError(ae.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let i of t.values())i(r)}_onerror(t){this.onerror?.(t)}_onnotification(t){let r=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;r!==void 0&&Promise.resolve().then(()=>r(t)).catch(i=>this._onerror(new Error(`Uncaught error in notification handler: ${i}`)))}_onrequest(t,r){let i=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,n=this._transport,o=t.params?._meta?.[Kr]?.taskId;if(i===void 0){let u={jsonrpc:"2.0",id:t.id,error:{code:ae.MethodNotFound,message:"Method not found"}};o&&this._taskMessageQueue?this._enqueueTaskMessage(o,{type:"error",message:u,timestamp:Date.now()},n?.sessionId).catch(d=>this._onerror(new Error(`Failed to enqueue error response: ${d}`))):n?.send(u).catch(d=>this._onerror(new Error(`Failed to send an error response: ${d}`)));return}let s=new AbortController;this._requestHandlerAbortControllers.set(t.id,s);let a=fx(t.params)?t.params.task:void 0,c=this._taskStore?this.requestTaskStore(t,n?.sessionId):void 0,l={signal:s.signal,sessionId:n?.sessionId,_meta:t.params?._meta,sendNotification:async u=>{if(s.signal.aborted)return;let d={relatedRequestId:t.id};o&&(d.relatedTask={taskId:o}),await this.notification(u,d)},sendRequest:async(u,d,f)=>{if(s.signal.aborted)throw new Q(ae.ConnectionClosed,"Request was cancelled");let p={...f,relatedRequestId:t.id};o&&!p.relatedTask&&(p.relatedTask={taskId:o});let g=p.relatedTask?.taskId??o;return g&&c&&await c.updateTaskStatus(g,"input_required"),await this.request(u,d,p)},authInfo:r?.authInfo,requestId:t.id,requestInfo:r?.requestInfo,taskId:o,taskStore:c,taskRequestedTtl:a?.ttl,closeSSEStream:r?.closeSSEStream,closeStandaloneSSEStream:r?.closeStandaloneSSEStream};Promise.resolve().then(()=>{a&&this.assertTaskHandlerCapability(t.method)}).then(()=>i(t,l)).then(async u=>{if(s.signal.aborted)return;let d={result:u,jsonrpc:"2.0",id:t.id};o&&this._taskMessageQueue?await this._enqueueTaskMessage(o,{type:"response",message:d,timestamp:Date.now()},n?.sessionId):await n?.send(d)},async u=>{if(s.signal.aborted)return;let d={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(u.code)?u.code:ae.InternalError,message:u.message??"Internal error",...u.data!==void 0&&{data:u.data}}};o&&this._taskMessageQueue?await this._enqueueTaskMessage(o,{type:"error",message:d,timestamp:Date.now()},n?.sessionId):await n?.send(d)}).catch(u=>this._onerror(new Error(`Failed to send response: ${u}`))).finally(()=>{this._requestHandlerAbortControllers.get(t.id)===s&&this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){let{progressToken:r,...i}=t.params,n=Number(r),o=this._progressHandlers.get(n);if(!o){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let s=this._responseHandlers.get(n),a=this._timeoutInfo.get(n);if(a&&s&&a.resetTimeoutOnProgress)try{this._resetTimeout(n)}catch(c){this._responseHandlers.delete(n),this._progressHandlers.delete(n),this._cleanupTimeout(n),s(c);return}o(i)}_onresponse(t){let r=Number(t.id),i=this._requestResolvers.get(r);if(i){if(this._requestResolvers.delete(r),Gs(t))i(t);else{let s=new Q(t.error.code,t.error.message,t.error.data);i(s)}return}let n=this._responseHandlers.get(r);if(n===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(r),this._cleanupTimeout(r);let o=!1;if(Gs(t)&&t.result&&typeof t.result=="object"){let s=t.result;if(s.task&&typeof s.task=="object"){let a=s.task;typeof a.taskId=="string"&&(o=!0,this._taskProgressTokens.set(a.taskId,r))}}if(o||this._progressHandlers.delete(r),Gs(t))n(t);else{let s=Q.fromError(t.error.code,t.error.message,t.error.data);n(s)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,r,i){let{task:n}=i??{};if(!n){try{yield{type:"result",result:await this.request(t,r,i)}}catch(s){yield{type:"error",error:s instanceof Q?s:new Q(ae.InternalError,String(s))}}return}let o;try{let s=await this.request(t,Gi,i);if(s.task)o=s.task.taskId,yield{type:"taskCreated",task:s.task};else throw new Q(ae.InternalError,"Task creation did not return a task");for(;;){let a=await this.getTask({taskId:o},i);if(yield{type:"taskStatus",task:a},Gr(a.status)){a.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:o},r,i)}:a.status==="failed"?yield{type:"error",error:new Q(ae.InternalError,`Task ${o} failed`)}:a.status==="cancelled"&&(yield{type:"error",error:new Q(ae.InternalError,`Task ${o} was cancelled`)});return}if(a.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:o},r,i)};return}let c=a.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(l=>setTimeout(l,c)),i?.signal?.throwIfAborted()}}catch(s){yield{type:"error",error:s instanceof Q?s:new Q(ae.InternalError,String(s))}}}request(t,r,i){let{relatedRequestId:n,resumptionToken:o,onresumptiontoken:s,task:a,relatedTask:c}=i??{};return new Promise((l,u)=>{let d=k=>{u(k)};if(!this._transport){d(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),a&&this.assertTaskCapability(t.method)}catch(k){d(k);return}i?.signal?.throwIfAborted();let f=this._requestMessageId++,p={...t,jsonrpc:"2.0",id:f};i?.onprogress&&(this._progressHandlers.set(f,i.onprogress),p.params={...t.params,_meta:{...t.params?._meta||{},progressToken:f}}),a&&(p.params={...p.params,task:a}),c&&(p.params={...p.params,_meta:{...p.params?._meta||{},[Kr]:c}});let g=k=>{this._responseHandlers.delete(f),this._progressHandlers.delete(f),this._cleanupTimeout(f),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:f,reason:String(k)}},{relatedRequestId:n,resumptionToken:o,onresumptiontoken:s}).catch(N=>this._onerror(new Error(`Failed to send cancellation: ${N}`)));let x=k instanceof Q?k:new Q(ae.RequestTimeout,String(k));u(x)};this._responseHandlers.set(f,k=>{if(!i?.signal?.aborted){if(k instanceof Error)return u(k);try{let x=Fr(r,k.result);x.success?l(x.data):u(x.error)}catch(x){u(x)}}}),i?.signal?.addEventListener("abort",()=>{g(i?.signal?.reason)});let m=i?.timeout??PC,h=()=>g(Q.fromError(ae.RequestTimeout,"Request timed out",{timeout:m}));this._setupTimeout(f,m,i?.maxTotalTimeout,h,i?.resetTimeoutOnProgress??!1);let v=c?.taskId;if(v){let k=x=>{let N=this._responseHandlers.get(f);N?N(x):this._onerror(new Error(`Response handler missing for side-channeled request ${f}`))};this._requestResolvers.set(f,k),this._enqueueTaskMessage(v,{type:"request",message:p,timestamp:Date.now()}).catch(x=>{this._cleanupTimeout(f),u(x)})}else this._transport.send(p,{relatedRequestId:n,resumptionToken:o,onresumptiontoken:s}).catch(k=>{this._cleanupTimeout(f),u(k)})})}async getTask(t,r){return this.request({method:"tasks/get",params:t},Ed,r)}async getTaskResult(t,r,i){return this.request({method:"tasks/result",params:t},r,i)}async listTasks(t,r){return this.request({method:"tasks/list",params:t},jd,r)}async cancelTask(t,r){return this.request({method:"tasks/cancel",params:t},_x,r)}async notification(t,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let i=r?.relatedTask?.taskId;if(i){let a={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[Kr]:r.relatedTask}}};await this._enqueueTaskMessage(i,{type:"notification",message:a,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!r?.relatedRequestId&&!r?.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 a={...t,jsonrpc:"2.0"};r?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[Kr]:r.relatedTask}}}),this._transport?.send(a,r).catch(c=>this._onerror(c))});return}let s={...t,jsonrpc:"2.0"};r?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[Kr]:r.relatedTask}}}),await this._transport.send(s,r)}setRequestHandler(t,r){let i=dy(t);this.assertRequestHandlerCapability(i),this._requestHandlers.set(i,(n,o)=>{let s=fy(t,n);return Promise.resolve(r(s,o))})}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,r){let i=dy(t);this._notificationHandlers.set(i,n=>{let o=fy(t,n);return Promise.resolve(r(o))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let r=this._taskProgressTokens.get(t);r!==void 0&&(this._progressHandlers.delete(r),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,r,i){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let n=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,r,i,n)}async _clearTaskQueue(t,r){if(this._taskMessageQueue){let i=await this._taskMessageQueue.dequeueAll(t,r);for(let n of i)if(n.type==="request"&&Jh(n.message)){let o=n.message.id,s=this._requestResolvers.get(o);s?(s(new Q(ae.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(o)):this._onerror(new Error(`Resolver missing for request ${o} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,r){let i=this._options?.defaultTaskPollInterval??1e3;try{let n=await this._taskStore?.getTask(t);n?.pollInterval&&(i=n.pollInterval)}catch{}return new Promise((n,o)=>{if(r.aborted){o(new Q(ae.InvalidRequest,"Request cancelled"));return}let s=setTimeout(n,i);r.addEventListener("abort",()=>{clearTimeout(s),o(new Q(ae.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,r){let i=this._taskStore;if(!i)throw new Error("No task store configured");return{createTask:async n=>{if(!t)throw new Error("No request provided");return await i.createTask(n,t.id,{method:t.method,params:t.params},r)},getTask:async n=>{let o=await i.getTask(n,r);if(!o)throw new Q(ae.InvalidParams,"Failed to retrieve task: Task not found");return o},storeTaskResult:async(n,o,s)=>{await i.storeTaskResult(n,o,s,r);let a=await i.getTask(n,r);if(a){let c=Ys.parse({method:"notifications/tasks/status",params:a});await this.notification(c),Gr(a.status)&&this._cleanupTaskProgressHandler(n)}},getTaskResult:n=>i.getTaskResult(n,r),updateTaskStatus:async(n,o,s)=>{let a=await i.getTask(n,r);if(!a)throw new Q(ae.InvalidParams,`Task "${n}" not found - it may have been cleaned up`);if(Gr(a.status))throw new Q(ae.InvalidParams,`Cannot update task "${n}" from terminal status "${a.status}" to "${o}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await i.updateTaskStatus(n,o,s,r);let c=await i.getTask(n,r);if(c){let l=Ys.parse({method:"notifications/tasks/status",params:c});await this.notification(l),Gr(c.status)&&this._cleanupTaskProgressHandler(n)}},listTasks:n=>i.listTasks(n,r)}}};function wx(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Ix(e,t){let r={...e};for(let i in t){let n=i,o=t[n];if(o===void 0)continue;let s=r[n];wx(s)&&wx(o)?r[n]={...s,...o}:r[n]=o}return r}var fI=Eo(Yv(),1),pI=Eo(dI(),1);function _4(){let e=new fI.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,pI.default)(e),e}var _f=class{constructor(t){this._ajv=t??_4()}getValidator(t){let r="$id"in t&&typeof t.$id=="string"?this._ajv.getSchema(t.$id)??this._ajv.compile(t):this._ajv.compile(t);return i=>r(i)?{valid:!0,data:i,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(r.errors)}}};var bf=class{constructor(t){this._server=t}requestStream(t,r,i){return this._server.requestStream(t,r,i)}createMessageStream(t,r){let i=this._server.getClientCapabilities();if((t.tools||t.toolChoice)&&!i?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let n=t.messages[t.messages.length-1],o=Array.isArray(n.content)?n.content:[n.content],s=o.some(u=>u.type==="tool_result"),a=t.messages.length>1?t.messages[t.messages.length-2]:void 0,c=a?Array.isArray(a.content)?a.content:[a.content]:[],l=c.some(u=>u.type==="tool_use");if(s){if(o.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!l)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(l){let u=new Set(c.filter(f=>f.type==="tool_use").map(f=>f.id)),d=new Set(o.filter(f=>f.type==="tool_result").map(f=>f.toolUseId));if(u.size!==d.size||![...u].every(f=>d.has(f)))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},ta,r)}elicitInputStream(t,r){let i=this._server.getClientCapabilities(),n=t.mode??"form";switch(n){case"url":{if(!i?.elicitation?.url)throw new Error("Client does not support url elicitation.");break}case"form":{if(!i?.elicitation?.form)throw new Error("Client does not support form elicitation.");break}}let o=n==="form"&&t.mode===void 0?{...t,mode:"form"}:t;return this.requestStream({method:"elicitation/create",params:o},Ji,r)}async getTask(t,r){return this._server.getTask({taskId:t},r)}async getTaskResult(t,r,i){return this._server.getTaskResult({taskId:t},r,i)}async listTasks(t,r){return this._server.listTasks(t?{cursor:t}:void 0,r)}async cancelTask(t,r){return this._server.cancelTask({taskId:t},r)}};function mI(e,t,r){if(!e)throw new Error(`${r} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!e.tools?.call)throw new Error(`${r} does not support task creation for tools/call (required for ${t})`);break;default:break}}function gI(e,t,r){if(!e)throw new Error(`${r} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!e.sampling?.createMessage)throw new Error(`${r} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!e.elicitation?.create)throw new Error(`${r} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}var $f=class extends Ad{constructor(t,r){super(r),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(ea.options.map((i,n)=>[i,n])),this.isMessageIgnored=(i,n)=>{let o=this._loggingLevels.get(n);return o?this.LOG_LEVEL_SEVERITY.get(i)<this.LOG_LEVEL_SEVERITY.get(o):!1},this._capabilities=r?.capabilities??{},this._instructions=r?.instructions,this._jsonSchemaValidator=r?.jsonSchemaValidator??new _f,this.setRequestHandler(Yh,i=>this._oninitialize(i)),this.setNotificationHandler(Qh,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(cy,async(i,n)=>{let o=n.sessionId||n.requestInfo?.headers["mcp-session-id"]||void 0,{level:s}=i.params,a=ea.safeParse(s);return a.success&&this._loggingLevels.set(o,a.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new bf(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=Ix(this._capabilities,t)}setRequestHandler(t,r){let n=Vu(t)?.method;if(!n)throw new Error("Schema is missing a method literal");let o;if(Ri(n)){let a=n;o=a._zod?.def?.value??a.value}else{let a=n;o=a._def?.value??a.value}if(typeof o!="string")throw new Error("Schema method literal must be a string");if(o==="tools/call"){let a=async(c,l)=>{let u=Fr(Xs,c);if(!u.success){let g=u.error instanceof Error?u.error.message:String(u.error);throw new Q(ae.InvalidParams,`Invalid tools/call request: ${g}`)}let{params:d}=u.data,f=await Promise.resolve(r(c,l));if(d.task){let g=Fr(Gi,f);if(!g.success){let m=g.error instanceof Error?g.error.message:String(g.error);throw new Q(ae.InvalidParams,`Invalid task creation result: ${m}`)}return g.data}let p=Fr(Dd,f);if(!p.success){let g=p.error instanceof Error?p.error.message:String(p.error);throw new Q(ae.InvalidParams,`Invalid tools/call result: ${g}`)}return p.data};return super.setRequestHandler(t,a)}return super.setRequestHandler(t,r)}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){gI(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&mI(this._capabilities.tasks?.requests,t,"Server")}async _oninitialize(t){let r=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:lx.includes(r)?r:Gh,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"},wd)}async createMessage(t,r){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 i=t.messages[t.messages.length-1],n=Array.isArray(i.content)?i.content:[i.content],o=n.some(l=>l.type==="tool_result"),s=t.messages.length>1?t.messages[t.messages.length-2]:void 0,a=s?Array.isArray(s.content)?s.content:[s.content]:[],c=a.some(l=>l.type==="tool_use");if(o){if(n.some(l=>l.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 l=new Set(a.filter(d=>d.type==="tool_use").map(d=>d.id)),u=new Set(n.filter(d=>d.type==="tool_result").map(d=>d.toolUseId));if(l.size!==u.size||![...l].every(d=>u.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},ly,r):this.request({method:"sampling/createMessage",params:t},ta,r)}async elicitInput(t,r){switch(t.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let n=t;return this.request({method:"elicitation/create",params:n},Ji,r)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let n=t.mode==="form"?t:{...t,mode:"form"},o=await this.request({method:"elicitation/create",params:n},Ji,r);if(o.action==="accept"&&o.content&&n.requestedSchema)try{let a=this._jsonSchemaValidator.getValidator(n.requestedSchema)(o.content);if(!a.valid)throw new Q(ae.InvalidParams,`Elicitation response content does not match requested schema: ${a.errorMessage}`)}catch(s){throw s instanceof Q?s:new Q(ae.InternalError,`Error validating elicitation response: ${s instanceof Error?s.message:String(s)}`)}return o}}}createElicitationCompletionNotifier(t,r){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}},r)}async listRoots(t,r){return this.request({method:"roots/list",params:t},uy,r)}async sendLoggingMessage(t,r){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,r))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 o_=Eo(require("node:process"),1);var kf=class{append(t){this._buffer=this._buffer?Buffer.concat([this._buffer,t]):t}readMessage(){if(!this._buffer)return null;let t=this._buffer.indexOf(`
187
187
  `);if(t===-1)return null;let r=this._buffer.toString("utf8",0,t).replace(/\r$/,"");return this._buffer=this._buffer.subarray(t+1),b4(r)}clear(){this._buffer=void 0}};function b4(e){return yx.parse(JSON.parse(e))}function hI(e){return JSON.stringify(e)+`
188
- `}var Sf=class{constructor(t=o_.default.stdin,r=o_.default.stdout){this._stdin=t,this._stdout=r,this._readBuffer=new kf,this._started=!1,this._ondata=i=>{this._readBuffer.append(i),this.processReadBuffer()},this._onerror=i=>{this.onerror?.(i)}}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(r=>{let i=hI(t);this._stdout.write(i)?r():this._stdout.once("drain",r)})}};var yI=process.env.GODD_BRAND_PREFIX??"godd",tn="godd",V={displayName:"GoDD MCP \u03B1",cli:"godd-a",mcpKey:"godd-a",configFile:`config.${yI}`,licensePrefix:yI.toUpperCase(),toolPrefix:""};var bp=require("node:fs"),sT=require("node:path"),aT=Eo(Ub(),1);var lc=["en","ja","ru"];function xo(e){return lc.includes(e)?e:null}var JZ=F.object({vcs:F.string().optional(),browser_automation:F.string().optional(),e2e_testing:F.string().optional(),unit_testing:F.string().optional(),linting:F.string().optional(),formatting:F.string().optional(),type_checking:F.string().optional(),coverage:F.string().optional(),documentation:F.string().optional(),secret_scanning:F.string().optional(),security_analysis:F.string().optional(),unused_code:F.string().optional(),dependency_analysis:F.string().optional()}),HZ=F.object({docs_dir:F.string().default("documents"),generate_gitattributes:F.preprocess(e=>e==="true"?!0:e==="false"?!1:e,F.boolean().default(!0)),generate_dependabot:F.preprocess(e=>e==="true"?!0:e==="false"?!1:e,F.boolean().default(!0))}),WZ=F.object({tool:F.string().optional(),auto_suggest:F.preprocess(e=>e==="true"?!0:e==="false"?!1:e,F.boolean().optional()),design_review:F.preprocess(e=>e==="true"?!0:e==="false"?!1:e,F.boolean().optional())}),qb=F.enum(lc),oT=F.object({display_language:qb.default("en"),main_language:qb.default("en"),sub_languages:F.array(qb).default([]),programming_languages:F.array(F.string()).default([]),frontend:F.array(F.string()).default([]),backend:F.array(F.string()).default([]),database:F.array(F.string()).default([]),orm:F.array(F.string()).default([]),infra:F.array(F.string()).default([]),game:F.array(F.string()).default([]),mobile:F.array(F.string()).default([]),other:F.array(F.string()).default([]),tools:JZ.default({}),design:WZ.default({}),godd_files:HZ.default({docs_dir:"documents",generate_gitattributes:!0,generate_dependabot:!0})});function $p(e=process.cwd()){let t=(0,sT.resolve)(e,V.configFile);if(!(0,bp.existsSync)(t))return null;try{let r=(0,bp.readFileSync)(t,"utf-8"),i=(0,aT.parse)(r)??{};return YZ(i),QZ(i),oT.parse(i)}catch(r){return console.error(`[${V.displayName}] Failed to parse ${V.configFile}:`,r instanceof Error?r.message:r),null}}function YZ(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 QZ(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}for(let t of["tools","design","godd_files"]){let r=e[t];(r==null||Array.isArray(r)&&r.length===0)&&(e[t]={})}}var kp=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"]),Sp=new Set(["react","nextjs","vue","nuxt","svelte","angular","flutter","blazor","solid","astro","remix","qwik","ember","htmx","alpine","vite","electron","tauri","liftkit"]),xp=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"]),wp=new Set(["postgresql","mysql","mongodb","redis","sqlite","dynamodb","cassandra","neo4j","elasticsearch","supabase","firebase","cockroachdb"]),Ip=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"]),zp=new Set(["docker","terraform","vercel","aws","gcp","github-actions","azure","cloudflare","fly-io","render","heroku","kubernetes","ansible","pulumi","netlify","railway"]),Pp=new Set(["react-native","expo","flutter","swiftui","uikit","jetpack-compose","kotlin-multiplatform","ionic","capacitor","maui","xamarin","tauri-mobile","nativescript"]),Tp=new Set(["godot","phaser","pyxel","unity","unreal","bevy","love2d","monogame","pygame","libgdx","cocos2d","defold","renpy"]),XZ={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 wo(e,t,r){if(r.length===0)return e;let i=new Set;for(let n of r){let o=XZ[n];if(!o)continue;let s=o[t];if(s)for(let a of s)i.add(a)}return i.size===0?e:e.filter(n=>i.has(n))}function e2(e,t){let r=e.length,i=t.length,n=Array.from({length:r+1},()=>Array(i+1).fill(0));for(let o=0;o<=r;o++)n[o][0]=o;for(let o=0;o<=i;o++)n[0][o]=o;for(let o=1;o<=r;o++)for(let s=1;s<=i;s++){let a=e[o-1]===t[s-1]?0:1;n[o][s]=Math.min(n[o-1][s]+1,n[o][s-1]+1,n[o-1][s-1]+a)}return n[r][i]}function t2(e,t,r=2){let i=null,n=r+1;for(let o of t){if(Math.abs(o.length-e.length)>r)continue;let s=e2(e.toLowerCase(),o.toLowerCase());s<n&&(n=s,i=o)}return i}var r2=[{field:"programming_languages",known:kp},{field:"frontend",known:Sp},{field:"backend",known:xp},{field:"database",known:wp},{field:"orm",known:Ip},{field:"infra",known:zp},{field:"game",known:Tp},{field:"mobile",known:Pp}];function Ep(e){let t=[];for(let{field:r,known:i}of r2){let n=e[r];if(Array.isArray(n))for(let o of n)typeof o=="string"&&(i.has(o)||t.push({field:r,value:o,suggestion:t2(o,i)}))}return t}var cT=[{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:[...kp]},{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:[...Sp]},{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:[...xp]},{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:[...wp]},{field:"orm",type:"string[]",descriptions:{en:"ORM",ja:"ORM",ru:"ORM"},values:[...Ip]},{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:[...zp]},{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:[...Tp]},{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:[...Pp]},{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:[]},{field:"design",type:"object",descriptions:{en:"Design tool integration (tool: pencil/figma, auto_suggest: true/false, design_review: true/false)",ja:"\u30C7\u30B6\u30A4\u30F3\u30C4\u30FC\u30EB\u9023\u643A\uFF08tool: pencil/figma\u3001auto_suggest: true/false\u3001design_review: true/false\uFF09",ru:"\u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044F \u0434\u0438\u0437\u0430\u0439\u043D-\u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 (tool: pencil/figma, auto_suggest: true/false, design_review: true/false)"},values:[]},{field:"godd_files",type:"object",descriptions:{en:"GoDD managed files settings (docs_dir: path string, generate_gitattributes: true/false, generate_dependabot: true/false)",ja:"GoDD \u7BA1\u7406\u30D5\u30A1\u30A4\u30EB\u8A2D\u5B9A\uFF08docs_dir: \u30D1\u30B9\u6587\u5B57\u5217\u3001generate_gitattributes: true/false\u3001generate_dependabot: true/false\uFF09",ru:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0444\u0430\u0439\u043B\u043E\u0432 GoDD (docs_dir: \u0441\u0442\u0440\u043E\u043A\u0430 \u043F\u0443\u0442\u0438, generate_gitattributes: true/false, generate_dependabot: true/false)"},values:[]}];function lT(){return new Set([...cT.map(e=>e.field),"tools","design"])}var n2={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 uT(e="ja"){let t=n2[e],r=[];for(let i of cT)r.push(`### ${i.field} (${i.type})`),r.push(i.descriptions[e]),i.values.length>0&&r.push(`${t.validValues}: ${i.values.join(", ")}`),r.push("");return r.push("### tools (object)"),r.push(t.toolsDescription),r.push(""),r.join(`
188
+ `}var Sf=class{constructor(t=o_.default.stdin,r=o_.default.stdout){this._stdin=t,this._stdout=r,this._readBuffer=new kf,this._started=!1,this._ondata=i=>{this._readBuffer.append(i),this.processReadBuffer()},this._onerror=i=>{this.onerror?.(i)}}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(r=>{let i=hI(t);this._stdout.write(i)?r():this._stdout.once("drain",r)})}};var yI=process.env.GODD_BRAND_PREFIX??"godd",tn="godd",V={displayName:"GoDD MCP \u03B1",cli:"godd-a",mcpKey:"godd-a",configFile:`config.${yI}`,licensePrefix:yI.toUpperCase(),toolPrefix:""};var bp=require("node:fs"),sT=require("node:path"),aT=Eo(Ub(),1);var lc=["en","ja","ru"];function xo(e){return lc.includes(e)?e:null}var JZ=F.object({vcs:F.string().optional(),browser_automation:F.string().optional(),e2e_testing:F.string().optional(),unit_testing:F.string().optional(),linting:F.string().optional(),formatting:F.string().optional(),type_checking:F.string().optional(),coverage:F.string().optional(),documentation:F.string().optional(),secret_scanning:F.string().optional(),security_analysis:F.string().optional(),unused_code:F.string().optional(),dependency_analysis:F.string().optional()}),HZ=F.object({docs_dir:F.string().default("documents"),generate_gitattributes:F.preprocess(e=>e==="true"?!0:e==="false"?!1:e,F.boolean().default(!0)),generate_dependabot:F.preprocess(e=>e==="true"?!0:e==="false"?!1:e,F.boolean().default(!0))}),WZ=F.object({tool:F.string().optional(),auto_suggest:F.preprocess(e=>e==="true"?!0:e==="false"?!1:e,F.boolean().optional()),design_review:F.preprocess(e=>e==="true"?!0:e==="false"?!1:e,F.boolean().optional())}),qb=F.enum(lc),oT=F.object({display_language:qb.default("en"),main_language:qb.default("en"),sub_languages:F.array(qb).default([]),programming_languages:F.array(F.string()).default([]),frontend:F.array(F.string()).default([]),backend:F.array(F.string()).default([]),database:F.array(F.string()).default([]),orm:F.array(F.string()).default([]),infra:F.array(F.string()).default([]),game:F.array(F.string()).default([]),mobile:F.array(F.string()).default([]),other:F.array(F.string()).default([]),tools:JZ.default({}),design:WZ.default({}),godd_files:HZ.default({docs_dir:"documents",generate_gitattributes:!0,generate_dependabot:!0})});function $p(e=process.cwd()){let t=(0,sT.resolve)(e,V.configFile);if(!(0,bp.existsSync)(t))return null;try{let r=(0,bp.readFileSync)(t,"utf-8"),i=(0,aT.parse)(r)??{};return YZ(i),QZ(i),oT.parse(i)}catch(r){return console.error(`[${V.displayName}] Failed to parse ${V.configFile}:`,r instanceof Error?r.message:r),null}}function YZ(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 QZ(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}for(let t of["tools","design","godd_files"]){let r=e[t];(r==null||Array.isArray(r)&&r.length===0)&&(e[t]={})}}var kp=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"]),Sp=new Set(["react","nextjs","vue","nuxt","svelte","angular","flutter","blazor","solid","astro","remix","qwik","ember","htmx","alpine","vite","electron","tauri","liftkit"]),xp=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"]),wp=new Set(["postgresql","mysql","mongodb","redis","sqlite","dynamodb","cassandra","neo4j","elasticsearch","supabase","firebase","cockroachdb"]),Ip=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"]),zp=new Set(["docker","terraform","vercel","aws","gcp","github-actions","azure","cloudflare","fly-io","render","heroku","kubernetes","ansible","pulumi","netlify","railway"]),Pp=new Set(["react-native","expo","flutter","swiftui","uikit","jetpack-compose","kotlin-multiplatform","ionic","capacitor","maui","xamarin","tauri-mobile","nativescript"]),Tp=new Set(["godot","phaser","pyxel","unity","unreal","bevy","love2d","monogame","pygame","libgdx","cocos2d","defold","renpy"]),XZ={typescript:{frontend:["react","nextjs","vue","nuxt","svelte","angular","solid","astro","remix","qwik","ember","htmx","alpine","vite","electron","tauri","liftkit"],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","liftkit"],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 wo(e,t,r){if(r.length===0)return e;let i=new Set;for(let n of r){let o=XZ[n];if(!o)continue;let s=o[t];if(s)for(let a of s)i.add(a)}return i.size===0?e:e.filter(n=>i.has(n))}function e2(e,t){let r=e.length,i=t.length,n=Array.from({length:r+1},()=>Array(i+1).fill(0));for(let o=0;o<=r;o++)n[o][0]=o;for(let o=0;o<=i;o++)n[0][o]=o;for(let o=1;o<=r;o++)for(let s=1;s<=i;s++){let a=e[o-1]===t[s-1]?0:1;n[o][s]=Math.min(n[o-1][s]+1,n[o][s-1]+1,n[o-1][s-1]+a)}return n[r][i]}function t2(e,t,r=2){let i=null,n=r+1;for(let o of t){if(Math.abs(o.length-e.length)>r)continue;let s=e2(e.toLowerCase(),o.toLowerCase());s<n&&(n=s,i=o)}return i}var r2=[{field:"programming_languages",known:kp},{field:"frontend",known:Sp},{field:"backend",known:xp},{field:"database",known:wp},{field:"orm",known:Ip},{field:"infra",known:zp},{field:"game",known:Tp},{field:"mobile",known:Pp}];function Ep(e){let t=[];for(let{field:r,known:i}of r2){let n=e[r];if(Array.isArray(n))for(let o of n)typeof o=="string"&&(i.has(o)||t.push({field:r,value:o,suggestion:t2(o,i)}))}return t}var cT=[{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:[...kp]},{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:[...Sp]},{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:[...xp]},{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:[...wp]},{field:"orm",type:"string[]",descriptions:{en:"ORM",ja:"ORM",ru:"ORM"},values:[...Ip]},{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:[...zp]},{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:[...Tp]},{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:[...Pp]},{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:[]},{field:"design",type:"object",descriptions:{en:"Design tool integration (tool: pencil/figma, auto_suggest: true/false, design_review: true/false)",ja:"\u30C7\u30B6\u30A4\u30F3\u30C4\u30FC\u30EB\u9023\u643A\uFF08tool: pencil/figma\u3001auto_suggest: true/false\u3001design_review: true/false\uFF09",ru:"\u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044F \u0434\u0438\u0437\u0430\u0439\u043D-\u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u0430 (tool: pencil/figma, auto_suggest: true/false, design_review: true/false)"},values:[]},{field:"godd_files",type:"object",descriptions:{en:"GoDD managed files settings (docs_dir: path string, generate_gitattributes: true/false, generate_dependabot: true/false)",ja:"GoDD \u7BA1\u7406\u30D5\u30A1\u30A4\u30EB\u8A2D\u5B9A\uFF08docs_dir: \u30D1\u30B9\u6587\u5B57\u5217\u3001generate_gitattributes: true/false\u3001generate_dependabot: true/false\uFF09",ru:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0444\u0430\u0439\u043B\u043E\u0432 GoDD (docs_dir: \u0441\u0442\u0440\u043E\u043A\u0430 \u043F\u0443\u0442\u0438, generate_gitattributes: true/false, generate_dependabot: true/false)"},values:[]}];function lT(){return new Set([...cT.map(e=>e.field),"tools","design"])}var n2={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 uT(e="ja"){let t=n2[e],r=[];for(let i of cT)r.push(`### ${i.field} (${i.type})`),r.push(i.descriptions[e]),i.values.length>0&&r.push(`${t.validValues}: ${i.values.join(", ")}`),r.push("");return r.push("### tools (object)"),r.push(t.toolsDescription),r.push(""),r.join(`
189
189
  `)}var Zb="https://www.getgodd.dev/contact",i2={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 ${Zb} 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 ${Zb} \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 ${Zb} \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 dT(e,t="ja"){let r=i2[t],i=new Map;for(let o of e){let s=i.get(o.field)??[];s.push(o),i.set(o.field,s)}let n=[r.header,"",r.problemValues];for(let[o,s]of i){n.push(` ${o}:`);for(let a of s)n.push(a.suggestion?r.suggestion(a.value,a.suggestion):r.unsupported(a.value))}return n.push("",r.fixHeader,r.fixEdit,r.fixReinit),n.join(`
190
- `)}var Ir="1.4.1";var Fb={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)",design:"Generate/update visual designs from codebase (Pencil.dev sync)"},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",design:"\u30B3\u30FC\u30C9\u30D9\u30FC\u30B9\u304B\u3089\u30D3\u30B8\u30E5\u30A2\u30EB\u30C7\u30B6\u30A4\u30F3\u3092\u751F\u6210/\u66F4\u65B0\uFF08Pencil.dev \u540C\u671F\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)",design:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F/\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0432\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0434\u0438\u0437\u0430\u0439\u043D\u0430 \u0438\u0437 \u043A\u043E\u0434\u043E\u0432\u043E\u0439 \u0431\u0430\u0437\u044B (\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u044F Pencil.dev)"}};var o2={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}],design:[{name:"target",required:!1},{name:"output",required:!1}]},Vb={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"},design:{target:"Design target (all / page name / component name)",output:"Output format (pencil / tokens)"}},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"},design:{target:"\u30C7\u30B6\u30A4\u30F3\u5BFE\u8C61\uFF08all / \u30DA\u30FC\u30B8\u540D / \u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u540D\uFF09",output:"\u51FA\u529B\u5F62\u5F0F\uFF08pencil / tokens\uFF09"}},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"},design:{target:"\u0426\u0435\u043B\u044C \u0434\u0438\u0437\u0430\u0439\u043D\u0430 (all / \u0438\u043C\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B / \u0438\u043C\u044F \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430)",output:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0432\u044B\u0432\u043E\u0434\u0430 (pencil / tokens)"}}},s2=["dev","check","docs","ship","setup","review","test","impact","commit","push","pr","deploy","adr","release","github","config","questions","e2e","benchmark","map","learn","diagram","slide","design"];var Kb={dev:{slugs:["common","dev"]},ship:{slugs:["common","commit","push","pr","check"]},review:{slugs:["common","review","check"]}};var Np=new Set(["dev","review","setup","test","impact","docs","check","deploy","adr","release","e2e","benchmark","map","learn","diagram","slide","design"]);function fT(e){return e in Kb||Np.has(e)}function Gb(e){if(Kb[e])return Kb[e].slugs;if(Np.has(e))return["common",e]}var Op=new Set(["config","questions"]);function Bb(e="en"){let t=V.toolPrefix,r=Fb[e]??Fb.en;return s2.map(i=>({name:`${t}${i}`,description:r[i]??Fb.en[i]}))}function pT(e="en"){let t=V.toolPrefix,r=Vb[e]??Vb.en,i=Vb.en;return Bb(e).map(n=>{let o=n.name.replace(t,""),s=o2[o]??[];return{name:n.name,description:n.description,inputSchema:{type:"object",properties:Object.fromEntries(s.map(a=>[a.name,{type:"string",description:r[o]?.[a.name]??i[o]?.[a.name]??a.name}])),required:s.filter(a=>a.required).map(a=>a.name)}}})}var Yn=require("node:fs"),$T=require("node:path"),kT=Eo(Ub(),1);var We=require("node:fs"),Ht=require("node:path"),yT=require("node:readline"),Dp=require("node:child_process");var a2={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:",selectOther:"Other technologies not listed above (comma-separated, or press Enter to skip):",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",other:"Other",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",goddFilesTitle:"GoDD managed files configuration:",goddFilesDocsPrompt:"Documentation directory (press Enter for default: documents):",goddFilesGitattributesPrompt:"Auto-create .gitattributes on init if missing?",goddFilesDependabotPrompt:"Auto-create .github/dependabot.yml on init if missing?",goddFilesCreated:"GoDD-MCP-alpha.md generated."},c2={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:",selectOther:"\u4E0A\u8A18\u306B\u306A\u3044\u6280\u8853\uFF08\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u5165\u529B\u3001\u30B9\u30AD\u30C3\u30D7\u306F Enter\uFF09:",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",other:"\u305D\u306E\u4ED6",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",goddFilesTitle:"GoDD \u7BA1\u7406\u30D5\u30A1\u30A4\u30EB\u306E\u8A2D\u5B9A:",goddFilesDocsPrompt:"\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u4FDD\u5B58\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\uFF08Enter \u3067\u30C7\u30D5\u30A9\u30EB\u30C8: documents\uFF09:",goddFilesGitattributesPrompt:"init \u6642\u306B .gitattributes \u304C\u5B58\u5728\u3057\u306A\u3044\u5834\u5408\u3001\u81EA\u52D5\u4F5C\u6210\u3057\u307E\u3059\u304B\uFF1F",goddFilesDependabotPrompt:"init \u6642\u306B .github/dependabot.yml \u304C\u5B58\u5728\u3057\u306A\u3044\u5834\u5408\u3001\u81EA\u52D5\u4F5C\u6210\u3057\u307E\u3059\u304B\uFF1F",goddFilesCreated:"GoDD-MCP-alpha.md \u3092\u751F\u6210\u3057\u307E\u3057\u305F\u3002"},l2={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:",selectOther:"\u0422\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0438\u0438, \u043D\u0435 \u0432\u043E\u0448\u0435\u0434\u0448\u0438\u0435 \u0432 \u0441\u043F\u0438\u0441\u043E\u043A \u0432\u044B\u0448\u0435 (\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):",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",other:"\u041F\u0440\u043E\u0447\u0435\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",goddFilesTitle:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0444\u0430\u0439\u043B\u043E\u0432 GoDD:",goddFilesDocsPrompt:"\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0434\u043B\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u0438 (Enter \u2014 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: documents):",goddFilesGitattributesPrompt:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C .gitattributes \u043F\u0440\u0438 init, \u0435\u0441\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442?",goddFilesDependabotPrompt:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C .github/dependabot.yml \u043F\u0440\u0438 init, \u0435\u0441\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442?",goddFilesCreated:"GoDD-MCP-alpha.md \u0441\u043E\u0437\u0434\u0430\u043D."},mT={en:a2,ja:c2,ru:l2};function De(e){return mT[e]??mT.en}var Jb={en:"English",ja:"\u65E5\u672C\u8A9E",ru:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"};var I=e=>({win32:e,darwin:e,linux:e}),S=(e,...t)=>t.some(r=>e.programming_languages.includes(r)),Wn=(e,...t)=>t.some(r=>e.mobile.includes(r)),u2=[{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:I("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:I("npm i -D @playwright/test@latest && npx playwright install"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"unit_testing",tool:"vitest",installCmd:I("npm i -D vitest@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"linting",tool:"biome",installCmd:I("npm i -D @biomejs/biome@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"formatting",tool:"biome",installCmd:I("npm i -D @biomejs/biome@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"type_checking",tool:"typescript",installCmd:I("npm i -D typescript@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"coverage",tool:"@vitest/coverage-v8",installCmd:I("npm i -D @vitest/coverage-v8@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"unused_code",tool:"knip",installCmd:I("npm i -D knip@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"dependency_analysis",tool:"dependency-cruiser",installCmd:I("npm i -D dependency-cruiser@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"documentation",tool:"typedoc",installCmd:I("npm i -D typedoc@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"e2e_testing",tool:"pytest",installCmd:I("pip install --upgrade pytest httpx pytest-asyncio"),universal:!1,condition:e=>S(e,"python")},{category:"unit_testing",tool:"pytest",installCmd:I("pip install --upgrade pytest"),universal:!1,condition:e=>S(e,"python")},{category:"linting",tool:"ruff",installCmd:I("pip install --upgrade ruff"),universal:!1,condition:e=>S(e,"python")},{category:"formatting",tool:"ruff",installCmd:I("pip install --upgrade ruff"),universal:!1,condition:e=>S(e,"python")},{category:"type_checking",tool:"pyright",installCmd:I("pip install --upgrade pyright"),universal:!1,condition:e=>S(e,"python")},{category:"coverage",tool:"pytest-cov",installCmd:I("pip install --upgrade pytest-cov"),universal:!1,condition:e=>S(e,"python")},{category:"unused_code",tool:"vulture",installCmd:I("pip install --upgrade vulture"),universal:!1,condition:e=>S(e,"python")},{category:"dependency_analysis",tool:"pipdeptree",installCmd:I("pip install --upgrade pipdeptree"),universal:!1,condition:e=>S(e,"python")},{category:"documentation",tool:"mkdocs",installCmd:I("pip install --upgrade mkdocs mkdocs-material"),universal:!1,condition:e=>S(e,"python")},{category:"security_analysis",tool:"bandit",installCmd:I("pip install --upgrade bandit"),universal:!1,condition:e=>S(e,"python")},{category:"unit_testing",tool:"testify",installCmd:I("go get github.com/stretchr/testify@latest"),universal:!1,condition:e=>S(e,"go")},{category:"formatting",tool:"gofmt",installCmd:I("echo gofmt \u2014 built-in with Go toolchain"),universal:!1,condition:e=>S(e,"go")},{category:"coverage",tool:"go-cover",installCmd:I("echo go test -cover \u2014 built-in with Go toolchain"),universal:!1,condition:e=>S(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=>S(e,"go")},{category:"unused_code",tool:"deadcode",installCmd:I("go install golang.org/x/tools/cmd/deadcode@latest"),universal:!1,condition:e=>S(e,"go")},{category:"documentation",tool:"godoc",installCmd:I("go install golang.org/x/tools/cmd/godoc@latest"),universal:!1,condition:e=>S(e,"go")},{category:"security_analysis",tool:"gosec",installCmd:I("go install github.com/securego/gosec/v2/cmd/gosec@latest"),universal:!1,condition:e=>S(e,"go")},{category:"unit_testing",tool:"junit5",installCmd:I("echo JUnit 5 \u2014 add to pom.xml or build.gradle"),universal:!1,condition:e=>S(e,"java")&&!S(e,"kotlin")},{category:"linting",tool:"checkstyle",installCmd:I("echo Checkstyle \u2014 add Gradle/Maven plugin"),universal:!1,condition:e=>S(e,"java")&&!S(e,"kotlin")},{category:"formatting",tool:"google-java-format",installCmd:I("echo google-java-format \u2014 add to build config"),universal:!1,condition:e=>S(e,"java")&&!S(e,"kotlin")},{category:"coverage",tool:"jacoco",installCmd:I("echo JaCoCo \u2014 add Gradle/Maven plugin"),universal:!1,condition:e=>S(e,"java")},{category:"security_analysis",tool:"spotbugs",installCmd:I("echo SpotBugs \u2014 add Gradle/Maven plugin"),universal:!1,condition:e=>S(e,"java")},{category:"unit_testing",tool:"junit5",installCmd:I("echo JUnit 5 + MockK \u2014 add to build.gradle.kts"),universal:!1,condition:e=>S(e,"kotlin")},{category:"linting",tool:"detekt",installCmd:I("echo detekt \u2014 add Gradle plugin"),universal:!1,condition:e=>S(e,"kotlin")},{category:"formatting",tool:"ktlint",installCmd:I("echo ktlint \u2014 add Gradle plugin"),universal:!1,condition:e=>S(e,"kotlin")},{category:"coverage",tool:"kover",installCmd:I("echo Kover \u2014 add Gradle plugin"),universal:!1,condition:e=>S(e,"kotlin")},{category:"documentation",tool:"dokka",installCmd:I("echo Dokka \u2014 add Gradle plugin"),universal:!1,condition:e=>S(e,"kotlin")},{category:"unit_testing",tool:"xunit",installCmd:I("dotnet add package xunit xunit.runner.visualstudio"),universal:!1,condition:e=>S(e,"csharp")},{category:"formatting",tool:"dotnet-format",installCmd:I("echo dotnet format \u2014 built-in (.NET 6+)"),universal:!1,condition:e=>S(e,"csharp")},{category:"coverage",tool:"coverlet",installCmd:I("dotnet add package coverlet.collector"),universal:!1,condition:e=>S(e,"csharp")},{category:"linting",tool:"dotnet-analyzers",installCmd:I("echo .NET Analyzers \u2014 built-in with .NET 5+ SDK"),universal:!1,condition:e=>S(e,"csharp")},{category:"documentation",tool:"docfx",installCmd:I("dotnet tool install -g docfx"),universal:!1,condition:e=>S(e,"csharp")},{category:"unit_testing",tool:"googletest",installCmd:I("echo GoogleTest \u2014 add via CMake FetchContent"),universal:!1,condition:e=>S(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=>S(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=>S(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=>S(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=>S(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=>S(e,"cpp","c")},{category:"unit_testing",tool:"phpunit",installCmd:I("composer require --dev phpunit/phpunit"),universal:!1,condition:e=>S(e,"php")},{category:"linting",tool:"phpstan",installCmd:I("composer require --dev phpstan/phpstan"),universal:!1,condition:e=>S(e,"php")},{category:"formatting",tool:"php-cs-fixer",installCmd:I("composer require --dev friendsofphp/php-cs-fixer"),universal:!1,condition:e=>S(e,"php")},{category:"documentation",tool:"phpdoc",installCmd:I("composer require --dev phpdocumentor/phpdocumentor"),universal:!1,condition:e=>S(e,"php")},{category:"security_analysis",tool:"psalm",installCmd:I("composer require --dev vimeo/psalm"),universal:!1,condition:e=>S(e,"php")},{category:"unit_testing",tool:"rspec",installCmd:I("gem install rspec && rspec --init"),universal:!1,condition:e=>S(e,"ruby")},{category:"linting",tool:"rubocop",installCmd:I("gem install rubocop"),universal:!1,condition:e=>S(e,"ruby")},{category:"formatting",tool:"rubocop",installCmd:I("gem install rubocop"),universal:!1,condition:e=>S(e,"ruby")},{category:"coverage",tool:"simplecov",installCmd:I("gem install simplecov"),universal:!1,condition:e=>S(e,"ruby")},{category:"documentation",tool:"yard",installCmd:I("gem install yard"),universal:!1,condition:e=>S(e,"ruby")},{category:"security_analysis",tool:"brakeman",installCmd:I("gem install brakeman"),universal:!1,condition:e=>S(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=>S(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=>S(e,"swift")},{category:"linting",tool:"clippy",installCmd:I("rustup component add clippy"),universal:!1,condition:e=>S(e,"rust")},{category:"formatting",tool:"rustfmt",installCmd:I("rustup component add rustfmt"),universal:!1,condition:e=>S(e,"rust")},{category:"coverage",tool:"tarpaulin",installCmd:I("cargo install cargo-tarpaulin"),universal:!1,condition:e=>S(e,"rust")},{category:"security_analysis",tool:"cargo-audit",installCmd:I("cargo install cargo-audit"),universal:!1,condition:e=>S(e,"rust")},{category:"unit_testing",tool:"flutter-test",installCmd:I("echo flutter test \u2014 built-in with Flutter SDK"),universal:!1,condition:e=>Wn(e,"flutter")},{category:"linting",tool:"flutter-lints",installCmd:I("dart pub add --dev flutter_lints"),universal:!1,condition:e=>Wn(e,"flutter")},{category:"documentation",tool:"dartdoc",installCmd:I("dart pub global activate dartdoc"),universal:!1,condition:e=>S(e,"dart")},{category:"linting",tool:"credo",installCmd:I('echo Credo \u2014 add {:credo, "~> 1.7"} to mix.exs'),universal:!1,condition:e=>S(e,"elixir")},{category:"type_checking",tool:"dialyxir",installCmd:I('echo Dialyxir \u2014 add {:dialyxir, "~> 1.4"} to mix.exs'),universal:!1,condition:e=>S(e,"elixir")},{category:"coverage",tool:"excoveralls",installCmd:I('echo ExCoveralls \u2014 add {:excoveralls, "~> 0.18"} to mix.exs'),universal:!1,condition:e=>S(e,"elixir")},{category:"documentation",tool:"ex-doc",installCmd:I('echo ExDoc \u2014 add {:ex_doc, "~> 0.34"} to mix.exs'),universal:!1,condition:e=>S(e,"elixir")},{category:"unit_testing",tool:"scalatest",installCmd:I("echo ScalaTest \u2014 add to build.sbt"),universal:!1,condition:e=>S(e,"scala")},{category:"linting",tool:"scalafix",installCmd:I("echo Scalafix \u2014 add sbt plugin"),universal:!1,condition:e=>S(e,"scala")},{category:"formatting",tool:"scalafmt",installCmd:I("echo Scalafmt \u2014 add sbt plugin"),universal:!1,condition:e=>S(e,"scala")},{category:"coverage",tool:"scoverage",installCmd:I("echo Scoverage \u2014 add sbt plugin"),universal:!1,condition:e=>S(e,"scala")},{category:"unit_testing",tool:"testthat",installCmd:I(`Rscript -e 'install.packages("testthat")'`),universal:!1,condition:e=>S(e,"r")},{category:"linting",tool:"lintr",installCmd:I(`Rscript -e 'install.packages("lintr")'`),universal:!1,condition:e=>S(e,"r")},{category:"formatting",tool:"styler",installCmd:I(`Rscript -e 'install.packages("styler")'`),universal:!1,condition:e=>S(e,"r")},{category:"coverage",tool:"covr",installCmd:I(`Rscript -e 'install.packages("covr")'`),universal:!1,condition:e=>S(e,"r")},{category:"documentation",tool:"roxygen2",installCmd:I(`Rscript -e 'install.packages("roxygen2")'`),universal:!1,condition:e=>S(e,"r")},{category:"unit_testing",tool:"hspec",installCmd:I("cabal install hspec"),universal:!1,condition:e=>S(e,"haskell")},{category:"linting",tool:"hlint",installCmd:I("cabal install hlint"),universal:!1,condition:e=>S(e,"haskell")},{category:"formatting",tool:"ormolu",installCmd:I("cabal install ormolu"),universal:!1,condition:e=>S(e,"haskell")},{category:"linting",tool:"perlcritic",installCmd:I("cpanm Perl::Critic"),universal:!1,condition:e=>S(e,"perl")},{category:"formatting",tool:"perltidy",installCmd:I("cpanm Perl::Tidy"),universal:!1,condition:e=>S(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=>S(e,"clojure")},{category:"formatting",tool:"cljfmt",installCmd:I("echo cljfmt \u2014 add to deps.edn"),universal:!1,condition:e=>S(e,"clojure")},{category:"formatting",tool:"juliaformatter",installCmd:I(`julia -e 'using Pkg; Pkg.add("JuliaFormatter")'`),universal:!1,condition:e=>S(e,"julia")},{category:"documentation",tool:"documenter",installCmd:I(`julia -e 'using Pkg; Pkg.add("Documenter")'`),universal:!1,condition:e=>S(e,"julia")},{category:"unit_testing",tool:"busted",installCmd:I("luarocks install busted"),universal:!1,condition:e=>S(e,"lua")},{category:"linting",tool:"luacheck",installCmd:I("luarocks install luacheck"),universal:!1,condition:e=>S(e,"lua")},{category:"formatting",tool:"stylua",installCmd:{win32:"cargo install stylua",darwin:"brew install stylua",linux:"cargo install stylua"},universal:!1,condition:e=>S(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=>S(e,"solidity")},{category:"linting",tool:"solhint",installCmd:I("npm i -g solhint@latest"),universal:!1,condition:e=>S(e,"solidity")},{category:"formatting",tool:"prettier-solidity",installCmd:I("npm i -D prettier@latest prettier-plugin-solidity@latest"),universal:!1,condition:e=>S(e,"solidity")},{category:"security_analysis",tool:"slither",installCmd:I("pip install --upgrade slither-analyzer"),universal:!1,condition:e=>S(e,"solidity")},{category:"e2e_testing",tool:"detox",installCmd:I("npm i -D detox@latest"),universal:!1,condition:e=>Wn(e,"react-native","expo")},{category:"linting",tool:"detekt",installCmd:I("echo detekt \u2014 add Gradle plugin"),universal:!1,condition:e=>Wn(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=>Wn(e,"swiftui","uikit")},{category:"e2e_testing",tool:"cypress",installCmd:I("npm i -D cypress@latest"),universal:!1,condition:e=>Wn(e,"ionic","capacitor")},{category:"unit_testing",tool:"xunit",installCmd:I("dotnet add package xunit xunit.runner.visualstudio"),universal:!1,condition:e=>Wn(e,"maui")},{category:"linting",tool:"gdlint",installCmd:I("pip install --upgrade gdtoolkit"),universal:!1,condition:e=>S(e,"gdscript")},{category:"formatting",tool:"gdformat",installCmd:I("pip install --upgrade gdtoolkit"),universal:!1,condition:e=>S(e,"gdscript")},{category:"unit_testing",tool:"xunit",installCmd:I("dotnet add package xunit xunit.runner.visualstudio"),universal:!1,condition:e=>S(e,"fsharp")},{category:"formatting",tool:"fantomas",installCmd:I("dotnet tool install -g fantomas"),universal:!1,condition:e=>S(e,"fsharp")},{category:"unit_testing",tool:"alcotest",installCmd:I("opam install alcotest"),universal:!1,condition:e=>S(e,"ocaml")},{category:"formatting",tool:"ocamlformat",installCmd:I("opam install ocamlformat"),universal:!1,condition:e=>S(e,"ocaml")},{category:"linting",tool:"elvis",installCmd:I("echo elvis \u2014 add as rebar3 plugin"),universal:!1,condition:e=>S(e,"erlang")},{category:"linting",tool:"ameba",installCmd:I("echo Ameba \u2014 add to shard.yml"),universal:!1,condition:e=>S(e,"crystal")},{category:"linting",tool:"codenarc",installCmd:I("echo CodeNarc \u2014 add Gradle plugin"),universal:!1,condition:e=>S(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=>S(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=>S(e,"objective-c")},{category:"unit_testing",tool:"mstest",installCmd:I("dotnet add package MSTest.TestFramework MSTest.TestAdapter"),universal:!1,condition:e=>S(e,"visual-basic")},{category:"unit_testing",tool:"pester",installCmd:I("Install-Module -Name Pester -Force -SkipPublisherCheck"),universal:!1,condition:e=>S(e,"powershell")},{category:"linting",tool:"psscriptanalyzer",installCmd:I("Install-Module -Name PSScriptAnalyzer -Force"),universal:!1,condition:e=>S(e,"powershell")}];function gT(e){let t=new Set,r=[];for(let i of u2)t.has(i.category)||i.condition(e)&&(r.push(i),t.add(i.category));return r}var Me=require("node:fs"),Jt=require("node:path");var Hb="<!-- GoDD:start -->",jp="<!-- GoDD:end -->";function d2(e){let t=(0,Jt.resolve)(e,".godd","state","current-phase.json");if(!(0,Me.existsSync)(t))return null;try{let r=JSON.parse((0,Me.readFileSync)(t,"utf-8")),i=["","### NES Context (Next Edit Suggestions)",""];return r.phase&&i.push(`- **Current phase**: ${r.phase} (${r.status??"unknown"})`),r.workflow_context&&i.push(`- **Context**: ${r.workflow_context}`),Array.isArray(r.next_likely_files)&&r.next_likely_files.length>0&&i.push(`- **Next likely files**: ${r.next_likely_files.join(", ")}`),i.join(`
190
+ `)}var Ir="1.4.2";var Fb={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)",design:"Generate/update visual designs from codebase (Pencil.dev sync)"},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",design:"\u30B3\u30FC\u30C9\u30D9\u30FC\u30B9\u304B\u3089\u30D3\u30B8\u30E5\u30A2\u30EB\u30C7\u30B6\u30A4\u30F3\u3092\u751F\u6210/\u66F4\u65B0\uFF08Pencil.dev \u540C\u671F\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)",design:"\u0413\u0435\u043D\u0435\u0440\u0430\u0446\u0438\u044F/\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0432\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0434\u0438\u0437\u0430\u0439\u043D\u0430 \u0438\u0437 \u043A\u043E\u0434\u043E\u0432\u043E\u0439 \u0431\u0430\u0437\u044B (\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u044F Pencil.dev)"}};var o2={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}],design:[{name:"target",required:!1},{name:"output",required:!1}]},Vb={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"},design:{target:"Design target (all / page name / component name)",output:"Output format (pencil / tokens)"}},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"},design:{target:"\u30C7\u30B6\u30A4\u30F3\u5BFE\u8C61\uFF08all / \u30DA\u30FC\u30B8\u540D / \u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u540D\uFF09",output:"\u51FA\u529B\u5F62\u5F0F\uFF08pencil / tokens\uFF09"}},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"},design:{target:"\u0426\u0435\u043B\u044C \u0434\u0438\u0437\u0430\u0439\u043D\u0430 (all / \u0438\u043C\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B / \u0438\u043C\u044F \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430)",output:"\u0424\u043E\u0440\u043C\u0430\u0442 \u0432\u044B\u0432\u043E\u0434\u0430 (pencil / tokens)"}}},s2=["dev","check","docs","ship","setup","review","test","impact","commit","push","pr","deploy","adr","release","github","config","questions","e2e","benchmark","map","learn","diagram","slide","design"];var Kb={dev:{slugs:["common","dev"]},ship:{slugs:["common","commit","push","pr","check"]},review:{slugs:["common","review","check"]}};var Np=new Set(["dev","review","setup","test","impact","docs","check","deploy","adr","release","e2e","benchmark","map","learn","diagram","slide","design"]);function fT(e){return e in Kb||Np.has(e)}function Gb(e){if(Kb[e])return Kb[e].slugs;if(Np.has(e))return["common",e]}var Op=new Set(["config","questions"]);function Bb(e="en"){let t=V.toolPrefix,r=Fb[e]??Fb.en;return s2.map(i=>({name:`${t}${i}`,description:r[i]??Fb.en[i]}))}function pT(e="en"){let t=V.toolPrefix,r=Vb[e]??Vb.en,i=Vb.en;return Bb(e).map(n=>{let o=n.name.replace(t,""),s=o2[o]??[];return{name:n.name,description:n.description,inputSchema:{type:"object",properties:Object.fromEntries(s.map(a=>[a.name,{type:"string",description:r[o]?.[a.name]??i[o]?.[a.name]??a.name}])),required:s.filter(a=>a.required).map(a=>a.name)}}})}var Yn=require("node:fs"),$T=require("node:path"),kT=Eo(Ub(),1);var We=require("node:fs"),Ht=require("node:path"),yT=require("node:readline"),Dp=require("node:child_process");var a2={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:",selectOther:"Other technologies not listed above (comma-separated, or press Enter to skip):",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",other:"Other",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",goddFilesTitle:"GoDD managed files configuration:",goddFilesDocsPrompt:"Documentation directory (press Enter for default: documents):",goddFilesGitattributesPrompt:"Auto-create .gitattributes on init if missing?",goddFilesDependabotPrompt:"Auto-create .github/dependabot.yml on init if missing?",goddFilesCreated:"GoDD-MCP-alpha.md generated."},c2={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:",selectOther:"\u4E0A\u8A18\u306B\u306A\u3044\u6280\u8853\uFF08\u30AB\u30F3\u30DE\u533A\u5207\u308A\u3067\u5165\u529B\u3001\u30B9\u30AD\u30C3\u30D7\u306F Enter\uFF09:",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",other:"\u305D\u306E\u4ED6",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",goddFilesTitle:"GoDD \u7BA1\u7406\u30D5\u30A1\u30A4\u30EB\u306E\u8A2D\u5B9A:",goddFilesDocsPrompt:"\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u4FDD\u5B58\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\uFF08Enter \u3067\u30C7\u30D5\u30A9\u30EB\u30C8: documents\uFF09:",goddFilesGitattributesPrompt:"init \u6642\u306B .gitattributes \u304C\u5B58\u5728\u3057\u306A\u3044\u5834\u5408\u3001\u81EA\u52D5\u4F5C\u6210\u3057\u307E\u3059\u304B\uFF1F",goddFilesDependabotPrompt:"init \u6642\u306B .github/dependabot.yml \u304C\u5B58\u5728\u3057\u306A\u3044\u5834\u5408\u3001\u81EA\u52D5\u4F5C\u6210\u3057\u307E\u3059\u304B\uFF1F",goddFilesCreated:"GoDD-MCP-alpha.md \u3092\u751F\u6210\u3057\u307E\u3057\u305F\u3002"},l2={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:",selectOther:"\u0422\u0435\u0445\u043D\u043E\u043B\u043E\u0433\u0438\u0438, \u043D\u0435 \u0432\u043E\u0448\u0435\u0434\u0448\u0438\u0435 \u0432 \u0441\u043F\u0438\u0441\u043E\u043A \u0432\u044B\u0448\u0435 (\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):",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",other:"\u041F\u0440\u043E\u0447\u0435\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",goddFilesTitle:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430 \u0444\u0430\u0439\u043B\u043E\u0432 GoDD:",goddFilesDocsPrompt:"\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440\u0438\u044F \u0434\u043B\u044F \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u0438 (Enter \u2014 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E: documents):",goddFilesGitattributesPrompt:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C .gitattributes \u043F\u0440\u0438 init, \u0435\u0441\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442?",goddFilesDependabotPrompt:"\u0410\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C .github/dependabot.yml \u043F\u0440\u0438 init, \u0435\u0441\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442?",goddFilesCreated:"GoDD-MCP-alpha.md \u0441\u043E\u0437\u0434\u0430\u043D."},mT={en:a2,ja:c2,ru:l2};function De(e){return mT[e]??mT.en}var Jb={en:"English",ja:"\u65E5\u672C\u8A9E",ru:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439"};var I=e=>({win32:e,darwin:e,linux:e}),S=(e,...t)=>t.some(r=>e.programming_languages.includes(r)),Wn=(e,...t)=>t.some(r=>e.mobile.includes(r)),u2=[{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:I("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:I("npm i -D @playwright/test@latest && npx playwright install"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"unit_testing",tool:"vitest",installCmd:I("npm i -D vitest@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"linting",tool:"biome",installCmd:I("npm i -D @biomejs/biome@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"formatting",tool:"biome",installCmd:I("npm i -D @biomejs/biome@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"type_checking",tool:"typescript",installCmd:I("npm i -D typescript@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"coverage",tool:"@vitest/coverage-v8",installCmd:I("npm i -D @vitest/coverage-v8@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"unused_code",tool:"knip",installCmd:I("npm i -D knip@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"dependency_analysis",tool:"dependency-cruiser",installCmd:I("npm i -D dependency-cruiser@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"documentation",tool:"typedoc",installCmd:I("npm i -D typedoc@latest"),universal:!1,condition:e=>S(e,"typescript","javascript")},{category:"e2e_testing",tool:"pytest",installCmd:I("pip install --upgrade pytest httpx pytest-asyncio"),universal:!1,condition:e=>S(e,"python")},{category:"unit_testing",tool:"pytest",installCmd:I("pip install --upgrade pytest"),universal:!1,condition:e=>S(e,"python")},{category:"linting",tool:"ruff",installCmd:I("pip install --upgrade ruff"),universal:!1,condition:e=>S(e,"python")},{category:"formatting",tool:"ruff",installCmd:I("pip install --upgrade ruff"),universal:!1,condition:e=>S(e,"python")},{category:"type_checking",tool:"pyright",installCmd:I("pip install --upgrade pyright"),universal:!1,condition:e=>S(e,"python")},{category:"coverage",tool:"pytest-cov",installCmd:I("pip install --upgrade pytest-cov"),universal:!1,condition:e=>S(e,"python")},{category:"unused_code",tool:"vulture",installCmd:I("pip install --upgrade vulture"),universal:!1,condition:e=>S(e,"python")},{category:"dependency_analysis",tool:"pipdeptree",installCmd:I("pip install --upgrade pipdeptree"),universal:!1,condition:e=>S(e,"python")},{category:"documentation",tool:"mkdocs",installCmd:I("pip install --upgrade mkdocs mkdocs-material"),universal:!1,condition:e=>S(e,"python")},{category:"security_analysis",tool:"bandit",installCmd:I("pip install --upgrade bandit"),universal:!1,condition:e=>S(e,"python")},{category:"unit_testing",tool:"testify",installCmd:I("go get github.com/stretchr/testify@latest"),universal:!1,condition:e=>S(e,"go")},{category:"formatting",tool:"gofmt",installCmd:I("echo gofmt \u2014 built-in with Go toolchain"),universal:!1,condition:e=>S(e,"go")},{category:"coverage",tool:"go-cover",installCmd:I("echo go test -cover \u2014 built-in with Go toolchain"),universal:!1,condition:e=>S(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=>S(e,"go")},{category:"unused_code",tool:"deadcode",installCmd:I("go install golang.org/x/tools/cmd/deadcode@latest"),universal:!1,condition:e=>S(e,"go")},{category:"documentation",tool:"godoc",installCmd:I("go install golang.org/x/tools/cmd/godoc@latest"),universal:!1,condition:e=>S(e,"go")},{category:"security_analysis",tool:"gosec",installCmd:I("go install github.com/securego/gosec/v2/cmd/gosec@latest"),universal:!1,condition:e=>S(e,"go")},{category:"unit_testing",tool:"junit5",installCmd:I("echo JUnit 5 \u2014 add to pom.xml or build.gradle"),universal:!1,condition:e=>S(e,"java")&&!S(e,"kotlin")},{category:"linting",tool:"checkstyle",installCmd:I("echo Checkstyle \u2014 add Gradle/Maven plugin"),universal:!1,condition:e=>S(e,"java")&&!S(e,"kotlin")},{category:"formatting",tool:"google-java-format",installCmd:I("echo google-java-format \u2014 add to build config"),universal:!1,condition:e=>S(e,"java")&&!S(e,"kotlin")},{category:"coverage",tool:"jacoco",installCmd:I("echo JaCoCo \u2014 add Gradle/Maven plugin"),universal:!1,condition:e=>S(e,"java")},{category:"security_analysis",tool:"spotbugs",installCmd:I("echo SpotBugs \u2014 add Gradle/Maven plugin"),universal:!1,condition:e=>S(e,"java")},{category:"unit_testing",tool:"junit5",installCmd:I("echo JUnit 5 + MockK \u2014 add to build.gradle.kts"),universal:!1,condition:e=>S(e,"kotlin")},{category:"linting",tool:"detekt",installCmd:I("echo detekt \u2014 add Gradle plugin"),universal:!1,condition:e=>S(e,"kotlin")},{category:"formatting",tool:"ktlint",installCmd:I("echo ktlint \u2014 add Gradle plugin"),universal:!1,condition:e=>S(e,"kotlin")},{category:"coverage",tool:"kover",installCmd:I("echo Kover \u2014 add Gradle plugin"),universal:!1,condition:e=>S(e,"kotlin")},{category:"documentation",tool:"dokka",installCmd:I("echo Dokka \u2014 add Gradle plugin"),universal:!1,condition:e=>S(e,"kotlin")},{category:"unit_testing",tool:"xunit",installCmd:I("dotnet add package xunit xunit.runner.visualstudio"),universal:!1,condition:e=>S(e,"csharp")},{category:"formatting",tool:"dotnet-format",installCmd:I("echo dotnet format \u2014 built-in (.NET 6+)"),universal:!1,condition:e=>S(e,"csharp")},{category:"coverage",tool:"coverlet",installCmd:I("dotnet add package coverlet.collector"),universal:!1,condition:e=>S(e,"csharp")},{category:"linting",tool:"dotnet-analyzers",installCmd:I("echo .NET Analyzers \u2014 built-in with .NET 5+ SDK"),universal:!1,condition:e=>S(e,"csharp")},{category:"documentation",tool:"docfx",installCmd:I("dotnet tool install -g docfx"),universal:!1,condition:e=>S(e,"csharp")},{category:"unit_testing",tool:"googletest",installCmd:I("echo GoogleTest \u2014 add via CMake FetchContent"),universal:!1,condition:e=>S(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=>S(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=>S(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=>S(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=>S(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=>S(e,"cpp","c")},{category:"unit_testing",tool:"phpunit",installCmd:I("composer require --dev phpunit/phpunit"),universal:!1,condition:e=>S(e,"php")},{category:"linting",tool:"phpstan",installCmd:I("composer require --dev phpstan/phpstan"),universal:!1,condition:e=>S(e,"php")},{category:"formatting",tool:"php-cs-fixer",installCmd:I("composer require --dev friendsofphp/php-cs-fixer"),universal:!1,condition:e=>S(e,"php")},{category:"documentation",tool:"phpdoc",installCmd:I("composer require --dev phpdocumentor/phpdocumentor"),universal:!1,condition:e=>S(e,"php")},{category:"security_analysis",tool:"psalm",installCmd:I("composer require --dev vimeo/psalm"),universal:!1,condition:e=>S(e,"php")},{category:"unit_testing",tool:"rspec",installCmd:I("gem install rspec && rspec --init"),universal:!1,condition:e=>S(e,"ruby")},{category:"linting",tool:"rubocop",installCmd:I("gem install rubocop"),universal:!1,condition:e=>S(e,"ruby")},{category:"formatting",tool:"rubocop",installCmd:I("gem install rubocop"),universal:!1,condition:e=>S(e,"ruby")},{category:"coverage",tool:"simplecov",installCmd:I("gem install simplecov"),universal:!1,condition:e=>S(e,"ruby")},{category:"documentation",tool:"yard",installCmd:I("gem install yard"),universal:!1,condition:e=>S(e,"ruby")},{category:"security_analysis",tool:"brakeman",installCmd:I("gem install brakeman"),universal:!1,condition:e=>S(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=>S(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=>S(e,"swift")},{category:"linting",tool:"clippy",installCmd:I("rustup component add clippy"),universal:!1,condition:e=>S(e,"rust")},{category:"formatting",tool:"rustfmt",installCmd:I("rustup component add rustfmt"),universal:!1,condition:e=>S(e,"rust")},{category:"coverage",tool:"tarpaulin",installCmd:I("cargo install cargo-tarpaulin"),universal:!1,condition:e=>S(e,"rust")},{category:"security_analysis",tool:"cargo-audit",installCmd:I("cargo install cargo-audit"),universal:!1,condition:e=>S(e,"rust")},{category:"unit_testing",tool:"flutter-test",installCmd:I("echo flutter test \u2014 built-in with Flutter SDK"),universal:!1,condition:e=>Wn(e,"flutter")},{category:"linting",tool:"flutter-lints",installCmd:I("dart pub add --dev flutter_lints"),universal:!1,condition:e=>Wn(e,"flutter")},{category:"documentation",tool:"dartdoc",installCmd:I("dart pub global activate dartdoc"),universal:!1,condition:e=>S(e,"dart")},{category:"linting",tool:"credo",installCmd:I('echo Credo \u2014 add {:credo, "~> 1.7"} to mix.exs'),universal:!1,condition:e=>S(e,"elixir")},{category:"type_checking",tool:"dialyxir",installCmd:I('echo Dialyxir \u2014 add {:dialyxir, "~> 1.4"} to mix.exs'),universal:!1,condition:e=>S(e,"elixir")},{category:"coverage",tool:"excoveralls",installCmd:I('echo ExCoveralls \u2014 add {:excoveralls, "~> 0.18"} to mix.exs'),universal:!1,condition:e=>S(e,"elixir")},{category:"documentation",tool:"ex-doc",installCmd:I('echo ExDoc \u2014 add {:ex_doc, "~> 0.34"} to mix.exs'),universal:!1,condition:e=>S(e,"elixir")},{category:"unit_testing",tool:"scalatest",installCmd:I("echo ScalaTest \u2014 add to build.sbt"),universal:!1,condition:e=>S(e,"scala")},{category:"linting",tool:"scalafix",installCmd:I("echo Scalafix \u2014 add sbt plugin"),universal:!1,condition:e=>S(e,"scala")},{category:"formatting",tool:"scalafmt",installCmd:I("echo Scalafmt \u2014 add sbt plugin"),universal:!1,condition:e=>S(e,"scala")},{category:"coverage",tool:"scoverage",installCmd:I("echo Scoverage \u2014 add sbt plugin"),universal:!1,condition:e=>S(e,"scala")},{category:"unit_testing",tool:"testthat",installCmd:I(`Rscript -e 'install.packages("testthat")'`),universal:!1,condition:e=>S(e,"r")},{category:"linting",tool:"lintr",installCmd:I(`Rscript -e 'install.packages("lintr")'`),universal:!1,condition:e=>S(e,"r")},{category:"formatting",tool:"styler",installCmd:I(`Rscript -e 'install.packages("styler")'`),universal:!1,condition:e=>S(e,"r")},{category:"coverage",tool:"covr",installCmd:I(`Rscript -e 'install.packages("covr")'`),universal:!1,condition:e=>S(e,"r")},{category:"documentation",tool:"roxygen2",installCmd:I(`Rscript -e 'install.packages("roxygen2")'`),universal:!1,condition:e=>S(e,"r")},{category:"unit_testing",tool:"hspec",installCmd:I("cabal install hspec"),universal:!1,condition:e=>S(e,"haskell")},{category:"linting",tool:"hlint",installCmd:I("cabal install hlint"),universal:!1,condition:e=>S(e,"haskell")},{category:"formatting",tool:"ormolu",installCmd:I("cabal install ormolu"),universal:!1,condition:e=>S(e,"haskell")},{category:"linting",tool:"perlcritic",installCmd:I("cpanm Perl::Critic"),universal:!1,condition:e=>S(e,"perl")},{category:"formatting",tool:"perltidy",installCmd:I("cpanm Perl::Tidy"),universal:!1,condition:e=>S(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=>S(e,"clojure")},{category:"formatting",tool:"cljfmt",installCmd:I("echo cljfmt \u2014 add to deps.edn"),universal:!1,condition:e=>S(e,"clojure")},{category:"formatting",tool:"juliaformatter",installCmd:I(`julia -e 'using Pkg; Pkg.add("JuliaFormatter")'`),universal:!1,condition:e=>S(e,"julia")},{category:"documentation",tool:"documenter",installCmd:I(`julia -e 'using Pkg; Pkg.add("Documenter")'`),universal:!1,condition:e=>S(e,"julia")},{category:"unit_testing",tool:"busted",installCmd:I("luarocks install busted"),universal:!1,condition:e=>S(e,"lua")},{category:"linting",tool:"luacheck",installCmd:I("luarocks install luacheck"),universal:!1,condition:e=>S(e,"lua")},{category:"formatting",tool:"stylua",installCmd:{win32:"cargo install stylua",darwin:"brew install stylua",linux:"cargo install stylua"},universal:!1,condition:e=>S(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=>S(e,"solidity")},{category:"linting",tool:"solhint",installCmd:I("npm i -g solhint@latest"),universal:!1,condition:e=>S(e,"solidity")},{category:"formatting",tool:"prettier-solidity",installCmd:I("npm i -D prettier@latest prettier-plugin-solidity@latest"),universal:!1,condition:e=>S(e,"solidity")},{category:"security_analysis",tool:"slither",installCmd:I("pip install --upgrade slither-analyzer"),universal:!1,condition:e=>S(e,"solidity")},{category:"e2e_testing",tool:"detox",installCmd:I("npm i -D detox@latest"),universal:!1,condition:e=>Wn(e,"react-native","expo")},{category:"linting",tool:"detekt",installCmd:I("echo detekt \u2014 add Gradle plugin"),universal:!1,condition:e=>Wn(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=>Wn(e,"swiftui","uikit")},{category:"e2e_testing",tool:"cypress",installCmd:I("npm i -D cypress@latest"),universal:!1,condition:e=>Wn(e,"ionic","capacitor")},{category:"unit_testing",tool:"xunit",installCmd:I("dotnet add package xunit xunit.runner.visualstudio"),universal:!1,condition:e=>Wn(e,"maui")},{category:"linting",tool:"gdlint",installCmd:I("pip install --upgrade gdtoolkit"),universal:!1,condition:e=>S(e,"gdscript")},{category:"formatting",tool:"gdformat",installCmd:I("pip install --upgrade gdtoolkit"),universal:!1,condition:e=>S(e,"gdscript")},{category:"unit_testing",tool:"xunit",installCmd:I("dotnet add package xunit xunit.runner.visualstudio"),universal:!1,condition:e=>S(e,"fsharp")},{category:"formatting",tool:"fantomas",installCmd:I("dotnet tool install -g fantomas"),universal:!1,condition:e=>S(e,"fsharp")},{category:"unit_testing",tool:"alcotest",installCmd:I("opam install alcotest"),universal:!1,condition:e=>S(e,"ocaml")},{category:"formatting",tool:"ocamlformat",installCmd:I("opam install ocamlformat"),universal:!1,condition:e=>S(e,"ocaml")},{category:"linting",tool:"elvis",installCmd:I("echo elvis \u2014 add as rebar3 plugin"),universal:!1,condition:e=>S(e,"erlang")},{category:"linting",tool:"ameba",installCmd:I("echo Ameba \u2014 add to shard.yml"),universal:!1,condition:e=>S(e,"crystal")},{category:"linting",tool:"codenarc",installCmd:I("echo CodeNarc \u2014 add Gradle plugin"),universal:!1,condition:e=>S(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=>S(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=>S(e,"objective-c")},{category:"unit_testing",tool:"mstest",installCmd:I("dotnet add package MSTest.TestFramework MSTest.TestAdapter"),universal:!1,condition:e=>S(e,"visual-basic")},{category:"unit_testing",tool:"pester",installCmd:I("Install-Module -Name Pester -Force -SkipPublisherCheck"),universal:!1,condition:e=>S(e,"powershell")},{category:"linting",tool:"psscriptanalyzer",installCmd:I("Install-Module -Name PSScriptAnalyzer -Force"),universal:!1,condition:e=>S(e,"powershell")}];function gT(e){let t=new Set,r=[];for(let i of u2)t.has(i.category)||i.condition(e)&&(r.push(i),t.add(i.category));return r}var Me=require("node:fs"),Jt=require("node:path");var Hb="<!-- GoDD:start -->",jp="<!-- GoDD:end -->";function d2(e){let t=(0,Jt.resolve)(e,".godd","state","current-phase.json");if(!(0,Me.existsSync)(t))return null;try{let r=JSON.parse((0,Me.readFileSync)(t,"utf-8")),i=["","### NES Context (Next Edit Suggestions)",""];return r.phase&&i.push(`- **Current phase**: ${r.phase} (${r.status??"unknown"})`),r.workflow_context&&i.push(`- **Context**: ${r.workflow_context}`),Array.isArray(r.next_likely_files)&&r.next_likely_files.length>0&&i.push(`- **Next likely files**: ${r.next_likely_files.join(", ")}`),i.join(`
191
191
  `)}catch{return null}}function f2(e,t){let r=["### GoDD stack snapshot","",`Auto-detected from this repository (updated when \`${V.toolPrefix}config\` or \`${V.cli} init\` runs):`,""];for(let[n,o]of Object.entries(e))Array.isArray(o)&&o.length>0&&r.push(`- **${n}**: ${o.join(", ")}`);let i=d2(t);return i&&r.push(i),r.push("",`_Generated by ${V.displayName} MCP \u2014 keep this block for drift detection._`),r.join(`
192
192
  `)}function Io(e,t){let r=(0,Jt.resolve)(e,"AGENTS.md"),i=f2(t,e),n=`${Hb}
193
193
  ${i}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autodevjapan/godd-mcp-alpha",
3
- "version": "1.4.1",
3
+ "version": "1.4.2",
4
4
  "type": "module",
5
5
  "description": "GoDD MCP α Server — AI Prompt Delivery System for Cursor IDE",
6
6
  "license": "UNLICENSED",