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