@bendyline/gezel-service 1.0.3 → 1.0.4

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 (82) hide show
  1. package/dist/bin/gezeld.js +486 -84
  2. package/dist/handboek-content/whats-new/1.26226.md +89 -0
  3. package/dist/index.d.ts +45 -2
  4. package/dist/index.js +486 -84
  5. package/dist/memory/embed-worker.js +22 -3
  6. package/dist/ui/assets/{TerminalCodeEditor-CXspNipu.js → TerminalCodeEditor-BuMcfTS4.js} +2 -2
  7. package/dist/ui/assets/{_.contribution-Bi8h5rS7.js → _.contribution-CZO2XAKt.js} +1 -1
  8. package/dist/ui/assets/{chunk-6N2J7C2B-Du7clJkV.js → chunk-6N2J7C2B-BNHR_rFP.js} +1 -1
  9. package/dist/ui/assets/chunk-ILCJ3WFD-CUnKgI_I.js +4 -0
  10. package/dist/ui/assets/chunk-S5PCVMKU-i2wfHmvU.js +6 -0
  11. package/dist/ui/assets/{chunk-WATAOG4Y-BnCgSncI.js → chunk-WATAOG4Y-BbL-tDgQ.js} +1 -1
  12. package/dist/ui/assets/{cpp.contribution-CIgWElWw.js → cpp.contribution-BJzhk0Zj.js} +1 -1
  13. package/dist/ui/assets/{csharp.contribution-DDiJzXzB.js → csharp.contribution-BR9K2qKj.js} +1 -1
  14. package/dist/ui/assets/{css.contribution-Dc5E_mNx.js → css.contribution-CfkVmdah.js} +1 -1
  15. package/dist/ui/assets/{cssMode-BN_VZB6O.js → cssMode-MMeGUmV2.js} +1 -1
  16. package/dist/ui/assets/dist-8uH4DcHx.js +2 -0
  17. package/dist/ui/assets/{dist-D4PZf1Q3.js → dist-CFOmf7nD.js} +2 -2
  18. package/dist/ui/assets/{dockerfile.contribution-BQsaSuAJ.js → dockerfile.contribution-IZMl57B5.js} +1 -1
  19. package/dist/ui/assets/docx-BEJpkI6I.js +2 -0
  20. package/dist/ui/assets/extract-UTAOG7LV-BY3SCkzz.js +1 -0
  21. package/dist/ui/assets/{go.contribution-CPvqBST7.js → go.contribution-BxCBwhZs.js} +1 -1
  22. package/dist/ui/assets/{handlebars-DJvRMy-I.js → handlebars-CreIkams.js} +1 -1
  23. package/dist/ui/assets/handlebars.contribution-BGlyL-dm.js +2 -0
  24. package/dist/ui/assets/{html-Becff5XU.js → html-BSrz1IKi.js} +1 -1
  25. package/dist/ui/assets/html.contribution-CucOMFQ_.js +2 -0
  26. package/dist/ui/assets/{htmlMode-BFmyC6t-.js → htmlMode-DRG7XY5Z.js} +1 -1
  27. package/dist/ui/assets/{index-w_CaRVtV.js → index-Bqu-32S3.js} +177 -172
  28. package/dist/ui/assets/infer-D6e75m-s.js +2 -0
  29. package/dist/ui/assets/{ini.contribution-DFSSA0eY.js → ini.contribution-CGX5OdXM.js} +1 -1
  30. package/dist/ui/assets/{java.contribution-Bdvvskrf.js → java.contribution-CVhfJ_us.js} +1 -1
  31. package/dist/ui/assets/{javascript-DByfaclN.js → javascript-QelFp9t5.js} +1 -1
  32. package/dist/ui/assets/javascript.contribution--no0ijCu.js +2 -0
  33. package/dist/ui/assets/{jsonMode-CxkV6dJT.js → jsonMode-T4Ss3lDu.js} +1 -1
  34. package/dist/ui/assets/{kotlin.contribution-D8eqi2Fi.js → kotlin.contribution-DxFbGDYA.js} +1 -1
  35. package/dist/ui/assets/layouts-2A7QNF6Y-CWQp8HDd.js +1 -0
  36. package/dist/ui/assets/{less.contribution-DFRb86Ld.js → less.contribution-g9R8XRZf.js} +1 -1
  37. package/dist/ui/assets/{lua.contribution-BgktkcsF.js → lua.contribution-YqDsEy8Z.js} +1 -1
  38. package/dist/ui/assets/{markdown.contribution-BKqBKD_g.js → markdown.contribution-DboXnPnx.js} +1 -1
  39. package/dist/ui/assets/{monaco-CyhM025v.js → monaco-BdFw56DI.js} +3 -3
  40. package/dist/ui/assets/{monaco-base-hW9ht_BG.js → monaco-base-DrP3D13F.js} +1 -1
  41. package/dist/ui/assets/{monaco-setup-Cquhh1OE.js → monaco-setup-QyF22y9h.js} +1 -1
  42. package/dist/ui/assets/{monaco.contribution-D9-bPyBf.js → monaco.contribution-BkqIxESv.js} +2 -2
  43. package/dist/ui/assets/{monaco.contribution-Cle0Lbgx.js → monaco.contribution-CMzPFHtO.js} +2 -2
  44. package/dist/ui/assets/{monaco.contribution-Dl8lHLi5.js → monaco.contribution-FA_ESP-W.js} +2 -2
  45. package/dist/ui/assets/{monaco.contribution-BVrZ1Anc.js → monaco.contribution-XEpc63ty.js} +2 -2
  46. package/dist/ui/assets/{php.contribution-CcYxMawn.js → php.contribution-rnpik0Kk.js} +1 -1
  47. package/dist/ui/assets/pptx-DZdEoDP9.js +6 -0
  48. package/dist/ui/assets/{python-DivQov6J.js → python-CF7X5t9Q.js} +1 -1
  49. package/dist/ui/assets/python.contribution-CyJGCfSq.js +2 -0
  50. package/dist/ui/assets/{ruby.contribution-DNudSRrU.js → ruby.contribution-4ZyPGu2E.js} +1 -1
  51. package/dist/ui/assets/{rust.contribution-BqG2lQpP.js → rust.contribution-Cl_B3X2G.js} +1 -1
  52. package/dist/ui/assets/{scss.contribution-DDxPnF-K.js → scss.contribution-BO02gVLZ.js} +1 -1
  53. package/dist/ui/assets/{shell.contribution-Q7wVL7zv.js → shell.contribution-Dn9Y0uHs.js} +1 -1
  54. package/dist/ui/assets/{sql.contribution-B9ndj3QH.js → sql.contribution-Bog_5Rc8.js} +1 -1
  55. package/dist/ui/assets/{swift.contribution-D_FDdL6S.js → swift.contribution-CfiAr7AX.js} +1 -1
  56. package/dist/ui/assets/{terminal-monaco-setup-BdF0mUfG.js → terminal-monaco-setup-B-EnkGiy.js} +1 -1
  57. package/dist/ui/assets/{tsMode-JVR2Jo5q.js → tsMode-B2WuLuPL.js} +1 -1
  58. package/dist/ui/assets/{typescript-1ZOjdUnd.js → typescript-Bv_J1tKT.js} +1 -1
  59. package/dist/ui/assets/typescript.contribution-CM0XQCYi.js +2 -0
  60. package/dist/ui/assets/xlsx-DDBRN-IU.js +4 -0
  61. package/dist/ui/assets/{xml-DrdFGpo2.js → xml-DMV-f4tm.js} +1 -1
  62. package/dist/ui/assets/xml.contribution-QqmOB9gT.js +2 -0
  63. package/dist/ui/assets/{yaml-DYQPB5Mj.js → yaml-Bb6mZXY5.js} +1 -1
  64. package/dist/ui/assets/yaml.contribution-DCDnWhHR.js +2 -0
  65. package/dist/ui/index.html +10 -10
  66. package/package.json +11 -11
  67. package/dist/ui/assets/chunk-ILCJ3WFD-fHFoZ9wm.js +0 -4
  68. package/dist/ui/assets/chunk-S5PCVMKU-DopU3Q9j.js +0 -6
  69. package/dist/ui/assets/dist-BwDZUtiH.js +0 -2
  70. package/dist/ui/assets/docx-IZY6hX8A.js +0 -2
  71. package/dist/ui/assets/extract-UTAOG7LV-BZ_L7lLL.js +0 -1
  72. package/dist/ui/assets/handlebars.contribution-BNbstxN6.js +0 -2
  73. package/dist/ui/assets/html.contribution-CPDzzJ0M.js +0 -2
  74. package/dist/ui/assets/infer-v-bCXeT9.js +0 -2
  75. package/dist/ui/assets/javascript.contribution-CPCuprn0.js +0 -2
  76. package/dist/ui/assets/layouts-2A7QNF6Y-D94iKLLQ.js +0 -1
  77. package/dist/ui/assets/pptx-CsdVR0xn.js +0 -6
  78. package/dist/ui/assets/python.contribution-CiRaN0sm.js +0 -2
  79. package/dist/ui/assets/typescript.contribution-_s-8TvIE.js +0 -2
  80. package/dist/ui/assets/xlsx-CdLmEC42.js +0 -4
  81. package/dist/ui/assets/xml.contribution-DUPYAKAC.js +0 -2
  82. package/dist/ui/assets/yaml.contribution-CRBo99nF.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)}),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),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(`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(),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(),dispatchEntry:M().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(),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`),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(`
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
 
@@ -218,5 +218,5 @@ Reported from Gezel. Nothing is sent automatically. I reviewed this text before
218
218
  _This report was too long to fit in a link. The full text is on your clipboard — paste it here._`;function Fb(e){let t=e.labels??jb,n=[`title=${encodeURIComponent(e.title)}`,`body=${encodeURIComponent(e.body)}`];return t.length>0&&n.push(`labels=${encodeURIComponent(t.join(`,`))}`),`${qy}?${n.join(`&`)}`}function Ib(e){let t=e.maxUrlLength??8e3,n=Fb(e);if(n.length<=t)return{url:n,truncated:!1};let r=t-Fb({...e,body:``}).length-encodeURIComponent(Pb).length,i=[],a=0;for(let t of e.body.split(`
219
219
  `)){let e=encodeURIComponent(`${t}
220
220
  `).length;if(a+e>r)break;i.push(t),a+=e}return{url:Fb({...e,body:`${i.join(`
221
- `)}${Pb}`}),truncated:!0}}var Lb=[`deepseek-r1`,`qwq`,`gpt-oss`,`qwen3-thinking`];function Rb(e){if(!e)return!1;let t=e.toLowerCase();return Lb.some(e=>t.startsWith(e)||t.includes(e))}var zb=.8,Bb=65536,Vb=32768,Hb=16*1024**3,Ub=8*1024**3;function Wb(e){let t=e.gpuVramBytes;return t!==null&&t>0?t<=Ub:e.totalRamBytes>0&&e.totalRamBytes<=Hb}function Gb(e){return e&&Wb(e)?Vb:Bb}function Kb(e,t){let n=e.kvBytesPerTokenF16;if(n===void 0||n<=0)return 0;let r=t?.ctxTokens??65536,i=t?.cacheScale??.55;return Math.round((n*r+(e.kvFixedBytesF16??0))*i)}function qb(e){let{residentBytes:t,isMoE:n,usableBytes:r,totalRamBytes:i,gpuVramBytes:a}=e,o=e.admissibleBytes??i*zb;return t<=r?{tier:`fits`,label:a==null?`fits in memory`:`fits in VRAM`,detail:`Runs fully within the fast memory budget.`,runnable:!0}:n&&a!=null&&t<=o?(e.nonExpertBytes??t*.15)<=r?{tier:`fits-offload`,label:`runs (expert offload)`,detail:`Larger than VRAM, but this is a Mixture-of-Experts model — its experts stream from system RAM while attention runs on the GPU.`,runnable:!0}:{tier:`tight`,label:`may run slowly`,detail:`A Mixture-of-Experts model, but even its always-active layers exceed this GPU — parts run from system RAM on the CPU, so expect slower generation.`,runnable:!0}:t<=o?{tier:`tight`,label:`may run slowly`,detail:`Exceeds the fast memory budget but fits in system RAM — expect slower generation.`,runnable:!0}:{tier:`too-big`,label:`may not fit`,detail:`Larger than this machine can hold — it may fail to load or run out of memory.`,runnable:!1}}function Jb(e){return e?e.some(e=>{let t=e.toLowerCase();return t===`moe`||t.includes(`expert`)}):!1}function Yb(e){let t=[e.llamaCpp?.huggingfaceRepo,e.mlx?.huggingfaceRepo,e.ds4?.huggingfaceRepo].map(e=>e?Zb(e):null).filter(e=>e!==null),n=e.maker?.url?Qb(e.maker.url):null,r=e.maintainer.url?Qb(e.maintainer.url):null,i=e.upstream?Qb(e.upstream):null,a=new Set(t.map($b)),o=[e.maintainer.name,r].filter(e=>e!==null).some(e=>a.has($b(e))),s=i?a.has($b(i)):!1,c=!e.maker&&o&&i&&!s,l=e.maker?.name??(c?Xb(i):e.maintainer.name),u=new Set([$b(l)]);n&&u.add($b(n)),i&&u.add($b(i)),!e.maker&&!c&&(u.add($b(e.maintainer.name)),r&&u.add($b(r)));let d=[],f=new Set,p=e.maker?[e.maintainer.name,...t]:t;for(let e of p){let t=$b(e);!t||u.has(t)||f.has(t)||(f.add(t),d.push(e))}return{maker:l,customizers:d}}function Xb(e){return{"deepseek-ai":`DeepSeek`,"zai-org":`Z.ai`}[e.toLowerCase()]??e}function Zb(e){let t=e.indexOf(`/`);return t>0?e.slice(0,t):null}function Qb(e){try{let t=new URL(e);return t.hostname.toLowerCase()===`huggingface.co`?t.pathname.split(`/`).filter(Boolean)[0]??null:null}catch{return null}}function $b(e){return e.toLowerCase().replace(/[^a-z0-9]/g,``)}var ex=[{key:`spawn`,label:`did not start`},{key:`toolRoundTrip`,label:`tool calls failed`},{key:`throughput`,label:`slow decoding`},{key:`reasoningBudget`,label:`unbounded reasoning`},{key:`contextFit`,label:`small context`}],tx=[{minTps:100,tier:`ok`,detail:`It decodes faster than you can read.`},{minTps:30,tier:`ok`,detail:`It decodes at a comfortable working speed.`},{minTps:2,tier:`ok`,detail:`It works, but long answers and tool loops will take a while.`},{minTps:0,tier:`warn`,detail:`It is too slow on this machine for practical agentic work.`}];function nx(e){return e>=10?Math.round(e):Number(e.toFixed(1))}function rx(e){let t=e/1e3;return t<10?`${Number(t.toFixed(1))}s`:`${Math.round(t)}s`}function ix(e){return e>=1e3?`${Number((e/1e3).toFixed(e>=1e4?0:1))}K`:`${e}`}function ax(e){return!e||e.tier===`fits`||e.tier===`fits-offload`?``:` Memory fit: ${e.label} \u2014 ${e.detail}`}function ox(e){let{ramFit:t,fitness:n,probing:r}=e;if(r)return{tier:`probing`,label:`checking fitness…`,detail:`A fitness check (proeve) is running against this model.`};if(!n||n.stale)return{tier:`unknown`,label:`not checked yet`,detail:(n?.stale?`The model changed since its last fitness check — run it again.`:`No fitness check has run for this model yet.`)+ax(t)};let{record:i,hardwareChanged:a}=n,o=a?` Hardware has changed since this check — consider re-running it.`:``;if(i.status===`blocked`)return{tier:`unknown`,label:`did not run`,detail:`The fitness check could not run \u2014 the engine was busy serving other requests. Nothing is wrong with the model; run the check again in a moment.${o}${ax(t)}`};if(i.status===`failed`){let e=ex.find(e=>!i.checks[e.key].ok);return{tier:`warn`,label:`fitness check failed`,detail:`The fitness check could not complete: ${e?i.checks[e.key].detail:i.checks.spawn.detail}${o}${ax(t)}`}}if(i.status===`deferred`)return{tier:`unknown`,label:`check deferred`,detail:`The automatic fitness check waited for memory headroom and gave up \u2014 run it manually.${ax(t)}`};if(!i.admitted){let e=ex.filter(e=>!i.checks[e.key].ok),n=e[0],r=e.map(e=>i.checks[e.key].detail).join(` `);return{tier:`warn`,label:n?.label??`fitness concerns`,detail:r+o+ax(t)}}let s=`It starts, calls tools, and answers.`,c=i.representativeContext,l=c?c.genTokensPerSec:i.genTokensPerSec;if(l==null){if(c?.ttftMs!=null){let e=c.promptTokens??c.targetPromptTokens;return{tier:`ok`,label:`starts ~${rx(c.ttftMs)} \xB7 speed unknown`,detail:`${s} With a representative ${ix(e)}-token prompt, first model output arrived in ${rx(c.ttftMs)}; decode speed was not measured.${o}${ax(t)}`}}return{tier:`ok`,label:c?`representative speed unknown`:`short prompt · speed unknown`,detail:c?`${s} Its representative-context decode speed was not measured.${o}${ax(t)}`:`${s} This older check did not measure representative-context performance; re-run it for realistic startup and decode timing.${o}${ax(t)}`}}let u=nx(l),d=tx.find(e=>u>=e.minTps)??tx[tx.length-1];if(c){let e=c.promptTokens??c.targetPromptTokens,n=`With a representative ${ix(e)}-token prompt`,r=c.ttftMs==null?`time to first output was not measured`:`first model output arrived in ${rx(c.ttftMs)}`,a=c.promptTokensPerSec==null?``:` Prefill ran at ${nx(c.promptTokensPerSec)} t/s.`,l=c.cachedPromptTokens!=null&&c.cachedPromptTokens>0?` ${c.cachedPromptTokens.toLocaleString()} prompt tokens came from cache.`:``,f=i.shortPromptGenTokensPerSec==null?``:` Short-prompt decode was ${nx(i.shortPromptGenTokensPerSec)} t/s.`;return{tier:d.tier,label:c.ttftMs==null?`${ix(e)} context \xB7 ${u} t/s`:`starts ~${rx(c.ttftMs)} \xB7 ${u} t/s`,detail:`${s} ${n}, ${r}, and decode ran at ${u} t/s. ${d.detail}${a}${l}${f}${o}${ax(t)}`}}return{tier:d.tier,label:`short prompt \xB7 ${u} t/s`,detail:`${s} This older check measured only short-prompt decode (${u} t/s); re-run it for realistic startup and loaded-context timing. ${d.detail}${o}${ax(t)}`}}var sx=1024**3;function cx(e){return typeof e.recoScore==`number`&&e.recoScore>0&&e.licenseClass===`open`&&e.supportsTools!==!1}var lx=24*sx,ux=8*sx;function dx(e){if(e.platform===`darwin`)return!1;let t=e.gpuMemoryKind??(e.gpuVramBytes==null?`none`:`unknown`);return t===`unified`?!1:t===`integrated`||t===`none`||e.gpuVramBytes==null||e.gpuVramBytes<ux}function fx(e){return e.platform===`darwin`||e.gpuMemoryKind===`integrated`||e.gpuMemoryKind===`unified`||e.gpuVramBytes!=null&&e.gpuVramBytes>=.75*e.totalRamBytes}function px(e){return fx(e)?!0:e.gpuVramBytes!=null&&e.gpuVramBytes<=lx}function mx(e,t){if(dx(e)&&t.fitTier!==`too-big`&&t.residentBytes!=null&&t.residentBytes>ux)return{kind:`low-acceleration-caution`,label:`large model — likely very slow here`,detail:`This model may load by using system memory, but this machine has no fast accelerator large enough to run it well. A small model will be substantially more usable.`};if(!px(e))return null;let n=t.fitTier!==`too-big`;return t.isMoE&&n?{kind:`moe-good-match`,label:`good match for this machine`,detail:`This machine's memory bandwidth favors Mixture-of-Experts models — only a few experts work per word, so they respond faster than a dense model of the same size.`}:!t.isMoE&&n&&t.residentBytes!=null&&t.residentBytes>e.usableBytes/2?{kind:`large-dense-caution`,label:`dense — may respond slowly here`,detail:`A large dense model reads all of its weights for every word. On this machine, memory bandwidth will pace it — a Mixture-of-Experts model of similar size will feel faster.`}:null}var hx=.8;function gx(e){return e.gpuVramBytes==null?e.platform===`darwin`?Math.floor(e.totalRamBytes*hx):0:e.gpuVramBytes}function _x(e,t){return!(t.minRamGB!=null&&e.totalRamBytes<t.minRamGB*sx||t.minVramGB!=null&&gx(e)<t.minVramGB*sx)}function vx(e){if(!e.startsWith(`mcp__`))return e;let t=e.split(`__`);return t.length<3?e:t.slice(2).join(`__`)}var yx=`James.William.Henry.George.Oliver.Harry.Jack.Oscar.Leo.Arthur.Thomas.Edward.Charlie.Freddie.Archie.Hugo.Felix.Louis.Theo.Max.Gabriel.Raphael.Jules.Lucas.Ethan.Nathan.Adam.Noah.Liam.Aaron.Lukas.Maximilian.Leon.Finn.Elias.Jonas.Moritz.Niklas.Paul.Tim.Matteo.Luca.Lorenzo.Alessandro.Giovanni.Leonardo.Riccardo.Edoardo.Tommaso.Gabriele.Marco.Filippo.Pietro.Giacomo.Giulio.Enzo.Dante.Fabio.Silvio.Bruno.Alejandro.Santiago.Mateo.Sebastian.Diego.Emiliano.Thiago.Joaquin.Salvador.Pablo.Carlos.Fernando.Enrique.Javier.Gonzalo.Rafael.Miguel.Andres.Eduardo.Francisco.Roberto.Gustavo.Ignacio.Rodrigo.Alvaro.Ramon.Benicio.Bautista.Gael.Iker.Pedro.Henrique.Bernardo.Vinicius.Heitor.Caio.Luciano.Valentino.Marcello.Joao.Rui.Nuno.Afonso.Tomas.Guilherme.Martim.Davi.Breno.Danilo.Erik.Bjorn.Lars.Sven.Anders.Magnus.Aksel.Soren.Nils.Leif.Gunnar.Ragnar.Harald.Olof.Ivar.Sigurd.Arvid.Peder.Henrik.Vilhelm.Axel.Emil.Viggo.Alvar.Stellan.Torsten.Einar.Sten.Folke.Arne.Dmitri.Pavel.Ivan.Igor.Oleg.Yuri.Mikhail.Andrei.Sergei.Nikita.Pyotr.Fyodor.Semyon.Stanislav.Vladimir.Vitaly.Ruslan.Roman.Stepan.Gennady.Bogdan.Miroslav.Mircea.Dragos.Florin.Sorin.Vlad.Codrin.Traian.Lucian.Constantin.Gheorghe.Ionut.Petru.Aurel.Liviu.Ovidiu.Vasile.Radu.Dan.Jakub.Marek.Vojtech.Karel.Krzysztof.Wojciech.Lech.Mieszko.Tadeusz.Casimir.Janos.Imre.Zoltan.Gyorgy.Laszlo.Csaba.Geza.Lajos.Istvan.Jozsef.Nikola.Branko.Dragan.Zoran.Goran.Darko.Milan.Srdjan.Predrag.Dusan.Marin.Tomislav.Hrvoje.Luka.Kresimir.Matej.Josip.Ante.Dario.Ivica.Valdas.Mindaugas.Andrius.Giedrius.Rokas.Edvinas.Darius.Matas.Janis.Arturs.Raivis.Maris.Aldis.Guntis.Karlis.Ugis.Dainis.Edgars.Nikolaos.Konstantinos.Stavros.Spyridon.Leonidas.Marios.Stefanos.Loukas.Alexios.Markos.Aristides.Themistocles.Theodoros.Dionysios.Athanasios.Christos.Georgios.Vasilis.Kostas.Pavlos.Mehmet.Kemal.Emir.Ugur.Kerem.Metehan.Suleyman.Osman.Timur.Aslan.Hayk.Areg.Tigran.Samvel.Hovhannes.Ashot.Gevorg.Narek.Davit.Gagik.Giorgi.Levan.Irakli.Zurab.Tamaz.Shota.Vakhtang.Nikoloz.Dato.Archil.Mohammed.Ibrahim.Ali.Omar.Hassan.Hussein.Khalid.Tariq.Hamza.Youssef.Amine.Rachid.Wassim.Bilal.Fahd.Faisal.Saeed.Amir.Kamal.Wahid.Ismail.Mustafa.Hasan.Hisham.Abdullah.Abdulaziz.Nabil.Sami.Hatem.Mazen.Yassine.Ayoub.Younes.Zakaria.Hani.Taha.Rami.Badr.Adel.Nader.Kwame.Kofi.Amadou.Moussa.Mamadou.Ibrahima.Abdoulaye.Cheikh.Oumar.Sekou.Bakary.Lamin.Modou.Souleymane.Lassana.Daouda.Boubacar.Samba.Yaya.Aliou.Oluwaseun.Chidi.Emeka.Obinna.Adebayo.Femi.Tunde.Kayode.Yemi.Bola.Ebou.Kebba.Baboucarr.Ebrima.Ousman.Alassane.Drissa.Seydou.Tidiane.Thierno.Abdi.Amanuel.Tsegaye.Haile.Dawit.Tesfaye.Bereket.Solomon.Kidane.Yonas.Mwenda.Juma.Baraka.Rajabu.Hamisi.Rashidi.Makame.Daudi.Salim.Bakari.Sipho.Thabo.Tsepo.Lesedi.Lethabo.Sibusiso.Mandla.Bongani.Nkosi.Menzi.Arjun.Vikram.Raj.Anand.Sunil.Ravi.Manoj.Anil.Rohit.Deepak.Pradeep.Sanjay.Rajesh.Dinesh.Santosh.Kumar.Hari.Mohan.Gopal.Ashok.Krishna.Chandra.Dhruv.Vedant.Viraj.Reyansh.Kabir.Arnav.Aditya.Rohan.Farhan.Zain.Shahid.Usman.Asif.Imran.Kamran.Naveed.Hiroshi.Takeshi.Haruto.Minato.Asahi.Hinata.Yuito.Sora.Iori.Ren.Daichi.Kenta.Akio.Hajime.Taro.Masato.Kazuhiro.Riku.Sota.Hayato.Wei.Jun.Hao.Ming.Chen.Chun.Yi.Jian.Tao.Feng.Long.Hung.Hieu.Tuan.Duy.Hoang.Nam.Son.Huy.Toan.Jihoon.Minho.Seongjun.Taeyang.Hyun.Jaewon.Donghyun.Seojun.Jimin.Woojin.Somchai.Somsak.Prasit.Narong.Wichian.Udom.Sombun.Sombat.Somphon.Prasoet.Rizal.Slamet.Supardi.Wahyudi.Mulyadi.Agus.Budi.Hendra.Dwi.Bayu.Matias.Jericho.Aldrin.Elijah.Carlo.Angelo.Nico.Aidar.Nursultan.Daniyar.Alikhan.Yerlan.Marat.Bolat.Arman.Serik.Dauren.Aisultan.Nurzhan.Temirlan.Bauyrzhan.Alisher.Jamshid.Rustam.Farhod.Sardor.Ulugbek.Khangai.Tushig.Batbold.Ganzorig.Erdene.Monkh.Sukhbaatar.Enkhbat.Nyamaa.Dolgion.Tane.Matiu.Rawiri.Wiremu.Hone.Tamati.Manu.Sione.Tevita.Peni.Isireli.Josefa.Epeli.Mosese.Waisale.Makoa.Koa.Keanu.Leilani.Kaleo.Daniel.Benjamin.Alexander.Michael.Samuel.David.Joseph.Joshua.Isaiah.Nathaniel.Caleb.Malachi.Ezekiel.Joel.Jonah.Seth.Silas.Abel.Tobias.Victor.Martin.Simon.Christian.Julian.Adrian.Patrick.Ruben.Stefan.Florian.Marcel.Dominik.Fabian.Bastian.Clemens.Leopold.Valentin.Lorenz.Kilian.Wendelin.Vincent.Antoine.Romain.Adrien.Baptiste.Corentin.Thibault.Quentin.Maxime.Damien.Tristan.Julien.Mathieu.Pierre.Yann.Tanguy.Loic.Gauthier.Erwan.Aurelien.Xavier.Patricio.Leandro.Ramiro.Maximo.Aurelio.Primitivo.Fermin.Andrej.Bojan.Dejan.Nenad.Slobodan.Sinisa.Vuk.Nemanja.Aleksandar.Filip.Ondrej.Radek.Zbynek.Premysl.Bohuslav.Jaroslav.Zdenek.Vilem.Svatopluk.Eneko.Ander.Aitor.Unai.Mikel.Gorka.Asier.Julen.Xabier.Oier.Desmond.Declan.Ciaran.Niall.Cormac.Eamon.Ronan.Padraig.Colm.Lorcan.Angus.Hamish.Callum.Alistair.Fergus.Lachlan.Murray.Fraser.Gavin.Stuart.Leander.Mats.Colin.Bennet.Anton.Emilio.Ole.Malte.Nick.Till.Oskar.Frederik.Philipp.Timo.Noam.Sacha.Eden.Nolan.Kylian.Ilyas.Mael.Marius.Leonard.Gaspard.Augustin.Charles.Eliott.Livio.Alban.Gianluca.Salvatore.Vincenzo.Domenico.Flavio.Fulvio.Emanuele.Cosimo.Loris.Samuele.Alessio.Raffaele.Davide.Mirko.Stefano.Nicola.Antonio.Pasquale.Alex.Alonso.Isaac.Alfonso.Alfredo.Armando.Cristian.Eugenio.Fidel.Gregorio.Hernan.Horacio.Humberto.Jaime.Felipe.Saulo.Otavio.Wellington.Matheus.Murilo.Emanuel.Cauan.Ryan.Bento.Anthony.Alfie.Theodore.Rory.Bobby.Reuben.Tommy.Elliot.Mason.Albert.Sean.Aidan.Brendan.Conor.Owen.Kieran.Brian.Aarne.Eino.Veikko.Tauno.Arto.Jussi.Jari.Pekka.Matti.Olafur.Thor.Jon.Egill.Kristjan.Arnar.Helgi.Danylo.Nazar.Taras.Mykola.Bohdan.Andriy.Oleksandr.Vladyslav.Yaroslav.Serhii.Milos.Dimitrije.Mihailo.Lazar.Ognjen.Uros.Bogoljub.Zvonimir.Borivoje.Michal.Attila.Tamas.Peter.Bence.Zsombor.Levente.Marton.Dimitrios.Ioannis.Panagiotis.Antonios.Michail.Charalampos.Evangelos.Lazaros.Apostolos.Anastasios.Alper.Burak.Cem.Emre.Ferit.Halil.Koray.Levent.Murat.Onur.Sedat.Serkan.Taner.Yavuz.Can.Deniz.Bora.Tolga.Okan.Reza.Farhad.Mehran.Siavash.Arash.Kian.Hossein.Majid.Parviz.Nasser.Jamil.Karim.Basim.Waleed.Munir.Rafiq.Sulayman.Talib.Fouad.Fahad.Waqas.Sohail.Rashid.Azhar.Shahzad.Farooq.Adnan.Nadeem.Zubair.Aarav.Aryan.Ayaan.Ishaan.Kartik.Vihaan.Krish.Dev.Rishi.Yash.Aman.Sahil.Varun.Nikhil.Gaurav.Pranav.Shivam.Siddharth.Ankit.Rajat.Rahul.Vivek.Amit.Akash.Vishal.Harsh.Tanmay.Ayush.Darshan.Rakesh.Kiran.Suresh.Mahesh.Naresh.Mukesh.Ramesh.Ganesh.Umesh.Chaiyo.Thaksin.Surasak.Arthit.Kittipong.Anucha.Chai.Manop.Praphat.Weerapat.Bagus.Eko.Gunawan.Hariyanto.Joko.Nugroho.Pramono.Sutrisno.Yuda.Triono.Liang.Kai.Bo.Lei.Bin.Gang.Peng.Qiang.Shen.Xiang.Yun.Zhi.Jie.Dong.Yong.Chao.Cheng.Hui.Kun.Youngho.Sungmin.Daehyun.Joonho.Hyunwoo.Seungwoo.Jaehyun.Kyungmin.Jungwoo.Taemin.Yuma.Yuto.Itsuki.Sosuke.Yusuke.Kenji.Satoshi.Takumi.Shunsuke.Kotaro.Yuuki.Kazuki.Shohei.Ryota.Kenichi.Naoki.Tsubasa.Haruki.Kaito.Ryu.Sergio.Rogelio.Ricardo.Melvin.Chukwuemeka.Ikechukwu.Nnamdi.Uchenna.Ugonna.Chinonso.Okechukwu.Obiora.Ifeanyi.Chibuzo.Mamoudou.Abdul.Ismaila.Yusupha.Karamo.Serigne.Mehari.Getachew.Alemayehu.Zelalem.Yohannes.Girma`.split(`.`),bx=`Emma.Olivia.Isla.Amelia.Charlotte.Sophia.Grace.Lily.Ivy.Freya.Poppy.Sienna.Chloe.Alice.Eleanor.Florence.Imogen.Matilda.Rosie.Violet.Manon.Lea.Camille.Oceane.Jade.Louise.Juliette.Margot.Adele.Clemence.Mia.Hannah.Leonie.Lena.Clara.Marie.Lara.Johanna.Amelie.Annika.Giulia.Ginevra.Beatrice.Aurora.Bianca.Chiara.Lucia.Francesca.Valentina.Sofia.Allegra.Fiamma.Ludovica.Sveva.Azzurra.Elettra.Tosca.Viola.Arianna.Gaia.Catalina.Valeria.Camila.Isabella.Luciana.Mariana.Gabriela.Fernanda.Daniela.Regina.Alejandra.Ximena.Natalia.Paloma.Renata.Macarena.Pilar.Rocio.Lourdes.Carmen.Guadalupe.Milagros.Esperanza.Trinidad.Mercedes.Consuelo.Blanca.Dolores.Maite.Aitana.Ana.Beatriz.Ines.Leonor.Madalena.Filipa.Margarida.Teresa.Luisa.Joana.Heloisa.Luana.Vitoria.Isadora.Leticia.Lorena.Bruna.Tamires.Rafaela.Milena.Astrid.Ingrid.Sigrid.Freja.Saga.Elsa.Linnea.Maja.Ebba.Wilma.Signe.Tuva.Thea.Nora.Alma.Solveig.Hedvig.Liv.Tove.Ragnhild.Gudrun.Helga.Dagny.Ylva.Tyra.Edda.Hulda.Frida.Elin.Greta.Anastasia.Natasha.Irina.Olga.Tatiana.Dasha.Lada.Vera.Galina.Inna.Svetlana.Lyubov.Nadezhda.Yekaterina.Polina.Alina.Kseniya.Darya.Veronika.Marina.Ioana.Mihaela.Andreea.Corina.Luminita.Viorica.Florina.Narcisa.Doina.Brandusa.Codrina.Crenguia.Georgiana.Nicoleta.Cristina.Simona.Adriana.Roxana.Raluca.Katarzyna.Jadwiga.Zofia.Agnieszka.Malgorzata.Bozena.Wanda.Halina.Lucyna.Elzbieta.Katalin.Piroska.Eniko.Boglarka.Csilla.Orsolya.Reka.Ildiko.Magdolna.Erzsebet.Jelena.Vesna.Dragana.Snezana.Jasmina.Aleksandra.Ivana.Gordana.Biljana.Ljerka.Dubravka.Mirjana.Nada.Slavica.Sunita.Ankica.Branka.Davorka.Sanja.Austra.Ilze.Inese.Laima.Daina.Ieva.Zane.Maija.Ruta.Sigita.Athena.Callirrhoe.Daphne.Penelope.Phoebe.Ariadne.Calliope.Cassandra.Electra.Thalia.Aspasia.Xanthi.Despina.Polyxeni.Nefeli.Myrto.Irene.Theodora.Chrysanthe.Elpida.Aylin.Elif.Nilay.Sevda.Ayla.Baran.Gunel.Gunay.Aysel.Tarana.Gayane.Armine.Arpi.Lusine.Hasmik.Narine.Mane.Nare.Lilit.Yeva.Tamara.Nino.Maia.Salome.Tamar.Ekaterine.Ketevan.Tinatin.Rusudan.Medea.Fatima.Aisha.Mariam.Zahra.Noor.Layla.Rania.Huda.Amira.Salma.Iman.Aya.Malak.Dina.Hana.Yasmin.Asma.Eman.Farida.Samira.Leila.Meriem.Aicha.Imene.Lyna.Rayhane.Sabrina.Nesreen.Shahd.Reem.Mayar.Jouri.Soujoud.Ashraqat.Beya.Hoda.Hayat.Naima.Zineb.Aminata.Fatou.Fatoumata.Aissatou.Kadiatou.Oumou.Fanta.Coumba.Hawa.Ndeye.Awa.Daba.Bintou.Mariama.Adama.Aminah.Ahou.Affoue.Akissi.Amoin.Funmilayo.Ngozi.Adaeze.Chidinma.Oluchi.Yetunde.Modupe.Titilayo.Bukola.Folake.Abena.Akua.Ama.Adjoa.Efua.Adwoa.Afua.Yaa.Ekua.Araba.Amara.Zuri.Nia.Makena.Wanjiku.Akinyi.Njeri.Nyambura.Wangari.Adhiambo.Rehema.Saida.Hadija.Marjani.Kibibi.Bahati.Zawadi.Tulinagwe.Neema.Furaha.Nomsa.Thandiwe.Nontobeko.Zanele.Sibongile.Lindiwe.Bongiwe.Zodwa.Busisiwe.Lungile.Priya.Neha.Pooja.Deepika.Anita.Kavita.Meera.Laxmi.Rekha.Aadhya.Devi.Sita.Radha.Indra.Shanti.Usha.Asha.Jiya.Aditi.Fatimah.Sadia.Ayesha.Taslima.Farjana.Sharmin.Nasrin.Rabeya.Mahua.Hasina.Yuki.Sakura.Aoi.Himari.Mei.Kokona.Akari.Yui.Mio.Rin.Sayo.Reika.Megumi.Keiko.Michiko.Yoko.Haruna.Kei.Misaki.Li.Ling.Ting.Xin.Yue.Lan.Hong.Fang.Jing.Linh.Mai.Huong.Ngoc.Thao.Trang.Hien.Nhung.Oanh.Minji.Soyeon.Eunji.Boram.Haneul.Jisoo.Yuna.Hayoung.Chaerin.Dahyun.Siti.Nurhayati.Sumarni.Ernawati.Sulastri.Kartini.Dewi.Putri.Ratna.Wulan.Maria.Andrea.Patricia.Angela.Jasmine.Althea.Bea.Katrina.Trisha.Carmela.Araya.Siriporn.Malee.Pikul.Ploy.Nittaya.Sumalee.Kannika.Wilai.Pimchan.Ainur.Madina.Gulnara.Zhanna.Aizhan.Saule.Asel.Moldir.Zarina.Malika.Nilufar.Gulbahor.Dilorom.Nodira.Shoira.Feruza.Barno.Nasiba.Kumush.Oyunbileg.Tsetseg.Enkhtuya.Narantsetseg.Ariunaa.Bolormaa.Sarantuya.Dulamsuren.Bayarmaa.Altantsetseg.Aroha.Mereana.Hinerangi.Piata.Anahera.Moana.Manaia.Tia.Kiri.Rangi.Mere.Waimarie.Sela.Mele.Litia.Makelesi.Salote.Laisa.Kelera.Abigail.Emily.Elizabeth.Katherine.Margaret.Victoria.Sarah.Rachel.Rebecca.Julia.Laura.Claire.Helen.Catherine.Diana.Eve.Caroline.Josephine.Vivian.Eloise.Colette.Fleur.Solange.Delphine.Mireille.Giselle.Helene.Simone.Celeste.Heidi.Liesel.Marlene.Ilse.Petra.Hannelore.Dagmar.Brunhilde.Elfriede.Isabel.Amparo.Soledad.Reyes.Nieves.Begonya.Nuria.Montserrat.Siobhan.Niamh.Aisling.Caoimhe.Ciara.Grainne.Aoife.Roisin.Maeve.Sinead.Eilidh.Morag.Fiona.Mhairi.Elspeth.Catriona.Ailsa.Iona.Sorcha.Iveta.Pavlina.Marketa.Blanka.Libuse.Vendula.Milada.Vlastimila.Jovana.Tijana.Teodora.Bojana.Andjela.Nikolina.Mila.Dunja.Tara.Aida.Emina.Amra.Lejla.Selma.Azra.Edina.Merima.Jasminka.Sophie.Lina.Ida.Lotta.Pauline.Helena.Elena.Nina.Viktoria.Stefanie.Nadine.Jessica.Rose.Anna.Zoe.Romane.Inaya.Capucine.Lou.Maya.Eva.Agathe.Iris.Ambre.Lola.Martina.Alessia.Elisa.Nicole.Giorgia.Vittoria.Matilde.Noemi.Asia.Camilla.Angelica.Benedetta.Marta.Carla.Sara.Claudia.Nerea.Alba.Candela.Noa.Vega.Leire.Ainhoa.Triana.Amaya.Manuela.Cecilia.Eloah.Lavinia.Livia.Amanda.Mirella.Pietra.Carolina.Mafalda.Ava.Isabelle.Evie.Ella.Willow.Millie.Elsie.Harper.Saoirse.Orla.Bridget.Kathleen.Deirdre.Clodagh.Sile.Rhona.Shona.Kirsty.Moira.Senga.Rona.Effie.Marsali.Kenna.Euna.Aino.Saara.Kaisa.Helmi.Venla.Tiina.Riikka.Anniina.Mirka.Pinja.Hildur.Bryndis.Sigrun.Gudny.Thora.Svanhildur.Asta.Salka.Birna.Kolbrun.Yulia.Oksana.Yana.Viktoriya.Kateryna.Iryna.Mariya.Olesya.Milica.Mina.Jovanka.Ljiljana.Desanka.Milanka.Svitlana.Lesya.Taisiya.Ruslana.Lyudmyla.Zoryana.Marichka.Valentyna.Liliya.Daryna.Eleni.Vasiliki.Christina.Ioanna.Katerina.Konstantina.Angeliki.Zeynep.Defne.Irem.Ecrin.Nisa.Esma.Buse.Ceren.Dilara.Melis.Derya.Seda.Esra.Pinar.Gamze.Tugce.Cansu.Eda.Leyla.Nahid.Parvin.Shirin.Sepideh.Maryam.Mahsa.Sanaz.Narges.Roya.Zeinab.Khadija.Ruqayya.Karima.Mounia.Siham.Yasmina.Zainab.Hira.Saba.Mahnoor.Ayza.Alishba.Eshal.Zara.Ananya.Diya.Aanya.Pari.Myra.Kavya.Anika.Saanvi.Riya.Navya.Aarohi.Shanaya.Anvi.Ira.Vanya.Mahi.Nisha.Shreya.Pallavi.Swati.Preeti.Jyoti.Manisha.Rashmi.Shilpa.Vandana.Pranee.Malai.Kanya.Bua.Lamai.Darika.Chanchai.Suda.Wipa.Orathai.Sri.Ayu.Ani.Endang.Sari.Tuti.Tari.Fitri.Indah.Rini.Yan.Na.Juan.Min.Ying.Xia.Lin.Ping.Hua.Qing.Xuan.Yu.Zhen.Rong.Shu.Xiu.Ai.Seoyeon.Jiwoo.Seoyun.Haeun.Jiyu.Yerin.Chaewon.Dayeon.Yujin.Ichika.Tsumugi.Koharu.Riko.Kanon.Ayaka.Erika.Natsuki.Saki.Nanami.Ayane.Shiori.Honoka.Miyu.Kaede.Ayano.Rosario.Teresita.Corazon.Remedios.Gloria.Imelda.Trinh.Quynh.Hang.Duyen.Phuong.Thuy.Tuyet.Bich.Diem.Chiamaka.Chinyere.Amaka.Chinelo.Ifeoma.Obiageli.Uzoamaka.Nkechi.Ebere.Adaora.Fatimata.Haby.Kadidja.Maimouna.Ramatoulaye.Bineta.Khadidiatou.Sokhna.Astou.Hirut.Meseret.Tigist.Workinesh.Almaz.Genet.Bizunesh.Abeba.Birtukan.Etenesh.Ayanda.Nosipho.Nonhlanhla.Thandeka.Bongi.Refilwe.Kgomotso.Dineo.Masego.Palesa.Julieta.Constanza.Francisca.Javiera.Antonia.Florencia.Agustina.Emilia.Josefina.Isidora.Aigerim.Aruzhan.Karina.Kamila.Amina.Sofiya.Milana.Anelya.Vaiana.Heilani.Nalani.Kalea.Noelani.Mahina.Alana.Keala.Kailani.Khulan.Altai.Anu.Uyanga.Otgonbayar.Munkhzul.Khishigjargal.Naran.Urantsetseg.Tuul.Paola.Khaliunaa.Setsuko.Chimamanda.Nneka.Fatoumatta.Nneoma.Yemisi.Abimbola.Folashade`.split(`.`);function xx(){let e=[...yx,...bx];return e[Math.floor(Math.random()*e.length)]}var Sx=.04;new Set(bx),new Set(yx);function Cx(e){switch(e){case`male`:return`he/him`;case`female`:return`she/her`;case`non-binary`:return`they/them`}}function wx(e){switch(e){case`male`:return{subject:`he`,object:`him`,possessiveAdjective:`his`,possessive:`his`,reflexive:`himself`,presentBe:`is`,presentHave:`has`};case`female`:return{subject:`she`,object:`her`,possessiveAdjective:`her`,possessive:`hers`,reflexive:`herself`,presentBe:`is`,presentHave:`has`};case`non-binary`:case void 0:return{subject:`they`,object:`them`,possessiveAdjective:`their`,possessive:`theirs`,reflexive:`themselves`,presentBe:`are`,presentHave:`have`}}}function Tx(){let e=Math.random()<.5,t=e?bx:yx,n=t[Math.floor(Math.random()*t.length)];return Math.random()<Sx?{name:n,gender:`non-binary`}:{name:n,gender:e?`female`:`male`}}new Map([{id:`af_heart`,name:`Heart`,language:`en-US`,gender:`female`,grade:`A`},{id:`af_bella`,name:`Bella`,language:`en-US`,gender:`female`,grade:`A-`},{id:`af_nicole`,name:`Nicole`,language:`en-US`,gender:`female`,grade:`B-`},{id:`af_aoede`,name:`Aoede`,language:`en-US`,gender:`female`,grade:`C+`},{id:`af_kore`,name:`Kore`,language:`en-US`,gender:`female`,grade:`C+`},{id:`af_sarah`,name:`Sarah`,language:`en-US`,gender:`female`,grade:`C+`},{id:`af_alloy`,name:`Alloy`,language:`en-US`,gender:`female`,grade:`C`},{id:`af_nova`,name:`Nova`,language:`en-US`,gender:`female`,grade:`C`},{id:`af_sky`,name:`Sky`,language:`en-US`,gender:`female`,grade:`C-`},{id:`af_jessica`,name:`Jessica`,language:`en-US`,gender:`female`,grade:`D`},{id:`af_river`,name:`River`,language:`en-US`,gender:`female`,grade:`D`},{id:`am_michael`,name:`Michael`,language:`en-US`,gender:`male`,grade:`C+`},{id:`am_fenrir`,name:`Fenrir`,language:`en-US`,gender:`male`,grade:`C+`},{id:`am_puck`,name:`Puck`,language:`en-US`,gender:`male`,grade:`C+`},{id:`am_echo`,name:`Echo`,language:`en-US`,gender:`male`,grade:`D`},{id:`am_eric`,name:`Eric`,language:`en-US`,gender:`male`,grade:`D`},{id:`am_liam`,name:`Liam`,language:`en-US`,gender:`male`,grade:`D`},{id:`am_onyx`,name:`Onyx`,language:`en-US`,gender:`male`,grade:`D`},{id:`am_santa`,name:`Santa`,language:`en-US`,gender:`male`,grade:`D-`},{id:`am_adam`,name:`Adam`,language:`en-US`,gender:`male`,grade:`F+`},{id:`bf_emma`,name:`Emma`,language:`en-GB`,gender:`female`,grade:`B-`},{id:`bf_isabella`,name:`Isabella`,language:`en-GB`,gender:`female`,grade:`C`},{id:`bf_alice`,name:`Alice`,language:`en-GB`,gender:`female`,grade:`D`},{id:`bf_lily`,name:`Lily`,language:`en-GB`,gender:`female`,grade:`D`},{id:`bm_george`,name:`George`,language:`en-GB`,gender:`male`,grade:`C`},{id:`bm_fable`,name:`Fable`,language:`en-GB`,gender:`male`,grade:`C`},{id:`bm_lewis`,name:`Lewis`,language:`en-GB`,gender:`male`,grade:`D+`},{id:`bm_daniel`,name:`Daniel`,language:`en-GB`,gender:`male`,grade:`D`}].map(e=>[e.id,e]));function Ex(e,t){let n=new Set(jy.filter(e=>e.slot===t).map(e=>e.option));return e.filter(e=>!n.has(e))}var Dx=Ex(Sd,`hat`),Ox=Ex(Cd,`dress`),kx=Ex(Td,`accessory`);function Ax(e){let t=5381,n=String(e||`x`);for(let e=0;e<n.length;e++)t=(t<<5)+t^n.charCodeAt(e);return Math.abs(t)%100}function jx(e,t){let n=Math.imul(e>>>0^2654435769,2654435761);return n=Math.imul((n^n>>>15)+(t|0),2246822507),n^=n>>>13,n=Math.imul(n,3266489909),n^=n>>>16,n>>>0}function Mx(e,t,n){return jx(e,t)%n}function Nx(e,t){return jx(e,t^625341585)%1e3/1e3}function Px(e,t){let n=e[t];if(n===void 0)throw Error(`poppetje catalog lookup out of range: ${t}/${e.length}`);return n}function Fx(e,t){let n=Dd[e];return Ed[(t&&n.byGender?.[t])??n.rarity]}function Ix(e,t){let n=e*kx.reduce((e,n)=>e+Fx(n,t),0);for(let e of kx)if(n-=Fx(e,t),n<0)return e;return kx[kx.length-1]}function Lx(e){let t=e=>Ed[Od[e]],n=e*Ox.reduce((e,n)=>e+t(n),0);for(let e of Ox)if(n-=t(e),n<0)return e;return Ox[Ox.length-1]}function Rx(e,t={}){let n=Px(Pd.skins,Mx(e,1,Pd.skins.length)),r=Px(Pd.shirts,Mx(e,2,Pd.shirts.length)),i=Px(vd,Mx(e,3,vd.length)),a=Px(Pd.hairs,Mx(e,4,Pd.hairs.length)),o=Px(wd,Mx(e,5,wd.length)),s=Nx(e,6)<Fd.hat?Px(Dx,Mx(e,7,Dx.length)):null,c=Nx(e,8)<Fd.dress?Lx(Nx(e,9)):null,l=Nx(e,10)<Fd.accessory?Ix(Nx(e,11),t.gender):null,u=t.gender!==`female`&&Nx(e,15)<Fd.facialHair?Px(kd,Mx(e,16,kd.length)):null,d=Nx(e,12)<Fd.mark?Mx(e,13,2)===0?`freckles`:`mole`:null,f=Px(Nd,Mx(e,14,Nd.length)),p=Nx(e,17),m=(Id.find(e=>p<=e.upTo)??Id[Id.length-1]).scale,h=jd.filter(e=>e!==`plain`),g=Nx(e,18)<Fd.shirtPattern?Px(h,Mx(e,19,h.length)):`plain`;return{key:t.key??`seed-${e}`,name:t.name??`Seed #${e}`,bodyShape:i,figureScale:m,skin:n.skin,skin2:n.skin2,hair:a,hairShape:o,hat:s,dress:c,accessory:l,facialHair:u,mark:d,expression:f,shirt:r.shirt,shirtAccent:r.accent,shirtPattern:g}}function zx(e,t,n){let r=2166136261;for(let t=0;t<e.length;t++)r^=e.charCodeAt(t),r=Math.imul(r,16777619);return Rx(Math.abs(r)>>>0,{key:e,name:t,gender:n})}var Bx=F({extensions:P(k()).optional(),modalities:P(k()).optional(),keywords:P(k()).optional()}),Vx=F({templateId:k(),reason:k()}),Hx=F({default:P(Vx),suggested:P(Vx)});F({id:k(),label:k(),description:k(),detect:Bx,craftbookTags:P(k()),gezelRoles:Hx});var Ux=[{id:`browser-game`,label:`Browser Game`,description:`An interactive game that runs in the browser — HTML/Canvas, sprites, input loops.`,detect:{extensions:[`html`,`js`,`ts`,`css`],keywords:[`game`,`arcade`,`sprite`,`player`,`shooter`,`enemy`,`score`,`level`,`collision`,`canvas`,`gameplay`]},craftbookTags:[`game`,`arcade`,`puzzle`,`idle`,`incremental`,`clicker`,`game-jam`,`micro-game`,`board-game`,`turn-based`,`multiscreen`,`physics`,`simulation`,`sprite`,`game-art`,`atlas`],gezelRoles:{default:[{templateId:`builder`,reason:`Owns the game from mechanics and code through a playable release.`}],suggested:[{templateId:`designer`,reason:`Shapes the game board, feedback, and visual language.`},{templateId:`reviewer`,reason:`Tests gameplay, edge cases, and release quality.`}]}},{id:`web-app`,label:`Web App`,description:`An interactive web application — components, routes, forms, an API it talks to.`,detect:{extensions:[`tsx`,`jsx`,`ts`,`js`,`css`,`html`,`vue`,`svelte`],keywords:[`app`,`dashboard`,`login`,`auth`,`frontend`,`react`,`component`,`form`,`user`,`spa`]},craftbookTags:[`html`,`website`,`dashboard`,`form`,`pwa`,`responsive`,`accessibility`,`a11y`,`wcag`,`api`,`backend`,`http`,`seo`,`performance`],gezelRoles:{default:[{templateId:`builder`,reason:`Owns the product flow from interface through implementation and release.`}],suggested:[{templateId:`designer`,reason:`Improves layout, hierarchy, and interaction quality.`},{templateId:`reviewer`,reason:`Provides an independent quality and accessibility pass.`},{templateId:`veiligheidsmeester`,reason:`Reviews authentication, data handling, dependencies, and attack surface.`}]}},{id:`static-site`,label:`Static Site`,description:`A content-first website — landing pages, blog, marketing copy, mostly static HTML.`,detect:{extensions:[`html`,`css`,`md`,`mdx`,`js`],keywords:[`website`,`landing`,`blog`,`marketing`,`seo`,`homepage`,`portfolio`,`docs`]},craftbookTags:[`website`,`html`,`landing-page`,`hero`,`seo`,`responsive`,`accessibility`,`a11y`,`wcag`,`content`,`marketing`],gezelRoles:{default:[{templateId:`builder`,reason:`Builds and ships the site as a coherent whole.`}],suggested:[{templateId:`designer`,reason:`Strengthens the visual system and responsive layout.`},{templateId:`copywriter`,reason:`Sharpens the message for the intended reader.`},{templateId:`reviewer`,reason:`Checks polish, accessibility, links, and release quality.`}]}},{id:`data-analysis`,label:`Data Analysis`,description:`Analysis of a dataset — notebooks, scripts, charts, reports, SQL.`,detect:{extensions:[`py`,`ipynb`,`csv`,`tsv`,`r`,`sql`,`parquet`],keywords:[`data`,`dataset`,`analysis`,`analytics`,`pandas`,`chart`,`report`,`statistics`,`metrics`,`visualization`]},craftbookTags:[`data`,`analysis`,`etl`,`pipeline`,`sql`,`visualization`,`dashboard`,`report`,`reporting`,`metrics`,`kpi`,`time-series`,`finance`],gezelRoles:{default:[{templateId:`researcher`,reason:`Investigates the data and turns evidence into a substantive analysis.`}],suggested:[{templateId:`builder`,reason:`Builds repeatable analysis pipelines and deliverables.`},{templateId:`reviewer`,reason:`Challenges assumptions, calculations, and conclusions.`}]}},{id:`api-service`,label:`API / Backend Service`,description:`A server-side service — REST/GraphQL endpoints, a database, background jobs.`,detect:{extensions:[`ts`,`js`,`py`,`go`,`rs`,`java`,`rb`],keywords:[`api`,`endpoint`,`rest`,`graphql`,`server`,`backend`,`openapi`,`database`,`microservice`,`webhook`]},craftbookTags:[`api`,`backend`,`rest`,`http`,`sdk`,`schema`,`integration`,`security`,`testing`,`tests`,`tdd`],gezelRoles:{default:[{templateId:`builder`,reason:`Owns the service from API shape through deployment.`}],suggested:[{templateId:`reviewer`,reason:`Checks contracts, failure modes, and test coverage.`},{templateId:`veiligheidsmeester`,reason:`Reviews trust boundaries, secrets, dependencies, and exposed endpoints.`}]}},{id:`cli-tool`,label:`CLI / Tooling`,description:`A command-line tool, script, or automation utility.`,detect:{extensions:[`ts`,`js`,`py`,`go`,`rs`,`sh`,`bash`],keywords:[`cli`,`command`,`terminal`,`tool`,`script`,`automation`,`utility`]},craftbookTags:[`tooling`,`automation`,`script`,`testing`,`tests`,`quality`,`refactor`],gezelRoles:{default:[{templateId:`builder`,reason:`Takes the tool from command design through distribution.`}],suggested:[{templateId:`reviewer`,reason:`Checks ergonomics, errors, portability, and tests.`},{templateId:`veiligheidsmeester`,reason:`Reviews shell boundaries, filesystem access, inputs, and dependencies.`}]}},{id:`library`,label:`Library / SDK`,description:`A reusable library, package, or SDK consumed by other code.`,detect:{extensions:[`ts`,`js`,`py`,`go`,`rs`],keywords:[`library`,`package`,`sdk`,`module`,`npm`,`crate`,`gem`]},craftbookTags:[`library`,`sdk`,`documentation`,`reference`,`api`,`testing`,`tests`,`tdd`,`semver`,`versioning`,`changelog`,`release`,`release-notes`,`refactor`,`quality`],gezelRoles:{default:[{templateId:`builder`,reason:`Owns the public API, implementation, and release path.`}],suggested:[{templateId:`reviewer`,reason:`Checks API clarity, compatibility, tests, and docs.`},{templateId:`veiligheidsmeester`,reason:`Audits dependency risk and unsafe public behavior before release.`}]}},{id:`content-writing`,label:`Writing / Content`,description:`Long-form writing — articles, docs, copy, newsletters.`,detect:{extensions:[`md`,`mdx`,`txt`,`docx`,`rst`],keywords:[`article`,`blog`,`copy`,`post`,`essay`,`documentation`,`content`,`newsletter`,`writing`]},craftbookTags:[`writing`,`copywriting`,`content`,`document`,`documentation`,`long-form`,`newsletter`,`seo`,`comms`,`brief`,`summary`],gezelRoles:{default:[{templateId:`copywriter`,reason:`Turns the brief into clear writing for real readers.`}],suggested:[{templateId:`researcher`,reason:`Finds and organizes the evidence behind the piece.`},{templateId:`reviewer`,reason:`Provides a rigorous editorial and factual second pass.`},{templateId:`schrijfmaat`,reason:`Supports sustained long-form and creative drafting.`}]}},{id:`media-production`,label:`Media Production`,description:`Audio, video, or image production — assets, captions, transcripts.`,detect:{extensions:[`png`,`jpg`,`jpeg`,`svg`,`gif`,`mp3`,`wav`,`mp4`,`mov`],modalities:[`image`],keywords:[`audio`,`video`,`podcast`,`image`,`design`,`asset`,`recording`,`clip`]},craftbookTags:[`audio`,`video`,`image`,`images`,`image-generation`,`tts`,`podcast`,`narration`,`transcription`,`design`,`branding`,`vision`,`ocr`],gezelRoles:{default:[{templateId:`designer`,reason:`Sets the visual direction and keeps the assets coherent.`}],suggested:[{templateId:`image-generator`,reason:`Produces image assets from a focused brief.`},{templateId:`video-generator`,reason:`Produces video assets from a focused brief.`},{templateId:`copywriter`,reason:`Develops scripts, captions, titles, and supporting copy.`}]}},{id:`design-prototype`,label:`Design / Prototype`,description:`A visual design or UI prototype — mockups, hero sections, branding.`,detect:{extensions:[`html`,`css`,`svg`,`fig`],keywords:[`design`,`prototype`,`mockup`,`wireframe`,`ui`,`ux`,`branding`]},craftbookTags:[`design`,`svg`,`hero`,`branding`,`interactive`,`responsive`,`accessibility`,`a11y`,`wcag`,`html`,`canvas`],gezelRoles:{default:[{templateId:`designer`,reason:`Owns the concept, hierarchy, and visual direction.`}],suggested:[{templateId:`builder`,reason:`Turns the design into a working, testable prototype.`},{templateId:`reviewer`,reason:`Checks usability, accessibility, and consistency.`}]}},{id:`social-media`,label:`Social Media`,description:`A public posting presence — drafting, approving, publishing, and reading reception across social feeds.`,detect:{extensions:[`md`,`json`,`png`,`jpg`],keywords:[`social`,`feed`,`bluesky`,`instagram`,`linkedin`,`followers`,`engagement`,`mentions`,`caption`,`hashtag`,`repost`]},craftbookTags:[`social`,`post`,`digest`,`engagement`,`analytics`,`copywriting`],gezelRoles:{default:[{templateId:`omroeper`,reason:`Runs the feed — drafts, queues, and reads the room.`}],suggested:[{templateId:`copywriter`,reason:`Sharpens the words when a post has to land.`},{templateId:`image-generator`,reason:`Produces the visuals for media-first posts.`}]}},{id:`email`,label:`Email / Inbox`,description:`Email threads synced into the project — triage, drafting, summarizing, and correspondence.`,detect:{extensions:[`md`,`eml`],modalities:[`email`],keywords:[`inbox`,`email`,`reply`,`thread`,`correspondence`,`triage`,`newsletter`]},craftbookTags:[`email`,`inbox-triage`,`triage`,`summary`,`brief`,`writing`],gezelRoles:{default:[{templateId:`copywriter`,reason:`Drafts clear replies in the right voice and context.`}],suggested:[{templateId:`kantoormeester`,reason:`Keeps operational follow-ups from slipping.`},{templateId:`researcher`,reason:`Investigates background before consequential replies.`}]}},{id:`job-hunt`,label:`Job Hunt`,description:`A job-search campaign — tracked applications, tailored materials, interviews, offers.`,detect:{extensions:[`md`],keywords:[`job`,`career`,`resume`,`cv`,`interview`,`application`,`recruiter`,`offer`,`hiring`,`apply`]},craftbookTags:[`career`,`job`,`resume`,`cv`,`interview`,`offer`,`application`],gezelRoles:{default:[{templateId:`career-coach`,reason:`Runs the search as a campaign and keeps the application pipeline moving.`}],suggested:[{templateId:`mock-interviewer`,reason:`Provides realistic interview practice and feedback.`},{templateId:`copywriter`,reason:`Tailors resumes, cover letters, and outreach.`}]}}];function Wx(e){if(e)return Ux.find(t=>t.id===e)}function Gx(){return Ux}function Kx(e,t){return t?{name:e,scope:`standard`,inputs:t}:{name:e,scope:`standard`}}var qx={meester:{id:`meester`,label:`Meester`,summary:`Coordinator: delegates work across the gezel workforce; does not build directly.`,toolsetGroups:[`team-management`,`tasks-readonly`,`craftbook-launch`,`craftbooks`,`artifacts`,`memory`,`documents`,`doc-intel`,`entity-intel`,`interaction`,`history`,`handboek`],suggestedTuningProfile:`thinking-precise`,gateAffinity:[],defaultBooks:[`status-report`,`weekly-review`],capabilityFloor:`medium`},voorman:{id:`voorman`,label:`Voorman`,summary:`Foreman: triages, diagnoses, and routes work to specialists; read-only investigator.`,toolsetGroups:[`team-management`,`tasks`,`craftbooks`,`artifacts`,`documents`,`doc-intel`,`memory`,`interaction`,`history`,`workspace-fs-read`,`handboek`],suggestedTuningProfile:`thinking-general`,gateAffinity:[],defaultBooks:[`investigate-root-cause`,`release-readiness-review`,`bug-fix-tdd`],capabilityFloor:`medium`},reviewer:{id:`reviewer`,label:`Reviewer`,summary:`Reviews code and deliverables; verifies claims against sources before approving.`,toolsetGroups:[`workspace-fs-read`,`workspace-fs-write`,`code-intel`,`security-intel`,`git`,`tasks`,`artifacts`,`memory`,`documents`,`doc-intel`,`entity-intel`,`interaction`,`web`,`handboek`],suggestedTuningProfile:`thinking-precise`,gateAffinity:[Kx(`checkCitationsResolve`)],defaultBooks:[`pull-request-review`,`design-review`,`deep-security-review`,`pr-security-review`,`test-coverage-review`],capabilityFloor:`medium`},researcher:{id:`researcher`,label:`Researcher`,summary:`Answers questions from sources; cites every claim and grounds facts in authorized inputs.`,toolsetGroups:[`workspace-fs-read`,`workspace-fs-write`,`code-intel`,`doc-intel`,`entity-intel`,`tasks-readonly`,`artifacts`,`memory`,`documents`,`interaction`,`web`,`browser-automation`,`handboek`],suggestedTuningProfile:`thinking-general`,gateAffinity:[Kx(`checkCitationsResolve`),Kx(`checkValueGrounding`)],defaultBooks:[`research-report`,`literature-review`,`competitive-analysis`,`due-diligence-brief`,`fact-check`],capabilityFloor:`medium`},copywriter:{id:`copywriter`,label:`Copywriter`,summary:`Drafts comms and marketing copy under length/tone constraints.`,toolsetGroups:[`workspace-fs-read`,`workspace-fs-write`,`documents`,`doc-intel`,`tasks`,`artifacts`,`web`,`memory`,`interaction`,`handboek`],suggestedTuningProfile:`creative`,gateAffinity:[Kx(`checkWordBand`),Kx(`checkReadingLevel`)],defaultBooks:[`blog-post`,`landing-copy`,`press-release`,`email-sequence`,`product-descriptions`],capabilityFloor:`small`},designer:{id:`designer`,label:`Designer`,summary:`Designs visual deliverables; generates and places imagery into pages.`,toolsetGroups:[`workspace-fs-read`,`workspace-fs-write`,`images`,`image-intel`,`tasks`,`artifacts`,`documents`,`web`,`memory`,`interaction`,`handboek`],suggestedTuningProfile:`creative`,gateAffinity:[Kx(`checkImageRefsResolve`)],defaultBooks:[`hero-image`,`landing-page`,`moodboard`,`svg-animation`,`logo-set`],capabilityFloor:`small`},"image-generator":{id:`image-generator`,label:`Image Generator`,summary:`Produces images via generate_image; no direct file writes.`,toolsetGroups:[`images`,`image-intel`,`tasks`,`artifacts`,`documents`,`memory`,`interaction`,`handboek`],gateAffinity:[Kx(`checkImageRefsResolve`)],defaultBooks:[`logo-set`,`icon-pack`,`hero-image`,`thumbnail-generator`],capabilityFloor:`tiny`},"video-generator":{id:`video-generator`,label:`Video Generator`,summary:`Produces short video clips via generate_video; no direct file writes.`,toolsetGroups:[`videos`,`tasks`,`artifacts`,`documents`,`memory`,`interaction`,`handboek`],gateAffinity:[],defaultBooks:[],capabilityFloor:`tiny`},developer:{id:`developer`,label:`Developer`,summary:`Builds and fixes code; works to task-specific build and test gates.`,toolsetGroups:[`workspace-fs-read`,`workspace-fs-write`,`code-intel`,`code-execution`,`git`,`tasks`,`artifacts`,`memory`,`interaction`,`handboek`],suggestedTuningProfile:`thinking-coding`,gateAffinity:[],defaultBooks:[`build-loop`,`bug-fix-tdd`,`rest-api`,`refactor-module`,`cli-tool`],capabilityFloor:`small`},"web-developer":{id:`web-developer`,label:`Web Developer`,summary:`Frontend/full-stack code with live browser work.`,toolsetGroups:[`workspace-fs-read`,`workspace-fs-write`,`code-intel`,`code-execution`,`git`,`tasks`,`artifacts`,`memory`,`interaction`,`web`,`handboek`],suggestedTuningProfile:`thinking-coding`,gateAffinity:[],defaultBooks:[`landing-page`,`spa-dashboard`,`web-app-crud`,`portfolio-site`,`pwa-offline`],capabilityFloor:`small`},planner:{id:`planner`,label:`Planner`,summary:`Turns a brief into a structured, owned, checkable plan.`,toolsetGroups:[`tasks`,`team-management`,`artifacts`,`documents`,`doc-intel`,`memory`,`interaction`,`web`,`handboek`],suggestedTuningProfile:`thinking-precise`,gateAffinity:[Kx(`checkOrderedSections`),Kx(`checkTableShape`),Kx(`checkPlanStructure`)],defaultBooks:[`spec-doc`,`proposal-sow`,`dashboard-spec`,`board-deck`,`onboarding-checklist`],capabilityFloor:`medium`}},Jx=[{contains:`meester`,canonical:`meester`},{contains:`voorman`,canonical:`voorman`},{contains:`foreman`,canonical:`voorman`},{contains:`coach`,canonical:`voorman`},{contains:`researcher`,canonical:`researcher`},{contains:`research`,canonical:`researcher`},{contains:`analyst`,canonical:`researcher`},{contains:`reviewer`,canonical:`reviewer`},{contains:`review`,canonical:`reviewer`},{contains:`designer`,canonical:`designer`},{contains:`design`,canonical:`designer`},{contains:`tekenaar`,canonical:`designer`},{contains:`assetsmid`,canonical:`designer`},{contains:`copywriter`,canonical:`copywriter`},{contains:`writer`,canonical:`copywriter`},{contains:`verhalenverteller`,canonical:`copywriter`},{contains:`planner`,canonical:`planner`},{contains:`plan`,canonical:`planner`},{contains:`web developer`,canonical:`web-developer`},{contains:`web-developer`,canonical:`web-developer`},{contains:`frontend`,canonical:`web-developer`},{contains:`front-end`,canonical:`web-developer`},{contains:`front end`,canonical:`web-developer`},{contains:`full-stack`,canonical:`web-developer`},{contains:`fullstack`,canonical:`web-developer`},{contains:`full stack`,canonical:`web-developer`},{contains:`developer`,canonical:`developer`},{contains:`engineer`,canonical:`developer`},{contains:`programmer`,canonical:`developer`},{contains:`builder`,canonical:`developer`},{contains:`coder`,canonical:`developer`},{contains:`devops`,canonical:`developer`},{contains:`image generator`,canonical:`image-generator`},{contains:`image-generator`,canonical:`image-generator`},{contains:`image generation`,canonical:`image-generator`},{contains:`image-generation`,canonical:`image-generator`},{contains:`video generator`,canonical:`video-generator`},{contains:`video-generator`,canonical:`video-generator`},{contains:`video generation`,canonical:`video-generator`},{contains:`video-generation`,canonical:`video-generator`}];function Yx(e){if(!e)return null;let t=e.toLowerCase().trim();if(t in qx)return t;for(let e of Jx)if(t.includes(e.contains))return e.canonical;return null}var Xx={schemaVersion:1,runs:[{id:`2026-08-11-m4max-llamacpp`,provenance:{startedAt:`2026-08-11T16:21:09.513Z`,device:{label:`Mac · Apple M4 Max`,platform:`darwin`,arch:`arm64`,memoryGb:64,osRelease:`darwin 25.5.0`,cpuModel:`Apple M4 Max`},harnessCommit:`b2ea2819`,gildeVersion:`0.1.20`,count:3,judgeModelId:null},suites:[`core`,`productivity`],scenariosBySuite:{core:[`tictactoe`,`petshop`,`tankcombat`,`schema-migration`,`failing-tests-spec`,`symptom-debug`,`data-wrangle`,`incident-postmortem`,`ops-runbook-anomaly`,`plan-and-estimate`,`conflict-synthesis`],productivity:[`constrained-comms`,`craftbook-week-plan`,`craftbook-ab-test-readout`,`craftbook-annotated-bibliography`,`records-intake`,`plan-and-estimate`,`meeting-followup`,`craftbook-spreadsheet-model`,`conflict-synthesis`,`docblocks-theme-roundtrip`,`craftbook-research-to-document`,`craftbook-powerpoint-deck`,`wikipedia-research-brief`]}},{id:`2026-08-09-m4max-llamacpp`,provenance:{startedAt:`2026-08-09T23:39:13.000Z`,device:{label:`Mac · Apple M4 Max`,platform:`darwin`,arch:`arm64`,memoryGb:64,osRelease:`darwin 25.5.0`,cpuModel:`Apple M4 Max`},harnessCommit:`e2859602`,gildeVersion:`0.1.17`,count:3,judgeModelId:null},suites:[`core`,`productivity`],scenariosBySuite:{core:[`tictactoe`,`petshop`,`tankcombat`,`schema-migration`,`failing-tests-spec`,`symptom-debug`,`data-wrangle`,`incident-postmortem`,`ops-runbook-anomaly`,`plan-and-estimate`,`conflict-synthesis`],productivity:[`constrained-comms`,`craftbook-week-plan`,`craftbook-ab-test-readout`,`craftbook-annotated-bibliography`,`records-intake`,`plan-and-estimate`,`meeting-followup`,`craftbook-spreadsheet-model`,`conflict-synthesis`,`docblocks-theme-roundtrip`,`craftbook-research-to-document`,`craftbook-powerpoint-deck`,`wikipedia-research-brief`]},note:`Published scorecard sweep (llama-cpp, count-strict).`}],results:[{modelId:`gemma4-26b-q4`,label:`gemma4-26b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`25.2B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:1093,decodeTokensPerSec:89.6,samples:1},runtime:{contextTokens:120832,peakMemoryMb:41876},judge:{meanScore:6.4,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:158268},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:458751},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:402725},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:89305},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:23287},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:229755},{scenarioId:`data-wrangle`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:63079},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:147750},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:149797},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22655},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:52750}]},{modelId:`gemma4-31b-q4`,label:`gemma4-31b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`30.7B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:202,decodeTokensPerSec:23.3,samples:1},runtime:{contextTokens:262144,peakMemoryMb:44116},judge:{meanScore:6.7,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:336621},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:383525},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:461261},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:139061},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:91026},{scenarioId:`symptom-debug`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:661615},{scenarioId:`data-wrangle`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:169948},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:256081},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:326151},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:69751},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:230718}]},{modelId:`gemma4-e4b-q4`,label:`gemma4-e4b-q4`,engine:`llama-cpp`,tier:`small`,parameterSize:`8B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:1398,decodeTokensPerSec:94.7,samples:1},runtime:{contextTokens:131072,peakMemoryMb:13786},judge:{meanScore:4.7,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:119010},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:148699},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:165039},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:126625},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:262991},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:37973},{scenarioId:`data-wrangle`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:556042},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:119034},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:88136},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22180},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:32444}]},{modelId:`qwen3.6-27b-q4`,label:`qwen3.6-27b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`27B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:198,decodeTokensPerSec:18.5,samples:1},runtime:{contextTokens:262144,peakMemoryMb:26997},judge:{meanScore:8,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:229854},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:649484},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:419126},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:208009},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:85355},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:93666},{scenarioId:`data-wrangle`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:139045},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:277375},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:153416},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:83700},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:271090}]},{modelId:`qwen3.6-35b-a3b-q4`,label:`qwen3.6-35b-a3b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`35B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:1125,decodeTokensPerSec:76.4,samples:1},runtime:{contextTokens:262144,peakMemoryMb:27152},judge:{meanScore:8.2,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:87120},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:181403},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:222232},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:126575},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:28212},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:44205},{scenarioId:`data-wrangle`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:64385},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:103169},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:54095},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:44209},{scenarioId:`conflict-synthesis`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:67760}]},{modelId:`gemma4-26b-q4`,label:`gemma4-26b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`25.2B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:1093,decodeTokensPerSec:89.6,samples:1},runtime:{contextTokens:120832,peakMemoryMb:41182},judge:{meanScore:6.1,artifacts:20,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:42947},{scenarioId:`craftbook-week-plan`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:58360},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:225294},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:37330},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:42870},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22598},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:48380},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:264556},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:53338},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:32889},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:52880},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:518676},{scenarioId:`wikipedia-research-brief`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:150741}]},{modelId:`gemma4-31b-q4`,label:`gemma4-31b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`30.7B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:202,decodeTokensPerSec:23.3,samples:1},runtime:{contextTokens:262144,peakMemoryMb:46208},judge:{meanScore:6.1,artifacts:20,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:140085},{scenarioId:`craftbook-week-plan`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:215497},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:130794},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:93974},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:83955},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:70910},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:155149},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:130695},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:230125},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:69110},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:171110},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:2457341},{scenarioId:`wikipedia-research-brief`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:413963}]},{modelId:`gemma4-e4b-q4`,label:`gemma4-e4b-q4`,engine:`llama-cpp`,tier:`small`,parameterSize:`8B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:1398,decodeTokensPerSec:94.7,samples:1},runtime:{contextTokens:131072,peakMemoryMb:12649},judge:{meanScore:5.4,artifacts:25,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:115573},{scenarioId:`craftbook-week-plan`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:328887},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:535949},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:42736},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22450},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22920},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:23625},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:344138},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:32303},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:42301},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:27473},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:605526},{scenarioId:`wikipedia-research-brief`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:125017}]},{modelId:`qwen3.6-27b-q4`,label:`qwen3.6-27b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`27B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:198,decodeTokensPerSec:18.5,samples:1},runtime:{contextTokens:262144,peakMemoryMb:27643},judge:{meanScore:5.6,artifacts:24,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:63407},{scenarioId:`craftbook-week-plan`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:477656},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:666941},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:123623},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:62823},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:73094},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:83800},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:811753},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:284103},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:52858},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:67829},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:816995},{scenarioId:`wikipedia-research-brief`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:354676}]},{modelId:`qwen3.6-35b-a3b-q4`,label:`qwen3.6-35b-a3b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`35B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:1125,decodeTokensPerSec:76.4,samples:1},runtime:{contextTokens:262144,peakMemoryMb:26234},judge:{meanScore:6.6,artifacts:26,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22331},{scenarioId:`craftbook-week-plan`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:67743},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:253979},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:53041},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22190},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:32415},{scenarioId:`meeting-followup`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:47245},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:238747},{scenarioId:`conflict-synthesis`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:303896},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:17641},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22232},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:823643},{scenarioId:`wikipedia-research-brief`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:62739}]},{modelId:`gemma4-12b-q4`,label:`gemma4-12b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`12B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:543,decodeTokensPerSec:50.9,samples:1},runtime:{contextTokens:65536,peakMemoryMb:31312},judge:{meanScore:6.9,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:194648},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:277803},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:238469},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:208767},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:42667},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:97239},{scenarioId:`data-wrangle`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:87663},{scenarioId:`incident-postmortem`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:293113},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:132797},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:49027},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:142413}]},{modelId:`gemma4-31b-q4`,label:`gemma4-31b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`30.7B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:195,decodeTokensPerSec:22.3,samples:1},runtime:{contextTokens:65536,peakMemoryMb:31768},judge:{meanScore:6.8,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:298322},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:437387},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:515862},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:138397},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:79997},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:108879},{scenarioId:`data-wrangle`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:164211},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:294765},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:239363},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:69877},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:224264}]},{modelId:`gemma4-e4b-q4`,label:`gemma4-e4b-q4`,engine:`llama-cpp`,tier:`small`,parameterSize:`8B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:1411,decodeTokensPerSec:97.8,samples:1},runtime:{contextTokens:65536,peakMemoryMb:10651},judge:{meanScore:4.6,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:115809},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:137851},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:180906},{scenarioId:`schema-migration`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:348985},{scenarioId:`failing-tests-spec`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:231365},{scenarioId:`symptom-debug`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:21968},{scenarioId:`data-wrangle`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:1062158},{scenarioId:`incident-postmortem`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:129476},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:117724},{scenarioId:`plan-and-estimate`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:63536},{scenarioId:`conflict-synthesis`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:27449}]},{modelId:`ornith-9b-q4`,label:`ornith-9b-q4`,engine:`llama-cpp`,tier:`small`,parameterSize:`9B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:657,decodeTokensPerSec:64.9,samples:1},runtime:{contextTokens:65536,peakMemoryMb:10067},judge:{meanScore:6.7,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:106460},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:179073},{scenarioId:`tankcombat`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:2326990},{scenarioId:`schema-migration`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:172557},{scenarioId:`failing-tests-spec`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:150821},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:109278},{scenarioId:`data-wrangle`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:521570},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:83799},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:65528},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:45558},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:109937}]},{modelId:`gemma4-12b-q4`,label:`gemma4-12b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`12B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:543,decodeTokensPerSec:50.9,samples:1},runtime:{contextTokens:65536,peakMemoryMb:30402},judge:{meanScore:4.8,artifacts:26,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:46956},{scenarioId:`craftbook-week-plan`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:177609},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:1050110},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:59371},{scenarioId:`records-intake`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:583544},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:49170},{scenarioId:`meeting-followup`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:107204},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:369254},{scenarioId:`conflict-synthesis`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:168667},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:32835},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:37837},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:2108584},{scenarioId:`wikipedia-research-brief`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:257623}]},{modelId:`gemma4-31b-q4`,label:`gemma4-31b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`30.7B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:195,decodeTokensPerSec:22.3,samples:1},runtime:{contextTokens:65536,peakMemoryMb:30794},judge:{meanScore:6.5,artifacts:18,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:168716},{scenarioId:`craftbook-week-plan`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:1052662},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:128607},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:98989},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:83832},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:73657},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:746771},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:137053},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:229288},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:64008},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:150517},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:751029},{scenarioId:`wikipedia-research-brief`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:456482}]},{modelId:`gemma4-e4b-q4`,label:`gemma4-e4b-q4`,engine:`llama-cpp`,tier:`small`,parameterSize:`8B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:1411,decodeTokensPerSec:97.8,samples:1},runtime:{contextTokens:65536,peakMemoryMb:9066},judge:{meanScore:5.2,artifacts:22,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22062},{scenarioId:`craftbook-week-plan`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:238267},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:112574},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:37210},{scenarioId:`records-intake`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:283236},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:27207},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:32101},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:112743},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:37094},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:395957},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:45171},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:646877},{scenarioId:`wikipedia-research-brief`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:157381}]},{modelId:`ornith-9b-q4`,label:`ornith-9b-q4`,engine:`llama-cpp`,tier:`small`,parameterSize:`9B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:657,decodeTokensPerSec:64.9,samples:1},runtime:{contextTokens:65536,peakMemoryMb:9100},judge:{meanScore:6.5,artifacts:26,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:55601},{scenarioId:`craftbook-week-plan`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:119094},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:319284},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:55466},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:29693},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:50739},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:51139},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:204665},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:136705},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:46027},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:29793},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:665475},{scenarioId:`wikipedia-research-brief`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:75409}]}]},Zx=F({label:k().min(1),platform:k().min(1),arch:k().min(1),memoryGb:j().positive().optional(),osRelease:k().optional(),cpuModel:k().optional()}).strict(),Qx=F({startedAt:k().min(1),device:Zx,harnessCommit:k().min(1),gildeVersion:k().min(1),count:j().int().positive(),judgeModelId:k().nullable(),engineBuilds:R(k(),k()).optional()}).strict(),$x=F({id:k().min(1),provenance:Qx,suites:P(k().min(1)).min(1),scenariosBySuite:R(k(),P(k().min(1))),note:k().optional()}).strict(),eS=F({scenarioId:k().min(1),trials:j().int().nonnegative(),successes:j().int().nonnegative(),nonModelFailures:j().int().nonnegative(),medianDurationMs:j().nonnegative().optional()}).strict(),tS=F({prefillTokensPerSec:j().positive(),decodeTokensPerSec:j().positive(),samples:j().int().positive()}).strict(),nS=F({contextTokens:j().int().positive(),peakMemoryMb:j().int().positive()}).strict(),rS=F({meanScore:j().min(0).max(10),artifacts:j().int().positive(),judgeModel:k().min(1)}).strict(),iS=F({modelId:k().min(1),label:k().min(1),engine:k().min(1),tier:k().min(1),parameterSize:k().optional(),quantization:k().optional(),grantedContextTokens:j().int().positive().optional(),runId:k().min(1),suiteId:k().min(1),performance:tS.optional(),runtime:nS.optional(),judge:rS.optional(),cells:P(eS)}).strict();F({schemaVersion:B(1),runs:P($x),results:P(iS)}).strict().superRefine((e,t)=>{let n=new Set(e.runs.map(e=>e.id));for(let r of e.results)n.has(r.runId)||t.addIssue({code:`custom`,message:`result ${r.modelId}/${r.suiteId} names unknown run "${r.runId}"`});let r=new Set;for(let n of e.results){let e=`${n.runId}::${n.suiteId}::${n.modelId}`;r.has(e)&&t.addIssue({code:`custom`,message:`duplicate result for ${e}`}),r.add(e)}}).parse(Xx);var aS=/outcome|verify_outcome|set_task_status/i;function oS(e){let t=[];for(let n of e)switch(n.kind){case`minBytes`:t.push(`\u2265${n.bytes} bytes`);break;case`totalMinBytes`:t.push(`\u2265${n.bytes} bytes total`);break;case`cssMinBytes`:t.push(`\u2265${n.bytes} bytes CSS`);break;case`fileCount`:t.push(`\u2265${n.min} files`);break;case`sniff`:t.push(`${n.sniff}`);break;case`csvShape`:t.push(`CSV shape`);break;case`contains`:t.push(`content match`);break;case`notContains`:t.push(`forbidden content absent`);break;default:t.push(`check`)}return t.join(`, `)}function sS(e){let t=e.gate?zu(e.gate):void 0;if(e.advanceWhen?.file)return{file:e.advanceWhen.file,gate:t};let n=t?.checks.find(e=>`file`in e&&typeof e.file==`string`);if(n)return{file:n.file,gate:t};let r=t?.checks.find(e=>e.kind===`fileCount`&&!!e.dir);return r&&r.kind===`fileCount`&&r.dir?{file:r.dir,gate:t}:{gate:t}}function cS(e){if(e.assignee?.kind===`gezel`)return e.assignee.gezelId;if(e.suggestedGezelId)return e.suggestedGezelId;if(e.suggestedRole)return e.suggestedRole}function lS(e){let t=e.craftbook.steps.map(e=>{let{file:t,gate:n}=sS(e),r=!!n&&(n.checks.length>0||n.scripts.length>0)||!!e.advanceWhen?.file,i=!!e.terminal&&aS.test(e.prompt??``),a=[];return n&&n.checks.length>0&&a.push(oS(n.checks)),n&&n.scripts.length>0&&a.push(`${n.scripts.length} script${n.scripts.length===1?``:`s`}`),{id:e.id,name:e.name,...e.description?{description:e.description}:{},...t?{deliverable:t}:{},...a.length>0?{enforcement:a.join(`, `)}:{},gated:r,terminal:!!e.terminal,isVerification:i,...cS(e)?{assignee:cS(e)}:{}}}),n=t.filter(e=>!e.terminal);return{title:e.title,about:(e.description??``).trim(),outcomes:e.outcomes??[],steps:t,buildStepCount:n.length,gatedBuildStepCount:n.filter(e=>e.gated).length,hasVerification:t.some(e=>e.isVerification)}}function uS(e){let t=[];if(e.about.length<120&&t.push(`the plan has only a thin "about" — flesh out the goal`),e.outcomes.length<3&&t.push(`fewer than 3 outcomes are defined`),e.buildStepCount===0)t.push(`the plan has no build steps`);else if(e.gatedBuildStepCount<e.buildStepCount){let n=e.steps.filter(e=>!e.terminal&&!e.gated).map(e=>e.name).join(`, `);t.push(`some steps have no concrete deliverable + gate: ${n}`)}return e.hasVerification||t.push(`there is no final verification step`),t}function dS(e){let t=lS(e),n=[];if(n.push(`# Plan: ${t.title}`,``),t.about&&n.push(t.about,``),n.push(`## Outcomes`,``),t.outcomes.length===0)n.push(`_No outcomes defined yet._`,``);else{for(let e of t.outcomes){let t=e.met?`[x]`:`[ ]`,r=e.met&&e.evidence?` \u2014 _verified: ${e.evidence}_`:``;n.push(`- ${t} ${e.text}${r}`)}n.push(``)}n.push(`## Plan steps`,``),t.steps.length===0?n.push(`_No steps yet._`,``):(t.steps.forEach((e,t)=>{let r=e.assignee?` \xB7 _${e.assignee}_`:``,i=e.isVerification?` · _verification_`:``;if(n.push(`${t+1}. **${e.name}**${r}${i}`),e.description&&n.push(` ${e.description}`),e.deliverable){let t=e.enforcement?` (${e.enforcement})`:``;n.push(` \u2192 Deliverable: \`${e.deliverable}\`${t}`)}else e.terminal||n.push(` → ⚠️ no concrete deliverable or gate`)}),n.push(``));let r=uS(t);return n.push(`---`,``),n.push(r.length===0?`✅ Ready to run.`:`\u26A0\uFE0F Before running: ${r.join(`; `)}.`),n.join(`
221
+ `)}${Pb}`}),truncated:!0}}var Lb=[`deepseek-r1`,`qwq`,`gpt-oss`,`qwen3-thinking`];function Rb(e){if(!e)return!1;let t=e.toLowerCase();return Lb.some(e=>t.startsWith(e)||t.includes(e))}var zb=.8,Bb=65536,Vb=32768,Hb=16*1024**3,Ub=8*1024**3;function Wb(e){let t=e.gpuVramBytes;return t!==null&&t>0?t<=Ub:e.totalRamBytes>0&&e.totalRamBytes<=Hb}function Gb(e){return e&&Wb(e)?Vb:Bb}function Kb(e,t){let n=e.kvBytesPerTokenF16;if(n===void 0||n<=0)return 0;let r=t?.ctxTokens??65536,i=t?.cacheScale??.55;return Math.round((n*r+(e.kvFixedBytesF16??0))*i)}function qb(e){let{residentBytes:t,isMoE:n,usableBytes:r,totalRamBytes:i,gpuVramBytes:a}=e,o=e.admissibleBytes??i*zb;return t<=r?{tier:`fits`,label:a==null?`fits in memory`:`fits in VRAM`,detail:`Runs fully within the fast memory budget.`,runnable:!0}:n&&a!=null&&t<=o?(e.nonExpertBytes??t*.15)<=r?{tier:`fits-offload`,label:`runs (expert offload)`,detail:`Larger than VRAM, but this is a Mixture-of-Experts model — its experts stream from system RAM while attention runs on the GPU.`,runnable:!0}:{tier:`tight`,label:`may run slowly`,detail:`A Mixture-of-Experts model, but even its always-active layers exceed this GPU — parts run from system RAM on the CPU, so expect slower generation.`,runnable:!0}:t<=o?{tier:`tight`,label:`may run slowly`,detail:`Exceeds the fast memory budget but fits in system RAM — expect slower generation.`,runnable:!0}:{tier:`too-big`,label:`may not fit`,detail:`Larger than this machine can hold — it may fail to load or run out of memory.`,runnable:!1}}function Jb(e){return e?e.some(e=>{let t=e.toLowerCase();return t===`moe`||t.includes(`expert`)}):!1}function Yb(e){let t=[e.llamaCpp?.huggingfaceRepo,e.mlx?.huggingfaceRepo,e.ds4?.huggingfaceRepo].map(e=>e?Zb(e):null).filter(e=>e!==null),n=e.maker?.url?Qb(e.maker.url):null,r=e.maintainer.url?Qb(e.maintainer.url):null,i=e.upstream?Qb(e.upstream):null,a=new Set(t.map($b)),o=[e.maintainer.name,r].filter(e=>e!==null).some(e=>a.has($b(e))),s=i?a.has($b(i)):!1,c=!e.maker&&o&&i&&!s,l=e.maker?.name??(c?Xb(i):e.maintainer.name),u=new Set([$b(l)]);n&&u.add($b(n)),i&&u.add($b(i)),!e.maker&&!c&&(u.add($b(e.maintainer.name)),r&&u.add($b(r)));let d=[],f=new Set,p=e.maker?[e.maintainer.name,...t]:t;for(let e of p){let t=$b(e);!t||u.has(t)||f.has(t)||(f.add(t),d.push(e))}return{maker:l,customizers:d}}function Xb(e){return{"deepseek-ai":`DeepSeek`,"zai-org":`Z.ai`}[e.toLowerCase()]??e}function Zb(e){let t=e.indexOf(`/`);return t>0?e.slice(0,t):null}function Qb(e){try{let t=new URL(e);return t.hostname.toLowerCase()===`huggingface.co`?t.pathname.split(`/`).filter(Boolean)[0]??null:null}catch{return null}}function $b(e){return e.toLowerCase().replace(/[^a-z0-9]/g,``)}var ex=[{key:`spawn`,label:`did not start`},{key:`toolRoundTrip`,label:`tool calls failed`},{key:`throughput`,label:`slow decoding`},{key:`reasoningBudget`,label:`unbounded reasoning`},{key:`contextFit`,label:`small context`}],tx=[{minTps:100,tier:`ok`,detail:`It decodes faster than you can read.`},{minTps:30,tier:`ok`,detail:`It decodes at a comfortable working speed.`},{minTps:2,tier:`ok`,detail:`It works, but long answers and tool loops will take a while.`},{minTps:0,tier:`warn`,detail:`It is too slow on this machine for practical agentic work.`}];function nx(e){return e>=10?Math.round(e):Number(e.toFixed(1))}function rx(e){let t=e/1e3;return t<10?`${Number(t.toFixed(1))}s`:`${Math.round(t)}s`}function ix(e){return e>=1e3?`${Number((e/1e3).toFixed(e>=1e4?0:1))}K`:`${e}`}function ax(e){return!e||e.tier===`fits`||e.tier===`fits-offload`?``:` Memory fit: ${e.label} \u2014 ${e.detail}`}function ox(e){let{ramFit:t,fitness:n,probing:r}=e;if(r)return{tier:`probing`,label:`checking fitness…`,detail:`A fitness check (proeve) is running against this model.`};if(!n||n.stale)return{tier:`unknown`,label:`not checked yet`,detail:(n?.stale?`The model changed since its last fitness check — run it again.`:`No fitness check has run for this model yet.`)+ax(t)};let{record:i,hardwareChanged:a}=n,o=a?` Hardware has changed since this check — consider re-running it.`:``;if(i.status===`blocked`)return{tier:`unknown`,label:`did not run`,detail:`The fitness check could not run \u2014 the engine was busy serving other requests. Nothing is wrong with the model; run the check again in a moment.${o}${ax(t)}`};if(i.status===`failed`){let e=ex.find(e=>!i.checks[e.key].ok);return{tier:`warn`,label:`fitness check failed`,detail:`The fitness check could not complete: ${e?i.checks[e.key].detail:i.checks.spawn.detail}${o}${ax(t)}`}}if(i.status===`deferred`)return{tier:`unknown`,label:`check deferred`,detail:`The automatic fitness check waited for memory headroom and gave up \u2014 run it manually.${ax(t)}`};if(!i.admitted){let e=ex.filter(e=>!i.checks[e.key].ok),n=e[0],r=e.map(e=>i.checks[e.key].detail).join(` `);return{tier:`warn`,label:n?.label??`fitness concerns`,detail:r+o+ax(t)}}let s=`It starts, calls tools, and answers.`,c=i.representativeContext,l=c?c.genTokensPerSec:i.genTokensPerSec;if(l==null){if(c?.ttftMs!=null){let e=c.promptTokens??c.targetPromptTokens;return{tier:`ok`,label:`starts ~${rx(c.ttftMs)} \xB7 speed unknown`,detail:`${s} With a representative ${ix(e)}-token prompt, first model output arrived in ${rx(c.ttftMs)}; decode speed was not measured.${o}${ax(t)}`}}return{tier:`ok`,label:c?`representative speed unknown`:`short prompt · speed unknown`,detail:c?`${s} Its representative-context decode speed was not measured.${o}${ax(t)}`:`${s} This older check did not measure representative-context performance; re-run it for realistic startup and decode timing.${o}${ax(t)}`}}let u=nx(l),d=tx.find(e=>u>=e.minTps)??tx[tx.length-1];if(c){let e=c.promptTokens??c.targetPromptTokens,n=`With a representative ${ix(e)}-token prompt`,r=c.ttftMs==null?`time to first output was not measured`:`first model output arrived in ${rx(c.ttftMs)}`,a=c.promptTokensPerSec==null?``:` Prefill ran at ${nx(c.promptTokensPerSec)} t/s.`,l=c.cachedPromptTokens!=null&&c.cachedPromptTokens>0?` ${c.cachedPromptTokens.toLocaleString()} prompt tokens came from cache.`:``,f=i.shortPromptGenTokensPerSec==null?``:` Short-prompt decode was ${nx(i.shortPromptGenTokensPerSec)} t/s.`;return{tier:d.tier,label:c.ttftMs==null?`${ix(e)} context \xB7 ${u} t/s`:`starts ~${rx(c.ttftMs)} \xB7 ${u} t/s`,detail:`${s} ${n}, ${r}, and decode ran at ${u} t/s. ${d.detail}${a}${l}${f}${o}${ax(t)}`}}return{tier:d.tier,label:`short prompt \xB7 ${u} t/s`,detail:`${s} This older check measured only short-prompt decode (${u} t/s); re-run it for realistic startup and loaded-context timing. ${d.detail}${o}${ax(t)}`}}var sx=1024**3;function cx(e){return typeof e.recoScore==`number`&&e.recoScore>0&&e.licenseClass===`open`&&e.supportsTools!==!1}var lx=24*sx,ux=8*sx;function dx(e){if(e.platform===`darwin`)return!1;let t=e.gpuMemoryKind??(e.gpuVramBytes==null?`none`:`unknown`);return t===`unified`?!1:t===`integrated`||t===`none`||e.gpuVramBytes==null||e.gpuVramBytes<ux}function fx(e){return e.platform===`darwin`||e.gpuMemoryKind===`integrated`||e.gpuMemoryKind===`unified`||e.gpuVramBytes!=null&&e.gpuVramBytes>=.75*e.totalRamBytes}function px(e){return fx(e)?!0:e.gpuVramBytes!=null&&e.gpuVramBytes<=lx}function mx(e,t){if(dx(e)&&t.fitTier!==`too-big`&&t.residentBytes!=null&&t.residentBytes>ux)return{kind:`low-acceleration-caution`,label:`large model — likely very slow here`,detail:`This model may load by using system memory, but this machine has no fast accelerator large enough to run it well. A small model will be substantially more usable.`};if(!px(e))return null;let n=t.fitTier!==`too-big`;return t.isMoE&&n?{kind:`moe-good-match`,label:`good match for this machine`,detail:`This machine's memory bandwidth favors Mixture-of-Experts models — only a few experts work per word, so they respond faster than a dense model of the same size.`}:!t.isMoE&&n&&t.residentBytes!=null&&t.residentBytes>e.usableBytes/2?{kind:`large-dense-caution`,label:`dense — may respond slowly here`,detail:`A large dense model reads all of its weights for every word. On this machine, memory bandwidth will pace it — a Mixture-of-Experts model of similar size will feel faster.`}:null}var hx=.8;function gx(e){return e.gpuVramBytes==null?e.platform===`darwin`?Math.floor(e.totalRamBytes*hx):0:e.gpuVramBytes}function _x(e,t){return!(t.minRamGB!=null&&e.totalRamBytes<t.minRamGB*sx||t.minVramGB!=null&&gx(e)<t.minVramGB*sx)}function vx(e){if(!e.startsWith(`mcp__`))return e;let t=e.split(`__`);return t.length<3?e:t.slice(2).join(`__`)}var yx=`James.William.Henry.George.Oliver.Harry.Jack.Oscar.Leo.Arthur.Thomas.Edward.Charlie.Freddie.Archie.Hugo.Felix.Louis.Theo.Max.Gabriel.Raphael.Jules.Lucas.Ethan.Nathan.Adam.Noah.Liam.Aaron.Lukas.Maximilian.Leon.Finn.Elias.Jonas.Moritz.Niklas.Paul.Tim.Matteo.Luca.Lorenzo.Alessandro.Giovanni.Leonardo.Riccardo.Edoardo.Tommaso.Gabriele.Marco.Filippo.Pietro.Giacomo.Giulio.Enzo.Dante.Fabio.Silvio.Bruno.Alejandro.Santiago.Mateo.Sebastian.Diego.Emiliano.Thiago.Joaquin.Salvador.Pablo.Carlos.Fernando.Enrique.Javier.Gonzalo.Rafael.Miguel.Andres.Eduardo.Francisco.Roberto.Gustavo.Ignacio.Rodrigo.Alvaro.Ramon.Benicio.Bautista.Gael.Iker.Pedro.Henrique.Bernardo.Vinicius.Heitor.Caio.Luciano.Valentino.Marcello.Joao.Rui.Nuno.Afonso.Tomas.Guilherme.Martim.Davi.Breno.Danilo.Erik.Bjorn.Lars.Sven.Anders.Magnus.Aksel.Soren.Nils.Leif.Gunnar.Ragnar.Harald.Olof.Ivar.Sigurd.Arvid.Peder.Henrik.Vilhelm.Axel.Emil.Viggo.Alvar.Stellan.Torsten.Einar.Sten.Folke.Arne.Dmitri.Pavel.Ivan.Igor.Oleg.Yuri.Mikhail.Andrei.Sergei.Nikita.Pyotr.Fyodor.Semyon.Stanislav.Vladimir.Vitaly.Ruslan.Roman.Stepan.Gennady.Bogdan.Miroslav.Mircea.Dragos.Florin.Sorin.Vlad.Codrin.Traian.Lucian.Constantin.Gheorghe.Ionut.Petru.Aurel.Liviu.Ovidiu.Vasile.Radu.Dan.Jakub.Marek.Vojtech.Karel.Krzysztof.Wojciech.Lech.Mieszko.Tadeusz.Casimir.Janos.Imre.Zoltan.Gyorgy.Laszlo.Csaba.Geza.Lajos.Istvan.Jozsef.Nikola.Branko.Dragan.Zoran.Goran.Darko.Milan.Srdjan.Predrag.Dusan.Marin.Tomislav.Hrvoje.Luka.Kresimir.Matej.Josip.Ante.Dario.Ivica.Valdas.Mindaugas.Andrius.Giedrius.Rokas.Edvinas.Darius.Matas.Janis.Arturs.Raivis.Maris.Aldis.Guntis.Karlis.Ugis.Dainis.Edgars.Nikolaos.Konstantinos.Stavros.Spyridon.Leonidas.Marios.Stefanos.Loukas.Alexios.Markos.Aristides.Themistocles.Theodoros.Dionysios.Athanasios.Christos.Georgios.Vasilis.Kostas.Pavlos.Mehmet.Kemal.Emir.Ugur.Kerem.Metehan.Suleyman.Osman.Timur.Aslan.Hayk.Areg.Tigran.Samvel.Hovhannes.Ashot.Gevorg.Narek.Davit.Gagik.Giorgi.Levan.Irakli.Zurab.Tamaz.Shota.Vakhtang.Nikoloz.Dato.Archil.Mohammed.Ibrahim.Ali.Omar.Hassan.Hussein.Khalid.Tariq.Hamza.Youssef.Amine.Rachid.Wassim.Bilal.Fahd.Faisal.Saeed.Amir.Kamal.Wahid.Ismail.Mustafa.Hasan.Hisham.Abdullah.Abdulaziz.Nabil.Sami.Hatem.Mazen.Yassine.Ayoub.Younes.Zakaria.Hani.Taha.Rami.Badr.Adel.Nader.Kwame.Kofi.Amadou.Moussa.Mamadou.Ibrahima.Abdoulaye.Cheikh.Oumar.Sekou.Bakary.Lamin.Modou.Souleymane.Lassana.Daouda.Boubacar.Samba.Yaya.Aliou.Oluwaseun.Chidi.Emeka.Obinna.Adebayo.Femi.Tunde.Kayode.Yemi.Bola.Ebou.Kebba.Baboucarr.Ebrima.Ousman.Alassane.Drissa.Seydou.Tidiane.Thierno.Abdi.Amanuel.Tsegaye.Haile.Dawit.Tesfaye.Bereket.Solomon.Kidane.Yonas.Mwenda.Juma.Baraka.Rajabu.Hamisi.Rashidi.Makame.Daudi.Salim.Bakari.Sipho.Thabo.Tsepo.Lesedi.Lethabo.Sibusiso.Mandla.Bongani.Nkosi.Menzi.Arjun.Vikram.Raj.Anand.Sunil.Ravi.Manoj.Anil.Rohit.Deepak.Pradeep.Sanjay.Rajesh.Dinesh.Santosh.Kumar.Hari.Mohan.Gopal.Ashok.Krishna.Chandra.Dhruv.Vedant.Viraj.Reyansh.Kabir.Arnav.Aditya.Rohan.Farhan.Zain.Shahid.Usman.Asif.Imran.Kamran.Naveed.Hiroshi.Takeshi.Haruto.Minato.Asahi.Hinata.Yuito.Sora.Iori.Ren.Daichi.Kenta.Akio.Hajime.Taro.Masato.Kazuhiro.Riku.Sota.Hayato.Wei.Jun.Hao.Ming.Chen.Chun.Yi.Jian.Tao.Feng.Long.Hung.Hieu.Tuan.Duy.Hoang.Nam.Son.Huy.Toan.Jihoon.Minho.Seongjun.Taeyang.Hyun.Jaewon.Donghyun.Seojun.Jimin.Woojin.Somchai.Somsak.Prasit.Narong.Wichian.Udom.Sombun.Sombat.Somphon.Prasoet.Rizal.Slamet.Supardi.Wahyudi.Mulyadi.Agus.Budi.Hendra.Dwi.Bayu.Matias.Jericho.Aldrin.Elijah.Carlo.Angelo.Nico.Aidar.Nursultan.Daniyar.Alikhan.Yerlan.Marat.Bolat.Arman.Serik.Dauren.Aisultan.Nurzhan.Temirlan.Bauyrzhan.Alisher.Jamshid.Rustam.Farhod.Sardor.Ulugbek.Khangai.Tushig.Batbold.Ganzorig.Erdene.Monkh.Sukhbaatar.Enkhbat.Nyamaa.Dolgion.Tane.Matiu.Rawiri.Wiremu.Hone.Tamati.Manu.Sione.Tevita.Peni.Isireli.Josefa.Epeli.Mosese.Waisale.Makoa.Koa.Keanu.Leilani.Kaleo.Daniel.Benjamin.Alexander.Michael.Samuel.David.Joseph.Joshua.Isaiah.Nathaniel.Caleb.Malachi.Ezekiel.Joel.Jonah.Seth.Silas.Abel.Tobias.Victor.Martin.Simon.Christian.Julian.Adrian.Patrick.Ruben.Stefan.Florian.Marcel.Dominik.Fabian.Bastian.Clemens.Leopold.Valentin.Lorenz.Kilian.Wendelin.Vincent.Antoine.Romain.Adrien.Baptiste.Corentin.Thibault.Quentin.Maxime.Damien.Tristan.Julien.Mathieu.Pierre.Yann.Tanguy.Loic.Gauthier.Erwan.Aurelien.Xavier.Patricio.Leandro.Ramiro.Maximo.Aurelio.Primitivo.Fermin.Andrej.Bojan.Dejan.Nenad.Slobodan.Sinisa.Vuk.Nemanja.Aleksandar.Filip.Ondrej.Radek.Zbynek.Premysl.Bohuslav.Jaroslav.Zdenek.Vilem.Svatopluk.Eneko.Ander.Aitor.Unai.Mikel.Gorka.Asier.Julen.Xabier.Oier.Desmond.Declan.Ciaran.Niall.Cormac.Eamon.Ronan.Padraig.Colm.Lorcan.Angus.Hamish.Callum.Alistair.Fergus.Lachlan.Murray.Fraser.Gavin.Stuart.Leander.Mats.Colin.Bennet.Anton.Emilio.Ole.Malte.Nick.Till.Oskar.Frederik.Philipp.Timo.Noam.Sacha.Eden.Nolan.Kylian.Ilyas.Mael.Marius.Leonard.Gaspard.Augustin.Charles.Eliott.Livio.Alban.Gianluca.Salvatore.Vincenzo.Domenico.Flavio.Fulvio.Emanuele.Cosimo.Loris.Samuele.Alessio.Raffaele.Davide.Mirko.Stefano.Nicola.Antonio.Pasquale.Alex.Alonso.Isaac.Alfonso.Alfredo.Armando.Cristian.Eugenio.Fidel.Gregorio.Hernan.Horacio.Humberto.Jaime.Felipe.Saulo.Otavio.Wellington.Matheus.Murilo.Emanuel.Cauan.Ryan.Bento.Anthony.Alfie.Theodore.Rory.Bobby.Reuben.Tommy.Elliot.Mason.Albert.Sean.Aidan.Brendan.Conor.Owen.Kieran.Brian.Aarne.Eino.Veikko.Tauno.Arto.Jussi.Jari.Pekka.Matti.Olafur.Thor.Jon.Egill.Kristjan.Arnar.Helgi.Danylo.Nazar.Taras.Mykola.Bohdan.Andriy.Oleksandr.Vladyslav.Yaroslav.Serhii.Milos.Dimitrije.Mihailo.Lazar.Ognjen.Uros.Bogoljub.Zvonimir.Borivoje.Michal.Attila.Tamas.Peter.Bence.Zsombor.Levente.Marton.Dimitrios.Ioannis.Panagiotis.Antonios.Michail.Charalampos.Evangelos.Lazaros.Apostolos.Anastasios.Alper.Burak.Cem.Emre.Ferit.Halil.Koray.Levent.Murat.Onur.Sedat.Serkan.Taner.Yavuz.Can.Deniz.Bora.Tolga.Okan.Reza.Farhad.Mehran.Siavash.Arash.Kian.Hossein.Majid.Parviz.Nasser.Jamil.Karim.Basim.Waleed.Munir.Rafiq.Sulayman.Talib.Fouad.Fahad.Waqas.Sohail.Rashid.Azhar.Shahzad.Farooq.Adnan.Nadeem.Zubair.Aarav.Aryan.Ayaan.Ishaan.Kartik.Vihaan.Krish.Dev.Rishi.Yash.Aman.Sahil.Varun.Nikhil.Gaurav.Pranav.Shivam.Siddharth.Ankit.Rajat.Rahul.Vivek.Amit.Akash.Vishal.Harsh.Tanmay.Ayush.Darshan.Rakesh.Kiran.Suresh.Mahesh.Naresh.Mukesh.Ramesh.Ganesh.Umesh.Chaiyo.Thaksin.Surasak.Arthit.Kittipong.Anucha.Chai.Manop.Praphat.Weerapat.Bagus.Eko.Gunawan.Hariyanto.Joko.Nugroho.Pramono.Sutrisno.Yuda.Triono.Liang.Kai.Bo.Lei.Bin.Gang.Peng.Qiang.Shen.Xiang.Yun.Zhi.Jie.Dong.Yong.Chao.Cheng.Hui.Kun.Youngho.Sungmin.Daehyun.Joonho.Hyunwoo.Seungwoo.Jaehyun.Kyungmin.Jungwoo.Taemin.Yuma.Yuto.Itsuki.Sosuke.Yusuke.Kenji.Satoshi.Takumi.Shunsuke.Kotaro.Yuuki.Kazuki.Shohei.Ryota.Kenichi.Naoki.Tsubasa.Haruki.Kaito.Ryu.Sergio.Rogelio.Ricardo.Melvin.Chukwuemeka.Ikechukwu.Nnamdi.Uchenna.Ugonna.Chinonso.Okechukwu.Obiora.Ifeanyi.Chibuzo.Mamoudou.Abdul.Ismaila.Yusupha.Karamo.Serigne.Mehari.Getachew.Alemayehu.Zelalem.Yohannes.Girma`.split(`.`),bx=`Emma.Olivia.Isla.Amelia.Charlotte.Sophia.Grace.Lily.Ivy.Freya.Poppy.Sienna.Chloe.Alice.Eleanor.Florence.Imogen.Matilda.Rosie.Violet.Manon.Lea.Camille.Oceane.Jade.Louise.Juliette.Margot.Adele.Clemence.Mia.Hannah.Leonie.Lena.Clara.Marie.Lara.Johanna.Amelie.Annika.Giulia.Ginevra.Beatrice.Aurora.Bianca.Chiara.Lucia.Francesca.Valentina.Sofia.Allegra.Fiamma.Ludovica.Sveva.Azzurra.Elettra.Tosca.Viola.Arianna.Gaia.Catalina.Valeria.Camila.Isabella.Luciana.Mariana.Gabriela.Fernanda.Daniela.Regina.Alejandra.Ximena.Natalia.Paloma.Renata.Macarena.Pilar.Rocio.Lourdes.Carmen.Guadalupe.Milagros.Esperanza.Trinidad.Mercedes.Consuelo.Blanca.Dolores.Maite.Aitana.Ana.Beatriz.Ines.Leonor.Madalena.Filipa.Margarida.Teresa.Luisa.Joana.Heloisa.Luana.Vitoria.Isadora.Leticia.Lorena.Bruna.Tamires.Rafaela.Milena.Astrid.Ingrid.Sigrid.Freja.Saga.Elsa.Linnea.Maja.Ebba.Wilma.Signe.Tuva.Thea.Nora.Alma.Solveig.Hedvig.Liv.Tove.Ragnhild.Gudrun.Helga.Dagny.Ylva.Tyra.Edda.Hulda.Frida.Elin.Greta.Anastasia.Natasha.Irina.Olga.Tatiana.Dasha.Lada.Vera.Galina.Inna.Svetlana.Lyubov.Nadezhda.Yekaterina.Polina.Alina.Kseniya.Darya.Veronika.Marina.Ioana.Mihaela.Andreea.Corina.Luminita.Viorica.Florina.Narcisa.Doina.Brandusa.Codrina.Crenguia.Georgiana.Nicoleta.Cristina.Simona.Adriana.Roxana.Raluca.Katarzyna.Jadwiga.Zofia.Agnieszka.Malgorzata.Bozena.Wanda.Halina.Lucyna.Elzbieta.Katalin.Piroska.Eniko.Boglarka.Csilla.Orsolya.Reka.Ildiko.Magdolna.Erzsebet.Jelena.Vesna.Dragana.Snezana.Jasmina.Aleksandra.Ivana.Gordana.Biljana.Ljerka.Dubravka.Mirjana.Nada.Slavica.Sunita.Ankica.Branka.Davorka.Sanja.Austra.Ilze.Inese.Laima.Daina.Ieva.Zane.Maija.Ruta.Sigita.Athena.Callirrhoe.Daphne.Penelope.Phoebe.Ariadne.Calliope.Cassandra.Electra.Thalia.Aspasia.Xanthi.Despina.Polyxeni.Nefeli.Myrto.Irene.Theodora.Chrysanthe.Elpida.Aylin.Elif.Nilay.Sevda.Ayla.Baran.Gunel.Gunay.Aysel.Tarana.Gayane.Armine.Arpi.Lusine.Hasmik.Narine.Mane.Nare.Lilit.Yeva.Tamara.Nino.Maia.Salome.Tamar.Ekaterine.Ketevan.Tinatin.Rusudan.Medea.Fatima.Aisha.Mariam.Zahra.Noor.Layla.Rania.Huda.Amira.Salma.Iman.Aya.Malak.Dina.Hana.Yasmin.Asma.Eman.Farida.Samira.Leila.Meriem.Aicha.Imene.Lyna.Rayhane.Sabrina.Nesreen.Shahd.Reem.Mayar.Jouri.Soujoud.Ashraqat.Beya.Hoda.Hayat.Naima.Zineb.Aminata.Fatou.Fatoumata.Aissatou.Kadiatou.Oumou.Fanta.Coumba.Hawa.Ndeye.Awa.Daba.Bintou.Mariama.Adama.Aminah.Ahou.Affoue.Akissi.Amoin.Funmilayo.Ngozi.Adaeze.Chidinma.Oluchi.Yetunde.Modupe.Titilayo.Bukola.Folake.Abena.Akua.Ama.Adjoa.Efua.Adwoa.Afua.Yaa.Ekua.Araba.Amara.Zuri.Nia.Makena.Wanjiku.Akinyi.Njeri.Nyambura.Wangari.Adhiambo.Rehema.Saida.Hadija.Marjani.Kibibi.Bahati.Zawadi.Tulinagwe.Neema.Furaha.Nomsa.Thandiwe.Nontobeko.Zanele.Sibongile.Lindiwe.Bongiwe.Zodwa.Busisiwe.Lungile.Priya.Neha.Pooja.Deepika.Anita.Kavita.Meera.Laxmi.Rekha.Aadhya.Devi.Sita.Radha.Indra.Shanti.Usha.Asha.Jiya.Aditi.Fatimah.Sadia.Ayesha.Taslima.Farjana.Sharmin.Nasrin.Rabeya.Mahua.Hasina.Yuki.Sakura.Aoi.Himari.Mei.Kokona.Akari.Yui.Mio.Rin.Sayo.Reika.Megumi.Keiko.Michiko.Yoko.Haruna.Kei.Misaki.Li.Ling.Ting.Xin.Yue.Lan.Hong.Fang.Jing.Linh.Mai.Huong.Ngoc.Thao.Trang.Hien.Nhung.Oanh.Minji.Soyeon.Eunji.Boram.Haneul.Jisoo.Yuna.Hayoung.Chaerin.Dahyun.Siti.Nurhayati.Sumarni.Ernawati.Sulastri.Kartini.Dewi.Putri.Ratna.Wulan.Maria.Andrea.Patricia.Angela.Jasmine.Althea.Bea.Katrina.Trisha.Carmela.Araya.Siriporn.Malee.Pikul.Ploy.Nittaya.Sumalee.Kannika.Wilai.Pimchan.Ainur.Madina.Gulnara.Zhanna.Aizhan.Saule.Asel.Moldir.Zarina.Malika.Nilufar.Gulbahor.Dilorom.Nodira.Shoira.Feruza.Barno.Nasiba.Kumush.Oyunbileg.Tsetseg.Enkhtuya.Narantsetseg.Ariunaa.Bolormaa.Sarantuya.Dulamsuren.Bayarmaa.Altantsetseg.Aroha.Mereana.Hinerangi.Piata.Anahera.Moana.Manaia.Tia.Kiri.Rangi.Mere.Waimarie.Sela.Mele.Litia.Makelesi.Salote.Laisa.Kelera.Abigail.Emily.Elizabeth.Katherine.Margaret.Victoria.Sarah.Rachel.Rebecca.Julia.Laura.Claire.Helen.Catherine.Diana.Eve.Caroline.Josephine.Vivian.Eloise.Colette.Fleur.Solange.Delphine.Mireille.Giselle.Helene.Simone.Celeste.Heidi.Liesel.Marlene.Ilse.Petra.Hannelore.Dagmar.Brunhilde.Elfriede.Isabel.Amparo.Soledad.Reyes.Nieves.Begonya.Nuria.Montserrat.Siobhan.Niamh.Aisling.Caoimhe.Ciara.Grainne.Aoife.Roisin.Maeve.Sinead.Eilidh.Morag.Fiona.Mhairi.Elspeth.Catriona.Ailsa.Iona.Sorcha.Iveta.Pavlina.Marketa.Blanka.Libuse.Vendula.Milada.Vlastimila.Jovana.Tijana.Teodora.Bojana.Andjela.Nikolina.Mila.Dunja.Tara.Aida.Emina.Amra.Lejla.Selma.Azra.Edina.Merima.Jasminka.Sophie.Lina.Ida.Lotta.Pauline.Helena.Elena.Nina.Viktoria.Stefanie.Nadine.Jessica.Rose.Anna.Zoe.Romane.Inaya.Capucine.Lou.Maya.Eva.Agathe.Iris.Ambre.Lola.Martina.Alessia.Elisa.Nicole.Giorgia.Vittoria.Matilde.Noemi.Asia.Camilla.Angelica.Benedetta.Marta.Carla.Sara.Claudia.Nerea.Alba.Candela.Noa.Vega.Leire.Ainhoa.Triana.Amaya.Manuela.Cecilia.Eloah.Lavinia.Livia.Amanda.Mirella.Pietra.Carolina.Mafalda.Ava.Isabelle.Evie.Ella.Willow.Millie.Elsie.Harper.Saoirse.Orla.Bridget.Kathleen.Deirdre.Clodagh.Sile.Rhona.Shona.Kirsty.Moira.Senga.Rona.Effie.Marsali.Kenna.Euna.Aino.Saara.Kaisa.Helmi.Venla.Tiina.Riikka.Anniina.Mirka.Pinja.Hildur.Bryndis.Sigrun.Gudny.Thora.Svanhildur.Asta.Salka.Birna.Kolbrun.Yulia.Oksana.Yana.Viktoriya.Kateryna.Iryna.Mariya.Olesya.Milica.Mina.Jovanka.Ljiljana.Desanka.Milanka.Svitlana.Lesya.Taisiya.Ruslana.Lyudmyla.Zoryana.Marichka.Valentyna.Liliya.Daryna.Eleni.Vasiliki.Christina.Ioanna.Katerina.Konstantina.Angeliki.Zeynep.Defne.Irem.Ecrin.Nisa.Esma.Buse.Ceren.Dilara.Melis.Derya.Seda.Esra.Pinar.Gamze.Tugce.Cansu.Eda.Leyla.Nahid.Parvin.Shirin.Sepideh.Maryam.Mahsa.Sanaz.Narges.Roya.Zeinab.Khadija.Ruqayya.Karima.Mounia.Siham.Yasmina.Zainab.Hira.Saba.Mahnoor.Ayza.Alishba.Eshal.Zara.Ananya.Diya.Aanya.Pari.Myra.Kavya.Anika.Saanvi.Riya.Navya.Aarohi.Shanaya.Anvi.Ira.Vanya.Mahi.Nisha.Shreya.Pallavi.Swati.Preeti.Jyoti.Manisha.Rashmi.Shilpa.Vandana.Pranee.Malai.Kanya.Bua.Lamai.Darika.Chanchai.Suda.Wipa.Orathai.Sri.Ayu.Ani.Endang.Sari.Tuti.Tari.Fitri.Indah.Rini.Yan.Na.Juan.Min.Ying.Xia.Lin.Ping.Hua.Qing.Xuan.Yu.Zhen.Rong.Shu.Xiu.Ai.Seoyeon.Jiwoo.Seoyun.Haeun.Jiyu.Yerin.Chaewon.Dayeon.Yujin.Ichika.Tsumugi.Koharu.Riko.Kanon.Ayaka.Erika.Natsuki.Saki.Nanami.Ayane.Shiori.Honoka.Miyu.Kaede.Ayano.Rosario.Teresita.Corazon.Remedios.Gloria.Imelda.Trinh.Quynh.Hang.Duyen.Phuong.Thuy.Tuyet.Bich.Diem.Chiamaka.Chinyere.Amaka.Chinelo.Ifeoma.Obiageli.Uzoamaka.Nkechi.Ebere.Adaora.Fatimata.Haby.Kadidja.Maimouna.Ramatoulaye.Bineta.Khadidiatou.Sokhna.Astou.Hirut.Meseret.Tigist.Workinesh.Almaz.Genet.Bizunesh.Abeba.Birtukan.Etenesh.Ayanda.Nosipho.Nonhlanhla.Thandeka.Bongi.Refilwe.Kgomotso.Dineo.Masego.Palesa.Julieta.Constanza.Francisca.Javiera.Antonia.Florencia.Agustina.Emilia.Josefina.Isidora.Aigerim.Aruzhan.Karina.Kamila.Amina.Sofiya.Milana.Anelya.Vaiana.Heilani.Nalani.Kalea.Noelani.Mahina.Alana.Keala.Kailani.Khulan.Altai.Anu.Uyanga.Otgonbayar.Munkhzul.Khishigjargal.Naran.Urantsetseg.Tuul.Paola.Khaliunaa.Setsuko.Chimamanda.Nneka.Fatoumatta.Nneoma.Yemisi.Abimbola.Folashade`.split(`.`);function xx(){let e=[...yx,...bx];return e[Math.floor(Math.random()*e.length)]}var Sx=.04;new Set(bx),new Set(yx);function Cx(e){switch(e){case`male`:return`he/him`;case`female`:return`she/her`;case`non-binary`:return`they/them`}}function wx(e){switch(e){case`male`:return{subject:`he`,object:`him`,possessiveAdjective:`his`,possessive:`his`,reflexive:`himself`,presentBe:`is`,presentHave:`has`};case`female`:return{subject:`she`,object:`her`,possessiveAdjective:`her`,possessive:`hers`,reflexive:`herself`,presentBe:`is`,presentHave:`has`};case`non-binary`:case void 0:return{subject:`they`,object:`them`,possessiveAdjective:`their`,possessive:`theirs`,reflexive:`themselves`,presentBe:`are`,presentHave:`have`}}}function Tx(){let e=Math.random()<.5,t=e?bx:yx,n=t[Math.floor(Math.random()*t.length)];return Math.random()<Sx?{name:n,gender:`non-binary`}:{name:n,gender:e?`female`:`male`}}new Map([{id:`af_heart`,name:`Heart`,language:`en-US`,gender:`female`,grade:`A`},{id:`af_bella`,name:`Bella`,language:`en-US`,gender:`female`,grade:`A-`},{id:`af_nicole`,name:`Nicole`,language:`en-US`,gender:`female`,grade:`B-`},{id:`af_aoede`,name:`Aoede`,language:`en-US`,gender:`female`,grade:`C+`},{id:`af_kore`,name:`Kore`,language:`en-US`,gender:`female`,grade:`C+`},{id:`af_sarah`,name:`Sarah`,language:`en-US`,gender:`female`,grade:`C+`},{id:`af_alloy`,name:`Alloy`,language:`en-US`,gender:`female`,grade:`C`},{id:`af_nova`,name:`Nova`,language:`en-US`,gender:`female`,grade:`C`},{id:`af_sky`,name:`Sky`,language:`en-US`,gender:`female`,grade:`C-`},{id:`af_jessica`,name:`Jessica`,language:`en-US`,gender:`female`,grade:`D`},{id:`af_river`,name:`River`,language:`en-US`,gender:`female`,grade:`D`},{id:`am_michael`,name:`Michael`,language:`en-US`,gender:`male`,grade:`C+`},{id:`am_fenrir`,name:`Fenrir`,language:`en-US`,gender:`male`,grade:`C+`},{id:`am_puck`,name:`Puck`,language:`en-US`,gender:`male`,grade:`C+`},{id:`am_echo`,name:`Echo`,language:`en-US`,gender:`male`,grade:`D`},{id:`am_eric`,name:`Eric`,language:`en-US`,gender:`male`,grade:`D`},{id:`am_liam`,name:`Liam`,language:`en-US`,gender:`male`,grade:`D`},{id:`am_onyx`,name:`Onyx`,language:`en-US`,gender:`male`,grade:`D`},{id:`am_santa`,name:`Santa`,language:`en-US`,gender:`male`,grade:`D-`},{id:`am_adam`,name:`Adam`,language:`en-US`,gender:`male`,grade:`F+`},{id:`bf_emma`,name:`Emma`,language:`en-GB`,gender:`female`,grade:`B-`},{id:`bf_isabella`,name:`Isabella`,language:`en-GB`,gender:`female`,grade:`C`},{id:`bf_alice`,name:`Alice`,language:`en-GB`,gender:`female`,grade:`D`},{id:`bf_lily`,name:`Lily`,language:`en-GB`,gender:`female`,grade:`D`},{id:`bm_george`,name:`George`,language:`en-GB`,gender:`male`,grade:`C`},{id:`bm_fable`,name:`Fable`,language:`en-GB`,gender:`male`,grade:`C`},{id:`bm_lewis`,name:`Lewis`,language:`en-GB`,gender:`male`,grade:`D+`},{id:`bm_daniel`,name:`Daniel`,language:`en-GB`,gender:`male`,grade:`D`}].map(e=>[e.id,e]));function Ex(e,t){let n=new Set(jy.filter(e=>e.slot===t).map(e=>e.option));return e.filter(e=>!n.has(e))}var Dx=Ex(Sd,`hat`),Ox=Ex(Cd,`dress`),kx=Ex(Td,`accessory`);function Ax(e){let t=5381,n=String(e||`x`);for(let e=0;e<n.length;e++)t=(t<<5)+t^n.charCodeAt(e);return Math.abs(t)%100}function jx(e,t){let n=Math.imul(e>>>0^2654435769,2654435761);return n=Math.imul((n^n>>>15)+(t|0),2246822507),n^=n>>>13,n=Math.imul(n,3266489909),n^=n>>>16,n>>>0}function Mx(e,t,n){return jx(e,t)%n}function Nx(e,t){return jx(e,t^625341585)%1e3/1e3}function Px(e,t){let n=e[t];if(n===void 0)throw Error(`poppetje catalog lookup out of range: ${t}/${e.length}`);return n}function Fx(e,t){let n=Dd[e];return Ed[(t&&n.byGender?.[t])??n.rarity]}function Ix(e,t){let n=e*kx.reduce((e,n)=>e+Fx(n,t),0);for(let e of kx)if(n-=Fx(e,t),n<0)return e;return kx[kx.length-1]}function Lx(e){let t=e=>Ed[Od[e]],n=e*Ox.reduce((e,n)=>e+t(n),0);for(let e of Ox)if(n-=t(e),n<0)return e;return Ox[Ox.length-1]}function Rx(e,t={}){let n=Px(Pd.skins,Mx(e,1,Pd.skins.length)),r=Px(Pd.shirts,Mx(e,2,Pd.shirts.length)),i=Px(vd,Mx(e,3,vd.length)),a=Px(Pd.hairs,Mx(e,4,Pd.hairs.length)),o=Px(wd,Mx(e,5,wd.length)),s=Nx(e,6)<Fd.hat?Px(Dx,Mx(e,7,Dx.length)):null,c=Nx(e,8)<Fd.dress?Lx(Nx(e,9)):null,l=Nx(e,10)<Fd.accessory?Ix(Nx(e,11),t.gender):null,u=t.gender!==`female`&&Nx(e,15)<Fd.facialHair?Px(kd,Mx(e,16,kd.length)):null,d=Nx(e,12)<Fd.mark?Mx(e,13,2)===0?`freckles`:`mole`:null,f=Px(Nd,Mx(e,14,Nd.length)),p=Nx(e,17),m=(Id.find(e=>p<=e.upTo)??Id[Id.length-1]).scale,h=jd.filter(e=>e!==`plain`),g=Nx(e,18)<Fd.shirtPattern?Px(h,Mx(e,19,h.length)):`plain`;return{key:t.key??`seed-${e}`,name:t.name??`Seed #${e}`,bodyShape:i,figureScale:m,skin:n.skin,skin2:n.skin2,hair:a,hairShape:o,hat:s,dress:c,accessory:l,facialHair:u,mark:d,expression:f,shirt:r.shirt,shirtAccent:r.accent,shirtPattern:g}}function zx(e,t,n){let r=2166136261;for(let t=0;t<e.length;t++)r^=e.charCodeAt(t),r=Math.imul(r,16777619);return Rx(Math.abs(r)>>>0,{key:e,name:t,gender:n})}var Bx=F({extensions:P(k()).optional(),modalities:P(k()).optional(),keywords:P(k()).optional()}),Vx=F({templateId:k(),reason:k()}),Hx=F({default:P(Vx),suggested:P(Vx)});F({id:k(),label:k(),description:k(),detect:Bx,craftbookTags:P(k()),gezelRoles:Hx});var Ux=[{id:`browser-game`,label:`Browser Game`,description:`An interactive game that runs in the browser — HTML/Canvas, sprites, input loops.`,detect:{extensions:[`html`,`js`,`ts`,`css`],keywords:[`game`,`arcade`,`sprite`,`player`,`shooter`,`enemy`,`score`,`level`,`collision`,`canvas`,`gameplay`]},craftbookTags:[`game`,`arcade`,`puzzle`,`idle`,`incremental`,`clicker`,`game-jam`,`micro-game`,`board-game`,`turn-based`,`multiscreen`,`physics`,`simulation`,`sprite`,`game-art`,`atlas`],gezelRoles:{default:[{templateId:`builder`,reason:`Owns the game from mechanics and code through a playable release.`}],suggested:[{templateId:`designer`,reason:`Shapes the game board, feedback, and visual language.`},{templateId:`reviewer`,reason:`Tests gameplay, edge cases, and release quality.`}]}},{id:`web-app`,label:`Web App`,description:`An interactive web application — components, routes, forms, an API it talks to.`,detect:{extensions:[`tsx`,`jsx`,`ts`,`js`,`css`,`html`,`vue`,`svelte`],keywords:[`app`,`dashboard`,`login`,`auth`,`frontend`,`react`,`component`,`form`,`user`,`spa`]},craftbookTags:[`html`,`website`,`dashboard`,`form`,`pwa`,`responsive`,`accessibility`,`a11y`,`wcag`,`api`,`backend`,`http`,`seo`,`performance`],gezelRoles:{default:[{templateId:`builder`,reason:`Owns the product flow from interface through implementation and release.`}],suggested:[{templateId:`designer`,reason:`Improves layout, hierarchy, and interaction quality.`},{templateId:`reviewer`,reason:`Provides an independent quality and accessibility pass.`},{templateId:`veiligheidsmeester`,reason:`Reviews authentication, data handling, dependencies, and attack surface.`}]}},{id:`static-site`,label:`Static Site`,description:`A content-first website — landing pages, blog, marketing copy, mostly static HTML.`,detect:{extensions:[`html`,`css`,`md`,`mdx`,`js`],keywords:[`website`,`landing`,`blog`,`marketing`,`seo`,`homepage`,`portfolio`,`docs`]},craftbookTags:[`website`,`html`,`landing-page`,`hero`,`seo`,`responsive`,`accessibility`,`a11y`,`wcag`,`content`,`marketing`],gezelRoles:{default:[{templateId:`builder`,reason:`Builds and ships the site as a coherent whole.`}],suggested:[{templateId:`designer`,reason:`Strengthens the visual system and responsive layout.`},{templateId:`copywriter`,reason:`Sharpens the message for the intended reader.`},{templateId:`reviewer`,reason:`Checks polish, accessibility, links, and release quality.`}]}},{id:`data-analysis`,label:`Data Analysis`,description:`Analysis of a dataset — notebooks, scripts, charts, reports, SQL.`,detect:{extensions:[`py`,`ipynb`,`csv`,`tsv`,`r`,`sql`,`parquet`],keywords:[`data`,`dataset`,`analysis`,`analytics`,`pandas`,`chart`,`report`,`statistics`,`metrics`,`visualization`]},craftbookTags:[`data`,`analysis`,`etl`,`pipeline`,`sql`,`visualization`,`dashboard`,`report`,`reporting`,`metrics`,`kpi`,`time-series`,`finance`],gezelRoles:{default:[{templateId:`researcher`,reason:`Investigates the data and turns evidence into a substantive analysis.`}],suggested:[{templateId:`builder`,reason:`Builds repeatable analysis pipelines and deliverables.`},{templateId:`reviewer`,reason:`Challenges assumptions, calculations, and conclusions.`}]}},{id:`api-service`,label:`API / Backend Service`,description:`A server-side service — REST/GraphQL endpoints, a database, background jobs.`,detect:{extensions:[`ts`,`js`,`py`,`go`,`rs`,`java`,`rb`],keywords:[`api`,`endpoint`,`rest`,`graphql`,`server`,`backend`,`openapi`,`database`,`microservice`,`webhook`]},craftbookTags:[`api`,`backend`,`rest`,`http`,`sdk`,`schema`,`integration`,`security`,`testing`,`tests`,`tdd`],gezelRoles:{default:[{templateId:`builder`,reason:`Owns the service from API shape through deployment.`}],suggested:[{templateId:`reviewer`,reason:`Checks contracts, failure modes, and test coverage.`},{templateId:`veiligheidsmeester`,reason:`Reviews trust boundaries, secrets, dependencies, and exposed endpoints.`}]}},{id:`cli-tool`,label:`CLI / Tooling`,description:`A command-line tool, script, or automation utility.`,detect:{extensions:[`ts`,`js`,`py`,`go`,`rs`,`sh`,`bash`],keywords:[`cli`,`command`,`terminal`,`tool`,`script`,`automation`,`utility`]},craftbookTags:[`tooling`,`automation`,`script`,`testing`,`tests`,`quality`,`refactor`],gezelRoles:{default:[{templateId:`builder`,reason:`Takes the tool from command design through distribution.`}],suggested:[{templateId:`reviewer`,reason:`Checks ergonomics, errors, portability, and tests.`},{templateId:`veiligheidsmeester`,reason:`Reviews shell boundaries, filesystem access, inputs, and dependencies.`}]}},{id:`library`,label:`Library / SDK`,description:`A reusable library, package, or SDK consumed by other code.`,detect:{extensions:[`ts`,`js`,`py`,`go`,`rs`],keywords:[`library`,`package`,`sdk`,`module`,`npm`,`crate`,`gem`]},craftbookTags:[`library`,`sdk`,`documentation`,`reference`,`api`,`testing`,`tests`,`tdd`,`semver`,`versioning`,`changelog`,`release`,`release-notes`,`refactor`,`quality`],gezelRoles:{default:[{templateId:`builder`,reason:`Owns the public API, implementation, and release path.`}],suggested:[{templateId:`reviewer`,reason:`Checks API clarity, compatibility, tests, and docs.`},{templateId:`veiligheidsmeester`,reason:`Audits dependency risk and unsafe public behavior before release.`}]}},{id:`content-writing`,label:`Writing / Content`,description:`Long-form writing — articles, docs, copy, newsletters.`,detect:{extensions:[`md`,`mdx`,`txt`,`docx`,`rst`],keywords:[`article`,`blog`,`copy`,`post`,`essay`,`documentation`,`content`,`newsletter`,`writing`]},craftbookTags:[`writing`,`copywriting`,`content`,`document`,`documentation`,`long-form`,`newsletter`,`seo`,`comms`,`brief`,`summary`],gezelRoles:{default:[{templateId:`copywriter`,reason:`Turns the brief into clear writing for real readers.`}],suggested:[{templateId:`researcher`,reason:`Finds and organizes the evidence behind the piece.`},{templateId:`reviewer`,reason:`Provides a rigorous editorial and factual second pass.`},{templateId:`schrijfmaat`,reason:`Supports sustained long-form and creative drafting.`}]}},{id:`media-production`,label:`Media Production`,description:`Audio, video, or image production — assets, captions, transcripts.`,detect:{extensions:[`png`,`jpg`,`jpeg`,`svg`,`gif`,`mp3`,`wav`,`mp4`,`mov`],modalities:[`image`],keywords:[`audio`,`video`,`podcast`,`image`,`design`,`asset`,`recording`,`clip`]},craftbookTags:[`audio`,`video`,`image`,`images`,`image-generation`,`tts`,`podcast`,`narration`,`transcription`,`design`,`branding`,`vision`,`ocr`],gezelRoles:{default:[{templateId:`designer`,reason:`Sets the visual direction and keeps the assets coherent.`}],suggested:[{templateId:`image-generator`,reason:`Produces image assets from a focused brief.`},{templateId:`video-generator`,reason:`Produces video assets from a focused brief.`},{templateId:`copywriter`,reason:`Develops scripts, captions, titles, and supporting copy.`}]}},{id:`design-prototype`,label:`Design / Prototype`,description:`A visual design or UI prototype — mockups, hero sections, branding.`,detect:{extensions:[`html`,`css`,`svg`,`fig`],keywords:[`design`,`prototype`,`mockup`,`wireframe`,`ui`,`ux`,`branding`]},craftbookTags:[`design`,`svg`,`hero`,`branding`,`interactive`,`responsive`,`accessibility`,`a11y`,`wcag`,`html`,`canvas`],gezelRoles:{default:[{templateId:`designer`,reason:`Owns the concept, hierarchy, and visual direction.`}],suggested:[{templateId:`builder`,reason:`Turns the design into a working, testable prototype.`},{templateId:`reviewer`,reason:`Checks usability, accessibility, and consistency.`}]}},{id:`social-media`,label:`Social Media`,description:`A public posting presence — drafting, approving, publishing, and reading reception across social feeds.`,detect:{extensions:[`md`,`json`,`png`,`jpg`],keywords:[`social`,`feed`,`bluesky`,`instagram`,`linkedin`,`followers`,`engagement`,`mentions`,`caption`,`hashtag`,`repost`]},craftbookTags:[`social`,`post`,`digest`,`engagement`,`analytics`,`copywriting`],gezelRoles:{default:[{templateId:`omroeper`,reason:`Runs the feed — drafts, queues, and reads the room.`}],suggested:[{templateId:`copywriter`,reason:`Sharpens the words when a post has to land.`},{templateId:`image-generator`,reason:`Produces the visuals for media-first posts.`}]}},{id:`email`,label:`Email / Inbox`,description:`Email threads synced into the project — triage, drafting, summarizing, and correspondence.`,detect:{extensions:[`md`,`eml`],modalities:[`email`],keywords:[`inbox`,`email`,`reply`,`thread`,`correspondence`,`triage`,`newsletter`]},craftbookTags:[`email`,`inbox-triage`,`triage`,`summary`,`brief`,`writing`],gezelRoles:{default:[{templateId:`copywriter`,reason:`Drafts clear replies in the right voice and context.`}],suggested:[{templateId:`kantoormeester`,reason:`Keeps operational follow-ups from slipping.`},{templateId:`researcher`,reason:`Investigates background before consequential replies.`}]}},{id:`job-hunt`,label:`Job Hunt`,description:`A job-search campaign — tracked applications, tailored materials, interviews, offers.`,detect:{extensions:[`md`],keywords:[`job`,`career`,`resume`,`cv`,`interview`,`application`,`recruiter`,`offer`,`hiring`,`apply`]},craftbookTags:[`career`,`job`,`resume`,`cv`,`interview`,`offer`,`application`],gezelRoles:{default:[{templateId:`career-coach`,reason:`Runs the search as a campaign and keeps the application pipeline moving.`}],suggested:[{templateId:`mock-interviewer`,reason:`Provides realistic interview practice and feedback.`},{templateId:`copywriter`,reason:`Tailors resumes, cover letters, and outreach.`}]}}];function Wx(e){if(e)return Ux.find(t=>t.id===e)}function Gx(){return Ux}function Kx(e,t){return t?{name:e,scope:`standard`,inputs:t}:{name:e,scope:`standard`}}var qx={meester:{id:`meester`,label:`Meester`,summary:`Coordinator: delegates work across the gezel workforce; does not build directly.`,toolsetGroups:[`team-management`,`tasks-readonly`,`craftbook-launch`,`craftbooks`,`artifacts`,`memory`,`documents`,`doc-intel`,`entity-intel`,`interaction`,`history`,`handboek`],suggestedTuningProfile:`thinking-precise`,gateAffinity:[],defaultBooks:[`status-report`,`weekly-review`],capabilityFloor:`medium`},voorman:{id:`voorman`,label:`Voorman`,summary:`Foreman: triages, diagnoses, and routes work to specialists; read-only investigator.`,toolsetGroups:[`team-management`,`tasks`,`craftbooks`,`artifacts`,`documents`,`doc-intel`,`memory`,`interaction`,`history`,`workspace-fs-read`,`handboek`],suggestedTuningProfile:`thinking-general`,gateAffinity:[],defaultBooks:[`investigate-root-cause`,`release-readiness-review`,`bug-fix-tdd`],capabilityFloor:`medium`},reviewer:{id:`reviewer`,label:`Reviewer`,summary:`Reviews code and deliverables; verifies claims against sources before approving.`,toolsetGroups:[`workspace-fs-read`,`workspace-fs-write`,`code-intel`,`security-intel`,`git`,`tasks`,`artifacts`,`memory`,`documents`,`doc-intel`,`entity-intel`,`interaction`,`web`,`handboek`],suggestedTuningProfile:`thinking-precise`,gateAffinity:[Kx(`checkCitationsResolve`)],defaultBooks:[`pull-request-review`,`design-review`,`deep-security-review`,`pr-security-review`,`test-coverage-review`],capabilityFloor:`medium`},researcher:{id:`researcher`,label:`Researcher`,summary:`Answers questions from sources; cites every claim and grounds facts in authorized inputs.`,toolsetGroups:[`workspace-fs-read`,`workspace-fs-write`,`code-intel`,`doc-intel`,`entity-intel`,`tasks-readonly`,`artifacts`,`memory`,`documents`,`interaction`,`web`,`browser-automation`,`handboek`],suggestedTuningProfile:`thinking-general`,gateAffinity:[Kx(`checkCitationsResolve`),Kx(`checkValueGrounding`)],defaultBooks:[`research-report`,`literature-review`,`competitive-analysis`,`due-diligence-brief`,`fact-check`],capabilityFloor:`medium`},copywriter:{id:`copywriter`,label:`Copywriter`,summary:`Drafts comms and marketing copy under length/tone constraints.`,toolsetGroups:[`workspace-fs-read`,`workspace-fs-write`,`documents`,`doc-intel`,`tasks`,`artifacts`,`web`,`memory`,`interaction`,`handboek`],suggestedTuningProfile:`creative`,gateAffinity:[Kx(`checkWordBand`),Kx(`checkReadingLevel`)],defaultBooks:[`blog-post`,`landing-copy`,`press-release`,`email-sequence`,`product-descriptions`],capabilityFloor:`small`},designer:{id:`designer`,label:`Designer`,summary:`Designs visual deliverables; generates and places imagery into pages.`,toolsetGroups:[`workspace-fs-read`,`workspace-fs-write`,`images`,`image-intel`,`tasks`,`artifacts`,`documents`,`web`,`memory`,`interaction`,`handboek`],suggestedTuningProfile:`creative`,gateAffinity:[Kx(`checkImageRefsResolve`)],defaultBooks:[`hero-image`,`landing-page`,`moodboard`,`svg-animation`,`logo-set`],capabilityFloor:`small`},"image-generator":{id:`image-generator`,label:`Image Generator`,summary:`Produces images via generate_image; no direct file writes.`,toolsetGroups:[`images`,`image-intel`,`tasks`,`artifacts`,`documents`,`memory`,`interaction`,`handboek`],gateAffinity:[Kx(`checkImageRefsResolve`)],defaultBooks:[`logo-set`,`icon-pack`,`hero-image`,`thumbnail-generator`],capabilityFloor:`tiny`},"video-generator":{id:`video-generator`,label:`Video Generator`,summary:`Produces short video clips via generate_video; no direct file writes.`,toolsetGroups:[`videos`,`tasks`,`artifacts`,`documents`,`memory`,`interaction`,`handboek`],gateAffinity:[],defaultBooks:[],capabilityFloor:`tiny`},developer:{id:`developer`,label:`Developer`,summary:`Builds and fixes code; works to task-specific build and test gates.`,toolsetGroups:[`workspace-fs-read`,`workspace-fs-write`,`code-intel`,`code-execution`,`git`,`tasks`,`artifacts`,`memory`,`interaction`,`handboek`],suggestedTuningProfile:`thinking-coding`,gateAffinity:[],defaultBooks:[`build-loop`,`bug-fix-tdd`,`rest-api`,`refactor-module`,`cli-tool`],capabilityFloor:`small`},"web-developer":{id:`web-developer`,label:`Web Developer`,summary:`Frontend/full-stack code with live browser work.`,toolsetGroups:[`workspace-fs-read`,`workspace-fs-write`,`code-intel`,`code-execution`,`git`,`tasks`,`artifacts`,`memory`,`interaction`,`web`,`handboek`],suggestedTuningProfile:`thinking-coding`,gateAffinity:[],defaultBooks:[`landing-page`,`spa-dashboard`,`web-app-crud`,`portfolio-site`,`pwa-offline`],capabilityFloor:`small`},planner:{id:`planner`,label:`Planner`,summary:`Turns a brief into a structured, owned, checkable plan.`,toolsetGroups:[`tasks`,`team-management`,`artifacts`,`documents`,`doc-intel`,`memory`,`interaction`,`web`,`handboek`],suggestedTuningProfile:`thinking-precise`,gateAffinity:[Kx(`checkOrderedSections`),Kx(`checkTableShape`),Kx(`checkPlanStructure`)],defaultBooks:[`spec-doc`,`proposal-sow`,`dashboard-spec`,`board-deck`,`onboarding-checklist`],capabilityFloor:`medium`}},Jx=[{contains:`meester`,canonical:`meester`},{contains:`voorman`,canonical:`voorman`},{contains:`foreman`,canonical:`voorman`},{contains:`coach`,canonical:`voorman`},{contains:`researcher`,canonical:`researcher`},{contains:`research`,canonical:`researcher`},{contains:`analyst`,canonical:`researcher`},{contains:`reviewer`,canonical:`reviewer`},{contains:`review`,canonical:`reviewer`},{contains:`designer`,canonical:`designer`},{contains:`design`,canonical:`designer`},{contains:`tekenaar`,canonical:`designer`},{contains:`assetsmid`,canonical:`designer`},{contains:`copywriter`,canonical:`copywriter`},{contains:`writer`,canonical:`copywriter`},{contains:`verhalenverteller`,canonical:`copywriter`},{contains:`planner`,canonical:`planner`},{contains:`plan`,canonical:`planner`},{contains:`web developer`,canonical:`web-developer`},{contains:`web-developer`,canonical:`web-developer`},{contains:`frontend`,canonical:`web-developer`},{contains:`front-end`,canonical:`web-developer`},{contains:`front end`,canonical:`web-developer`},{contains:`full-stack`,canonical:`web-developer`},{contains:`fullstack`,canonical:`web-developer`},{contains:`full stack`,canonical:`web-developer`},{contains:`developer`,canonical:`developer`},{contains:`engineer`,canonical:`developer`},{contains:`programmer`,canonical:`developer`},{contains:`builder`,canonical:`developer`},{contains:`coder`,canonical:`developer`},{contains:`devops`,canonical:`developer`},{contains:`image generator`,canonical:`image-generator`},{contains:`image-generator`,canonical:`image-generator`},{contains:`image generation`,canonical:`image-generator`},{contains:`image-generation`,canonical:`image-generator`},{contains:`video generator`,canonical:`video-generator`},{contains:`video-generator`,canonical:`video-generator`},{contains:`video generation`,canonical:`video-generator`},{contains:`video-generation`,canonical:`video-generator`}];function Yx(e){if(!e)return null;let t=e.toLowerCase().trim();if(t in qx)return t;for(let e of Jx)if(t.includes(e.contains))return e.canonical;return null}var Xx={schemaVersion:1,runs:[{id:`2026-08-13-m4max-llamacpp`,provenance:{startedAt:`2026-08-13T07:05:36.620Z`,device:{label:`Mac · Apple M4 Max`,platform:`darwin`,arch:`arm64`,memoryGb:64,osRelease:`darwin 25.5.0`,cpuModel:`Apple M4 Max`},harnessCommit:`c5904085`,gildeVersion:`0.1.23`,count:3,judgeModelId:null},suites:[`core`,`productivity`],scenariosBySuite:{core:[`tictactoe`,`petshop`,`tankcombat`,`schema-migration`,`failing-tests-spec`,`symptom-debug`,`data-wrangle`,`incident-postmortem`,`ops-runbook-anomaly`,`plan-and-estimate`,`conflict-synthesis`],productivity:[`constrained-comms`,`craftbook-week-plan`,`craftbook-ab-test-readout`,`craftbook-annotated-bibliography`,`records-intake`,`plan-and-estimate`,`meeting-followup`,`craftbook-spreadsheet-model`,`conflict-synthesis`,`docblocks-theme-roundtrip`,`craftbook-research-to-document`,`craftbook-powerpoint-deck`,`wikipedia-research-brief`]}},{id:`2026-08-11-m4max-llamacpp`,provenance:{startedAt:`2026-08-11T16:21:09.513Z`,device:{label:`Mac · Apple M4 Max`,platform:`darwin`,arch:`arm64`,memoryGb:64,osRelease:`darwin 25.5.0`,cpuModel:`Apple M4 Max`},harnessCommit:`b2ea2819`,gildeVersion:`0.1.20`,count:3,judgeModelId:null},suites:[`core`,`productivity`],scenariosBySuite:{core:[`tictactoe`,`petshop`,`tankcombat`,`schema-migration`,`failing-tests-spec`,`symptom-debug`,`data-wrangle`,`incident-postmortem`,`ops-runbook-anomaly`,`plan-and-estimate`,`conflict-synthesis`],productivity:[`constrained-comms`,`craftbook-week-plan`,`craftbook-ab-test-readout`,`craftbook-annotated-bibliography`,`records-intake`,`plan-and-estimate`,`meeting-followup`,`craftbook-spreadsheet-model`,`conflict-synthesis`,`docblocks-theme-roundtrip`,`craftbook-research-to-document`,`craftbook-powerpoint-deck`,`wikipedia-research-brief`]}},{id:`2026-08-09-m4max-llamacpp`,provenance:{startedAt:`2026-08-09T23:39:13.000Z`,device:{label:`Mac · Apple M4 Max`,platform:`darwin`,arch:`arm64`,memoryGb:64,osRelease:`darwin 25.5.0`,cpuModel:`Apple M4 Max`},harnessCommit:`e2859602`,gildeVersion:`0.1.17`,count:3,judgeModelId:null},suites:[`core`,`productivity`],scenariosBySuite:{core:[`tictactoe`,`petshop`,`tankcombat`,`schema-migration`,`failing-tests-spec`,`symptom-debug`,`data-wrangle`,`incident-postmortem`,`ops-runbook-anomaly`,`plan-and-estimate`,`conflict-synthesis`],productivity:[`constrained-comms`,`craftbook-week-plan`,`craftbook-ab-test-readout`,`craftbook-annotated-bibliography`,`records-intake`,`plan-and-estimate`,`meeting-followup`,`craftbook-spreadsheet-model`,`conflict-synthesis`,`docblocks-theme-roundtrip`,`craftbook-research-to-document`,`craftbook-powerpoint-deck`,`wikipedia-research-brief`]},note:`Published scorecard sweep (llama-cpp, count-strict).`}],results:[{modelId:`gemma4-26b-q4`,label:`gemma4-26b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`25.2B`,runId:`2026-08-13-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:1264,decodeTokensPerSec:107.5,samples:1},runtime:{contextTokens:120832,peakMemoryMb:42690},judge:{meanScore:5.7,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:127411},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:482159},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:290618},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:69039},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:28770},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:83940},{scenarioId:`data-wrangle`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:48055},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:189005},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:233624},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:17679},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:52710}]},{modelId:`muse-glimmer-30b-q4`,label:`muse-glimmer-30b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`30B`,runId:`2026-08-13-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:226,decodeTokensPerSec:26,samples:1},runtime:{contextTokens:131072,peakMemoryMb:19638},judge:{meanScore:6.5,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:210652},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:356601},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:272117},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:269225},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:279796},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:239896},{scenarioId:`data-wrangle`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:563414},{scenarioId:`incident-postmortem`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:4467148},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:474336},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:150465},{scenarioId:`conflict-synthesis`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:404097}]},{modelId:`nemotron3.5-lightning-30b-q4`,label:`nemotron3.5-lightning-30b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`30B`,runId:`2026-08-13-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:1030,decodeTokensPerSec:93.2,samples:1},runtime:{contextTokens:1048576,peakMemoryMb:30085},judge:{meanScore:5.6,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:90179},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:899922},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:65485},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:133904},{scenarioId:`failing-tests-spec`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:230269},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:94023},{scenarioId:`data-wrangle`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:319197},{scenarioId:`incident-postmortem`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:223455},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:93099},{scenarioId:`plan-and-estimate`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:68902},{scenarioId:`conflict-synthesis`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:254006}]},{modelId:`qwen3.6-35b-a3b-q4`,label:`qwen3.6-35b-a3b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`35B`,runId:`2026-08-13-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:1104,decodeTokensPerSec:71.3,samples:1},runtime:{contextTokens:262144,peakMemoryMb:26502},judge:{meanScore:8.1,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:92213},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:162363},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:247709},{scenarioId:`schema-migration`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:186639},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:28425},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:37627},{scenarioId:`data-wrangle`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:47569},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:73048},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:98132},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:27443},{scenarioId:`conflict-synthesis`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:82923}]},{modelId:`gemma4-26b-q4`,label:`gemma4-26b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`25.2B`,runId:`2026-08-13-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:1264,decodeTokensPerSec:107.5,samples:1},runtime:{contextTokens:120832,peakMemoryMb:41762},judge:{meanScore:6,artifacts:19,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22693},{scenarioId:`craftbook-week-plan`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:58001},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:196546},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:33179},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:58377},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:17469},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:48022},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:191950},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:48088},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:27505},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:32944},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:937028},{scenarioId:`wikipedia-research-brief`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:81272}]},{modelId:`muse-glimmer-30b-q4`,label:`muse-glimmer-30b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`30B`,runId:`2026-08-13-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:228,decodeTokensPerSec:26,samples:2},runtime:{contextTokens:131072,peakMemoryMb:19648},judge:{meanScore:5.5,artifacts:25,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:168777},{scenarioId:`craftbook-week-plan`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:635096},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:505316},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:153322},{scenarioId:`records-intake`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:2593201},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:185158},{scenarioId:`meeting-followup`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:680419},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:541672},{scenarioId:`conflict-synthesis`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:344063},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:248997},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:274010},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:3009529},{scenarioId:`wikipedia-research-brief`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:353289}]},{modelId:`nemotron3.5-lightning-30b-q4`,label:`nemotron3.5-lightning-30b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`30B`,runId:`2026-08-13-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:1030,decodeTokensPerSec:93.2,samples:1},runtime:{contextTokens:1048576,peakMemoryMb:29452},judge:{meanScore:5.6,artifacts:27,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:91133},{scenarioId:`craftbook-week-plan`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:113088},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:283896},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:73049},{scenarioId:`records-intake`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:395444},{scenarioId:`plan-and-estimate`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:105986},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:113144},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:233654},{scenarioId:`conflict-synthesis`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:469600},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:109277},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:130992},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:791082},{scenarioId:`wikipedia-research-brief`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:136065}]},{modelId:`qwen3.6-35b-a3b-q4`,label:`qwen3.6-35b-a3b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`35B`,runId:`2026-08-13-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:1104,decodeTokensPerSec:71.3,samples:1},runtime:{contextTokens:262144,peakMemoryMb:25657},judge:{meanScore:6.6,artifacts:27,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22314},{scenarioId:`craftbook-week-plan`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:88382},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:303967},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:47530},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22365},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:32491},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:89751},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:228470},{scenarioId:`conflict-synthesis`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:211329},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:17446},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22407},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:1493404},{scenarioId:`wikipedia-research-brief`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:125222}]},{modelId:`gemma4-26b-q4`,label:`gemma4-26b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`25.2B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:1093,decodeTokensPerSec:89.6,samples:1},runtime:{contextTokens:120832,peakMemoryMb:41876},judge:{meanScore:6.4,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:158268},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:458751},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:402725},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:89305},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:23287},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:229755},{scenarioId:`data-wrangle`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:63079},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:147750},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:149797},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22655},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:52750}]},{modelId:`gemma4-31b-q4`,label:`gemma4-31b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`30.7B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:202,decodeTokensPerSec:23.3,samples:1},runtime:{contextTokens:262144,peakMemoryMb:44116},judge:{meanScore:6.7,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:336621},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:383525},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:461261},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:139061},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:91026},{scenarioId:`symptom-debug`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:661615},{scenarioId:`data-wrangle`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:169948},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:256081},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:326151},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:69751},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:230718}]},{modelId:`gemma4-e4b-q4`,label:`gemma4-e4b-q4`,engine:`llama-cpp`,tier:`small`,parameterSize:`8B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:1398,decodeTokensPerSec:94.7,samples:1},runtime:{contextTokens:131072,peakMemoryMb:13786},judge:{meanScore:4.7,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:119010},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:148699},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:165039},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:126625},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:262991},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:37973},{scenarioId:`data-wrangle`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:556042},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:119034},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:88136},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22180},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:32444}]},{modelId:`qwen3.6-27b-q4`,label:`qwen3.6-27b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`27B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:198,decodeTokensPerSec:18.5,samples:1},runtime:{contextTokens:262144,peakMemoryMb:26997},judge:{meanScore:8,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:229854},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:649484},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:419126},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:208009},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:85355},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:93666},{scenarioId:`data-wrangle`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:139045},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:277375},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:153416},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:83700},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:271090}]},{modelId:`qwen3.6-35b-a3b-q4`,label:`qwen3.6-35b-a3b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`35B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:1125,decodeTokensPerSec:76.4,samples:1},runtime:{contextTokens:262144,peakMemoryMb:27152},judge:{meanScore:8.2,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:87120},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:181403},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:222232},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:126575},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:28212},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:44205},{scenarioId:`data-wrangle`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:64385},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:103169},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:54095},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:44209},{scenarioId:`conflict-synthesis`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:67760}]},{modelId:`gemma4-26b-q4`,label:`gemma4-26b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`25.2B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:1093,decodeTokensPerSec:89.6,samples:1},runtime:{contextTokens:120832,peakMemoryMb:41182},judge:{meanScore:6.1,artifacts:20,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:42947},{scenarioId:`craftbook-week-plan`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:58360},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:225294},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:37330},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:42870},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22598},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:48380},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:264556},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:53338},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:32889},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:52880},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:518676},{scenarioId:`wikipedia-research-brief`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:150741}]},{modelId:`gemma4-31b-q4`,label:`gemma4-31b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`30.7B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:202,decodeTokensPerSec:23.3,samples:1},runtime:{contextTokens:262144,peakMemoryMb:46208},judge:{meanScore:6.1,artifacts:20,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:140085},{scenarioId:`craftbook-week-plan`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:215497},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:130794},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:93974},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:83955},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:70910},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:155149},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:130695},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:230125},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:69110},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:171110},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:2457341},{scenarioId:`wikipedia-research-brief`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:413963}]},{modelId:`gemma4-e4b-q4`,label:`gemma4-e4b-q4`,engine:`llama-cpp`,tier:`small`,parameterSize:`8B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:1398,decodeTokensPerSec:94.7,samples:1},runtime:{contextTokens:131072,peakMemoryMb:12649},judge:{meanScore:5.4,artifacts:25,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:115573},{scenarioId:`craftbook-week-plan`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:328887},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:535949},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:42736},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22450},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22920},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:23625},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:344138},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:32303},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:42301},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:27473},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:605526},{scenarioId:`wikipedia-research-brief`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:125017}]},{modelId:`qwen3.6-27b-q4`,label:`qwen3.6-27b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`27B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:198,decodeTokensPerSec:18.5,samples:1},runtime:{contextTokens:262144,peakMemoryMb:27643},judge:{meanScore:5.6,artifacts:24,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:63407},{scenarioId:`craftbook-week-plan`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:477656},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:666941},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:123623},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:62823},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:73094},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:83800},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:811753},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:284103},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:52858},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:67829},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:816995},{scenarioId:`wikipedia-research-brief`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:354676}]},{modelId:`qwen3.6-35b-a3b-q4`,label:`qwen3.6-35b-a3b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`35B`,runId:`2026-08-11-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:1125,decodeTokensPerSec:76.4,samples:1},runtime:{contextTokens:262144,peakMemoryMb:26234},judge:{meanScore:6.6,artifacts:26,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22331},{scenarioId:`craftbook-week-plan`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:67743},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:253979},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:53041},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22190},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:32415},{scenarioId:`meeting-followup`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:47245},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:238747},{scenarioId:`conflict-synthesis`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:303896},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:17641},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22232},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:823643},{scenarioId:`wikipedia-research-brief`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:62739}]},{modelId:`gemma4-12b-q4`,label:`gemma4-12b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`12B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:543,decodeTokensPerSec:50.9,samples:1},runtime:{contextTokens:65536,peakMemoryMb:31312},judge:{meanScore:6.9,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:194648},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:277803},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:238469},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:208767},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:42667},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:97239},{scenarioId:`data-wrangle`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:87663},{scenarioId:`incident-postmortem`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:293113},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:132797},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:49027},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:142413}]},{modelId:`gemma4-31b-q4`,label:`gemma4-31b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`30.7B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:195,decodeTokensPerSec:22.3,samples:1},runtime:{contextTokens:65536,peakMemoryMb:31768},judge:{meanScore:6.8,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:298322},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:437387},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:515862},{scenarioId:`schema-migration`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:138397},{scenarioId:`failing-tests-spec`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:79997},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:108879},{scenarioId:`data-wrangle`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:164211},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:294765},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:239363},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:69877},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:224264}]},{modelId:`gemma4-e4b-q4`,label:`gemma4-e4b-q4`,engine:`llama-cpp`,tier:`small`,parameterSize:`8B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:1411,decodeTokensPerSec:97.8,samples:1},runtime:{contextTokens:65536,peakMemoryMb:10651},judge:{meanScore:4.6,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:115809},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:137851},{scenarioId:`tankcombat`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:180906},{scenarioId:`schema-migration`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:348985},{scenarioId:`failing-tests-spec`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:231365},{scenarioId:`symptom-debug`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:21968},{scenarioId:`data-wrangle`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:1062158},{scenarioId:`incident-postmortem`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:129476},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:117724},{scenarioId:`plan-and-estimate`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:63536},{scenarioId:`conflict-synthesis`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:27449}]},{modelId:`ornith-9b-q4`,label:`ornith-9b-q4`,engine:`llama-cpp`,tier:`small`,parameterSize:`9B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`core`,performance:{prefillTokensPerSec:657,decodeTokensPerSec:64.9,samples:1},runtime:{contextTokens:65536,peakMemoryMb:10067},judge:{meanScore:6.7,artifacts:9,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`tictactoe`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:106460},{scenarioId:`petshop`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:179073},{scenarioId:`tankcombat`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:2326990},{scenarioId:`schema-migration`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:172557},{scenarioId:`failing-tests-spec`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:150821},{scenarioId:`symptom-debug`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:109278},{scenarioId:`data-wrangle`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:521570},{scenarioId:`incident-postmortem`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:83799},{scenarioId:`ops-runbook-anomaly`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:65528},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:45558},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:109937}]},{modelId:`gemma4-12b-q4`,label:`gemma4-12b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`12B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:543,decodeTokensPerSec:50.9,samples:1},runtime:{contextTokens:65536,peakMemoryMb:30402},judge:{meanScore:4.8,artifacts:26,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:46956},{scenarioId:`craftbook-week-plan`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:177609},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:1050110},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:59371},{scenarioId:`records-intake`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:583544},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:49170},{scenarioId:`meeting-followup`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:107204},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:369254},{scenarioId:`conflict-synthesis`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:168667},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:32835},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:37837},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:2108584},{scenarioId:`wikipedia-research-brief`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:257623}]},{modelId:`gemma4-31b-q4`,label:`gemma4-31b-q4`,engine:`llama-cpp`,tier:`medium`,parameterSize:`30.7B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:195,decodeTokensPerSec:22.3,samples:1},runtime:{contextTokens:65536,peakMemoryMb:30794},judge:{meanScore:6.5,artifacts:18,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:168716},{scenarioId:`craftbook-week-plan`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:1052662},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:128607},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:98989},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:83832},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:73657},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:746771},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:137053},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:229288},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:64008},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:150517},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:751029},{scenarioId:`wikipedia-research-brief`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:456482}]},{modelId:`gemma4-e4b-q4`,label:`gemma4-e4b-q4`,engine:`llama-cpp`,tier:`small`,parameterSize:`8B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:1411,decodeTokensPerSec:97.8,samples:1},runtime:{contextTokens:65536,peakMemoryMb:9066},judge:{meanScore:5.2,artifacts:22,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:22062},{scenarioId:`craftbook-week-plan`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:238267},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:112574},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:37210},{scenarioId:`records-intake`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:283236},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:27207},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:32101},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:1,nonModelFailures:0,medianDurationMs:112743},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:37094},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:395957},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:45171},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:646877},{scenarioId:`wikipedia-research-brief`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:157381}]},{modelId:`ornith-9b-q4`,label:`ornith-9b-q4`,engine:`llama-cpp`,tier:`small`,parameterSize:`9B`,runId:`2026-08-09-m4max-llamacpp`,suiteId:`productivity`,performance:{prefillTokensPerSec:657,decodeTokensPerSec:64.9,samples:1},runtime:{contextTokens:65536,peakMemoryMb:9100},judge:{meanScore:6.5,artifacts:26,judgeModel:`claude-sonnet-4-6`},cells:[{scenarioId:`constrained-comms`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:55601},{scenarioId:`craftbook-week-plan`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:119094},{scenarioId:`craftbook-ab-test-readout`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:319284},{scenarioId:`craftbook-annotated-bibliography`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:55466},{scenarioId:`records-intake`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:29693},{scenarioId:`plan-and-estimate`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:50739},{scenarioId:`meeting-followup`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:51139},{scenarioId:`craftbook-spreadsheet-model`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:204665},{scenarioId:`conflict-synthesis`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:136705},{scenarioId:`docblocks-theme-roundtrip`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:46027},{scenarioId:`craftbook-research-to-document`,trials:3,successes:3,nonModelFailures:0,medianDurationMs:29793},{scenarioId:`craftbook-powerpoint-deck`,trials:3,successes:0,nonModelFailures:0,medianDurationMs:665475},{scenarioId:`wikipedia-research-brief`,trials:3,successes:2,nonModelFailures:0,medianDurationMs:75409}]}]},Zx=F({label:k().min(1),platform:k().min(1),arch:k().min(1),memoryGb:j().positive().optional(),osRelease:k().optional(),cpuModel:k().optional()}).strict(),Qx=F({startedAt:k().min(1),device:Zx,harnessCommit:k().min(1),gildeVersion:k().min(1),count:j().int().positive(),judgeModelId:k().nullable(),engineBuilds:R(k(),k()).optional()}).strict(),$x=F({id:k().min(1),provenance:Qx,suites:P(k().min(1)).min(1),scenariosBySuite:R(k(),P(k().min(1))),note:k().optional()}).strict(),eS=F({scenarioId:k().min(1),trials:j().int().nonnegative(),successes:j().int().nonnegative(),nonModelFailures:j().int().nonnegative(),medianDurationMs:j().nonnegative().optional()}).strict(),tS=F({prefillTokensPerSec:j().positive(),decodeTokensPerSec:j().positive(),samples:j().int().positive()}).strict(),nS=F({contextTokens:j().int().positive(),peakMemoryMb:j().int().positive()}).strict(),rS=F({meanScore:j().min(0).max(10),artifacts:j().int().positive(),judgeModel:k().min(1)}).strict(),iS=F({modelId:k().min(1),label:k().min(1),engine:k().min(1),tier:k().min(1),parameterSize:k().optional(),quantization:k().optional(),grantedContextTokens:j().int().positive().optional(),runId:k().min(1),suiteId:k().min(1),performance:tS.optional(),runtime:nS.optional(),judge:rS.optional(),cells:P(eS)}).strict();F({schemaVersion:B(1),runs:P($x),results:P(iS)}).strict().superRefine((e,t)=>{let n=new Set(e.runs.map(e=>e.id));for(let r of e.results)n.has(r.runId)||t.addIssue({code:`custom`,message:`result ${r.modelId}/${r.suiteId} names unknown run "${r.runId}"`});let r=new Set;for(let n of e.results){let e=`${n.runId}::${n.suiteId}::${n.modelId}`;r.has(e)&&t.addIssue({code:`custom`,message:`duplicate result for ${e}`}),r.add(e)}}).parse(Xx);var aS=/outcome|verify_outcome|set_task_status/i;function oS(e){let t=[];for(let n of e)switch(n.kind){case`minBytes`:t.push(`\u2265${n.bytes} bytes`);break;case`totalMinBytes`:t.push(`\u2265${n.bytes} bytes total`);break;case`cssMinBytes`:t.push(`\u2265${n.bytes} bytes CSS`);break;case`fileCount`:t.push(`\u2265${n.min} files`);break;case`sniff`:t.push(`${n.sniff}`);break;case`csvShape`:t.push(`CSV shape`);break;case`contains`:t.push(`content match`);break;case`notContains`:t.push(`forbidden content absent`);break;default:t.push(`check`)}return t.join(`, `)}function sS(e){let t=e.gate?zu(e.gate):void 0;if(e.advanceWhen?.file)return{file:e.advanceWhen.file,gate:t};let n=t?.checks.find(e=>`file`in e&&typeof e.file==`string`);if(n)return{file:n.file,gate:t};let r=t?.checks.find(e=>e.kind===`fileCount`&&!!e.dir);return r&&r.kind===`fileCount`&&r.dir?{file:r.dir,gate:t}:{gate:t}}function cS(e){if(e.assignee?.kind===`gezel`)return e.assignee.gezelId;if(e.suggestedGezelId)return e.suggestedGezelId;if(e.suggestedRole)return e.suggestedRole}function lS(e){let t=e.craftbook.steps.map(e=>{let{file:t,gate:n}=sS(e),r=!!n&&(n.checks.length>0||n.scripts.length>0)||!!e.advanceWhen?.file,i=!!e.terminal&&aS.test(e.prompt??``),a=[];return n&&n.checks.length>0&&a.push(oS(n.checks)),n&&n.scripts.length>0&&a.push(`${n.scripts.length} script${n.scripts.length===1?``:`s`}`),{id:e.id,name:e.name,...e.description?{description:e.description}:{},...t?{deliverable:t}:{},...a.length>0?{enforcement:a.join(`, `)}:{},gated:r,terminal:!!e.terminal,isVerification:i,...cS(e)?{assignee:cS(e)}:{}}}),n=t.filter(e=>!e.terminal);return{title:e.title,about:(e.description??``).trim(),outcomes:e.outcomes??[],steps:t,buildStepCount:n.length,gatedBuildStepCount:n.filter(e=>e.gated).length,hasVerification:t.some(e=>e.isVerification)}}function uS(e){let t=[];if(e.about.length<120&&t.push(`the plan has only a thin "about" — flesh out the goal`),e.outcomes.length<3&&t.push(`fewer than 3 outcomes are defined`),e.buildStepCount===0)t.push(`the plan has no build steps`);else if(e.gatedBuildStepCount<e.buildStepCount){let n=e.steps.filter(e=>!e.terminal&&!e.gated).map(e=>e.name).join(`, `);t.push(`some steps have no concrete deliverable + gate: ${n}`)}return e.hasVerification||t.push(`there is no final verification step`),t}function dS(e){let t=lS(e),n=[];if(n.push(`# Plan: ${t.title}`,``),t.about&&n.push(t.about,``),n.push(`## Outcomes`,``),t.outcomes.length===0)n.push(`_No outcomes defined yet._`,``);else{for(let e of t.outcomes){let t=e.met?`[x]`:`[ ]`,r=e.met&&e.evidence?` \u2014 _verified: ${e.evidence}_`:``;n.push(`- ${t} ${e.text}${r}`)}n.push(``)}n.push(`## Plan steps`,``),t.steps.length===0?n.push(`_No steps yet._`,``):(t.steps.forEach((e,t)=>{let r=e.assignee?` \xB7 _${e.assignee}_`:``,i=e.isVerification?` · _verification_`:``;if(n.push(`${t+1}. **${e.name}**${r}${i}`),e.description&&n.push(` ${e.description}`),e.deliverable){let t=e.enforcement?` (${e.enforcement})`:``;n.push(` \u2192 Deliverable: \`${e.deliverable}\`${t}`)}else e.terminal||n.push(` → ⚠️ no concrete deliverable or gate`)}),n.push(``));let r=uS(t);return n.push(`---`,``),n.push(r.length===0?`✅ Ready to run.`:`\u26A0\uFE0F Before running: ${r.join(`; `)}.`),n.join(`
222
222
  `)}function fS(e){return pS(e).map(e=>e.rawId)}function pS(e){let t=[],n=new Set;for(let r of e.matchAll(/@\[([^\]]+)\]\(gezel\\?:([^)\s]+)\)/g)){let e=r[1],i=r[2];if(!i||!e||n.has(i))continue;n.add(i);let{gezelId:a,projectId:o}=mS(i);t.push({id:a,label:e,rawId:i,...o?{projectId:o}:{}})}return t}function mS(e){if(!e)return{gezelId:``};let t=e.indexOf(`?`);if(t<0)return{gezelId:e};let n=e.slice(0,t),r=new URLSearchParams(e.slice(t+1)).get(`project`)??void 0;return r?{gezelId:n,projectId:r}:{gezelId:n}}function hS(e){return e.replace(/\\/g,`/`).split(`/`).filter(Boolean).some(e=>e===`_squisq`||e.toLocaleLowerCase(`en-US`).endsWith(`_files`))}var gS=`New session`,_S=7,vS=new Set(`a.about.an.and.any.after.are.as.at.be.been.being.but.by.can.can't.cannot.could.couldn't.did.didn't.do.does.doesn't.doing.don't.for.from.had.has.have.having.he.hello.help.her.here.hers.hey.hi.him.his.how.i.i'd.i'll.i'm.i've.if.in.into.is.isn't.it.it's.its.just.let.let's.like.me.might.more.much.my.need.needed.of.on.one.or.our.ours.please.really.she.should.so.some.something.that.that's.the.their.them.there.there's.these.they.think.thinking.this.those.to.try.trying.turn.up.us.very.want.wanted.was.we.we'd.we'll.we're.we've.were.weren't.what.what's.when.where.which.who.why.will.with.wondering.would.wouldn't.you.you'd.you'll.you're.you've.your`.split(`.`)),yS=/[@#]?[\p{L}\p{N}][\p{L}\p{N}'’._+#:/-]*/gu;function bS(e){let t=e.toLocaleLowerCase().replace(/’/g,`'`);return t.length>5&&t.endsWith(`ies`)?`${t.slice(0,-3)}y`:(t.length>4&&t.endsWith(`s`)&&!t.endsWith(`ss`)&&!t.endsWith(`us`)&&!t.endsWith(`is`)&&(t=t.slice(0,-1)),t)}function xS(e){return e.normalize(`NFC`).replace(/\0/g,` `).replace(/```[^\n]*\n[\s\S]*?```/g,` `).replace(/@\[([^\]]+)\]\(gezel\\?:[^)\s]+\)/g,`@$1`).replace(/!\[([^\]]*)\]\([^)]+\)/g,`$1`).replace(/\[([^\]]+)\]\([^)]+\)/g,`$1`).replace(/https?:\/\/\S+/gi,` `).replace(/<[^>]+>/g,` `).replace(/[`*_~>|]/g,` `).replace(/\s+/g,` `).trim()}function SS(e){let t=e.match(yS)??[],n=[];for(let e of t){let t=e.replace(/[.'’:_/-]+$/g,``);if(!t)continue;let r=bS(t);vS.has(r)||r.length===1&&!/^[cr]$/i.test(t)&&!/\d/.test(t)||n.push({raw:t,key:r,position:n.length})}return n}function CS(e){let t=xS(e);if(!t)return``;let n=t.match(/^\[([^\]]{1,80})\]\s*:?\s*/),r=n?.[1]?.replace(/\s+page$/i,``).trim()??``,i=n?t.slice(n[0].length).trim():t,a=i.split(/(?<=[.!?])\s+|[\r\n]+/u).map(e=>e.trim()).filter(Boolean);return[r,a.find(e=>SS(e).length>0)??a[0]??i].filter(Boolean).join(` `)}function wS(e){let t=e.search(/\p{L}/u);if(t<0)return e;let n=e[t];return n===n.toLocaleLowerCase()?`${e.slice(0,t)}${n.toLocaleUpperCase()}${e.slice(t+1)}`:e}function TS(e){let t=``;for(let n of e){let e=t?`${t} ${n.raw}`:n.raw;e.length>60||(t=e)}return wS(t||(e[0]?.raw??``).slice(0,60).trim())}function ES(e){let t=CS(e),n=SS(t);if(n.length===0){let n=xS(t||e).replace(/[.!?,;:]+$/g,``).trim();if(!n)return`Untitled`;let r=n.slice(0,60),i=r.length<n.length?r.lastIndexOf(` `):-1;return wS((i>10?r.slice(0,i):r).trim())}let r=new Map,i=new Map;for(let e of n)i.set(e.key,(i.get(e.key)??0)+1),r.has(e.key)||r.set(e.key,e);let a=[...r.values()];return TS(a.length<=_S?a:a.map(e=>({token:e,score:(i.get(e.key)??1)*3+Math.min(e.raw.length,14)/7+(/\d|[._+#:/@-]/.test(e.raw)?2:0)+Math.max(0,.5-e.position*.03)})).sort((e,t)=>t.score-e.score||e.token.position-t.token.position).slice(0,_S).map(({token:e})=>e).sort((e,t)=>e.position-t.position))||`Untitled`}var DS=new Set([`email`,`social-media`]);function OS(e,t=new Set){let n=e.manifest;return n.kind===`craftbook-template`?(n.connectors?.length??0)>0:n.kind===`project-type`?n.extends&&DS.has(n.extends)||(n.craftbooks??[]).some(e=>t.has(e))?!0:(n.schedules??[]).some(e=>t.has(e.craftbook)):!1}function kS(e){return new Set(e.flatMap(e=>e.manifest.kind===`craftbook-template`&&OS(e)?[e.manifest.id]:[]))}function AS(e,t,n=kS(e)){return t?[...e]:e.filter(e=>!OS(e,n))}export{Gb as $,F as $t,Wy as A,Yx as At,mx as B,fd as Bt,ox as C,dS as Ct,fu as D,Ey as Dt,cb as E,Ty as Et,ry as F,Nv as Ft,op as G,z as Gt,zx as H,AS as Ht,Eb as I,Av as It,hS as J,M as Jt,Jb as K,Na as Kt,sg as L,jv as Lt,pS as M,Iy as Mt,fS as N,Ax as Nt,Ab as O,Zd as Ot,Ib as P,Jv as Pt,Gx as Q,j as Qt,Wx as R,vx as Rt,xv as S,hd as St,kS as T,Db as Tt,Xd as U,df as Ut,Cy as V,gx as Vt,Ru as W,V as Wt,xb as X,_o as Xt,cx as Y,L as Yt,Mv as Z,B as Zt,Ky as _,gy as _t,zg as a,N as an,zu as at,gd as b,Hy as bt,yd as c,Uv as ct,jy as d,xx as dt,xo as en,_x as et,Md as f,Tx as ft,Dy as g,Oy as gt,gS as h,By as ht,zm as i,I as in,Su as it,Kb as j,Uy as jt,ES as k,jp as kt,wy as l,Sy as lt,zy as m,Rx as mt,_d as n,k as nn,Yb as nt,Jd as o,Ay as ot,Sd as p,uS as pt,Rb as q,P as qt,Yd as r,Wa as rn,Hd as rt,Cd as s,yv as st,Td as t,R as tn,ey as tt,xd as u,gm as ut,Nb as v,wx as vt,qb as w,pd as wt,Ly as x,Jy as xt,Mb as y,Cx as yt,My as z,lS as zt};