@bendyline/gezel-service 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/dist/bin/gezeld.js +295 -167
  2. package/dist/handboek-content/whats-new/1.26226.md +1 -1
  3. package/dist/index.d.ts +19 -9
  4. package/dist/index.js +295 -167
  5. package/dist/ui/assets/{TerminalCodeEditor-BuMcfTS4.js → TerminalCodeEditor-C_Mvaxqz.js} +2 -2
  6. package/dist/ui/assets/{_.contribution-CZO2XAKt.js → _.contribution-fOcpgyNy.js} +1 -1
  7. package/dist/ui/assets/{cpp.contribution-BJzhk0Zj.js → cpp.contribution-Cx5HvoW7.js} +1 -1
  8. package/dist/ui/assets/{csharp.contribution-BR9K2qKj.js → csharp.contribution-DMuCSvzf.js} +1 -1
  9. package/dist/ui/assets/{css.contribution-CfkVmdah.js → css.contribution-BPXcRoVK.js} +1 -1
  10. package/dist/ui/assets/{cssMode-MMeGUmV2.js → cssMode-BHAnHChA.js} +1 -1
  11. package/dist/ui/assets/{dist-CFOmf7nD.js → dist-DRDFuw7G.js} +1 -1
  12. package/dist/ui/assets/dist-DYn91eSO.js +2 -0
  13. package/dist/ui/assets/{dockerfile.contribution-IZMl57B5.js → dockerfile.contribution-DQAHazBI.js} +1 -1
  14. package/dist/ui/assets/{go.contribution-BxCBwhZs.js → go.contribution-Jq5pYI7r.js} +1 -1
  15. package/dist/ui/assets/{handlebars-CreIkams.js → handlebars-BWC7ZXbe.js} +1 -1
  16. package/dist/ui/assets/{handlebars.contribution-BGlyL-dm.js → handlebars.contribution-BSmxDPeT.js} +2 -2
  17. package/dist/ui/assets/{html-BSrz1IKi.js → html-BzC9B_Os.js} +1 -1
  18. package/dist/ui/assets/{html.contribution-CucOMFQ_.js → html.contribution-CEvtdKHG.js} +2 -2
  19. package/dist/ui/assets/{htmlMode-DRG7XY5Z.js → htmlMode-1qtmM5J4.js} +1 -1
  20. package/dist/ui/assets/{index-Bqu-32S3.js → index-JGn32C5f.js} +7 -7
  21. package/dist/ui/assets/{ini.contribution-CGX5OdXM.js → ini.contribution-BQpzdQzE.js} +1 -1
  22. package/dist/ui/assets/{java.contribution-CVhfJ_us.js → java.contribution-r3T-8LYE.js} +1 -1
  23. package/dist/ui/assets/{javascript-QelFp9t5.js → javascript-DlipM3VT.js} +1 -1
  24. package/dist/ui/assets/{javascript.contribution--no0ijCu.js → javascript.contribution-D4MU3K0o.js} +2 -2
  25. package/dist/ui/assets/{jsonMode-T4Ss3lDu.js → jsonMode-DSXTaEG9.js} +1 -1
  26. package/dist/ui/assets/{kotlin.contribution-DxFbGDYA.js → kotlin.contribution-NI_YvQPr.js} +1 -1
  27. package/dist/ui/assets/{less.contribution-g9R8XRZf.js → less.contribution-BDz7g6GS.js} +1 -1
  28. package/dist/ui/assets/{lua.contribution-YqDsEy8Z.js → lua.contribution-Cr_f17YF.js} +1 -1
  29. package/dist/ui/assets/{markdown.contribution-DboXnPnx.js → markdown.contribution-CeJFrLN_.js} +1 -1
  30. package/dist/ui/assets/{monaco-BdFw56DI.js → monaco-Bv9TxWl_.js} +3 -3
  31. package/dist/ui/assets/{monaco-base-DrP3D13F.js → monaco-base-DD1Wr24S.js} +1 -1
  32. package/dist/ui/assets/{monaco-setup-QyF22y9h.js → monaco-setup-CSa3_fbr.js} +1 -1
  33. package/dist/ui/assets/{monaco.contribution-CMzPFHtO.js → monaco.contribution-DKCJArGP.js} +2 -2
  34. package/dist/ui/assets/{monaco.contribution-XEpc63ty.js → monaco.contribution-QFH9z5g8.js} +2 -2
  35. package/dist/ui/assets/{monaco.contribution-BkqIxESv.js → monaco.contribution-ZD-wInG3.js} +2 -2
  36. package/dist/ui/assets/{monaco.contribution-FA_ESP-W.js → monaco.contribution-tTvEzZ5l.js} +2 -2
  37. package/dist/ui/assets/{php.contribution-rnpik0Kk.js → php.contribution-B310cs3S.js} +1 -1
  38. package/dist/ui/assets/{python-CF7X5t9Q.js → python-CcCNDnkj.js} +1 -1
  39. package/dist/ui/assets/{python.contribution-CyJGCfSq.js → python.contribution-ZHL594qQ.js} +2 -2
  40. package/dist/ui/assets/{ruby.contribution-4ZyPGu2E.js → ruby.contribution-CRsX2xPw.js} +1 -1
  41. package/dist/ui/assets/{rust.contribution-Cl_B3X2G.js → rust.contribution-CfwWiQxD.js} +1 -1
  42. package/dist/ui/assets/{scss.contribution-BO02gVLZ.js → scss.contribution-CJaLNKeq.js} +1 -1
  43. package/dist/ui/assets/{shell.contribution-Dn9Y0uHs.js → shell.contribution-DLPinQHD.js} +1 -1
  44. package/dist/ui/assets/{sql.contribution-Bog_5Rc8.js → sql.contribution-DsZSLfVg.js} +1 -1
  45. package/dist/ui/assets/{swift.contribution-CfiAr7AX.js → swift.contribution-DFBOOFKs.js} +1 -1
  46. package/dist/ui/assets/{terminal-monaco-setup-B-EnkGiy.js → terminal-monaco-setup-B8Xv2NV9.js} +1 -1
  47. package/dist/ui/assets/{tsMode-B2WuLuPL.js → tsMode-DqT2Dz4k.js} +1 -1
  48. package/dist/ui/assets/{typescript-Bv_J1tKT.js → typescript-_R5MS0Lp.js} +1 -1
  49. package/dist/ui/assets/{typescript.contribution-CM0XQCYi.js → typescript.contribution-CHnXQvfG.js} +2 -2
  50. package/dist/ui/assets/{xml-DMV-f4tm.js → xml-CQVIKNxb.js} +1 -1
  51. package/dist/ui/assets/{xml.contribution-QqmOB9gT.js → xml.contribution-HY4GvlWC.js} +2 -2
  52. package/dist/ui/assets/{yaml-Bb6mZXY5.js → yaml-Nt3uLkWC.js} +1 -1
  53. package/dist/ui/assets/{yaml.contribution-DCDnWhHR.js → yaml.contribution-C7dllTyY.js} +2 -2
  54. package/dist/ui/index.html +3 -3
  55. package/package.json +10 -9
  56. package/dist/ui/assets/dist-8uH4DcHx.js +0 -2
@@ -167,7 +167,7 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
167
167
  `)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
168
168
  `,e)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(this.onKeyLine=!1,t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){ru(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,r=n&&(t.sep||t.explicitKey)&&this.type!==`seq-item-ind`,i=[];if(r&&t.sep&&!t.value){let n=[];for(let r=0;r<t.sep.length;++r){let i=t.sep[r];switch(i.type){case`newline`:n.push(r);break;case`space`:break;case`comment`:i.indent>e.indent&&(n.length=0);break;default:n.length=0}}n.length>=2&&(i=t.sep.splice(n[1]))}switch(this.type){case`anchor`:case`tag`:r||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`explicit-key-ind`:!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):r||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case`map-value-ind`:if(t.explicitKey)if(!t.sep)if(Ql(t.start,`newline`))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let e=nu(t.start);this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}else if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Ql(t.sep,`map-value-ind`))this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(eu(t.key)&&!Ql(t.sep,`newline`)){let e=nu(t.start),n=t.key,r=t.sep;r.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:n,sep:r}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken);else t.sep?t.value||r?e.items.push({start:i,key:null,sep:[this.sourceToken]}):Ql(t.sep,`map-value-ind`)?this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);r||t.value?(e.items.push({start:i,key:n,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(n):(Object.assign(t,{key:n,sep:[]}),this.onKeyLine=!0);return}default:{let r=this.startBlockValue(e);if(r){if(r.type===`block-seq`){if(!t.explicitKey&&t.sep&&!Ql(t.sep,`newline`)){yield*this.pop({type:`error`,offset:this.offset,message:`Unexpected block-seq-ind on same line with key`,source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(r);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){ru(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case`anchor`:case`tag`:if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case`seq-item-ind`:if(this.indent!==e.indent)break;t.value||Ql(t.start,`seq-item-ind`)?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type===`flow-error-end`){let e;do yield*this.pop(),e=this.peek(1);while(e?.type===`flow-collection`)}else if(e.end.length===0){switch(this.type){case`comma`:case`explicit-key-ind`:!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case`map-value-ind`:!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case`space`:case`comment`:case`newline`:case`anchor`:case`tag`:!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]});return}case`flow-map-end`:case`flow-seq-end`:e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let t=this.peek(2);if(t.type===`block-map`&&(this.type===`map-value-ind`&&t.indent===e.indent||this.type===`newline`&&!t.items[t.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type===`map-value-ind`&&t.type!==`flow-collection`){let n=nu(tu(t));iu(e);let r=e.end.splice(1,e.end.length);r.push(this.sourceToken);let i={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf(`
169
169
  `)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
170
- `,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=nu(tu(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=nu(tu(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}};function ou(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new Zl||null,prettyErrors:t}}function su(e,t={}){let{lineCounter:n,prettyErrors:r}=ou(t),i=new au(n?.addNewLine),a=new Ll(t),o=null;for(let t of a.compose(i.parse(e),!0,e.length))if(!o)o=t;else if(o.options.logLevel!==`silent`){o.errors.push(new $c(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return r&&n&&(o.errors.forEach(tl(e,n)),o.warnings.forEach(tl(e,n))),o}function cu(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let i=su(e,n);if(!i)return null;if(i.warnings.forEach(e=>Ms(i.options.logLevel,e)),i.errors.length>0){if(i.options.logLevel!==`silent`)throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}e(((e,t)=>{t.exports={}}))();var Y=L(`kind`,[F({kind:B(`gezel`),gezelId:k()}),F({kind:B(`user`)})]),lu=[`tiny`,`small`,`medium`,`large`,`cloud`],uu=I([z([`llm`,`network`,`workspace.read`,`workspace.write`,`artifacts.read`,`artifacts.write`,`documents.read`,`documents.write`,`tasks.read`,`tasks.write`,`memory.read`,`memory.write`]),k().regex(/^credential:[a-zA-Z][\w.:-]*$/,`credential capability must be of the form "credential:<name>" where <name> starts with a letter and contains letters, digits, underscore, hyphen, dot, or colon`)]);function du(e){return e.startsWith(`credential:`)}function fu(e){return du(e)?e.slice(11):null}var pu=L(`type`,[F({type:B(`string`),description:k(),required:M().optional(),default:k().optional(),pattern:k().optional(),multiline:M().optional()}),F({type:B(`number`),description:k(),required:M().optional(),default:j().optional(),min:j().optional(),max:j().optional(),integer:M().optional()}),F({type:B(`boolean`),description:k(),required:M().optional(),default:M().optional()}),F({type:B(`choice`),description:k(),required:M().optional(),default:k().optional(),options:P(F({value:k(),label:k().optional()})).min(1)}),F({type:B(`ref`),description:k(),required:M().optional(),kind:z([`gezel`,`task`,`artifact`,`document`])}),F({type:B(`json`),description:k(),required:M().optional(),default:N().optional(),schema:N().optional()})]),mu=R(k(),pu),hu=L(`type`,[F({type:B(`string`),description:k(),nullable:M().optional()}),F({type:B(`number`),description:k(),nullable:M().optional()}),F({type:B(`boolean`),description:k(),nullable:M().optional()}),F({type:B(`array`),description:k(),itemType:z([`string`,`number`,`boolean`,`object`])}),F({type:B(`object`),description:k(),schema:N().optional()}),F({type:B(`json`),description:k(),schema:N().optional()})]),gu=R(k(),hu),_u=F({name:k().regex(/^[a-zA-Z][\w-]*$/,`name must start with a letter and contain only letters, digits, underscore, or hyphen`),description:k().min(10),kind:z([`action`,`gate`]).optional(),inputs:mu.optional(),outputs:gu.optional(),requires:P(uu).optional()}),vu=z([`project`,`craftbook`,`user`,`standard`]),yu=L(`op`,[F({op:B(`always`)}),F({op:B(`never`)}),F({op:B(`ok`)}),F({op:B(`equals`),field:k().min(1),value:I([k(),j(),M(),Na()])}),F({op:B(`exists`),field:k().min(1),negate:M().optional()}),F({op:B(`gt`),field:k().min(1),value:j()})]),bu=F({name:k().min(1),scope:vu.optional(),inputs:R(k(),N()).optional(),autoAdvanceOnSuccess:M().optional(),autoAdvanceWhen:yu.optional()}),xu=I([bu,P(bu)]);function Su(e){return e===void 0?[]:Array.isArray(e)?e:[e]}var Cu=z([`running`,`ok`,`error`]),wu=F({at:k(),kind:k(),argsSummary:k(),outputSummary:k().optional(),durationMs:j().nonnegative(),error:k().optional()}),Tu=L(`kind`,[F({kind:B(`step`),taskRef:k(),stepId:k(),moment:z([`enter`,`exit`,`gate`])}),F({kind:B(`chat`),sessionId:k(),gezelId:k()}),F({kind:B(`manual`),userInitiated:B(!0)}),F({kind:B(`nested`),parentRunId:k()}),F({kind:B(`connector`),typeId:k(),bindingId:k()}),F({kind:B(`page`),tool:k()})]);F({id:k(),projectId:k(),scriptName:k(),startedAt:k(),finishedAt:k().optional(),status:Cu,trigger:Tu,inputs:R(k(),N()),output:N().optional(),calls:P(wu),logs:k(),error:k().optional()}),F({name:k().min(1),scope:vu.optional(),input:R(k(),N()).optional()});var Eu=F({runId:k(),status:Cu,output:N().optional(),callsSummary:P(F({kind:k(),durationMs:j().nonnegative(),error:k().optional()})),error:k().optional()});F({tool:k().regex(/^[a-z][a-z0-9_]*$/),input:R(k(),N()).optional()}),Eu.extend({reaction:F({delivered:M(),gezelId:k().optional(),reason:k().optional()}).optional()}),F({op:z([`read`,`list`,`stat`]),source:z([`workspace`,`artifacts`]),path:k().min(1),as:z([`text`,`json`,`bytes`]).optional(),maxBytes:j().int().positive().optional()});var Du=F({name:k(),kind:z([`file`,`dir`]),size:j().nonnegative(),mtime:j().nonnegative()});F({op:z([`read`,`list`,`stat`]),content:k().optional(),encoding:z([`utf8`,`base64`]).optional(),entries:P(Du).optional(),etag:k(),size:j().nonnegative().optional(),mtime:j().nonnegative().optional()}),F({scripts:P(F({name:k(),meta:_u,path:k()}))});var Ou=k().regex(/^[a-zA-Z][\w-]*$/,`script name must start with a letter and contain only letters, digits, underscore, or hyphen`),ku=F({severity:z([`error`,`warning`,`info`]),source:z([`meta`,`typescript`,`runtime-compat`]),message:k(),line:j().optional(),column:j().optional()}),Au=F({kind:z([`craftbook`,`import`,`user`,`standard`]),ref:k()});F({name:Ou,source:k(),hash:k(),mtimeMs:j(),meta:_u.optional(),metaError:k().optional(),provenance:Au.optional()}),F({name:Ou,source:k(),baseHash:k().optional()}),L(`status`,[F({status:B(`saved`),hash:k(),metaOk:M(),meta:_u.optional(),diagnostics:P(ku)}),F({status:B(`conflict`),currentHash:k(),currentSource:k()})]);var ju=z([`blank`,`post-message`,`fetch-and-summarize`,`check-files`,`call-tool`,`ask-ai`]);F({name:Ou,description:k().optional(),template:ju.optional(),source:k().optional()}),F({name:Ou,source:k(),hash:k()}),F({version:k(),files:P(F({name:k(),content:k()}))}),F({name:Ou,description:k().min(1)}),F({source:k()});var Mu=z([`html-complete`,`html-game`,`nonempty`,`json-valid`,`data-table`]),Nu=I([k(),j(),M(),Na()]),Pu=L(`kind`,[F({kind:B(`minBytes`),file:k().min(1),bytes:j().int().positive(),artifact:M().optional()}),F({kind:B(`totalMinBytes`),files:P(k().min(1)).min(1),bytes:j().int().positive()}),F({kind:B(`fileCount`),ext:P(k().min(1)).min(1),min:j().int().positive(),dir:k().optional(),verifyImageBytes:M().optional()}),F({kind:B(`cssMinBytes`),bytes:j().int().positive(),file:k().optional()}),F({kind:B(`sniff`),file:k().min(1),sniff:Mu,artifact:M().optional()}),F({kind:B(`jsonPathEquals`),file:k().min(1),path:k().min(1),value:Nu,label:k().min(1).optional()}),F({kind:B(`csvShape`),file:k().min(1),requiredColumns:P(k().min(1)).min(1).optional(),exactColumns:P(k().min(1)).min(1).optional(),minRows:j().int().nonnegative().optional(),consistentColumns:M().optional(),allowedValues:R(k(),P(k().min(1)).min(1)).optional()}),F({kind:B(`contains`),file:k().min(1),pattern:k().min(1),flags:k().optional(),label:k().min(1).optional(),artifact:M().optional()}),F({kind:B(`notContains`),file:k().min(1),pattern:k().min(1),flags:k().optional(),label:k().min(1).optional(),artifact:M().optional()}),F({kind:B(`unsupportedClaims`),file:k().min(1),sourceFiles:P(k().min(1)).min(1),patterns:P(F({pattern:k().min(1),label:k().min(1).optional()})).min(1),flags:k().optional()}),F({kind:B(`jsParses`),file:k().optional()}),F({kind:B(`htmlLint`),file:k().min(1)}),F({kind:B(`esmImports`),file:k().min(1)}),F({kind:B(`sourceParses`),file:k().min(1)}),F({kind:B(`tableShape`),file:k().min(1),requiredColumns:P(k().min(1)).min(1).optional(),minRows:j().int().nonnegative().optional(),artifact:M().optional()}),F({kind:B(`recordSchema`),file:k().min(1),fields:P(F({name:k().min(1),type:k().optional(),required:M().optional()})).min(1),minRows:j().int().nonnegative().optional(),uniqueBy:k().optional(),format:z([`json`,`csv`,`auto`]).optional(),artifact:M().optional()}),F({kind:B(`nodeRuns`),file:k().min(1),timeoutMs:j().int().positive().max(6e4).optional()}),F({kind:B(`citationsResolve`),file:k().min(1),pattern:k().min(1).optional(),flags:k().optional(),minCitations:j().int().nonnegative().optional(),corpus:P(k().min(1)).min(1).optional(),artifact:M().optional()}),F({kind:B(`researchEvidence`),sourcePath:k().optional(),tools:P(k().min(1)).min(1),minSuccessful:j().int().positive().optional()}),F({kind:B(`corpusCoverage`),file:k().min(1),corpusDir:k().min(1),reviewedField:k().min(1).optional(),recordField:k().min(1).optional()}),F({kind:B(`markdownHeadingsMatch`),file:k().min(1),outlineFile:k().min(1),outlineArtifact:M().optional()}),F({kind:B(`valueGrounding`),file:k().min(1),facts:P(F({id:k().min(1),label:k().min(1).optional(),required:P(k().min(1)).min(1),forbidden:P(k().min(1)).optional()})).min(1),normalizeDigits:M().optional(),artifact:M().optional()}),F({kind:B(`valuesSubsetOf`),file:k().min(1),sourceFiles:P(k().min(1)).min(1),pattern:k().min(1),flags:k().optional(),minMatches:j().int().nonnegative().optional(),artifact:M().optional()}),F({kind:B(`judge`),file:k().min(1),rubric:k().min(1),sourceFiles:P(k().min(1)).optional(),requireEvidence:M().optional(),advisory:M().optional(),timeoutMs:j().int().positive().max(12e4).optional(),label:k().min(1).optional(),artifact:M().optional()}),F({kind:B(`planStructure`),file:k().min(1),minRows:j().int().positive().optional(),ownerRoster:P(k().min(1)).optional(),requireEarlierOnly:M().optional(),doneWhenMinChars:j().int().positive().optional(),artifact:M().optional()})]);F({verdict:z([`pass`,`fail`]),reasons:P(k().min(1)).max(5),evidence:P(k()).default([]),confidence:z([`low`,`medium`,`high`]).optional()});var Fu=F({checks:P(Pu).min(1),onFail:k().optional(),onPass:k().optional(),maxAttempts:j().int().positive().optional(),reviewer:k().optional()}),Iu=F({name:k().min(1),scope:vu.optional(),inputs:R(k(),N()).optional()});F({decision:z([`approve`,`reject`]),message:k().optional(),goto:k().optional(),handoff:F({message:k(),params:R(k(),N()).optional()}).optional()}).superRefine((e,t)=>{e.decision===`reject`&&!e.message?.trim()&&t.addIssue({code:V.custom,message:`a reject result must carry a message — it is the prescriptive guidance the working session uses to fix the step`,path:[`message`]})});var Lu=I([F({at:z([`completion`,`activation`]),checks:P(Pu).optional(),scripts:P(Iu).optional(),onReject:k().optional(),onApprove:k().optional(),maxAttempts:j().int().positive().optional(),reviewer:k().optional()}).superRefine((e,t)=>{!e.checks?.length&&!e.scripts?.length&&t.addIssue({code:V.custom,message:`a gate needs at least one check or one script`})}),Fu]);function Ru(e){return!(`at`in e)}function zu(e){return Ru(e)?{at:`activation`,checks:e.checks,scripts:[],...e.onFail===void 0?{}:{onReject:e.onFail},...e.onPass===void 0?{}:{onApprove:e.onPass},maxAttempts:e.maxAttempts??4,...e.reviewer===void 0?{}:{reviewer:e.reviewer},legacy:!0}:{at:e.at,checks:e.checks??[],scripts:e.scripts??[],...e.onReject===void 0?{}:{onReject:e.onReject},...e.onApprove===void 0?{}:{onApprove:e.onApprove},maxAttempts:e.maxAttempts??4,...e.reviewer===void 0?{}:{reviewer:e.reviewer},legacy:!1}}function Bu(e){let t=zu(e);return[t.onReject,t.onApprove].filter(e=>e!==void 0)}var Vu=z([`PreToolUse`,`PostToolUse`]),Hu=z([`allow`,`deny`,`ask`]),Uu=F({phase:Vu,matcher:k().default(`.*`),script:bu.optional(),decision:Hu.optional(),label:k().optional()}).superRefine((e,t)=>{let n=e.script!==void 0;n===(e.decision!==void 0)&&t.addIssue({code:V.custom,message:"a hook must set exactly one of `script` or `decision`",path:[n?`decision`:`script`]})});F({decision:Hu.default(`allow`),message:k().optional()});var Wu=F({when:yu,goto:k()}),Gu=F({file:k().min(1),minBytes:j().int().positive().optional(),sniff:Mu.optional(),requireChange:M().optional(),artifact:M().optional(),goto:k().optional()}),Ku=F({file:k().min(1).describe(`Path relative to the selected drawer root.`),artifact:M().optional().describe(`True for the artifacts drawer; false/omitted for the project workspace.`)}),qu=z(lu),Ju=F({id:k().min(1),name:k().min(1),description:k().optional(),prompt:k().optional(),suggestedGezelId:k().optional(),suggestedRole:k().optional(),capabilityFloor:qu.optional(),assignee:Y.optional(),onEnter:xu.optional(),onExit:xu.optional(),consumes:P(Ku).min(1).optional().describe("Files this step must open before working. Artifact inputs also require an explicit `read_artifact` call in the step prompt."),advanceWhen:Gu.optional(),gate:Lu.optional(),next:k().optional(),branches:P(Wu).optional(),terminal:M().optional(),spawnFanout:M().optional()}),Yu=F({overFile:k().min(1),overArtifact:M().optional(),itemsPath:k().optional(),entryStepId:k().optional(),steps:P(Ju).min(1)});function Xu(e){let t=[],n=new Set;for(let r of e.steps)n.has(r.id)&&t.push(`duplicate step id "${r.id}"`),n.add(r.id),r.terminal&&(r.next||r.branches&&r.branches.length>0)&&t.push(`step "${r.id}" is terminal but also has next/branches`);n.has(e.entryStepId)||t.push(`entryStepId "${e.entryStepId}" not in steps`);for(let r of e.steps){r.next&&!n.has(r.next)&&t.push(`step "${r.id}".next "${r.next}" missing from steps`);for(let e of r.branches??[])n.has(e.goto)||t.push(`step "${r.id}" branch goto "${e.goto}" missing from steps`);r.advanceWhen&&(r.terminal&&t.push(`step "${r.id}" is terminal but also has advanceWhen`),r.advanceWhen.goto&&!n.has(r.advanceWhen.goto)&&t.push(`step "${r.id}" advanceWhen.goto "${r.advanceWhen.goto}" missing from steps`));for(let e of r.consumes??[])e.artifact&&(/`read_artifact(?:`|\()/.test(r.prompt??``)||t.push(`step "${r.id}" consumes artifact "${e.file}" but its prompt does not explicitly call \`read_artifact\``));if(r.gate){let e=zu(r.gate);r.terminal&&e.at===`activation`&&t.push(`step "${r.id}" is terminal but also has an activation gate`);for(let e of Bu(r.gate))n.has(e)||t.push(`step "${r.id}" gate route "${e}" missing from steps`)}}return t}function Zu(e,t){for(let n of Xu(e))t.addIssue({code:V.custom,message:n,path:n.startsWith(`entryStepId`)?[`entryStepId`]:[`steps`]});for(let n of od(e))t.addIssue({code:V.custom,message:n,path:[`steps`]})}var Qu=L(`kind`,[F({kind:B(`github`)}),F({kind:B(`non-main-branch`)})]),$u=F({scheduled:z([`supported`,`recommended`]).optional(),nightShift:z([`supported`,`recommended`]).optional()}),ed=F({toolsetId:k().min(1),sourceId:k().optional(),minVersion:k().optional(),optional:M().optional(),autoAllow:M().optional(),reason:k().optional()}),td=F({typeId:k().min(1),sourceId:k().optional(),optional:M().optional(),reason:k().optional()}),nd=64*1024,rd=256*1024,id=R(Ou,k().min(1).max(nd)).superRefine((e,t)=>{let n=Object.keys(e);n.length>24&&t.addIssue({code:V.custom,message:`a craftbook carries at most 24 scripts (got ${n.length})`});let r=0;for(let t of n)r+=e[t].length;r>262144&&t.addIssue({code:V.custom,message:`craftbook scripts total ${r} bytes \u2014 the ceiling is ${rd}`})}),ad=F({name:k().min(1),url:k().url().regex(/^https?:\/\//i,`basedOn.url must use http or https`)});function od(e){if(!e.scripts)return[];let t=[],n=new Set(Object.keys(e.scripts)),r=(e,r,i)=>{for(let a of i)(a.scope??`project`)===`craftbook`&&!n.has(a.name)&&t.push(`step "${e}" ${r} references craftbook script "${a.name}" which is not in the scripts map${n.size>0?` (available: ${[...n].join(`, `)})`:``}`)};for(let t of e.steps)r(t.id,`onEnter`,Su(t.onEnter)),r(t.id,`onExit`,Su(t.onExit)),t.gate&&r(t.id,`gate`,zu(t.gate).scripts);return t}var sd=F({id:k().min(1),name:k().min(1),description:k().optional(),version:k().optional(),basedOn:ad.optional(),plan:k().optional(),defaultAssignee:Y.optional(),steps:P(Ju).min(1),entryStepId:k().min(1),triggers:P(k()).optional(),hooks:P(Uu).optional(),paramSchema:R(k(),N()).optional(),command:k().regex(/^[a-z][a-z0-9-]*$/).optional(),requirements:P(Qu).optional(),runModes:$u.optional(),toolsets:P(ed).optional(),connectors:P(td).optional(),scripts:id.optional(),spawn:Yu.optional(),createdAt:k(),updatedAt:k()}).superRefine(Zu),cd=z([`html-game`,`html-multiscreen-game`,`html-page`,`html-marketing-site`,`markdown-doc`,`markdown-report`,`markdown-notes`,`json`,`yaml-spec`,`code-module`,`code-with-tests`,`security-report`,`image-set`,`audio-file`,`slide-deck`,`data-file`,`generic-file`]),ld=F({path:k().min(1),kind:cd.optional(),minBytes:j().int().positive().optional(),maxAttempts:j().int().positive().optional(),artifact:M().optional(),requireChange:M().optional(),execute:M().optional(),columns:P(k().min(1)).min(1).optional(),minRows:j().int().positive().optional()}),ud=F({id:k().optional(),name:k().min(1),description:k().optional(),prompt:k().optional(),suggestedGezelId:k().optional(),suggestedRole:k().optional(),capabilityFloor:qu.optional(),assignee:Y.optional(),onEnter:xu.optional(),onExit:xu.optional(),consumes:P(Ku).min(1).optional().describe("Files this step must open before working. Artifact inputs also require an explicit `read_artifact` call in the step prompt."),advanceWhen:Gu.optional(),gate:Lu.optional(),deliverable:ld.optional(),next:k().optional(),branches:P(Wu).optional(),terminal:M().optional(),spawnFanout:M().optional()});F({id:k().optional(),name:k().min(1),description:k().optional(),basedOn:ad.optional(),plan:k().optional(),defaultAssignee:Y.optional(),steps:P(ud).min(1),entryStepId:k().optional(),paramSchema:R(k(),N()).optional(),command:k().regex(/^[a-z][a-z0-9-]*$/).optional(),requirements:P(Qu).optional(),runModes:$u.optional(),toolsets:P(ed).optional(),scripts:id.optional()}),F({name:k().min(1).optional(),description:k().nullable().optional(),basedOn:ad.nullable().optional(),plan:k().nullable().optional(),defaultAssignee:Y.nullable().optional(),steps:P(ud).min(1).optional(),entryStepId:k().optional(),paramSchema:R(k(),N()).nullable().optional(),command:k().regex(/^[a-z][a-z0-9-]*$/).nullable().optional(),requirements:P(Qu).nullable().optional(),runModes:$u.nullable().optional(),toolsets:P(ed).nullable().optional(),scripts:id.nullable().optional()}),F({craftbooks:P(F({id:k(),name:k(),description:k().optional(),version:k().optional(),basedOn:ad.optional(),source:z([`bundled`,`local`,`project`]),stepCount:j().int().nonnegative()}))}),F({installedBy:B(`project-type`),typeId:k(),typeVersion:k(),bookVersion:k(),contentHash:k(),installedAt:k()}),F({suggestions:P(F({id:k(),name:k(),description:k().optional(),source:z([`bundled`,`local`,`project`]),version:k().optional(),basedOn:ad.optional(),stepCount:j().int().nonnegative(),tags:P(k()).optional(),triggers:P(k()).optional(),score:j(),semantic:j().optional(),lexical:j()}))}),F({craftbook:sd});function dd(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,64)||`step`}F({after:k().optional(),before:k().optional(),index:j().int().nonnegative().optional()});function fd(e,t,n){let r=new Set(e.map(e=>e.id)),i=n&&n.length>0?n:dd(t),a=i,o=2;for(;r.has(i);)i=`${a}-${o++}`;return i}function pd(e,t){let n=new Map(e.map(e=>[e.id,e]));if(t.length!==e.length)throw Error(`reorder must list all ${e.length} step ids (got ${t.length})`);let r=[],i=new Set;for(let e of t){let t=n.get(e);if(!t)throw Error(`reorder references unknown step id "${e}"`);if(i.has(e))throw Error(`reorder lists step id "${e}" twice`);i.add(e),r.push(t)}return r}function md(e,t){let n={...e};if(n.next===t&&delete n.next,n.branches){let e=n.branches.filter(e=>e.goto!==t);e.length>0?n.branches=e:delete n.branches}if(n.advanceWhen?.goto===t&&(n.advanceWhen={...n.advanceWhen},delete n.advanceWhen.goto),n.gate&&Bu(n.gate).includes(t)){let e={...n.gate};Ru(e)?(e.onFail===t&&delete e.onFail,e.onPass===t&&delete e.onPass):(e.onReject===t&&delete e.onReject,e.onApprove===t&&delete e.onApprove),n.gate=e}return n}function hd(e,t){if(!e.some(e=>e.id===t))throw Error(`step "${t}" not found`);let n=e.filter(e=>e.id!==t);if(n.length===0)throw Error(`cannot remove the last step of a craftbook`);return n.map(e=>md(e,t))}function gd(e,t){let n={...e};return t.name!==void 0&&(n.name=t.name),t.description!==void 0&&(t.description===``?delete n.description:n.description=t.description),t.prompt!==void 0&&(t.prompt===``?delete n.prompt:n.prompt=t.prompt),t.suggestedRole!==void 0&&(t.suggestedRole===null||t.suggestedRole===``?delete n.suggestedRole:n.suggestedRole=t.suggestedRole),t.capabilityFloor!==void 0&&(t.capabilityFloor===null?delete n.capabilityFloor:n.capabilityFloor=t.capabilityFloor),t.assignee!==void 0&&(t.assignee===null?delete n.assignee:n.assignee=t.assignee),t.suggestedGezelId!==void 0&&(t.suggestedGezelId===null?delete n.suggestedGezelId:n.suggestedGezelId=t.suggestedGezelId),t.onEnter!==void 0&&(t.onEnter===null||Array.isArray(t.onEnter)&&t.onEnter.length===0?delete n.onEnter:n.onEnter=t.onEnter),t.onExit!==void 0&&(t.onExit===null||Array.isArray(t.onExit)&&t.onExit.length===0?delete n.onExit:n.onExit=t.onExit),t.consumes!==void 0&&(t.consumes===null||t.consumes.length===0?delete n.consumes:n.consumes=t.consumes),t.advanceWhen!==void 0&&(t.advanceWhen===null?delete n.advanceWhen:n.advanceWhen=t.advanceWhen),t.gate!==void 0&&(t.gate===null?delete n.gate:n.gate=t.gate),t.next!==void 0&&(t.next===null||t.next===``?delete n.next:n.next=t.next),t.branches!==void 0&&(t.branches===null||t.branches.length===0?delete n.branches:n.branches=t.branches),t.terminal!==void 0&&(t.terminal?n.terminal=!0:delete n.terminal),n}F({id:k().optional(),name:k().min(1),description:k().optional(),basedOn:ad.optional(),plan:k().optional(),entryStepId:k().optional(),triggers:P(k()).optional(),command:k().regex(/^[a-z][a-z0-9-]*$/).optional(),defaultAssignee:Y.optional(),requirements:P(Qu).optional(),runModes:$u.optional(),toolsets:P(ed).optional(),connectors:P(td).optional(),paramSchema:R(k(),N()).optional(),hooks:P(Uu).optional(),steps:P(ud).min(1),spawn:Yu.optional(),scripts:id.optional(),version:k().optional(),releasedAt:k().optional(),minGezelVersion:k().optional()});var _d={broad:{baseW:46,hipW:52,waistW:52,chestW:56,shoulderW:54,label:`broad`,note:`Barrel torso, broad through the shoulders. Reads adult, sturdy.`},tapered:{baseW:58,hipW:52,waistW:46,chestW:38,shoulderW:32,label:`tapered`,note:`Classic peg-doll cone. Wide base, smooth taper to a narrow top.`},curvy:{baseW:48,hipW:60,waistW:34,chestW:46,shoulderW:36,label:`curvy`,note:`Hourglass — hip flare, pinched waist, narrower shoulders.`},athletic:{baseW:38,hipW:40,waistW:42,chestW:54,shoulderW:56,label:`athletic`,note:`V-shape. Wider chest and shoulders, narrower waist and hips.`},slender:{baseW:46,hipW:42,waistW:34,chestW:36,shoulderW:32,label:`slender`,note:`Narrow throughout. Reads tall and lean.`},stout:{baseW:62,hipW:64,waistW:62,chestW:58,shoulderW:50,label:`stout`,note:`Wide throughout. Reads grounded, generous.`}},vd=Object.keys(_d),yd={adult:{bodyScale:1,headScale:1,label:`adult`,note:`Standard crew member.`},shorter:{bodyScale:.88,headScale:.98,label:`shorter`,note:`Older or simply shorter adult.`},child:{bodyScale:.78,headScale:.96,label:`child`,note:`Short body, head reads proportionally larger.`},toddler:{bodyScale:.76,headScale:.95,label:`toddler`,note:`Smallest. Mostly head.`}},bd=Object.keys(yd),xd={none:{skip:!0},straight:{dispScale:0,opacity:.18,soften:.28,streakFreq:`0.13 0.018`},wavy:{dispScale:3.2,opacity:.23,soften:.3,streakFreq:`0.12 0.016`},pronounced:{dispScale:4.8,opacity:.31,soften:.24,streakFreq:`0.14 0.018`},character:{dispScale:6.4,opacity:.42,soften:.18,streakFreq:`0.16 0.02`}},Sd=[`cap`,`beanie`,`kerchief`,`straw`,`newsboy`,`hood`],Cd=[`scarf`,`apron`,`collar`,`turtleneck`],wd=[`halo`,`short`,`long`,`bun`,`braids`,`shaved`,`bald`],Td=`glasses.sunglasses.cateye.readers.monocle.eyepatch.earrings.earring-left.earring-right.flower.hairclip.headband.bowtie.necklace.brooch.facemask.goggles.safety-glasses.pince-nez.headphones.hearing-aid.nose-ring.hoop-earrings.drop-earrings.pearl-earrings.bandage.feather.pencil.ribbon.necktie.cravat.bolo-tie.lanyard.medal.pocket-square.tool-pendant`.split(`.`),Ed={common:12,uncommon:6,rare:2,veryRare:.5},Dd={glasses:{rarity:`common`},sunglasses:{rarity:`uncommon`},cateye:{rarity:`uncommon`},readers:{rarity:`uncommon`},monocle:{rarity:`veryRare`},eyepatch:{rarity:`veryRare`},earrings:{rarity:`common`},"earring-left":{rarity:`rare`,byGender:{female:`veryRare`}},"earring-right":{rarity:`rare`,byGender:{female:`veryRare`}},flower:{rarity:`uncommon`},hairclip:{rarity:`uncommon`},headband:{rarity:`uncommon`},bowtie:{rarity:`rare`},necklace:{rarity:`common`},brooch:{rarity:`rare`},facemask:{rarity:`rare`},goggles:{rarity:`uncommon`},"safety-glasses":{rarity:`common`},"pince-nez":{rarity:`rare`},headphones:{rarity:`common`},"hearing-aid":{rarity:`common`},"nose-ring":{rarity:`uncommon`},"hoop-earrings":{rarity:`uncommon`},"drop-earrings":{rarity:`uncommon`},"pearl-earrings":{rarity:`common`},bandage:{rarity:`uncommon`},feather:{rarity:`uncommon`},pencil:{rarity:`common`},ribbon:{rarity:`common`},necktie:{rarity:`common`},cravat:{rarity:`rare`},"bolo-tie":{rarity:`uncommon`},lanyard:{rarity:`common`},medal:{rarity:`rare`},"pocket-square":{rarity:`uncommon`},"tool-pendant":{rarity:`uncommon`}},Od={scarf:`common`,apron:`veryRare`,collar:`common`,turtleneck:`common`},kd=[`beard`,`mustache`],Ad=[`freckles`,`mole`],jd=[`plain`,`buttons`,`stripes`,`sash`,`yoke`,`twotone`],Md=[{felt:`#a8554a`,band:`#7c3a32`},{felt:`#c9973f`,band:`#96702c`},{felt:`#5d7257`,band:`#42523e`},{felt:`#4e6586`,band:`#374a64`},{felt:`#43474e`,band:`#2e3138`},{felt:`#8a5a78`,band:`#64405a`}],Nd=[`smile`,`wider`,`neutral`,`wink`,`sleepy`],Pd={skins:[{skin:`#ecd5b8`,skin2:`#b8a080`},{skin:`#dbb898`,skin2:`#a98870`},{skin:`#e6c7a8`,skin2:`#b89478`},{skin:`#d4b896`,skin2:`#a48c6c`},{skin:`#c79775`,skin2:`#9d7050`},{skin:`#9c6b48`,skin2:`#7a5236`},{skin:`#a87852`,skin2:`#7d5436`},{skin:`#5d3a24`,skin2:`#3d2418`}],hairs:[`#1a1410`,`#2a1d12`,`#3a2418`,`#5a3a1c`,`#7a5230`,`#a87042`,`#cc7744`,`#d4a060`,`#9a948a`,`#dcd5c8`,`#1f1812`],shirts:[{shirt:`#94a87c`,accent:`#5c6a4a`},{shirt:`#6d7d54`,accent:`#46543a`},{shirt:`#d07c56`,accent:`#9a4e30`},{shirt:`#b65843`,accent:`#7e382a`},{shirt:`#d2a350`,accent:`#9a6c28`},{shirt:`#dcc06e`,accent:`#a8863a`},{shirt:`#5b7cab`,accent:`#2a4670`},{shirt:`#549191`,accent:`#2f5f5f`},{shirt:`#7d8794`,accent:`#4a5360`},{shirt:`#9d6890`,accent:`#5a3850`},{shirt:`#c28b8b`,accent:`#8f5454`},{shirt:`#7a9a62`,accent:`#4a6a3a`}]},Fd={hat:.3,dress:.22,accessory:.5,facialHair:.18,mark:.2,shirtPattern:.66},Id=[{scale:`adult`,upTo:.52},{scale:`shorter`,upTo:.8},{scale:`child`,upTo:.93},{scale:`toddler`,upTo:1}];function Ld(e){if(!e||typeof e!=`object`)return e;let t={...e},n=t.accessory;return n===`beard`||n===`mustache`?(t.facialHair??=n,t.accessory=null):n===`freckles`||n===`mole`?(t.mark??=n,t.accessory=null):n===`earring`&&(t.accessory=`earrings`),t}var Rd=xo(Ld,F({key:k().min(1),name:k(),bodyShape:z(vd),figureScale:z(bd),skin:k(),skin2:k(),hair:k(),hairShape:z(wd),hat:z(Sd).nullable().optional().default(null),dress:z(Cd).nullable().optional().default(null),accessory:z(Td).nullable().optional().default(null),facialHair:z(kd).nullable().optional().default(null),mark:z(Ad).nullable().optional().default(null),expression:z(Nd).optional().default(`smile`),shirt:k(),shirtAccent:k(),shirtPattern:z(jd).optional().default(`plain`)})),zd=z([`default`,`acceptEdits`,`plan`,`bypassPermissions`]),Bd=z([`plan`,`edit`,`reviewed`,`full`]),Vd=I([Bd,z([`default`,`acceptEdits`,`bypassPermissions`])]);function Hd(e){switch(e){case`plan`:return`plan`;case`reviewed`:return`reviewed`;case`full`:case`bypassPermissions`:return`full`;case`edit`:case`default`:case`acceptEdits`:case void 0:return`edit`}}var Ud=/^[A-Za-z0-9@][A-Za-z0-9@._-]{0,199}$/,Wd=new Set([`CON`,`PRN`,`AUX`,`NUL`,`COM1`,`COM2`,`COM3`,`COM4`,`COM5`,`COM6`,`COM7`,`COM8`,`COM9`,`LPT1`,`LPT2`,`LPT3`,`LPT4`,`LPT5`,`LPT6`,`LPT7`,`LPT8`,`LPT9`]);function Gd(e){if(typeof e!=`string`||!Ud.test(e))return!1;let t=(e.split(`.`)[0]??``).toUpperCase();return!Wd.has(t)}var Kd=k().refine(Gd,{message:`must be a portable single-segment entity id`}),qd=k().min(1).describe(`Canonical tuning profile id.`),Jd=`thinking-general`,Yd={"thinking-general":{id:`thinking-general`,label:`Thinking — General`,description:`Reasoning mode for general analytical tasks.`,kind:`thinking`,fallbackChain:[`instruct`]},"thinking-coding":{id:`thinking-coding`,label:`Thinking — Coding`,description:`Reasoning mode tuned for precise coding tasks.`,kind:`thinking`,fallbackChain:[`thinking-general`,`instruct`]},"thinking-precise":{id:`thinking-precise`,label:`Thinking — Precise`,description:`Low-temperature reasoning for structured output and fact-checking.`,kind:`thinking`,fallbackChain:[`thinking-coding`,`thinking-general`,`instruct`]},instruct:{id:`instruct`,label:`Instruct`,description:`Non-thinking instruct mode for direct answers.`,kind:`instruct`,fallbackChain:[]},creative:{id:`creative`,label:`Creative`,description:`Higher-temperature mode for creative writing.`,kind:`instruct`,fallbackChain:[`instruct`]},terse:{id:`terse`,label:`Terse`,description:`Short replies; low temperature, limited tokens.`,kind:`instruct`,fallbackChain:[`instruct`]},deterministic:{id:`deterministic`,label:`Deterministic`,description:`Temperature 0 for reproducible output (debugging, evals).`,kind:`instruct`,fallbackChain:[`instruct`]}};function Xd(e){return e in Yd}function Zd(e,t){if(!e)return;let n=t instanceof Set?t:new Set(t);if(Xd(e)){if(n.has(e))return e;for(let t of Yd[e].fallbackChain)if(n.has(t))return t}}var Qd=F({day:k().regex(/^\d{4}-\d{2}-\d{2}$/),kind:z([`fact`,`decision`,`pref`,`status`]),excerpt:k().min(1).max(400)}),$d=F({id:k(),kind:B(`trait`),title:k().min(1).max(80),traitText:k().min(1).max(200),evidence:P(Qd).min(1).max(3)}),ef=L(`type`,[F({type:B(`profile`),profile:qd}),F({type:B(`temperature`),delta:I([B(.1),B(-.1)])})]),tf=L(`kind`,[$d,F({id:k(),kind:B(`tuning`),title:k().max(80),description:k().max(300),action:ef}),F({id:k(),kind:B(`cosmetic`),title:k().max(80),cosmeticId:k()})]),nf=F({toLevel:j().int().min(2),proposals:P(tf).min(1).max(5),createdAt:k()}),rf=F({memoryXp:j().int().nonnegative().default(0),lessonsXp:j().int().nonnegative().default(0),taskXp:j().int().nonnegative().default(0),consultXp:j().int().nonnegative().default(0)}),af=F({traitId:k(),text:k(),level:j().int(),adoptedAt:k(),evidence:P(Qd),removedAt:k().optional()}),of=F({kind:z([`trait`,`tuning`,`cosmetic`]),title:k(),traitText:k().optional(),level:j().int(),declinedAt:k()}),sf=F({version:B(1).default(1),level:j().int().min(1).default(1),xp:j().int().nonnegative().default(0),signals:rf.prefault({}),lastComputedAt:k().optional(),pendingLevelUp:nf.optional(),adoptedTraits:P(af).default([]),declinedProposals:P(of).default([]),unlockedCosmetics:P(F({id:k(),at:k()})).default([])}),cf=F({level:j().int().min(1),pending:M().optional()}),lf=[0,100,250,500,900,1500,2400,3700,5500,8e3],uf=3e3;function df(e){return e<=1?0:e<=lf.length?lf[e-1]:lf[lf.length-1]+(e-lf.length)*uf}var ff=F({multiplier:j().min(0).max(5).describe(`DRY penalty strength. 0 disables. 0.8 is a reasonable default.`),base:j().min(0).max(5).optional().describe(`Base of the exponential penalty for repeated tokens. Default 1.75.`),allowedLength:j().int().min(0).max(64).optional().describe(`Minimum n-gram length before DRY kicks in. Default 2.`)}).describe(`DRY anti-repetition sampler (llama.cpp only).`),pf=F({probability:j().min(0).max(1).describe(`Probability of triggering XTC on any given step.`),threshold:j().min(0).max(1).describe(`Minimum top-token probability for XTC to fire.`)}).describe(`XTC sampler (llama.cpp only).`),mf=F({temperature:j().min(0).max(2).optional().describe(`Sampling temperature. 0 = greedy. Most reasoning models want 0.6–1.0.`),topP:j().min(0).max(1).optional().describe(`Nucleus sampling. 0.95 is the common default for Qwen, Gemma, Nemotron.`),topK:j().int().min(0).max(1e3).optional().describe(`Top-k cutoff. 20 for Qwen think, 64 for Gemma, 1 for greedy-on-instruct.`),minP:j().min(0).max(1).optional().describe(`Min-p cutoff (llama.cpp / MLX / Ollama). Qwen recommends 0.`),maxTokens:j().int().positive().optional().describe(`Per-turn output token cap. Maps to num_predict / max_tokens / n_predict.`),seed:j().int().optional().describe(`RNG seed. Unset / negative = random. Best-effort determinism on cloud.`),repetitionPenalty:j().min(0).max(3).optional().describe(`Local engines (Ollama / llama.cpp / MLX): repeat_penalty. 1.0 = off, 1.1 = mild.`),repetitionContext:j().int().positive().optional().describe("Local engines: window size for repetition penalty (`repeat_last_n`)."),frequencyPenalty:j().min(-2).max(2).optional().describe(`Cloud (OpenAI) and Ollama / llama.cpp: penalize repeated tokens by frequency.`),presencePenalty:j().min(-2).max(2).optional().describe(`Cloud (OpenAI) and Ollama / llama.cpp: penalize any reused token.`),dry:ff.optional(),xtc:pf.optional()}).describe(`Sampling parameters applied per-request.`),hf=F({effort:z([`low`,`medium`,`high`]).optional().describe("Cloud reasoning effort. Maps to OpenAI `reasoning.effort` and Anthropic `thinking.budget_tokens` tiers."),thinkingBudget:j().int().positive().optional().describe("Explicit thinking-token budget (Anthropic `thinking.budget_tokens`, Nemotron `reasoning_budget`). Wins over `effort` when both set."),enableThinking:M().optional().describe(`Chat-template toggle for dual-mode models (Qwen3+, Nemotron Nano/Super). Implicit on cloud thinking models.`),templateKwargs:R(k(),I([k(),j(),M()])).optional().describe("Chat-template variables that drive this model's reasoning depth, forwarded verbatim as `chat_template_kwargs` on local engines. The names are the model's own — GPT-OSS reads `reasoning_effort`, Muse Glimmer reads `reasoning_strength` (low|medium|high|xhigh) — so the manifest declares them rather than the runtime guessing. Lives under `reasoning` (not `engine`) because depth is a per-request choice a tuning profile overrides: `thinking-coding` can ask for xhigh while `instruct` asks for low. Cloud providers ignore it; use `reasoning.effort` there.")}).describe(`Reasoning controls.`),gf=F({responseFormat:z([`text`,`json_object`]).optional().describe("Output mode. `text` = freeform (default). `json_object` = enforce JSON."),jsonSchema:N().optional().describe(`Pin output to a JSON Schema (OpenAI strict mode, llama.cpp --json-schema).`),grammar:k().optional().describe(`llama.cpp GBNF grammar. Last-resort structured-output knob.`)}).describe(`Structured-output controls.`),_f=F({enableThinkingTag:k().optional().describe("User-prompt tag that enables thinking for this turn (e.g. `/think`)."),disableThinkingTag:k().optional().describe("User-prompt tag that disables thinking for this turn (e.g. `/no_think`).")}).describe(`Per-turn reasoning toggle tags.`),vf=F({llamaCpp:F({nGpuLayers:j().int().min(-1).optional().describe("`--n-gpu-layers` override. -1 = all. Unset = b9843 `auto`/`--fit`."),cpuMoe:M().optional().describe("`--cpu-moe`: keep ALL MoE experts in system RAM (attention/dense on GPU)."),nCpuMoe:j().int().min(0).optional().describe("`--n-cpu-moe N`: keep the first N layers’ MoE experts in RAM. Partial split."),cacheReuse:j().int().min(0).optional().describe("`--cache-reuse N` prefix-KV reuse chunk. 0 = disable. Unset inherits the global default."),swaFull:M().optional().describe("`--swa-full`: full-size SWA cache (Gemma family)."),flashAttn:z([`on`,`off`,`auto`]).optional().describe("`--flash-attn` mode override for this model."),ubatchSize:j().int().positive().optional().describe("`--ubatch-size` (inner microbatch) override for this model."),contextSize:j().int().positive().optional().describe(`Per-turn context ceiling (tokens) this model launches with. Capped by GGUF train ctx.`),chatTemplate:k().min(1).optional().describe("`--chat-template` override for GGUFs whose embedded Jinja template is incompatible with llama.cpp tool parsing."),threads:j().int().positive().optional().describe("`--threads` override."),batchSize:j().int().positive().optional().describe("`--batch-size` override."),spec:F({type:z([`none`,`draft-mtp`,`draft-eagle3`,`draft-dflash`,`draft-simple`,`ngram-mod`,`ngram-simple`,`ngram-map-k`,`ngram-map-k4v`,`ngram-cache`]).optional().describe("`--spec-type` speculative-decoding mode for this model."),mtp:M().optional().describe("VERIFIED capability metadata: this model’s target or companion GGUF carries MTP tensors. Does not enable `draft-mtp` by itself."),draftModelId:k().optional().describe("Catalog id / path of the draft model for `draft-simple`."),nMax:j().int().positive().optional().describe("`--spec-draft-n-max`: tokens drafted per step.")}).optional().describe(`Speculative-decoding config for this model.`)}).describe(`Per-model llama.cpp launch-flag defaults (engine-level, applied at model load).`).optional()}).describe(`Per-model engine launch-flag defaults, keyed by engine.`),yf=F({sampling:mf.optional(),samplingWhenThinking:mf.optional().describe("Sparse override of `sampling` applied when the runtime determines reasoning is engaged. Used by Qwen3+ (different sampling for /think mode) and Nemotron Nano (different sampling for thinking vs instruct)."),reasoning:hf.optional(),output:gf.optional(),toolChoice:z([`auto`,`required`,`none`]).optional().describe("Tool selection mode (cloud + llama.cpp + MLX). `auto` lets the model decide; `required` forces a tool call this turn; `none` disables tools."),promptTags:_f.optional()}).describe(`Per-model sampling, reasoning, and output defaults (without profiles).`),bf=yf.extend({engine:vf.optional().describe("Per-model ENGINE launch-flag defaults (llama.cpp `--n-gpu-layers`, `--cpu-moe`, `--spec-type`, …). Applied once at model load, not per request — so it lives on the top-level tuning object, not inside per-request `profiles`."),profiles:R(qd,yf.partial()).optional().describe("Named tuning presets this model implements. Gezel frontmatter `tuningProfile` selects one; the resolver applies the profile as a layer between installDefault and catalog base. Missing requested profiles walk the canonical fallback chain.")}).describe(`Per-model sampling, reasoning, and output defaults.`),xf=/^[a-z0-9](?:[a-z0-9._~-]*[a-z0-9])?$/,Sf=String.raw`(?:0|[1-9]\d*)`,Cf=String.raw`(?:${Sf}|[xX*])`,wf=String.raw`${Cf}(?:\.${Cf}){0,2}`,Tf=String.raw`[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*`,Ef=String.raw`(?:-${Tf})?(?:\+${Tf})?`,Df=new RegExp(String.raw`^(?:\^|~|>=|<=|>|<|=)?v?${wf}${Ef}$`),Of=new RegExp(String.raw`^v?${wf}${Ef}\s+-\s+v?${wf}${Ef}$`),kf=/^[a-z][a-z0-9._-]{0,127}$/;function Af(e){if(typeof e!=`string`||e.length===0||e.length>214||e!==e.trim()||e!==e.toLowerCase())return!1;if(e.startsWith(`@`)){let t=e.slice(1).split(`/`);return t.length===2&&t[0]!==void 0&&t[1]!==void 0&&xf.test(t[0])&&xf.test(t[1])}return!e.includes(`/`)&&xf.test(e)}function jf(e){if(typeof e!=`string`||e.length===0||e.length>128||e!==e.trim())return!1;if(kf.test(e)||Of.test(e))return!0;let t=e.split(`||`);return!t.some(e=>e.trim().length===0)&&t.every(e=>{let t=e.trim().split(/\s+/);return t.length>0&&t.every(e=>Df.test(e))})}var Mf=k().refine(Af,{message:`must be a lowercase npm registry package name (for example zod or @types/node)`}),Nf=k().refine(jf,{message:`must be a registry dist-tag or semver range`}),Pf=F({package:Mf,version:Nf.optional()}).strict(),Ff=F({package:Mf,version:Nf,decision:z([`install`,`always`,`decline`])}),If=F({selectedChoices:P(j().int().min(0)).optional(),writeIn:k().optional(),declined:M().optional(),silentSkip:M().optional(),npmInstallDecisions:P(Ff).optional(),at:k()}),Lf=F({package:Mf,version:Nf}),Rf=z([`script`,`npx`]),zf=F({path:k().min(1),sha256:k().regex(/^[a-f0-9]{64}$/)}),Bf=F({kind:B(`command-approval`),scope:Rf,name:k().min(1),body:k().optional(),args:P(k()).optional(),inputFiles:P(zf).max(128).optional()}),Vf=F({kind:B(`tool-permission`),toolName:k(),toolInput:R(k(),N())}),Hf=F({kind:B(`toolset-install-approval`),toolsetId:k(),sourceId:k(),version:k(),targetProjectId:k(),craftbookId:k()}),Uf=F({kind:B(`image-generation-approval`),provider:k(),model:k(),promptPreview:k(),estimatedSize:k().optional()}),Wf=F({kind:B(`video-generation-approval`),provider:k(),model:k(),promptPreview:k(),estimatedSize:k().optional()}),Gf=F({kind:B(`schedule-approval`),typeId:k(),craftbookId:k(),runMode:z([`scheduled`,`night-shift`]).optional(),cron:k(),overlap:z([`skip`,`queue`,`concurrent`]).optional()}),Kf=F({kind:B(`night-shift-review`),windowKey:k(),tasksCompleted:j(),reports:P(F({projectId:k(),path:k(),title:k().optional(),actionCount:j()}))}),qf=z([`gate_exhausted`,`gate_plateau`,`gate_unsatisfiable`,`gate_infrastructure`,`step_stalled`,`budget_exhausted`]),Jf=F({kind:B(`task-paused`),taskRef:k(),stepId:k().optional(),reason:qf}),Yf=L(`kind`,[F({kind:B(`npm-install-approval`),packages:P(Lf).min(1)}),Bf,Vf,Hf,Uf,Wf,Gf,Kf,Jf]),Xf=F({id:k(),projectId:k(),gezelId:k(),sessionId:k(),prompt:k().min(1),choices:P(k()).max(20).optional(),allowWriteIn:M().optional(),multiSelect:M().optional(),taskRef:k().optional(),documentPath:k().optional(),intent:Yf.optional(),createdAt:k(),answer:If.optional()}),Zf=F({make:k().optional(),model:k().optional(),lensModel:k().optional(),dateTimeOriginal:k().optional(),orientation:j().int().min(1).max(8).optional(),software:k().optional(),imageDescription:k().optional()}),Qf=F({format:z([`png`,`jpeg`,`gif`,`webp`,`svg`,`unknown`]),width:j().int().positive().optional(),height:j().int().positive().optional(),byteLength:j().int().nonnegative(),sha256:k().regex(/^[a-f0-9]{64}$/),pngText:R(k(),k()).optional(),exif:Zf.optional(),gps:F({lat:j(),lon:j()}).optional(),gpsRedacted:M().optional(),likelyScreenshot:M().optional()}),$f=z([`describe`,`ocr`,`ui`,`extract`]),ep=z([`auto`,`describe`,`ocr`,`ui`,`extract`]);F({schemaVersion:B(1),sha256:k().regex(/^[a-f0-9]{64}$/),meta:Qf,modes:P($f).min(1),description:k().optional(),ocrText:k().optional(),structured:F({templateId:k().optional(),data:N()}).optional(),engine:z([`llama-cpp`,`mlx`,`mock`,`none`]),modelId:k(),status:z([`ok`,`partial`,`failed`,`static-only`]),failureReason:k().optional(),durationMs:j().int().nonnegative(),at:k()});var tp=F({ref:k(),sha256:k().regex(/^[a-f0-9]{64}$/),digest:k(),modelId:k(),modes:P($f),status:z([`ok`,`partial`,`failed`,`static-only`]),at:k()});F({artifactPath:k().min(1).optional(),data:k().min(1).optional(),mimeType:k().optional(),mode:ep.default(`auto`),schema:N().optional(),model:k().optional()}),F({state:z([`ok`,`no-model`,`not-configured`,`error`]),modelId:k().optional(),detail:k().optional()}),I([F({type:B(`progress`),bytesWritten:j().int().nonnegative(),totalBytes:j().int().nonnegative().optional()}),F({type:B(`error`),error:k()}),F({type:B(`done`),id:k()})]),F({models:P(F({id:k(),name:k(),description:k(),license:k(),approxSizeBytes:j().int().nonnegative(),recoScore:j()}))}),F({models:P(F({id:k(),name:k(),approxSizeBytes:j().int().nonnegative(),installedAt:k(),weightsPath:k().optional(),mmprojPath:k().optional()}))});var np=z([`image_generation`,`video_generation`,`image_recognition`]),rp=F({startedAt:j(),streamedContentChars:j().int().nonnegative(),toolCalls:j().int().nonnegative(),fileMutations:j().int().nonnegative()}),ip=F({sessionId:k(),gezelId:k(),projectId:k(),inflight:M(),turnsStarted:j().int().nonnegative(),deltaChunks:j().int().nonnegative(),streamedContentChars:j().int().nonnegative(),wirePulses:j().int().nonnegative(),heartbeats:j().int().nonnegative(),enginePhaseEvents:j().int().nonnegative(),generationSpurts:j().int().nonnegative(),toolCalls:j().int().nonnegative(),toolArgChars:j().int().nonnegative(),fileMutations:j().int().nonnegative(),gpuEvents:j().int().nonnegative(),gpuTaskActive:np.nullable(),lastStreamActivityAt:j().nullable(),lastToolActivityAt:j().nullable(),lastMutationAt:j().nullable(),lastGpuActivityAt:j().nullable(),lastProgressAt:j().nullable(),currentTurn:rp.nullable()});F({version:B(1),capturedAt:j(),sessions:P(ip)});var X=z([`copilot`,`openai`,`anthropic`,`anthropic-cli`,`codex-cli`,`ollama`,`llama-cpp`,`mlx`,`ds4`,`remote`]),ap=z([`male`,`female`,`non-binary`]);function op(e){return e===`ollama`||e===`llama-cpp`||e===`mlx`||e===`ds4`}var sp=F({tool:k().min(1),promptKey:k().min(1).default(`prompt`),defaults:R(k(),N()).optional()}),cp=F({id:k(),text:k().min(1).max(200),adoptedAt:k(),source:z([`levelup`,`manual`]).optional()}),lp=F({frontmatter:F({id:Kd.optional(),name:k(),description:k().optional(),role:k().optional(),roleBasedName:k().optional(),gender:ap.optional(),model:k().optional(),provider:X.optional(),reasoningEffort:k().optional(),tuning:bf.optional(),tuningProfile:qd.optional(),suggestedTuningProfile:qd.optional(),tools:P(k()).optional(),tags:P(k()).optional(),fixedFunction:sp.optional(),numCtx:j().int().positive().optional(),autoRecall:M().optional(),font:k().optional(),voice:k().optional(),templateId:k().optional(),templateVersion:k().optional(),sandboxCopilot:M().optional(),claudePermissionMode:zd.optional(),codexPermissionMode:Vd.optional(),iconOverride:M().optional(),traits:P(cp).max(8).optional(),recognition:z([`auto`,`always`,`off`]).optional()}),sections:P(F({heading:k(),template:k().optional(),params:R(k(),k()).optional(),body:k()})),source:k()}),up=F({id:Kd,name:k(),description:k().optional(),role:k().optional(),roleBasedName:k().optional(),gender:ap.optional(),model:k().optional(),provider:X.optional(),reasoningEffort:k().optional(),tuningProfile:qd.optional(),suggestedTuningProfile:qd.optional(),numCtx:j().int().positive().optional(),autoRecall:M().optional(),font:k().optional(),voice:k().optional(),templateId:k().optional(),templateVersion:k().optional(),sandboxCopilot:M().optional(),claudePermissionMode:zd.optional(),codexPermissionMode:Vd.optional(),fixedFunction:sp.optional(),icon:k().optional(),poppetje:Rd.optional(),iconOverride:M().optional(),recognition:z([`auto`,`always`,`off`]).optional(),scope:z([`global`,`project`]).optional(),storageScope:z([`user`,`machine-shared`]).optional(),traits:P(cp).optional(),growth:cf.optional(),updatedAt:k()});up.extend({parsed:lp,about:k(),toolsMd:k().nullable().default(null)});var dp=F({path:k(),mimeType:k()}),fp=F({path:k(),mimeType:k(),durationSeconds:j().optional(),voice:k().optional()}),pp=F({path:k(),mimeType:k(),posterPath:k().optional()}),mp=F({name:k(),durationMs:j(),success:M(),errorMessage:k().optional(),path:k().optional(),paths:P(k()).optional(),argsSummary:k().optional(),argsFull:k().optional(),resultText:k().optional(),resultTruncated:M().optional(),images:P(dp).optional(),audios:P(fp).optional(),videos:P(pp).optional(),diff:k().optional(),addedLines:j().int().nonnegative().optional(),removedLines:j().int().nonnegative().optional()}),hp=F({role:z([`user`,`assistant`]),content:k(),at:k(),from:F({gezelId:k(),gezelName:k()}).optional(),referencedArtifacts:P(k()).optional(),referencedTasks:P(k()).optional(),toolCalls:P(mp).optional(),intents:P(F({label:k(),afterChars:j().int().min(0)})).optional(),pendingQuestionId:k().optional(),synthetic:z([`compaction-summary`,`context-loop-halt`,`turn-aborted`,`growth-announcement`,`keurmeester-notice`]).optional(),hidden:M().optional(),nudge:M().optional(),warnings:P(k()).optional(),reasoning:k().optional(),reasoningDurationMs:j().int().nonnegative().optional(),attemptedToolCalls:P(F({body:k(),reason:k().optional()})).optional(),recognizedImages:P(tp).optional()}),gp=F({code:k().max(64).optional(),engine:k().max(64).optional(),incidentId:k().max(64).optional(),panicKind:k().max(64).optional(),exitCode:j().int().nullable().optional(),signal:k().max(32).nullable().optional(),diagnostics:R(k(),I([k(),j(),M()])).optional()}),_p=L(`type`,[F({type:B(`delta`),content:k()}),F({type:B(`reasoning_delta`),content:k()}),F({type:B(`complete`),message:hp}),F({type:B(`user_message`),message:hp}),F({type:B(`tool`),name:k(),durationMs:j(),success:M(),errorMessage:k().optional(),path:k().optional(),paths:P(k()).optional(),argsSummary:k().optional(),argsFull:k().optional(),resultText:k().optional(),resultTruncated:M().optional(),images:P(dp).optional(),audios:P(fp).optional(),videos:P(pp).optional(),diff:k().optional(),addedLines:j().int().nonnegative().optional(),removedLines:j().int().nonnegative().optional()}),F({type:B(`error`),error:k(),errorDetail:gp.optional()}),F({type:B(`cancelled`)}),F({type:B(`done`)}),F({type:B(`queued`),aheadOf:j().int().min(0)}),F({type:B(`wire_pulse`)}),F({type:B(`tool_args_delta`),name:k(),content:k()}),F({type:B(`heartbeat`),label:k().optional()}),F({type:B(`warning`),message:k(),action:F({kind:B(`settings`),section:z([`llamaCpp`,`mlx`,`ds4`])}).optional()}),F({type:B(`intent`),label:k()}),F({type:B(`queue_enqueued`),queueId:k(),preview:k(),enqueuedAt:k(),nudge:M().optional()}),F({type:B(`queue_removed`),queueId:k(),reason:z([`started`,`canceled`,`rejected`])}),F({type:B(`context_warning`),estimatedTokens:j(),numCtx:j(),model:k()}),F({type:B(`context_compacted`),removedCount:j().int().nonnegative(),model:k()}),F({type:B(`context_loop`),compactionsThisSend:j().int().positive(),reason:k()}),F({type:B(`keurmeester_intervention`),caseId:k(),gezelId:k(),gezelName:k(),action:k(),summary:k()}),F({type:B(`recall_applied`),hitCount:j(),query:k()}),F({type:B(`question_asked`),question:Xf}),F({type:B(`question_answered`),question:Xf}),F({type:B(`task_event`),eventId:k(),kind:k(),summary:k(),at:k(),taskRef:k().optional(),gezelId:k().optional()}),F({type:B(`growth_level_up`),gezelId:k(),gezelName:k(),toLevel:j().int()}),F({type:B(`engine_phase`),provider:z([`llama-cpp`,`mlx`,`ds4`]),phase:z([`starting`,`loading_model`,`prefill`,`generating`,`ready`]),detail:k().optional(),progress:j().min(0).max(1).optional(),ttftMs:j().int().nonnegative().optional()}),F({type:B(`turn_stats`),provider:z([`llama-cpp`,`ollama`,`mlx`,`ds4`]),promptTokens:j().int().nonnegative(),completionTokens:j().int().nonnegative(),durationMs:j().int().nonnegative(),tokensPerSec:j().nonnegative().optional()}),F({type:B(`engine_stats`),provider:z([`llama-cpp`,`mlx`,`ds4`]),ramAllocBytes:j().nonnegative()}),F({type:B(`gpu_swap`),state:z([`started`,`progress`,`ended`]),task:np,detail:k().optional(),prompt:k().optional(),progress:j().min(0).max(1).optional(),step:j().int().nonnegative().optional(),totalSteps:j().int().positive().optional(),secondsPerStep:j().nonnegative().optional()}),F({type:B(`awaiting_gezel`),state:z([`started`,`ended`]),targetGezelName:k()}),F({type:B(`project_created`),projectId:k(),name:k()}),F({type:B(`project_deleted`),projectId:k(),name:k()}),F({type:B(`gezel_created`),gezelId:k(),name:k()}),F({type:B(`night_shift`),active:M(),source:z([`scheduled`,`manual`]).nullable()}),F({type:B(`meester_status`),state:z([`started`,`ended`,`failed`]),generatedAt:k().optional()}),F({type:B(`index_progress`),phase:z([`scan`,`shadow`,`enrich`,`review`,`digest`]),state:z([`started`,`progress`,`ended`]),projectId:k().optional(),detail:k().optional(),pending:j().int().nonnegative().optional(),gezelId:k().optional(),gezelName:k().optional()})]);F({sessionId:k(),gezelId:k(),projectId:k(),event:_p});var vp=z(`gezel.created,gezel.deleted,gezel.renamed,gezel.settings.updated,gezel.about.generated,icon.generated,icon.reverted,poppetje.generated,poppetje.updated,poppetje.rerolled,project.created,project.deleted,project.updated,project.about.updated,project.mission.updated,project.voorman.changed,project.gezel.joined,project.gezel.left,project.suggested-work.enabled,project.suggested-work.disabled,project.properties.updated,report.action.fired,report.action.dismissed,project.status.changed,project.nudge.sent,project.github.linked,project.github.unlinked,project.github.synced,project.review.requested,project.review.settled,project.connector.bound,project.connector.unbound,project.connector.synced,document.created,document.renamed,document.deleted,workspace.write,workspace.delete,workspace.mkdir,workspace.move,workspace.npm.installed,workspace.npm.declined,workspace.script.run,workspace.script.declined,workspace.npx.run,workspace.npx.declined,terminal.command.run,workspace.allow-writes.changed,tool.called,page.tool.invoked,page.reaction.sent,tool.gated,meester.changed,klerk.changed,boekwachter.changed,keurmeester.changed,gilde.updated,v1.chat.completion,keurmeester.intervention,keurmeester.digest.generated,task.created,task.activated,task.updated,task.status.changed,task.assignee.changed,task.step.added,task.step.activated,task.step.completed,task.step.redriven,task.step.stalled,task.step.gated,task.step.routed,task.entry.dispatched,task.craftbook.tier-collapsed,task.tick,task.canceled,task.instance.spawned,task.fanout.materialized,tasknote.appended,tasknote.updated,tasknote.deleted,task.about.updated,task.step.updated,task.step.removed,task.craftbook.reordered,task.craftbook.updated,craftbook.created,craftbook.updated,craftbook.deleted,toolset.config.updated,config.credential.updated,config.engagementMode.changed,memory.auto-recalled,memory.auto-summarized,memory.compacted,memory.lessons-updated,project.digest.generated,project.index.reviewed,meester.status.generated,gezel.level.up,gezel.trait.adopted,gezel.trait.removed,gezel.tuning.adjusted,chat.compacted,gezel.messaged,gezel.message.delivered,gezel.message.delivery_failed,gezel.reply.dropped,chat.mention.fanout,render.generated,user.question.asked,user.question.answered,debug.bridge.failed,channel.configured,channel.message.sent,channel.message.failed,copilot.builtin.denied,credential.used,eval.trial.started,eval.trial.completed`.split(`,`)),yp=F({id:k(),at:k(),kind:vp,projectId:k().optional(),gezelId:k().optional(),summary:k(),details:R(k(),N()).optional()}),bp=F({entryType:B(`session`),id:k(),gezelId:k(),projectId:k(),title:k(),createdAt:k(),lastActivityAt:k(),messageCount:j(),durationMs:j(),providerName:X,model:k().optional(),archived:M().optional()}),xp=L(`entryType`,[yp.extend({entryType:B(`event`)}),bp]);F({projectId:k().optional(),gezelId:k().optional(),kinds:P(vp).optional(),from:k().optional(),to:k().optional(),q:k().optional(),limit:j().int().positive().optional(),include:z([`events`,`entries`]).optional()}),F({entries:P(xp)});var Sp=k().url().refine(e=>{try{let t=new URL(e);return t.protocol===`https:`&&!t.username&&!t.password&&t.pathname===`/`&&!t.search&&!t.hash}catch{return!1}},{message:`must be an exact HTTPS origin (for example https://api.example.com)`}),Cp=F({url:k().min(1),branch:k().optional(),checkoutDir:k().optional(),lastSyncedAt:k().optional(),defaultBranch:k().optional()}),wp=F({id:k().min(1),type:k().min(1),sourceId:k().optional(),version:k().optional(),displayName:k().optional(),corpusDir:k().optional(),config:R(k(),N()).default({}),cursor:N().optional(),disabled:M().optional(),lastSyncedAt:k().optional(),lastError:k().optional()}),Tp=F({enabled:M().optional(),rapidIntervalMs:j().int().positive().optional(),slowIntervalMs:j().int().positive().optional(),recentActivityWindowMs:j().int().positive().optional(),rapidAttemptsBeforeBackoff:j().int().positive().optional(),firstNudgeGraceMs:j().int().nonnegative().optional()}),Ep=F({lastNudgedAt:k().optional(),consecutiveRapidNudges:j().int().nonnegative().optional()}),Dp=F({overview:M().optional(),tasks:M().optional(),approvals:M().optional(),workspace:M().optional(),artifacts:M().optional(),map:M().optional()}).strict(),Op=z([`auto`,`allow`,`deny`]),kp=F({id:k(),version:k(),source:k(),params:R(k(),N()).optional(),appliedAt:k()}),Ap=F({id:Kd,name:k(),description:k().optional(),workingDir:k().optional(),voormanGezelId:k().optional(),voormanAutoAssignedAt:k().optional(),gezelIds:P(k()).optional(),suggestedWorkDismissed:P(k()).optional(),properties:R(k(),k()).optional(),mode:z([`crew`,`solo`]).optional(),leadLabel:k().optional(),leanProfile:M().optional(),indexingEnabled:M().optional(),github:Cp.optional(),connectors:P(wp).optional(),nudgeConfig:Tp.optional(),nudgeState:Ep.optional(),tabVisibility:Dp.optional(),managedWorkspaceWritePolicy:Op.optional(),allowGezelWrites:M().optional(),codexPermissionMode:Bd.optional(),claudePermissionMode:zd.optional(),status:z([`active`,`readonly`,`inactive`,`stable`]).optional(),archived:M().optional(),workspaceScriptTimeoutMs:j().int().min(3e4).max(30*6e4).optional(),grantedCredentials:P(k()).optional(),credentialAllowedOrigins:R(k(),P(Sp)).optional(),projectTypeId:k().optional(),detectedProjectType:F({id:k(),score:j(),scannedAt:k()}).optional(),projectType:kp.optional(),storageScope:z([`user`,`machine-shared`]).optional(),createdAt:k(),updatedAt:k()});function jp(e){return e.projectTypeId??e.detectedProjectType?.id}var Mp=F({name:k(),version:k()}),Np=Ap.extend({packages:P(Mp),about:k().optional(),missionObjectives:k().optional()});F({name:k(),path:k(),isDirectory:M(),mtimeMs:j().optional()});var Pp=I([Pu,F({kind:B(`prometheusAlerts`),file:k().min(1),minRules:j().int().positive().optional(),maxPageAlerts:j().int().nonnegative().optional(),allowedSeverities:P(k().min(1)).optional(),requiredServices:P(k().min(1)).optional(),requiredRunbookUrls:P(k().min(1)).optional()}).strict(),F({kind:B(`nodeScriptPasses`),script:k().min(1),timeoutMs:j().int().positive().optional(),requiredOutput:P(F({pattern:k().min(1),flags:k().optional(),label:k().optional()}).strict()).optional()}).strict(),F({kind:B(`binaryDocument`),file:k().min(1),artifact:M().optional(),minBytes:j().int().positive().optional()}).strict()]),Fp=k().min(1).regex(/^[a-z0-9][a-z0-9-]*$/,`mock service ids are lowercase kebab-case`),Ip=k().min(1).regex(/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,`mock toolset ids are lowercase catalog ids or scoped npm-style ids`),Lp=F({method:z([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`]).default(`GET`),path:k().min(1),status:j().int().min(100).max(599).default(200),headers:R(k(),k()).optional(),body:N(),latencyMs:j().int().nonnegative().optional()}).strict(),Rp=L(`kind`,[F({kind:B(`http`),id:Fp,description:k().min(1),credential:F({name:k().regex(/^mock\.[a-z0-9][a-z0-9.-]*$/,`mock credentials are named mock.<service-id>`),authScheme:z([`bearer`,`basic`]).optional()}).strict(),routes:P(Lp).min(1)}).strict(),F({kind:B(`webhook`),id:Fp,description:k().min(1),path:k().min(1).optional()}).strict(),F({kind:B(`cli`),id:Fp,description:k().min(1),shim:F({path:k().min(1),content:k()}).strict()}).strict(),F({kind:B(`mcp`),id:Fp,description:k().min(1),toolsetId:Ip.optional(),tools:P(F({name:k().min(1),description:k().min(1),resultTemplate:N().optional(),resultSequence:P(N()).min(1).optional(),writeFixture:F({surface:z([`workspace`,`artifact`]),pathArgument:k().min(1),fixture:z([`minimal-pptx`,`minimal-docx`,`minimal-pdf`,`minimal-png`])}).strict().optional()}).strict()).min(1)}).strict()]),zp=F({path:k().min(1),content:k(),surface:z([`workspace`,`artifact`,`harness`]).optional(),modelInput:M().optional()}).strict(),Bp=F({name:k().min(1),role:k().min(1),description:k().optional(),about:k().optional()}).strict(),Vp=F({projectName:k().min(1),about:k().optional(),missionObjectives:k().optional(),managedWorkspaceWritePolicy:Op.optional(),files:P(zp).default([]),craftbookParams:R(k(),k()).optional(),worker:Bp.optional()}).strict(),Hp=F({path:k().min(1),kind:cd,artifact:M().optional(),minBytes:j().int().positive().optional(),checks:P(Pp).optional()}).strict(),Up=F({service:Fp,minRequests:j().int().positive().optional(),requiredPaths:P(k().min(1)).optional(),forbiddenPaths:P(k().min(1)).optional(),requiredTools:P(k().min(1)).optional(),toolCalls:R(k().min(1),F({minCalls:j().int().nonnegative().default(1),maxCalls:j().int().nonnegative().optional()}).strict().refine(e=>e.maxCalls===void 0||e.minCalls<=e.maxCalls,`minCalls must be less than or equal to maxCalls`)).optional()}).strict(),Wp=F({kind:vp,minEntries:j().int().nonnegative().default(1),maxEntries:j().int().nonnegative().optional(),summaryPattern:k().min(1).optional(),flags:k().optional(),details:R(k(),I([k(),j(),M(),Na()])).optional()}).strict(),Gp=F({summary:k().min(1),deliverables:P(Hp).optional(),checks:P(Pp).optional(),taskNotes:F({minBytes:j().int().positive().optional(),checks:P(Pp).optional(),requireCraftbookTask:M().optional()}).strict().optional(),taskGraph:F({checks:P(Pp).optional(),requireCraftbookTask:M().optional(),requireTerminalStep:M().optional(),requireDraftRef:M().optional(),draft:F({status:z([`draft`,`paused`,`active`,`complete`,`canceled`]).optional(),minDescriptionBytes:j().int().positive().optional(),minOutcomes:j().int().positive().optional(),minSteps:j().int().positive().optional(),requireTerminalVerification:M().optional(),requireGatedBuildSteps:M().optional()}).strict().optional()}).strict().optional(),mocks:P(Up).optional(),history:P(Wp).optional(),unchangedFixtures:P(k().min(1)).optional()}).strict(),Kp=F({artifact:F({path:k().min(1),kind:z([`html`,`markdown`,`yaml`,`typescript`,`json`,`text`])}).strict(),axes:P(F({name:k().min(1),description:k().min(1)}).strict()).min(1),contextNote:k().optional()}).strict();F({schemaVersion:B(1),title:k().min(1),objective:k().min(1),tags:P(k().min(1)).default([]),prompt:k().min(1),setup:Vp,mocks:P(Rp).default([]),success:Gp,rubric:Kp,qualityFocus:P(k().min(1)).default([]),extensions:R(k(),N()).optional()}).strict().superRefine((e,t)=>{let n=new Set(e.mocks.map(e=>e.id)),r=new Map(e.mocks.map(e=>[e.id,e]));for(let[i,a]of(e.success.mocks??[]).entries()){if(n.has(a.service)||t.addIssue({code:V.custom,path:[`success`,`mocks`,i,`service`],message:`success.mocks[${i}] references unknown mock service "${a.service}"`}),a.requiredTools&&a.requiredTools.length>0){let e=r.get(a.service);if(e&&e.kind!==`mcp`)t.addIssue({code:V.custom,path:[`success`,`mocks`,i,`requiredTools`],message:`success.mocks[${i}].requiredTools requires an mcp service; "${a.service}" is kind "${e.kind}"`});else if(e?.kind===`mcp`){let n=new Set(e.tools.map(e=>e.name));for(let e of a.requiredTools)n.has(e)||t.addIssue({code:V.custom,path:[`success`,`mocks`,i,`requiredTools`],message:`success.mocks[${i}].requiredTools names undeclared tool "${e}" on mcp service "${a.service}"`})}}if(a.toolCalls&&Object.keys(a.toolCalls).length>0){let e=r.get(a.service);if(e&&e.kind!==`mcp`)t.addIssue({code:V.custom,path:[`success`,`mocks`,i,`toolCalls`],message:`success.mocks[${i}].toolCalls requires an mcp service; "${a.service}" is kind "${e.kind}"`});else if(e?.kind===`mcp`){let n=new Set(e.tools.map(e=>e.name));for(let e of Object.keys(a.toolCalls))n.has(e)||t.addIssue({code:V.custom,path:[`success`,`mocks`,i,`toolCalls`,e],message:`success.mocks[${i}].toolCalls names undeclared tool "${e}" on mcp service "${a.service}"`})}}}for(let[n,r]of e.mocks.entries())r.kind===`http`&&r.credential.name!==`mock.${r.id}`&&t.addIssue({code:V.custom,path:[`mocks`,n,`credential`,`name`],message:`http mock "${r.id}" must use credential name "mock.${r.id}"`});let i=new Set(e.setup.files.filter(e=>e.surface===void 0||e.surface===`workspace`).map(e=>e.path));for(let[n,r]of(e.success.unchangedFixtures??[]).entries())i.has(r)||t.addIssue({code:V.custom,path:[`success`,`unchangedFixtures`,n],message:`unchanged fixture "${r}" is not a seeded workspace file`});for(let[n,r]of(e.success.history??[]).entries())r.maxEntries!==void 0&&r.minEntries>r.maxEntries&&t.addIssue({code:V.custom,path:[`success`,`history`,n],message:`minEntries must be less than or equal to maxEntries`})});var qp=F({id:k().min(1),label:k().min(1),description:k().optional(),kind:z([`gezel`,`model`]).default(`model`),provider:k().min(1),gezelId:k().min(1).optional(),role:k().min(1).optional(),modelLabel:k().min(1).optional(),contextWindow:j().int().positive().optional(),supportsReasoning:M().optional(),supportsTools:M().optional()});F({state:z([`not-configured`,`configured`,`update-needed`,`conflict`,`unavailable`]),models:P(qp),configuredModel:k().optional(),recommendedModel:k().optional(),reasons:P(k()),message:k().optional(),codexInstalled:M(),codexVersion:k().optional(),codexPath:k().optional(),endpointsEnabled:M(),profileName:k().min(1),profilePath:k().min(1),launchCommand:k().min(1),bridge:F({baseUrl:k().url(),listening:M(),port:j().int().nonnegative()}),canConfigure:M(),canRemove:M()}),F({model:k().min(1)});var Jp=z([`AGENTS.md`,`CLAUDE.md`,`.github/copilot-instructions.md`]),Yp=z([`primary`,`concat`]);F({schemaVersion:B(1).default(1),sourceFile:Jp.optional(),mergeMode:Yp.optional(),aboutHash:k().optional(),derivedAt:k().optional()});var Xp=F({hash:k(),sourceFile:Jp,mergeMode:Yp.optional(),gezelId:k(),userEdited:M().optional()}),Zp=F({hash:k(),sourceFile:k()}),Qp=F({hash:k(),craftbookId:k(),scriptNames:P(k()).default([]),userEdited:M().optional()});F({version:B(1).default(1),gezel:Xp.optional(),about:Zp.optional(),craftbooks:R(k(),Qp).default({})});var $p=F({name:k(),body:k(),confidence:j().min(0).max(1),sourceBlock:k(),origin:z([`static`,`llm`]).optional()}),em=F({role:k(),about:k()}),tm=F({skillSource:k(),sourceHash:k(),craftbook:sd,scripts:P($p).default([]),persona:em.optional(),notes:P(k()).optional(),createdAt:k()});F({version:B(1).default(1),items:P(tm).default([])});var nm=z([`draft`,`paused`,`active`,`complete`,`canceled`]),rm=z([`skip`,`queue`,`concurrent`]),im=F({expression:k(),lastTickAt:k().optional(),nextTickAt:k().optional(),overlap:rm.optional()}),am=F({title:k().optional(),plan:k().optional(),description:k().optional(),context:R(k(),k()).optional()}),om=F({count:j().int().positive(),variations:P(am).optional(),materializedAt:k().optional()}),sm=F({count:j().int().positive(),variations:P(am).optional()}),cm=F({enabled:M(),onceADay:M().optional(),lastRunDay:k().optional()}),lm=Ju.extend({createdAt:k(),completedAt:k().optional(),attemptCount:j().int().nonnegative().optional(),lastActivatedAt:k().optional(),gateAttempts:j().int().nonnegative().optional(),lastGateReject:F({contentHash:k().optional(),messageFingerprint:k(),message:k(),at:k()}).optional(),redriveCount:j().int().nonnegative().optional(),lastRedriveAt:k().optional(),gateAttemptHistory:P(F({at:k(),attempt:j().int().nonnegative(),contentHash:k().optional(),signatureHash:k(),messageFingerprint:k(),failedChecks:P(k()).optional(),frozen:M().optional()})).optional()}),um=F({id:k().min(1),name:k().min(1),description:k().optional(),version:k().optional(),basedOn:ad.optional(),plan:k().optional(),defaultAssignee:Y.optional(),steps:P(lm).min(1),entryStepId:k().min(1),triggers:P(k()).optional(),hooks:P(Uu).optional(),paramSchema:R(k(),N()).optional(),toolsets:P(ed).optional(),connectors:P(td).optional(),scripts:id.optional(),spawn:Yu.optional(),createdAt:k(),updatedAt:k(),renderedForTier:qu.optional()}),dm=F({role:z([`main`,`spawn`]),catalogId:k(),version:k().optional(),sourceId:k().optional()}),fm=F({id:k(),text:k().min(1),met:M().optional(),evidence:k().optional(),verifiedAt:k().optional()}),pm=F({projectId:k(),num:j().int().positive(),ref:k(),title:k(),description:k().optional(),plan:k().optional(),outcomes:P(fm).optional(),status:nm,assignee:Y,assigneeAuto:M().optional(),craftbook:um,spawnsCraftbook:um.optional(),sourceCraftbookIds:P(dm).optional(),craftbookParams:R(k(),k()).optional(),spawnsCraftbookParams:R(k(),k()).optional(),activeStepId:k().optional(),parentTaskRef:k().optional(),origin:L(`kind`,[F({kind:B(`project-type-schedule`),typeId:k(),scheduleKey:k()}),F({kind:B(`system-job`),jobId:k(),managedByGezelId:k().optional()}),F({kind:B(`boekwachter-issue`),issueRef:k().regex(/^BW-[1-9]\d*$/),path:k().min(1)}),F({kind:B(`craftbook-invocation`),key:k().regex(/^craftbook-root-v1:[a-f0-9]{64}$/)}),F({kind:B(`gezel-suggested-craftbook`),templateId:k(),suggestionKey:k()})]).optional(),cron:im.optional(),nightShift:cm.optional(),fanout:om.optional(),lastGateHandoff:F({fromStepId:k(),toStepId:k().optional(),message:k(),params:R(k(),N()).optional(),at:k()}).optional(),roleBasedNameOnlyMode:M().optional(),createdAt:k(),updatedAt:k(),createdBy:Y});F({title:k().min(1),description:k().min(40),plan:k().optional(),outcomes:P(fm).optional(),assignee:Y.optional(),status:z([`draft`,`active`]).optional(),craftbookId:k().optional(),craftbookSourceId:k().optional(),craftbookVersion:k().optional(),steps:P(ud).optional(),entryStepId:k().optional(),craftbookParams:R(k(),k()).optional(),spawnsCraftbookParams:R(k(),k()).optional(),spawnsCraftbookId:k().optional(),spawnsCraftbookSourceId:k().optional(),spawnsCraftbookVersion:k().optional(),spawnsSteps:P(ud).optional(),spawnsEntryStepId:k().optional(),parentTaskRef:k().optional(),cron:F({expression:k(),overlap:rm.optional()}).optional(),nightShift:F({enabled:M(),onceADay:M().optional()}).optional(),fanout:sm.optional(),createdBy:Y.optional(),roleBasedNameOnlyMode:M().optional(),dispatchEntry:M().optional(),craftbookInvocationKey:k().regex(/^craftbook-root-v1:[a-f0-9]{64}$/).optional()}).refine(e=>!!e.craftbookId!=!!(e.steps&&e.steps.length>0),{message:`exactly one of craftbookId or steps must be provided for the main craftbook`,path:[`craftbookId`]}).refine(e=>{let t=!!e.spawnsCraftbookId,n=!!(e.spawnsSteps&&e.spawnsSteps.length>0);return!(t&&n)},{message:`spawnsCraftbookId and spawnsSteps are mutually exclusive`,path:[`spawnsCraftbookId`]}).refine(e=>e.spawnsCraftbookId||e.spawnsSteps&&e.spawnsSteps.length>0?!!e.cron||!!e.fanout:!0,{message:`spawn craftbook only valid when cron or fanout is set`,path:[`spawnsCraftbookId`]}).refine(e=>!e.spawnsCraftbookParams||!!e.spawnsCraftbookId||!!(e.spawnsSteps&&e.spawnsSteps.length>0),{message:`spawn craftbook params require spawnsCraftbookId or spawnsSteps`,path:[`spawnsCraftbookParams`]}).refine(e=>e.status!==`draft`||!e.cron&&!e.fanout,{message:`a draft task cannot have a cron schedule or fanout`,path:[`status`]}).refine(e=>e.dispatchEntry!==!0||e.status!==`draft`&&!e.cron&&!e.fanout,{message:`dispatchEntry is only valid on an immediately-active, non-spawning task (drafts kick off via activate; cron/fanout children dispatch themselves)`,path:[`dispatchEntry`]}),F({title:k().min(1).optional(),description:k().optional(),plan:k().optional(),outcomes:P(fm).nullable().optional(),assignee:Y.optional(),cron:F({expression:k(),overlap:rm.optional()}).nullable().optional(),nightShift:F({enabled:M(),onceADay:M().optional()}).nullable().optional(),fanout:sm.nullable().optional(),spawnsCraftbookParams:R(k(),k()).nullable().optional()}),F({count:j().int().positive().optional(),variations:P(am).optional()}),F({status:nm}),F({next:k().optional(),force:M().optional()}),F({task:pm,gate:F({decision:B(`reject`),message:k(),attempt:j().int().nonnegative(),maxAttempts:j().int().positive(),paused:M(),infrastructureError:M().optional(),scriptRuns:P(F({scriptName:k(),runId:k().optional(),error:k().optional(),logsTail:k().optional()})).optional()}).optional()}),F({name:k().min(1).optional(),description:k().optional(),prompt:k().optional(),suggestedRole:k().nullable().optional(),assignee:Y.nullable().optional(),suggestedGezelId:k().nullable().optional(),onEnter:xu.nullable().optional(),onExit:xu.nullable().optional(),consumes:P(Ku).min(1).nullable().optional(),advanceWhen:Gu.nullable().optional(),gate:Lu.nullable().optional(),next:k().nullable().optional(),branches:P(Wu).nullable().optional(),terminal:M().optional()}),F({task:pm}),F({name:k().min(1).optional(),description:k().nullable().optional(),plan:k().nullable().optional(),defaultAssignee:Y.nullable().optional(),entryStepId:k().optional()}),F({id:k().optional(),name:k().min(1),description:k().optional(),prompt:k().optional(),suggestedGezelId:k().optional(),assignee:Y.optional()}),F({tasks:P(pm)});var mm=L(`kind`,[F({kind:B(`gezel`),gezelId:k(),name:k()}),F({kind:B(`user`)})]),hm=F({id:k(),at:k(),author:mm,stepId:k().optional(),text:k()});F({notes:P(hm)}),F({text:k().min(1),stepId:k().optional()}),F({note:hm}),F({text:k().min(1)}),F({note:hm});function gm(e){let t=e.lastIndexOf(`/`);if(t<0||t===e.length-1)return null;let n=e.slice(0,t),r=e.slice(t+1);if(!n)return null;let i=Number.parseInt(r,10);return!Number.isFinite(i)||i<=0||String(i)!==r?null:{projectId:n,num:i}}var _m=k().refine(e=>gm(e)!==null,{message:`task ref must use projectId/num form`}),vm=F({family:z([`gemma`,`qwen`,`gpt-oss`,`mistral`,`llama`,`deepseek`,`qwq`,`phi`,`nemotron`,`glm`,`muse`,`other`]),reasoningFormat:z([`think`,`channel`,`inline`,`none`]),toolCallFormat:z([`function-call`,`qwen-xml`,`hermes`,`gemma-special-token`,`json-envelope`])}),ym=k().min(1),bm=I([ym,F({id:ym,config:N().optional()})]),xm=z([`artifacts`,`workspace`,`type`]);F({source:xm,path:k().max(4096)}),F({url:k().startsWith(`/preview/`),browserUrl:k().url().optional(),expiresAt:k(),scopePath:k()}),F({path:k().max(4096)}),F({ran:M(),ok:M().optional(),errors:P(k()).optional(),reason:k().optional()}),F({entries:P(F({kind:z([`error`,`unhandledrejection`,`console.error`]),message:k().max(2e3),path:k().max(4096),source:xm,at:k()})).min(1).max(20)});var Z=/^[a-z0-9][a-z0-9.\-:]{1,63}$/,Sm=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,Cm=z([`open`,`commercial-restricted`,`custom-restricted`]),wm={licenseClass:Cm.optional(),licenseShortName:k().optional(),licenseUrl:k().url().optional()},Tm={recoScore:j().int().positive().optional()},Q={minGezelVersion:k().optional()},Em=F({...Q,schemaVersion:B(1),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),...wm,...Tm,yankedVersions:P(k()).default([]),minSupportedVersion:k().optional()}),Dm=z([`search`,`dev-tools`,`data`,`cloud`,`productivity`,`communication`,`content`,`ai`,`media`,`other`]),Om=z([`general`,`code`,`communication`,`creative`,`writing`,`growth`,`game`,`data`,`home`,`money`,`events`,`other`]),km=z([`darwin-arm64`,`darwin-x64`,`linux-arm64`,`linux-x64`,`win32-x64`]),Am=F({kind:B(`npm-package`),package:k().min(1).max(214).regex(/^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9][a-z0-9._~-]*$/),version:k().min(1).max(128).regex(/^v?\d+\.\d+\.\d+(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/),sha256:k().regex(/^[a-f0-9]{64}$/),entry:k().min(1).max(512).refine(e=>!e.includes(`\\`)&&!e.includes(`\0`)&&!e.startsWith(`/`)&&e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`),`entry must be a contained POSIX-style relative path`),args:P(k().max(4096).refine(e=>!e.includes(`\0`))).max(64).default([]),envHints:P(k().regex(/^[A-Z_][A-Z0-9_]{0,63}$/)).max(64).default([])}),jm=L(`kind`,[Am,F({kind:B(`http-mcp`),url:k().url(),transport:z([`streamable-http`,`sse`]).default(`streamable-http`),authHint:z([`none`,`bearer`,`oauth`]).default(`none`),envHints:P(k()).default([])}),F({kind:B(`stdio-mcp-binary`),binaries:R(km,F({url:k().url(),sha256:k().regex(/^[a-f0-9]{64}$/)})),args:P(k()).default([]),envHints:P(k()).default([])}),F({kind:B(`builtin`),toolsetGroupId:k()}),F({kind:B(`custom-mcp`),serverName:k().min(1).max(256),transport:z([`stdio`,`streamable-http`,`sse`]),source:L(`kind`,[F({kind:B(`project-file`),relativePath:z([`.gezel/mcp.json`,`.vscode/mcp.json`,`.mcp.json`])}),F({kind:B(`imported`),sourceName:k().min(1).max(512).optional()})]),command:k().min(1).max(4096).optional(),args:P(k().max(16384)).max(256).default([]),cwd:k().max(4096).optional(),envFile:k().max(4096).optional(),url:k().max(16384).optional(),envKeys:P(k().min(1).max(256)).max(256).default([]),headerKeys:P(k().min(1).max(256)).max(256).default([])}).superRefine((e,t)=>{e.source.kind!==`project-file`&&(e.transport===`stdio`&&!e.command&&t.addIssue({code:`custom`,path:[`command`],message:`imported stdio MCP servers require a command`}),e.transport!==`stdio`&&!e.url&&t.addIssue({code:`custom`,path:[`url`],message:`imported HTTP MCP servers require a URL`}))})]),Mm=F({id:k(),label:k(),description:k().optional(),type:z([`string`,`enum`,`url`,`number`,`boolean`]),secret:M().default(!1),required:M().default(!1),default:k().optional(),options:P(k()).optional(),multiline:M().default(!1),pattern:k().optional(),placeholder:k().optional(),envVar:k().optional()}),Nm=Em.extend({kind:B(`toolset`),category:Dm.optional()});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),runtime:jm,tools:P(F({name:k(),description:k().default(``)})).default([]),config:P(Mm).default([]),requirements:F({node:k().optional(),platforms:P(km).optional()}).optional(),notes:k().optional()});var Pm=F({...Q,schemaVersion:B(1),kind:B(`toolset`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),version:k(),releasedAt:k(),runtime:jm,tools:P(F({name:k(),description:k().default(``)})).default([]),config:P(Mm).default([]),requirements:F({node:k().optional(),platforms:P(km).optional()}).optional(),notes:k().optional(),availableVersions:P(k()).default([]),category:Dm.optional()}),Fm=Em.extend({kind:B(`gezel-template`),role:k(),meesterCandidate:M().default(!1)}),Im=F({craftbookId:k(),runMode:z([`night-shift`,`scheduled`]),cron:k().optional(),overlap:z([`skip`,`queue`,`concurrent`]).optional(),params:R(k(),k()).optional(),reason:k().optional()}).refine(e=>e.runMode!==`scheduled`||!!e.cron,{message:`scheduled suggestions require cron`});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),about:k(),suggestedProvider:X.optional(),suggestedModel:k().optional(),suggestedTools:P(k()).default([]),notes:k().optional(),frontmatter:R(k(),N()).optional(),nameSuggestions:P(k()).optional(),suggestedCraftbooks:P(Im).optional()});var Lm=F({...Q,schemaVersion:B(1),kind:B(`gezel-template`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),version:k(),releasedAt:k(),role:k(),about:k(),suggestedProvider:X.optional(),suggestedModel:k().optional(),suggestedTools:P(k()).default([]),meesterCandidate:M().default(!1),notes:k().optional(),availableVersions:P(k()).default([]),frontmatter:R(k(),N()).optional(),nameSuggestions:P(k()).optional(),suggestedCraftbooks:P(Im).optional()}),Rm=z([`project-starter`,`maintenance-review`,`general`]),zm=[{id:`project-starter`,label:`New project starters`,description:`greenfield recipes that establish a new project in a blank workspace`},{id:`maintenance-review`,label:`Maintenance & review`,description:`inspect, repair, improve, and keep existing work healthy`},{id:`general`,label:`General work`,description:`research, content, operations, and other reusable recipes`}],Bm=Em.extend({kind:B(`craftbook-template`),role:Rm.default(`general`),workflow:k().optional()});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),about:k(),steps:P(Ju).min(1),entryStepId:k().min(1),defaultAssignee:Y.optional(),basedOn:ad.optional(),plan:k().optional(),notes:k().optional(),spawn:Yu.optional(),triggers:P(k()).optional(),hooks:P(Uu).optional(),bundledScripts:P(k()).optional(),paramSchema:R(k(),N()).optional(),command:k().regex(/^[a-z][a-z0-9-]*$/).optional(),requirements:P(Qu).optional(),runModes:$u.optional(),toolsets:P(ed).optional(),connectors:P(td).optional()});var Vm=F({...Q,schemaVersion:B(1),kind:B(`craftbook-template`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),version:k(),releasedAt:k(),role:Rm.default(`general`),workflow:k().optional(),about:k(),steps:P(Ju).min(1),entryStepId:k().min(1),defaultAssignee:Y.optional(),basedOn:ad.optional(),plan:k().optional(),notes:k().optional(),spawn:Yu.optional(),availableVersions:P(k()).default([]),triggers:P(k()).optional(),hooks:P(Uu).optional(),scripts:id.optional(),bundledScripts:P(k()).optional(),paramSchema:R(k(),N()).optional(),command:k().regex(/^[a-z][a-z0-9-]*$/).optional(),requirements:P(Qu).optional(),runModes:$u.optional(),toolsets:P(ed).optional(),connectors:P(td).optional()}),Hm=F({templateId:k(),voorman:M().default(!1)}),Um=F({id:k(),sourceId:k().optional(),need:z([`required`,`suggested`]).default(`suggested`),autoAllow:P(k()).default([]),reason:k().optional()}),Wm=F({gezel:k(),prompt:k().min(1),hideSeed:M().optional()}),Gm=F({name:k().regex(/^[a-z][a-z0-9_]*$/),description:k(),script:k(),inputs:R(k(),N()).optional(),bind:R(k(),N()).optional(),reaction:Wm.optional()}),Km=F({runMode:z([`scheduled`,`night-shift`]).default(`scheduled`),cron:k().optional(),craftbook:k(),consent:z([`ask`,`auto`,`disabled`]).default(`ask`),overlap:z([`skip`,`queue`,`concurrent`]).optional()}).refine(e=>e.runMode!==`scheduled`||!!e.cron,{message:`scheduled project-type schedules require cron`}),qm=F({source:xm,path:k().min(1),subtree:M().optional()}),Jm=F({entry:k(),api:B(1).optional(),reads:P(qm).optional(),tools:P(k().regex(/^[a-z][a-z0-9_]*$/)).optional()}),Ym={extends:k().optional(),meesterManaged:M().optional(),tabVisibility:Dp.optional(),mode:z([`crew`,`solo`]).optional(),leadLabel:k().min(1).optional(),leanProfile:M().optional(),indexingEnabled:M().optional(),params:R(k(),N()).optional(),nameTemplate:k().min(1).optional(),aboutTemplate:k().optional(),missionTemplate:k().optional(),gezels:P(Hm).default([]),toolsets:P(Um).default([]),craftbooks:P(k()).default([]),scripts:id.optional(),tools:P(Gm).default([]),pages:Jm.optional(),schedules:P(Km).default([]),workspaceSeed:P(k()).default([]),artifactsSeed:P(k()).default([]),notes:k().optional()},Xm=Em.extend({kind:B(`project-type`),category:Om.optional()});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),...Ym});var Zm=F({...Q,schemaVersion:B(1),kind:B(`project-type`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),category:Om.optional(),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),version:k(),releasedAt:k(),...Ym,availableVersions:P(k()).default([])}),Qm=z([`mcp`,`script`,`spectral`,`native`]),$m=I([F({kind:B(`mapping`),map:R(k(),N())}),F({kind:B(`script`),script:k()}),F({kind:B(`native`)})]),eh=F({name:k(),consentScope:k()}),th=F({title:k().min(1),description:k().min(1).optional(),steps:P(k().min(1)).optional(),url:k().url().optional(),urlLabel:k().min(1).optional()}),nh={driver:Qm,configSchema:R(k(),N()).optional(),secretShape:R(k(),N()).optional(),setupInstructions:th.optional(),source:R(k(),N()),normalize:$m.default({kind:`native`}),actions:P(eh).default([]),completeness:z([`mirror`,`window`]).optional(),allowedOrigins:P(k()).optional(),notes:k().optional()},rh=Em.extend({kind:B(`connector-type`)});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),...nh});var ih=F({...Q,schemaVersion:B(1),kind:B(`connector-type`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),version:k(),releasedAt:k(),...nh,availableVersions:P(k()).default([])}),ah=z([`general`,`coding`,`reasoning`,`vision`,`embedding`]),oh=F({tag:k()}),sh=F({name:k(),sha256:k().regex(/^[a-f0-9]{64}$/),sizeBytes:j().int().positive()}),ch=F({huggingfaceRepo:k().regex(/^[A-Za-z0-9_\-.]+\/[A-Za-z0-9_\-.]+$/),revision:k().optional(),filename:k().optional(),sha256:k().regex(/^[a-f0-9]{64}$/).optional(),shards:P(sh).min(2).optional(),approxSizeBytes:j().int().positive(),residentBytes:j().int().positive().optional(),quantization:k().optional(),mmproj:F({filename:k(),sha256:k().regex(/^[a-f0-9]{64}$/),sizeBytes:j().int().positive()}).optional(),draftModel:F({filename:k(),sha256:k().regex(/^[a-f0-9]{64}$/),sizeBytes:j().int().positive()}).optional()}).refine(e=>(!!e.filename&&!!e.sha256)!==(Array.isArray(e.shards)&&e.shards.length>=2),{message:`llamaCpp source must set exactly one of (filename + sha256) or shards[] (>=2)`}),lh=F({huggingfaceRepo:k().regex(/^[A-Za-z0-9_\-.]+\/[A-Za-z0-9_\-.]+$/),revision:k().optional(),filename:k().optional(),sha256:k().regex(/^[a-f0-9]{64}$/).optional(),shards:P(sh).min(2).optional(),approxSizeBytes:j().int().positive(),residentBytes:j().int().positive().optional(),kvBytesPerToken:j().int().positive().optional(),residentCtxTokens:j().int().positive().optional(),quantization:k().optional(),cacheExpertsBytes:j().int().positive().optional(),ssdStreaming:M().optional(),maxLaunchCtx:j().int().positive().optional()}).refine(e=>(!!e.filename&&!!e.sha256)!==(Array.isArray(e.shards)&&e.shards.length>=2),{message:`ds4 source must set exactly one of (filename + sha256) or shards[] (>=2)`}),uh=F({huggingfaceRepo:k().regex(/^[A-Za-z0-9_\-.]+\/[A-Za-z0-9_\-.]+$/),revision:k().optional(),files:P(F({name:k(),sha256:k().regex(/^[a-f0-9]{64}$/),sizeBytes:j().int().positive()})).min(1),approxSizeBytes:j().int().positive(),residentBytes:j().int().positive().optional(),quantization:k().optional(),chatTemplate:k().optional(),disabledReason:k().optional()}),dh=Em.extend({kind:B(`chat-model`),maker:F({name:k().min(1),url:k().url().optional()}).optional(),parameterSize:k(),supportsTools:M(),contextWindow:j().int().positive().optional(),kvBytesPerTokenF16:j().positive().optional(),kvFixedBytesF16:j().nonnegative().optional(),upstream:k().url().optional(),category:ah.optional(),style:vm.optional(),behaviors:P(bm).optional(),tuning:bf.optional()});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),approxSizeBytes:j().int().positive(),ollama:oh.optional(),llamaCpp:ch.optional(),mlx:uh.optional(),ds4:lh.optional(),notes:k().optional()});var fh=F({sniffThresholds:F({inlineJsMinBytes:j().int().min(1e3).optional(),htmlMinBytes:j().int().min(1e3).optional()}).optional()}),ph=F({...Q,schemaVersion:B(1),kind:B(`chat-model`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),maker:F({name:k().min(1),url:k().url().optional()}).optional(),logo:k().optional(),license:k().optional(),...wm,...Tm,version:k(),releasedAt:k(),parameterSize:k(),approxSizeBytes:j().int().positive(),supportsTools:M(),contextWindow:j().int().positive().optional(),kvBytesPerTokenF16:j().positive().optional(),kvFixedBytesF16:j().nonnegative().optional(),upstream:k().url().optional(),category:ah.optional(),style:vm.optional(),behaviors:P(bm).optional(),tuning:bf.optional(),evalHints:fh.optional(),ollama:oh.optional(),llamaCpp:ch.optional(),mlx:uh.optional(),ds4:lh.optional(),notes:k().optional(),availableVersions:P(k()).default([])}),mh=z([`general`,`artistic`,`photographic`]),hh=z([`low`,`mid`,`high`,`workstation`]),gh=F({role:z([`vae`,`clip_l`,`clip_g`,`t5xxl`,`llm`]),downloadUrl:k().url(),sha256:k().regex(/^[a-f0-9]{64}$/),approxSizeBytes:j().int().positive()}),_h=Em.extend({kind:B(`image-model`),recommendedSteps:j().int().positive().default(20),widthRange:F({min:j().int().positive(),max:j().int().positive()}).optional(),heightRange:F({min:j().int().positive(),max:j().int().positive()}).optional(),upstream:k().url().optional(),category:mh.optional(),weightsKind:z([`checkpoint`,`diffusion-model`]).default(`checkpoint`),supportsImg2Img:M().optional(),hardwareTier:hh,minRamGB:j().positive(),commercialUse:M()});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),downloadUrl:k().url(),sha256:k().regex(/^[a-f0-9]{64}$/),approxSizeBytes:j().int().positive(),quantization:k().optional(),auxiliaryFiles:P(gh).default([]),notes:k().optional()});var vh=F({...Q,schemaVersion:B(1),kind:B(`image-model`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),...wm,...Tm,version:k(),releasedAt:k(),downloadUrl:k().url(),sha256:k().regex(/^[a-f0-9]{64}$/),approxSizeBytes:j().int().positive(),quantization:k().optional(),recommendedSteps:j().int().positive().default(20),widthRange:F({min:j().int().positive(),max:j().int().positive()}).optional(),heightRange:F({min:j().int().positive(),max:j().int().positive()}).optional(),upstream:k().url().optional(),category:mh.optional(),weightsKind:z([`checkpoint`,`diffusion-model`]).default(`checkpoint`),supportsImg2Img:M().optional(),auxiliaryFiles:P(gh).default([]),hardwareTier:hh,minRamGB:j().positive(),commercialUse:M(),notes:k().optional(),availableVersions:P(k()).default([])}),yh=z([`ltx`,`ltx2`,`wan`]),bh=F({strategy:z([`diffusers-tree`,`single-file`]).default(`diffusers-tree`),pipelineClass:k().optional(),singleFileName:k().optional(),transformerClass:k().optional(),vaeDtype:z([`float32`,`bfloat16`]).optional(),audio:M().default(!1)}),xh=F({huggingfaceRepo:k().regex(/^[A-Za-z0-9_\-.]+\/[A-Za-z0-9_\-.]+$/),revision:k().optional(),files:P(F({name:k(),sha256:k().regex(/^[a-f0-9]{64}$/),sizeBytes:j().int().positive(),repo:k().regex(/^[A-Za-z0-9_\-.]+\/[A-Za-z0-9_\-.]+$/).optional(),revision:k().optional()})).min(1),approxSizeBytes:j().int().positive(),quantization:k().optional()}),Sh=F({min:j().int().positive(),max:j().int().positive()}),Ch=Em.extend({kind:B(`video-model`),family:yh,load:bh.optional(),recommendedSteps:j().int().positive().default(40),guidanceScale:j().positive().optional(),defaultNumFrames:j().int().positive().default(97),numFramesRange:Sh.optional(),defaultFps:j().int().positive().default(24),fpsRange:Sh.optional(),maxDurationSeconds:j().positive().optional(),widthRange:Sh.optional(),heightRange:Sh.optional(),defaultWidth:j().int().positive().optional(),defaultHeight:j().int().positive().optional(),supportsImageToVideo:M().default(!1),upstream:k().url().optional(),hardwareTier:hh,minVramGB:j().positive(),commercialUse:M()});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),source:xh,notes:k().optional()});var wh=F({...Q,schemaVersion:B(1),kind:B(`video-model`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),...wm,...Tm,version:k(),releasedAt:k(),family:yh,load:bh.optional(),source:xh,approxSizeBytes:j().int().positive(),recommendedSteps:j().int().positive().default(40),guidanceScale:j().positive().optional(),defaultNumFrames:j().int().positive().default(97),numFramesRange:Sh.optional(),defaultFps:j().int().positive().default(24),fpsRange:Sh.optional(),maxDurationSeconds:j().positive().optional(),widthRange:Sh.optional(),heightRange:Sh.optional(),defaultWidth:j().int().positive().optional(),defaultHeight:j().int().positive().optional(),supportsImageToVideo:M().default(!1),upstream:k().url().optional(),hardwareTier:hh,minVramGB:j().positive(),commercialUse:M(),notes:k().optional(),availableVersions:P(k()).default([])});L(`kind`,[Nm,Fm,Bm,Xm,rh,dh,_h,Ch]);var Th=L(`kind`,[Pm,Lm,Vm,Zm,ih,ph,vh,wh]),Eh=z([`toolset`,`gezel-template`,`craftbook-template`,`project-type`,`connector-type`,`chat-model`,`image-model`,`video-model`]),Dh=F({sourceId:k(),kind:Eh,manifest:Th,logoUrl:k().optional(),iconSvg:k().optional()});F({items:P(Dh)}),Dh.extend({readme:k().optional(),about:k().optional()}),F({versions:P(F({version:k(),releasedAt:k(),yanked:M()}))});var Oh={toolsetId:k(),sourceId:k(),version:k(),installedAt:k(),installPath:k().optional()},kh=F({...Oh,runtime:jm}),Ah=Am.extend({sha256:k().regex(/^(?:sha256-[A-Za-z0-9+/]{43}=|sha384-[A-Za-z0-9+/]{64}|sha512-[A-Za-z0-9+/]{86}==)$/)});I([kh,F({...Oh,sourceId:B(`system`),runtime:Ah})]),F({toolsetId:k(),values:R(k(),k()).default({}),updatedAt:k()});var jh=F({kind:Eh,id:k(),version:k(),path:k(),sha256:k().regex(/^[a-f0-9]{64}$/)});F({schemaVersion:B(1),name:k().min(1),description:k().default(``),creator:k().optional(),createdAt:k().optional(),minSupportedVersion:k().optional(),items:P(jh).min(1),provenance:F({source:k().optional(),exportedFromProject:k().optional()}).optional()});var Mh=z([`llama-cpp`,`mlx`,`ds4`]),Nh=F({path:k().min(1).max(1024).refine(e=>!e.includes(`\\`)&&!e.includes(`\0`)&&!e.startsWith(`/`)&&e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`),`bundle path must be a contained POSIX-style relative path`),sizeBytes:j().int().nonnegative().max(2**53-1),sha256:k().regex(/^[a-f0-9]{64}$/),role:z([`model`,`installed-manifest`,`catalog-manifest`,`catalog-file`])}),Ph=F({name:k().min(1),shortName:k().min(1).optional(),class:Cm.optional(),url:k().url().optional()}),Fh=F({schemaVersion:B(1),kind:B(`gezel-model`),id:k().regex(Z),name:k().min(1).max(256),engine:Mh,createdAt:k().datetime(),createdBy:B(`gezel`),catalogVersion:k().optional(),approxSizeBytes:j().int().nonnegative().max(2**53-1),license:Ph.optional(),files:P(Nh).min(2).max(16384)});F({importId:k().uuid(),manifest:Fh,alreadyInstalled:M(),warnings:P(k())});var Ih=z([`current`,`default`,`development`]),Lh=F({source:Ih,sourceLabel:k().min(1).max(128),engine:Mh,id:k().regex(Z),name:k().min(1).max(256),approxSizeBytes:j().int().nonnegative().max(2**53-1),catalogVersion:k().min(1),moving:M().default(!1)});F({available:M(),candidates:P(Lh)}),F({source:Ih,engine:Mh,id:k().regex(Z)}),F({ok:B(!0),engine:Mh,id:k().regex(Z),localRemoved:M(),warning:k().min(1).optional()});var Rh=F({label:k().min(1),path:k().min(1)}),zh=F({id:k(),kind:z([`command`,`output`]),content:k(),at:k(),resolvedFrom:k().optional(),stdout:k().optional(),stderr:k().optional(),exitCode:j().int().optional(),durationMs:j().int().nonnegative().optional(),truncated:M().optional(),errorMessage:k().optional(),fileReferences:P(Rh).optional(),cwd:k().optional()});F({threads:P(F({version:B(1),id:k(),projectId:k(),workingDir:k(),createdAt:k(),lastActivityAt:k(),archived:M().optional(),messages:P(zh)}).pick({id:!0,projectId:!0,workingDir:!0,createdAt:!0,lastActivityAt:!0,archived:!0}).extend({lastCommand:k().optional()}))}),F({workingDir:k(),input:k().min(1),columns:j().int().min(20).max(500).optional()}),F({threadId:k(),runId:k()}),L(`kind`,[F({kind:B(`message`),projectId:k(),threadId:k(),workingDir:k(),message:_o(()=>zh),runId:k().optional()}),F({kind:B(`workingDirChanged`),projectId:k(),threadId:k(),newWorkingDir:k()}),F({kind:B(`runStarted`),projectId:k(),threadId:k(),runId:k(),commandMessageId:k(),at:k(),cwd:k()}),F({kind:B(`outputChunk`),projectId:k(),threadId:k(),runId:k(),chunk:k()}),F({kind:B(`inputRequested`),projectId:k(),threadId:k(),runId:k(),promptLine:k(),mode:z([`text`,`password`,`yes-no`])}),F({kind:B(`openFile`),projectId:k(),threadId:k(),path:k(),source:B(`workspace`)})]);var Bh=F({threadId:k(),projectId:k(),workingDir:k(),threadCreatedAt:k(),threadLastActivityAt:k(),threadArchived:M().optional(),messageId:k(),msgKind:z([`command`,`output`]),content:k(),at:k(),resolvedFrom:k().optional(),stdout:k().optional(),stderr:k().optional(),exitCode:j().int().optional(),durationMs:j().int().nonnegative().optional(),truncated:M().optional(),errorMessage:k().optional(),fileReferences:P(Rh).optional(),cwd:k().optional()}),Vh=F({kind:z([`file`,`chat`]),filePath:k().optional(),checks:P(Pu).optional(),scripts:P(Iu).optional()}),Hh=F({version:B(1),id:k(),gezelId:k(),projectId:k(),providerName:X,model:k().optional(),modelSource:z([`capability-routing`]).optional(),nightShift:M().optional(),engineKey:k().optional(),reasoningEffort:k().optional(),title:k(),createdAt:k(),lastActivityAt:k(),archived:M().optional(),messages:P(hp),providerState:F({copilotSessionId:k().optional(),openaiPreviousResponseId:k().optional(),claudeCliSessionId:k().optional(),codexCliThreadId:k().optional()}),aboutSnapshot:k().optional(),roleBasedNameOnlyMode:M().optional(),resumeFailed:M().optional(),deliverableGatePlateau:F({signatureHash:k(),count:j().int().nonnegative(),stage:j().int().min(0).max(3),at:k()}).optional(),lastTurnError:k().optional(),lastTurnErrorDetail:gp.optional(),taskRef:k().optional(),stepId:k().optional(),lastImageGeneration:F({prompt:k(),negativePrompt:k().optional(),artifactPath:k(),seed:j().int().optional(),model:k().optional(),at:k()}).optional(),craftbookRef:k().optional(),consultationMode:M().optional(),expectedDeliverable:Vh.optional(),scriptTools:P(Gm).optional(),numCtx:j().int().positive().optional(),recall:F({at:k(),query:k(),hits:P(F({text:k(),scope:z([`gezel`,`project`,`workspace`]),day:k(),score:j(),kind:z([`fact`,`decision`,`pref`,`status`]).optional()}))}).optional(),summarizedAt:k().optional(),summarizedUpTo:j().int().nonnegative().optional(),extractedUpTo:j().int().nonnegative().optional(),compactionCount:j().int().nonnegative().optional(),lastCompactedAt:k().optional()}).pick({id:!0,gezelId:!0,projectId:!0,providerName:!0,model:!0,title:!0,createdAt:!0,lastActivityAt:!0,archived:!0,lastTurnError:!0,taskRef:!0,stepId:!0}).extend({lastHumanActivityAt:k().optional(),lastMessagePreview:k().max(200).optional(),involvedGezelIds:P(k()).optional()});F({gezelId:k(),projectId:k().optional(),taskRef:k().optional(),stepId:k().optional(),craftbookRef:k().optional(),roleBasedNameOnlyMode:M().optional()}),F({sessions:P(Hh)}),F({message:k().min(1),mentions:P(k().min(1)).max(10).optional(),passiveCcGezelIds:P(k().min(1)).max(5).optional(),nudge:M().optional()}),F({accepted:B(!0),sessionId:k()});var Uh=F({queueId:k(),text:k(),preview:k(),enqueuedAt:k(),nudge:M()});F({sessionId:k(),entries:P(Uh)}),F({message:k().min(1)}),F({updated:B(!0),entry:Uh}),F({message:k().min(1)}),F({messages:P(F({sessionId:k(),gezelId:k(),projectId:k(),sessionTitle:k(),sessionCreatedAt:k(),sessionLastActivityAt:k(),sessionArchived:M().optional(),sessionProviderName:X,sessionModel:k().optional(),sessionLastTurnError:k().optional(),taskRef:k().optional(),stepId:k().optional(),handoffFrom:F({gezelId:k(),sessionId:k()}).optional(),role:z([`user`,`assistant`]),content:k(),at:k(),from:F({gezelId:k(),gezelName:k()}).optional(),nudge:M().optional(),referencedArtifacts:P(k()).optional(),referencedTasks:P(k()).optional(),toolCalls:P(mp).optional(),intents:P(F({label:k(),afterChars:j().int().min(0)})).optional(),pendingQuestionId:k().optional(),warnings:P(k()).optional(),reasoning:k().optional(),reasoningDurationMs:j().int().nonnegative().optional(),attemptedToolCalls:P(F({body:k(),reason:k().optional()})).optional()})),hasMore:M(),nextCursor:k().optional(),terminalEntries:P(Bh).optional()});var Wh=z([`up-to-date`,`updated`,`incompatible`,`error`,`blocked`]),Gh=F({at:k(),outcome:Wh,message:k().optional(),version:k().optional(),regressions:P(F({kind:k(),id:k()})).max(25).optional()});F({enabled:M(),mode:z([`bundled`,`live`,`overridden`]),bundledVersion:k(),activeVersion:k().nullable(),lastCheck:Gh.nullable(),updateInProgress:M()});var Kh=z([`nudge_budget_exhausted`,`context_loop`,`gate_exhausted`,`step_redrive_exhausted`,`turn_aborted`,`deliverable_plateau`]),qh=L(`kind`,[F({kind:B(`corrective_prompt`),prompt:k().min(1)}),F({kind:B(`rewrite_step`),stepId:k().min(1),prompt:k().min(1),name:k().optional(),deliverable:k().optional()}),F({kind:B(`rewrite_craftbook`),document:k().min(1),rationale:k().min(1)}),F({kind:B(`takeover_step`),instruction:k().min(1)}),F({kind:B(`stand_down`),reason:k().min(1)})]),Jh=z([`silent_stall`,`tool_loop`,`capability_ceiling`,`task_shape`,`context_pressure`,`unknown`]),Yh=F({diagnosis:k().min(1),failureClass:Jh,action:qh,confidence:z([`low`,`medium`,`high`])}),Xh=F({record:B(`case.opened`),caseId:k().min(1),ts:k().min(1),trigger:Kh,sessionId:k().optional(),gezelId:k().min(1),projectId:k().optional(),taskRef:k().optional(),stepId:k().optional(),providerName:k().min(1),model:k().optional(),modelTier:k().optional(),consultProviderName:k().min(1),consultModel:k().optional(),signals:R(k(),N()),verdict:Yh.optional(),applied:M(),consultDurationMs:j().int().nonnegative(),promptChars:j().int().nonnegative(),responseChars:j().int().nonnegative(),debug:F({prompt:k(),rawResponse:k()}).optional()}),Zh=z([`unblocked`,`re_triggered`,`gave_up`,`takeover_completed`,`takeover_failed`,`unknown`]);L(`record`,[Xh,F({record:B(`case.closed`),caseId:k().min(1),ts:k().min(1),outcome:Zh,turnsObserved:j().int().nonnegative()})]);var Qh=F({label:k().max(60),target:L(`kind`,[F({kind:B(`project`),projectId:k()}),F({kind:B(`task`),projectId:k(),taskRef:k()}),F({kind:B(`view`),view:z([`projects`,`gezels`,`documents`,`settings`])})])}),$h=F({projectId:k(),taskRef:k(),title:k()}),eg=F({headline:k().max(120),cta:Qh.optional(),report:k(),generatedAt:k(),trigger:z([`auto`,`manual`]),actions:P($h).default([])});F({headline:k(),cta:Qh.optional(),report:k(),actions:P(F({projectId:k(),title:k(),description:k()})).optional()}),F({lastRunAt:k().optional(),inputHash:k().optional(),runDay:k().optional(),runsOnDay:j().int().nonnegative().optional(),recentActionKeys:P(k()).optional()}),F({lastActivityAt:k()}),F({report:eg.nullable(),budget:F({runsToday:j().int().nonnegative(),maxRunsPerDay:j().int().positive(),lastRunAt:k().nullable()}),running:M()});var tg=z([`info`,`minor`,`major`]),ng=F({severity:tg,category:k().min(1).max(40),message:k().min(1).max(300),line:j().int().positive().optional()}),rg=z([`open`,`in_progress`,`resolved`,`dismissed`]),ig=z([`not_an_issue`,`duplicate`,`wont_fix`]),ag=ng.extend({ref:k().regex(/^BW-[1-9]\d*$/),id:k().min(1),fingerprint:k().min(1),path:k().min(1),status:rg,seen:M(),stale:M(),taskRef:k().optional(),dismissalReason:ig.optional(),createdAt:k(),lastSeenAt:k(),lastCheckedAt:k().optional(),seenAt:k().optional(),resolvedAt:k().optional(),dismissedAt:k().optional()});F({notes_md:k().min(1),issues:P(ng),health:j().int().min(1).max(10),health_reason:k().min(1)});var og=F({notesMd:k(),issues:P(ng),health:j().int().min(1).max(10),healthReason:k(),model:k().nullable(),provider:k().nullable().optional(),gezelId:k().nullable().optional(),gezelName:k().nullable().optional(),appVersion:k().nullable().optional(),reviewedAt:k().nullable()});function sg(e){if(!e.model)return null;let t=[`Reviewed by ${e.model}${e.provider?` (${e.provider})`:``}`];return e.gezelName&&t.push(e.gezelName),e.appVersion&&t.push(e.appVersion===`0.0.0`?`gezel dev`:`gezel ${e.appVersion}`),e.reviewedAt&&t.push(e.reviewedAt.slice(0,10)),t.join(` · `)}F({github:Cp.optional(),exists:M(),originMatches:M().optional(),branch:k().optional(),defaultBranch:k().optional(),ahead:j().int().optional(),behind:j().int().optional(),dirty:M().optional(),changesCount:j().int().optional(),conflictedCount:j().int().optional(),mergeInProgress:M().optional(),hasUpstream:M().optional(),hasPat:M(),credentialSource:z([`pat`,`env`,`gh`,`none`])}),F({ok:B(!0),checkoutDir:k(),branch:k().optional(),adopted:M()}),F({branch:k().min(1),create:M().optional()}),F({local:P(k()),remote:P(k()),current:k().optional()}),F({ok:B(!0),fetched:M()}),F({message:k().min(1),allowEmpty:M().optional()}),F({ok:B(!0),sha:k(),filesChanged:j().int()}),F({ok:B(!0),pushed:M(),rejected:z([`non-fast-forward`,`auth`,`unknown`]).optional()});var cg=F({number:j().int(),title:k(),author:k(),headRef:k(),baseRef:k(),draft:M(),updatedAt:k(),url:k()});F({pulls:P(cg)}),cg.extend({body:k(),state:k(),merged:M(),mergeable:M().nullable().optional(),additions:j().int(),deletions:j().int(),changedFiles:j().int()}),F({files:P(F({filename:k(),status:k(),additions:j().int(),deletions:j().int(),changes:j().int(),patch:k().optional(),patchChars:j().int().nonnegative().optional(),patchTruncated:M().optional(),previousFilename:k().optional()})),allFiles:j().int().nonnegative().optional(),totalFiles:j().int().nonnegative().optional(),offset:j().int().nonnegative().optional(),limit:j().int().positive().optional(),hasMore:M().optional(),nextOffset:j().int().nonnegative().optional(),includesPatch:M().optional()}),F({comments:P(F({id:j(),author:k(),body:k(),createdAt:k(),kind:z([`issue`,`review`]),path:k().optional()}))}),F({number:j().int(),diff:k(),path:k().optional(),offset:j().int().nonnegative().optional(),returnedChars:j().int().nonnegative().optional(),totalChars:j().int().nonnegative().optional(),truncated:M().optional(),nextOffset:j().int().nonnegative().optional()}),F({body:k().min(1)}),F({id:j(),url:k()}),F({title:k().min(1),body:k().optional(),head:k().min(1),base:k().min(1),draft:M().optional()}),F({number:j().int(),url:k()}),F({runs:P(F({id:j(),name:k(),status:k(),conclusion:k().nullable(),createdAt:k(),url:k()}))}),F({state:z([`success`,`failure`,`pending`,`unknown`]),checks:P(F({name:k(),status:k(),conclusion:k().nullable(),url:k().optional()}))});var lg=z([`modified`,`added`,`deleted`,`renamed`,`conflicted`]),ug=F({path:k(),oldPath:k().optional(),kind:lg,additions:j().int().optional(),deletions:j().int().optional(),binary:M().optional()});F({changes:P(ug),total:j().int(),truncated:M()}),F({path:k(),kind:lg,oldPath:k().optional(),binary:M(),truncated:M(),diff:k().optional(),additions:j().int().optional(),deletions:j().int().optional()}),F({paths:P(k().min(1)).min(1).optional(),all:M().optional()}).refine(e=>!!e.all!=!!e.paths?.length,{message:"Pass exactly one of `paths` or `all`."}),F({ok:B(!0),discarded:j().int()});var dg=F({sha:k(),shortSha:k(),author:k(),email:k().optional(),date:k(),subject:k(),filesChanged:j().int(),additions:j().int(),deletions:j().int()});F({commits:P(dg),hasMore:M()}),F({sha:k(),shortSha:k(),author:k(),date:k(),subject:k(),files:P(F({path:k(),additions:j().int().optional(),deletions:j().int().optional(),binary:M().optional()})),diff:k().optional(),truncated:M()}),F({state:z([`synced`,`needs-save`,`conflicts`,`auth`,`offline`,`error`]),pulled:j().int(),pushed:j().int(),merged:M().optional(),branch:k().optional(),conflictedFiles:P(k()).optional(),message:k().optional()});var fg=z([`both-modified`,`both-added`,`deleted-by-us`,`deleted-by-them`]),pg=F({path:k(),kind:fg});F({inMerge:M(),conflicts:P(pg)}),F({path:k(),base:k().optional(),ours:k().optional(),theirs:k().optional(),binary:M(),tooLarge:M()}),F({path:k().min(1),choice:z([`mine`,`theirs`,`custom`]),content:k().optional()}).refine(e=>e.choice!==`custom`||e.content!==void 0,{message:"`content` is required when choice is `custom`."}),F({ok:B(!0),remaining:j().int()}),F({message:k().optional()}),F({ok:B(!0),sha:k()}),F({ok:B(!0)}),F({message:k()}),F({path:k().min(1)}),F({path:k(),merged:k()});var mg=z([`commit`,`pr`]),hg=z([`running`,`complete`,`canceled`,`error`]),gg=F({id:k().min(1),kind:mg,status:hg,createdAt:k(),settledAt:k().optional(),outcome:z([`complete`,`canceled`]).optional(),error:k().optional(),taskRef:k().min(1),gezelId:k().optional(),branch:k(),headSha:k(),baseRef:k().optional(),baseSha:k().optional(),filesChanged:j().int(),additions:j().int().optional(),deletions:j().int().optional(),commitCount:j().int().optional(),filesTruncated:M(),diffTruncated:M(),manifestPath:k(),diffPath:k(),reportPath:k()}).extend({taskStatus:z([`draft`,`paused`,`active`,`complete`,`canceled`]).optional(),needsAttention:M().optional(),activeStepName:k().optional(),stepsTotal:j().int().optional(),stepsComplete:j().int().optional(),assigneeName:k().optional()});F({kind:mg}),F({ok:B(!0),review:gg}),F({reviews:P(gg)}),F({ok:B(!0),review:gg}),F({version:B(1),reviewId:k().min(1),kind:mg,projectId:k().min(1),createdAt:k(),branch:k(),headSha:k(),baseRef:k(),baseSha:k(),files:P(ug),totalFiles:j().int(),filesTruncated:M(),diffFile:k(),diffChars:j().int(),diffTruncated:M(),commits:P(dg).optional(),commitsTruncated:M().optional(),notes:P(k())});var _g=z([`webhook`]),vg=F({url:k().url(),method:z([`POST`,`PUT`]).optional(),headers:R(k(),k()).optional(),bodyTemplate:k().optional(),bodyContentType:k().optional()}),yg=F({default:_g.optional(),webhook:vg.optional()});F({name:_g,configured:M(),ready:M(),lastError:k().optional(),detail:R(k(),N()).optional()}),F({channel:_g.optional(),message:k().min(1),metadata:R(k(),N()).optional()}),I([F({ok:B(!0),id:k().optional(),channel:_g}),F({ok:B(!1),error:k(),channel:_g.optional()})]);var bg=z([`llama-server`,`ds4-server`,`sd-server`,`whisper-server`,`uv`]);L(`type`,[F({type:B(`progress`),bytesWritten:j().nonnegative(),totalBytes:j().nonnegative()}),F({type:B(`retrying`),attempt:j().int().positive(),maxAttempts:j().int().positive(),delayMs:j().nonnegative(),reason:k()}),F({type:B(`verifying`),what:z([`sha256`,`signature`])}),F({type:B(`done`),binPath:k(),cached:M()}),F({type:B(`error`),error:k()})]);var xg=F({name:bg,installed:M(),path:k().optional()});F({release:k(),pinned:M(),platformKey:k().nullable(),llamaBackend:z([`cuda`,`vulkan`,`metal`,`cpu`]).optional(),engines:P(xg)});var Sg=F({id:k(),name:k(),kind:k(),lineStart:j().int().positive(),lineEnd:j().int().positive(),signature:k().optional(),parent:k().optional()});F({path:k().min(1)}),F({path:k(),lang:k().nullable(),summary:k().nullable().optional(),symbols:P(Sg),totalLines:j().int().nonnegative(),engine:z([`index`,`live`,`unavailable`]),truncated:M(),review:og.optional()}),F({name:k().min(1),kind:k().optional(),maxResults:j().int().positive().max(200).optional()}),F({matches:P(Sg.extend({path:k()})),truncated:M(),engine:z([`index`,`unavailable`])}),F({name:k().min(1),path:k().optional()}),F({found:M(),path:k().optional(),name:k().optional(),kind:k().optional(),lineStart:j().int().positive().optional(),lineEnd:j().int().positive().optional(),signature:k().optional(),source:k().optional()}),F({name:k().min(1),glob:k().optional(),maxResults:j().int().positive().max(500).optional()}),F({references:P(F({path:k(),line:j().int().positive(),text:k()})),truncated:M(),engine:z([`ripgrep`,`javascript`])}),F({path:k().min(1)});var Cg=F({ruleId:k(),category:k(),severity:z([`critical`,`high`,`medium`,`low`,`info`]),line:j().int().positive().nullable(),title:k(),source:k()}),wg=F({path:k(),viaBinding:M()}),Tg=F({name:k(),kind:k(),lineStart:j().int().positive(),lineEnd:j().int().positive(),signature:k().optional(),parent:k().optional(),importedBy:P(wg),importedByTruncated:M(),uses:P(F({name:k(),from:k(),inRepo:M()})),usedInFileBy:P(k()),findings:P(Cg),summary:k().optional()});F({path:k(),lang:k().nullable(),totalLines:j().int().nonnegative(),summary:k().nullable(),importedBy:P(F({path:k(),names:P(k())})),importedByTruncated:M(),imports:P(F({specifier:k(),resolvedPath:k().nullable(),names:P(k()),default:M(),namespace:M()})),fileFindings:P(Cg),symbols:P(Tg),symbolsTruncated:M(),engine:z([`index`,`live`,`unavailable`]),review:og.optional()}),F({path:k().min(1)}),F({path:k(),found:M(),pending:M().optional(),review:og.optional(),trackedIssues:P(ag).optional(),eligible:M().optional()}),F({severity:tg.optional(),category:k().optional(),path:k().optional(),status:rg.optional(),includeClosed:M().optional(),maxResults:j().int().positive().max(1e3).optional()}),F({issues:P(ag),counts:F({total:j().int().nonnegative(),bySeverity:R(k(),j().int().nonnegative()),byCategory:R(k(),j().int().nonnegative())}),truncated:M(),indexed:M(),reviewedFiles:j().int().nonnegative(),eligibleFiles:j().int().nonnegative(),reviewers:P(F({model:k().nullable(),provider:k().nullable(),gezelName:k().nullable(),files:j().int().nonnegative()})).optional()}),F({ref:k().regex(/^BW-[1-9]\d*$/)}),F({issue:ag}),F({ref:k().regex(/^BW-[1-9]\d*$/),status:rg.optional(),seen:M().optional(),dismissalReason:ig.optional()}).refine(e=>e.status!==void 0||e.seen!==void 0,{message:`status or seen is required`}).refine(e=>e.status===`dismissed`?e.dismissalReason!==void 0:e.dismissalReason===void 0,{message:`dismissalReason is required only when status is dismissed`}),F({issue:ag}),F({ref:k().regex(/^BW-[1-9]\d*$/),gezelId:k().min(1),message:k().min(1)}),F({issue:ag,taskRef:k().min(1),gezelId:k().min(1),gezelName:k().min(1),enqueued:M()}),F({path:k().optional()}),F({root:k(),languages:P(F({lang:k(),fileCount:j().int().nonnegative()})),areas:P(F({path:k(),fileCount:j().int().nonnegative(),purpose:k().optional()})),entryPoints:P(k()),keyFiles:P(k()),fileCount:j().int().nonnegative(),indexed:M(),architecture:k().optional(),health:F({reviewedFiles:j().int().nonnegative(),eligibleFiles:j().int().nonnegative(),avgHealth:j(),majorIssues:j().int().nonnegative(),minorIssues:j().int().nonnegative(),worstFiles:P(F({path:k(),health:j().int().min(1).max(10),reason:k().optional()})).max(5)}).optional()});var Eg=z([`user`,`machine-engine`,`legacy-full`]);F({ok:B(!0),version:k(),serviceRole:Eg.optional(),machineEngineConnected:M().optional(),startedAt:k(),nodeVersion:k().optional(),platform:k().optional(),llamaCppBackend:z([`cuda`,`vulkan`,`metal`,`cpu`]).optional(),llamaCppDetectedBackend:z([`cuda`,`vulkan`,`metal`,`cpu`]).optional(),llamaCppDetectedVendor:z([`amd`,`nvidia`,`intel`]).optional(),llamaCppQuarantinedBackends:P(z([`cuda`,`vulkan`,`metal`,`cpu`])).optional(),childProcessSpawn:z([`ok`,`denied`]).optional()});var Dg=z([`vram`,`unified`,`ram`]),Og=F({provider:k(),modelId:k(),reservedBytes:j().nonnegative(),replicaCount:j().int().positive()}),kg=z([`machine-engine`,`app-engine`,`development-engine`,`gezel-engine`,`external`]),Ag=F({pid:j().int().positive(),name:k().optional(),dedicatedBytes:j().nonnegative(),owner:kg}),jg=F({provider:k(),modelId:k(),replicaIdx:j().int().nonnegative(),running:M(),active:M(),pid:j().int().positive().optional(),lastUsedAt:j().nonnegative().nullable(),unloadAt:j().nonnegative().nullable(),idleTimeoutMs:j().nonnegative(),releaseReason:z([`idle`,`memory-pressure`]).nullable()});F({kind:Dg,totalBytes:j().nonnegative(),usedBytes:j().nonnegative().nullable(),gezelBytesEstimated:j().nonnegative(),gezelBytesObserved:j().nonnegative().nullable(),gezelInfraBytes:j().nonnegative(),gezelModelWeightsBytes:j().nonnegative(),gezelModelCacheBytes:j().nonnegative(),engineReservedBytes:j().nonnegative(),engineBudgetBytes:j().nonnegative().nullable(),enginePools:F({kind:z([`unified`,`discrete-gpu`,`system-ram`]),vramBytes:j().nonnegative(),ramShareBytes:j().nonnegative(),fastBytes:j().nonnegative()}).nullable().optional(),engineRamSpillover:F({allowed:M(),auto:M(),overridden:M(),coResidencyBytes:j().nonnegative()}).optional(),residentModels:P(Og),engineLifecycles:P(jg).optional(),gpuProcesses:P(Ag).optional(),gezelEngineProcessCount:j().int().nonnegative(),orphanedGezelEngineProcessCount:j().int().nonnegative(),otherBytes:j().nonnegative().nullable(),cachedBytes:j().nonnegative().nullable().optional(),freeBytes:j().nonnegative().nullable(),sampledAt:k(),source:z([`device-health`,`system-memory`,`capacity-only`]),deviceNames:P(k())}),F({sizeBytes:j().int().positive().max(10*1024**4)}),F({known:M(),ok:M(),freeBytes:j().nonnegative(),requiredBytes:j().positive(),storageLocation:B(`Gezel model storage`)}),F({version:k(),sampledAt:k(),runtime:F({nodeVersion:k(),platform:k(),arch:k(),osRelease:k(),platformKey:k().nullable()}),hardware:F({totalRamBytes:j().nonnegative(),gpuVramBytes:j().nonnegative().nullable(),gpuMemoryKind:z([`discrete`,`integrated`,`unified`,`none`,`unknown`]).optional(),usableBytes:j().nonnegative(),budgetBytes:j().nonnegative().optional(),source:z([`darwin-unified`,`gpu-nvidia`,`gpu-vulkan`,`gpu-integrated`,`system-ram-fallback`]),gpuVendor:z([`amd`,`nvidia`,`intel`]).optional(),description:k(),tier:z([`tiny`,`small`,`medium`,`large`]),gpuDevices:P(F({name:k(),totalMiB:j().nonnegative(),computeCapability:k().optional(),driverVersion:k().optional()}))}),engine:F({nativeRelease:k(),nativePinned:M(),installedEngines:P(bg),llamaCppBackend:z([`cuda`,`vulkan`,`metal`,`cpu`]).optional(),llamaCppDetectedBackend:z([`cuda`,`vulkan`,`metal`,`cpu`]).optional(),llamaCppBackendOverride:z([`auto`,`cuda`,`vulkan`,`metal`,`cpu`]).optional(),llamaCppRevision:k().optional(),llamaCppBuildBackend:k().optional(),cudaArchitectures:P(k()).optional(),cudaToolkit:k().optional()}),models:F({defaultProvider:X,defaultModel:k().optional(),installed:P(F({id:k(),provider:z([`llama-cpp`,`mlx`,`ds4`]),parameterSize:k().optional()}))}),localEngines:P(F({provider:z([`llama-cpp`,`mlx`,`ds4`]),model:k().optional(),pid:j().optional(),startedAt:k().optional(),contextPerSlot:j().optional(),contextTotal:j().optional(),slots:j().optional(),kvCacheType:k().optional(),backend:k().optional()})).optional()}),F({home:k(),scope:z([`machine`,`user`]),version:k(),startedAt:k(),firstRunCompleted:M(),usage:F({gezelCount:j().int().nonnegative(),projectCount:j().int().nonnegative(),sessionCount:j().int().nonnegative(),everUsed:M()}),provider:X.optional(),defaultModel:k().optional(),memory:F({totalBytes:j().nonnegative(),freeBytes:j().nonnegative()}),engines:P(F({key:k(),residentBytes:j().nonnegative()}))});var Mg=F({kind:z([`pat`,`oauth`]),login:k().optional(),name:k().optional(),avatarUrl:k().optional(),scopes:P(k()).optional(),acquiredAt:k().optional()}),Ng=F({documents:k().min(1).optional(),gezels:k().min(1).optional(),projects:k().min(1).optional()}),Pg=F({level:z([`super-lockdown`,`lockdown`,`free`,`custom`]),allowFileEdits:M(),allowExternalChat:M(),allowExternalServices:M(),allowScriptExecution:M(),allowAppNetwork:M()}),Fg=F({mode:z([`off`,`observe`,`guard`]).optional(),maxStartTemperatureC:j().min(40).max(110).optional(),resumeTemperatureC:j().min(35).max(105).optional(),minThermalMarginC:j().min(0).max(40).optional(),pollIntervalMs:j().int().min(500).max(6e4).optional(),maxWaitMs:j().int().min(0).max(36e5).optional(),consecutiveHealthySamples:j().int().min(1).max(20).optional(),onTelemetryFailure:z([`allow`,`block`]).optional()}),Ig=F({format:z([`docx`,`pdf`,`pptx`,`md`,`html`]),themeId:k().min(1),transformStyle:k().min(1),pageSize:z([`letter`,`a4`]),htmlStyle:z([`rendered`,`plain`]),htmlBundle:z([`single`,`zip`])}),Lg=z([`adaptive`,`model-max`]);F({policy:Lg}),F({overrides:R(k(),j().int().positive())}),F({contextTokens:j().int().min(32768).max(4194304).nullable()});var Rg=F({enabled:M().default(!1),bindAddress:k().optional(),port:j().int().positive().optional(),priority:z([`equal`,`below-local`,`above-local`]).optional(),reserveLocalGb:j().nonnegative().optional(),allowModels:P(k()).optional(),limits:F({maxConcurrentPerDevice:j().int().positive().optional(),maxChatPerDevice:j().int().positive().optional(),requestsPerMinute:j().int().positive().optional()}).optional()}),zg=5*6e4,Bg=F({provider:X.optional(),hosting:z([`auto`,`machine-service`,`per-user`]).optional(),service:F({url:k(),token:k()}).optional(),localEngineIdleTimeoutMs:j().int().min(6e4).optional(),deviceSafety:Fg.optional(),roleBasedNameOnlyMode:M().optional(),showPoppetjes:M().optional(),narrateAssistantReplies:M().optional(),githubToken:k().optional(),githubAuth:Mg.optional(),oauthClients:R(k(),F({clientId:k()})).optional(),openaiApiKey:k().optional(),openaiOrganization:k().optional(),anthropicApiKey:k().optional(),googleAiApiKey:k().optional(),imageProvider:z([`sd-cpp`,`google-ai`,`openai`,`mock`]).optional(),defaultImageModel:F({"google-ai":k().optional(),openai:k().optional()}).optional(),imageGenerationConfirmation:I([B(`always-allow`),B(`ask`),F({mode:B(`snooze`),until:k()})]).optional(),gpuMemoryPolicy:z([`auto`,`coexist`,`swap`]).optional(),videoProvider:z([`diffusers`,`mock`]).optional(),defaultVideoModel:k().optional(),videoGenerationConfirmation:I([B(`always-allow`),B(`ask`),F({mode:B(`snooze`),until:k()})]).optional(),recognitionProvider:z([`llama-cpp`,`mlx`,`mock`]).optional(),defaultRecognitionModel:k().optional(),recognition:F({mode:z([`auto`,`always`,`off`]).optional(),modes:P($f).optional(),maxImagesPerTurn:j().int().min(1).max(16).optional(),timeoutMsPerImage:j().int().min(5e3).optional(),maxDigestChars:j().int().min(200).optional(),maxMegapixels:j().positive().optional()}).optional(),nativeVision:R(k(),M()).optional(),webhookBearerToken:k().optional(),webhookBasicAuth:k().optional(),braveSearchApiKey:k().optional(),tavilyApiKey:k().optional(),ollamaBaseUrl:k().optional(),autoStartOllama:M().optional(),defaultModel:F({copilot:k().optional(),openai:k().optional(),anthropic:k().optional(),"anthropic-cli":k().optional(),"codex-cli":k().optional(),ollama:k().optional(),"llama-cpp":k().optional(),mlx:k().optional(),ds4:k().optional(),remote:k().optional()}).optional(),defaultReasoningEffort:F({copilot:k().optional(),openai:k().optional(),anthropic:k().optional(),"anthropic-cli":k().optional(),"codex-cli":k().optional(),ollama:k().optional(),"llama-cpp":k().optional(),mlx:k().optional(),ds4:k().optional(),remote:k().optional()}).optional(),modelTuning:R(k(),bf).optional(),modelFitness:R(k(),N()).optional(),remoteServing:Rg.optional(),fileReviews:F({enabled:M().default(!0),disabledKinds:P(k()).optional()}).optional(),modelTuningProfile:R(k(),k()).optional(),meesterGezelId:k().optional(),klerkGezelId:k().optional(),boekwachterGezelId:k().optional(),keurmeesterGezelId:k().optional(),openaiEndpoints:F({enabled:M().optional(),servingGezelId:k().optional(),supportingBehaviors:M().optional(),emulateOllama:M().optional()}).optional(),ollamaNumCtx:j().int().positive().optional(),ollamaStreamingIdleSec:j().int().positive().optional(),ollamaPreFirstByteIdleSec:j().int().positive().optional(),ollamaTurnTimeoutMin:j().int().positive().optional(),ollamaNumPredict:j().int().positive().optional(),ollamaThink:M().optional(),llamaCppModelPath:k().optional(),llamaCppBaseUrl:k().optional(),llamaCppNumCtx:j().int().positive().optional(),llamaCppContextSizing:Lg.optional(),modelContextOverrides:R(k(),j().int().positive()).optional(),ds4BaseUrl:k().optional(),ds4ModelPath:k().optional(),ds4NumCtx:j().int().positive().optional(),ds4SsdStreaming:M().optional(),ds4CacheExpertsGb:j().positive().optional(),llamaCppStreamingIdleSec:j().int().positive().optional(),llamaCppPreFirstByteIdleSec:j().int().positive().optional(),llamaCppBackendOverride:z([`auto`,`cuda`,`vulkan`,`metal`,`cpu`]).optional(),autoDownloadEngines:M().optional(),engineSignaturePolicy:z([`off`,`prefer`,`require`]).optional(),llamaCppKvCacheType:z([`f16`,`q8_0`,`q4_0`]).optional(),llamaCppMlock:M().optional(),llamaCppFlashAttn:I([M(),z([`on`,`off`,`auto`])]).optional(),llamaCppNGpuLayers:j().int().min(-1).optional(),llamaCppCpuMoe:M().optional(),llamaCppNCpuMoe:j().int().min(0).optional(),llamaCppCacheReuse:j().int().min(0).optional(),llamaCppSwaFull:M().optional(),llamaCppThreads:j().int().positive().optional(),llamaCppBatchSize:j().int().positive().optional(),llamaCppSpecType:z([`none`,`draft-mtp`,`draft-eagle3`,`draft-dflash`,`draft-simple`,`ngram-mod`,`ngram-simple`,`ngram-map-k`,`ngram-map-k4v`,`ngram-cache`]).optional(),llamaCppDraftModelPath:k().optional(),llamaCppSpecDraftNMax:j().int().positive().optional(),llamaCppExtraArgs:R(k(),I([k(),j(),M()])).optional(),llamaCppUbatchSize:j().int().positive().optional(),mlxBaseUrl:k().optional(),mlxModelPath:k().optional(),mlxNumCtx:j().int().positive().optional(),mlxPackageSpec:k().optional(),mlxKvBits:j().int().min(0).max(8).optional(),mlxPrefillStepSize:j().int().positive().optional(),localEngineMemoryGb:j().positive().nullable().optional(),allowRamSpillover:M().nullable().optional(),localEngineReplicas:R(k(),j().int().min(0)).optional(),localEngineReplicasMax:j().int().positive().optional(),pythonRuntime:F({source:z([`system-uv`,`system-python`,`bundled-uv`]),installerPath:k().optional(),uvVersion:k().optional(),pythonVersion:k().optional(),resolvedAt:k().optional()}).optional(),firstRunCompleted:M().optional(),securityPolicy:Pg.optional(),firstRunInstallError:k().optional(),copilotTurnTimeoutMin:j().int().positive().optional(),providerConcurrency:F({copilot:j().int().min(1).optional(),openai:j().int().min(1).optional(),anthropic:j().int().min(1).optional(),"anthropic-cli":j().int().min(1).optional(),"codex-cli":j().int().min(1).optional(),ollama:j().int().min(1).optional(),"llama-cpp":j().int().min(1).optional(),mlx:j().int().min(1).optional(),ds4:j().int().min(1).optional()}).optional(),cacheBudgetMb:F({mlx:j().int().min(64).optional(),"llama-cpp":j().int().min(64).optional()}).optional(),mlxDiskCacheBudgetMb:j().int().min(0).optional(),llamaCppDiskCacheBudgetMb:j().int().min(0).optional(),layeredPrefixCache:F({enabled:M().optional()}).optional(),batchedInference:F({enabled:M().optional()}).optional(),providerQueue:F({affinity:M().optional()}).optional(),taskRunner:F({tickIntervalMs:j().int().min(500).optional()}).optional(),taskBudget:F({enabled:M().optional(),softNudge:M().optional(),hardPause:M().optional(),scale:j().positive().optional(),limits:R(z([`tiny`,`small`,`medium`,`large`,`cloud`]),F({softTurns:j().int().positive().optional(),hardTurns:j().int().positive().optional(),softOutputTokens:j().int().positive().optional(),hardOutputTokens:j().int().positive().optional()}).partial()).optional()}).optional(),stuckStep:F({enabled:M().optional(),stallMs:j().int().positive().optional(),maxRedrives:j().int().positive().optional()}).optional(),autoRecall:F({enabled:M().optional(),topK:j().int().positive().optional(),minScore:j().optional()}).optional(),summarization:F({enabled:M().optional(),provider:X.optional(),model:k().optional(),minUserTurns:j().int().positive().optional(),idleHours:j().positive().optional()}).optional(),memory:F({maintenance:F({enabled:M().optional(),olderThanDays:j().int().min(2).optional(),minEntries:j().int().positive().optional()}).optional(),lessons:F({enabled:M().optional(),maxChars:j().int().positive().optional(),lookbackDays:j().int().positive().optional()}).optional()}).optional(),searchIndex:F({enabled:M().optional(),sessions:M().optional(),history:M().optional(),documents:M().optional()}).optional(),digest:F({enabled:M().optional()}).optional(),gildeUpdates:F({enabled:M().optional()}).optional(),meesterStatus:F({enabled:M().optional(),maxRunsPerDay:j().int().min(1).max(24).optional(),changeWindowHours:j().positive().optional()}).optional(),growth:F({enabled:M().optional()}).optional(),keurmeester:F({enabled:M().optional(),providerName:k().optional(),model:k().optional(),allowTakeover:M().optional(),maxConsultsPerSession:j().int().positive().optional(),maxConsultsPerTask:j().int().positive().optional(),cooldownMs:j().int().positive().optional()}).optional(),projectNudge:F({enabled:M().optional(),rapidIntervalMs:j().int().positive().optional(),slowIntervalMs:j().int().positive().optional(),recentActivityWindowMs:j().int().positive().optional(),rapidAttemptsBeforeBackoff:j().int().positive().optional(),firstNudgeGraceMs:j().int().nonnegative().optional()}).optional(),debugMode:M().optional(),showAdvancedFeatures:M().optional(),showWorkInProgressFeatures:M().optional(),resetTemplatesOnStartup:M().optional(),aiEngagementMode:z([`proactive`,`scheduled`,`reactive`,`off`]).optional(),showSystemTray:M().optional(),autoUpdateChecks:M().optional(),quitOnClose:M().optional(),themePref:z([`system`,`light`,`dark`]).optional(),documentExportOptions:Ig.optional(),sidebarSide:z([`left`,`right`]).optional(),homeGreetingCollapsed:M().optional(),workshopTempo:z([`gezellig`,`bedrijvig`,`druk`,`dolle-boel`]).optional(),nightShift:F({enabled:M().optional(),window:F({startHour:j().int().min(0).max(23),endHour:j().int().min(0).max(23)}).optional(),keepAwakeWhileRunning:M().optional(),wakeOnStart:M().optional(),modelOverride:F({enabled:M().optional(),provider:X.optional(),model:k().optional()}).optional()}).optional(),toolFilterMode:z([`always`,`never`,`small-model`]).optional(),channels:yg.optional(),sandboxCopilot:M().optional(),anthropicCli:F({binaryPath:k().optional(),manageRuntimeFiles:M().optional(),defaultPermissionMode:zd.optional(),extraModels:P(F({id:k(),name:k()})).optional(),poolSize:j().int().min(1).max(32).optional(),workerIdleSec:j().int().min(60).max(3600).optional()}).optional(),codexCli:F({binaryPath:k().optional(),manageRuntimeFiles:M().optional(),defaultPermissionMode:Vd.optional(),defaultReasoningEffort:z([`minimal`,`low`,`medium`,`high`,`xhigh`,`max`,`ultra`]).optional(),extraModels:P(F({id:k(),name:k()})).optional(),extraConfigOverrides:R(k(),k()).optional()}).optional(),executionDensity:z([`auto`,`flat`,`scaffold`]).optional(),playwrightHeadless:M().optional(),fetchUrl:F({allow:P(k()).optional(),deny:P(k()).optional()}).optional(),webSearch:F({provider:z([`brave`,`wikipedia`,`tavily`,`mock`]).optional(),fallbackProvider:z([`brave`,`wikipedia`,`tavily`]).optional(),defaultLimit:j().int().min(1).max(20).optional(),allow:P(k()).optional(),deny:P(k()).optional()}).optional(),projectMru:P(F({id:k(),at:j()})).optional(),recentTabs:P(L(`kind`,[F({kind:B(`project`),id:k(),at:j(),order:j()}),F({kind:B(`gezel`),id:k(),at:j(),order:j()}),F({kind:B(`document`),path:k(),at:j(),order:j()}),F({kind:B(`task`),ref:k(),at:j(),order:j()}),F({kind:B(`area`),area:z([`projects`,`gezels`,`documents`,`tasks`,`scripts`,`history`,`settings`,`benchmarks`]),at:j(),order:j()})])).optional(),externalFolders:Ng.optional()}),Vg=z([`projects`,`gezels`,`documents`,`tasks`,`craftbooks`,`scripts`,`history`,`settings`,`benchmarks`,`handboek`]);L(`kind`,[F({kind:B(`project`),id:k(),at:j(),order:j(),pinned:M().optional()}),F({kind:B(`gezel`),id:k(),at:j(),order:j(),pinned:M().optional()}),F({kind:B(`document`),path:k(),at:j(),order:j(),pinned:M().optional()}),F({kind:B(`task`),ref:k(),at:j(),order:j(),pinned:M().optional()}),F({kind:B(`area`),area:Vg,at:j(),order:j(),pinned:M().optional()}),F({kind:B(`script`),projectId:k(),name:k(),scope:z([`standard`,`user`]).optional(),at:j(),order:j(),pinned:M().optional()}),F({kind:B(`craftbook`),id:k(),source:z([`bundled`,`local`,`project`]).optional(),at:j(),order:j(),pinned:M().optional()}),F({kind:B(`craftbook-script`),craftbookId:k(),name:k(),at:j(),order:j(),pinned:M().optional()})]),Bg.extend({ollamaThink:M().nullable().optional(),firstRunInstallError:k().nullable().optional(),service:F({url:k(),token:k()}).nullable().optional(),llamaCppBaseUrl:k().nullable().optional(),llamaCppModelPath:k().nullable().optional(),llamaCppBackendOverride:z([`auto`,`cuda`,`vulkan`,`metal`,`cpu`]).nullable().optional(),llamaCppKvCacheType:z([`f16`,`q8_0`,`q4_0`]).nullable().optional(),llamaCppFlashAttn:I([M(),z([`on`,`off`,`auto`])]).nullable().optional(),llamaCppSpecType:z([`none`,`draft-mtp`,`draft-eagle3`,`draft-dflash`,`draft-simple`,`ngram-mod`,`ngram-simple`,`ngram-map-k`,`ngram-map-k4v`,`ngram-cache`]).nullable().optional(),llamaCppCpuMoe:M().nullable().optional(),llamaCppSwaFull:M().nullable().optional(),mlxBaseUrl:k().nullable().optional(),mlxModelPath:k().nullable().optional(),mlxPackageSpec:k().nullable().optional(),mlxKvBits:j().int().min(0).max(8).nullable().optional(),externalFolders:F({documents:k().min(1).nullable().optional(),gezels:k().min(1).nullable().optional(),projects:k().min(1).nullable().optional()}).nullable().optional()}),F({gezels:P(up)}),F({name:k().min(1),description:k().optional(),role:k().optional(),gender:ap.optional(),model:k().optional(),about:k().optional()}),F({state:sf,nextLevelXp:j().int(),activeTraits:P(cp),driftedTraitIds:P(k())}),F({proposalId:k().min(1)}),F({proposalId:k().min(1).optional()}),F({source:k()}),F({source:k()}),F({name:k().min(1)}),F({defaults:R(k(),N()).nullable()}),F({provider:X.nullable().optional(),model:k().nullable().optional(),reasoningEffort:k().nullable().optional(),numCtx:j().int().positive().nullable().optional(),autoRecall:M().nullable().optional(),font:k().nullable().optional(),sandboxCopilot:M().nullable().optional(),claudePermissionMode:zd.nullable().optional(),codexPermissionMode:Vd.nullable().optional(),tuning:bf.nullable().optional(),tuningProfile:qd.nullable().optional(),iconOverride:M().nullable().optional(),recognition:z([`auto`,`always`,`off`]).nullable().optional()}),F({instruction:k().optional()}),F({role:k().optional()}),F({provider:X,models:P(F({id:k(),name:k(),supportsReasoning:M().optional(),reasoningEfforts:P(k()).optional(),defaultReasoningEffort:k().optional(),contextWindow:j().optional(),supportsTools:M().optional(),parameterSize:k().optional()}))}),F({svg:k()});var Hg=F({timestamp:k(),svg:k()});F({current:k().nullable(),history:P(Hg)}),F({timestamp:k()}),F({poppetje:Rd}),F({seed:j().int().optional()});var Ug=z([`about`,`chat-composer`,`task-description`,`generic`]);F({text:k(),context:Ug.optional(),instruction:k().optional(),isSelection:M().optional(),subject:k().optional(),parentContext:k().optional()}),F({text:k()}),F({mode:z([`rewrite`,`insert`]).default(`rewrite`),text:k().default(``),instruction:k().optional(),context:Ug.optional(),subject:k().optional(),parentContext:k().optional(),textBefore:k().optional(),textAfter:k().optional()}),L(`type`,[F({type:B(`status`),phase:z([`queued`,`started`]),detail:k().optional()}),F({type:B(`thinking-delta`),text:k()}),F({type:B(`output-delta`),text:k()}),F({type:B(`done`),text:k()}),F({type:B(`error`),error:k()})]),F({path:k().min(1),content:k()});var Wg=k().trim().min(1).max(1024).refine(e=>{let t=e.replace(/\\/g,`/`);return!t.startsWith(`/`)&&!/^[A-Za-z]:\//.test(t)&&t.split(`/`).every(e=>e!==`..`)},{message:`must be a relative path without .. segments`}),Gg=L(`kind`,[F({kind:B(`documents`)}),F({kind:B(`project-artifacts`),projectId:k().trim().min(1)})]);F({markdown:k().max(5e6),selectedFile:Wg,format:z([`mp4`,`gif`]),source:Gg}),F({path:k().min(1)}),F({fromPath:k().trim().min(1),toPath:k().trim().min(1)}),F({gezelId:k(),messages:P(hp)}),F({message:k().min(1),projectId:k().optional(),expectedDeliverable:Vh.optional()}),F({accepted:B(!0),gezelId:k()}),F({fromGezelId:k().min(1),fromSessionId:k().optional(),projectId:k().optional(),text:k().min(1),expectedDeliverable:Vh.optional()}),F({accepted:B(!0),sessionId:k(),toGezelId:k(),toGezelName:k(),deduplicated:M().optional()}),F({jobTitle:k().min(1),preferredName:k().optional()}),F({gezelId:k(),name:k(),role:k(),action:z([`reused`,`created-from-gilde`,`created-bespoke`]),matchScore:j().optional(),templateId:k().optional(),alternatives:P(k()).optional()}),F({candidates:P(F({id:k(),label:k(),description:k().optional(),roleBasedName:k().optional(),group:z([`voorman`,`assignees`,`team`]).optional()}))}),F({projects:P(F({projectId:k(),projectName:k(),precedence:z([`voorman`,`assignment`,`session`,`fallback`]),lastActivityAt:k().optional()}))}),F({projectId:k(),gezelId:k(),sessionId:k(),prompt:k().min(1),choices:P(k()).max(20).optional(),allowWriteIn:M().optional(),multiSelect:M().optional(),taskRef:_m.optional(),documentPath:k().optional()}),F({questionId:k(),deduped:M().optional()}),F({projectId:k(),gezelId:k(),sessionId:k(),toolName:k().min(1),toolInput:R(k(),N())}),L(`behavior`,[F({behavior:B(`allow`),updatedInput:R(k(),N())}),F({behavior:B(`deny`),message:k()})]),F({fromGezelId:k().min(1),fromSessionId:k().min(1),toGezelIdOrName:k().min(1),projectId:k().optional(),question:k().min(1),timeoutMs:j().int().positive().optional(),taskRef:k().optional(),stepId:k().optional(),expectedDeliverable:Vh.optional()}),L(`outcome`,[F({outcome:B(`reply`),text:k(),toGezelId:k(),toGezelName:k(),sessionId:k()}),F({outcome:B(`error`),reason:z([`cycle`,`depth`,`self`,`not-found`,`engagement-off`,`timeout`,`target-error`,`target-deleted`,`delivery-failed`]),message:k()})]),F({selectedChoices:P(j().int().min(0)).optional(),writeIn:k().optional(),declined:M().optional(),silentSkip:M().optional(),npmInstallDecisions:P(Ff).optional()}),F({questions:P(Xf)}),F({kind:z([`artifact`,`document`,`workspace`]),path:k().min(1).max(4096)}),F({path:k().min(1)}),L(`mode`,[F({mode:B(`text`),content:k()}),F({mode:B(`markdown`),content:k(),sidecarPath:k().min(1)}),F({mode:B(`media`),mediaKind:z([`image`,`video`,`audio`])}),F({mode:B(`binary`)})]),L(`kind`,[F({kind:B(`found`),content:k(),path:k(),fuzzy:M()}),F({kind:B(`ambiguous`),candidates:P(k())}),F({kind:B(`missing`)})]),F({lines:F({start:j().int().min(1),count:j().int().min(0)}).optional(),head:j().int().min(0).optional(),tail:j().int().min(0).optional()}),L(`kind`,[F({kind:B(`found`),content:k(),path:k(),fuzzy:M(),linesReturned:j().int().nonnegative(),totalLines:j().int().nonnegative(),bytesReturned:j().int().nonnegative(),totalBytes:j().int().nonnegative(),hasMore:M()}),F({kind:B(`ambiguous`),candidates:P(k())}),F({kind:B(`missing`)})]),F({path:k().min(1),pattern:k().min(1),caseInsensitive:M().optional(),contextLines:j().int().min(0).max(10).optional(),maxMatches:j().int().min(1).max(100).optional()}),L(`kind`,[F({kind:B(`found`),matches:P(F({lineNumber:j().int().min(1),line:k(),contextBefore:P(k()).optional(),contextAfter:P(k()).optional()})),totalMatches:j().int().nonnegative(),totalLines:j().int().nonnegative(),truncated:M(),path:k(),fuzzy:M()}),F({kind:B(`ambiguous`),candidates:P(k())}),F({kind:B(`missing`)}),F({kind:B(`invalid-pattern`),error:k()})]),F({phase:z([`idle`,`installing-toolsets`,`downloading-browser`,`ready`,`setup-incomplete`,`error`]),currentToolset:k().optional(),browserProgress:F({bytesDownloaded:j(),bytesTotal:j().nullable()}).optional(),error:k().optional(),updatedAt:k()}),F({phase:z([`idle`,`provisioning`,`ready`,`error`]),message:k().optional(),error:k().optional(),updatedAt:k()}),I([F({kind:B(`stdout`),line:k()}),F({kind:B(`stderr`),line:k()}),F({kind:B(`exit`),code:j()}),F({kind:B(`error`),message:k()})]),L(`type`,[F({type:B(`phase`),phase:z([`resolving`,`downloading`,`extracting`,`installing-deps`,`publishing`])}),F({type:B(`progress`),bytesWritten:j().nonnegative(),totalBytes:j().nonnegative()}),F({type:B(`retrying`),attempt:j().int().positive(),maxAttempts:j().int().positive(),delayMs:j().nonnegative(),reason:k()}),F({type:B(`log`),line:k()}),F({type:B(`done`),installPath:k(),version:k()}),F({type:B(`error`),error:k()})]),F({toolsetId:k(),version:k(),startedAt:k(),phase:z([`resolving`,`downloading`,`extracting`,`installing-deps`,`publishing`]),bytesWritten:j().nonnegative(),totalBytes:j().nonnegative(),retrying:F({attempt:j().int().positive(),maxAttempts:j().int().positive(),delayMs:j().nonnegative(),reason:k()}).optional(),log:P(k()),finished:M(),error:k().optional(),installPath:k().optional()}),F({available:M(),source:z([`env`,`managed`,`path`]).nullable(),managed:z([`current`,`outdated`,`absent`,`damaged`]),damagedReason:k().optional(),installedVersion:k().optional(),pinnedVersion:k(),installDir:k().optional(),cliPath:k().optional(),updateAvailable:M()}),F({projects:P(Ap.extend({architecture:k().optional()}))});var Kg=F({name:k().min(1),description:k().optional(),workingDir:k().min(1).optional(),about:k().optional().describe(`A few paragraphs about who this project is for, what's in scope, what's explicitly out of scope. First thing any gezel reads when they join the project.`),missionObjectives:k().optional().describe(`Concrete success criteria — usually a bullet list. What does "done" look like?`),mode:z([`crew`,`solo`]).optional(),indexingEnabled:M().optional(),github:F({url:k().url()}).optional()});F({name:k().min(1).optional(),description:k().optional(),workingDir:k().nullable().optional(),voormanGezelId:k().nullable().optional(),about:k().optional(),missionObjectives:k().optional(),github:I([Na(),F({url:k().url().optional(),branch:k().optional()})]).optional(),managedWorkspaceWritePolicy:Op.optional(),allowGezelWrites:M().optional(),codexPermissionMode:Bd.optional(),claudePermissionMode:zd.optional(),nudgeConfig:Tp.optional(),tabVisibility:Dp.optional(),indexingEnabled:M().optional(),status:z([`active`,`readonly`,`inactive`,`stable`]).optional(),archived:M().optional(),workspaceScriptTimeoutMs:j().int().min(3e4).max(30*6e4).optional(),grantedCredentials:P(k()).optional(),credentialAllowedOrigins:R(k(),P(Sp)).optional(),projectTypeId:k().nullable().optional(),properties:R(k(),k()).optional()});var qg=F({typeId:k().min(1),version:k().optional(),params:R(k(),N()).optional()}),Jg=F({ref:k(),craftbook:k(),cron:k(),consent:z([`ask`,`auto`,`disabled`]),status:z([`active`,`paused`]),created:M()}),Yg=F({typeId:k(),version:k(),source:k(),gezelsCreated:P(F({id:k(),name:k(),templateId:k(),voorman:M()})),scriptsInstalled:P(k()),workspaceSeeded:P(k()),toolsetsInstalled:P(k()),toolsBound:P(k()),craftbooksInstalled:P(k()),schedulesCreated:P(Jg),aboutRendered:M(),missionRendered:M(),deferred:F({toolsets:P(k()),craftbooks:P(k()),pages:M(),schedules:j()})});Kg.pick({name:!0,description:!0,mode:!0}).extend({projectType:qg}),F({project:Np,applied:Yg}),F({name:Mf,version:Nf.optional()}).strict(),F({packages:P(Pf).min(1).max(50).optional(),package:Mf.optional(),version:Nf.optional(),gezelId:k().optional(),sessionId:k().optional()}).strict().superRefine((e,t)=>{let n=e.packages!==void 0,r=e.package!==void 0;n===r&&t.addIssue({code:`custom`,message:`provide exactly one of packages or package`}),!r&&e.version!==void 0&&t.addIssue({code:`custom`,path:[`version`],message:`version requires the singular package field`})}),F({project:Np,log:k()}),F({scripts:R(k(),k()),packageManager:k().optional()}),F({ok:M(),code:j(),stdout:k(),stderr:k(),stdoutTruncated:M(),stderrTruncated:M(),timedOut:M(),error:k().optional(),approvalPending:M().optional(),questionId:k().optional(),declined:k().optional(),resolvedBinPath:k().optional()}),F({script:k().min(1),args:P(k()).optional(),timeoutMs:j().int().positive().optional(),gezelId:k().optional(),sessionId:k().optional()}),F({bin:k().min(1),args:P(k()).optional(),timeoutMs:j().int().positive().optional(),gezelId:k().optional(),sessionId:k().optional()}),F({npmApproved:P(F({package:k(),version:k(),at:k(),approvedBy:z([`user`,`shipped`])})),npmDeclined:P(F({package:k(),version:k(),at:k()})),scriptApprovals:R(k(),z([`approved`,`declined`])),npxApprovals:R(k(),z([`approved`,`declined`])),npmShipped:P(F({package:k(),allowedVersions:P(k())}))}),F({error:k(),details:N().optional()}),F({url:k().url(),method:z([`GET`,`HEAD`,`POST`,`PUT`,`PATCH`,`DELETE`]).optional(),headers:R(k(),k()).optional(),body:k().optional(),timeoutMs:j().int().positive().max(12e4).optional(),maxBytes:j().int().positive().max(50*1024*1024).optional()}),F({status:j().int(),statusText:k(),headers:R(k(),k()),body:k().optional(),bodyBase64:k().optional(),mimeType:k().optional(),truncated:M()}),F({query:k().min(1).max(400),limit:j().int().min(1).max(20).optional(),freshness:z([`day`,`week`,`month`,`year`]).optional(),country:k().length(2).optional(),language:k().min(2).max(8).optional()});var Xg=F({title:k(),url:k(),snippet:k(),domain:k(),publishedAt:k().optional(),source:z([`brave`,`wikipedia`,`tavily`,`mock`])});F({query:k().min(1).max(400),limit:j().int().min(1).max(20).optional(),language:k().min(2).max(8).optional()}),F({results:P(Xg),source:z([`brave`,`wikipedia`,`tavily`,`mock`]),query:k(),durationMs:j().int().nonnegative()}),F({files:P(F({path:k().min(1).max(4096),startLine:j().int().min(1).max(1e7).optional(),endLine:j().int().min(1).max(1e7).optional()}).superRefine((e,t)=>{let n=e.startLine??1;e.endLine!==void 0&&e.endLine<n&&t.addIssue({code:V.custom,path:[`endLine`],message:`endLine must be greater than or equal to startLine`}),e.endLine!==void 0&&e.endLine-n+1>400&&t.addIssue({code:V.custom,path:[`endLine`],message:`a read range may contain at most 400 lines`})})).min(1).max(8)}),F({results:P(L(`status`,[F({status:B(`ok`),path:k(),content:k(),startLine:j().int().positive(),endLine:j().int().nonnegative(),linesReturned:j().int().nonnegative(),bytesReturned:j().int().nonnegative(),scannedBytes:j().int().nonnegative(),totalLines:j().int().nonnegative().optional(),totalBytes:j().int().nonnegative(),eof:M(),completeFile:M(),hasMore:M(),nextStartLine:j().int().positive().optional(),truncated:M(),truncationReason:z([`line-limit`,`output-limit`]).optional()}),F({status:B(`error`),path:k(),code:z([`path-not-found`,`path-safety`,`not-file`,`binary-file`,`unsupported-encoding`,`range-out-of-bounds`,`line-too-long`,`scan-limit`,`deadline`,`read-failed`,`aggregate-limit`]),error:k(),scannedBytes:j().int().nonnegative().optional()})])),truncated:M(),totalBytesReturned:j().int().nonnegative(),totalScannedBytes:j().int().nonnegative()}),F({pattern:k().min(1).max(4e3),path:k().max(4096).optional(),glob:k().min(1).max(512).optional(),includeGlobs:P(k().min(1).max(512)).max(32).optional(),excludeGlobs:P(k().min(1).max(512)).max(32).optional(),caseInsensitive:M().optional(),literal:M().optional(),contextLines:j().int().min(0).max(5).optional(),resultMode:z([`matches`,`files`,`count`]).optional(),cursor:j().int().min(0).max(1e4).optional(),maxResults:j().int().positive().max(200).optional(),timeoutMs:j().int().min(100).max(3e4).optional()});var Zg=F({line:j().int().positive(),text:k()}),Qg=F({path:k(),line:j().int().positive(),text:k(),before:P(Zg).optional(),after:P(Zg).optional()});F({mode:z([`matches`,`files`,`count`]).default(`matches`),matches:P(Qg),files:P(k()).default([]),count:j().int().nonnegative().default(0),truncated:M(),truncationReason:z([`limit`,`output`]).optional(),nextCursor:j().int().nonnegative().optional(),engine:z([`ripgrep`,`javascript`])}),F({glob:k().min(1),path:k().optional(),caseInsensitive:M().optional(),maxResults:j().int().positive().max(5e3).optional()}),F({files:P(k()),truncated:M()});var $g=F({x:j(),y:j(),w:j(),h:j()}),e_=F({id:k(),parentId:k().nullable(),rect:$g,label:k(),depth:j().int().nonnegative(),fileCount:j().int().nonnegative(),weight:j().nonnegative(),color:k().optional(),labelPlate:$g.optional(),displayLabel:k().optional()}),t_=F({findings:j().int().nonnegative(),maxSeverity:z([`critical`,`high`,`medium`,`low`,`info`]).nullable(),fanIn:j().int().nonnegative(),fanOut:j().int().nonnegative(),vibe:z([`lush`,`tidy`,`plain`,`scruffy`,`blighted`]),zone:z([`residential`,`commercial`,`civic`,`industrial`]),importance:j().min(0).max(1).optional(),churn:j().int().nonnegative().optional()}),n_=z([`hamlet`,`village`,`town`,`city`]),r_=F({id:k(),districtId:k(),rect:$g,label:k(),weight:j().nonnegative(),kind:k().nullable().optional(),lang:k().nullable().optional(),state:z([`live`,`new`,`tombstoned`]),buildingCount:j().int().nonnegative(),phantom:M().optional(),placedAt:k().nullable().optional(),lot:$g.optional(),health:t_.optional(),levels:j().int().min(1).max(5).optional(),landmark:M().optional(),lastTouchedAt:k().optional(),urbanity:j().min(0).max(1).optional(),settlement:n_.optional()}),i_=F({id:k(),blockId:k(),rect:$g,height:j().nonnegative(),lines:j().int().positive().optional(),lineStart:j().int().positive().optional(),lineEnd:j().int().positive().optional(),label:k(),kind:k()}),a_=F({id:k(),rect:$g,tier:j().int().min(0).max(3),districtId:k().nullable()}),o_=F({id:k(),districtId:k().nullable(),rect:$g,kind:z([`plaza`,`green`]),blockId:k().optional()}),s_=F({a:k(),b:k(),affinity:j(),source:z([`import`,`embedding`,`mixed`]),bidirectional:M()}),c_=F({blockId:k(),change:z([`added`,`modified`,`deleted`,`renamed`]),additions:j().int().nonnegative(),deletions:j().int().nonnegative(),fromPath:k().optional()}),l_=F({prNumber:j().int().optional(),title:k().optional(),changedBlocks:P(c_)}),u_=F({center:F({x:j(),y:j()}),radius:j().positive(),ceiling:j().min(0).max(1),peak:j().min(0).max(1),median:j().min(0).max(1),settlement:n_,fileCount:j().int().nonnegative()}),d_=z([`core`,`tests`,`all`]);F({domain:z([`code`,`docs`,`data`]).optional(),scope:d_.optional(),pr:j().int().positive().optional()}),F({domain:k(),root:k(),bounds:$g,builtAt:k(),indexed:M(),districts:P(e_),blocks:P(r_),buildings:P(i_),roads:P(s_),streets:P(a_).optional(),plazas:P(o_).optional(),overlay:l_.optional(),urbanity:u_.optional(),signals:F({gitAvailable:M(),churnWindowDays:j().int().positive()}).optional()}),F({query:k().min(1),maxResults:j().int().positive().max(100).optional()}),F({results:P(F({sourcePath:k(),markdownPath:k(),lineStart:j().int().positive(),snippet:k()})),engine:z([`fts`,`unavailable`]),truncated:M()}),F({path:k().min(1)}),F({found:M(),sourcePath:k().optional(),markdownPath:k().optional(),markdown:k().optional(),truncated:M()}),F({query:k().min(1),mode:z([`auto`,`semantic`,`keyword`]).optional(),maxResults:j().int().positive().max(100).optional()}),F({results:P(F({path:k(),lineStart:j().int().positive(),lineEnd:j().int().positive(),kind:k(),name:k().optional(),snippet:k(),score:j(),source:z([`vector`,`fts`])})),engine:z([`hybrid`,`semantic`,`fts`,`unavailable`]),truncated:M()});var f_=z([`critical`,`high`,`medium`,`low`,`info`]),p_=z([`builtin`,`semgrep`,`osv`,`gitleaks`]),m_=z([`open`,`in_progress`,`resolved`]),h_=F({fingerprint:k().min(1),path:k(),line:j().int().positive().nullable(),ruleId:k(),category:k(),severity:f_,source:p_,title:k(),evidence:k().optional(),status:m_,taskRef:_m.optional()}),g_=F({total:j().int().nonnegative(),bySeverity:R(k(),j().int().nonnegative()),byCategory:R(k(),j().int().nonnegative()),bySource:R(k(),j().int().nonnegative())});F({useExternalTools:M().optional()}),F({ran:M(),engines:P(k()),toolsAvailable:F({semgrep:M(),osvScanner:M(),gitleaks:M(),npm:M()}),findingCounts:g_,dependencies:j().int().nonnegative(),advisories:j().int().nonnegative()}),F({severity:f_.optional(),category:k().optional(),path:k().optional(),source:p_.optional(),maxResults:j().int().positive().max(1e3).optional()}),F({findings:P(h_),counts:g_,truncated:M(),indexed:M()}),F({fingerprint:k().min(1)}),F({resolved:M()}),F({fingerprint:k().min(1)}),F({finding:h_,taskRef:_m,gezelId:k(),gezelName:k(),enqueued:M()}),F({entryPoints:P(k()),routes:P(k()),authBoundaries:P(k()),secretTouchpoints:P(k()),taintSources:P(F({path:k(),count:j().int().positive()}))}).extend({root:k(),indexed:M()}),F({dependencies:P(F({name:k(),ecosystem:k(),version:k().nullable(),direct:M(),advisoryIds:P(k()),maxSeverity:f_.nullable(),license:k().nullable()})),total:j().int().nonnegative(),withAdvisories:j().int().nonnegative(),scanned:M()}),F({indexed:M(),scanned:M(),findings:g_,attackSurface:F({entryPoints:j().int().nonnegative(),routes:j().int().nonnegative(),authBoundaries:j().int().nonnegative(),secretTouchpoints:j().int().nonnegative(),taintSources:j().int().nonnegative()}),dependencies:F({total:j().int().nonnegative(),withAdvisories:j().int().nonnegative()}),systemicCandidates:P(F({category:k(),fileCount:j().int().positive(),findingCount:j().int().positive(),severity:f_}))}),F({file:k().min(1),maxHops:j().int().positive().max(8).optional()}),F({file:k(),found:M(),upstream:P(k()),downstream:P(k()),taintSources:P(h_),sinks:P(h_),note:k()});var __=F({kind:z([`project`,`gezel`,`file`,`document`,`content`,`symbol`,`memory`,`session`]),id:k(),title:k(),subtitle:k().optional(),snippet:k().optional(),projectId:k().optional(),projectName:k().optional(),path:k().optional(),source:z([`workspace`,`artifacts`]).optional(),line:j().int().positive().optional(),gezelId:k().optional(),score:j()});F({query:k().min(1).max(400),mode:z([`names`,`full`]).optional(),maxResults:j().int().positive().max(100).optional()}),F({results:P(__),truncated:M()}),F({q:k().min(1).max(400),gezel:k().optional(),project:k().optional(),maxResults:j().int().positive().max(100).optional()}),F({results:P(F({sessionId:k(),gezelId:k(),projectId:k(),title:k(),snippet:k(),messageStart:j().int().positive(),lastActivityAt:k(),archived:M()})),engine:z([`fts`,`unavailable`])}),F({q:k().min(1).max(400),maxResults:j().int().positive().max(100).optional()}),F({results:P(F({path:k(),lineStart:j().int().positive(),snippet:k()})),engine:z([`fts`,`unavailable`])}),F({query:k().min(1),maxResults:j().int().positive().max(100).optional()}),F({results:P(F({path:k(),width:j().int().optional(),height:j().int().optional(),format:k().optional(),caption:k().optional(),score:j()})),engine:z([`fts`,`unavailable`]),truncated:M()}),F({path:k().min(1),maxResults:j().int().positive().max(100).optional()}),F({results:P(F({path:k(),score:j()})),engine:z([`vector`,`unavailable`]),truncated:M()}),F({path:k().optional()}),F({path:k(),imageCount:j().int().nonnegative(),formats:P(F({format:k(),count:j().int()})),dimensions:F({minWidth:j().int(),maxWidth:j().int(),minHeight:j().int(),maxHeight:j().int()}).nullable(),samples:P(k()),captioned:j().int().nonnegative()}),F({query:k().optional(),kind:k().optional(),maxResults:j().int().positive().max(200).optional()}),F({entities:P(F({id:j().int(),kind:k(),label:k(),canonical:k(),mentions:j().int().nonnegative()})),engine:z([`index`,`unavailable`])}),F({entity:k().min(1),maxResults:j().int().positive().max(500).optional()}),F({found:M(),entity:F({kind:k(),label:k()}).optional(),mentions:P(F({path:k(),line:j().int().optional(),date:k().optional()}))}),F({leftPath:k().optional(),leftText:k().optional(),rightPath:k().optional(),rightText:k().optional(),contextLines:j().int().min(0).max(20).optional()}).refine(e=>(e.leftPath||e.leftText)&&(e.rightPath||e.rightText),{message:`Provide {leftPath|leftText} and {rightPath|rightText}.`}),F({diff:k(),identical:M()}),F({path:k().min(1),artifact:M().optional()}),F({path:k(),mimeType:k(),base64:k(),bytes:j().int().nonnegative()}),F({path:k().min(1),maxEntries:j().int().positive().max(5e3).optional()});var v_=F({name:k(),size:j().int().nonnegative(),isDirectory:M()});F({format:z([`zip`,`tar`,`tar.gz`]),entries:P(v_),truncated:M()}),F({path:k().min(1),outputPath:k().min(1)}),F({format:z([`zip`,`tar`,`tar.gz`]),extractedCount:j().int().nonnegative(),destination:k()}),F({subcommand:z([`status`,`log`,`diff`,`show`,`blame`,`branch`,`rev-parse`,`ls-files`]),args:P(k()).max(32).optional(),timeoutMs:j().int().positive().max(12e4).optional()}),F({code:j().int(),stdout:k(),stderr:k(),stdoutTruncated:M(),timedOut:M()}),F({deviceCode:k(),userCode:k(),verificationUri:k(),interval:j().int().positive(),expiresIn:j().int().positive()});var y_=F({login:k(),name:k().optional(),avatarUrl:k().optional()});F({deviceCode:k()}),L(`status`,[F({status:B(`pending`)}),F({status:B(`slow_down`)}),F({status:B(`expired`)}),F({status:B(`denied`),error:k().optional()}),F({status:B(`success`),identity:y_,scopes:P(k()).optional()}),F({status:B(`not_configured`),error:k()})]),I([y_.extend({signedIn:B(!0)}),F({signedIn:B(!1)})]),F({repos:P(F({fullName:k(),url:k(),description:k().optional(),private:M().optional(),pushedAt:k().optional()}))}),F({url:k()}),F({owner:k(),repo:k(),canonicalUrl:k(),defaultBranch:k().optional(),description:k().optional(),topics:P(k()).optional(),language:k().optional(),readme:k(),readmeTruncated:M()}),F({name:k().min(1),repoUrl:k(),description:k().optional(),topics:P(k()).optional(),readme:k()}),F({about:k(),missionObjectives:k()}),F({path:k().min(1)}),F({name:k(),about:k().optional(),source:k().optional()});var b_=F({name:k(),kind:z([`npm-script`,`workspace-script`,`vscode-launch`,`bin`]),source:k(),run:k(),description:k().optional()}),x_=F({version:j().int(),scannedAt:k(),root:k(),durationMs:j().int(),fileCount:j().int(),commandCount:j().int(),shapeCount:j().int().optional()}),S_=F({name:k(),char:k().length(1).optional(),type:z([`boolean`,`option`]),description:k().optional(),required:M().optional(),default:k().optional(),options:P(k()).optional(),multiple:M().optional()}),C_=F({name:k(),description:k().optional(),required:M().optional(),default:k().optional(),options:P(k()).optional()}),w_=F({source:B(`oclif`),package:k(),packageVersion:k().optional(),summary:k().optional(),description:k().optional(),subcommands:P(F({name:k(),fullName:k(),summary:k().optional()})).optional(),flags:P(S_).optional(),args:P(C_).optional(),usage:k().optional(),examples:P(k()).optional()});F({shapes:R(k(),w_)}),F({state:z([`fresh`,`stale`,`indexing`,`never`,`disabled`]),meta:x_.optional(),aiScanPending:M().optional(),aiDrive:z([`background`,`full`]).optional(),enrichment:F({eligible:j().int().nonnegative(),summarized:j().int().nonnegative(),embedded:j().int().nonnegative(),pending:j().int().nonnegative(),skipped:j().int().nonnegative().optional(),shadowsPending:j().int().nonnegative().optional(),embedModel:k().optional(),reviews:F({eligible:j().int().nonnegative(),reviewed:j().int().nonnegative(),stale:j().int().nonnegative(),pending:j().int().nonnegative()}).optional()}).optional()}),F({maxFiles:j().int().positive().max(25).optional(),budgetMs:j().int().positive().max(6e4).optional(),areas:M().optional(),reviews:M().optional(),intensity:z([`background`,`full`]).optional()}),F({paused:M(),files:j().int().nonnegative(),summarized:j().int().nonnegative(),embedded:j().int().nonnegative(),pending:j().int().nonnegative(),areasUpdated:j().int().nonnegative(),architectureUpdated:M(),reviewed:j().int().nonnegative().optional(),reviewPending:j().int().nonnegative().optional(),drained:M(),started:M().optional(),alreadyRunning:M().optional(),mode:z([`background`,`full`]).optional()});var T_=F({ref:k(),title:k(),projectName:k(),stepName:k().optional()});F({background:P(F({id:k(),title:k(),detail:k(),projectName:k().optional()})),active:P(T_),upcoming:P(T_)});var E_=F({ref:k(),title:k(),projectId:k(),projectName:k(),completedAt:k().optional()}),D_=F({projectId:k(),projectName:k(),path:k(),title:k(),writtenAt:k().optional(),actionCounts:F({total:j(),suggested:j(),fired:j(),applied:j(),dismissed:j()})});F({windowKey:k(),windowStart:k(),windowEnd:k(),tasksCompleted:P(E_),reports:P(D_)}),F({meta:x_,commands:P(b_),shapes:R(k(),w_).optional()}),F({skills:P(F({name:k(),source:k(),origin:z([`claude`,`gstack`,`agents`,`other`]),description:k().optional(),triggers:P(k()).optional(),version:k().optional(),body:k(),generated:M().optional(),hasShellScripts:M(),files:P(F({relPath:k(),kind:z([`section`,`reference`,`template`,`script`,`bin`,`other`]),bytes:j().int().nonnegative()})).optional()}))}),F({instructions:P(F({source:k(),origin:z([`agents`,`claude`,`copilot`]),content:k(),hash:k(),mtimeMs:j()}))}),F({sessionId:k(),providerName:k(),model:k().optional(),modelTier:z([`tiny`,`small`,`medium`,`large`,`cloud`]),parameterSize:k().optional(),leaksUntaggedReasoning:M(),reasoningEffort:k().optional(),numCtx:j().optional(),systemPrompt:k(),volatileContext:k().optional(),customToolsMd:M(),registeredTools:P(k()),turnStatus:z([`idle`,`in-progress`,`queued`]),recentMessages:P(F({role:z([`user`,`assistant`,`system`,`tool`]),content:k(),reasoning:k().optional(),warnings:P(k()).optional(),synthetic:z([`compaction-summary`,`context-loop-halt`,`turn-aborted`,`growth-announcement`,`keurmeester-notice`]).optional(),attemptedToolCalls:P(F({body:k(),reason:k().optional()})).optional(),toolCalls:P(F({name:k(),argsSummary:k().optional(),success:M(),errorMessage:k().optional()})).optional()})),diagnostics:F({sessionRecordPath:k(),logsDir:k(),engineLogGlob:k().optional()}).optional(),generatedAt:k()}),F({source:k().min(1),dest:k().min(1),gezelId:k().optional(),sessionId:k().optional()}),F({ok:B(!0),source:k(),dest:k(),bytes:j().int().nonnegative()}),F({url:k().url(),dest:k().optional(),branch:k().min(1).optional(),gezelId:k().optional(),sessionId:k().optional()}),F({ok:B(!0),path:k(),files:j().int().nonnegative(),bytes:j().int().nonnegative()}),F({url:k().url(),baseRef:k().min(1),headRef:k().min(1),dest:k().optional(),diffPath:k().min(1).optional(),gezelId:k().optional(),sessionId:k().optional()}),F({ok:B(!0),path:k(),diffPath:k(),baseSha:k(),headSha:k(),files:j().int().nonnegative(),bytes:j().int().nonnegative(),diffBytes:j().int().nonnegative(),filesChanged:j().int().nonnegative()}),F({path:k().min(1),find:k().min(1),replace:k(),occurrence:I([j().int().positive(),B(`all`)]).optional(),gezelId:k().optional(),sessionId:k().optional()}),F({path:k().min(1),diff:k().min(1),gezelId:k().optional(),sessionId:k().optional()}),F({path:k().min(1),marker:k().min(1),content:k(),where:z([`before`,`after`]).optional(),gezelId:k().optional(),sessionId:k().optional()}),F({path:k().min(1),startLine:j().int().positive(),endLine:j().int().positive(),content:k(),gezelId:k().optional(),sessionId:k().optional()}),F({ok:B(!0),path:k(),diff:k(),addedLines:j().int().nonnegative(),removedLines:j().int().nonnegative(),diffTruncated:M().optional()}),F({tools:P(F({name:k(),description:k(),parameters:R(k(),N())}))}),F({args:R(k(),N()).optional()}),F({text:k(),images:P(F({base64:k(),mimeType:k()}))});var O_=z([`NW`,`N`,`NE`,`W`,`C`,`E`,`SW`,`S`,`SE`]),k_=F({path:k().min(1),region:O_,cx:j().min(0).max(1),cy:j().min(0).max(1)}),A_=F({path:k().min(1),region:O_.optional(),rect:$g.optional(),style:k().optional()}),j_=F({k:z([`block`,`street`,`plate`,`plaza`]),id:k(),p:k().nullable().optional(),h:k().nullable().optional(),r:Wa([j(),j(),j(),j()]),w:j().optional(),a:k().nullable().optional(),d:k().nullable().optional()}),M_=F({cx:j(),cy:j(),r:j().positive(),impRef:j().min(0)}),N_=F({layoutVersion:j().int().positive(),anchors:P(k_).default([]),journal:P(j_).default([]),downtown:M_.optional()});F({schemaVersion:j().int().positive().default(1),about:k().default(`Gezel Village placement memory. Committing this file keeps the village stable across machines and index rebuilds. anchors/overrides are safe to hand-edit; journal is machine-maintained. Deliberately free of provenance timestamps so an unchanged rebuild produces no diff.`),overrides:P(A_).default([]),domains:R(k(),N_).default({})});var P_=F({ok:M(),detail:k()}),F_=z([`probed`,`failed`,`deferred`,`blocked`]),I_=z([`install`,`manual`]);F({schemaVersion:B(1),provider:k(),modelId:k(),status:F_,admitted:M(),genTokensPerSec:j().nullable(),shortPromptGenTokensPerSec:j().nullable().optional(),representativeContext:F({targetPromptTokens:j().int().positive(),promptTokens:j().int().nonnegative().nullable(),cachedPromptTokens:j().int().nonnegative().nullable(),completionTokens:j().int().nonnegative().nullable(),durationMs:j().nonnegative().nullable(),ttftMs:j().nonnegative().nullable(),promptTokensPerSec:j().positive().nullable(),genTokensPerSec:j().positive().nullable()}).optional(),createdAt:k(),durationMs:j().int().nonnegative(),trigger:I_,sha256:k().optional(),catalogVersion:k().optional(),contextWindow:j().int().optional(),host:F({totalRamBytes:j(),gpuVramBytes:j().nullable(),source:k()}),checks:F({spawn:P_,toolRoundTrip:P_,throughput:P_,reasoningBudget:P_,contextFit:P_})}),F({scope:L(`kind`,[F({kind:B(`gezel`),gezelId:k()}),F({kind:B(`project`),projectId:k()}),F({kind:B(`shared`)}),F({kind:B(`system`)})]),text:k().min(1).max(2*1024*1024),sourceName:k().min(1).max(512).optional()});var L_=F({serverName:k().optional(),message:k()});F({ok:B(!0),imported:P(k()),warnings:P(L_).default([])});var R_=z([`fire-craftbook`,`create-task`,`apply-edits`]),z_={id:k().regex(/^[a-z0-9][a-z0-9_-]*$/i).optional(),title:k().min(1),reason:k().optional(),projectId:k().optional()},B_=L(`kind`,[F({kind:B(`fire-craftbook`),...z_,craftbookId:k().min(1),params:R(k(),k()).optional()}),F({kind:B(`create-task`),...z_,prompt:k().min(1),role:k().optional()}),F({kind:B(`apply-edits`),...z_,edits:P(F({path:k().min(1),diffArtifact:k().min(1)})).min(1)})]),V_=z([`suggested`,`fired`,`applied`,`failed`,`dismissed`]),H_=F({actionId:k(),reportPath:k(),kind:R_,contentHash:k(),firstSeenAt:k(),state:V_,taskRef:k().optional(),firedAt:k().optional(),settledAt:k().optional(),outcome:z([`complete`,`canceled`]).optional(),results:P(F({path:k(),ok:M(),error:k().optional()})).optional()}),U_=F({index:j().int(),message:k(),raw:k()});F({actions:P(F({action:B_,id:k(),contentHash:k(),state:V_,taskRef:k().optional(),firedAt:k().optional(),settledAt:k().optional(),outcome:z([`complete`,`canceled`]).optional(),results:P(F({path:k(),ok:M(),error:k().optional()})).optional(),contentChanged:M().optional()})),issues:P(U_),stale:P(H_)}),F({path:k().min(1),actionId:k().min(1),params:R(k(),k()).optional()}),F({record:H_,taskRef:k().optional()}),F({path:k().min(1),actionId:k().min(1)});var W_=L(`kind`,[F({kind:B(`gezel-template`),templateId:k(),gezelId:k().optional(),gezelName:k().optional(),role:k().optional()}),F({kind:B(`project-type`),typeId:k(),scheduleKey:k()})]),G_=z([`suggested`,`enabled`,`paused`,`dismissed`]);F({items:P(F({key:k(),source:W_,craftbookId:k(),craftbookName:k().optional(),description:k().optional(),reason:k().optional(),runMode:z([`night-shift`,`scheduled`]),cron:k().optional(),overlap:rm.optional(),paramSchema:R(k(),N()).optional(),params:R(k(),k()).optional(),state:G_,taskRef:k().optional(),pendingQuestionId:k().optional(),orphaned:M().optional()}))}),F({key:k(),params:R(k(),k()).optional()}),F({key:k()}),F({key:k(),dismissed:M()});var K_=z([`workspace`,`artifacts`]),q_={__gezelPage:B(1)};L(`kind`,[F({...q_,kind:B(`hello`)}),F({...q_,kind:B(`invoke`),id:k().min(1).max(64),tool:k().regex(/^[a-z][a-z0-9_]*$/),input:R(k(),N()).optional()}),F({...q_,kind:B(`read`),id:k().min(1).max(64),op:z([`read`,`list`,`stat`]),source:K_,path:k().min(1),as:z([`text`,`json`,`bytes`]).optional(),maxBytes:j().int().positive().optional()}),F({...q_,kind:B(`watch`),id:k().min(1).max(64),source:K_,path:k().min(1)}),F({...q_,kind:B(`unwatch`),id:k().min(1).max(64)}),F({...q_,kind:B(`refresh`)})]);var J_=z([`not-allowed`,`invalid-input`,`script-error`,`timeout`,`unavailable`,`rate-limited`]);L(`kind`,[F({...q_,kind:B(`init`),api:B(1),theme:F({mode:z([`light`,`dark`])}),limits:F({maxInflight:j().int().positive(),maxReadBytes:j().int().positive()})}),F({...q_,kind:B(`result`),id:k(),ok:M(),output:N().optional(),error:k().optional(),errorCode:J_.optional(),runId:k().optional(),reaction:F({delivered:M(),gezelId:k().optional(),reason:k().optional()}).optional()}),F({...q_,kind:B(`read-result`),id:k(),ok:M(),error:k().optional(),errorCode:J_.optional(),content:k().optional(),encoding:z([`utf8`,`base64`]).optional(),entries:P(F({name:k(),kind:z([`file`,`dir`]),size:j().nonnegative(),mtime:j().nonnegative()})).optional(),etag:k().optional(),size:j().nonnegative().optional(),mtime:j().nonnegative().optional()}),F({...q_,kind:B(`change`),watchId:k(),path:k(),etag:k()}),F({...q_,kind:B(`theme`),theme:F({mode:z([`light`,`dark`])})})]),F({api:B(1),projectId:k(),source:B(`type`),entry:k(),typeName:k(),params:R(k(),N()),tools:P(k())});var Y_=k().min(1).describe(`CSS color — hex (#rgb, #rgba, #rrggbb, #rrggbbaa) or the keyword "transparent".`),X_={x:j().optional(),y:j().optional(),width:j().positive().optional(),height:j().positive().optional(),opacity:j().min(0).max(1).optional()},Z_=L(`kind`,[F({kind:B(`svg`),svg:k().min(1).describe(`SVG markup. <script>/<foreignObject>/event handlers are stripped.`),rotate:j().optional().describe(`Degrees of rotation around the layer center.`),...X_}),F({kind:B(`html`),html:k().min(1).describe(`HTML fragment rendered inside a sandboxed iframe.`),...X_}),F({kind:B(`pixels`),rows:P(k()).min(1).describe("Pixel grid as a JSON array of strings; one row per string, one character per cell. Every character must appear as a key in `palette`."),palette:R(k(),Y_).describe('Map from single-character keys in `rows` to CSS colors. Mnemonic letters ("r"=red, "w"=white, "g"=green) are encouraged. Use "transparent" for empty cells.'),scale:j().int().positive().optional().describe(`Pixel size in output px. Defaults to a value that fits the canvas.`),...X_}),F({kind:B(`image`),artifactPath:k().min(1).describe(`Path to a previously-written artifact, relative to the project artifacts/ root.`),...X_}),F({kind:B(`text`),text:k().min(1),x:j(),y:j(),font:k().optional(),size:j().positive().optional(),color:Y_.optional(),weight:j().int().optional(),opacity:j().min(0).max(1).optional()})]);F({projectId:k().optional().describe(`Project to save the artifact under. Defaults to "default".`),width:j().int().positive().max(4096),height:j().int().positive().max(4096),layers:P(Z_).min(1).max(64),background:Y_.optional().describe(`Canvas background color. Defaults to transparent.`),filename:k().optional().describe(`Artifact filename (without extension) saved under artifacts/renders/. Defaults to a timestamped name.`),format:z([`png`,`jpeg`]).optional().describe(`Output format. Defaults to png.`)}),F({path:k().describe(`Project-relative path, e.g. "renders/sprite-1234.png".`),url:k().describe(`HTTP URL to the saved artifact, authed like every other artifact route.`),width:j().int().positive(),height:j().int().positive(),bytes:j().int().nonnegative(),mimeType:k(),base64:k().describe(`Base64-encoded image data, ready to feed into a vision input.`),engine:z([`playwright`,`resvg`]).describe(`Which render engine produced the image.`)});var Q_=I([F({data:k().min(1),mimeType:k().default(`image/png`)}),F({artifactPath:k().min(1)})]);F({prompt:k().min(1),negativePrompt:k().optional(),model:k().optional(),width:j().int().positive().optional(),height:j().int().positive().optional(),steps:j().int().positive().optional(),seed:j().int().optional(),inputImages:P(Q_).optional(),strength:j().min(0).max(1).optional(),projectId:k().optional(),gezelId:k().optional(),sessionId:k().optional(),inline:M().optional(),saveAs:k().optional()});var $_=F({model:k(),seed:j().int(),steps:j().int(),widthPx:j().int().positive(),heightPx:j().int().positive(),durationMs:j().int().nonnegative(),img2imgSkippedReason:k().optional()});F({artifactPath:k(),workspacePath:k().nullable(),meta:$_,b64Png:k().optional()}),F({models:P(F({id:k(),name:k(),approxSizeBytes:j().int().nonnegative(),installedAt:k(),kind:z([`local`,`cloud`]).optional(),supportsImg2Img:M().optional()})),defaultModel:k().optional()}),F({engine:F({status:z([`ok`,`unreachable`,`not-configured`]),baseUrl:k(),error:k().optional(),kind:z([`local`,`cloud`]).optional(),provider:k().optional()}),modelCount:j().int().nonnegative()}),F({pulls:P(F({id:k(),startedAt:k(),bytesWritten:j().int().nonnegative(),totalBytes:j().int().nonnegative(),retrying:F({attempt:j().int().positive(),maxAttempts:j().int().positive(),delayMs:j().int().nonnegative(),reason:k()}).optional(),finished:M(),error:k().optional()}))}),L(`type`,[F({type:B(`progress`),bytesWritten:j().int().nonnegative(),totalBytes:j().int().nonnegative().optional()}),F({type:B(`retrying`),attempt:j().int().positive(),maxAttempts:j().int().positive(),delayMs:j().int().nonnegative(),reason:k()}),F({type:B(`error`),error:k()}),F({type:B(`done`),id:k()})]);var ev=I([F({data:k().min(1),mimeType:k().default(`image/png`)}),F({artifactPath:k().min(1)})]);F({prompt:k().min(1),negativePrompt:k().optional(),model:k().optional(),width:j().int().positive().optional(),height:j().int().positive().optional(),numFrames:j().int().positive().optional(),fps:j().int().positive().optional(),steps:j().int().positive().optional(),seed:j().int().optional(),inputImage:ev.optional(),projectId:k().optional(),gezelId:k().optional(),sessionId:k().optional(),inline:M().optional(),saveAs:k().optional()});var tv=F({model:k(),seed:j().int(),steps:j().int(),widthPx:j().int().positive(),heightPx:j().int().positive(),numFrames:j().int().positive(),fps:j().int().positive(),durationMs:j().int().nonnegative(),mimeType:k()});F({artifactPath:k(),workspacePath:k().nullable(),meta:tv,b64Poster:k().optional()}),F({models:P(F({id:k(),name:k(),approxSizeBytes:j().int().nonnegative(),installedAt:k(),kind:z([`local`,`cloud`]).optional()})),defaultModel:k().optional()});var nv=z([`cuda`,`mps`,`cpu`]);F({engine:F({status:z([`ok`,`unreachable`,`not-configured`]),baseUrl:k(),error:k().optional(),kind:z([`local`,`cloud`]).optional(),provider:k().optional(),accelerator:nv.optional()}),modelCount:j().int().nonnegative()}),F({pulls:P(F({id:k(),startedAt:k(),bytesWritten:j().int().nonnegative(),totalBytes:j().int().nonnegative(),file:k().optional(),fileIndex:j().int().nonnegative().optional(),fileCount:j().int().positive().optional(),retrying:F({attempt:j().int().positive(),maxAttempts:j().int().positive(),delayMs:j().int().nonnegative(),reason:k()}).optional(),finished:M(),error:k().optional()}))}),L(`type`,[F({type:B(`progress`),fileIndex:j().int().nonnegative(),fileCount:j().int().positive(),file:k(),bytesWritten:j().int().nonnegative(),totalBytes:j().int().nonnegative(),bytesWrittenAll:j().int().nonnegative(),totalBytesAll:j().int().nonnegative()}),F({type:B(`retrying`),file:k(),attempt:j().int().positive(),maxAttempts:j().int().positive(),delayMs:j().int().nonnegative(),reason:k()}),F({type:B(`verifying`),file:k()}),F({type:B(`error`),error:k()}),F({type:B(`done`),id:k()})]),F({audio:I([F({data:k().min(1).describe(`Base64-encoded audio bytes.`),mimeType:k().default(`audio/wav`)}),F({artifactPath:k().min(1).describe("Project-relative artifact path under `audio/` or `audio/uploaded/`.")})]),model:k().optional(),language:k().optional(),projectId:k().optional()});var rv=F({start:j(),end:j(),text:k()});F({text:k(),language:k().optional(),segments:P(rv).optional(),durationMs:j().int().nonnegative()}),F({text:k().min(1),voice:k().optional(),model:k().optional(),speed:j().min(.25).max(4).optional(),projectId:k().optional(),sessionId:k().optional(),gezelId:k().optional(),inline:M().optional()});var iv=F({voice:k(),model:k(),sampleRate:j().int().positive(),durationSeconds:j().nonnegative(),durationMs:j().int().nonnegative()});F({artifactPath:k(),meta:iv,b64Wav:k().optional()}),F({models:P(F({id:k(),name:k(),approxSizeBytes:j().int().nonnegative(),installedAt:k()}))});var av=F({id:k(),name:k(),description:k(),approxSizeBytes:j().int().nonnegative(),kind:z([`stt`,`tts`]),license:k().optional(),...wm,...Tm});F({stt:P(av),tts:P(av)}),F({voices:P(F({id:k(),name:k(),language:k(),gender:z([`female`,`male`,`neutral`]).optional(),modelId:k()}))});var ov=F({status:z([`ok`,`unreachable`,`not-configured`,`no-model`]),baseUrl:k().optional(),error:k().optional(),provider:k().optional(),modelCount:j().int().nonnegative()});F({stt:ov,tts:ov}),L(`type`,[F({type:B(`progress`),bytesWritten:j().int().nonnegative(),totalBytes:j().int().nonnegative().optional()}),F({type:B(`error`),error:k()}),F({type:B(`done`),id:k()})]);var sv=z([`conceptual`,`gezel-roles`,`craftbooks`,`project-types`,`technical`,`whats-new`]);z([`app`,`site`,`agent`]);var cv=F({id:k().min(1),title:k().min(1),order:j()}),lv=F({id:k().min(1),title:k().min(1),area:sv,order:j(),summary:k().optional(),generated:M(),siteVisible:M().optional(),subcategory:cv.optional()});F({areas:P(F({area:sv,title:k(),entries:P(lv)}))});var uv=F({path:k().min(1),gezelId:k().min(1),name:k(),roleLabel:k().optional(),variant:z([`full`,`headshot`,`icon`]),poppetje:Rd}),dv=F({blockId:k(),hash:k().regex(/^[a-f0-9]{64}$/),durationMs:j().int().nonnegative(),silent:M().optional()});F({articleId:k(),voice:k(),model:k(),segments:P(dv)}),F({results:P(F({id:k().min(1),title:k().min(1),area:sv,summary:k().optional(),markdown:k(),figures:P(uv).default([]),generated:M(),defaultDuration:j().positive().optional()}))});var fv=8,pv=12,mv=8,hv=10,gv=100;function _v(e,t){return`gezel-nav:${encodeURIComponent(e)}${t?`#L${t}`:``}`}function vv(e){return`#L${e}`}function yv(e){let t=/^#L(\d+)$/.exec(e);if(t)return{kind:`line`,line:Number(t[1])};if(!e.startsWith(`gezel-nav:`))return null;let n=e.slice(10),r=n.lastIndexOf(`#L`),i=r>=0?n.slice(0,r):n,a=r>=0?n.slice(r+2):``;if(r>=0&&!/^\d+$/.test(a))return null;let o;try{o=decodeURIComponent(i)}catch{return null}return o?{kind:`file`,path:o,...r>=0?{line:Number(a)}:{}}:null}function bv(e){return e.replace(/[\\`*_[\]<>]/g,e=>`\\${e}`)}function xv(e){if(e.engine===`unavailable`||e.symbols.length===0&&!e.summary)return{sections:[]};let t=new Map;for(let n of e.symbols)t.has(n.name)||t.set(n.name,n.lineStart);let n=e.symbols.map(n=>Sv(n,e,t)),r=Cv(e);return{...r?{fileTop:r}:{},sections:n}}function Sv(e,t,n){let r=e.parent?`${e.parent}.${e.name}`:e.name,i=e.summary?Ev(e.summary,gv):e.kind,a=[];e.importedBy.length>0&&a.push(`\u2193${e.importedBy.length}${e.importedByTruncated?`+`:``} imported-by`),e.uses.length>0&&a.push(`\u2191${e.uses.length} uses`),e.usedInFileBy.length>0&&a.push(`\u25CB${e.usedInFileBy.length} in-file`),e.findings.length>0&&a.push(`\u26A0 ${e.findings.length} finding${e.findings.length===1?``:`s`}`);let o=a.length?` \xB7 ${a.join(` · `)}`:``,s=`**${bv(r)}** \u2014 ${bv(i)}${o}`,c=`${r} \u2014 ${i}${o}`,l=[];if(e.summary&&l.push(bv(e.summary)),e.signature&&l.push(kv(e.signature,Ov(t.path))),e.importedBy.length>0){let t=e.importedBy.slice(0,fv),n=t.map(e=>`- [\`${e.path}\`](${_v(e.path)})${e.viaBinding?``:` — whole-file import`}`);l.push(Tv(`Imported by (${e.importedBy.length}${e.importedByTruncated?`+`:``})`,n,e.importedBy.length-t.length,e.importedByTruncated))}if(e.uses.length>0){let t=e.uses.slice(0,pv),n=t.map(e=>e.inRepo?`- [\`${e.name}\`](${_v(e.from)}) \u2014 \`${e.from}\``:`- \`${e.name}\` \u2014 \`${e.from}\``);l.push(Tv(`Uses (${e.uses.length})`,n,e.uses.length-t.length,!1))}if(e.usedInFileBy.length>0){let t=e.usedInFileBy.slice(0,mv),r=t.map(e=>{let t=n.get(e);return t?`- [\`${e}\`](${vv(t)}) \u2014 line ${t}`:`- \`${e}\``});l.push(Tv(`Used in this file by (${e.usedInFileBy.length})`,r,e.usedInFileBy.length-t.length,!1))}return e.findings.length>0&&l.push(wv(`Findings`,e.findings)),{id:`${e.name}@${e.lineStart}`,line:e.lineStart,summaryMarkdown:s,summaryText:c,markdown:l.join(`
170
+ `,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=nu(tu(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=nu(tu(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}};function ou(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new Zl||null,prettyErrors:t}}function su(e,t={}){let{lineCounter:n,prettyErrors:r}=ou(t),i=new au(n?.addNewLine),a=new Ll(t),o=null;for(let t of a.compose(i.parse(e),!0,e.length))if(!o)o=t;else if(o.options.logLevel!==`silent`){o.errors.push(new $c(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return r&&n&&(o.errors.forEach(tl(e,n)),o.warnings.forEach(tl(e,n))),o}function cu(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let i=su(e,n);if(!i)return null;if(i.warnings.forEach(e=>Ms(i.options.logLevel,e)),i.errors.length>0){if(i.options.logLevel!==`silent`)throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}e(((e,t)=>{t.exports={}}))();var Y=L(`kind`,[F({kind:B(`gezel`),gezelId:k()}),F({kind:B(`user`)})]),lu=[`tiny`,`small`,`medium`,`large`,`cloud`],uu=I([z([`llm`,`network`,`workspace.read`,`workspace.write`,`artifacts.read`,`artifacts.write`,`documents.read`,`documents.write`,`tasks.read`,`tasks.write`,`memory.read`,`memory.write`]),k().regex(/^credential:[a-zA-Z][\w.:-]*$/,`credential capability must be of the form "credential:<name>" where <name> starts with a letter and contains letters, digits, underscore, hyphen, dot, or colon`)]);function du(e){return e.startsWith(`credential:`)}function fu(e){return du(e)?e.slice(11):null}var pu=L(`type`,[F({type:B(`string`),description:k(),required:M().optional(),default:k().optional(),pattern:k().optional(),multiline:M().optional()}),F({type:B(`number`),description:k(),required:M().optional(),default:j().optional(),min:j().optional(),max:j().optional(),integer:M().optional()}),F({type:B(`boolean`),description:k(),required:M().optional(),default:M().optional()}),F({type:B(`choice`),description:k(),required:M().optional(),default:k().optional(),options:P(F({value:k(),label:k().optional()})).min(1)}),F({type:B(`ref`),description:k(),required:M().optional(),kind:z([`gezel`,`task`,`artifact`,`document`])}),F({type:B(`json`),description:k(),required:M().optional(),default:N().optional(),schema:N().optional()})]),mu=R(k(),pu),hu=L(`type`,[F({type:B(`string`),description:k(),nullable:M().optional()}),F({type:B(`number`),description:k(),nullable:M().optional()}),F({type:B(`boolean`),description:k(),nullable:M().optional()}),F({type:B(`array`),description:k(),itemType:z([`string`,`number`,`boolean`,`object`])}),F({type:B(`object`),description:k(),schema:N().optional()}),F({type:B(`json`),description:k(),schema:N().optional()})]),gu=R(k(),hu),_u=F({name:k().regex(/^[a-zA-Z][\w-]*$/,`name must start with a letter and contain only letters, digits, underscore, or hyphen`),description:k().min(10),kind:z([`action`,`gate`]).optional(),inputs:mu.optional(),outputs:gu.optional(),requires:P(uu).optional()}),vu=z([`project`,`craftbook`,`user`,`standard`]),yu=L(`op`,[F({op:B(`always`)}),F({op:B(`never`)}),F({op:B(`ok`)}),F({op:B(`equals`),field:k().min(1),value:I([k(),j(),M(),Na()])}),F({op:B(`exists`),field:k().min(1),negate:M().optional()}),F({op:B(`gt`),field:k().min(1),value:j()})]),bu=F({name:k().min(1),scope:vu.optional(),inputs:R(k(),N()).optional(),autoAdvanceOnSuccess:M().optional(),autoAdvanceWhen:yu.optional()}),xu=I([bu,P(bu)]);function Su(e){return e===void 0?[]:Array.isArray(e)?e:[e]}var Cu=z([`running`,`ok`,`error`]),wu=F({at:k(),kind:k(),argsSummary:k(),outputSummary:k().optional(),durationMs:j().nonnegative(),error:k().optional()}),Tu=L(`kind`,[F({kind:B(`step`),taskRef:k(),stepId:k(),moment:z([`enter`,`exit`,`gate`])}),F({kind:B(`chat`),sessionId:k(),gezelId:k()}),F({kind:B(`manual`),userInitiated:B(!0)}),F({kind:B(`nested`),parentRunId:k()}),F({kind:B(`connector`),typeId:k(),bindingId:k()}),F({kind:B(`page`),tool:k()})]);F({id:k(),projectId:k(),scriptName:k(),startedAt:k(),finishedAt:k().optional(),status:Cu,trigger:Tu,inputs:R(k(),N()),output:N().optional(),calls:P(wu),logs:k(),error:k().optional()}),F({name:k().min(1),scope:vu.optional(),input:R(k(),N()).optional()});var Eu=F({runId:k(),status:Cu,output:N().optional(),callsSummary:P(F({kind:k(),durationMs:j().nonnegative(),error:k().optional()})),error:k().optional()});F({tool:k().regex(/^[a-z][a-z0-9_]*$/),input:R(k(),N()).optional()}),Eu.extend({reaction:F({delivered:M(),gezelId:k().optional(),reason:k().optional()}).optional()}),F({op:z([`read`,`list`,`stat`]),source:z([`workspace`,`artifacts`]),path:k().min(1),as:z([`text`,`json`,`bytes`]).optional(),maxBytes:j().int().positive().optional()});var Du=F({name:k(),kind:z([`file`,`dir`]),size:j().nonnegative(),mtime:j().nonnegative()});F({op:z([`read`,`list`,`stat`]),content:k().optional(),encoding:z([`utf8`,`base64`]).optional(),entries:P(Du).optional(),etag:k(),size:j().nonnegative().optional(),mtime:j().nonnegative().optional()}),F({scripts:P(F({name:k(),meta:_u,path:k()}))});var Ou=k().regex(/^[a-zA-Z][\w-]*$/,`script name must start with a letter and contain only letters, digits, underscore, or hyphen`),ku=F({severity:z([`error`,`warning`,`info`]),source:z([`meta`,`typescript`,`runtime-compat`]),message:k(),line:j().optional(),column:j().optional()}),Au=F({kind:z([`craftbook`,`import`,`user`,`standard`]),ref:k()});F({name:Ou,source:k(),hash:k(),mtimeMs:j(),meta:_u.optional(),metaError:k().optional(),provenance:Au.optional()}),F({name:Ou,source:k(),baseHash:k().optional()}),L(`status`,[F({status:B(`saved`),hash:k(),metaOk:M(),meta:_u.optional(),diagnostics:P(ku)}),F({status:B(`conflict`),currentHash:k(),currentSource:k()})]);var ju=z([`blank`,`post-message`,`fetch-and-summarize`,`check-files`,`call-tool`,`ask-ai`]);F({name:Ou,description:k().optional(),template:ju.optional(),source:k().optional()}),F({name:Ou,source:k(),hash:k()}),F({version:k(),files:P(F({name:k(),content:k()}))}),F({name:Ou,description:k().min(1)}),F({source:k()});var Mu=z([`html-complete`,`html-game`,`nonempty`,`json-valid`,`data-table`]),Nu=I([k(),j(),M(),Na()]),Pu=L(`kind`,[F({kind:B(`minBytes`),file:k().min(1),bytes:j().int().positive(),artifact:M().optional()}),F({kind:B(`totalMinBytes`),files:P(k().min(1)).min(1),bytes:j().int().positive()}),F({kind:B(`fileCount`),ext:P(k().min(1)).min(1),min:j().int().positive(),dir:k().optional(),verifyImageBytes:M().optional()}),F({kind:B(`cssMinBytes`),bytes:j().int().positive(),file:k().optional()}),F({kind:B(`sniff`),file:k().min(1),sniff:Mu,artifact:M().optional()}),F({kind:B(`jsonPathEquals`),file:k().min(1),path:k().min(1),value:Nu,label:k().min(1).optional()}),F({kind:B(`csvShape`),file:k().min(1),requiredColumns:P(k().min(1)).min(1).optional(),exactColumns:P(k().min(1)).min(1).optional(),minRows:j().int().nonnegative().optional(),consistentColumns:M().optional(),allowedValues:R(k(),P(k().min(1)).min(1)).optional()}),F({kind:B(`contains`),file:k().min(1),pattern:k().min(1),flags:k().optional(),label:k().min(1).optional(),artifact:M().optional()}),F({kind:B(`notContains`),file:k().min(1),pattern:k().min(1),flags:k().optional(),label:k().min(1).optional(),artifact:M().optional()}),F({kind:B(`unsupportedClaims`),file:k().min(1),sourceFiles:P(k().min(1)).min(1),patterns:P(F({pattern:k().min(1),label:k().min(1).optional()})).min(1),flags:k().optional()}),F({kind:B(`jsParses`),file:k().optional()}),F({kind:B(`htmlLint`),file:k().min(1)}),F({kind:B(`esmImports`),file:k().min(1)}),F({kind:B(`sourceParses`),file:k().min(1)}),F({kind:B(`tableShape`),file:k().min(1),requiredColumns:P(k().min(1)).min(1).optional(),minRows:j().int().nonnegative().optional(),artifact:M().optional()}),F({kind:B(`recordSchema`),file:k().min(1),fields:P(F({name:k().min(1),type:k().optional(),required:M().optional()})).min(1),minRows:j().int().nonnegative().optional(),uniqueBy:k().optional(),format:z([`json`,`csv`,`auto`]).optional(),artifact:M().optional()}),F({kind:B(`nodeRuns`),file:k().min(1),timeoutMs:j().int().positive().max(6e4).optional()}),F({kind:B(`citationsResolve`),file:k().min(1),pattern:k().min(1).optional(),flags:k().optional(),minCitations:j().int().nonnegative().optional(),corpus:P(k().min(1)).min(1).optional(),artifact:M().optional()}),F({kind:B(`researchEvidence`),sourcePath:k().optional(),tools:P(k().min(1)).min(1),minSuccessful:j().int().positive().optional()}),F({kind:B(`corpusCoverage`),file:k().min(1),corpusDir:k().min(1),reviewedField:k().min(1).optional(),recordField:k().min(1).optional()}),F({kind:B(`markdownHeadingsMatch`),file:k().min(1),outlineFile:k().min(1),outlineArtifact:M().optional()}),F({kind:B(`valueGrounding`),file:k().min(1),facts:P(F({id:k().min(1),label:k().min(1).optional(),required:P(k().min(1)).min(1),forbidden:P(k().min(1)).optional()})).min(1),normalizeDigits:M().optional(),artifact:M().optional()}),F({kind:B(`valuesSubsetOf`),file:k().min(1),sourceFiles:P(k().min(1)).min(1),pattern:k().min(1),flags:k().optional(),minMatches:j().int().nonnegative().optional(),artifact:M().optional()}),F({kind:B(`judge`),file:k().min(1),rubric:k().min(1),sourceFiles:P(k().min(1)).optional(),requireEvidence:M().optional(),advisory:M().optional(),timeoutMs:j().int().positive().max(12e4).optional(),label:k().min(1).optional(),artifact:M().optional()}),F({kind:B(`planStructure`),file:k().min(1),minRows:j().int().positive().optional(),ownerRoster:P(k().min(1)).optional(),requireEarlierOnly:M().optional(),doneWhenMinChars:j().int().positive().optional(),artifact:M().optional()})]);F({verdict:z([`pass`,`fail`]),reasons:P(k().min(1)).max(5),evidence:P(k()).default([]),confidence:z([`low`,`medium`,`high`]).optional()});var Fu=F({checks:P(Pu).min(1),onFail:k().optional(),onPass:k().optional(),maxAttempts:j().int().positive().optional(),reviewer:k().optional()}),Iu=F({name:k().min(1),scope:vu.optional(),inputs:R(k(),N()).optional()});F({decision:z([`approve`,`reject`]),message:k().optional(),goto:k().optional(),handoff:F({message:k(),params:R(k(),N()).optional()}).optional()}).superRefine((e,t)=>{e.decision===`reject`&&!e.message?.trim()&&t.addIssue({code:V.custom,message:`a reject result must carry a message — it is the prescriptive guidance the working session uses to fix the step`,path:[`message`]})});var Lu=I([F({at:z([`completion`,`activation`]),checks:P(Pu).optional(),scripts:P(Iu).optional(),onReject:k().optional(),onApprove:k().optional(),maxAttempts:j().int().positive().optional(),reviewer:k().optional()}).superRefine((e,t)=>{!e.checks?.length&&!e.scripts?.length&&t.addIssue({code:V.custom,message:`a gate needs at least one check or one script`})}),Fu]);function Ru(e){return!(`at`in e)}function zu(e){return Ru(e)?{at:`activation`,checks:e.checks,scripts:[],...e.onFail===void 0?{}:{onReject:e.onFail},...e.onPass===void 0?{}:{onApprove:e.onPass},maxAttempts:e.maxAttempts??4,...e.reviewer===void 0?{}:{reviewer:e.reviewer},legacy:!0}:{at:e.at,checks:e.checks??[],scripts:e.scripts??[],...e.onReject===void 0?{}:{onReject:e.onReject},...e.onApprove===void 0?{}:{onApprove:e.onApprove},maxAttempts:e.maxAttempts??4,...e.reviewer===void 0?{}:{reviewer:e.reviewer},legacy:!1}}function Bu(e){let t=zu(e);return[t.onReject,t.onApprove].filter(e=>e!==void 0)}var Vu=z([`PreToolUse`,`PostToolUse`]),Hu=z([`allow`,`deny`,`ask`]),Uu=F({phase:Vu,matcher:k().default(`.*`),script:bu.optional(),decision:Hu.optional(),label:k().optional()}).superRefine((e,t)=>{let n=e.script!==void 0;n===(e.decision!==void 0)&&t.addIssue({code:V.custom,message:"a hook must set exactly one of `script` or `decision`",path:[n?`decision`:`script`]})});F({decision:Hu.default(`allow`),message:k().optional()});var Wu=F({when:yu,goto:k()}),Gu=F({file:k().min(1),minBytes:j().int().positive().optional(),sniff:Mu.optional(),requireChange:M().optional(),artifact:M().optional(),goto:k().optional()}),Ku=F({file:k().min(1).describe(`Path relative to the selected drawer root.`),artifact:M().optional().describe(`True for the artifacts drawer; false/omitted for the project workspace.`)}),qu=z(lu),Ju=F({id:k().min(1),name:k().min(1),description:k().optional(),prompt:k().optional(),suggestedGezelId:k().optional(),suggestedRole:k().optional(),capabilityFloor:qu.optional(),assignee:Y.optional(),onEnter:xu.optional(),onExit:xu.optional(),consumes:P(Ku).min(1).optional().describe("Files this step must open before working. Artifact inputs also require an explicit `read_artifact` call in the step prompt."),advanceWhen:Gu.optional(),gate:Lu.optional(),next:k().optional(),branches:P(Wu).optional(),terminal:M().optional(),spawnFanout:M().optional()}),Yu=F({overFile:k().min(1),overArtifact:M().optional(),itemsPath:k().optional(),entryStepId:k().optional(),steps:P(Ju).min(1)});function Xu(e){let t=[],n=new Set;for(let r of e.steps)n.has(r.id)&&t.push(`duplicate step id "${r.id}"`),n.add(r.id),r.terminal&&(r.next||r.branches&&r.branches.length>0)&&t.push(`step "${r.id}" is terminal but also has next/branches`);n.has(e.entryStepId)||t.push(`entryStepId "${e.entryStepId}" not in steps`);for(let r of e.steps){r.next&&!n.has(r.next)&&t.push(`step "${r.id}".next "${r.next}" missing from steps`);for(let e of r.branches??[])n.has(e.goto)||t.push(`step "${r.id}" branch goto "${e.goto}" missing from steps`);r.advanceWhen&&(r.terminal&&t.push(`step "${r.id}" is terminal but also has advanceWhen`),r.advanceWhen.goto&&!n.has(r.advanceWhen.goto)&&t.push(`step "${r.id}" advanceWhen.goto "${r.advanceWhen.goto}" missing from steps`));for(let e of r.consumes??[])e.artifact&&(/`read_artifact(?:`|\()/.test(r.prompt??``)||t.push(`step "${r.id}" consumes artifact "${e.file}" but its prompt does not explicitly call \`read_artifact\``));if(r.gate){let e=zu(r.gate);r.terminal&&e.at===`activation`&&t.push(`step "${r.id}" is terminal but also has an activation gate`);for(let e of Bu(r.gate))n.has(e)||t.push(`step "${r.id}" gate route "${e}" missing from steps`)}}return t}function Zu(e,t){for(let n of Xu(e))t.addIssue({code:V.custom,message:n,path:n.startsWith(`entryStepId`)?[`entryStepId`]:[`steps`]});for(let n of od(e))t.addIssue({code:V.custom,message:n,path:[`steps`]})}var Qu=L(`kind`,[F({kind:B(`github`)}),F({kind:B(`non-main-branch`)})]),$u=F({scheduled:z([`supported`,`recommended`]).optional(),nightShift:z([`supported`,`recommended`]).optional()}),ed=F({toolsetId:k().min(1),sourceId:k().optional(),minVersion:k().optional(),optional:M().optional(),autoAllow:M().optional(),reason:k().optional()}),td=F({typeId:k().min(1),sourceId:k().optional(),optional:M().optional(),reason:k().optional()}),nd=64*1024,rd=256*1024,id=R(Ou,k().min(1).max(nd)).superRefine((e,t)=>{let n=Object.keys(e);n.length>24&&t.addIssue({code:V.custom,message:`a craftbook carries at most 24 scripts (got ${n.length})`});let r=0;for(let t of n)r+=e[t].length;r>262144&&t.addIssue({code:V.custom,message:`craftbook scripts total ${r} bytes \u2014 the ceiling is ${rd}`})}),ad=F({name:k().min(1),url:k().url().regex(/^https?:\/\//i,`basedOn.url must use http or https`)});function od(e){if(!e.scripts)return[];let t=[],n=new Set(Object.keys(e.scripts)),r=(e,r,i)=>{for(let a of i)(a.scope??`project`)===`craftbook`&&!n.has(a.name)&&t.push(`step "${e}" ${r} references craftbook script "${a.name}" which is not in the scripts map${n.size>0?` (available: ${[...n].join(`, `)})`:``}`)};for(let t of e.steps)r(t.id,`onEnter`,Su(t.onEnter)),r(t.id,`onExit`,Su(t.onExit)),t.gate&&r(t.id,`gate`,zu(t.gate).scripts);return t}var sd=F({id:k().min(1),name:k().min(1),description:k().optional(),version:k().optional(),basedOn:ad.optional(),plan:k().optional(),defaultAssignee:Y.optional(),steps:P(Ju).min(1),entryStepId:k().min(1),triggers:P(k()).optional(),hooks:P(Uu).optional(),paramSchema:R(k(),N()).optional(),command:k().regex(/^[a-z][a-z0-9-]*$/).optional(),requirements:P(Qu).optional(),runModes:$u.optional(),toolsets:P(ed).optional(),connectors:P(td).optional(),scripts:id.optional(),spawn:Yu.optional(),createdAt:k(),updatedAt:k()}).superRefine(Zu),cd=z([`html-game`,`html-multiscreen-game`,`html-page`,`html-marketing-site`,`markdown-doc`,`markdown-report`,`markdown-notes`,`json`,`yaml-spec`,`code-module`,`code-with-tests`,`security-report`,`image-set`,`audio-file`,`slide-deck`,`data-file`,`generic-file`]),ld=F({path:k().min(1),kind:cd.optional(),minBytes:j().int().positive().optional(),maxAttempts:j().int().positive().optional(),artifact:M().optional(),requireChange:M().optional(),execute:M().optional(),columns:P(k().min(1)).min(1).optional(),minRows:j().int().positive().optional()}),ud=F({id:k().optional(),name:k().min(1),description:k().optional(),prompt:k().optional(),suggestedGezelId:k().optional(),suggestedRole:k().optional(),capabilityFloor:qu.optional(),assignee:Y.optional(),onEnter:xu.optional(),onExit:xu.optional(),consumes:P(Ku).min(1).optional().describe("Files this step must open before working. Artifact inputs also require an explicit `read_artifact` call in the step prompt."),advanceWhen:Gu.optional(),gate:Lu.optional(),deliverable:ld.optional(),next:k().optional(),branches:P(Wu).optional(),terminal:M().optional(),spawnFanout:M().optional()});F({id:k().optional(),name:k().min(1),description:k().optional(),basedOn:ad.optional(),plan:k().optional(),defaultAssignee:Y.optional(),steps:P(ud).min(1),entryStepId:k().optional(),paramSchema:R(k(),N()).optional(),command:k().regex(/^[a-z][a-z0-9-]*$/).optional(),requirements:P(Qu).optional(),runModes:$u.optional(),toolsets:P(ed).optional(),scripts:id.optional()}),F({name:k().min(1).optional(),description:k().nullable().optional(),basedOn:ad.nullable().optional(),plan:k().nullable().optional(),defaultAssignee:Y.nullable().optional(),steps:P(ud).min(1).optional(),entryStepId:k().optional(),paramSchema:R(k(),N()).nullable().optional(),command:k().regex(/^[a-z][a-z0-9-]*$/).nullable().optional(),requirements:P(Qu).nullable().optional(),runModes:$u.nullable().optional(),toolsets:P(ed).nullable().optional(),scripts:id.nullable().optional()}),F({craftbooks:P(F({id:k(),name:k(),description:k().optional(),version:k().optional(),basedOn:ad.optional(),source:z([`bundled`,`local`,`project`]),stepCount:j().int().nonnegative()}))}),F({installedBy:B(`project-type`),typeId:k(),typeVersion:k(),bookVersion:k(),contentHash:k(),installedAt:k()}),F({suggestions:P(F({id:k(),name:k(),description:k().optional(),source:z([`bundled`,`local`,`project`]),version:k().optional(),basedOn:ad.optional(),stepCount:j().int().nonnegative(),tags:P(k()).optional(),triggers:P(k()).optional(),score:j(),semantic:j().optional(),lexical:j()}))}),F({craftbook:sd});function dd(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,64)||`step`}F({after:k().optional(),before:k().optional(),index:j().int().nonnegative().optional()});function fd(e,t,n){let r=new Set(e.map(e=>e.id)),i=n&&n.length>0?n:dd(t),a=i,o=2;for(;r.has(i);)i=`${a}-${o++}`;return i}function pd(e,t){let n=new Map(e.map(e=>[e.id,e]));if(t.length!==e.length)throw Error(`reorder must list all ${e.length} step ids (got ${t.length})`);let r=[],i=new Set;for(let e of t){let t=n.get(e);if(!t)throw Error(`reorder references unknown step id "${e}"`);if(i.has(e))throw Error(`reorder lists step id "${e}" twice`);i.add(e),r.push(t)}return r}function md(e,t){let n={...e};if(n.next===t&&delete n.next,n.branches){let e=n.branches.filter(e=>e.goto!==t);e.length>0?n.branches=e:delete n.branches}if(n.advanceWhen?.goto===t&&(n.advanceWhen={...n.advanceWhen},delete n.advanceWhen.goto),n.gate&&Bu(n.gate).includes(t)){let e={...n.gate};Ru(e)?(e.onFail===t&&delete e.onFail,e.onPass===t&&delete e.onPass):(e.onReject===t&&delete e.onReject,e.onApprove===t&&delete e.onApprove),n.gate=e}return n}function hd(e,t){if(!e.some(e=>e.id===t))throw Error(`step "${t}" not found`);let n=e.filter(e=>e.id!==t);if(n.length===0)throw Error(`cannot remove the last step of a craftbook`);return n.map(e=>md(e,t))}function gd(e,t){let n={...e};return t.name!==void 0&&(n.name=t.name),t.description!==void 0&&(t.description===``?delete n.description:n.description=t.description),t.prompt!==void 0&&(t.prompt===``?delete n.prompt:n.prompt=t.prompt),t.suggestedRole!==void 0&&(t.suggestedRole===null||t.suggestedRole===``?delete n.suggestedRole:n.suggestedRole=t.suggestedRole),t.capabilityFloor!==void 0&&(t.capabilityFloor===null?delete n.capabilityFloor:n.capabilityFloor=t.capabilityFloor),t.assignee!==void 0&&(t.assignee===null?delete n.assignee:n.assignee=t.assignee),t.suggestedGezelId!==void 0&&(t.suggestedGezelId===null?delete n.suggestedGezelId:n.suggestedGezelId=t.suggestedGezelId),t.onEnter!==void 0&&(t.onEnter===null||Array.isArray(t.onEnter)&&t.onEnter.length===0?delete n.onEnter:n.onEnter=t.onEnter),t.onExit!==void 0&&(t.onExit===null||Array.isArray(t.onExit)&&t.onExit.length===0?delete n.onExit:n.onExit=t.onExit),t.consumes!==void 0&&(t.consumes===null||t.consumes.length===0?delete n.consumes:n.consumes=t.consumes),t.advanceWhen!==void 0&&(t.advanceWhen===null?delete n.advanceWhen:n.advanceWhen=t.advanceWhen),t.gate!==void 0&&(t.gate===null?delete n.gate:n.gate=t.gate),t.next!==void 0&&(t.next===null||t.next===``?delete n.next:n.next=t.next),t.branches!==void 0&&(t.branches===null||t.branches.length===0?delete n.branches:n.branches=t.branches),t.terminal!==void 0&&(t.terminal?n.terminal=!0:delete n.terminal),n}F({id:k().optional(),name:k().min(1),description:k().optional(),basedOn:ad.optional(),plan:k().optional(),entryStepId:k().optional(),triggers:P(k()).optional(),command:k().regex(/^[a-z][a-z0-9-]*$/).optional(),defaultAssignee:Y.optional(),requirements:P(Qu).optional(),runModes:$u.optional(),toolsets:P(ed).optional(),connectors:P(td).optional(),paramSchema:R(k(),N()).optional(),hooks:P(Uu).optional(),steps:P(ud).min(1),spawn:Yu.optional(),scripts:id.optional(),version:k().optional(),releasedAt:k().optional(),minGezelVersion:k().optional()});var _d={broad:{baseW:46,hipW:52,waistW:52,chestW:56,shoulderW:54,label:`broad`,note:`Barrel torso, broad through the shoulders. Reads adult, sturdy.`},tapered:{baseW:58,hipW:52,waistW:46,chestW:38,shoulderW:32,label:`tapered`,note:`Classic peg-doll cone. Wide base, smooth taper to a narrow top.`},curvy:{baseW:48,hipW:60,waistW:34,chestW:46,shoulderW:36,label:`curvy`,note:`Hourglass — hip flare, pinched waist, narrower shoulders.`},athletic:{baseW:38,hipW:40,waistW:42,chestW:54,shoulderW:56,label:`athletic`,note:`V-shape. Wider chest and shoulders, narrower waist and hips.`},slender:{baseW:46,hipW:42,waistW:34,chestW:36,shoulderW:32,label:`slender`,note:`Narrow throughout. Reads tall and lean.`},stout:{baseW:62,hipW:64,waistW:62,chestW:58,shoulderW:50,label:`stout`,note:`Wide throughout. Reads grounded, generous.`}},vd=Object.keys(_d),yd={adult:{bodyScale:1,headScale:1,label:`adult`,note:`Standard crew member.`},shorter:{bodyScale:.88,headScale:.98,label:`shorter`,note:`Older or simply shorter adult.`},child:{bodyScale:.78,headScale:.96,label:`child`,note:`Short body, head reads proportionally larger.`},toddler:{bodyScale:.76,headScale:.95,label:`toddler`,note:`Smallest. Mostly head.`}},bd=Object.keys(yd),xd={none:{skip:!0},straight:{dispScale:0,opacity:.18,soften:.28,streakFreq:`0.13 0.018`},wavy:{dispScale:3.2,opacity:.23,soften:.3,streakFreq:`0.12 0.016`},pronounced:{dispScale:4.8,opacity:.31,soften:.24,streakFreq:`0.14 0.018`},character:{dispScale:6.4,opacity:.42,soften:.18,streakFreq:`0.16 0.02`}},Sd=[`cap`,`beanie`,`kerchief`,`straw`,`newsboy`,`hood`],Cd=[`scarf`,`apron`,`collar`,`turtleneck`],wd=[`halo`,`short`,`long`,`bun`,`braids`,`shaved`,`bald`],Td=`glasses.sunglasses.cateye.readers.monocle.eyepatch.earrings.earring-left.earring-right.flower.hairclip.headband.bowtie.necklace.brooch.facemask.goggles.safety-glasses.pince-nez.headphones.hearing-aid.nose-ring.hoop-earrings.drop-earrings.pearl-earrings.bandage.feather.pencil.ribbon.necktie.cravat.bolo-tie.lanyard.medal.pocket-square.tool-pendant`.split(`.`),Ed={common:12,uncommon:6,rare:2,veryRare:.5},Dd={glasses:{rarity:`common`},sunglasses:{rarity:`uncommon`},cateye:{rarity:`uncommon`},readers:{rarity:`uncommon`},monocle:{rarity:`veryRare`},eyepatch:{rarity:`veryRare`},earrings:{rarity:`common`},"earring-left":{rarity:`rare`,byGender:{female:`veryRare`}},"earring-right":{rarity:`rare`,byGender:{female:`veryRare`}},flower:{rarity:`uncommon`},hairclip:{rarity:`uncommon`},headband:{rarity:`uncommon`},bowtie:{rarity:`rare`},necklace:{rarity:`common`},brooch:{rarity:`rare`},facemask:{rarity:`rare`},goggles:{rarity:`uncommon`},"safety-glasses":{rarity:`common`},"pince-nez":{rarity:`rare`},headphones:{rarity:`common`},"hearing-aid":{rarity:`common`},"nose-ring":{rarity:`uncommon`},"hoop-earrings":{rarity:`uncommon`},"drop-earrings":{rarity:`uncommon`},"pearl-earrings":{rarity:`common`},bandage:{rarity:`uncommon`},feather:{rarity:`uncommon`},pencil:{rarity:`common`},ribbon:{rarity:`common`},necktie:{rarity:`common`},cravat:{rarity:`rare`},"bolo-tie":{rarity:`uncommon`},lanyard:{rarity:`common`},medal:{rarity:`rare`},"pocket-square":{rarity:`uncommon`},"tool-pendant":{rarity:`uncommon`}},Od={scarf:`common`,apron:`veryRare`,collar:`common`,turtleneck:`common`},kd=[`beard`,`mustache`],Ad=[`freckles`,`mole`],jd=[`plain`,`buttons`,`stripes`,`sash`,`yoke`,`twotone`],Md=[{felt:`#a8554a`,band:`#7c3a32`},{felt:`#c9973f`,band:`#96702c`},{felt:`#5d7257`,band:`#42523e`},{felt:`#4e6586`,band:`#374a64`},{felt:`#43474e`,band:`#2e3138`},{felt:`#8a5a78`,band:`#64405a`}],Nd=[`smile`,`wider`,`neutral`,`wink`,`sleepy`],Pd={skins:[{skin:`#ecd5b8`,skin2:`#b8a080`},{skin:`#dbb898`,skin2:`#a98870`},{skin:`#e6c7a8`,skin2:`#b89478`},{skin:`#d4b896`,skin2:`#a48c6c`},{skin:`#c79775`,skin2:`#9d7050`},{skin:`#9c6b48`,skin2:`#7a5236`},{skin:`#a87852`,skin2:`#7d5436`},{skin:`#5d3a24`,skin2:`#3d2418`}],hairs:[`#1a1410`,`#2a1d12`,`#3a2418`,`#5a3a1c`,`#7a5230`,`#a87042`,`#cc7744`,`#d4a060`,`#9a948a`,`#dcd5c8`,`#1f1812`],shirts:[{shirt:`#94a87c`,accent:`#5c6a4a`},{shirt:`#6d7d54`,accent:`#46543a`},{shirt:`#d07c56`,accent:`#9a4e30`},{shirt:`#b65843`,accent:`#7e382a`},{shirt:`#d2a350`,accent:`#9a6c28`},{shirt:`#dcc06e`,accent:`#a8863a`},{shirt:`#5b7cab`,accent:`#2a4670`},{shirt:`#549191`,accent:`#2f5f5f`},{shirt:`#7d8794`,accent:`#4a5360`},{shirt:`#9d6890`,accent:`#5a3850`},{shirt:`#c28b8b`,accent:`#8f5454`},{shirt:`#7a9a62`,accent:`#4a6a3a`}]},Fd={hat:.3,dress:.22,accessory:.5,facialHair:.18,mark:.2,shirtPattern:.66},Id=[{scale:`adult`,upTo:.52},{scale:`shorter`,upTo:.8},{scale:`child`,upTo:.93},{scale:`toddler`,upTo:1}];function Ld(e){if(!e||typeof e!=`object`)return e;let t={...e},n=t.accessory;return n===`beard`||n===`mustache`?(t.facialHair??=n,t.accessory=null):n===`freckles`||n===`mole`?(t.mark??=n,t.accessory=null):n===`earring`&&(t.accessory=`earrings`),t}var Rd=xo(Ld,F({key:k().min(1),name:k(),bodyShape:z(vd),figureScale:z(bd),skin:k(),skin2:k(),hair:k(),hairShape:z(wd),hat:z(Sd).nullable().optional().default(null),dress:z(Cd).nullable().optional().default(null),accessory:z(Td).nullable().optional().default(null),facialHair:z(kd).nullable().optional().default(null),mark:z(Ad).nullable().optional().default(null),expression:z(Nd).optional().default(`smile`),shirt:k(),shirtAccent:k(),shirtPattern:z(jd).optional().default(`plain`)})),zd=z([`default`,`acceptEdits`,`plan`,`bypassPermissions`]),Bd=z([`plan`,`edit`,`reviewed`,`full`]),Vd=I([Bd,z([`default`,`acceptEdits`,`bypassPermissions`])]);function Hd(e){switch(e){case`plan`:return`plan`;case`reviewed`:return`reviewed`;case`full`:case`bypassPermissions`:return`full`;case`edit`:case`default`:case`acceptEdits`:case void 0:return`edit`}}var Ud=/^[A-Za-z0-9@][A-Za-z0-9@._-]{0,199}$/,Wd=new Set([`CON`,`PRN`,`AUX`,`NUL`,`COM1`,`COM2`,`COM3`,`COM4`,`COM5`,`COM6`,`COM7`,`COM8`,`COM9`,`LPT1`,`LPT2`,`LPT3`,`LPT4`,`LPT5`,`LPT6`,`LPT7`,`LPT8`,`LPT9`]);function Gd(e){if(typeof e!=`string`||!Ud.test(e))return!1;let t=(e.split(`.`)[0]??``).toUpperCase();return!Wd.has(t)}var Kd=k().refine(Gd,{message:`must be a portable single-segment entity id`}),qd=k().min(1).describe(`Canonical tuning profile id.`),Jd=`thinking-general`,Yd={"thinking-general":{id:`thinking-general`,label:`Thinking — General`,description:`Reasoning mode for general analytical tasks.`,kind:`thinking`,fallbackChain:[`instruct`]},"thinking-coding":{id:`thinking-coding`,label:`Thinking — Coding`,description:`Reasoning mode tuned for precise coding tasks.`,kind:`thinking`,fallbackChain:[`thinking-general`,`instruct`]},"thinking-precise":{id:`thinking-precise`,label:`Thinking — Precise`,description:`Low-temperature reasoning for structured output and fact-checking.`,kind:`thinking`,fallbackChain:[`thinking-coding`,`thinking-general`,`instruct`]},instruct:{id:`instruct`,label:`Instruct`,description:`Non-thinking instruct mode for direct answers.`,kind:`instruct`,fallbackChain:[]},creative:{id:`creative`,label:`Creative`,description:`Higher-temperature mode for creative writing.`,kind:`instruct`,fallbackChain:[`instruct`]},terse:{id:`terse`,label:`Terse`,description:`Short replies; low temperature, limited tokens.`,kind:`instruct`,fallbackChain:[`instruct`]},deterministic:{id:`deterministic`,label:`Deterministic`,description:`Temperature 0 for reproducible output (debugging, evals).`,kind:`instruct`,fallbackChain:[`instruct`]}};function Xd(e){return e in Yd}function Zd(e,t){if(!e)return;let n=t instanceof Set?t:new Set(t);if(Xd(e)){if(n.has(e))return e;for(let t of Yd[e].fallbackChain)if(n.has(t))return t}}var Qd=F({day:k().regex(/^\d{4}-\d{2}-\d{2}$/),kind:z([`fact`,`decision`,`pref`,`status`]),excerpt:k().min(1).max(400)}),$d=F({id:k(),kind:B(`trait`),title:k().min(1).max(80),traitText:k().min(1).max(200),evidence:P(Qd).min(1).max(3)}),ef=L(`type`,[F({type:B(`profile`),profile:qd}),F({type:B(`temperature`),delta:I([B(.1),B(-.1)])})]),tf=L(`kind`,[$d,F({id:k(),kind:B(`tuning`),title:k().max(80),description:k().max(300),action:ef}),F({id:k(),kind:B(`cosmetic`),title:k().max(80),cosmeticId:k()})]),nf=F({toLevel:j().int().min(2),proposals:P(tf).min(1).max(5),createdAt:k()}),rf=F({memoryXp:j().int().nonnegative().default(0),lessonsXp:j().int().nonnegative().default(0),taskXp:j().int().nonnegative().default(0),consultXp:j().int().nonnegative().default(0)}),af=F({traitId:k(),text:k(),level:j().int(),adoptedAt:k(),evidence:P(Qd),removedAt:k().optional()}),of=F({kind:z([`trait`,`tuning`,`cosmetic`]),title:k(),traitText:k().optional(),level:j().int(),declinedAt:k()}),sf=F({version:B(1).default(1),level:j().int().min(1).default(1),xp:j().int().nonnegative().default(0),signals:rf.prefault({}),lastComputedAt:k().optional(),pendingLevelUp:nf.optional(),adoptedTraits:P(af).default([]),declinedProposals:P(of).default([]),unlockedCosmetics:P(F({id:k(),at:k()})).default([])}),cf=F({level:j().int().min(1),pending:M().optional()}),lf=[0,100,250,500,900,1500,2400,3700,5500,8e3],uf=3e3;function df(e){return e<=1?0:e<=lf.length?lf[e-1]:lf[lf.length-1]+(e-lf.length)*uf}var ff=F({multiplier:j().min(0).max(5).describe(`DRY penalty strength. 0 disables. 0.8 is a reasonable default.`),base:j().min(0).max(5).optional().describe(`Base of the exponential penalty for repeated tokens. Default 1.75.`),allowedLength:j().int().min(0).max(64).optional().describe(`Minimum n-gram length before DRY kicks in. Default 2.`)}).describe(`DRY anti-repetition sampler (llama.cpp only).`),pf=F({probability:j().min(0).max(1).describe(`Probability of triggering XTC on any given step.`),threshold:j().min(0).max(1).describe(`Minimum top-token probability for XTC to fire.`)}).describe(`XTC sampler (llama.cpp only).`),mf=F({temperature:j().min(0).max(2).optional().describe(`Sampling temperature. 0 = greedy. Most reasoning models want 0.6–1.0.`),topP:j().min(0).max(1).optional().describe(`Nucleus sampling. 0.95 is the common default for Qwen, Gemma, Nemotron.`),topK:j().int().min(0).max(1e3).optional().describe(`Top-k cutoff. 20 for Qwen think, 64 for Gemma, 1 for greedy-on-instruct.`),minP:j().min(0).max(1).optional().describe(`Min-p cutoff (llama.cpp / MLX / Ollama). Qwen recommends 0.`),maxTokens:j().int().positive().optional().describe(`Per-turn output token cap. Maps to num_predict / max_tokens / n_predict.`),seed:j().int().optional().describe(`RNG seed. Unset / negative = random. Best-effort determinism on cloud.`),repetitionPenalty:j().min(0).max(3).optional().describe(`Local engines (Ollama / llama.cpp / MLX): repeat_penalty. 1.0 = off, 1.1 = mild.`),repetitionContext:j().int().positive().optional().describe("Local engines: window size for repetition penalty (`repeat_last_n`)."),frequencyPenalty:j().min(-2).max(2).optional().describe(`Cloud (OpenAI) and Ollama / llama.cpp: penalize repeated tokens by frequency.`),presencePenalty:j().min(-2).max(2).optional().describe(`Cloud (OpenAI) and Ollama / llama.cpp: penalize any reused token.`),dry:ff.optional(),xtc:pf.optional()}).describe(`Sampling parameters applied per-request.`),hf=F({effort:z([`low`,`medium`,`high`]).optional().describe("Cloud reasoning effort. Maps to OpenAI `reasoning.effort` and Anthropic `thinking.budget_tokens` tiers."),thinkingBudget:j().int().positive().optional().describe("Explicit thinking-token budget (Anthropic `thinking.budget_tokens`, Nemotron `reasoning_budget`). Wins over `effort` when both set."),enableThinking:M().optional().describe(`Chat-template toggle for dual-mode models (Qwen3+, Nemotron Nano/Super). Implicit on cloud thinking models.`),templateKwargs:R(k(),I([k(),j(),M()])).optional().describe("Chat-template variables that drive this model's reasoning depth, forwarded verbatim as `chat_template_kwargs` on local engines. The names are the model's own — GPT-OSS reads `reasoning_effort`, Muse Glimmer reads `reasoning_strength` (low|medium|high|xhigh) — so the manifest declares them rather than the runtime guessing. Lives under `reasoning` (not `engine`) because depth is a per-request choice a tuning profile overrides: `thinking-coding` can ask for xhigh while `instruct` asks for low. Cloud providers ignore it; use `reasoning.effort` there.")}).describe(`Reasoning controls.`),gf=F({responseFormat:z([`text`,`json_object`]).optional().describe("Output mode. `text` = freeform (default). `json_object` = enforce JSON."),jsonSchema:N().optional().describe(`Pin output to a JSON Schema (OpenAI strict mode, llama.cpp --json-schema).`),grammar:k().optional().describe(`llama.cpp GBNF grammar. Last-resort structured-output knob.`)}).describe(`Structured-output controls.`),_f=F({enableThinkingTag:k().optional().describe("User-prompt tag that enables thinking for this turn (e.g. `/think`)."),disableThinkingTag:k().optional().describe("User-prompt tag that disables thinking for this turn (e.g. `/no_think`).")}).describe(`Per-turn reasoning toggle tags.`),vf=F({llamaCpp:F({nGpuLayers:j().int().min(-1).optional().describe("`--n-gpu-layers` override. -1 = all. Unset = b9843 `auto`/`--fit`."),cpuMoe:M().optional().describe("`--cpu-moe`: keep ALL MoE experts in system RAM (attention/dense on GPU)."),nCpuMoe:j().int().min(0).optional().describe("`--n-cpu-moe N`: keep the first N layers’ MoE experts in RAM. Partial split."),cacheReuse:j().int().min(0).optional().describe("`--cache-reuse N` prefix-KV reuse chunk. 0 = disable. Unset inherits the global default."),swaFull:M().optional().describe("`--swa-full`: full-size SWA cache (Gemma family)."),flashAttn:z([`on`,`off`,`auto`]).optional().describe("`--flash-attn` mode override for this model."),ubatchSize:j().int().positive().optional().describe("`--ubatch-size` (inner microbatch) override for this model."),contextSize:j().int().positive().optional().describe(`Per-turn context ceiling (tokens) this model launches with. Capped by GGUF train ctx.`),chatTemplate:k().min(1).optional().describe("`--chat-template` override for GGUFs whose embedded Jinja template is incompatible with llama.cpp tool parsing."),threads:j().int().positive().optional().describe("`--threads` override."),batchSize:j().int().positive().optional().describe("`--batch-size` override."),spec:F({type:z([`none`,`draft-mtp`,`draft-eagle3`,`draft-dflash`,`draft-simple`,`ngram-mod`,`ngram-simple`,`ngram-map-k`,`ngram-map-k4v`,`ngram-cache`]).optional().describe("`--spec-type` speculative-decoding mode for this model."),mtp:M().optional().describe("VERIFIED capability metadata: this model’s target or companion GGUF carries MTP tensors. Does not enable `draft-mtp` by itself."),draftModelId:k().optional().describe("Catalog id / path of the draft model for `draft-simple`."),nMax:j().int().positive().optional().describe("`--spec-draft-n-max`: tokens drafted per step.")}).optional().describe(`Speculative-decoding config for this model.`)}).describe(`Per-model llama.cpp launch-flag defaults (engine-level, applied at model load).`).optional()}).describe(`Per-model engine launch-flag defaults, keyed by engine.`),yf=F({sampling:mf.optional(),samplingWhenThinking:mf.optional().describe("Sparse override of `sampling` applied when the runtime determines reasoning is engaged. Used by Qwen3+ (different sampling for /think mode) and Nemotron Nano (different sampling for thinking vs instruct)."),reasoning:hf.optional(),output:gf.optional(),toolChoice:z([`auto`,`required`,`none`]).optional().describe("Tool selection mode (cloud + llama.cpp + MLX). `auto` lets the model decide; `required` forces a tool call this turn; `none` disables tools."),promptTags:_f.optional()}).describe(`Per-model sampling, reasoning, and output defaults (without profiles).`),bf=yf.extend({engine:vf.optional().describe("Per-model ENGINE launch-flag defaults (llama.cpp `--n-gpu-layers`, `--cpu-moe`, `--spec-type`, …). Applied once at model load, not per request — so it lives on the top-level tuning object, not inside per-request `profiles`."),profiles:R(qd,yf.partial()).optional().describe("Named tuning presets this model implements. Gezel frontmatter `tuningProfile` selects one; the resolver applies the profile as a layer between installDefault and catalog base. Missing requested profiles walk the canonical fallback chain.")}).describe(`Per-model sampling, reasoning, and output defaults.`),xf=/^[a-z0-9](?:[a-z0-9._~-]*[a-z0-9])?$/,Sf=String.raw`(?:0|[1-9]\d*)`,Cf=String.raw`(?:${Sf}|[xX*])`,wf=String.raw`${Cf}(?:\.${Cf}){0,2}`,Tf=String.raw`[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*`,Ef=String.raw`(?:-${Tf})?(?:\+${Tf})?`,Df=new RegExp(String.raw`^(?:\^|~|>=|<=|>|<|=)?v?${wf}${Ef}$`),Of=new RegExp(String.raw`^v?${wf}${Ef}\s+-\s+v?${wf}${Ef}$`),kf=/^[a-z][a-z0-9._-]{0,127}$/;function Af(e){if(typeof e!=`string`||e.length===0||e.length>214||e!==e.trim()||e!==e.toLowerCase())return!1;if(e.startsWith(`@`)){let t=e.slice(1).split(`/`);return t.length===2&&t[0]!==void 0&&t[1]!==void 0&&xf.test(t[0])&&xf.test(t[1])}return!e.includes(`/`)&&xf.test(e)}function jf(e){if(typeof e!=`string`||e.length===0||e.length>128||e!==e.trim())return!1;if(kf.test(e)||Of.test(e))return!0;let t=e.split(`||`);return!t.some(e=>e.trim().length===0)&&t.every(e=>{let t=e.trim().split(/\s+/);return t.length>0&&t.every(e=>Df.test(e))})}var Mf=k().refine(Af,{message:`must be a lowercase npm registry package name (for example zod or @types/node)`}),Nf=k().refine(jf,{message:`must be a registry dist-tag or semver range`}),Pf=F({package:Mf,version:Nf.optional()}).strict(),Ff=F({package:Mf,version:Nf,decision:z([`install`,`always`,`decline`])}),If=F({selectedChoices:P(j().int().min(0)).optional(),writeIn:k().optional(),declined:M().optional(),silentSkip:M().optional(),npmInstallDecisions:P(Ff).optional(),at:k()}),Lf=F({package:Mf,version:Nf}),Rf=z([`script`,`npx`]),zf=F({path:k().min(1),sha256:k().regex(/^[a-f0-9]{64}$/)}),Bf=F({kind:B(`command-approval`),scope:Rf,name:k().min(1),body:k().optional(),args:P(k()).optional(),inputFiles:P(zf).max(128).optional()}),Vf=F({kind:B(`tool-permission`),toolName:k(),toolInput:R(k(),N())}),Hf=F({kind:B(`toolset-install-approval`),toolsetId:k(),sourceId:k(),version:k(),targetProjectId:k(),craftbookId:k()}),Uf=F({kind:B(`image-generation-approval`),provider:k(),model:k(),promptPreview:k(),estimatedSize:k().optional()}),Wf=F({kind:B(`video-generation-approval`),provider:k(),model:k(),promptPreview:k(),estimatedSize:k().optional()}),Gf=F({kind:B(`schedule-approval`),typeId:k(),craftbookId:k(),runMode:z([`scheduled`,`night-shift`]).optional(),cron:k(),overlap:z([`skip`,`queue`,`concurrent`]).optional()}),Kf=F({kind:B(`night-shift-review`),windowKey:k(),tasksCompleted:j(),reports:P(F({projectId:k(),path:k(),title:k().optional(),actionCount:j()}))}),qf=z([`gate_exhausted`,`gate_plateau`,`gate_unsatisfiable`,`gate_infrastructure`,`step_stalled`,`budget_exhausted`]),Jf=F({kind:B(`task-paused`),taskRef:k(),stepId:k().optional(),reason:qf}),Yf=L(`kind`,[F({kind:B(`npm-install-approval`),packages:P(Lf).min(1)}),Bf,Vf,Hf,Uf,Wf,Gf,Kf,Jf]),Xf=F({id:k(),projectId:k(),gezelId:k(),sessionId:k(),prompt:k().min(1),choices:P(k()).max(20).optional(),allowWriteIn:M().optional(),multiSelect:M().optional(),taskRef:k().optional(),documentPath:k().optional(),intent:Yf.optional(),createdAt:k(),answer:If.optional()}),Zf=F({make:k().optional(),model:k().optional(),lensModel:k().optional(),dateTimeOriginal:k().optional(),orientation:j().int().min(1).max(8).optional(),software:k().optional(),imageDescription:k().optional()}),Qf=F({format:z([`png`,`jpeg`,`gif`,`webp`,`svg`,`unknown`]),width:j().int().positive().optional(),height:j().int().positive().optional(),byteLength:j().int().nonnegative(),sha256:k().regex(/^[a-f0-9]{64}$/),pngText:R(k(),k()).optional(),exif:Zf.optional(),gps:F({lat:j(),lon:j()}).optional(),gpsRedacted:M().optional(),likelyScreenshot:M().optional()}),$f=z([`describe`,`ocr`,`ui`,`extract`]),ep=z([`auto`,`describe`,`ocr`,`ui`,`extract`]);F({schemaVersion:B(1),sha256:k().regex(/^[a-f0-9]{64}$/),meta:Qf,modes:P($f).min(1),description:k().optional(),ocrText:k().optional(),structured:F({templateId:k().optional(),data:N()}).optional(),engine:z([`llama-cpp`,`mlx`,`mock`,`none`]),modelId:k(),status:z([`ok`,`partial`,`failed`,`static-only`]),failureReason:k().optional(),durationMs:j().int().nonnegative(),at:k()});var tp=F({ref:k(),sha256:k().regex(/^[a-f0-9]{64}$/),digest:k(),modelId:k(),modes:P($f),status:z([`ok`,`partial`,`failed`,`static-only`]),at:k()});F({artifactPath:k().min(1).optional(),data:k().min(1).optional(),mimeType:k().optional(),mode:ep.default(`auto`),schema:N().optional(),model:k().optional()}),F({state:z([`ok`,`no-model`,`not-configured`,`error`]),modelId:k().optional(),detail:k().optional()}),I([F({type:B(`progress`),bytesWritten:j().int().nonnegative(),totalBytes:j().int().nonnegative().optional()}),F({type:B(`error`),error:k()}),F({type:B(`done`),id:k()})]),F({models:P(F({id:k(),name:k(),description:k(),license:k(),approxSizeBytes:j().int().nonnegative(),recoScore:j()}))}),F({models:P(F({id:k(),name:k(),approxSizeBytes:j().int().nonnegative(),installedAt:k(),weightsPath:k().optional(),mmprojPath:k().optional()}))});var np=z([`image_generation`,`video_generation`,`image_recognition`]),rp=F({startedAt:j(),streamedContentChars:j().int().nonnegative(),toolCalls:j().int().nonnegative(),fileMutations:j().int().nonnegative()}),ip=F({sessionId:k(),gezelId:k(),projectId:k(),inflight:M(),turnsStarted:j().int().nonnegative(),deltaChunks:j().int().nonnegative(),streamedContentChars:j().int().nonnegative(),wirePulses:j().int().nonnegative(),heartbeats:j().int().nonnegative(),enginePhaseEvents:j().int().nonnegative(),generationSpurts:j().int().nonnegative(),toolCalls:j().int().nonnegative(),toolArgChars:j().int().nonnegative(),fileMutations:j().int().nonnegative(),gpuEvents:j().int().nonnegative(),gpuTaskActive:np.nullable(),lastStreamActivityAt:j().nullable(),lastToolActivityAt:j().nullable(),lastMutationAt:j().nullable(),lastGpuActivityAt:j().nullable(),lastProgressAt:j().nullable(),currentTurn:rp.nullable()});F({version:B(1),capturedAt:j(),sessions:P(ip)});var X=z([`copilot`,`openai`,`anthropic`,`anthropic-cli`,`codex-cli`,`ollama`,`llama-cpp`,`mlx`,`ds4`,`remote`]),ap=z([`male`,`female`,`non-binary`]);function op(e){return e===`ollama`||e===`llama-cpp`||e===`mlx`||e===`ds4`}var sp=F({tool:k().min(1),promptKey:k().min(1).default(`prompt`),defaults:R(k(),N()).optional()}),cp=F({id:k(),text:k().min(1).max(200),adoptedAt:k(),source:z([`levelup`,`manual`]).optional()}),lp=F({frontmatter:F({id:Kd.optional(),name:k(),description:k().optional(),role:k().optional(),roleBasedName:k().optional(),gender:ap.optional(),model:k().optional(),provider:X.optional(),reasoningEffort:k().optional(),tuning:bf.optional(),tuningProfile:qd.optional(),suggestedTuningProfile:qd.optional(),tools:P(k()).optional(),tags:P(k()).optional(),fixedFunction:sp.optional(),numCtx:j().int().positive().optional(),autoRecall:M().optional(),font:k().optional(),voice:k().optional(),templateId:k().optional(),templateVersion:k().optional(),sandboxCopilot:M().optional(),claudePermissionMode:zd.optional(),codexPermissionMode:Vd.optional(),iconOverride:M().optional(),traits:P(cp).max(8).optional(),recognition:z([`auto`,`always`,`off`]).optional()}),sections:P(F({heading:k(),template:k().optional(),params:R(k(),k()).optional(),body:k()})),source:k()}),up=F({id:Kd,name:k(),description:k().optional(),role:k().optional(),roleBasedName:k().optional(),gender:ap.optional(),model:k().optional(),provider:X.optional(),reasoningEffort:k().optional(),tuningProfile:qd.optional(),suggestedTuningProfile:qd.optional(),numCtx:j().int().positive().optional(),autoRecall:M().optional(),font:k().optional(),voice:k().optional(),templateId:k().optional(),templateVersion:k().optional(),sandboxCopilot:M().optional(),claudePermissionMode:zd.optional(),codexPermissionMode:Vd.optional(),fixedFunction:sp.optional(),icon:k().optional(),poppetje:Rd.optional(),iconOverride:M().optional(),recognition:z([`auto`,`always`,`off`]).optional(),scope:z([`global`,`project`]).optional(),storageScope:z([`user`,`machine-shared`]).optional(),traits:P(cp).optional(),growth:cf.optional(),updatedAt:k()});up.extend({parsed:lp,about:k(),toolsMd:k().nullable().default(null)});var dp=F({path:k(),mimeType:k()}),fp=F({path:k(),mimeType:k(),durationSeconds:j().optional(),voice:k().optional()}),pp=F({path:k(),mimeType:k(),posterPath:k().optional()}),mp=F({name:k(),durationMs:j(),success:M(),errorMessage:k().optional(),path:k().optional(),paths:P(k()).optional(),argsSummary:k().optional(),argsFull:k().optional(),resultText:k().optional(),resultTruncated:M().optional(),images:P(dp).optional(),audios:P(fp).optional(),videos:P(pp).optional(),diff:k().optional(),addedLines:j().int().nonnegative().optional(),removedLines:j().int().nonnegative().optional()}),hp=F({role:z([`user`,`assistant`]),content:k(),at:k(),from:F({gezelId:k(),gezelName:k()}).optional(),referencedArtifacts:P(k()).optional(),referencedTasks:P(k()).optional(),toolCalls:P(mp).optional(),intents:P(F({label:k(),afterChars:j().int().min(0)})).optional(),pendingQuestionId:k().optional(),synthetic:z([`compaction-summary`,`context-loop-halt`,`turn-aborted`,`growth-announcement`,`keurmeester-notice`]).optional(),hidden:M().optional(),nudge:M().optional(),warnings:P(k()).optional(),reasoning:k().optional(),reasoningDurationMs:j().int().nonnegative().optional(),attemptedToolCalls:P(F({body:k(),reason:k().optional()})).optional(),recognizedImages:P(tp).optional()}),gp=F({code:k().max(64).optional(),engine:k().max(64).optional(),incidentId:k().max(64).optional(),panicKind:k().max(64).optional(),exitCode:j().int().nullable().optional(),signal:k().max(32).nullable().optional(),diagnostics:R(k(),I([k(),j(),M()])).optional()}),_p=L(`type`,[F({type:B(`delta`),content:k()}),F({type:B(`reasoning_delta`),content:k()}),F({type:B(`complete`),message:hp}),F({type:B(`user_message_pending`),preview:k()}),F({type:B(`user_message`),message:hp}),F({type:B(`tool`),name:k(),durationMs:j(),success:M(),errorMessage:k().optional(),path:k().optional(),paths:P(k()).optional(),argsSummary:k().optional(),argsFull:k().optional(),resultText:k().optional(),resultTruncated:M().optional(),images:P(dp).optional(),audios:P(fp).optional(),videos:P(pp).optional(),diff:k().optional(),addedLines:j().int().nonnegative().optional(),removedLines:j().int().nonnegative().optional()}),F({type:B(`error`),error:k(),errorDetail:gp.optional()}),F({type:B(`cancelled`)}),F({type:B(`done`)}),F({type:B(`queued`),aheadOf:j().int().min(0)}),F({type:B(`wire_pulse`)}),F({type:B(`tool_args_delta`),name:k(),content:k()}),F({type:B(`heartbeat`),label:k().optional()}),F({type:B(`warning`),message:k(),action:F({kind:B(`settings`),section:z([`llamaCpp`,`mlx`,`ds4`])}).optional()}),F({type:B(`intent`),label:k()}),F({type:B(`queue_enqueued`),queueId:k(),preview:k(),enqueuedAt:k(),nudge:M().optional()}),F({type:B(`queue_removed`),queueId:k(),reason:z([`started`,`canceled`,`rejected`])}),F({type:B(`context_warning`),estimatedTokens:j(),numCtx:j(),model:k()}),F({type:B(`context_compacted`),removedCount:j().int().nonnegative(),model:k()}),F({type:B(`context_loop`),compactionsThisSend:j().int().positive(),reason:k()}),F({type:B(`keurmeester_intervention`),caseId:k(),gezelId:k(),gezelName:k(),action:k(),summary:k()}),F({type:B(`recall_applied`),hitCount:j(),query:k()}),F({type:B(`question_asked`),question:Xf}),F({type:B(`question_answered`),question:Xf}),F({type:B(`task_event`),eventId:k(),kind:k(),summary:k(),at:k(),taskRef:k().optional(),gezelId:k().optional()}),F({type:B(`growth_level_up`),gezelId:k(),gezelName:k(),toLevel:j().int()}),F({type:B(`engine_phase`),provider:z([`llama-cpp`,`mlx`,`ds4`]),phase:z([`starting`,`loading_model`,`prefill`,`generating`,`ready`]),detail:k().optional(),progress:j().min(0).max(1).optional(),ttftMs:j().int().nonnegative().optional()}),F({type:B(`turn_stats`),provider:z([`llama-cpp`,`ollama`,`mlx`,`ds4`]),promptTokens:j().int().nonnegative(),completionTokens:j().int().nonnegative(),durationMs:j().int().nonnegative(),tokensPerSec:j().nonnegative().optional()}),F({type:B(`engine_stats`),provider:z([`llama-cpp`,`mlx`,`ds4`]),ramAllocBytes:j().nonnegative()}),F({type:B(`gpu_swap`),state:z([`started`,`progress`,`ended`]),task:np,detail:k().optional(),prompt:k().optional(),progress:j().min(0).max(1).optional(),step:j().int().nonnegative().optional(),totalSteps:j().int().positive().optional(),secondsPerStep:j().nonnegative().optional()}),F({type:B(`awaiting_gezel`),state:z([`started`,`ended`]),targetGezelName:k()}),F({type:B(`project_created`),projectId:k(),name:k()}),F({type:B(`project_deleted`),projectId:k(),name:k()}),F({type:B(`gezel_created`),gezelId:k(),name:k()}),F({type:B(`night_shift`),active:M(),source:z([`scheduled`,`manual`]).nullable()}),F({type:B(`meester_status`),state:z([`started`,`ended`,`failed`]),generatedAt:k().optional()}),F({type:B(`index_progress`),phase:z([`scan`,`shadow`,`enrich`,`review`,`digest`]),state:z([`started`,`progress`,`ended`]),projectId:k().optional(),detail:k().optional(),pending:j().int().nonnegative().optional(),gezelId:k().optional(),gezelName:k().optional()})]);F({sessionId:k(),gezelId:k(),projectId:k(),event:_p});var vp=z(`gezel.created,gezel.deleted,gezel.renamed,gezel.settings.updated,gezel.about.generated,icon.generated,icon.reverted,poppetje.generated,poppetje.updated,poppetje.rerolled,project.created,project.deleted,project.updated,project.about.updated,project.mission.updated,project.voorman.changed,project.gezel.joined,project.gezel.left,project.suggested-work.enabled,project.suggested-work.disabled,project.properties.updated,report.action.fired,report.action.dismissed,project.status.changed,project.nudge.sent,project.github.linked,project.github.unlinked,project.github.synced,project.review.requested,project.review.settled,project.connector.bound,project.connector.unbound,project.connector.synced,document.created,document.renamed,document.deleted,workspace.write,workspace.delete,workspace.mkdir,workspace.move,workspace.npm.installed,workspace.npm.declined,workspace.script.run,workspace.script.declined,workspace.npx.run,workspace.npx.declined,terminal.command.run,workspace.allow-writes.changed,tool.called,page.tool.invoked,page.reaction.sent,tool.gated,meester.changed,klerk.changed,boekwachter.changed,keurmeester.changed,gilde.updated,v1.chat.completion,keurmeester.intervention,keurmeester.digest.generated,task.created,task.activated,task.updated,task.status.changed,task.assignee.changed,task.step.added,task.step.activated,task.step.completed,task.step.redriven,task.step.stalled,task.step.gated,task.step.routed,task.entry.dispatched,task.craftbook.tier-collapsed,task.tick,task.canceled,task.instance.spawned,task.fanout.materialized,tasknote.appended,tasknote.updated,tasknote.deleted,task.about.updated,task.step.updated,task.step.removed,task.craftbook.reordered,task.craftbook.updated,craftbook.created,craftbook.updated,craftbook.deleted,toolset.config.updated,config.credential.updated,config.engagementMode.changed,memory.auto-recalled,memory.auto-summarized,memory.compacted,memory.lessons-updated,project.digest.generated,project.index.reviewed,meester.status.generated,gezel.level.up,gezel.trait.adopted,gezel.trait.removed,gezel.tuning.adjusted,chat.compacted,gezel.messaged,gezel.message.delivered,gezel.message.delivery_failed,gezel.reply.dropped,chat.mention.fanout,render.generated,user.question.asked,user.question.answered,debug.bridge.failed,channel.configured,channel.message.sent,channel.message.failed,copilot.builtin.denied,credential.used,eval.trial.started,eval.trial.completed`.split(`,`)),yp=F({id:k(),at:k(),kind:vp,projectId:k().optional(),gezelId:k().optional(),summary:k(),details:R(k(),N()).optional()}),bp=F({entryType:B(`session`),id:k(),gezelId:k(),projectId:k(),title:k(),createdAt:k(),lastActivityAt:k(),messageCount:j(),durationMs:j(),providerName:X,model:k().optional(),archived:M().optional()}),xp=L(`entryType`,[yp.extend({entryType:B(`event`)}),bp]);F({projectId:k().optional(),gezelId:k().optional(),kinds:P(vp).optional(),from:k().optional(),to:k().optional(),q:k().optional(),limit:j().int().positive().optional(),include:z([`events`,`entries`]).optional()}),F({entries:P(xp)});var Sp=k().url().refine(e=>{try{let t=new URL(e);return t.protocol===`https:`&&!t.username&&!t.password&&t.pathname===`/`&&!t.search&&!t.hash}catch{return!1}},{message:`must be an exact HTTPS origin (for example https://api.example.com)`}),Cp=F({url:k().min(1),branch:k().optional(),checkoutDir:k().optional(),lastSyncedAt:k().optional(),defaultBranch:k().optional()}),wp=F({id:k().min(1),type:k().min(1),sourceId:k().optional(),version:k().optional(),displayName:k().optional(),corpusDir:k().optional(),config:R(k(),N()).default({}),cursor:N().optional(),disabled:M().optional(),lastSyncedAt:k().optional(),lastError:k().optional()}),Tp=F({enabled:M().optional(),rapidIntervalMs:j().int().positive().optional(),slowIntervalMs:j().int().positive().optional(),recentActivityWindowMs:j().int().positive().optional(),rapidAttemptsBeforeBackoff:j().int().positive().optional(),firstNudgeGraceMs:j().int().nonnegative().optional()}),Ep=F({lastNudgedAt:k().optional(),consecutiveRapidNudges:j().int().nonnegative().optional()}),Dp=F({overview:M().optional(),tasks:M().optional(),approvals:M().optional(),workspace:M().optional(),artifacts:M().optional(),map:M().optional()}).strict(),Op=z([`auto`,`allow`,`deny`]),kp=F({id:k(),version:k(),source:k(),params:R(k(),N()).optional(),appliedAt:k()}),Ap=F({id:Kd,name:k(),description:k().optional(),workingDir:k().optional(),voormanGezelId:k().optional(),voormanAutoAssignedAt:k().optional(),gezelIds:P(k()).optional(),suggestedWorkDismissed:P(k()).optional(),properties:R(k(),k()).optional(),mode:z([`crew`,`solo`]).optional(),leadLabel:k().optional(),leanProfile:M().optional(),indexingEnabled:M().optional(),github:Cp.optional(),connectors:P(wp).optional(),nudgeConfig:Tp.optional(),nudgeState:Ep.optional(),tabVisibility:Dp.optional(),managedWorkspaceWritePolicy:Op.optional(),allowGezelWrites:M().optional(),codexPermissionMode:Bd.optional(),claudePermissionMode:zd.optional(),status:z([`active`,`readonly`,`inactive`,`stable`]).optional(),archived:M().optional(),workspaceScriptTimeoutMs:j().int().min(3e4).max(30*6e4).optional(),grantedCredentials:P(k()).optional(),credentialAllowedOrigins:R(k(),P(Sp)).optional(),projectTypeId:k().optional(),detectedProjectType:F({id:k(),score:j(),scannedAt:k()}).optional(),projectType:kp.optional(),storageScope:z([`user`,`machine-shared`]).optional(),createdAt:k(),updatedAt:k()});function jp(e){return e.projectTypeId??e.detectedProjectType?.id}var Mp=F({name:k(),version:k()}),Np=Ap.extend({packages:P(Mp),about:k().optional(),missionObjectives:k().optional()});F({name:k(),path:k(),isDirectory:M(),mtimeMs:j().optional()});var Pp=I([Pu,F({kind:B(`prometheusAlerts`),file:k().min(1),minRules:j().int().positive().optional(),maxPageAlerts:j().int().nonnegative().optional(),allowedSeverities:P(k().min(1)).optional(),requiredServices:P(k().min(1)).optional(),requiredRunbookUrls:P(k().min(1)).optional()}).strict(),F({kind:B(`nodeScriptPasses`),script:k().min(1),timeoutMs:j().int().positive().optional(),requiredOutput:P(F({pattern:k().min(1),flags:k().optional(),label:k().optional()}).strict()).optional()}).strict(),F({kind:B(`binaryDocument`),file:k().min(1),artifact:M().optional(),minBytes:j().int().positive().optional()}).strict()]),Fp=k().min(1).regex(/^[a-z0-9][a-z0-9-]*$/,`mock service ids are lowercase kebab-case`),Ip=k().min(1).regex(/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,`mock toolset ids are lowercase catalog ids or scoped npm-style ids`),Lp=F({method:z([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`]).default(`GET`),path:k().min(1),status:j().int().min(100).max(599).default(200),headers:R(k(),k()).optional(),body:N(),latencyMs:j().int().nonnegative().optional()}).strict(),Rp=L(`kind`,[F({kind:B(`http`),id:Fp,description:k().min(1),credential:F({name:k().regex(/^mock\.[a-z0-9][a-z0-9.-]*$/,`mock credentials are named mock.<service-id>`),authScheme:z([`bearer`,`basic`]).optional()}).strict(),routes:P(Lp).min(1)}).strict(),F({kind:B(`webhook`),id:Fp,description:k().min(1),path:k().min(1).optional()}).strict(),F({kind:B(`cli`),id:Fp,description:k().min(1),shim:F({path:k().min(1),content:k()}).strict()}).strict(),F({kind:B(`mcp`),id:Fp,description:k().min(1),toolsetId:Ip.optional(),tools:P(F({name:k().min(1),description:k().min(1),resultTemplate:N().optional(),resultSequence:P(N()).min(1).optional(),writeFixture:F({surface:z([`workspace`,`artifact`]),pathArgument:k().min(1),fixture:z([`minimal-pptx`,`minimal-docx`,`minimal-pdf`,`minimal-png`])}).strict().optional()}).strict()).min(1)}).strict()]),zp=F({path:k().min(1),content:k(),surface:z([`workspace`,`artifact`,`harness`]).optional(),modelInput:M().optional()}).strict(),Bp=F({name:k().min(1),role:k().min(1),description:k().optional(),about:k().optional()}).strict(),Vp=F({projectName:k().min(1),about:k().optional(),missionObjectives:k().optional(),managedWorkspaceWritePolicy:Op.optional(),files:P(zp).default([]),craftbookParams:R(k(),k()).optional(),worker:Bp.optional()}).strict(),Hp=F({path:k().min(1),kind:cd,artifact:M().optional(),minBytes:j().int().positive().optional(),checks:P(Pp).optional()}).strict(),Up=F({service:Fp,minRequests:j().int().positive().optional(),requiredPaths:P(k().min(1)).optional(),forbiddenPaths:P(k().min(1)).optional(),requiredTools:P(k().min(1)).optional(),toolCalls:R(k().min(1),F({minCalls:j().int().nonnegative().default(1),maxCalls:j().int().nonnegative().optional()}).strict().refine(e=>e.maxCalls===void 0||e.minCalls<=e.maxCalls,`minCalls must be less than or equal to maxCalls`)).optional()}).strict(),Wp=F({kind:vp,minEntries:j().int().nonnegative().default(1),maxEntries:j().int().nonnegative().optional(),summaryPattern:k().min(1).optional(),flags:k().optional(),details:R(k(),I([k(),j(),M(),Na()])).optional()}).strict(),Gp=F({summary:k().min(1),deliverables:P(Hp).optional(),checks:P(Pp).optional(),taskNotes:F({minBytes:j().int().positive().optional(),checks:P(Pp).optional(),requireCraftbookTask:M().optional()}).strict().optional(),taskGraph:F({checks:P(Pp).optional(),requireCraftbookTask:M().optional(),requireTerminalStep:M().optional(),requireDraftRef:M().optional(),draft:F({status:z([`draft`,`paused`,`active`,`complete`,`canceled`]).optional(),minDescriptionBytes:j().int().positive().optional(),minOutcomes:j().int().positive().optional(),minSteps:j().int().positive().optional(),requireTerminalVerification:M().optional(),requireGatedBuildSteps:M().optional()}).strict().optional()}).strict().optional(),mocks:P(Up).optional(),history:P(Wp).optional(),unchangedFixtures:P(k().min(1)).optional()}).strict(),Kp=F({artifact:F({path:k().min(1),kind:z([`html`,`markdown`,`yaml`,`typescript`,`json`,`text`])}).strict(),axes:P(F({name:k().min(1),description:k().min(1)}).strict()).min(1),contextNote:k().optional()}).strict();F({schemaVersion:B(1),title:k().min(1),objective:k().min(1),tags:P(k().min(1)).default([]),prompt:k().min(1),setup:Vp,mocks:P(Rp).default([]),success:Gp,rubric:Kp,qualityFocus:P(k().min(1)).default([]),extensions:R(k(),N()).optional()}).strict().superRefine((e,t)=>{let n=new Set(e.mocks.map(e=>e.id)),r=new Map(e.mocks.map(e=>[e.id,e]));for(let[i,a]of(e.success.mocks??[]).entries()){if(n.has(a.service)||t.addIssue({code:V.custom,path:[`success`,`mocks`,i,`service`],message:`success.mocks[${i}] references unknown mock service "${a.service}"`}),a.requiredTools&&a.requiredTools.length>0){let e=r.get(a.service);if(e&&e.kind!==`mcp`)t.addIssue({code:V.custom,path:[`success`,`mocks`,i,`requiredTools`],message:`success.mocks[${i}].requiredTools requires an mcp service; "${a.service}" is kind "${e.kind}"`});else if(e?.kind===`mcp`){let n=new Set(e.tools.map(e=>e.name));for(let e of a.requiredTools)n.has(e)||t.addIssue({code:V.custom,path:[`success`,`mocks`,i,`requiredTools`],message:`success.mocks[${i}].requiredTools names undeclared tool "${e}" on mcp service "${a.service}"`})}}if(a.toolCalls&&Object.keys(a.toolCalls).length>0){let e=r.get(a.service);if(e&&e.kind!==`mcp`)t.addIssue({code:V.custom,path:[`success`,`mocks`,i,`toolCalls`],message:`success.mocks[${i}].toolCalls requires an mcp service; "${a.service}" is kind "${e.kind}"`});else if(e?.kind===`mcp`){let n=new Set(e.tools.map(e=>e.name));for(let e of Object.keys(a.toolCalls))n.has(e)||t.addIssue({code:V.custom,path:[`success`,`mocks`,i,`toolCalls`,e],message:`success.mocks[${i}].toolCalls names undeclared tool "${e}" on mcp service "${a.service}"`})}}}for(let[n,r]of e.mocks.entries())r.kind===`http`&&r.credential.name!==`mock.${r.id}`&&t.addIssue({code:V.custom,path:[`mocks`,n,`credential`,`name`],message:`http mock "${r.id}" must use credential name "mock.${r.id}"`});let i=new Set(e.setup.files.filter(e=>e.surface===void 0||e.surface===`workspace`).map(e=>e.path));for(let[n,r]of(e.success.unchangedFixtures??[]).entries())i.has(r)||t.addIssue({code:V.custom,path:[`success`,`unchangedFixtures`,n],message:`unchanged fixture "${r}" is not a seeded workspace file`});for(let[n,r]of(e.success.history??[]).entries())r.maxEntries!==void 0&&r.minEntries>r.maxEntries&&t.addIssue({code:V.custom,path:[`success`,`history`,n],message:`minEntries must be less than or equal to maxEntries`})});var qp=F({id:k().min(1),label:k().min(1),description:k().optional(),kind:z([`gezel`,`model`]).default(`model`),provider:k().min(1),gezelId:k().min(1).optional(),role:k().min(1).optional(),modelLabel:k().min(1).optional(),contextWindow:j().int().positive().optional(),supportsReasoning:M().optional(),supportsTools:M().optional()});F({state:z([`not-configured`,`configured`,`update-needed`,`conflict`,`unavailable`]),models:P(qp),configuredModel:k().optional(),recommendedModel:k().optional(),reasons:P(k()),message:k().optional(),codexInstalled:M(),codexVersion:k().optional(),codexPath:k().optional(),endpointsEnabled:M(),profileName:k().min(1),profilePath:k().min(1),launchCommand:k().min(1),bridge:F({baseUrl:k().url(),listening:M(),port:j().int().nonnegative()}),canConfigure:M(),canRemove:M()}),F({model:k().min(1)});var Jp=z([`AGENTS.md`,`CLAUDE.md`,`.github/copilot-instructions.md`]),Yp=z([`primary`,`concat`]);F({schemaVersion:B(1).default(1),sourceFile:Jp.optional(),mergeMode:Yp.optional(),aboutHash:k().optional(),derivedAt:k().optional()});var Xp=F({hash:k(),sourceFile:Jp,mergeMode:Yp.optional(),gezelId:k(),userEdited:M().optional()}),Zp=F({hash:k(),sourceFile:k()}),Qp=F({hash:k(),craftbookId:k(),scriptNames:P(k()).default([]),userEdited:M().optional()});F({version:B(1).default(1),gezel:Xp.optional(),about:Zp.optional(),craftbooks:R(k(),Qp).default({})});var $p=F({name:k(),body:k(),confidence:j().min(0).max(1),sourceBlock:k(),origin:z([`static`,`llm`]).optional()}),em=F({role:k(),about:k()}),tm=F({skillSource:k(),sourceHash:k(),craftbook:sd,scripts:P($p).default([]),persona:em.optional(),notes:P(k()).optional(),createdAt:k()});F({version:B(1).default(1),items:P(tm).default([])});var nm=z([`draft`,`paused`,`active`,`complete`,`canceled`]),rm=z([`skip`,`queue`,`concurrent`]),im=F({expression:k(),lastTickAt:k().optional(),nextTickAt:k().optional(),overlap:rm.optional()}),am=F({title:k().optional(),plan:k().optional(),description:k().optional(),context:R(k(),k()).optional()}),om=F({count:j().int().positive(),variations:P(am).optional(),materializedAt:k().optional()}),sm=F({count:j().int().positive(),variations:P(am).optional()}),cm=F({enabled:M(),onceADay:M().optional(),lastRunDay:k().optional()}),lm=Ju.extend({createdAt:k(),completedAt:k().optional(),attemptCount:j().int().nonnegative().optional(),lastActivatedAt:k().optional(),gateAttempts:j().int().nonnegative().optional(),lastGateReject:F({contentHash:k().optional(),messageFingerprint:k(),message:k(),at:k()}).optional(),redriveCount:j().int().nonnegative().optional(),lastRedriveAt:k().optional(),gateAttemptHistory:P(F({at:k(),attempt:j().int().nonnegative(),contentHash:k().optional(),signatureHash:k(),messageFingerprint:k(),failedChecks:P(k()).optional(),frozen:M().optional()})).optional()}),um=F({id:k().min(1),name:k().min(1),description:k().optional(),version:k().optional(),basedOn:ad.optional(),plan:k().optional(),defaultAssignee:Y.optional(),steps:P(lm).min(1),entryStepId:k().min(1),triggers:P(k()).optional(),hooks:P(Uu).optional(),paramSchema:R(k(),N()).optional(),toolsets:P(ed).optional(),connectors:P(td).optional(),scripts:id.optional(),spawn:Yu.optional(),createdAt:k(),updatedAt:k(),renderedForTier:qu.optional()}),dm=F({role:z([`main`,`spawn`]),catalogId:k(),version:k().optional(),sourceId:k().optional()}),fm=F({id:k(),text:k().min(1),met:M().optional(),evidence:k().optional(),verifiedAt:k().optional()}),pm=F({projectId:k(),num:j().int().positive(),ref:k(),title:k(),description:k().optional(),plan:k().optional(),outcomes:P(fm).optional(),status:nm,assignee:Y,assigneeAuto:M().optional(),craftbook:um,spawnsCraftbook:um.optional(),sourceCraftbookIds:P(dm).optional(),craftbookParams:R(k(),k()).optional(),spawnsCraftbookParams:R(k(),k()).optional(),activeStepId:k().optional(),parentTaskRef:k().optional(),origin:L(`kind`,[F({kind:B(`project-type-schedule`),typeId:k(),scheduleKey:k()}),F({kind:B(`system-job`),jobId:k(),managedByGezelId:k().optional()}),F({kind:B(`boekwachter-issue`),issueRef:k().regex(/^BW-[1-9]\d*$/),path:k().min(1)}),F({kind:B(`craftbook-invocation`),key:k().regex(/^craftbook-root-v1:[a-f0-9]{64}$/)}),F({kind:B(`gezel-suggested-craftbook`),templateId:k(),suggestionKey:k()})]).optional(),cron:im.optional(),nightShift:cm.optional(),fanout:om.optional(),lastGateHandoff:F({fromStepId:k(),toStepId:k().optional(),message:k(),params:R(k(),N()).optional(),at:k()}).optional(),roleBasedNameOnlyMode:M().optional(),createdAt:k(),updatedAt:k(),createdBy:Y});F({title:k().min(1),description:k().min(40),plan:k().optional(),outcomes:P(fm).optional(),assignee:Y.optional(),status:z([`draft`,`active`]).optional(),craftbookId:k().optional(),craftbookSourceId:k().optional(),craftbookVersion:k().optional(),steps:P(ud).optional(),entryStepId:k().optional(),craftbookParams:R(k(),k()).optional(),spawnsCraftbookParams:R(k(),k()).optional(),spawnsCraftbookId:k().optional(),spawnsCraftbookSourceId:k().optional(),spawnsCraftbookVersion:k().optional(),spawnsSteps:P(ud).optional(),spawnsEntryStepId:k().optional(),parentTaskRef:k().optional(),cron:F({expression:k(),overlap:rm.optional()}).optional(),nightShift:F({enabled:M(),onceADay:M().optional()}).optional(),fanout:sm.optional(),createdBy:Y.optional(),roleBasedNameOnlyMode:M().optional(),dispatchEntry:M().optional(),craftbookInvocationKey:k().regex(/^craftbook-root-v1:[a-f0-9]{64}$/).optional()}).refine(e=>!!e.craftbookId!=!!(e.steps&&e.steps.length>0),{message:`exactly one of craftbookId or steps must be provided for the main craftbook`,path:[`craftbookId`]}).refine(e=>{let t=!!e.spawnsCraftbookId,n=!!(e.spawnsSteps&&e.spawnsSteps.length>0);return!(t&&n)},{message:`spawnsCraftbookId and spawnsSteps are mutually exclusive`,path:[`spawnsCraftbookId`]}).refine(e=>e.spawnsCraftbookId||e.spawnsSteps&&e.spawnsSteps.length>0?!!e.cron||!!e.fanout:!0,{message:`spawn craftbook only valid when cron or fanout is set`,path:[`spawnsCraftbookId`]}).refine(e=>!e.spawnsCraftbookParams||!!e.spawnsCraftbookId||!!(e.spawnsSteps&&e.spawnsSteps.length>0),{message:`spawn craftbook params require spawnsCraftbookId or spawnsSteps`,path:[`spawnsCraftbookParams`]}).refine(e=>e.status!==`draft`||!e.cron&&!e.fanout,{message:`a draft task cannot have a cron schedule or fanout`,path:[`status`]}).refine(e=>e.dispatchEntry!==!0||e.status!==`draft`&&!e.cron&&!e.fanout,{message:`dispatchEntry is only valid on an immediately-active, non-spawning task (drafts kick off via activate; cron/fanout children dispatch themselves)`,path:[`dispatchEntry`]}),F({title:k().min(1).optional(),description:k().optional(),plan:k().optional(),outcomes:P(fm).nullable().optional(),assignee:Y.optional(),cron:F({expression:k(),overlap:rm.optional()}).nullable().optional(),nightShift:F({enabled:M(),onceADay:M().optional()}).nullable().optional(),fanout:sm.nullable().optional(),spawnsCraftbookParams:R(k(),k()).nullable().optional()}),F({count:j().int().positive().optional(),variations:P(am).optional()}),F({status:nm}),F({next:k().optional(),force:M().optional()}),F({task:pm,gate:F({decision:B(`reject`),message:k(),attempt:j().int().nonnegative(),maxAttempts:j().int().positive(),paused:M(),infrastructureError:M().optional(),scriptRuns:P(F({scriptName:k(),runId:k().optional(),error:k().optional(),logsTail:k().optional()})).optional()}).optional()}),F({name:k().min(1).optional(),description:k().optional(),prompt:k().optional(),suggestedRole:k().nullable().optional(),assignee:Y.nullable().optional(),suggestedGezelId:k().nullable().optional(),onEnter:xu.nullable().optional(),onExit:xu.nullable().optional(),consumes:P(Ku).min(1).nullable().optional(),advanceWhen:Gu.nullable().optional(),gate:Lu.nullable().optional(),next:k().nullable().optional(),branches:P(Wu).nullable().optional(),terminal:M().optional()}),F({task:pm}),F({name:k().min(1).optional(),description:k().nullable().optional(),plan:k().nullable().optional(),defaultAssignee:Y.nullable().optional(),entryStepId:k().optional()}),F({id:k().optional(),name:k().min(1),description:k().optional(),prompt:k().optional(),suggestedGezelId:k().optional(),assignee:Y.optional()}),F({tasks:P(pm)});var mm=L(`kind`,[F({kind:B(`gezel`),gezelId:k(),name:k()}),F({kind:B(`user`)})]),hm=F({id:k(),at:k(),author:mm,stepId:k().optional(),text:k()});F({notes:P(hm)}),F({text:k().min(1),stepId:k().optional()}),F({note:hm}),F({text:k().min(1)}),F({note:hm});function gm(e){let t=e.lastIndexOf(`/`);if(t<0||t===e.length-1)return null;let n=e.slice(0,t),r=e.slice(t+1);if(!n)return null;let i=Number.parseInt(r,10);return!Number.isFinite(i)||i<=0||String(i)!==r?null:{projectId:n,num:i}}var _m=k().refine(e=>gm(e)!==null,{message:`task ref must use projectId/num form`}),vm=F({family:z([`gemma`,`qwen`,`gpt-oss`,`mistral`,`llama`,`deepseek`,`qwq`,`phi`,`nemotron`,`glm`,`muse`,`other`]),reasoningFormat:z([`think`,`channel`,`inline`,`none`]),toolCallFormat:z([`function-call`,`qwen-xml`,`hermes`,`gemma-special-token`,`json-envelope`])}),ym=k().min(1),bm=I([ym,F({id:ym,config:N().optional()})]),xm=z([`artifacts`,`workspace`,`type`]);F({source:xm,path:k().max(4096)}),F({url:k().startsWith(`/preview/`),browserUrl:k().url().optional(),expiresAt:k(),scopePath:k()}),F({path:k().max(4096)}),F({ran:M(),ok:M().optional(),errors:P(k()).optional(),reason:k().optional()}),F({entries:P(F({kind:z([`error`,`unhandledrejection`,`console.error`]),message:k().max(2e3),path:k().max(4096),source:xm,at:k()})).min(1).max(20)});var Z=/^[a-z0-9][a-z0-9.\-:]{1,63}$/,Sm=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,Cm=z([`open`,`commercial-restricted`,`custom-restricted`]),wm={licenseClass:Cm.optional(),licenseShortName:k().optional(),licenseUrl:k().url().optional()},Tm={recoScore:j().int().positive().optional()},Q={minGezelVersion:k().optional()},Em=F({...Q,schemaVersion:B(1),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),...wm,...Tm,yankedVersions:P(k()).default([]),minSupportedVersion:k().optional()}),Dm=z([`search`,`dev-tools`,`data`,`cloud`,`productivity`,`communication`,`content`,`ai`,`media`,`other`]),Om=z([`general`,`code`,`communication`,`creative`,`writing`,`growth`,`game`,`data`,`home`,`money`,`events`,`other`]),km=z([`darwin-arm64`,`darwin-x64`,`linux-arm64`,`linux-x64`,`win32-x64`]),Am=F({kind:B(`npm-package`),package:k().min(1).max(214).regex(/^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9][a-z0-9._~-]*$/),version:k().min(1).max(128).regex(/^v?\d+\.\d+\.\d+(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/),sha256:k().regex(/^[a-f0-9]{64}$/),entry:k().min(1).max(512).refine(e=>!e.includes(`\\`)&&!e.includes(`\0`)&&!e.startsWith(`/`)&&e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`),`entry must be a contained POSIX-style relative path`),args:P(k().max(4096).refine(e=>!e.includes(`\0`))).max(64).default([]),envHints:P(k().regex(/^[A-Z_][A-Z0-9_]{0,63}$/)).max(64).default([])}),jm=L(`kind`,[Am,F({kind:B(`http-mcp`),url:k().url(),transport:z([`streamable-http`,`sse`]).default(`streamable-http`),authHint:z([`none`,`bearer`,`oauth`]).default(`none`),envHints:P(k()).default([])}),F({kind:B(`stdio-mcp-binary`),binaries:R(km,F({url:k().url(),sha256:k().regex(/^[a-f0-9]{64}$/)})),args:P(k()).default([]),envHints:P(k()).default([])}),F({kind:B(`builtin`),toolsetGroupId:k()}),F({kind:B(`custom-mcp`),serverName:k().min(1).max(256),transport:z([`stdio`,`streamable-http`,`sse`]),source:L(`kind`,[F({kind:B(`project-file`),relativePath:z([`.gezel/mcp.json`,`.vscode/mcp.json`,`.mcp.json`])}),F({kind:B(`imported`),sourceName:k().min(1).max(512).optional()})]),command:k().min(1).max(4096).optional(),args:P(k().max(16384)).max(256).default([]),cwd:k().max(4096).optional(),envFile:k().max(4096).optional(),url:k().max(16384).optional(),envKeys:P(k().min(1).max(256)).max(256).default([]),headerKeys:P(k().min(1).max(256)).max(256).default([])}).superRefine((e,t)=>{e.source.kind!==`project-file`&&(e.transport===`stdio`&&!e.command&&t.addIssue({code:`custom`,path:[`command`],message:`imported stdio MCP servers require a command`}),e.transport!==`stdio`&&!e.url&&t.addIssue({code:`custom`,path:[`url`],message:`imported HTTP MCP servers require a URL`}))})]),Mm=F({id:k(),label:k(),description:k().optional(),type:z([`string`,`enum`,`url`,`number`,`boolean`]),secret:M().default(!1),required:M().default(!1),default:k().optional(),options:P(k()).optional(),multiline:M().default(!1),pattern:k().optional(),placeholder:k().optional(),envVar:k().optional()}),Nm=Em.extend({kind:B(`toolset`),category:Dm.optional()});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),runtime:jm,tools:P(F({name:k(),description:k().default(``)})).default([]),config:P(Mm).default([]),requirements:F({node:k().optional(),platforms:P(km).optional()}).optional(),notes:k().optional()});var Pm=F({...Q,schemaVersion:B(1),kind:B(`toolset`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),version:k(),releasedAt:k(),runtime:jm,tools:P(F({name:k(),description:k().default(``)})).default([]),config:P(Mm).default([]),requirements:F({node:k().optional(),platforms:P(km).optional()}).optional(),notes:k().optional(),availableVersions:P(k()).default([]),category:Dm.optional()}),Fm=Em.extend({kind:B(`gezel-template`),role:k(),meesterCandidate:M().default(!1)}),Im=F({craftbookId:k(),runMode:z([`night-shift`,`scheduled`]),cron:k().optional(),overlap:z([`skip`,`queue`,`concurrent`]).optional(),params:R(k(),k()).optional(),reason:k().optional()}).refine(e=>e.runMode!==`scheduled`||!!e.cron,{message:`scheduled suggestions require cron`});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),about:k(),suggestedProvider:X.optional(),suggestedModel:k().optional(),suggestedTools:P(k()).default([]),notes:k().optional(),frontmatter:R(k(),N()).optional(),nameSuggestions:P(k()).optional(),suggestedCraftbooks:P(Im).optional()});var Lm=F({...Q,schemaVersion:B(1),kind:B(`gezel-template`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),version:k(),releasedAt:k(),role:k(),about:k(),suggestedProvider:X.optional(),suggestedModel:k().optional(),suggestedTools:P(k()).default([]),meesterCandidate:M().default(!1),notes:k().optional(),availableVersions:P(k()).default([]),frontmatter:R(k(),N()).optional(),nameSuggestions:P(k()).optional(),suggestedCraftbooks:P(Im).optional()}),Rm=z([`project-starter`,`maintenance-review`,`general`]),zm=[{id:`project-starter`,label:`New project starters`,description:`greenfield recipes that establish a new project in a blank workspace`},{id:`maintenance-review`,label:`Maintenance & review`,description:`inspect, repair, improve, and keep existing work healthy`},{id:`general`,label:`General work`,description:`research, content, operations, and other reusable recipes`}],Bm=Em.extend({kind:B(`craftbook-template`),role:Rm.default(`general`),workflow:k().optional()});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),about:k(),steps:P(Ju).min(1),entryStepId:k().min(1),defaultAssignee:Y.optional(),basedOn:ad.optional(),plan:k().optional(),notes:k().optional(),spawn:Yu.optional(),triggers:P(k()).optional(),hooks:P(Uu).optional(),bundledScripts:P(k()).optional(),paramSchema:R(k(),N()).optional(),command:k().regex(/^[a-z][a-z0-9-]*$/).optional(),requirements:P(Qu).optional(),runModes:$u.optional(),toolsets:P(ed).optional(),connectors:P(td).optional()});var Vm=F({...Q,schemaVersion:B(1),kind:B(`craftbook-template`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),version:k(),releasedAt:k(),role:Rm.default(`general`),workflow:k().optional(),about:k(),steps:P(Ju).min(1),entryStepId:k().min(1),defaultAssignee:Y.optional(),basedOn:ad.optional(),plan:k().optional(),notes:k().optional(),spawn:Yu.optional(),availableVersions:P(k()).default([]),triggers:P(k()).optional(),hooks:P(Uu).optional(),scripts:id.optional(),bundledScripts:P(k()).optional(),paramSchema:R(k(),N()).optional(),command:k().regex(/^[a-z][a-z0-9-]*$/).optional(),requirements:P(Qu).optional(),runModes:$u.optional(),toolsets:P(ed).optional(),connectors:P(td).optional()}),Hm=F({templateId:k(),voorman:M().default(!1)}),Um=F({id:k(),sourceId:k().optional(),need:z([`required`,`suggested`]).default(`suggested`),autoAllow:P(k()).default([]),reason:k().optional()}),Wm=F({gezel:k(),prompt:k().min(1),hideSeed:M().optional()}),Gm=F({name:k().regex(/^[a-z][a-z0-9_]*$/),description:k(),script:k(),inputs:R(k(),N()).optional(),bind:R(k(),N()).optional(),reaction:Wm.optional()}),Km=F({runMode:z([`scheduled`,`night-shift`]).default(`scheduled`),cron:k().optional(),craftbook:k(),consent:z([`ask`,`auto`,`disabled`]).default(`ask`),overlap:z([`skip`,`queue`,`concurrent`]).optional()}).refine(e=>e.runMode!==`scheduled`||!!e.cron,{message:`scheduled project-type schedules require cron`}),qm=F({source:xm,path:k().min(1),subtree:M().optional()}),Jm=F({entry:k(),api:B(1).optional(),reads:P(qm).optional(),tools:P(k().regex(/^[a-z][a-z0-9_]*$/)).optional()}),Ym={extends:k().optional(),meesterManaged:M().optional(),tabVisibility:Dp.optional(),mode:z([`crew`,`solo`]).optional(),leadLabel:k().min(1).optional(),leanProfile:M().optional(),indexingEnabled:M().optional(),params:R(k(),N()).optional(),nameTemplate:k().min(1).optional(),aboutTemplate:k().optional(),missionTemplate:k().optional(),gezels:P(Hm).default([]),toolsets:P(Um).default([]),craftbooks:P(k()).default([]),scripts:id.optional(),tools:P(Gm).default([]),pages:Jm.optional(),schedules:P(Km).default([]),workspaceSeed:P(k()).default([]),artifactsSeed:P(k()).default([]),notes:k().optional()},Xm=Em.extend({kind:B(`project-type`),category:Om.optional()});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),...Ym});var Zm=F({...Q,schemaVersion:B(1),kind:B(`project-type`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),category:Om.optional(),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),version:k(),releasedAt:k(),...Ym,availableVersions:P(k()).default([])}),Qm=z([`mcp`,`script`,`spectral`,`native`]),$m=I([F({kind:B(`mapping`),map:R(k(),N())}),F({kind:B(`script`),script:k()}),F({kind:B(`native`)})]),eh=F({name:k(),consentScope:k()}),th=F({title:k().min(1),description:k().min(1).optional(),steps:P(k().min(1)).optional(),url:k().url().optional(),urlLabel:k().min(1).optional()}),nh={driver:Qm,configSchema:R(k(),N()).optional(),secretShape:R(k(),N()).optional(),setupInstructions:th.optional(),source:R(k(),N()),normalize:$m.default({kind:`native`}),actions:P(eh).default([]),completeness:z([`mirror`,`window`]).optional(),allowedOrigins:P(k()).optional(),notes:k().optional()},rh=Em.extend({kind:B(`connector-type`)});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),...nh});var ih=F({...Q,schemaVersion:B(1),kind:B(`connector-type`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),version:k(),releasedAt:k(),...nh,availableVersions:P(k()).default([])}),ah=z([`general`,`coding`,`reasoning`,`vision`,`embedding`]),oh=F({tag:k()}),sh=F({name:k(),sha256:k().regex(/^[a-f0-9]{64}$/),sizeBytes:j().int().positive()}),ch=F({huggingfaceRepo:k().regex(/^[A-Za-z0-9_\-.]+\/[A-Za-z0-9_\-.]+$/),revision:k().optional(),filename:k().optional(),sha256:k().regex(/^[a-f0-9]{64}$/).optional(),shards:P(sh).min(2).optional(),approxSizeBytes:j().int().positive(),residentBytes:j().int().positive().optional(),quantization:k().optional(),mmproj:F({filename:k(),sha256:k().regex(/^[a-f0-9]{64}$/),sizeBytes:j().int().positive()}).optional(),draftModel:F({filename:k(),sha256:k().regex(/^[a-f0-9]{64}$/),sizeBytes:j().int().positive()}).optional()}).refine(e=>(!!e.filename&&!!e.sha256)!==(Array.isArray(e.shards)&&e.shards.length>=2),{message:`llamaCpp source must set exactly one of (filename + sha256) or shards[] (>=2)`}),lh=F({huggingfaceRepo:k().regex(/^[A-Za-z0-9_\-.]+\/[A-Za-z0-9_\-.]+$/),revision:k().optional(),filename:k().optional(),sha256:k().regex(/^[a-f0-9]{64}$/).optional(),shards:P(sh).min(2).optional(),approxSizeBytes:j().int().positive(),residentBytes:j().int().positive().optional(),kvBytesPerToken:j().int().positive().optional(),residentCtxTokens:j().int().positive().optional(),quantization:k().optional(),cacheExpertsBytes:j().int().positive().optional(),ssdStreaming:M().optional(),maxLaunchCtx:j().int().positive().optional()}).refine(e=>(!!e.filename&&!!e.sha256)!==(Array.isArray(e.shards)&&e.shards.length>=2),{message:`ds4 source must set exactly one of (filename + sha256) or shards[] (>=2)`}),uh=F({huggingfaceRepo:k().regex(/^[A-Za-z0-9_\-.]+\/[A-Za-z0-9_\-.]+$/),revision:k().optional(),files:P(F({name:k(),sha256:k().regex(/^[a-f0-9]{64}$/),sizeBytes:j().int().positive()})).min(1),approxSizeBytes:j().int().positive(),residentBytes:j().int().positive().optional(),quantization:k().optional(),chatTemplate:k().optional(),disabledReason:k().optional()}),dh=Em.extend({kind:B(`chat-model`),maker:F({name:k().min(1),url:k().url().optional()}).optional(),parameterSize:k(),supportsTools:M(),contextWindow:j().int().positive().optional(),kvBytesPerTokenF16:j().positive().optional(),kvFixedBytesF16:j().nonnegative().optional(),upstream:k().url().optional(),category:ah.optional(),style:vm.optional(),behaviors:P(bm).optional(),tuning:bf.optional()});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),approxSizeBytes:j().int().positive(),ollama:oh.optional(),llamaCpp:ch.optional(),mlx:uh.optional(),ds4:lh.optional(),notes:k().optional()});var fh=F({sniffThresholds:F({inlineJsMinBytes:j().int().min(1e3).optional(),htmlMinBytes:j().int().min(1e3).optional()}).optional()}),ph=F({...Q,schemaVersion:B(1),kind:B(`chat-model`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),maker:F({name:k().min(1),url:k().url().optional()}).optional(),logo:k().optional(),license:k().optional(),...wm,...Tm,version:k(),releasedAt:k(),parameterSize:k(),approxSizeBytes:j().int().positive(),supportsTools:M(),contextWindow:j().int().positive().optional(),kvBytesPerTokenF16:j().positive().optional(),kvFixedBytesF16:j().nonnegative().optional(),upstream:k().url().optional(),category:ah.optional(),style:vm.optional(),behaviors:P(bm).optional(),tuning:bf.optional(),evalHints:fh.optional(),ollama:oh.optional(),llamaCpp:ch.optional(),mlx:uh.optional(),ds4:lh.optional(),notes:k().optional(),availableVersions:P(k()).default([])}),mh=z([`general`,`artistic`,`photographic`]),hh=z([`low`,`mid`,`high`,`workstation`]),gh=F({role:z([`vae`,`clip_l`,`clip_g`,`t5xxl`,`llm`]),downloadUrl:k().url(),sha256:k().regex(/^[a-f0-9]{64}$/),approxSizeBytes:j().int().positive()}),_h=Em.extend({kind:B(`image-model`),recommendedSteps:j().int().positive().default(20),widthRange:F({min:j().int().positive(),max:j().int().positive()}).optional(),heightRange:F({min:j().int().positive(),max:j().int().positive()}).optional(),upstream:k().url().optional(),category:mh.optional(),weightsKind:z([`checkpoint`,`diffusion-model`]).default(`checkpoint`),supportsImg2Img:M().optional(),hardwareTier:hh,minRamGB:j().positive(),commercialUse:M()});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),downloadUrl:k().url(),sha256:k().regex(/^[a-f0-9]{64}$/),approxSizeBytes:j().int().positive(),quantization:k().optional(),auxiliaryFiles:P(gh).default([]),notes:k().optional()});var vh=F({...Q,schemaVersion:B(1),kind:B(`image-model`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),...wm,...Tm,version:k(),releasedAt:k(),downloadUrl:k().url(),sha256:k().regex(/^[a-f0-9]{64}$/),approxSizeBytes:j().int().positive(),quantization:k().optional(),recommendedSteps:j().int().positive().default(20),widthRange:F({min:j().int().positive(),max:j().int().positive()}).optional(),heightRange:F({min:j().int().positive(),max:j().int().positive()}).optional(),upstream:k().url().optional(),category:mh.optional(),weightsKind:z([`checkpoint`,`diffusion-model`]).default(`checkpoint`),supportsImg2Img:M().optional(),auxiliaryFiles:P(gh).default([]),hardwareTier:hh,minRamGB:j().positive(),commercialUse:M(),notes:k().optional(),availableVersions:P(k()).default([])}),yh=z([`ltx`,`ltx2`,`wan`]),bh=F({strategy:z([`diffusers-tree`,`single-file`]).default(`diffusers-tree`),pipelineClass:k().optional(),singleFileName:k().optional(),transformerClass:k().optional(),vaeDtype:z([`float32`,`bfloat16`]).optional(),audio:M().default(!1)}),xh=F({huggingfaceRepo:k().regex(/^[A-Za-z0-9_\-.]+\/[A-Za-z0-9_\-.]+$/),revision:k().optional(),files:P(F({name:k(),sha256:k().regex(/^[a-f0-9]{64}$/),sizeBytes:j().int().positive(),repo:k().regex(/^[A-Za-z0-9_\-.]+\/[A-Za-z0-9_\-.]+$/).optional(),revision:k().optional()})).min(1),approxSizeBytes:j().int().positive(),quantization:k().optional()}),Sh=F({min:j().int().positive(),max:j().int().positive()}),Ch=Em.extend({kind:B(`video-model`),family:yh,load:bh.optional(),recommendedSteps:j().int().positive().default(40),guidanceScale:j().positive().optional(),defaultNumFrames:j().int().positive().default(97),numFramesRange:Sh.optional(),defaultFps:j().int().positive().default(24),fpsRange:Sh.optional(),maxDurationSeconds:j().positive().optional(),widthRange:Sh.optional(),heightRange:Sh.optional(),defaultWidth:j().int().positive().optional(),defaultHeight:j().int().positive().optional(),supportsImageToVideo:M().default(!1),upstream:k().url().optional(),hardwareTier:hh,minVramGB:j().positive(),commercialUse:M()});F({...Q,schemaVersion:B(1),version:k().regex(Sm),releasedAt:k(),source:xh,notes:k().optional()});var wh=F({...Q,schemaVersion:B(1),kind:B(`video-model`),id:k().regex(Z),name:k().min(1),description:k(),tags:P(k()).default([]),maintainer:F({name:k(),url:k().url().optional()}),logo:k().optional(),license:k().optional(),...wm,...Tm,version:k(),releasedAt:k(),family:yh,load:bh.optional(),source:xh,approxSizeBytes:j().int().positive(),recommendedSteps:j().int().positive().default(40),guidanceScale:j().positive().optional(),defaultNumFrames:j().int().positive().default(97),numFramesRange:Sh.optional(),defaultFps:j().int().positive().default(24),fpsRange:Sh.optional(),maxDurationSeconds:j().positive().optional(),widthRange:Sh.optional(),heightRange:Sh.optional(),defaultWidth:j().int().positive().optional(),defaultHeight:j().int().positive().optional(),supportsImageToVideo:M().default(!1),upstream:k().url().optional(),hardwareTier:hh,minVramGB:j().positive(),commercialUse:M(),notes:k().optional(),availableVersions:P(k()).default([])});L(`kind`,[Nm,Fm,Bm,Xm,rh,dh,_h,Ch]);var Th=L(`kind`,[Pm,Lm,Vm,Zm,ih,ph,vh,wh]),Eh=z([`toolset`,`gezel-template`,`craftbook-template`,`project-type`,`connector-type`,`chat-model`,`image-model`,`video-model`]),Dh=F({sourceId:k(),kind:Eh,manifest:Th,logoUrl:k().optional(),iconSvg:k().optional()});F({items:P(Dh)}),Dh.extend({readme:k().optional(),about:k().optional()}),F({versions:P(F({version:k(),releasedAt:k(),yanked:M()}))});var Oh={toolsetId:k(),sourceId:k(),version:k(),installedAt:k(),installPath:k().optional()},kh=F({...Oh,runtime:jm}),Ah=Am.extend({sha256:k().regex(/^(?:sha256-[A-Za-z0-9+/]{43}=|sha384-[A-Za-z0-9+/]{64}|sha512-[A-Za-z0-9+/]{86}==)$/)});I([kh,F({...Oh,sourceId:B(`system`),runtime:Ah})]),F({toolsetId:k(),values:R(k(),k()).default({}),updatedAt:k()});var jh=F({kind:Eh,id:k(),version:k(),path:k(),sha256:k().regex(/^[a-f0-9]{64}$/)});F({schemaVersion:B(1),name:k().min(1),description:k().default(``),creator:k().optional(),createdAt:k().optional(),minSupportedVersion:k().optional(),items:P(jh).min(1),provenance:F({source:k().optional(),exportedFromProject:k().optional()}).optional()});var Mh=z([`llama-cpp`,`mlx`,`ds4`]),Nh=F({path:k().min(1).max(1024).refine(e=>!e.includes(`\\`)&&!e.includes(`\0`)&&!e.startsWith(`/`)&&e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`),`bundle path must be a contained POSIX-style relative path`),sizeBytes:j().int().nonnegative().max(2**53-1),sha256:k().regex(/^[a-f0-9]{64}$/),role:z([`model`,`installed-manifest`,`catalog-manifest`,`catalog-file`])}),Ph=F({name:k().min(1),shortName:k().min(1).optional(),class:Cm.optional(),url:k().url().optional()}),Fh=F({schemaVersion:B(1),kind:B(`gezel-model`),id:k().regex(Z),name:k().min(1).max(256),engine:Mh,createdAt:k().datetime(),createdBy:B(`gezel`),catalogVersion:k().optional(),approxSizeBytes:j().int().nonnegative().max(2**53-1),license:Ph.optional(),files:P(Nh).min(2).max(16384)});F({importId:k().uuid(),manifest:Fh,alreadyInstalled:M(),warnings:P(k())});var Ih=z([`current`,`default`,`development`]),Lh=F({source:Ih,sourceLabel:k().min(1).max(128),engine:Mh,id:k().regex(Z),name:k().min(1).max(256),approxSizeBytes:j().int().nonnegative().max(2**53-1),catalogVersion:k().min(1),moving:M().default(!1)});F({available:M(),candidates:P(Lh)}),F({source:Ih,engine:Mh,id:k().regex(Z)}),F({ok:B(!0),engine:Mh,id:k().regex(Z),localRemoved:M(),warning:k().min(1).optional()});var Rh=F({label:k().min(1),path:k().min(1)}),zh=F({id:k(),kind:z([`command`,`output`]),content:k(),at:k(),resolvedFrom:k().optional(),stdout:k().optional(),stderr:k().optional(),exitCode:j().int().optional(),durationMs:j().int().nonnegative().optional(),truncated:M().optional(),errorMessage:k().optional(),fileReferences:P(Rh).optional(),cwd:k().optional()});F({threads:P(F({version:B(1),id:k(),projectId:k(),workingDir:k(),createdAt:k(),lastActivityAt:k(),archived:M().optional(),messages:P(zh)}).pick({id:!0,projectId:!0,workingDir:!0,createdAt:!0,lastActivityAt:!0,archived:!0}).extend({lastCommand:k().optional()}))}),F({workingDir:k(),input:k().min(1),columns:j().int().min(20).max(500).optional()}),F({threadId:k(),runId:k()}),L(`kind`,[F({kind:B(`message`),projectId:k(),threadId:k(),workingDir:k(),message:_o(()=>zh),runId:k().optional()}),F({kind:B(`workingDirChanged`),projectId:k(),threadId:k(),newWorkingDir:k()}),F({kind:B(`runStarted`),projectId:k(),threadId:k(),runId:k(),commandMessageId:k(),at:k(),cwd:k()}),F({kind:B(`outputChunk`),projectId:k(),threadId:k(),runId:k(),chunk:k()}),F({kind:B(`inputRequested`),projectId:k(),threadId:k(),runId:k(),promptLine:k(),mode:z([`text`,`password`,`yes-no`])}),F({kind:B(`openFile`),projectId:k(),threadId:k(),path:k(),source:B(`workspace`)})]);var Bh=F({threadId:k(),projectId:k(),workingDir:k(),threadCreatedAt:k(),threadLastActivityAt:k(),threadArchived:M().optional(),messageId:k(),msgKind:z([`command`,`output`]),content:k(),at:k(),resolvedFrom:k().optional(),stdout:k().optional(),stderr:k().optional(),exitCode:j().int().optional(),durationMs:j().int().nonnegative().optional(),truncated:M().optional(),errorMessage:k().optional(),fileReferences:P(Rh).optional(),cwd:k().optional()}),Vh=F({kind:z([`file`,`chat`]),filePath:k().optional(),checks:P(Pu).optional(),scripts:P(Iu).optional()}),Hh=F({version:B(1),id:k(),gezelId:k(),projectId:k(),providerName:X,model:k().optional(),modelSource:z([`capability-routing`]).optional(),nightShift:M().optional(),engineKey:k().optional(),reasoningEffort:k().optional(),title:k(),createdAt:k(),lastActivityAt:k(),archived:M().optional(),messages:P(hp),providerState:F({copilotSessionId:k().optional(),openaiPreviousResponseId:k().optional(),claudeCliSessionId:k().optional(),codexCliThreadId:k().optional()}),aboutSnapshot:k().optional(),roleBasedNameOnlyMode:M().optional(),resumeFailed:M().optional(),deliverableGatePlateau:F({signatureHash:k(),count:j().int().nonnegative(),stage:j().int().min(0).max(3),at:k()}).optional(),lastTurnError:k().optional(),lastTurnErrorDetail:gp.optional(),taskRef:k().optional(),stepId:k().optional(),lastImageGeneration:F({prompt:k(),negativePrompt:k().optional(),artifactPath:k(),seed:j().int().optional(),model:k().optional(),at:k()}).optional(),craftbookRef:k().optional(),consultationMode:M().optional(),expectedDeliverable:Vh.optional(),scriptTools:P(Gm).optional(),numCtx:j().int().positive().optional(),recall:F({at:k(),query:k(),hits:P(F({text:k(),scope:z([`gezel`,`project`,`workspace`]),day:k(),score:j(),kind:z([`fact`,`decision`,`pref`,`status`]).optional()}))}).optional(),summarizedAt:k().optional(),summarizedUpTo:j().int().nonnegative().optional(),extractedUpTo:j().int().nonnegative().optional(),compactionCount:j().int().nonnegative().optional(),lastCompactedAt:k().optional()}).pick({id:!0,gezelId:!0,projectId:!0,providerName:!0,model:!0,title:!0,createdAt:!0,lastActivityAt:!0,archived:!0,lastTurnError:!0,taskRef:!0,stepId:!0}).extend({lastHumanActivityAt:k().optional(),lastMessagePreview:k().max(200).optional(),involvedGezelIds:P(k()).optional()});F({gezelId:k(),projectId:k().optional(),taskRef:k().optional(),stepId:k().optional(),craftbookRef:k().optional(),roleBasedNameOnlyMode:M().optional()}),F({sessions:P(Hh)}),F({message:k().min(1),mentions:P(k().min(1)).max(10).optional(),passiveCcGezelIds:P(k().min(1)).max(5).optional(),nudge:M().optional()}),F({accepted:B(!0),sessionId:k()});var Uh=F({queueId:k(),text:k(),preview:k(),enqueuedAt:k(),nudge:M()});F({sessionId:k(),entries:P(Uh)}),F({message:k().min(1)}),F({updated:B(!0),entry:Uh}),F({message:k().min(1)}),F({messages:P(F({sessionId:k(),gezelId:k(),projectId:k(),sessionTitle:k(),sessionCreatedAt:k(),sessionLastActivityAt:k(),sessionArchived:M().optional(),sessionProviderName:X,sessionModel:k().optional(),sessionLastTurnError:k().optional(),taskRef:k().optional(),stepId:k().optional(),handoffFrom:F({gezelId:k(),sessionId:k()}).optional(),role:z([`user`,`assistant`]),content:k(),at:k(),from:F({gezelId:k(),gezelName:k()}).optional(),nudge:M().optional(),referencedArtifacts:P(k()).optional(),referencedTasks:P(k()).optional(),toolCalls:P(mp).optional(),intents:P(F({label:k(),afterChars:j().int().min(0)})).optional(),pendingQuestionId:k().optional(),warnings:P(k()).optional(),reasoning:k().optional(),reasoningDurationMs:j().int().nonnegative().optional(),attemptedToolCalls:P(F({body:k(),reason:k().optional()})).optional()})),hasMore:M(),nextCursor:k().optional(),terminalEntries:P(Bh).optional()});var Wh=z([`up-to-date`,`updated`,`incompatible`,`error`,`blocked`]),Gh=F({at:k(),outcome:Wh,message:k().optional(),version:k().optional(),regressions:P(F({kind:k(),id:k()})).max(25).optional()});F({enabled:M(),mode:z([`bundled`,`live`,`overridden`]),bundledVersion:k(),activeVersion:k().nullable(),lastCheck:Gh.nullable(),updateInProgress:M()});var Kh=z([`nudge_budget_exhausted`,`context_loop`,`gate_exhausted`,`step_redrive_exhausted`,`turn_aborted`,`deliverable_plateau`]),qh=L(`kind`,[F({kind:B(`corrective_prompt`),prompt:k().min(1)}),F({kind:B(`rewrite_step`),stepId:k().min(1),prompt:k().min(1),name:k().optional(),deliverable:k().optional()}),F({kind:B(`rewrite_craftbook`),document:k().min(1),rationale:k().min(1)}),F({kind:B(`takeover_step`),instruction:k().min(1)}),F({kind:B(`stand_down`),reason:k().min(1)})]),Jh=z([`silent_stall`,`tool_loop`,`capability_ceiling`,`task_shape`,`context_pressure`,`unknown`]),Yh=F({diagnosis:k().min(1),failureClass:Jh,action:qh,confidence:z([`low`,`medium`,`high`])}),Xh=F({record:B(`case.opened`),caseId:k().min(1),ts:k().min(1),trigger:Kh,sessionId:k().optional(),gezelId:k().min(1),projectId:k().optional(),taskRef:k().optional(),stepId:k().optional(),providerName:k().min(1),model:k().optional(),modelTier:k().optional(),consultProviderName:k().min(1),consultModel:k().optional(),signals:R(k(),N()),verdict:Yh.optional(),applied:M(),consultDurationMs:j().int().nonnegative(),promptChars:j().int().nonnegative(),responseChars:j().int().nonnegative(),debug:F({prompt:k(),rawResponse:k()}).optional()}),Zh=z([`unblocked`,`re_triggered`,`gave_up`,`takeover_completed`,`takeover_failed`,`unknown`]);L(`record`,[Xh,F({record:B(`case.closed`),caseId:k().min(1),ts:k().min(1),outcome:Zh,turnsObserved:j().int().nonnegative()})]);var Qh=F({label:k().max(60),target:L(`kind`,[F({kind:B(`project`),projectId:k()}),F({kind:B(`task`),projectId:k(),taskRef:k()}),F({kind:B(`view`),view:z([`projects`,`gezels`,`documents`,`settings`])})])}),$h=F({projectId:k(),taskRef:k(),title:k()}),eg=F({headline:k().max(120),cta:Qh.optional(),report:k(),generatedAt:k(),trigger:z([`auto`,`manual`]),actions:P($h).default([])});F({headline:k(),cta:Qh.optional(),report:k(),actions:P(F({projectId:k(),title:k(),description:k()})).optional()}),F({lastRunAt:k().optional(),inputHash:k().optional(),runDay:k().optional(),runsOnDay:j().int().nonnegative().optional(),recentActionKeys:P(k()).optional()}),F({lastActivityAt:k()}),F({report:eg.nullable(),budget:F({runsToday:j().int().nonnegative(),maxRunsPerDay:j().int().positive(),lastRunAt:k().nullable()}),running:M()});var tg=z([`info`,`minor`,`major`]),ng=F({severity:tg,category:k().min(1).max(40),message:k().min(1).max(300),line:j().int().positive().optional()}),rg=z([`open`,`in_progress`,`resolved`,`dismissed`]),ig=z([`not_an_issue`,`duplicate`,`wont_fix`]),ag=ng.extend({ref:k().regex(/^BW-[1-9]\d*$/),id:k().min(1),fingerprint:k().min(1),path:k().min(1),status:rg,seen:M(),stale:M(),taskRef:k().optional(),dismissalReason:ig.optional(),createdAt:k(),lastSeenAt:k(),lastCheckedAt:k().optional(),seenAt:k().optional(),resolvedAt:k().optional(),dismissedAt:k().optional()});F({notes_md:k().min(1),issues:P(ng),health:j().int().min(1).max(10),health_reason:k().min(1)});var og=F({notesMd:k(),issues:P(ng),health:j().int().min(1).max(10),healthReason:k(),model:k().nullable(),provider:k().nullable().optional(),gezelId:k().nullable().optional(),gezelName:k().nullable().optional(),appVersion:k().nullable().optional(),reviewedAt:k().nullable()});function sg(e){if(!e.model)return null;let t=[`Reviewed by ${e.model}${e.provider?` (${e.provider})`:``}`];return e.gezelName&&t.push(e.gezelName),e.appVersion&&t.push(e.appVersion===`0.0.0`?`gezel dev`:`gezel ${e.appVersion}`),e.reviewedAt&&t.push(e.reviewedAt.slice(0,10)),t.join(` · `)}F({github:Cp.optional(),exists:M(),originMatches:M().optional(),branch:k().optional(),defaultBranch:k().optional(),ahead:j().int().optional(),behind:j().int().optional(),dirty:M().optional(),changesCount:j().int().optional(),conflictedCount:j().int().optional(),mergeInProgress:M().optional(),hasUpstream:M().optional(),hasPat:M(),credentialSource:z([`pat`,`env`,`gh`,`none`])}),F({ok:B(!0),checkoutDir:k(),branch:k().optional(),adopted:M()}),F({branch:k().min(1),create:M().optional()}),F({local:P(k()),remote:P(k()),current:k().optional()}),F({ok:B(!0),fetched:M()}),F({message:k().min(1),allowEmpty:M().optional()}),F({ok:B(!0),sha:k(),filesChanged:j().int()}),F({ok:B(!0),pushed:M(),rejected:z([`non-fast-forward`,`auth`,`unknown`]).optional()});var cg=F({number:j().int(),title:k(),author:k(),headRef:k(),baseRef:k(),draft:M(),updatedAt:k(),url:k()});F({pulls:P(cg)}),cg.extend({body:k(),state:k(),merged:M(),mergeable:M().nullable().optional(),additions:j().int(),deletions:j().int(),changedFiles:j().int()}),F({files:P(F({filename:k(),status:k(),additions:j().int(),deletions:j().int(),changes:j().int(),patch:k().optional(),patchChars:j().int().nonnegative().optional(),patchTruncated:M().optional(),previousFilename:k().optional()})),allFiles:j().int().nonnegative().optional(),totalFiles:j().int().nonnegative().optional(),offset:j().int().nonnegative().optional(),limit:j().int().positive().optional(),hasMore:M().optional(),nextOffset:j().int().nonnegative().optional(),includesPatch:M().optional()}),F({comments:P(F({id:j(),author:k(),body:k(),createdAt:k(),kind:z([`issue`,`review`]),path:k().optional()}))}),F({number:j().int(),diff:k(),path:k().optional(),offset:j().int().nonnegative().optional(),returnedChars:j().int().nonnegative().optional(),totalChars:j().int().nonnegative().optional(),truncated:M().optional(),nextOffset:j().int().nonnegative().optional()}),F({body:k().min(1)}),F({id:j(),url:k()}),F({title:k().min(1),body:k().optional(),head:k().min(1),base:k().min(1),draft:M().optional()}),F({number:j().int(),url:k()}),F({runs:P(F({id:j(),name:k(),status:k(),conclusion:k().nullable(),createdAt:k(),url:k()}))}),F({state:z([`success`,`failure`,`pending`,`unknown`]),checks:P(F({name:k(),status:k(),conclusion:k().nullable(),url:k().optional()}))});var lg=z([`modified`,`added`,`deleted`,`renamed`,`conflicted`]),ug=F({path:k(),oldPath:k().optional(),kind:lg,additions:j().int().optional(),deletions:j().int().optional(),binary:M().optional()});F({changes:P(ug),total:j().int(),truncated:M()}),F({path:k(),kind:lg,oldPath:k().optional(),binary:M(),truncated:M(),diff:k().optional(),additions:j().int().optional(),deletions:j().int().optional()}),F({paths:P(k().min(1)).min(1).optional(),all:M().optional()}).refine(e=>!!e.all!=!!e.paths?.length,{message:"Pass exactly one of `paths` or `all`."}),F({ok:B(!0),discarded:j().int()});var dg=F({sha:k(),shortSha:k(),author:k(),email:k().optional(),date:k(),subject:k(),filesChanged:j().int(),additions:j().int(),deletions:j().int()});F({commits:P(dg),hasMore:M()}),F({sha:k(),shortSha:k(),author:k(),date:k(),subject:k(),files:P(F({path:k(),additions:j().int().optional(),deletions:j().int().optional(),binary:M().optional()})),diff:k().optional(),truncated:M()}),F({state:z([`synced`,`needs-save`,`conflicts`,`auth`,`offline`,`error`]),pulled:j().int(),pushed:j().int(),merged:M().optional(),branch:k().optional(),conflictedFiles:P(k()).optional(),message:k().optional()});var fg=z([`both-modified`,`both-added`,`deleted-by-us`,`deleted-by-them`]),pg=F({path:k(),kind:fg});F({inMerge:M(),conflicts:P(pg)}),F({path:k(),base:k().optional(),ours:k().optional(),theirs:k().optional(),binary:M(),tooLarge:M()}),F({path:k().min(1),choice:z([`mine`,`theirs`,`custom`]),content:k().optional()}).refine(e=>e.choice!==`custom`||e.content!==void 0,{message:"`content` is required when choice is `custom`."}),F({ok:B(!0),remaining:j().int()}),F({message:k().optional()}),F({ok:B(!0),sha:k()}),F({ok:B(!0)}),F({message:k()}),F({path:k().min(1)}),F({path:k(),merged:k()});var mg=z([`commit`,`pr`]),hg=z([`running`,`complete`,`canceled`,`error`]),gg=F({id:k().min(1),kind:mg,status:hg,createdAt:k(),settledAt:k().optional(),outcome:z([`complete`,`canceled`]).optional(),error:k().optional(),taskRef:k().min(1),gezelId:k().optional(),branch:k(),headSha:k(),baseRef:k().optional(),baseSha:k().optional(),filesChanged:j().int(),additions:j().int().optional(),deletions:j().int().optional(),commitCount:j().int().optional(),filesTruncated:M(),diffTruncated:M(),manifestPath:k(),diffPath:k(),reportPath:k()}).extend({taskStatus:z([`draft`,`paused`,`active`,`complete`,`canceled`]).optional(),needsAttention:M().optional(),activeStepName:k().optional(),stepsTotal:j().int().optional(),stepsComplete:j().int().optional(),assigneeName:k().optional()});F({kind:mg}),F({ok:B(!0),review:gg}),F({reviews:P(gg)}),F({ok:B(!0),review:gg}),F({version:B(1),reviewId:k().min(1),kind:mg,projectId:k().min(1),createdAt:k(),branch:k(),headSha:k(),baseRef:k(),baseSha:k(),files:P(ug),totalFiles:j().int(),filesTruncated:M(),diffFile:k(),diffChars:j().int(),diffTruncated:M(),commits:P(dg).optional(),commitsTruncated:M().optional(),notes:P(k())});var _g=z([`webhook`]),vg=F({url:k().url(),method:z([`POST`,`PUT`]).optional(),headers:R(k(),k()).optional(),bodyTemplate:k().optional(),bodyContentType:k().optional()}),yg=F({default:_g.optional(),webhook:vg.optional()});F({name:_g,configured:M(),ready:M(),lastError:k().optional(),detail:R(k(),N()).optional()}),F({channel:_g.optional(),message:k().min(1),metadata:R(k(),N()).optional()}),I([F({ok:B(!0),id:k().optional(),channel:_g}),F({ok:B(!1),error:k(),channel:_g.optional()})]);var bg=z([`llama-server`,`ds4-server`,`sd-server`,`whisper-server`,`uv`]);L(`type`,[F({type:B(`progress`),bytesWritten:j().nonnegative(),totalBytes:j().nonnegative()}),F({type:B(`retrying`),attempt:j().int().positive(),maxAttempts:j().int().positive(),delayMs:j().nonnegative(),reason:k()}),F({type:B(`verifying`),what:z([`sha256`,`signature`])}),F({type:B(`done`),binPath:k(),cached:M()}),F({type:B(`error`),error:k()})]);var xg=F({name:bg,installed:M(),path:k().optional()});F({release:k(),pinned:M(),platformKey:k().nullable(),llamaBackend:z([`cuda`,`vulkan`,`metal`,`cpu`]).optional(),engines:P(xg)});var Sg=F({id:k(),name:k(),kind:k(),lineStart:j().int().positive(),lineEnd:j().int().positive(),signature:k().optional(),parent:k().optional()});F({path:k().min(1)}),F({path:k(),lang:k().nullable(),summary:k().nullable().optional(),symbols:P(Sg),totalLines:j().int().nonnegative(),engine:z([`index`,`live`,`unavailable`]),truncated:M(),review:og.optional()}),F({name:k().min(1),kind:k().optional(),maxResults:j().int().positive().max(200).optional()}),F({matches:P(Sg.extend({path:k()})),truncated:M(),engine:z([`index`,`unavailable`])}),F({name:k().min(1),path:k().optional()}),F({found:M(),path:k().optional(),name:k().optional(),kind:k().optional(),lineStart:j().int().positive().optional(),lineEnd:j().int().positive().optional(),signature:k().optional(),source:k().optional()}),F({name:k().min(1),glob:k().optional(),maxResults:j().int().positive().max(500).optional()}),F({references:P(F({path:k(),line:j().int().positive(),text:k()})),truncated:M(),engine:z([`ripgrep`,`javascript`])}),F({path:k().min(1)});var Cg=F({ruleId:k(),category:k(),severity:z([`critical`,`high`,`medium`,`low`,`info`]),line:j().int().positive().nullable(),title:k(),source:k()}),wg=F({path:k(),viaBinding:M()}),Tg=F({name:k(),kind:k(),lineStart:j().int().positive(),lineEnd:j().int().positive(),signature:k().optional(),parent:k().optional(),importedBy:P(wg),importedByTruncated:M(),uses:P(F({name:k(),from:k(),inRepo:M()})),usedInFileBy:P(k()),findings:P(Cg),summary:k().optional()});F({path:k(),lang:k().nullable(),totalLines:j().int().nonnegative(),summary:k().nullable(),importedBy:P(F({path:k(),names:P(k())})),importedByTruncated:M(),imports:P(F({specifier:k(),resolvedPath:k().nullable(),names:P(k()),default:M(),namespace:M()})),fileFindings:P(Cg),symbols:P(Tg),symbolsTruncated:M(),engine:z([`index`,`live`,`unavailable`]),review:og.optional()}),F({path:k().min(1)}),F({path:k(),found:M(),pending:M().optional(),review:og.optional(),trackedIssues:P(ag).optional(),eligible:M().optional()}),F({severity:tg.optional(),category:k().optional(),path:k().optional(),status:rg.optional(),includeClosed:M().optional(),maxResults:j().int().positive().max(1e3).optional()}),F({issues:P(ag),counts:F({total:j().int().nonnegative(),bySeverity:R(k(),j().int().nonnegative()),byCategory:R(k(),j().int().nonnegative())}),truncated:M(),indexed:M(),reviewedFiles:j().int().nonnegative(),eligibleFiles:j().int().nonnegative(),reviewers:P(F({model:k().nullable(),provider:k().nullable(),gezelName:k().nullable(),files:j().int().nonnegative()})).optional()}),F({ref:k().regex(/^BW-[1-9]\d*$/)}),F({issue:ag}),F({ref:k().regex(/^BW-[1-9]\d*$/),status:rg.optional(),seen:M().optional(),dismissalReason:ig.optional()}).refine(e=>e.status!==void 0||e.seen!==void 0,{message:`status or seen is required`}).refine(e=>e.status===`dismissed`?e.dismissalReason!==void 0:e.dismissalReason===void 0,{message:`dismissalReason is required only when status is dismissed`}),F({issue:ag}),F({ref:k().regex(/^BW-[1-9]\d*$/),gezelId:k().min(1),message:k().min(1)}),F({issue:ag,taskRef:k().min(1),gezelId:k().min(1),gezelName:k().min(1),enqueued:M()}),F({path:k().optional()}),F({root:k(),languages:P(F({lang:k(),fileCount:j().int().nonnegative()})),areas:P(F({path:k(),fileCount:j().int().nonnegative(),purpose:k().optional()})),entryPoints:P(k()),keyFiles:P(k()),fileCount:j().int().nonnegative(),indexed:M(),architecture:k().optional(),health:F({reviewedFiles:j().int().nonnegative(),eligibleFiles:j().int().nonnegative(),avgHealth:j(),majorIssues:j().int().nonnegative(),minorIssues:j().int().nonnegative(),worstFiles:P(F({path:k(),health:j().int().min(1).max(10),reason:k().optional()})).max(5)}).optional()});var Eg=z([`user`,`machine-engine`,`legacy-full`]);F({ok:B(!0),version:k(),serviceRole:Eg.optional(),machineEngineConnected:M().optional(),startedAt:k(),nodeVersion:k().optional(),platform:k().optional(),llamaCppBackend:z([`cuda`,`vulkan`,`metal`,`cpu`]).optional(),llamaCppDetectedBackend:z([`cuda`,`vulkan`,`metal`,`cpu`]).optional(),llamaCppDetectedVendor:z([`amd`,`nvidia`,`intel`]).optional(),llamaCppQuarantinedBackends:P(z([`cuda`,`vulkan`,`metal`,`cpu`])).optional(),childProcessSpawn:z([`ok`,`denied`]).optional()});var Dg=z([`vram`,`unified`,`ram`]),Og=F({provider:k(),modelId:k(),reservedBytes:j().nonnegative(),replicaCount:j().int().positive()}),kg=z([`machine-engine`,`app-engine`,`development-engine`,`gezel-engine`,`external`]),Ag=F({pid:j().int().positive(),name:k().optional(),dedicatedBytes:j().nonnegative(),owner:kg}),jg=F({provider:k(),modelId:k(),replicaIdx:j().int().nonnegative(),running:M(),active:M(),pid:j().int().positive().optional(),lastUsedAt:j().nonnegative().nullable(),unloadAt:j().nonnegative().nullable(),idleTimeoutMs:j().nonnegative(),releaseReason:z([`idle`,`memory-pressure`]).nullable()});F({kind:Dg,totalBytes:j().nonnegative(),usedBytes:j().nonnegative().nullable(),gezelBytesEstimated:j().nonnegative(),gezelBytesObserved:j().nonnegative().nullable(),gezelInfraBytes:j().nonnegative(),gezelModelWeightsBytes:j().nonnegative(),gezelModelCacheBytes:j().nonnegative(),engineReservedBytes:j().nonnegative(),engineBudgetBytes:j().nonnegative().nullable(),enginePools:F({kind:z([`unified`,`discrete-gpu`,`system-ram`]),vramBytes:j().nonnegative(),ramShareBytes:j().nonnegative(),fastBytes:j().nonnegative()}).nullable().optional(),engineRamSpillover:F({allowed:M(),auto:M(),overridden:M(),coResidencyBytes:j().nonnegative()}).optional(),residentModels:P(Og),engineLifecycles:P(jg).optional(),gpuProcesses:P(Ag).optional(),gezelEngineProcessCount:j().int().nonnegative(),orphanedGezelEngineProcessCount:j().int().nonnegative(),otherBytes:j().nonnegative().nullable(),cachedBytes:j().nonnegative().nullable().optional(),freeBytes:j().nonnegative().nullable(),sampledAt:k(),source:z([`device-health`,`system-memory`,`capacity-only`]),deviceNames:P(k())}),F({sizeBytes:j().int().positive().max(10*1024**4)}),F({known:M(),ok:M(),freeBytes:j().nonnegative(),requiredBytes:j().positive(),storageLocation:B(`Gezel model storage`)}),F({version:k(),sampledAt:k(),runtime:F({nodeVersion:k(),platform:k(),arch:k(),osRelease:k(),platformKey:k().nullable()}),hardware:F({totalRamBytes:j().nonnegative(),gpuVramBytes:j().nonnegative().nullable(),gpuMemoryKind:z([`discrete`,`integrated`,`unified`,`none`,`unknown`]).optional(),usableBytes:j().nonnegative(),budgetBytes:j().nonnegative().optional(),source:z([`darwin-unified`,`gpu-nvidia`,`gpu-vulkan`,`gpu-integrated`,`system-ram-fallback`]),gpuVendor:z([`amd`,`nvidia`,`intel`]).optional(),description:k(),tier:z([`tiny`,`small`,`medium`,`large`]),gpuDevices:P(F({name:k(),totalMiB:j().nonnegative(),computeCapability:k().optional(),driverVersion:k().optional()}))}),engine:F({nativeRelease:k(),nativePinned:M(),installedEngines:P(bg),llamaCppBackend:z([`cuda`,`vulkan`,`metal`,`cpu`]).optional(),llamaCppDetectedBackend:z([`cuda`,`vulkan`,`metal`,`cpu`]).optional(),llamaCppBackendOverride:z([`auto`,`cuda`,`vulkan`,`metal`,`cpu`]).optional(),llamaCppRevision:k().optional(),llamaCppBuildBackend:k().optional(),cudaArchitectures:P(k()).optional(),cudaToolkit:k().optional()}),models:F({defaultProvider:X,defaultModel:k().optional(),installed:P(F({id:k(),provider:z([`llama-cpp`,`mlx`,`ds4`]),parameterSize:k().optional()}))}),localEngines:P(F({provider:z([`llama-cpp`,`mlx`,`ds4`]),model:k().optional(),pid:j().optional(),startedAt:k().optional(),contextPerSlot:j().optional(),contextTotal:j().optional(),slots:j().optional(),kvCacheType:k().optional(),backend:k().optional()})).optional()}),F({home:k(),scope:z([`machine`,`user`]),version:k(),startedAt:k(),firstRunCompleted:M(),usage:F({gezelCount:j().int().nonnegative(),projectCount:j().int().nonnegative(),sessionCount:j().int().nonnegative(),everUsed:M()}),provider:X.optional(),defaultModel:k().optional(),memory:F({totalBytes:j().nonnegative(),freeBytes:j().nonnegative()}),engines:P(F({key:k(),residentBytes:j().nonnegative()}))});var Mg=F({kind:z([`pat`,`oauth`]),login:k().optional(),name:k().optional(),avatarUrl:k().optional(),scopes:P(k()).optional(),acquiredAt:k().optional()}),Ng=F({documents:k().min(1).optional(),gezels:k().min(1).optional(),projects:k().min(1).optional()}),Pg=F({level:z([`super-lockdown`,`lockdown`,`free`,`custom`]),allowFileEdits:M(),allowExternalChat:M(),allowExternalServices:M(),allowScriptExecution:M(),allowAppNetwork:M()}),Fg=F({mode:z([`off`,`observe`,`guard`]).optional(),maxStartTemperatureC:j().min(40).max(110).optional(),resumeTemperatureC:j().min(35).max(105).optional(),minThermalMarginC:j().min(0).max(40).optional(),pollIntervalMs:j().int().min(500).max(6e4).optional(),maxWaitMs:j().int().min(0).max(36e5).optional(),consecutiveHealthySamples:j().int().min(1).max(20).optional(),onTelemetryFailure:z([`allow`,`block`]).optional()}),Ig=F({format:z([`docx`,`pdf`,`pptx`,`md`,`html`]),themeId:k().min(1),transformStyle:k().min(1),pageSize:z([`letter`,`a4`]),htmlStyle:z([`rendered`,`plain`]),htmlBundle:z([`single`,`zip`])}),Lg=z([`adaptive`,`model-max`]);F({policy:Lg}),F({overrides:R(k(),j().int().positive())}),F({contextTokens:j().int().min(32768).max(4194304).nullable()});var Rg=F({enabled:M().default(!1),bindAddress:k().optional(),port:j().int().positive().optional(),priority:z([`equal`,`below-local`,`above-local`]).optional(),reserveLocalGb:j().nonnegative().optional(),allowModels:P(k()).optional(),limits:F({maxConcurrentPerDevice:j().int().positive().optional(),maxChatPerDevice:j().int().positive().optional(),requestsPerMinute:j().int().positive().optional()}).optional()}),zg=5*6e4,Bg=F({provider:X.optional(),hosting:z([`auto`,`machine-service`,`per-user`]).optional(),service:F({url:k(),token:k()}).optional(),localEngineIdleTimeoutMs:j().int().min(6e4).optional(),deviceSafety:Fg.optional(),roleBasedNameOnlyMode:M().optional(),showPoppetjes:M().optional(),narrateAssistantReplies:M().optional(),githubToken:k().optional(),githubAuth:Mg.optional(),oauthClients:R(k(),F({clientId:k()})).optional(),openaiApiKey:k().optional(),openaiOrganization:k().optional(),anthropicApiKey:k().optional(),googleAiApiKey:k().optional(),imageProvider:z([`sd-cpp`,`google-ai`,`openai`,`mock`]).optional(),defaultImageModel:F({"google-ai":k().optional(),openai:k().optional()}).optional(),imageGenerationConfirmation:I([B(`always-allow`),B(`ask`),F({mode:B(`snooze`),until:k()})]).optional(),gpuMemoryPolicy:z([`auto`,`coexist`,`swap`]).optional(),videoProvider:z([`diffusers`,`mock`]).optional(),defaultVideoModel:k().optional(),videoGenerationConfirmation:I([B(`always-allow`),B(`ask`),F({mode:B(`snooze`),until:k()})]).optional(),recognitionProvider:z([`llama-cpp`,`mlx`,`mock`]).optional(),defaultRecognitionModel:k().optional(),recognition:F({mode:z([`auto`,`always`,`off`]).optional(),modes:P($f).optional(),maxImagesPerTurn:j().int().min(1).max(16).optional(),timeoutMsPerImage:j().int().min(5e3).optional(),maxDigestChars:j().int().min(200).optional(),maxMegapixels:j().positive().optional()}).optional(),nativeVision:R(k(),M()).optional(),webhookBearerToken:k().optional(),webhookBasicAuth:k().optional(),braveSearchApiKey:k().optional(),tavilyApiKey:k().optional(),ollamaBaseUrl:k().optional(),autoStartOllama:M().optional(),defaultModel:F({copilot:k().optional(),openai:k().optional(),anthropic:k().optional(),"anthropic-cli":k().optional(),"codex-cli":k().optional(),ollama:k().optional(),"llama-cpp":k().optional(),mlx:k().optional(),ds4:k().optional(),remote:k().optional()}).optional(),defaultReasoningEffort:F({copilot:k().optional(),openai:k().optional(),anthropic:k().optional(),"anthropic-cli":k().optional(),"codex-cli":k().optional(),ollama:k().optional(),"llama-cpp":k().optional(),mlx:k().optional(),ds4:k().optional(),remote:k().optional()}).optional(),modelTuning:R(k(),bf).optional(),modelFitness:R(k(),N()).optional(),remoteServing:Rg.optional(),fileReviews:F({enabled:M().default(!0),disabledKinds:P(k()).optional()}).optional(),modelTuningProfile:R(k(),k()).optional(),meesterGezelId:k().optional(),klerkGezelId:k().optional(),boekwachterGezelId:k().optional(),keurmeesterGezelId:k().optional(),openaiEndpoints:F({enabled:M().optional(),servingGezelId:k().optional(),supportingBehaviors:M().optional(),emulateOllama:M().optional()}).optional(),ollamaNumCtx:j().int().positive().optional(),ollamaStreamingIdleSec:j().int().positive().optional(),ollamaPreFirstByteIdleSec:j().int().positive().optional(),ollamaTurnTimeoutMin:j().int().positive().optional(),ollamaNumPredict:j().int().positive().optional(),ollamaThink:M().optional(),llamaCppModelPath:k().optional(),llamaCppBaseUrl:k().optional(),llamaCppNumCtx:j().int().positive().optional(),llamaCppContextSizing:Lg.optional(),modelContextOverrides:R(k(),j().int().positive()).optional(),ds4BaseUrl:k().optional(),ds4ModelPath:k().optional(),ds4NumCtx:j().int().positive().optional(),ds4SsdStreaming:M().optional(),ds4CacheExpertsGb:j().positive().optional(),llamaCppStreamingIdleSec:j().int().positive().optional(),llamaCppPreFirstByteIdleSec:j().int().positive().optional(),llamaCppBackendOverride:z([`auto`,`cuda`,`vulkan`,`metal`,`cpu`]).optional(),autoDownloadEngines:M().optional(),engineSignaturePolicy:z([`off`,`prefer`,`require`]).optional(),llamaCppKvCacheType:z([`f16`,`q8_0`,`q4_0`]).optional(),llamaCppMlock:M().optional(),llamaCppFlashAttn:I([M(),z([`on`,`off`,`auto`])]).optional(),llamaCppNGpuLayers:j().int().min(-1).optional(),llamaCppCpuMoe:M().optional(),llamaCppNCpuMoe:j().int().min(0).optional(),llamaCppCacheReuse:j().int().min(0).optional(),llamaCppSwaFull:M().optional(),llamaCppThreads:j().int().positive().optional(),llamaCppBatchSize:j().int().positive().optional(),llamaCppSpecType:z([`none`,`draft-mtp`,`draft-eagle3`,`draft-dflash`,`draft-simple`,`ngram-mod`,`ngram-simple`,`ngram-map-k`,`ngram-map-k4v`,`ngram-cache`]).optional(),llamaCppDraftModelPath:k().optional(),llamaCppSpecDraftNMax:j().int().positive().optional(),llamaCppExtraArgs:R(k(),I([k(),j(),M()])).optional(),llamaCppUbatchSize:j().int().positive().optional(),mlxBaseUrl:k().optional(),mlxModelPath:k().optional(),mlxNumCtx:j().int().positive().optional(),mlxPackageSpec:k().optional(),mlxKvBits:j().int().min(0).max(8).optional(),mlxPrefillStepSize:j().int().positive().optional(),localEngineMemoryGb:j().positive().nullable().optional(),allowRamSpillover:M().nullable().optional(),localEngineReplicas:R(k(),j().int().min(0)).optional(),localEngineReplicasMax:j().int().positive().optional(),pythonRuntime:F({source:z([`system-uv`,`system-python`,`bundled-uv`]),installerPath:k().optional(),uvVersion:k().optional(),pythonVersion:k().optional(),resolvedAt:k().optional()}).optional(),firstRunCompleted:M().optional(),securityPolicy:Pg.optional(),firstRunInstallError:k().optional(),copilotTurnTimeoutMin:j().int().positive().optional(),providerConcurrency:F({copilot:j().int().min(1).optional(),openai:j().int().min(1).optional(),anthropic:j().int().min(1).optional(),"anthropic-cli":j().int().min(1).optional(),"codex-cli":j().int().min(1).optional(),ollama:j().int().min(1).optional(),"llama-cpp":j().int().min(1).optional(),mlx:j().int().min(1).optional(),ds4:j().int().min(1).optional()}).optional(),cacheBudgetMb:F({mlx:j().int().min(64).optional(),"llama-cpp":j().int().min(64).optional()}).optional(),mlxDiskCacheBudgetMb:j().int().min(0).optional(),llamaCppDiskCacheBudgetMb:j().int().min(0).optional(),layeredPrefixCache:F({enabled:M().optional()}).optional(),batchedInference:F({enabled:M().optional()}).optional(),providerQueue:F({affinity:M().optional()}).optional(),taskRunner:F({tickIntervalMs:j().int().min(500).optional()}).optional(),taskBudget:F({enabled:M().optional(),softNudge:M().optional(),hardPause:M().optional(),scale:j().positive().optional(),limits:R(z([`tiny`,`small`,`medium`,`large`,`cloud`]),F({softTurns:j().int().positive().optional(),hardTurns:j().int().positive().optional(),softOutputTokens:j().int().positive().optional(),hardOutputTokens:j().int().positive().optional()}).partial()).optional()}).optional(),stuckStep:F({enabled:M().optional(),stallMs:j().int().positive().optional(),maxRedrives:j().int().positive().optional()}).optional(),autoRecall:F({enabled:M().optional(),topK:j().int().positive().optional(),minScore:j().optional()}).optional(),summarization:F({enabled:M().optional(),provider:X.optional(),model:k().optional(),minUserTurns:j().int().positive().optional(),idleHours:j().positive().optional()}).optional(),memory:F({maintenance:F({enabled:M().optional(),olderThanDays:j().int().min(2).optional(),minEntries:j().int().positive().optional()}).optional(),lessons:F({enabled:M().optional(),maxChars:j().int().positive().optional(),lookbackDays:j().int().positive().optional()}).optional()}).optional(),searchIndex:F({enabled:M().optional(),sessions:M().optional(),history:M().optional(),documents:M().optional()}).optional(),digest:F({enabled:M().optional()}).optional(),gildeUpdates:F({enabled:M().optional()}).optional(),meesterStatus:F({enabled:M().optional(),maxRunsPerDay:j().int().min(1).max(24).optional(),changeWindowHours:j().positive().optional()}).optional(),growth:F({enabled:M().optional()}).optional(),keurmeester:F({enabled:M().optional(),providerName:k().optional(),model:k().optional(),allowTakeover:M().optional(),maxConsultsPerSession:j().int().positive().optional(),maxConsultsPerTask:j().int().positive().optional(),cooldownMs:j().int().positive().optional()}).optional(),projectNudge:F({enabled:M().optional(),rapidIntervalMs:j().int().positive().optional(),slowIntervalMs:j().int().positive().optional(),recentActivityWindowMs:j().int().positive().optional(),rapidAttemptsBeforeBackoff:j().int().positive().optional(),firstNudgeGraceMs:j().int().nonnegative().optional()}).optional(),debugMode:M().optional(),showAdvancedFeatures:M().optional(),showWorkInProgressFeatures:M().optional(),resetTemplatesOnStartup:M().optional(),aiEngagementMode:z([`proactive`,`scheduled`,`reactive`,`off`]).optional(),showSystemTray:M().optional(),autoUpdateChecks:M().optional(),quitOnClose:M().optional(),themePref:z([`system`,`light`,`dark`]).optional(),cliShowThinking:M().optional(),cliShowWrites:M().optional(),documentExportOptions:Ig.optional(),sidebarSide:z([`left`,`right`]).optional(),homeGreetingCollapsed:M().optional(),workshopTempo:z([`gezellig`,`bedrijvig`,`druk`,`dolle-boel`]).optional(),nightShift:F({enabled:M().optional(),window:F({startHour:j().int().min(0).max(23),endHour:j().int().min(0).max(23)}).optional(),keepAwakeWhileRunning:M().optional(),wakeOnStart:M().optional(),modelOverride:F({enabled:M().optional(),provider:X.optional(),model:k().optional()}).optional()}).optional(),toolFilterMode:z([`always`,`never`,`small-model`]).optional(),channels:yg.optional(),sandboxCopilot:M().optional(),anthropicCli:F({binaryPath:k().optional(),manageRuntimeFiles:M().optional(),defaultPermissionMode:zd.optional(),extraModels:P(F({id:k(),name:k()})).optional(),poolSize:j().int().min(1).max(32).optional(),workerIdleSec:j().int().min(60).max(3600).optional()}).optional(),codexCli:F({binaryPath:k().optional(),manageRuntimeFiles:M().optional(),defaultPermissionMode:Vd.optional(),defaultReasoningEffort:z([`minimal`,`low`,`medium`,`high`,`xhigh`,`max`,`ultra`]).optional(),extraModels:P(F({id:k(),name:k()})).optional(),extraConfigOverrides:R(k(),k()).optional()}).optional(),executionDensity:z([`auto`,`flat`,`scaffold`]).optional(),playwrightHeadless:M().optional(),fetchUrl:F({allow:P(k()).optional(),deny:P(k()).optional()}).optional(),webSearch:F({provider:z([`brave`,`wikipedia`,`tavily`,`mock`]).optional(),fallbackProvider:z([`brave`,`wikipedia`,`tavily`]).optional(),defaultLimit:j().int().min(1).max(20).optional(),allow:P(k()).optional(),deny:P(k()).optional()}).optional(),projectMru:P(F({id:k(),at:j()})).optional(),recentTabs:P(L(`kind`,[F({kind:B(`project`),id:k(),at:j(),order:j()}),F({kind:B(`gezel`),id:k(),at:j(),order:j()}),F({kind:B(`document`),path:k(),at:j(),order:j()}),F({kind:B(`task`),ref:k(),at:j(),order:j()}),F({kind:B(`area`),area:z([`projects`,`gezels`,`documents`,`tasks`,`scripts`,`history`,`settings`,`benchmarks`]),at:j(),order:j()})])).optional(),externalFolders:Ng.optional()}),Vg=z([`projects`,`gezels`,`documents`,`tasks`,`craftbooks`,`scripts`,`history`,`settings`,`benchmarks`,`handboek`]);L(`kind`,[F({kind:B(`project`),id:k(),at:j(),order:j(),pinned:M().optional()}),F({kind:B(`gezel`),id:k(),at:j(),order:j(),pinned:M().optional()}),F({kind:B(`document`),path:k(),at:j(),order:j(),pinned:M().optional()}),F({kind:B(`task`),ref:k(),at:j(),order:j(),pinned:M().optional()}),F({kind:B(`area`),area:Vg,at:j(),order:j(),pinned:M().optional()}),F({kind:B(`script`),projectId:k(),name:k(),scope:z([`standard`,`user`]).optional(),at:j(),order:j(),pinned:M().optional()}),F({kind:B(`craftbook`),id:k(),source:z([`bundled`,`local`,`project`]).optional(),at:j(),order:j(),pinned:M().optional()}),F({kind:B(`craftbook-script`),craftbookId:k(),name:k(),at:j(),order:j(),pinned:M().optional()})]),Bg.extend({ollamaThink:M().nullable().optional(),firstRunInstallError:k().nullable().optional(),service:F({url:k(),token:k()}).nullable().optional(),llamaCppBaseUrl:k().nullable().optional(),llamaCppModelPath:k().nullable().optional(),llamaCppBackendOverride:z([`auto`,`cuda`,`vulkan`,`metal`,`cpu`]).nullable().optional(),llamaCppKvCacheType:z([`f16`,`q8_0`,`q4_0`]).nullable().optional(),llamaCppFlashAttn:I([M(),z([`on`,`off`,`auto`])]).nullable().optional(),llamaCppSpecType:z([`none`,`draft-mtp`,`draft-eagle3`,`draft-dflash`,`draft-simple`,`ngram-mod`,`ngram-simple`,`ngram-map-k`,`ngram-map-k4v`,`ngram-cache`]).nullable().optional(),llamaCppCpuMoe:M().nullable().optional(),llamaCppSwaFull:M().nullable().optional(),mlxBaseUrl:k().nullable().optional(),mlxModelPath:k().nullable().optional(),mlxPackageSpec:k().nullable().optional(),mlxKvBits:j().int().min(0).max(8).nullable().optional(),externalFolders:F({documents:k().min(1).nullable().optional(),gezels:k().min(1).nullable().optional(),projects:k().min(1).nullable().optional()}).nullable().optional()}),F({gezels:P(up)}),F({name:k().min(1),description:k().optional(),role:k().optional(),gender:ap.optional(),model:k().optional(),about:k().optional()}),F({state:sf,nextLevelXp:j().int(),activeTraits:P(cp),driftedTraitIds:P(k())}),F({proposalId:k().min(1)}),F({proposalId:k().min(1).optional()}),F({source:k()}),F({source:k()}),F({name:k().min(1)}),F({defaults:R(k(),N()).nullable()}),F({provider:X.nullable().optional(),model:k().nullable().optional(),reasoningEffort:k().nullable().optional(),numCtx:j().int().positive().nullable().optional(),autoRecall:M().nullable().optional(),font:k().nullable().optional(),sandboxCopilot:M().nullable().optional(),claudePermissionMode:zd.nullable().optional(),codexPermissionMode:Vd.nullable().optional(),tuning:bf.nullable().optional(),tuningProfile:qd.nullable().optional(),iconOverride:M().nullable().optional(),recognition:z([`auto`,`always`,`off`]).nullable().optional()}),F({instruction:k().optional()}),F({role:k().optional()}),F({provider:X,models:P(F({id:k(),name:k(),supportsReasoning:M().optional(),reasoningEfforts:P(k()).optional(),defaultReasoningEffort:k().optional(),contextWindow:j().optional(),supportsTools:M().optional(),parameterSize:k().optional()}))}),F({svg:k()});var Hg=F({timestamp:k(),svg:k()});F({current:k().nullable(),history:P(Hg)}),F({timestamp:k()}),F({poppetje:Rd}),F({seed:j().int().optional()});var Ug=z([`about`,`chat-composer`,`task-description`,`generic`]);F({text:k(),context:Ug.optional(),instruction:k().optional(),isSelection:M().optional(),subject:k().optional(),parentContext:k().optional()}),F({text:k()}),F({mode:z([`rewrite`,`insert`]).default(`rewrite`),text:k().default(``),instruction:k().optional(),context:Ug.optional(),subject:k().optional(),parentContext:k().optional(),textBefore:k().optional(),textAfter:k().optional()}),L(`type`,[F({type:B(`status`),phase:z([`queued`,`started`]),detail:k().optional()}),F({type:B(`thinking-delta`),text:k()}),F({type:B(`output-delta`),text:k()}),F({type:B(`done`),text:k()}),F({type:B(`error`),error:k()})]),F({path:k().min(1),content:k()});var Wg=k().trim().min(1).max(1024).refine(e=>{let t=e.replace(/\\/g,`/`);return!t.startsWith(`/`)&&!/^[A-Za-z]:\//.test(t)&&t.split(`/`).every(e=>e!==`..`)},{message:`must be a relative path without .. segments`}),Gg=L(`kind`,[F({kind:B(`documents`)}),F({kind:B(`project-artifacts`),projectId:k().trim().min(1)})]);F({markdown:k().max(5e6),selectedFile:Wg,format:z([`mp4`,`gif`]),source:Gg}),F({path:k().min(1)}),F({fromPath:k().trim().min(1),toPath:k().trim().min(1)}),F({gezelId:k(),messages:P(hp)}),F({message:k().min(1),projectId:k().optional(),expectedDeliverable:Vh.optional()}),F({accepted:B(!0),gezelId:k()}),F({fromGezelId:k().min(1),fromSessionId:k().optional(),projectId:k().optional(),text:k().min(1),suppressReply:M().optional(),expectedDeliverable:Vh.optional()}),F({accepted:B(!0),sessionId:k(),toGezelId:k(),toGezelName:k(),deduplicated:M().optional()}),F({jobTitle:k().min(1),preferredName:k().optional()}),F({gezelId:k(),name:k(),role:k(),action:z([`reused`,`created-from-gilde`,`created-bespoke`]),matchScore:j().optional(),templateId:k().optional(),alternatives:P(k()).optional()}),F({candidates:P(F({id:k(),label:k(),description:k().optional(),roleBasedName:k().optional(),group:z([`voorman`,`assignees`,`team`]).optional()}))}),F({projects:P(F({projectId:k(),projectName:k(),precedence:z([`voorman`,`assignment`,`session`,`fallback`]),lastActivityAt:k().optional()}))}),F({projectId:k(),gezelId:k(),sessionId:k(),prompt:k().min(1),choices:P(k()).max(20).optional(),allowWriteIn:M().optional(),multiSelect:M().optional(),taskRef:_m.optional(),documentPath:k().optional()}),F({questionId:k(),deduped:M().optional()}),F({projectId:k(),gezelId:k(),sessionId:k(),toolName:k().min(1),toolInput:R(k(),N())}),L(`behavior`,[F({behavior:B(`allow`),updatedInput:R(k(),N())}),F({behavior:B(`deny`),message:k()})]),F({fromGezelId:k().min(1),fromSessionId:k().min(1),toGezelIdOrName:k().min(1),projectId:k().optional(),question:k().min(1),timeoutMs:j().int().positive().optional(),taskRef:k().optional(),stepId:k().optional(),expectedDeliverable:Vh.optional()}),L(`outcome`,[F({outcome:B(`reply`),text:k(),toGezelId:k(),toGezelName:k(),sessionId:k()}),F({outcome:B(`error`),reason:z([`cycle`,`depth`,`self`,`not-found`,`engagement-off`,`timeout`,`target-error`,`target-deleted`,`delivery-failed`]),message:k()})]),F({selectedChoices:P(j().int().min(0)).optional(),writeIn:k().optional(),declined:M().optional(),silentSkip:M().optional(),npmInstallDecisions:P(Ff).optional()}),F({questions:P(Xf)}),F({kind:z([`artifact`,`document`,`workspace`]),path:k().min(1).max(4096)}),F({path:k().min(1)}),L(`mode`,[F({mode:B(`text`),content:k()}),F({mode:B(`markdown`),content:k(),sidecarPath:k().min(1)}),F({mode:B(`media`),mediaKind:z([`image`,`video`,`audio`])}),F({mode:B(`binary`)})]),L(`kind`,[F({kind:B(`found`),content:k(),path:k(),fuzzy:M()}),F({kind:B(`ambiguous`),candidates:P(k())}),F({kind:B(`missing`)})]),F({lines:F({start:j().int().min(1),count:j().int().min(0)}).optional(),head:j().int().min(0).optional(),tail:j().int().min(0).optional()}),L(`kind`,[F({kind:B(`found`),content:k(),path:k(),fuzzy:M(),linesReturned:j().int().nonnegative(),totalLines:j().int().nonnegative(),bytesReturned:j().int().nonnegative(),totalBytes:j().int().nonnegative(),hasMore:M()}),F({kind:B(`ambiguous`),candidates:P(k())}),F({kind:B(`missing`)})]),F({path:k().min(1),pattern:k().min(1),caseInsensitive:M().optional(),contextLines:j().int().min(0).max(10).optional(),maxMatches:j().int().min(1).max(100).optional()}),L(`kind`,[F({kind:B(`found`),matches:P(F({lineNumber:j().int().min(1),line:k(),contextBefore:P(k()).optional(),contextAfter:P(k()).optional()})),totalMatches:j().int().nonnegative(),totalLines:j().int().nonnegative(),truncated:M(),path:k(),fuzzy:M()}),F({kind:B(`ambiguous`),candidates:P(k())}),F({kind:B(`missing`)}),F({kind:B(`invalid-pattern`),error:k()})]),F({phase:z([`idle`,`installing-toolsets`,`downloading-browser`,`ready`,`setup-incomplete`,`error`]),currentToolset:k().optional(),browserProgress:F({bytesDownloaded:j(),bytesTotal:j().nullable()}).optional(),error:k().optional(),updatedAt:k()}),F({phase:z([`idle`,`provisioning`,`ready`,`error`]),message:k().optional(),error:k().optional(),updatedAt:k()}),I([F({kind:B(`stdout`),line:k()}),F({kind:B(`stderr`),line:k()}),F({kind:B(`exit`),code:j()}),F({kind:B(`error`),message:k()})]),L(`type`,[F({type:B(`phase`),phase:z([`resolving`,`downloading`,`extracting`,`installing-deps`,`publishing`])}),F({type:B(`progress`),bytesWritten:j().nonnegative(),totalBytes:j().nonnegative()}),F({type:B(`retrying`),attempt:j().int().positive(),maxAttempts:j().int().positive(),delayMs:j().nonnegative(),reason:k()}),F({type:B(`log`),line:k()}),F({type:B(`done`),installPath:k(),version:k()}),F({type:B(`error`),error:k()})]),F({toolsetId:k(),version:k(),startedAt:k(),phase:z([`resolving`,`downloading`,`extracting`,`installing-deps`,`publishing`]),bytesWritten:j().nonnegative(),totalBytes:j().nonnegative(),retrying:F({attempt:j().int().positive(),maxAttempts:j().int().positive(),delayMs:j().nonnegative(),reason:k()}).optional(),log:P(k()),finished:M(),error:k().optional(),installPath:k().optional()}),F({available:M(),source:z([`env`,`managed`,`path`]).nullable(),managed:z([`current`,`outdated`,`absent`,`damaged`]),damagedReason:k().optional(),installedVersion:k().optional(),pinnedVersion:k(),installDir:k().optional(),cliPath:k().optional(),updateAvailable:M()}),F({projects:P(Ap.extend({architecture:k().optional()}))});var Kg=F({name:k().min(1),description:k().optional(),workingDir:k().min(1).optional(),about:k().optional().describe(`A few paragraphs about who this project is for, what's in scope, what's explicitly out of scope. First thing any gezel reads when they join the project.`),missionObjectives:k().optional().describe(`Concrete success criteria — usually a bullet list. What does "done" look like?`),mode:z([`crew`,`solo`]).optional(),indexingEnabled:M().optional(),github:F({url:k().url()}).optional()});F({name:k().min(1).optional(),description:k().optional(),workingDir:k().nullable().optional(),voormanGezelId:k().nullable().optional(),about:k().optional(),missionObjectives:k().optional(),github:I([Na(),F({url:k().url().optional(),branch:k().optional()})]).optional(),managedWorkspaceWritePolicy:Op.optional(),allowGezelWrites:M().optional(),codexPermissionMode:Bd.optional(),claudePermissionMode:zd.optional(),nudgeConfig:Tp.optional(),tabVisibility:Dp.optional(),indexingEnabled:M().optional(),status:z([`active`,`readonly`,`inactive`,`stable`]).optional(),archived:M().optional(),workspaceScriptTimeoutMs:j().int().min(3e4).max(30*6e4).optional(),grantedCredentials:P(k()).optional(),credentialAllowedOrigins:R(k(),P(Sp)).optional(),projectTypeId:k().nullable().optional(),properties:R(k(),k()).optional()});var qg=F({typeId:k().min(1),version:k().optional(),params:R(k(),N()).optional()}),Jg=F({ref:k(),craftbook:k(),cron:k(),consent:z([`ask`,`auto`,`disabled`]),status:z([`active`,`paused`]),created:M()}),Yg=F({typeId:k(),version:k(),source:k(),gezelsCreated:P(F({id:k(),name:k(),templateId:k(),voorman:M()})),scriptsInstalled:P(k()),workspaceSeeded:P(k()),toolsetsInstalled:P(k()),toolsBound:P(k()),craftbooksInstalled:P(k()),schedulesCreated:P(Jg),aboutRendered:M(),missionRendered:M(),deferred:F({toolsets:P(k()),craftbooks:P(k()),pages:M(),schedules:j()})});Kg.pick({name:!0,description:!0,mode:!0}).extend({projectType:qg}),F({project:Np,applied:Yg}),F({name:Mf,version:Nf.optional()}).strict(),F({packages:P(Pf).min(1).max(50).optional(),package:Mf.optional(),version:Nf.optional(),gezelId:k().optional(),sessionId:k().optional()}).strict().superRefine((e,t)=>{let n=e.packages!==void 0,r=e.package!==void 0;n===r&&t.addIssue({code:`custom`,message:`provide exactly one of packages or package`}),!r&&e.version!==void 0&&t.addIssue({code:`custom`,path:[`version`],message:`version requires the singular package field`})}),F({project:Np,log:k()}),F({scripts:R(k(),k()),packageManager:k().optional()}),F({ok:M(),code:j(),stdout:k(),stderr:k(),stdoutTruncated:M(),stderrTruncated:M(),timedOut:M(),error:k().optional(),approvalPending:M().optional(),questionId:k().optional(),declined:k().optional(),resolvedBinPath:k().optional()}),F({script:k().min(1),args:P(k()).optional(),timeoutMs:j().int().positive().optional(),gezelId:k().optional(),sessionId:k().optional()}),F({bin:k().min(1),args:P(k()).optional(),timeoutMs:j().int().positive().optional(),gezelId:k().optional(),sessionId:k().optional()}),F({npmApproved:P(F({package:k(),version:k(),at:k(),approvedBy:z([`user`,`shipped`])})),npmDeclined:P(F({package:k(),version:k(),at:k()})),scriptApprovals:R(k(),z([`approved`,`declined`])),npxApprovals:R(k(),z([`approved`,`declined`])),npmShipped:P(F({package:k(),allowedVersions:P(k())}))}),F({error:k(),details:N().optional()}),F({url:k().url(),method:z([`GET`,`HEAD`,`POST`,`PUT`,`PATCH`,`DELETE`]).optional(),headers:R(k(),k()).optional(),body:k().optional(),timeoutMs:j().int().positive().max(12e4).optional(),maxBytes:j().int().positive().max(50*1024*1024).optional()}),F({status:j().int(),statusText:k(),headers:R(k(),k()),body:k().optional(),bodyBase64:k().optional(),mimeType:k().optional(),truncated:M()}),F({query:k().min(1).max(400),limit:j().int().min(1).max(20).optional(),freshness:z([`day`,`week`,`month`,`year`]).optional(),country:k().length(2).optional(),language:k().min(2).max(8).optional()});var Xg=F({title:k(),url:k(),snippet:k(),domain:k(),publishedAt:k().optional(),source:z([`brave`,`wikipedia`,`tavily`,`mock`])});F({query:k().min(1).max(400),limit:j().int().min(1).max(20).optional(),language:k().min(2).max(8).optional()}),F({results:P(Xg),source:z([`brave`,`wikipedia`,`tavily`,`mock`]),query:k(),durationMs:j().int().nonnegative()}),F({files:P(F({path:k().min(1).max(4096),startLine:j().int().min(1).max(1e7).optional(),endLine:j().int().min(1).max(1e7).optional()}).superRefine((e,t)=>{let n=e.startLine??1;e.endLine!==void 0&&e.endLine<n&&t.addIssue({code:V.custom,path:[`endLine`],message:`endLine must be greater than or equal to startLine`}),e.endLine!==void 0&&e.endLine-n+1>400&&t.addIssue({code:V.custom,path:[`endLine`],message:`a read range may contain at most 400 lines`})})).min(1).max(8)}),F({results:P(L(`status`,[F({status:B(`ok`),path:k(),content:k(),startLine:j().int().positive(),endLine:j().int().nonnegative(),linesReturned:j().int().nonnegative(),bytesReturned:j().int().nonnegative(),scannedBytes:j().int().nonnegative(),totalLines:j().int().nonnegative().optional(),totalBytes:j().int().nonnegative(),eof:M(),completeFile:M(),hasMore:M(),nextStartLine:j().int().positive().optional(),truncated:M(),truncationReason:z([`line-limit`,`output-limit`]).optional()}),F({status:B(`error`),path:k(),code:z([`path-not-found`,`path-safety`,`not-file`,`binary-file`,`unsupported-encoding`,`range-out-of-bounds`,`line-too-long`,`scan-limit`,`deadline`,`read-failed`,`aggregate-limit`]),error:k(),scannedBytes:j().int().nonnegative().optional()})])),truncated:M(),totalBytesReturned:j().int().nonnegative(),totalScannedBytes:j().int().nonnegative()}),F({pattern:k().min(1).max(4e3),path:k().max(4096).optional(),glob:k().min(1).max(512).optional(),includeGlobs:P(k().min(1).max(512)).max(32).optional(),excludeGlobs:P(k().min(1).max(512)).max(32).optional(),caseInsensitive:M().optional(),literal:M().optional(),contextLines:j().int().min(0).max(5).optional(),resultMode:z([`matches`,`files`,`count`]).optional(),cursor:j().int().min(0).max(1e4).optional(),maxResults:j().int().positive().max(200).optional(),timeoutMs:j().int().min(100).max(3e4).optional()});var Zg=F({line:j().int().positive(),text:k()}),Qg=F({path:k(),line:j().int().positive(),text:k(),before:P(Zg).optional(),after:P(Zg).optional()});F({mode:z([`matches`,`files`,`count`]).default(`matches`),matches:P(Qg),files:P(k()).default([]),count:j().int().nonnegative().default(0),truncated:M(),truncationReason:z([`limit`,`output`]).optional(),nextCursor:j().int().nonnegative().optional(),engine:z([`ripgrep`,`javascript`])}),F({glob:k().min(1),path:k().optional(),caseInsensitive:M().optional(),maxResults:j().int().positive().max(5e3).optional()}),F({files:P(k()),truncated:M()});var $g=F({x:j(),y:j(),w:j(),h:j()}),e_=F({id:k(),parentId:k().nullable(),rect:$g,label:k(),depth:j().int().nonnegative(),fileCount:j().int().nonnegative(),weight:j().nonnegative(),color:k().optional(),labelPlate:$g.optional(),displayLabel:k().optional()}),t_=F({findings:j().int().nonnegative(),maxSeverity:z([`critical`,`high`,`medium`,`low`,`info`]).nullable(),fanIn:j().int().nonnegative(),fanOut:j().int().nonnegative(),vibe:z([`lush`,`tidy`,`plain`,`scruffy`,`blighted`]),zone:z([`residential`,`commercial`,`civic`,`industrial`]),importance:j().min(0).max(1).optional(),churn:j().int().nonnegative().optional()}),n_=z([`hamlet`,`village`,`town`,`city`]),r_=F({id:k(),districtId:k(),rect:$g,label:k(),weight:j().nonnegative(),kind:k().nullable().optional(),lang:k().nullable().optional(),state:z([`live`,`new`,`tombstoned`]),buildingCount:j().int().nonnegative(),phantom:M().optional(),placedAt:k().nullable().optional(),lot:$g.optional(),health:t_.optional(),levels:j().int().min(1).max(5).optional(),landmark:M().optional(),lastTouchedAt:k().optional(),urbanity:j().min(0).max(1).optional(),settlement:n_.optional()}),i_=F({id:k(),blockId:k(),rect:$g,height:j().nonnegative(),lines:j().int().positive().optional(),lineStart:j().int().positive().optional(),lineEnd:j().int().positive().optional(),label:k(),kind:k()}),a_=F({id:k(),rect:$g,tier:j().int().min(0).max(3),districtId:k().nullable()}),o_=F({id:k(),districtId:k().nullable(),rect:$g,kind:z([`plaza`,`green`]),blockId:k().optional()}),s_=F({a:k(),b:k(),affinity:j(),source:z([`import`,`embedding`,`mixed`]),bidirectional:M()}),c_=F({blockId:k(),change:z([`added`,`modified`,`deleted`,`renamed`]),additions:j().int().nonnegative(),deletions:j().int().nonnegative(),fromPath:k().optional()}),l_=F({prNumber:j().int().optional(),title:k().optional(),changedBlocks:P(c_)}),u_=F({center:F({x:j(),y:j()}),radius:j().positive(),ceiling:j().min(0).max(1),peak:j().min(0).max(1),median:j().min(0).max(1),settlement:n_,fileCount:j().int().nonnegative()}),d_=z([`core`,`tests`,`all`]);F({domain:z([`code`,`docs`,`data`]).optional(),scope:d_.optional(),pr:j().int().positive().optional()}),F({domain:k(),root:k(),bounds:$g,builtAt:k(),indexed:M(),districts:P(e_),blocks:P(r_),buildings:P(i_),roads:P(s_),streets:P(a_).optional(),plazas:P(o_).optional(),overlay:l_.optional(),urbanity:u_.optional(),signals:F({gitAvailable:M(),churnWindowDays:j().int().positive()}).optional()}),F({query:k().min(1),maxResults:j().int().positive().max(100).optional()}),F({results:P(F({sourcePath:k(),markdownPath:k(),lineStart:j().int().positive(),snippet:k()})),engine:z([`fts`,`unavailable`]),truncated:M()}),F({path:k().min(1)}),F({found:M(),sourcePath:k().optional(),markdownPath:k().optional(),markdown:k().optional(),truncated:M()}),F({query:k().min(1),mode:z([`auto`,`semantic`,`keyword`]).optional(),maxResults:j().int().positive().max(100).optional()}),F({results:P(F({path:k(),lineStart:j().int().positive(),lineEnd:j().int().positive(),kind:k(),name:k().optional(),snippet:k(),score:j(),source:z([`vector`,`fts`])})),engine:z([`hybrid`,`semantic`,`fts`,`unavailable`]),truncated:M()});var f_=z([`critical`,`high`,`medium`,`low`,`info`]),p_=z([`builtin`,`semgrep`,`osv`,`gitleaks`]),m_=z([`open`,`in_progress`,`resolved`]),h_=F({fingerprint:k().min(1),path:k(),line:j().int().positive().nullable(),ruleId:k(),category:k(),severity:f_,source:p_,title:k(),evidence:k().optional(),status:m_,taskRef:_m.optional()}),g_=F({total:j().int().nonnegative(),bySeverity:R(k(),j().int().nonnegative()),byCategory:R(k(),j().int().nonnegative()),bySource:R(k(),j().int().nonnegative())});F({useExternalTools:M().optional()}),F({ran:M(),engines:P(k()),toolsAvailable:F({semgrep:M(),osvScanner:M(),gitleaks:M(),npm:M()}),findingCounts:g_,dependencies:j().int().nonnegative(),advisories:j().int().nonnegative()}),F({severity:f_.optional(),category:k().optional(),path:k().optional(),source:p_.optional(),maxResults:j().int().positive().max(1e3).optional()}),F({findings:P(h_),counts:g_,truncated:M(),indexed:M()}),F({fingerprint:k().min(1)}),F({resolved:M()}),F({fingerprint:k().min(1)}),F({finding:h_,taskRef:_m,gezelId:k(),gezelName:k(),enqueued:M()}),F({entryPoints:P(k()),routes:P(k()),authBoundaries:P(k()),secretTouchpoints:P(k()),taintSources:P(F({path:k(),count:j().int().positive()}))}).extend({root:k(),indexed:M()}),F({dependencies:P(F({name:k(),ecosystem:k(),version:k().nullable(),direct:M(),advisoryIds:P(k()),maxSeverity:f_.nullable(),license:k().nullable()})),total:j().int().nonnegative(),withAdvisories:j().int().nonnegative(),scanned:M()}),F({indexed:M(),scanned:M(),findings:g_,attackSurface:F({entryPoints:j().int().nonnegative(),routes:j().int().nonnegative(),authBoundaries:j().int().nonnegative(),secretTouchpoints:j().int().nonnegative(),taintSources:j().int().nonnegative()}),dependencies:F({total:j().int().nonnegative(),withAdvisories:j().int().nonnegative()}),systemicCandidates:P(F({category:k(),fileCount:j().int().positive(),findingCount:j().int().positive(),severity:f_}))}),F({file:k().min(1),maxHops:j().int().positive().max(8).optional()}),F({file:k(),found:M(),upstream:P(k()),downstream:P(k()),taintSources:P(h_),sinks:P(h_),note:k()});var __=F({kind:z([`project`,`gezel`,`file`,`document`,`content`,`symbol`,`memory`,`session`]),id:k(),title:k(),subtitle:k().optional(),snippet:k().optional(),projectId:k().optional(),projectName:k().optional(),path:k().optional(),source:z([`workspace`,`artifacts`]).optional(),line:j().int().positive().optional(),gezelId:k().optional(),score:j()});F({query:k().min(1).max(400),mode:z([`names`,`full`]).optional(),maxResults:j().int().positive().max(100).optional()}),F({results:P(__),truncated:M()}),F({q:k().min(1).max(400),gezel:k().optional(),project:k().optional(),maxResults:j().int().positive().max(100).optional()}),F({results:P(F({sessionId:k(),gezelId:k(),projectId:k(),title:k(),snippet:k(),messageStart:j().int().positive(),lastActivityAt:k(),archived:M()})),engine:z([`fts`,`unavailable`])}),F({q:k().min(1).max(400),maxResults:j().int().positive().max(100).optional()}),F({results:P(F({path:k(),lineStart:j().int().positive(),snippet:k()})),engine:z([`fts`,`unavailable`])}),F({query:k().min(1),maxResults:j().int().positive().max(100).optional()}),F({results:P(F({path:k(),width:j().int().optional(),height:j().int().optional(),format:k().optional(),caption:k().optional(),score:j()})),engine:z([`fts`,`unavailable`]),truncated:M()}),F({path:k().min(1),maxResults:j().int().positive().max(100).optional()}),F({results:P(F({path:k(),score:j()})),engine:z([`vector`,`unavailable`]),truncated:M()}),F({path:k().optional()}),F({path:k(),imageCount:j().int().nonnegative(),formats:P(F({format:k(),count:j().int()})),dimensions:F({minWidth:j().int(),maxWidth:j().int(),minHeight:j().int(),maxHeight:j().int()}).nullable(),samples:P(k()),captioned:j().int().nonnegative()}),F({query:k().optional(),kind:k().optional(),maxResults:j().int().positive().max(200).optional()}),F({entities:P(F({id:j().int(),kind:k(),label:k(),canonical:k(),mentions:j().int().nonnegative()})),engine:z([`index`,`unavailable`])}),F({entity:k().min(1),maxResults:j().int().positive().max(500).optional()}),F({found:M(),entity:F({kind:k(),label:k()}).optional(),mentions:P(F({path:k(),line:j().int().optional(),date:k().optional()}))}),F({leftPath:k().optional(),leftText:k().optional(),rightPath:k().optional(),rightText:k().optional(),contextLines:j().int().min(0).max(20).optional()}).refine(e=>(e.leftPath||e.leftText)&&(e.rightPath||e.rightText),{message:`Provide {leftPath|leftText} and {rightPath|rightText}.`}),F({diff:k(),identical:M()}),F({path:k().min(1),artifact:M().optional()}),F({path:k(),mimeType:k(),base64:k(),bytes:j().int().nonnegative()}),F({path:k().min(1),maxEntries:j().int().positive().max(5e3).optional()});var v_=F({name:k(),size:j().int().nonnegative(),isDirectory:M()});F({format:z([`zip`,`tar`,`tar.gz`]),entries:P(v_),truncated:M()}),F({path:k().min(1),outputPath:k().min(1)}),F({format:z([`zip`,`tar`,`tar.gz`]),extractedCount:j().int().nonnegative(),destination:k()}),F({subcommand:z([`status`,`log`,`diff`,`show`,`blame`,`branch`,`rev-parse`,`ls-files`]),args:P(k()).max(32).optional(),timeoutMs:j().int().positive().max(12e4).optional()}),F({code:j().int(),stdout:k(),stderr:k(),stdoutTruncated:M(),timedOut:M()}),F({deviceCode:k(),userCode:k(),verificationUri:k(),interval:j().int().positive(),expiresIn:j().int().positive()});var y_=F({login:k(),name:k().optional(),avatarUrl:k().optional()});F({deviceCode:k()}),L(`status`,[F({status:B(`pending`)}),F({status:B(`slow_down`)}),F({status:B(`expired`)}),F({status:B(`denied`),error:k().optional()}),F({status:B(`success`),identity:y_,scopes:P(k()).optional()}),F({status:B(`not_configured`),error:k()})]),I([y_.extend({signedIn:B(!0)}),F({signedIn:B(!1)})]),F({repos:P(F({fullName:k(),url:k(),description:k().optional(),private:M().optional(),pushedAt:k().optional()}))}),F({url:k()}),F({owner:k(),repo:k(),canonicalUrl:k(),defaultBranch:k().optional(),description:k().optional(),topics:P(k()).optional(),language:k().optional(),readme:k(),readmeTruncated:M()}),F({name:k().min(1),repoUrl:k(),description:k().optional(),topics:P(k()).optional(),readme:k()}),F({about:k(),missionObjectives:k()}),F({path:k().min(1)}),F({name:k(),about:k().optional(),source:k().optional()});var b_=F({name:k(),kind:z([`npm-script`,`workspace-script`,`vscode-launch`,`bin`]),source:k(),run:k(),description:k().optional()}),x_=F({version:j().int(),scannedAt:k(),root:k(),durationMs:j().int(),fileCount:j().int(),commandCount:j().int(),shapeCount:j().int().optional()}),S_=F({name:k(),char:k().length(1).optional(),type:z([`boolean`,`option`]),description:k().optional(),required:M().optional(),default:k().optional(),options:P(k()).optional(),multiple:M().optional()}),C_=F({name:k(),description:k().optional(),required:M().optional(),default:k().optional(),options:P(k()).optional()}),w_=F({source:B(`oclif`),package:k(),packageVersion:k().optional(),summary:k().optional(),description:k().optional(),subcommands:P(F({name:k(),fullName:k(),summary:k().optional()})).optional(),flags:P(S_).optional(),args:P(C_).optional(),usage:k().optional(),examples:P(k()).optional()});F({shapes:R(k(),w_)}),F({state:z([`fresh`,`stale`,`indexing`,`never`,`disabled`]),meta:x_.optional(),aiScanPending:M().optional(),aiDrive:z([`background`,`full`]).optional(),enrichment:F({eligible:j().int().nonnegative(),summarized:j().int().nonnegative(),embedded:j().int().nonnegative(),pending:j().int().nonnegative(),skipped:j().int().nonnegative().optional(),shadowsPending:j().int().nonnegative().optional(),embedModel:k().optional(),reviews:F({eligible:j().int().nonnegative(),reviewed:j().int().nonnegative(),stale:j().int().nonnegative(),pending:j().int().nonnegative()}).optional()}).optional()}),F({maxFiles:j().int().positive().max(25).optional(),budgetMs:j().int().positive().max(6e4).optional(),areas:M().optional(),reviews:M().optional(),intensity:z([`background`,`full`]).optional()}),F({paused:M(),files:j().int().nonnegative(),summarized:j().int().nonnegative(),embedded:j().int().nonnegative(),pending:j().int().nonnegative(),areasUpdated:j().int().nonnegative(),architectureUpdated:M(),reviewed:j().int().nonnegative().optional(),reviewPending:j().int().nonnegative().optional(),drained:M(),started:M().optional(),alreadyRunning:M().optional(),mode:z([`background`,`full`]).optional()});var T_=F({ref:k(),title:k(),projectName:k(),stepName:k().optional()});F({background:P(F({id:k(),title:k(),detail:k(),projectName:k().optional()})),active:P(T_),upcoming:P(T_)});var E_=F({ref:k(),title:k(),projectId:k(),projectName:k(),completedAt:k().optional()}),D_=F({projectId:k(),projectName:k(),path:k(),title:k(),writtenAt:k().optional(),actionCounts:F({total:j(),suggested:j(),fired:j(),applied:j(),dismissed:j()})});F({windowKey:k(),windowStart:k(),windowEnd:k(),tasksCompleted:P(E_),reports:P(D_)}),F({meta:x_,commands:P(b_),shapes:R(k(),w_).optional()}),F({skills:P(F({name:k(),source:k(),origin:z([`claude`,`gstack`,`agents`,`other`]),description:k().optional(),triggers:P(k()).optional(),version:k().optional(),body:k(),generated:M().optional(),hasShellScripts:M(),files:P(F({relPath:k(),kind:z([`section`,`reference`,`template`,`script`,`bin`,`other`]),bytes:j().int().nonnegative()})).optional()}))}),F({instructions:P(F({source:k(),origin:z([`agents`,`claude`,`copilot`]),content:k(),hash:k(),mtimeMs:j()}))}),F({sessionId:k(),providerName:k(),model:k().optional(),modelTier:z([`tiny`,`small`,`medium`,`large`,`cloud`]),parameterSize:k().optional(),leaksUntaggedReasoning:M(),reasoningEffort:k().optional(),numCtx:j().optional(),systemPrompt:k(),volatileContext:k().optional(),customToolsMd:M(),registeredTools:P(k()),turnStatus:z([`idle`,`in-progress`,`queued`]),recentMessages:P(F({role:z([`user`,`assistant`,`system`,`tool`]),content:k(),reasoning:k().optional(),warnings:P(k()).optional(),synthetic:z([`compaction-summary`,`context-loop-halt`,`turn-aborted`,`growth-announcement`,`keurmeester-notice`]).optional(),attemptedToolCalls:P(F({body:k(),reason:k().optional()})).optional(),toolCalls:P(F({name:k(),argsSummary:k().optional(),success:M(),errorMessage:k().optional()})).optional()})),diagnostics:F({sessionRecordPath:k(),logsDir:k(),engineLogGlob:k().optional()}).optional(),generatedAt:k()}),F({source:k().min(1),dest:k().min(1),gezelId:k().optional(),sessionId:k().optional()}),F({ok:B(!0),source:k(),dest:k(),bytes:j().int().nonnegative()}),F({url:k().url(),dest:k().optional(),branch:k().min(1).optional(),gezelId:k().optional(),sessionId:k().optional()}),F({ok:B(!0),path:k(),files:j().int().nonnegative(),bytes:j().int().nonnegative()}),F({url:k().url(),baseRef:k().min(1),headRef:k().min(1),dest:k().optional(),diffPath:k().min(1).optional(),gezelId:k().optional(),sessionId:k().optional()}),F({ok:B(!0),path:k(),diffPath:k(),baseSha:k(),headSha:k(),files:j().int().nonnegative(),bytes:j().int().nonnegative(),diffBytes:j().int().nonnegative(),filesChanged:j().int().nonnegative()}),F({path:k().min(1),find:k().min(1),replace:k(),occurrence:I([j().int().positive(),B(`all`)]).optional(),gezelId:k().optional(),sessionId:k().optional()}),F({path:k().min(1),diff:k().min(1),gezelId:k().optional(),sessionId:k().optional()}),F({path:k().min(1),marker:k().min(1),content:k(),where:z([`before`,`after`]).optional(),gezelId:k().optional(),sessionId:k().optional()}),F({path:k().min(1),startLine:j().int().positive(),endLine:j().int().positive(),content:k(),gezelId:k().optional(),sessionId:k().optional()}),F({ok:B(!0),path:k(),diff:k(),addedLines:j().int().nonnegative(),removedLines:j().int().nonnegative(),diffTruncated:M().optional()}),F({tools:P(F({name:k(),description:k(),parameters:R(k(),N())}))}),F({args:R(k(),N()).optional()}),F({text:k(),images:P(F({base64:k(),mimeType:k()}))});var O_=z([`NW`,`N`,`NE`,`W`,`C`,`E`,`SW`,`S`,`SE`]),k_=F({path:k().min(1),region:O_,cx:j().min(0).max(1),cy:j().min(0).max(1)}),A_=F({path:k().min(1),region:O_.optional(),rect:$g.optional(),style:k().optional()}),j_=F({k:z([`block`,`street`,`plate`,`plaza`]),id:k(),p:k().nullable().optional(),h:k().nullable().optional(),r:Wa([j(),j(),j(),j()]),w:j().optional(),a:k().nullable().optional(),d:k().nullable().optional()}),M_=F({cx:j(),cy:j(),r:j().positive(),impRef:j().min(0)}),N_=F({layoutVersion:j().int().positive(),anchors:P(k_).default([]),journal:P(j_).default([]),downtown:M_.optional()});F({schemaVersion:j().int().positive().default(1),about:k().default(`Gezel Village placement memory. Committing this file keeps the village stable across machines and index rebuilds. anchors/overrides are safe to hand-edit; journal is machine-maintained. Deliberately free of provenance timestamps so an unchanged rebuild produces no diff.`),overrides:P(A_).default([]),domains:R(k(),N_).default({})});var P_=F({ok:M(),detail:k()}),F_=z([`probed`,`failed`,`deferred`,`blocked`]),I_=z([`install`,`manual`]);F({schemaVersion:B(1),provider:k(),modelId:k(),status:F_,admitted:M(),genTokensPerSec:j().nullable(),shortPromptGenTokensPerSec:j().nullable().optional(),representativeContext:F({targetPromptTokens:j().int().positive(),promptTokens:j().int().nonnegative().nullable(),cachedPromptTokens:j().int().nonnegative().nullable(),completionTokens:j().int().nonnegative().nullable(),durationMs:j().nonnegative().nullable(),ttftMs:j().nonnegative().nullable(),promptTokensPerSec:j().positive().nullable(),genTokensPerSec:j().positive().nullable()}).optional(),createdAt:k(),durationMs:j().int().nonnegative(),trigger:I_,sha256:k().optional(),catalogVersion:k().optional(),contextWindow:j().int().optional(),host:F({totalRamBytes:j(),gpuVramBytes:j().nullable(),source:k()}),checks:F({spawn:P_,toolRoundTrip:P_,throughput:P_,reasoningBudget:P_,contextFit:P_})}),F({scope:L(`kind`,[F({kind:B(`gezel`),gezelId:k()}),F({kind:B(`project`),projectId:k()}),F({kind:B(`shared`)}),F({kind:B(`system`)})]),text:k().min(1).max(2*1024*1024),sourceName:k().min(1).max(512).optional()});var L_=F({serverName:k().optional(),message:k()});F({ok:B(!0),imported:P(k()),warnings:P(L_).default([])});var R_=z([`fire-craftbook`,`create-task`,`apply-edits`]),z_={id:k().regex(/^[a-z0-9][a-z0-9_-]*$/i).optional(),title:k().min(1),reason:k().optional(),projectId:k().optional()},B_=L(`kind`,[F({kind:B(`fire-craftbook`),...z_,craftbookId:k().min(1),params:R(k(),k()).optional()}),F({kind:B(`create-task`),...z_,prompt:k().min(1),role:k().optional()}),F({kind:B(`apply-edits`),...z_,edits:P(F({path:k().min(1),diffArtifact:k().min(1)})).min(1)})]),V_=z([`suggested`,`fired`,`applied`,`failed`,`dismissed`]),H_=F({actionId:k(),reportPath:k(),kind:R_,contentHash:k(),firstSeenAt:k(),state:V_,taskRef:k().optional(),firedAt:k().optional(),settledAt:k().optional(),outcome:z([`complete`,`canceled`]).optional(),results:P(F({path:k(),ok:M(),error:k().optional()})).optional()}),U_=F({index:j().int(),message:k(),raw:k()});F({actions:P(F({action:B_,id:k(),contentHash:k(),state:V_,taskRef:k().optional(),firedAt:k().optional(),settledAt:k().optional(),outcome:z([`complete`,`canceled`]).optional(),results:P(F({path:k(),ok:M(),error:k().optional()})).optional(),contentChanged:M().optional()})),issues:P(U_),stale:P(H_)}),F({path:k().min(1),actionId:k().min(1),params:R(k(),k()).optional()}),F({record:H_,taskRef:k().optional()}),F({path:k().min(1),actionId:k().min(1)});var W_=L(`kind`,[F({kind:B(`gezel-template`),templateId:k(),gezelId:k().optional(),gezelName:k().optional(),role:k().optional()}),F({kind:B(`project-type`),typeId:k(),scheduleKey:k()})]),G_=z([`suggested`,`enabled`,`paused`,`dismissed`]);F({items:P(F({key:k(),source:W_,craftbookId:k(),craftbookName:k().optional(),description:k().optional(),reason:k().optional(),runMode:z([`night-shift`,`scheduled`]),cron:k().optional(),overlap:rm.optional(),paramSchema:R(k(),N()).optional(),params:R(k(),k()).optional(),state:G_,taskRef:k().optional(),pendingQuestionId:k().optional(),orphaned:M().optional()}))}),F({key:k(),params:R(k(),k()).optional()}),F({key:k()}),F({key:k(),dismissed:M()});var K_=z([`workspace`,`artifacts`]),q_={__gezelPage:B(1)};L(`kind`,[F({...q_,kind:B(`hello`)}),F({...q_,kind:B(`invoke`),id:k().min(1).max(64),tool:k().regex(/^[a-z][a-z0-9_]*$/),input:R(k(),N()).optional()}),F({...q_,kind:B(`read`),id:k().min(1).max(64),op:z([`read`,`list`,`stat`]),source:K_,path:k().min(1),as:z([`text`,`json`,`bytes`]).optional(),maxBytes:j().int().positive().optional()}),F({...q_,kind:B(`watch`),id:k().min(1).max(64),source:K_,path:k().min(1)}),F({...q_,kind:B(`unwatch`),id:k().min(1).max(64)}),F({...q_,kind:B(`refresh`)})]);var J_=z([`not-allowed`,`invalid-input`,`script-error`,`timeout`,`unavailable`,`rate-limited`]);L(`kind`,[F({...q_,kind:B(`init`),api:B(1),theme:F({mode:z([`light`,`dark`])}),limits:F({maxInflight:j().int().positive(),maxReadBytes:j().int().positive()})}),F({...q_,kind:B(`result`),id:k(),ok:M(),output:N().optional(),error:k().optional(),errorCode:J_.optional(),runId:k().optional(),reaction:F({delivered:M(),gezelId:k().optional(),reason:k().optional()}).optional()}),F({...q_,kind:B(`read-result`),id:k(),ok:M(),error:k().optional(),errorCode:J_.optional(),content:k().optional(),encoding:z([`utf8`,`base64`]).optional(),entries:P(F({name:k(),kind:z([`file`,`dir`]),size:j().nonnegative(),mtime:j().nonnegative()})).optional(),etag:k().optional(),size:j().nonnegative().optional(),mtime:j().nonnegative().optional()}),F({...q_,kind:B(`change`),watchId:k(),path:k(),etag:k()}),F({...q_,kind:B(`theme`),theme:F({mode:z([`light`,`dark`])})})]),F({api:B(1),projectId:k(),source:B(`type`),entry:k(),typeName:k(),params:R(k(),N()),tools:P(k())});var Y_=k().min(1).describe(`CSS color — hex (#rgb, #rgba, #rrggbb, #rrggbbaa) or the keyword "transparent".`),X_={x:j().optional(),y:j().optional(),width:j().positive().optional(),height:j().positive().optional(),opacity:j().min(0).max(1).optional()},Z_=L(`kind`,[F({kind:B(`svg`),svg:k().min(1).describe(`SVG markup. <script>/<foreignObject>/event handlers are stripped.`),rotate:j().optional().describe(`Degrees of rotation around the layer center.`),...X_}),F({kind:B(`html`),html:k().min(1).describe(`HTML fragment rendered inside a sandboxed iframe.`),...X_}),F({kind:B(`pixels`),rows:P(k()).min(1).describe("Pixel grid as a JSON array of strings; one row per string, one character per cell. Every character must appear as a key in `palette`."),palette:R(k(),Y_).describe('Map from single-character keys in `rows` to CSS colors. Mnemonic letters ("r"=red, "w"=white, "g"=green) are encouraged. Use "transparent" for empty cells.'),scale:j().int().positive().optional().describe(`Pixel size in output px. Defaults to a value that fits the canvas.`),...X_}),F({kind:B(`image`),artifactPath:k().min(1).describe(`Path to a previously-written artifact, relative to the project artifacts/ root.`),...X_}),F({kind:B(`text`),text:k().min(1),x:j(),y:j(),font:k().optional(),size:j().positive().optional(),color:Y_.optional(),weight:j().int().optional(),opacity:j().min(0).max(1).optional()})]);F({projectId:k().optional().describe(`Project to save the artifact under. Defaults to "default".`),width:j().int().positive().max(4096),height:j().int().positive().max(4096),layers:P(Z_).min(1).max(64),background:Y_.optional().describe(`Canvas background color. Defaults to transparent.`),filename:k().optional().describe(`Artifact filename (without extension) saved under artifacts/renders/. Defaults to a timestamped name.`),format:z([`png`,`jpeg`]).optional().describe(`Output format. Defaults to png.`)}),F({path:k().describe(`Project-relative path, e.g. "renders/sprite-1234.png".`),url:k().describe(`HTTP URL to the saved artifact, authed like every other artifact route.`),width:j().int().positive(),height:j().int().positive(),bytes:j().int().nonnegative(),mimeType:k(),base64:k().describe(`Base64-encoded image data, ready to feed into a vision input.`),engine:z([`playwright`,`resvg`]).describe(`Which render engine produced the image.`)});var Q_=I([F({data:k().min(1),mimeType:k().default(`image/png`)}),F({artifactPath:k().min(1)})]);F({prompt:k().min(1),negativePrompt:k().optional(),model:k().optional(),width:j().int().positive().optional(),height:j().int().positive().optional(),steps:j().int().positive().optional(),seed:j().int().optional(),inputImages:P(Q_).optional(),strength:j().min(0).max(1).optional(),projectId:k().optional(),gezelId:k().optional(),sessionId:k().optional(),inline:M().optional(),saveAs:k().optional()});var $_=F({model:k(),seed:j().int(),steps:j().int(),widthPx:j().int().positive(),heightPx:j().int().positive(),durationMs:j().int().nonnegative(),img2imgSkippedReason:k().optional()});F({artifactPath:k(),workspacePath:k().nullable(),meta:$_,b64Png:k().optional()}),F({models:P(F({id:k(),name:k(),approxSizeBytes:j().int().nonnegative(),installedAt:k(),kind:z([`local`,`cloud`]).optional(),supportsImg2Img:M().optional()})),defaultModel:k().optional()}),F({engine:F({status:z([`ok`,`unreachable`,`not-configured`]),baseUrl:k(),error:k().optional(),kind:z([`local`,`cloud`]).optional(),provider:k().optional()}),modelCount:j().int().nonnegative()}),F({pulls:P(F({id:k(),startedAt:k(),bytesWritten:j().int().nonnegative(),totalBytes:j().int().nonnegative(),retrying:F({attempt:j().int().positive(),maxAttempts:j().int().positive(),delayMs:j().int().nonnegative(),reason:k()}).optional(),finished:M(),error:k().optional()}))}),L(`type`,[F({type:B(`progress`),bytesWritten:j().int().nonnegative(),totalBytes:j().int().nonnegative().optional()}),F({type:B(`retrying`),attempt:j().int().positive(),maxAttempts:j().int().positive(),delayMs:j().int().nonnegative(),reason:k()}),F({type:B(`error`),error:k()}),F({type:B(`done`),id:k()})]);var ev=I([F({data:k().min(1),mimeType:k().default(`image/png`)}),F({artifactPath:k().min(1)})]);F({prompt:k().min(1),negativePrompt:k().optional(),model:k().optional(),width:j().int().positive().optional(),height:j().int().positive().optional(),numFrames:j().int().positive().optional(),fps:j().int().positive().optional(),steps:j().int().positive().optional(),seed:j().int().optional(),inputImage:ev.optional(),projectId:k().optional(),gezelId:k().optional(),sessionId:k().optional(),inline:M().optional(),saveAs:k().optional()});var tv=F({model:k(),seed:j().int(),steps:j().int(),widthPx:j().int().positive(),heightPx:j().int().positive(),numFrames:j().int().positive(),fps:j().int().positive(),durationMs:j().int().nonnegative(),mimeType:k()});F({artifactPath:k(),workspacePath:k().nullable(),meta:tv,b64Poster:k().optional()}),F({models:P(F({id:k(),name:k(),approxSizeBytes:j().int().nonnegative(),installedAt:k(),kind:z([`local`,`cloud`]).optional()})),defaultModel:k().optional()});var nv=z([`cuda`,`mps`,`cpu`]);F({engine:F({status:z([`ok`,`unreachable`,`not-configured`]),baseUrl:k(),error:k().optional(),kind:z([`local`,`cloud`]).optional(),provider:k().optional(),accelerator:nv.optional()}),modelCount:j().int().nonnegative()}),F({pulls:P(F({id:k(),startedAt:k(),bytesWritten:j().int().nonnegative(),totalBytes:j().int().nonnegative(),file:k().optional(),fileIndex:j().int().nonnegative().optional(),fileCount:j().int().positive().optional(),retrying:F({attempt:j().int().positive(),maxAttempts:j().int().positive(),delayMs:j().int().nonnegative(),reason:k()}).optional(),finished:M(),error:k().optional()}))}),L(`type`,[F({type:B(`progress`),fileIndex:j().int().nonnegative(),fileCount:j().int().positive(),file:k(),bytesWritten:j().int().nonnegative(),totalBytes:j().int().nonnegative(),bytesWrittenAll:j().int().nonnegative(),totalBytesAll:j().int().nonnegative()}),F({type:B(`retrying`),file:k(),attempt:j().int().positive(),maxAttempts:j().int().positive(),delayMs:j().int().nonnegative(),reason:k()}),F({type:B(`verifying`),file:k()}),F({type:B(`error`),error:k()}),F({type:B(`done`),id:k()})]),F({audio:I([F({data:k().min(1).describe(`Base64-encoded audio bytes.`),mimeType:k().default(`audio/wav`)}),F({artifactPath:k().min(1).describe("Project-relative artifact path under `audio/` or `audio/uploaded/`.")})]),model:k().optional(),language:k().optional(),projectId:k().optional()});var rv=F({start:j(),end:j(),text:k()});F({text:k(),language:k().optional(),segments:P(rv).optional(),durationMs:j().int().nonnegative()}),F({text:k().min(1),voice:k().optional(),model:k().optional(),speed:j().min(.25).max(4).optional(),projectId:k().optional(),sessionId:k().optional(),gezelId:k().optional(),inline:M().optional()});var iv=F({voice:k(),model:k(),sampleRate:j().int().positive(),durationSeconds:j().nonnegative(),durationMs:j().int().nonnegative()});F({artifactPath:k(),meta:iv,b64Wav:k().optional()}),F({models:P(F({id:k(),name:k(),approxSizeBytes:j().int().nonnegative(),installedAt:k()}))});var av=F({id:k(),name:k(),description:k(),approxSizeBytes:j().int().nonnegative(),kind:z([`stt`,`tts`]),license:k().optional(),...wm,...Tm});F({stt:P(av),tts:P(av)}),F({voices:P(F({id:k(),name:k(),language:k(),gender:z([`female`,`male`,`neutral`]).optional(),modelId:k()}))});var ov=F({status:z([`ok`,`unreachable`,`not-configured`,`no-model`]),baseUrl:k().optional(),error:k().optional(),provider:k().optional(),modelCount:j().int().nonnegative()});F({stt:ov,tts:ov}),L(`type`,[F({type:B(`progress`),bytesWritten:j().int().nonnegative(),totalBytes:j().int().nonnegative().optional()}),F({type:B(`error`),error:k()}),F({type:B(`done`),id:k()})]);var sv=z([`conceptual`,`gezel-roles`,`craftbooks`,`project-types`,`technical`,`whats-new`]);z([`app`,`site`,`agent`]);var cv=F({id:k().min(1),title:k().min(1),order:j()}),lv=F({id:k().min(1),title:k().min(1),area:sv,order:j(),summary:k().optional(),generated:M(),siteVisible:M().optional(),subcategory:cv.optional()});F({areas:P(F({area:sv,title:k(),entries:P(lv)}))});var uv=F({path:k().min(1),gezelId:k().min(1),name:k(),roleLabel:k().optional(),variant:z([`full`,`headshot`,`icon`]),poppetje:Rd}),dv=F({blockId:k(),hash:k().regex(/^[a-f0-9]{64}$/),durationMs:j().int().nonnegative(),silent:M().optional()});F({articleId:k(),voice:k(),model:k(),segments:P(dv)}),F({results:P(F({id:k().min(1),title:k().min(1),area:sv,summary:k().optional(),markdown:k(),figures:P(uv).default([]),generated:M(),defaultDuration:j().positive().optional()}))});var fv=8,pv=12,mv=8,hv=10,gv=100;function _v(e,t){return`gezel-nav:${encodeURIComponent(e)}${t?`#L${t}`:``}`}function vv(e){return`#L${e}`}function yv(e){let t=/^#L(\d+)$/.exec(e);if(t)return{kind:`line`,line:Number(t[1])};if(!e.startsWith(`gezel-nav:`))return null;let n=e.slice(10),r=n.lastIndexOf(`#L`),i=r>=0?n.slice(0,r):n,a=r>=0?n.slice(r+2):``;if(r>=0&&!/^\d+$/.test(a))return null;let o;try{o=decodeURIComponent(i)}catch{return null}return o?{kind:`file`,path:o,...r>=0?{line:Number(a)}:{}}:null}function bv(e){return e.replace(/[\\`*_[\]<>]/g,e=>`\\${e}`)}function xv(e){if(e.engine===`unavailable`||e.symbols.length===0&&!e.summary)return{sections:[]};let t=new Map;for(let n of e.symbols)t.has(n.name)||t.set(n.name,n.lineStart);let n=e.symbols.map(n=>Sv(n,e,t)),r=Cv(e);return{...r?{fileTop:r}:{},sections:n}}function Sv(e,t,n){let r=e.parent?`${e.parent}.${e.name}`:e.name,i=e.summary?Ev(e.summary,gv):e.kind,a=[];e.importedBy.length>0&&a.push(`\u2193${e.importedBy.length}${e.importedByTruncated?`+`:``} imported-by`),e.uses.length>0&&a.push(`\u2191${e.uses.length} uses`),e.usedInFileBy.length>0&&a.push(`\u25CB${e.usedInFileBy.length} in-file`),e.findings.length>0&&a.push(`\u26A0 ${e.findings.length} finding${e.findings.length===1?``:`s`}`);let o=a.length?` \xB7 ${a.join(` · `)}`:``,s=`**${bv(r)}** \u2014 ${bv(i)}${o}`,c=`${r} \u2014 ${i}${o}`,l=[];if(e.summary&&l.push(bv(e.summary)),e.signature&&l.push(kv(e.signature,Ov(t.path))),e.importedBy.length>0){let t=e.importedBy.slice(0,fv),n=t.map(e=>`- [\`${e.path}\`](${_v(e.path)})${e.viaBinding?``:` — whole-file import`}`);l.push(Tv(`Imported by (${e.importedBy.length}${e.importedByTruncated?`+`:``})`,n,e.importedBy.length-t.length,e.importedByTruncated))}if(e.uses.length>0){let t=e.uses.slice(0,pv),n=t.map(e=>e.inRepo?`- [\`${e.name}\`](${_v(e.from)}) \u2014 \`${e.from}\``:`- \`${e.name}\` \u2014 \`${e.from}\``);l.push(Tv(`Uses (${e.uses.length})`,n,e.uses.length-t.length,!1))}if(e.usedInFileBy.length>0){let t=e.usedInFileBy.slice(0,mv),r=t.map(e=>{let t=n.get(e);return t?`- [\`${e}\`](${vv(t)}) \u2014 line ${t}`:`- \`${e}\``});l.push(Tv(`Used in this file by (${e.usedInFileBy.length})`,r,e.usedInFileBy.length-t.length,!1))}return e.findings.length>0&&l.push(wv(`Findings`,e.findings)),{id:`${e.name}@${e.lineStart}`,line:e.lineStart,summaryMarkdown:s,summaryText:c,markdown:l.join(`
171
171
 
172
172
  `),defaultExpanded:!1}}function Cv(e){let t=e.path.slice(e.path.lastIndexOf(`/`)+1),n=e.summary?Ev(e.summary,gv):`${e.symbols.length} symbol${e.symbols.length===1?``:`s`}`,r=[];e.importedBy.length>0&&r.push(`\u2193${e.importedBy.length}${e.importedByTruncated?`+`:``} imported-by`),e.imports.length>0&&r.push(`\u2191${e.imports.length} imports`);let i=e.fileFindings.length+e.symbols.reduce((e,t)=>e+t.findings.length,0);i>0&&r.push(`\u26A0 ${i} finding${i===1?``:`s`}`);let a=r.length?` \xB7 ${r.join(` · `)}`:``,o=[];if(e.summary&&o.push(bv(e.summary)),e.imports.length>0){let t=e.imports.slice(0,pv),n=t.map(e=>{let t=e.names.length?` \u2014 \`${e.names.join("`, `")}\``:``;return e.resolvedPath?`- [\`${e.resolvedPath}\`](${_v(e.resolvedPath)})${t}`:`- \`${e.specifier}\`${t}`});o.push(Tv(`Imports (${e.imports.length})`,n,e.imports.length-t.length,!1))}if(e.importedBy.length>0){let t=e.importedBy.slice(0,fv),n=t.map(e=>{let t=e.names.length?` \u2014 \`${e.names.join("`, `")}\``:``;return`- [\`${e.path}\`](${_v(e.path)})${t}`});o.push(Tv(`Imported by (${e.importedBy.length}${e.importedByTruncated?`+`:``})`,n,e.importedBy.length-t.length,e.importedByTruncated))}if(e.fileFindings.length>0&&o.push(wv(`File findings`,e.fileFindings)),!(o.length===0&&r.length===0))return{id:`file`,summaryMarkdown:`\`${t}\` \u2014 ${bv(n)}${a}`,summaryText:`${t} \u2014 ${n}${a}`,markdown:o.join(`
173
173