@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
@@ -0,0 +1,2 @@
1
+ import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{$t as t,Gt as n,Jt as r,Kt as i,Qt as a,Wt as o,Xt as s,Yt as c,Zt as l,an as u,en as ee,in as d,nn as f,qt as p,rn as te,tn as m,ut as ne}from"./dist-CFOmf7nD.js";var h=c(`kind`,[t({kind:l(`gezel`),gezelId:f()}),t({kind:l(`user`)})]),re=[`tiny`,`small`,`medium`,`large`,`cloud`],ie=d([n([`llm`,`network`,`workspace.read`,`workspace.write`,`artifacts.read`,`artifacts.write`,`documents.read`,`documents.write`,`tasks.read`,`tasks.write`,`memory.read`,`memory.write`]),f().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`)]),ae=c(`type`,[t({type:l(`string`),description:f(),required:r().optional(),default:f().optional(),pattern:f().optional(),multiline:r().optional()}),t({type:l(`number`),description:f(),required:r().optional(),default:a().optional(),min:a().optional(),max:a().optional(),integer:r().optional()}),t({type:l(`boolean`),description:f(),required:r().optional(),default:r().optional()}),t({type:l(`choice`),description:f(),required:r().optional(),default:f().optional(),options:p(t({value:f(),label:f().optional()})).min(1)}),t({type:l(`ref`),description:f(),required:r().optional(),kind:n([`gezel`,`task`,`artifact`,`document`])}),t({type:l(`json`),description:f(),required:r().optional(),default:u().optional(),schema:u().optional()})]),oe=m(f(),ae),se=c(`type`,[t({type:l(`string`),description:f(),nullable:r().optional()}),t({type:l(`number`),description:f(),nullable:r().optional()}),t({type:l(`boolean`),description:f(),nullable:r().optional()}),t({type:l(`array`),description:f(),itemType:n([`string`,`number`,`boolean`,`object`])}),t({type:l(`object`),description:f(),schema:u().optional()}),t({type:l(`json`),description:f(),schema:u().optional()})]),ce=m(f(),se),le=t({name:f().regex(/^[a-zA-Z][\w-]*$/,`name must start with a letter and contain only letters, digits, underscore, or hyphen`),description:f().min(10),kind:n([`action`,`gate`]).optional(),inputs:oe.optional(),outputs:ce.optional(),requires:p(ie).optional()}),ue=n([`project`,`craftbook`,`user`,`standard`]),de=c(`op`,[t({op:l(`always`)}),t({op:l(`never`)}),t({op:l(`ok`)}),t({op:l(`equals`),field:f().min(1),value:d([f(),a(),r(),i()])}),t({op:l(`exists`),field:f().min(1),negate:r().optional()}),t({op:l(`gt`),field:f().min(1),value:a()})]),fe=t({name:f().min(1),scope:ue.optional(),inputs:m(f(),u()).optional(),autoAdvanceOnSuccess:r().optional(),autoAdvanceWhen:de.optional()}),g=d([fe,p(fe)]);function pe(e){return e===void 0?[]:Array.isArray(e)?e:[e]}var me=n([`running`,`ok`,`error`]),he=t({at:f(),kind:f(),argsSummary:f(),outputSummary:f().optional(),durationMs:a().nonnegative(),error:f().optional()}),ge=c(`kind`,[t({kind:l(`step`),taskRef:f(),stepId:f(),moment:n([`enter`,`exit`,`gate`])}),t({kind:l(`chat`),sessionId:f(),gezelId:f()}),t({kind:l(`manual`),userInitiated:l(!0)}),t({kind:l(`nested`),parentRunId:f()}),t({kind:l(`connector`),typeId:f(),bindingId:f()}),t({kind:l(`page`),tool:f()})]);t({id:f(),projectId:f(),scriptName:f(),startedAt:f(),finishedAt:f().optional(),status:me,trigger:ge,inputs:m(f(),u()),output:u().optional(),calls:p(he),logs:f(),error:f().optional()}),t({name:f().min(1),scope:ue.optional(),input:m(f(),u()).optional()});var _e=t({runId:f(),status:me,output:u().optional(),callsSummary:p(t({kind:f(),durationMs:a().nonnegative(),error:f().optional()})),error:f().optional()});t({tool:f().regex(/^[a-z][a-z0-9_]*$/),input:m(f(),u()).optional()}),_e.extend({reaction:t({delivered:r(),gezelId:f().optional(),reason:f().optional()}).optional()}),t({op:n([`read`,`list`,`stat`]),source:n([`workspace`,`artifacts`]),path:f().min(1),as:n([`text`,`json`,`bytes`]).optional(),maxBytes:a().int().positive().optional()});var ve=t({name:f(),kind:n([`file`,`dir`]),size:a().nonnegative(),mtime:a().nonnegative()});t({op:n([`read`,`list`,`stat`]),content:f().optional(),encoding:n([`utf8`,`base64`]).optional(),entries:p(ve).optional(),etag:f(),size:a().nonnegative().optional(),mtime:a().nonnegative().optional()}),t({scripts:p(t({name:f(),meta:le,path:f()}))});var _=f().regex(/^[a-zA-Z][\w-]*$/,`script name must start with a letter and contain only letters, digits, underscore, or hyphen`),ye=t({severity:n([`error`,`warning`,`info`]),source:n([`meta`,`typescript`,`runtime-compat`]),message:f(),line:a().optional(),column:a().optional()}),be=t({kind:n([`craftbook`,`import`,`user`,`standard`]),ref:f()});t({name:_,source:f(),hash:f(),mtimeMs:a(),meta:le.optional(),metaError:f().optional(),provenance:be.optional()}),t({name:_,source:f(),baseHash:f().optional()}),c(`status`,[t({status:l(`saved`),hash:f(),metaOk:r(),meta:le.optional(),diagnostics:p(ye)}),t({status:l(`conflict`),currentHash:f(),currentSource:f()})]);var xe=n([`blank`,`post-message`,`fetch-and-summarize`,`check-files`,`call-tool`,`ask-ai`]);t({name:_,description:f().optional(),template:xe.optional(),source:f().optional()}),t({name:_,source:f(),hash:f()}),t({version:f(),files:p(t({name:f(),content:f()}))}),t({name:_,description:f().min(1)}),t({source:f()});var Se=n([`html-complete`,`html-game`,`nonempty`,`json-valid`,`data-table`]),Ce=d([f(),a(),r(),i()]),v=c(`kind`,[t({kind:l(`minBytes`),file:f().min(1),bytes:a().int().positive(),artifact:r().optional()}),t({kind:l(`totalMinBytes`),files:p(f().min(1)).min(1),bytes:a().int().positive()}),t({kind:l(`fileCount`),ext:p(f().min(1)).min(1),min:a().int().positive(),dir:f().optional(),verifyImageBytes:r().optional()}),t({kind:l(`cssMinBytes`),bytes:a().int().positive(),file:f().optional()}),t({kind:l(`sniff`),file:f().min(1),sniff:Se,artifact:r().optional()}),t({kind:l(`jsonPathEquals`),file:f().min(1),path:f().min(1),value:Ce,label:f().min(1).optional()}),t({kind:l(`csvShape`),file:f().min(1),requiredColumns:p(f().min(1)).min(1).optional(),exactColumns:p(f().min(1)).min(1).optional(),minRows:a().int().nonnegative().optional(),consistentColumns:r().optional(),allowedValues:m(f(),p(f().min(1)).min(1)).optional()}),t({kind:l(`contains`),file:f().min(1),pattern:f().min(1),flags:f().optional(),label:f().min(1).optional(),artifact:r().optional()}),t({kind:l(`notContains`),file:f().min(1),pattern:f().min(1),flags:f().optional(),label:f().min(1).optional(),artifact:r().optional()}),t({kind:l(`unsupportedClaims`),file:f().min(1),sourceFiles:p(f().min(1)).min(1),patterns:p(t({pattern:f().min(1),label:f().min(1).optional()})).min(1),flags:f().optional()}),t({kind:l(`jsParses`),file:f().optional()}),t({kind:l(`htmlLint`),file:f().min(1)}),t({kind:l(`esmImports`),file:f().min(1)}),t({kind:l(`sourceParses`),file:f().min(1)}),t({kind:l(`tableShape`),file:f().min(1),requiredColumns:p(f().min(1)).min(1).optional(),minRows:a().int().nonnegative().optional(),artifact:r().optional()}),t({kind:l(`recordSchema`),file:f().min(1),fields:p(t({name:f().min(1),type:f().optional(),required:r().optional()})).min(1),minRows:a().int().nonnegative().optional(),uniqueBy:f().optional(),format:n([`json`,`csv`,`auto`]).optional(),artifact:r().optional()}),t({kind:l(`nodeRuns`),file:f().min(1),timeoutMs:a().int().positive().max(6e4).optional()}),t({kind:l(`citationsResolve`),file:f().min(1),pattern:f().min(1).optional(),flags:f().optional(),minCitations:a().int().nonnegative().optional(),corpus:p(f().min(1)).min(1).optional(),artifact:r().optional()}),t({kind:l(`researchEvidence`),sourcePath:f().optional(),tools:p(f().min(1)).min(1),minSuccessful:a().int().positive().optional()}),t({kind:l(`corpusCoverage`),file:f().min(1),corpusDir:f().min(1),reviewedField:f().min(1).optional(),recordField:f().min(1).optional()}),t({kind:l(`markdownHeadingsMatch`),file:f().min(1),outlineFile:f().min(1),outlineArtifact:r().optional()}),t({kind:l(`valueGrounding`),file:f().min(1),facts:p(t({id:f().min(1),label:f().min(1).optional(),required:p(f().min(1)).min(1),forbidden:p(f().min(1)).optional()})).min(1),normalizeDigits:r().optional(),artifact:r().optional()}),t({kind:l(`valuesSubsetOf`),file:f().min(1),sourceFiles:p(f().min(1)).min(1),pattern:f().min(1),flags:f().optional(),minMatches:a().int().nonnegative().optional(),artifact:r().optional()}),t({kind:l(`judge`),file:f().min(1),rubric:f().min(1),sourceFiles:p(f().min(1)).optional(),requireEvidence:r().optional(),advisory:r().optional(),timeoutMs:a().int().positive().max(12e4).optional(),label:f().min(1).optional(),artifact:r().optional()}),t({kind:l(`planStructure`),file:f().min(1),minRows:a().int().positive().optional(),ownerRoster:p(f().min(1)).optional(),requireEarlierOnly:r().optional(),doneWhenMinChars:a().int().positive().optional(),artifact:r().optional()})]);t({verdict:n([`pass`,`fail`]),reasons:p(f().min(1)).max(5),evidence:p(f()).default([]),confidence:n([`low`,`medium`,`high`]).optional()});var we=t({checks:p(v).min(1),onFail:f().optional(),onPass:f().optional(),maxAttempts:a().int().positive().optional(),reviewer:f().optional()}),Te=t({name:f().min(1),scope:ue.optional(),inputs:m(f(),u()).optional()});t({decision:n([`approve`,`reject`]),message:f().optional(),goto:f().optional(),handoff:t({message:f(),params:m(f(),u()).optional()}).optional()}).superRefine((e,t)=>{e.decision===`reject`&&!e.message?.trim()&&t.addIssue({code:o.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 Ee=d([t({at:n([`completion`,`activation`]),checks:p(v).optional(),scripts:p(Te).optional(),onReject:f().optional(),onApprove:f().optional(),maxAttempts:a().int().positive().optional(),reviewer:f().optional()}).superRefine((e,t)=>{!e.checks?.length&&!e.scripts?.length&&t.addIssue({code:o.custom,message:`a gate needs at least one check or one script`})}),we]);function De(e){return!(`at`in e)}function Oe(e){return De(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 ke(e){let t=Oe(e);return[t.onReject,t.onApprove].filter(e=>e!==void 0)}var Ae=n([`PreToolUse`,`PostToolUse`]),je=n([`allow`,`deny`,`ask`]),y=t({phase:Ae,matcher:f().default(`.*`),script:fe.optional(),decision:je.optional(),label:f().optional()}).superRefine((e,t)=>{let n=e.script!==void 0;n===(e.decision!==void 0)&&t.addIssue({code:o.custom,message:"a hook must set exactly one of `script` or `decision`",path:[n?`decision`:`script`]})});t({decision:je.default(`allow`),message:f().optional()});var Me=t({when:de,goto:f()}),Ne=t({file:f().min(1),minBytes:a().int().positive().optional(),sniff:Se.optional(),requireChange:r().optional(),artifact:r().optional(),goto:f().optional()}),Pe=t({file:f().min(1).describe(`Path relative to the selected drawer root.`),artifact:r().optional().describe(`True for the artifacts drawer; false/omitted for the project workspace.`)}),Fe=n(re),b=t({id:f().min(1),name:f().min(1),description:f().optional(),prompt:f().optional(),suggestedGezelId:f().optional(),suggestedRole:f().optional(),capabilityFloor:Fe.optional(),assignee:h.optional(),onEnter:g.optional(),onExit:g.optional(),consumes:p(Pe).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:Ne.optional(),gate:Ee.optional(),next:f().optional(),branches:p(Me).optional(),terminal:r().optional(),spawnFanout:r().optional()}),x=t({overFile:f().min(1),overArtifact:r().optional(),itemsPath:f().optional(),entryStepId:f().optional(),steps:p(b).min(1)});function Ie(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=Oe(r.gate);r.terminal&&e.at===`activation`&&t.push(`step "${r.id}" is terminal but also has an activation gate`);for(let e of ke(r.gate))n.has(e)||t.push(`step "${r.id}" gate route "${e}" missing from steps`)}}return t}function Le(e,t){for(let n of Ie(e))t.addIssue({code:o.custom,message:n,path:n.startsWith(`entryStepId`)?[`entryStepId`]:[`steps`]});for(let n of Be(e))t.addIssue({code:o.custom,message:n,path:[`steps`]})}var S=c(`kind`,[t({kind:l(`github`)}),t({kind:l(`non-main-branch`)})]),C=t({scheduled:n([`supported`,`recommended`]).optional(),nightShift:n([`supported`,`recommended`]).optional()}),w=t({toolsetId:f().min(1),sourceId:f().optional(),minVersion:f().optional(),optional:r().optional(),autoAllow:r().optional(),reason:f().optional()}),T=t({typeId:f().min(1),sourceId:f().optional(),optional:r().optional(),reason:f().optional()}),Re=64*1024,ze=256*1024,E=m(_,f().min(1).max(Re)).superRefine((e,t)=>{let n=Object.keys(e);n.length>24&&t.addIssue({code:o.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:o.custom,message:`craftbook scripts total ${r} bytes \u2014 the ceiling is ${ze}`})}),D=t({name:f().min(1),url:f().url().regex(/^https?:\/\//i,`basedOn.url must use http or https`)});function Be(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`,pe(t.onEnter)),r(t.id,`onExit`,pe(t.onExit)),t.gate&&r(t.id,`gate`,Oe(t.gate).scripts);return t}var Ve=t({id:f().min(1),name:f().min(1),description:f().optional(),version:f().optional(),basedOn:D.optional(),plan:f().optional(),defaultAssignee:h.optional(),steps:p(b).min(1),entryStepId:f().min(1),triggers:p(f()).optional(),hooks:p(y).optional(),paramSchema:m(f(),u()).optional(),command:f().regex(/^[a-z][a-z0-9-]*$/).optional(),requirements:p(S).optional(),runModes:C.optional(),toolsets:p(w).optional(),connectors:p(T).optional(),scripts:E.optional(),spawn:x.optional(),createdAt:f(),updatedAt:f()}).superRefine(Le),He=n([`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`]),Ue=t({path:f().min(1),kind:He.optional(),minBytes:a().int().positive().optional(),maxAttempts:a().int().positive().optional(),artifact:r().optional(),requireChange:r().optional(),execute:r().optional(),columns:p(f().min(1)).min(1).optional(),minRows:a().int().positive().optional()}),O=t({id:f().optional(),name:f().min(1),description:f().optional(),prompt:f().optional(),suggestedGezelId:f().optional(),suggestedRole:f().optional(),capabilityFloor:Fe.optional(),assignee:h.optional(),onEnter:g.optional(),onExit:g.optional(),consumes:p(Pe).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:Ne.optional(),gate:Ee.optional(),deliverable:Ue.optional(),next:f().optional(),branches:p(Me).optional(),terminal:r().optional(),spawnFanout:r().optional()});t({id:f().optional(),name:f().min(1),description:f().optional(),basedOn:D.optional(),plan:f().optional(),defaultAssignee:h.optional(),steps:p(O).min(1),entryStepId:f().optional(),paramSchema:m(f(),u()).optional(),command:f().regex(/^[a-z][a-z0-9-]*$/).optional(),requirements:p(S).optional(),runModes:C.optional(),toolsets:p(w).optional(),scripts:E.optional()}),t({name:f().min(1).optional(),description:f().nullable().optional(),basedOn:D.nullable().optional(),plan:f().nullable().optional(),defaultAssignee:h.nullable().optional(),steps:p(O).min(1).optional(),entryStepId:f().optional(),paramSchema:m(f(),u()).nullable().optional(),command:f().regex(/^[a-z][a-z0-9-]*$/).nullable().optional(),requirements:p(S).nullable().optional(),runModes:C.nullable().optional(),toolsets:p(w).nullable().optional(),scripts:E.nullable().optional()}),t({craftbooks:p(t({id:f(),name:f(),description:f().optional(),version:f().optional(),basedOn:D.optional(),source:n([`bundled`,`local`,`project`]),stepCount:a().int().nonnegative()}))}),t({installedBy:l(`project-type`),typeId:f(),typeVersion:f(),bookVersion:f(),contentHash:f(),installedAt:f()}),t({suggestions:p(t({id:f(),name:f(),description:f().optional(),source:n([`bundled`,`local`,`project`]),version:f().optional(),basedOn:D.optional(),stepCount:a().int().nonnegative(),tags:p(f()).optional(),triggers:p(f()).optional(),score:a(),semantic:a().optional(),lexical:a()}))}),t({craftbook:Ve}),t({after:f().optional(),before:f().optional(),index:a().int().nonnegative().optional()}),t({id:f().optional(),name:f().min(1),description:f().optional(),basedOn:D.optional(),plan:f().optional(),entryStepId:f().optional(),triggers:p(f()).optional(),command:f().regex(/^[a-z][a-z0-9-]*$/).optional(),defaultAssignee:h.optional(),requirements:p(S).optional(),runModes:C.optional(),toolsets:p(w).optional(),connectors:p(T).optional(),paramSchema:m(f(),u()).optional(),hooks:p(y).optional(),steps:p(O).min(1),spawn:x.optional(),scripts:E.optional(),version:f().optional(),releasedAt:f().optional(),minGezelVersion:f().optional()});var We=Object.keys({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.`}}),Ge=Object.keys({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.`}}),Ke=[`cap`,`beanie`,`kerchief`,`straw`,`newsboy`,`hood`],qe=[`scarf`,`apron`,`collar`,`turtleneck`],Je=[`halo`,`short`,`long`,`bun`,`braids`,`shaved`,`bald`],Ye=`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(`.`),Xe=[`beard`,`mustache`],Ze=[`freckles`,`mole`],Qe=[`plain`,`buttons`,`stripes`,`sash`,`yoke`,`twotone`],$e=[`smile`,`wider`,`neutral`,`wink`,`sleepy`];function et(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 tt=ee(et,t({key:f().min(1),name:f(),bodyShape:n(We),figureScale:n(Ge),skin:f(),skin2:f(),hair:f(),hairShape:n(Je),hat:n(Ke).nullable().optional().default(null),dress:n(qe).nullable().optional().default(null),accessory:n(Ye).nullable().optional().default(null),facialHair:n(Xe).nullable().optional().default(null),mark:n(Ze).nullable().optional().default(null),expression:n($e).optional().default(`smile`),shirt:f(),shirtAccent:f(),shirtPattern:n(Qe).optional().default(`plain`)})),k=n([`default`,`acceptEdits`,`plan`,`bypassPermissions`]),nt=n([`plan`,`edit`,`reviewed`,`full`]),A=d([nt,n([`default`,`acceptEdits`,`bypassPermissions`])]),rt=/^[A-Za-z0-9@][A-Za-z0-9@._-]{0,199}$/,it=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 at(e){if(typeof e!=`string`||!rt.test(e))return!1;let t=(e.split(`.`)[0]??``).toUpperCase();return!it.has(t)}var ot=f().refine(at,{message:`must be a portable single-segment entity id`}),j=f().min(1).describe(`Canonical tuning profile id.`),st=t({day:f().regex(/^\d{4}-\d{2}-\d{2}$/),kind:n([`fact`,`decision`,`pref`,`status`]),excerpt:f().min(1).max(400)}),ct=t({id:f(),kind:l(`trait`),title:f().min(1).max(80),traitText:f().min(1).max(200),evidence:p(st).min(1).max(3)}),lt=c(`type`,[t({type:l(`profile`),profile:j}),t({type:l(`temperature`),delta:d([l(.1),l(-.1)])})]),ut=c(`kind`,[ct,t({id:f(),kind:l(`tuning`),title:f().max(80),description:f().max(300),action:lt}),t({id:f(),kind:l(`cosmetic`),title:f().max(80),cosmeticId:f()})]),dt=t({toLevel:a().int().min(2),proposals:p(ut).min(1).max(5),createdAt:f()}),ft=t({memoryXp:a().int().nonnegative().default(0),lessonsXp:a().int().nonnegative().default(0),taskXp:a().int().nonnegative().default(0),consultXp:a().int().nonnegative().default(0)}),pt=t({traitId:f(),text:f(),level:a().int(),adoptedAt:f(),evidence:p(st),removedAt:f().optional()}),mt=t({kind:n([`trait`,`tuning`,`cosmetic`]),title:f(),traitText:f().optional(),level:a().int(),declinedAt:f()}),ht=t({version:l(1).default(1),level:a().int().min(1).default(1),xp:a().int().nonnegative().default(0),signals:ft.prefault({}),lastComputedAt:f().optional(),pendingLevelUp:dt.optional(),adoptedTraits:p(pt).default([]),declinedProposals:p(mt).default([]),unlockedCosmetics:p(t({id:f(),at:f()})).default([])}),gt=t({level:a().int().min(1),pending:r().optional()}),_t=t({multiplier:a().min(0).max(5).describe(`DRY penalty strength. 0 disables. 0.8 is a reasonable default.`),base:a().min(0).max(5).optional().describe(`Base of the exponential penalty for repeated tokens. Default 1.75.`),allowedLength:a().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).`),vt=t({probability:a().min(0).max(1).describe(`Probability of triggering XTC on any given step.`),threshold:a().min(0).max(1).describe(`Minimum top-token probability for XTC to fire.`)}).describe(`XTC sampler (llama.cpp only).`),yt=t({temperature:a().min(0).max(2).optional().describe(`Sampling temperature. 0 = greedy. Most reasoning models want 0.6–1.0.`),topP:a().min(0).max(1).optional().describe(`Nucleus sampling. 0.95 is the common default for Qwen, Gemma, Nemotron.`),topK:a().int().min(0).max(1e3).optional().describe(`Top-k cutoff. 20 for Qwen think, 64 for Gemma, 1 for greedy-on-instruct.`),minP:a().min(0).max(1).optional().describe(`Min-p cutoff (llama.cpp / MLX / Ollama). Qwen recommends 0.`),maxTokens:a().int().positive().optional().describe(`Per-turn output token cap. Maps to num_predict / max_tokens / n_predict.`),seed:a().int().optional().describe(`RNG seed. Unset / negative = random. Best-effort determinism on cloud.`),repetitionPenalty:a().min(0).max(3).optional().describe(`Local engines (Ollama / llama.cpp / MLX): repeat_penalty. 1.0 = off, 1.1 = mild.`),repetitionContext:a().int().positive().optional().describe("Local engines: window size for repetition penalty (`repeat_last_n`)."),frequencyPenalty:a().min(-2).max(2).optional().describe(`Cloud (OpenAI) and Ollama / llama.cpp: penalize repeated tokens by frequency.`),presencePenalty:a().min(-2).max(2).optional().describe(`Cloud (OpenAI) and Ollama / llama.cpp: penalize any reused token.`),dry:_t.optional(),xtc:vt.optional()}).describe(`Sampling parameters applied per-request.`),bt=t({effort:n([`low`,`medium`,`high`]).optional().describe("Cloud reasoning effort. Maps to OpenAI `reasoning.effort` and Anthropic `thinking.budget_tokens` tiers."),thinkingBudget:a().int().positive().optional().describe("Explicit thinking-token budget (Anthropic `thinking.budget_tokens`, Nemotron `reasoning_budget`). Wins over `effort` when both set."),enableThinking:r().optional().describe(`Chat-template toggle for dual-mode models (Qwen3+, Nemotron Nano/Super). Implicit on cloud thinking models.`),templateKwargs:m(f(),d([f(),a(),r()])).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.`),xt=t({responseFormat:n([`text`,`json_object`]).optional().describe("Output mode. `text` = freeform (default). `json_object` = enforce JSON."),jsonSchema:u().optional().describe(`Pin output to a JSON Schema (OpenAI strict mode, llama.cpp --json-schema).`),grammar:f().optional().describe(`llama.cpp GBNF grammar. Last-resort structured-output knob.`)}).describe(`Structured-output controls.`),St=t({enableThinkingTag:f().optional().describe("User-prompt tag that enables thinking for this turn (e.g. `/think`)."),disableThinkingTag:f().optional().describe("User-prompt tag that disables thinking for this turn (e.g. `/no_think`).")}).describe(`Per-turn reasoning toggle tags.`),Ct=t({llamaCpp:t({nGpuLayers:a().int().min(-1).optional().describe("`--n-gpu-layers` override. -1 = all. Unset = b9843 `auto`/`--fit`."),cpuMoe:r().optional().describe("`--cpu-moe`: keep ALL MoE experts in system RAM (attention/dense on GPU)."),nCpuMoe:a().int().min(0).optional().describe("`--n-cpu-moe N`: keep the first N layers’ MoE experts in RAM. Partial split."),cacheReuse:a().int().min(0).optional().describe("`--cache-reuse N` prefix-KV reuse chunk. 0 = disable. Unset inherits the global default."),swaFull:r().optional().describe("`--swa-full`: full-size SWA cache (Gemma family)."),flashAttn:n([`on`,`off`,`auto`]).optional().describe("`--flash-attn` mode override for this model."),ubatchSize:a().int().positive().optional().describe("`--ubatch-size` (inner microbatch) override for this model."),contextSize:a().int().positive().optional().describe(`Per-turn context ceiling (tokens) this model launches with. Capped by GGUF train ctx.`),chatTemplate:f().min(1).optional().describe("`--chat-template` override for GGUFs whose embedded Jinja template is incompatible with llama.cpp tool parsing."),threads:a().int().positive().optional().describe("`--threads` override."),batchSize:a().int().positive().optional().describe("`--batch-size` override."),spec:t({type:n([`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:r().optional().describe("VERIFIED capability metadata: this model’s target or companion GGUF carries MTP tensors. Does not enable `draft-mtp` by itself."),draftModelId:f().optional().describe("Catalog id / path of the draft model for `draft-simple`."),nMax:a().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.`),wt=t({sampling:yt.optional(),samplingWhenThinking:yt.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:bt.optional(),output:xt.optional(),toolChoice:n([`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:St.optional()}).describe(`Per-model sampling, reasoning, and output defaults (without profiles).`),M=wt.extend({engine:Ct.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:m(j,wt.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.`),Tt=/^[a-z0-9](?:[a-z0-9._~-]*[a-z0-9])?$/,Et=String.raw`(?:0|[1-9]\d*)`,Dt=String.raw`(?:${Et}|[xX*])`,Ot=String.raw`${Dt}(?:\.${Dt}){0,2}`,kt=String.raw`[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*`,At=String.raw`(?:-${kt})?(?:\+${kt})?`,jt=new RegExp(String.raw`^(?:\^|~|>=|<=|>|<|=)?v?${Ot}${At}$`),Mt=new RegExp(String.raw`^v?${Ot}${At}\s+-\s+v?${Ot}${At}$`),Nt=/^[a-z][a-z0-9._-]{0,127}$/;function Pt(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&&Tt.test(t[0])&&Tt.test(t[1])}return!e.includes(`/`)&&Tt.test(e)}function Ft(e){if(typeof e!=`string`||e.length===0||e.length>128||e!==e.trim())return!1;if(Nt.test(e)||Mt.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=>jt.test(e))})}var N=f().refine(Pt,{message:`must be a lowercase npm registry package name (for example zod or @types/node)`}),P=f().refine(Ft,{message:`must be a registry dist-tag or semver range`}),It=t({package:N,version:P.optional()}).strict(),Lt=t({package:N,version:P,decision:n([`install`,`always`,`decline`])}),Rt=t({selectedChoices:p(a().int().min(0)).optional(),writeIn:f().optional(),declined:r().optional(),silentSkip:r().optional(),npmInstallDecisions:p(Lt).optional(),at:f()}),zt=t({package:N,version:P}),Bt=n([`script`,`npx`]),Vt=t({path:f().min(1),sha256:f().regex(/^[a-f0-9]{64}$/)}),Ht=t({kind:l(`command-approval`),scope:Bt,name:f().min(1),body:f().optional(),args:p(f()).optional(),inputFiles:p(Vt).max(128).optional()}),Ut=t({kind:l(`tool-permission`),toolName:f(),toolInput:m(f(),u())}),Wt=t({kind:l(`toolset-install-approval`),toolsetId:f(),sourceId:f(),version:f(),targetProjectId:f(),craftbookId:f()}),Gt=t({kind:l(`image-generation-approval`),provider:f(),model:f(),promptPreview:f(),estimatedSize:f().optional()}),Kt=t({kind:l(`video-generation-approval`),provider:f(),model:f(),promptPreview:f(),estimatedSize:f().optional()}),qt=t({kind:l(`schedule-approval`),typeId:f(),craftbookId:f(),runMode:n([`scheduled`,`night-shift`]).optional(),cron:f(),overlap:n([`skip`,`queue`,`concurrent`]).optional()}),Jt=t({kind:l(`night-shift-review`),windowKey:f(),tasksCompleted:a(),reports:p(t({projectId:f(),path:f(),title:f().optional(),actionCount:a()}))}),Yt=n([`gate_exhausted`,`gate_plateau`,`gate_unsatisfiable`,`gate_infrastructure`,`step_stalled`,`budget_exhausted`]),Xt=t({kind:l(`task-paused`),taskRef:f(),stepId:f().optional(),reason:Yt}),Zt=c(`kind`,[t({kind:l(`npm-install-approval`),packages:p(zt).min(1)}),Ht,Ut,Wt,Gt,Kt,qt,Jt,Xt]),Qt=t({id:f(),projectId:f(),gezelId:f(),sessionId:f(),prompt:f().min(1),choices:p(f()).max(20).optional(),allowWriteIn:r().optional(),multiSelect:r().optional(),taskRef:f().optional(),documentPath:f().optional(),intent:Zt.optional(),createdAt:f(),answer:Rt.optional()}),$t=t({make:f().optional(),model:f().optional(),lensModel:f().optional(),dateTimeOriginal:f().optional(),orientation:a().int().min(1).max(8).optional(),software:f().optional(),imageDescription:f().optional()}),en=t({format:n([`png`,`jpeg`,`gif`,`webp`,`svg`,`unknown`]),width:a().int().positive().optional(),height:a().int().positive().optional(),byteLength:a().int().nonnegative(),sha256:f().regex(/^[a-f0-9]{64}$/),pngText:m(f(),f()).optional(),exif:$t.optional(),gps:t({lat:a(),lon:a()}).optional(),gpsRedacted:r().optional(),likelyScreenshot:r().optional()}),tn=n([`describe`,`ocr`,`ui`,`extract`]),nn=n([`auto`,`describe`,`ocr`,`ui`,`extract`]);t({schemaVersion:l(1),sha256:f().regex(/^[a-f0-9]{64}$/),meta:en,modes:p(tn).min(1),description:f().optional(),ocrText:f().optional(),structured:t({templateId:f().optional(),data:u()}).optional(),engine:n([`llama-cpp`,`mlx`,`mock`,`none`]),modelId:f(),status:n([`ok`,`partial`,`failed`,`static-only`]),failureReason:f().optional(),durationMs:a().int().nonnegative(),at:f()});var rn=t({ref:f(),sha256:f().regex(/^[a-f0-9]{64}$/),digest:f(),modelId:f(),modes:p(tn),status:n([`ok`,`partial`,`failed`,`static-only`]),at:f()});t({artifactPath:f().min(1).optional(),data:f().min(1).optional(),mimeType:f().optional(),mode:nn.default(`auto`),schema:u().optional(),model:f().optional()}),t({state:n([`ok`,`no-model`,`not-configured`,`error`]),modelId:f().optional(),detail:f().optional()});var an=d([t({type:l(`progress`),bytesWritten:a().int().nonnegative(),totalBytes:a().int().nonnegative().optional()}),t({type:l(`error`),error:f()}),t({type:l(`done`),id:f()})]);t({models:p(t({id:f(),name:f(),description:f(),license:f(),approxSizeBytes:a().int().nonnegative(),recoScore:a()}))}),t({models:p(t({id:f(),name:f(),approxSizeBytes:a().int().nonnegative(),installedAt:f(),weightsPath:f().optional(),mmprojPath:f().optional()}))});var on=n([`image_generation`,`video_generation`,`image_recognition`]),sn=t({startedAt:a(),streamedContentChars:a().int().nonnegative(),toolCalls:a().int().nonnegative(),fileMutations:a().int().nonnegative()}),cn=t({sessionId:f(),gezelId:f(),projectId:f(),inflight:r(),turnsStarted:a().int().nonnegative(),deltaChunks:a().int().nonnegative(),streamedContentChars:a().int().nonnegative(),wirePulses:a().int().nonnegative(),heartbeats:a().int().nonnegative(),enginePhaseEvents:a().int().nonnegative(),generationSpurts:a().int().nonnegative(),toolCalls:a().int().nonnegative(),toolArgChars:a().int().nonnegative(),fileMutations:a().int().nonnegative(),gpuEvents:a().int().nonnegative(),gpuTaskActive:on.nullable(),lastStreamActivityAt:a().nullable(),lastToolActivityAt:a().nullable(),lastMutationAt:a().nullable(),lastGpuActivityAt:a().nullable(),lastProgressAt:a().nullable(),currentTurn:sn.nullable()});t({version:l(1),capturedAt:a(),sessions:p(cn)});var F=n([`copilot`,`openai`,`anthropic`,`anthropic-cli`,`codex-cli`,`ollama`,`llama-cpp`,`mlx`,`ds4`,`remote`]),ln=n([`male`,`female`,`non-binary`]),un=t({tool:f().min(1),promptKey:f().min(1).default(`prompt`),defaults:m(f(),u()).optional()}),dn=t({id:f(),text:f().min(1).max(200),adoptedAt:f(),source:n([`levelup`,`manual`]).optional()}),fn=t({frontmatter:t({id:ot.optional(),name:f(),description:f().optional(),role:f().optional(),roleBasedName:f().optional(),gender:ln.optional(),model:f().optional(),provider:F.optional(),reasoningEffort:f().optional(),tuning:M.optional(),tuningProfile:j.optional(),suggestedTuningProfile:j.optional(),tools:p(f()).optional(),tags:p(f()).optional(),fixedFunction:un.optional(),numCtx:a().int().positive().optional(),autoRecall:r().optional(),font:f().optional(),voice:f().optional(),templateId:f().optional(),templateVersion:f().optional(),sandboxCopilot:r().optional(),claudePermissionMode:k.optional(),codexPermissionMode:A.optional(),iconOverride:r().optional(),traits:p(dn).max(8).optional(),recognition:n([`auto`,`always`,`off`]).optional()}),sections:p(t({heading:f(),template:f().optional(),params:m(f(),f()).optional(),body:f()})),source:f()}),pn=t({id:ot,name:f(),description:f().optional(),role:f().optional(),roleBasedName:f().optional(),gender:ln.optional(),model:f().optional(),provider:F.optional(),reasoningEffort:f().optional(),tuningProfile:j.optional(),suggestedTuningProfile:j.optional(),numCtx:a().int().positive().optional(),autoRecall:r().optional(),font:f().optional(),voice:f().optional(),templateId:f().optional(),templateVersion:f().optional(),sandboxCopilot:r().optional(),claudePermissionMode:k.optional(),codexPermissionMode:A.optional(),fixedFunction:un.optional(),icon:f().optional(),poppetje:tt.optional(),iconOverride:r().optional(),recognition:n([`auto`,`always`,`off`]).optional(),scope:n([`global`,`project`]).optional(),storageScope:n([`user`,`machine-shared`]).optional(),traits:p(dn).optional(),growth:gt.optional(),updatedAt:f()});pn.extend({parsed:fn,about:f(),toolsMd:f().nullable().default(null)});var mn=t({path:f(),mimeType:f()}),hn=t({path:f(),mimeType:f(),durationSeconds:a().optional(),voice:f().optional()}),gn=t({path:f(),mimeType:f(),posterPath:f().optional()}),_n=t({name:f(),durationMs:a(),success:r(),errorMessage:f().optional(),path:f().optional(),paths:p(f()).optional(),argsSummary:f().optional(),argsFull:f().optional(),resultText:f().optional(),resultTruncated:r().optional(),images:p(mn).optional(),audios:p(hn).optional(),videos:p(gn).optional(),diff:f().optional(),addedLines:a().int().nonnegative().optional(),removedLines:a().int().nonnegative().optional()}),vn=t({role:n([`user`,`assistant`]),content:f(),at:f(),from:t({gezelId:f(),gezelName:f()}).optional(),referencedArtifacts:p(f()).optional(),referencedTasks:p(f()).optional(),toolCalls:p(_n).optional(),intents:p(t({label:f(),afterChars:a().int().min(0)})).optional(),pendingQuestionId:f().optional(),synthetic:n([`compaction-summary`,`context-loop-halt`,`turn-aborted`,`growth-announcement`,`keurmeester-notice`]).optional(),hidden:r().optional(),nudge:r().optional(),warnings:p(f()).optional(),reasoning:f().optional(),reasoningDurationMs:a().int().nonnegative().optional(),attemptedToolCalls:p(t({body:f(),reason:f().optional()})).optional(),recognizedImages:p(rn).optional()}),yn=t({code:f().max(64).optional(),engine:f().max(64).optional(),incidentId:f().max(64).optional(),panicKind:f().max(64).optional(),exitCode:a().int().nullable().optional(),signal:f().max(32).nullable().optional(),diagnostics:m(f(),d([f(),a(),r()])).optional()}),bn=c(`type`,[t({type:l(`delta`),content:f()}),t({type:l(`reasoning_delta`),content:f()}),t({type:l(`complete`),message:vn}),t({type:l(`user_message`),message:vn}),t({type:l(`tool`),name:f(),durationMs:a(),success:r(),errorMessage:f().optional(),path:f().optional(),paths:p(f()).optional(),argsSummary:f().optional(),argsFull:f().optional(),resultText:f().optional(),resultTruncated:r().optional(),images:p(mn).optional(),audios:p(hn).optional(),videos:p(gn).optional(),diff:f().optional(),addedLines:a().int().nonnegative().optional(),removedLines:a().int().nonnegative().optional()}),t({type:l(`error`),error:f(),errorDetail:yn.optional()}),t({type:l(`cancelled`)}),t({type:l(`done`)}),t({type:l(`queued`),aheadOf:a().int().min(0)}),t({type:l(`wire_pulse`)}),t({type:l(`tool_args_delta`),name:f(),content:f()}),t({type:l(`heartbeat`),label:f().optional()}),t({type:l(`warning`),message:f(),action:t({kind:l(`settings`),section:n([`llamaCpp`,`mlx`,`ds4`])}).optional()}),t({type:l(`intent`),label:f()}),t({type:l(`queue_enqueued`),queueId:f(),preview:f(),enqueuedAt:f(),nudge:r().optional()}),t({type:l(`queue_removed`),queueId:f(),reason:n([`started`,`canceled`,`rejected`])}),t({type:l(`context_warning`),estimatedTokens:a(),numCtx:a(),model:f()}),t({type:l(`context_compacted`),removedCount:a().int().nonnegative(),model:f()}),t({type:l(`context_loop`),compactionsThisSend:a().int().positive(),reason:f()}),t({type:l(`keurmeester_intervention`),caseId:f(),gezelId:f(),gezelName:f(),action:f(),summary:f()}),t({type:l(`recall_applied`),hitCount:a(),query:f()}),t({type:l(`question_asked`),question:Qt}),t({type:l(`question_answered`),question:Qt}),t({type:l(`task_event`),eventId:f(),kind:f(),summary:f(),at:f(),taskRef:f().optional(),gezelId:f().optional()}),t({type:l(`growth_level_up`),gezelId:f(),gezelName:f(),toLevel:a().int()}),t({type:l(`engine_phase`),provider:n([`llama-cpp`,`mlx`,`ds4`]),phase:n([`starting`,`loading_model`,`prefill`,`generating`,`ready`]),detail:f().optional(),progress:a().min(0).max(1).optional(),ttftMs:a().int().nonnegative().optional()}),t({type:l(`turn_stats`),provider:n([`llama-cpp`,`ollama`,`mlx`,`ds4`]),promptTokens:a().int().nonnegative(),completionTokens:a().int().nonnegative(),durationMs:a().int().nonnegative(),tokensPerSec:a().nonnegative().optional()}),t({type:l(`engine_stats`),provider:n([`llama-cpp`,`mlx`,`ds4`]),ramAllocBytes:a().nonnegative()}),t({type:l(`gpu_swap`),state:n([`started`,`progress`,`ended`]),task:on,detail:f().optional(),prompt:f().optional(),progress:a().min(0).max(1).optional(),step:a().int().nonnegative().optional(),totalSteps:a().int().positive().optional(),secondsPerStep:a().nonnegative().optional()}),t({type:l(`awaiting_gezel`),state:n([`started`,`ended`]),targetGezelName:f()}),t({type:l(`project_created`),projectId:f(),name:f()}),t({type:l(`project_deleted`),projectId:f(),name:f()}),t({type:l(`gezel_created`),gezelId:f(),name:f()}),t({type:l(`night_shift`),active:r(),source:n([`scheduled`,`manual`]).nullable()}),t({type:l(`meester_status`),state:n([`started`,`ended`,`failed`]),generatedAt:f().optional()}),t({type:l(`index_progress`),phase:n([`scan`,`shadow`,`enrich`,`review`,`digest`]),state:n([`started`,`progress`,`ended`]),projectId:f().optional(),detail:f().optional(),pending:a().int().nonnegative().optional(),gezelId:f().optional(),gezelName:f().optional()})]),xn=t({sessionId:f(),gezelId:f(),projectId:f(),event:bn}),Sn=n(`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(`,`)),Cn=t({id:f(),at:f(),kind:Sn,projectId:f().optional(),gezelId:f().optional(),summary:f(),details:m(f(),u()).optional()}),wn=t({entryType:l(`session`),id:f(),gezelId:f(),projectId:f(),title:f(),createdAt:f(),lastActivityAt:f(),messageCount:a(),durationMs:a(),providerName:F,model:f().optional(),archived:r().optional()}),Tn=c(`entryType`,[Cn.extend({entryType:l(`event`)}),wn]);t({projectId:f().optional(),gezelId:f().optional(),kinds:p(Sn).optional(),from:f().optional(),to:f().optional(),q:f().optional(),limit:a().int().positive().optional(),include:n([`events`,`entries`]).optional()}),t({entries:p(Tn)});var En=f().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)`}),Dn=t({url:f().min(1),branch:f().optional(),checkoutDir:f().optional(),lastSyncedAt:f().optional(),defaultBranch:f().optional()}),On=t({id:f().min(1),type:f().min(1),sourceId:f().optional(),version:f().optional(),displayName:f().optional(),corpusDir:f().optional(),config:m(f(),u()).default({}),cursor:u().optional(),disabled:r().optional(),lastSyncedAt:f().optional(),lastError:f().optional()}),kn=t({enabled:r().optional(),rapidIntervalMs:a().int().positive().optional(),slowIntervalMs:a().int().positive().optional(),recentActivityWindowMs:a().int().positive().optional(),rapidAttemptsBeforeBackoff:a().int().positive().optional(),firstNudgeGraceMs:a().int().nonnegative().optional()}),An=t({lastNudgedAt:f().optional(),consecutiveRapidNudges:a().int().nonnegative().optional()}),jn=t({overview:r().optional(),tasks:r().optional(),approvals:r().optional(),workspace:r().optional(),artifacts:r().optional(),map:r().optional()}).strict(),Mn=n([`auto`,`allow`,`deny`]),Nn=t({id:f(),version:f(),source:f(),params:m(f(),u()).optional(),appliedAt:f()}),Pn=t({id:ot,name:f(),description:f().optional(),workingDir:f().optional(),voormanGezelId:f().optional(),voormanAutoAssignedAt:f().optional(),gezelIds:p(f()).optional(),suggestedWorkDismissed:p(f()).optional(),properties:m(f(),f()).optional(),mode:n([`crew`,`solo`]).optional(),leadLabel:f().optional(),leanProfile:r().optional(),indexingEnabled:r().optional(),github:Dn.optional(),connectors:p(On).optional(),nudgeConfig:kn.optional(),nudgeState:An.optional(),tabVisibility:jn.optional(),managedWorkspaceWritePolicy:Mn.optional(),allowGezelWrites:r().optional(),codexPermissionMode:nt.optional(),claudePermissionMode:k.optional(),status:n([`active`,`readonly`,`inactive`,`stable`]).optional(),archived:r().optional(),workspaceScriptTimeoutMs:a().int().min(3e4).max(30*6e4).optional(),grantedCredentials:p(f()).optional(),credentialAllowedOrigins:m(f(),p(En)).optional(),projectTypeId:f().optional(),detectedProjectType:t({id:f(),score:a(),scannedAt:f()}).optional(),projectType:Nn.optional(),storageScope:n([`user`,`machine-shared`]).optional(),createdAt:f(),updatedAt:f()}),Fn=t({name:f(),version:f()}),In=Pn.extend({packages:p(Fn),about:f().optional(),missionObjectives:f().optional()});t({name:f(),path:f(),isDirectory:r(),mtimeMs:a().optional()});var Ln=d([v,t({kind:l(`prometheusAlerts`),file:f().min(1),minRules:a().int().positive().optional(),maxPageAlerts:a().int().nonnegative().optional(),allowedSeverities:p(f().min(1)).optional(),requiredServices:p(f().min(1)).optional(),requiredRunbookUrls:p(f().min(1)).optional()}).strict(),t({kind:l(`nodeScriptPasses`),script:f().min(1),timeoutMs:a().int().positive().optional(),requiredOutput:p(t({pattern:f().min(1),flags:f().optional(),label:f().optional()}).strict()).optional()}).strict(),t({kind:l(`binaryDocument`),file:f().min(1),artifact:r().optional(),minBytes:a().int().positive().optional()}).strict()]),I=f().min(1).regex(/^[a-z0-9][a-z0-9-]*$/,`mock service ids are lowercase kebab-case`),Rn=f().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`),zn=t({method:n([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`]).default(`GET`),path:f().min(1),status:a().int().min(100).max(599).default(200),headers:m(f(),f()).optional(),body:u(),latencyMs:a().int().nonnegative().optional()}).strict(),Bn=c(`kind`,[t({kind:l(`http`),id:I,description:f().min(1),credential:t({name:f().regex(/^mock\.[a-z0-9][a-z0-9.-]*$/,`mock credentials are named mock.<service-id>`),authScheme:n([`bearer`,`basic`]).optional()}).strict(),routes:p(zn).min(1)}).strict(),t({kind:l(`webhook`),id:I,description:f().min(1),path:f().min(1).optional()}).strict(),t({kind:l(`cli`),id:I,description:f().min(1),shim:t({path:f().min(1),content:f()}).strict()}).strict(),t({kind:l(`mcp`),id:I,description:f().min(1),toolsetId:Rn.optional(),tools:p(t({name:f().min(1),description:f().min(1),resultTemplate:u().optional(),resultSequence:p(u()).min(1).optional(),writeFixture:t({surface:n([`workspace`,`artifact`]),pathArgument:f().min(1),fixture:n([`minimal-pptx`,`minimal-docx`,`minimal-pdf`,`minimal-png`])}).strict().optional()}).strict()).min(1)}).strict()]),Vn=t({path:f().min(1),content:f(),surface:n([`workspace`,`artifact`,`harness`]).optional(),modelInput:r().optional()}).strict(),Hn=t({name:f().min(1),role:f().min(1),description:f().optional(),about:f().optional()}).strict(),Un=t({projectName:f().min(1),about:f().optional(),missionObjectives:f().optional(),managedWorkspaceWritePolicy:Mn.optional(),files:p(Vn).default([]),craftbookParams:m(f(),f()).optional(),worker:Hn.optional()}).strict(),Wn=t({path:f().min(1),kind:He,artifact:r().optional(),minBytes:a().int().positive().optional(),checks:p(Ln).optional()}).strict(),Gn=t({service:I,minRequests:a().int().positive().optional(),requiredPaths:p(f().min(1)).optional(),forbiddenPaths:p(f().min(1)).optional(),requiredTools:p(f().min(1)).optional(),toolCalls:m(f().min(1),t({minCalls:a().int().nonnegative().default(1),maxCalls:a().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(),Kn=t({kind:Sn,minEntries:a().int().nonnegative().default(1),maxEntries:a().int().nonnegative().optional(),summaryPattern:f().min(1).optional(),flags:f().optional(),details:m(f(),d([f(),a(),r(),i()])).optional()}).strict(),qn=t({summary:f().min(1),deliverables:p(Wn).optional(),checks:p(Ln).optional(),taskNotes:t({minBytes:a().int().positive().optional(),checks:p(Ln).optional(),requireCraftbookTask:r().optional()}).strict().optional(),taskGraph:t({checks:p(Ln).optional(),requireCraftbookTask:r().optional(),requireTerminalStep:r().optional(),requireDraftRef:r().optional(),draft:t({status:n([`draft`,`paused`,`active`,`complete`,`canceled`]).optional(),minDescriptionBytes:a().int().positive().optional(),minOutcomes:a().int().positive().optional(),minSteps:a().int().positive().optional(),requireTerminalVerification:r().optional(),requireGatedBuildSteps:r().optional()}).strict().optional()}).strict().optional(),mocks:p(Gn).optional(),history:p(Kn).optional(),unchangedFixtures:p(f().min(1)).optional()}).strict(),Jn=t({artifact:t({path:f().min(1),kind:n([`html`,`markdown`,`yaml`,`typescript`,`json`,`text`])}).strict(),axes:p(t({name:f().min(1),description:f().min(1)}).strict()).min(1),contextNote:f().optional()}).strict();t({schemaVersion:l(1),title:f().min(1),objective:f().min(1),tags:p(f().min(1)).default([]),prompt:f().min(1),setup:Un,mocks:p(Bn).default([]),success:qn,rubric:Jn,qualityFocus:p(f().min(1)).default([]),extensions:m(f(),u()).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:o.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:o.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:o.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:o.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:o.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:o.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:o.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:o.custom,path:[`success`,`history`,n],message:`minEntries must be less than or equal to maxEntries`})});var Yn=t({id:f().min(1),label:f().min(1),description:f().optional(),kind:n([`gezel`,`model`]).default(`model`),provider:f().min(1),gezelId:f().min(1).optional(),role:f().min(1).optional(),modelLabel:f().min(1).optional(),contextWindow:a().int().positive().optional(),supportsReasoning:r().optional(),supportsTools:r().optional()});t({state:n([`not-configured`,`configured`,`update-needed`,`conflict`,`unavailable`]),models:p(Yn),configuredModel:f().optional(),recommendedModel:f().optional(),reasons:p(f()),message:f().optional(),codexInstalled:r(),codexVersion:f().optional(),codexPath:f().optional(),endpointsEnabled:r(),profileName:f().min(1),profilePath:f().min(1),launchCommand:f().min(1),bridge:t({baseUrl:f().url(),listening:r(),port:a().int().nonnegative()}),canConfigure:r(),canRemove:r()}),t({model:f().min(1)});var Xn=n([`AGENTS.md`,`CLAUDE.md`,`.github/copilot-instructions.md`]),Zn=n([`primary`,`concat`]);t({schemaVersion:l(1).default(1),sourceFile:Xn.optional(),mergeMode:Zn.optional(),aboutHash:f().optional(),derivedAt:f().optional()});var Qn=t({hash:f(),sourceFile:Xn,mergeMode:Zn.optional(),gezelId:f(),userEdited:r().optional()}),$n=t({hash:f(),sourceFile:f()}),er=t({hash:f(),craftbookId:f(),scriptNames:p(f()).default([]),userEdited:r().optional()});t({version:l(1).default(1),gezel:Qn.optional(),about:$n.optional(),craftbooks:m(f(),er).default({})});var tr=t({name:f(),body:f(),confidence:a().min(0).max(1),sourceBlock:f(),origin:n([`static`,`llm`]).optional()}),nr=t({role:f(),about:f()}),rr=t({skillSource:f(),sourceHash:f(),craftbook:Ve,scripts:p(tr).default([]),persona:nr.optional(),notes:p(f()).optional(),createdAt:f()});t({version:l(1).default(1),items:p(rr).default([])});var ir=n([`draft`,`paused`,`active`,`complete`,`canceled`]),L=n([`skip`,`queue`,`concurrent`]),ar=t({expression:f(),lastTickAt:f().optional(),nextTickAt:f().optional(),overlap:L.optional()}),or=t({title:f().optional(),plan:f().optional(),description:f().optional(),context:m(f(),f()).optional()}),sr=t({count:a().int().positive(),variations:p(or).optional(),materializedAt:f().optional()}),cr=t({count:a().int().positive(),variations:p(or).optional()}),lr=t({enabled:r(),onceADay:r().optional(),lastRunDay:f().optional()}),ur=b.extend({createdAt:f(),completedAt:f().optional(),attemptCount:a().int().nonnegative().optional(),lastActivatedAt:f().optional(),gateAttempts:a().int().nonnegative().optional(),lastGateReject:t({contentHash:f().optional(),messageFingerprint:f(),message:f(),at:f()}).optional(),redriveCount:a().int().nonnegative().optional(),lastRedriveAt:f().optional(),gateAttemptHistory:p(t({at:f(),attempt:a().int().nonnegative(),contentHash:f().optional(),signatureHash:f(),messageFingerprint:f(),failedChecks:p(f()).optional(),frozen:r().optional()})).optional()}),dr=t({id:f().min(1),name:f().min(1),description:f().optional(),version:f().optional(),basedOn:D.optional(),plan:f().optional(),defaultAssignee:h.optional(),steps:p(ur).min(1),entryStepId:f().min(1),triggers:p(f()).optional(),hooks:p(y).optional(),paramSchema:m(f(),u()).optional(),toolsets:p(w).optional(),connectors:p(T).optional(),scripts:E.optional(),spawn:x.optional(),createdAt:f(),updatedAt:f(),renderedForTier:Fe.optional()}),fr=t({role:n([`main`,`spawn`]),catalogId:f(),version:f().optional(),sourceId:f().optional()}),pr=t({id:f(),text:f().min(1),met:r().optional(),evidence:f().optional(),verifiedAt:f().optional()}),mr=t({projectId:f(),num:a().int().positive(),ref:f(),title:f(),description:f().optional(),plan:f().optional(),outcomes:p(pr).optional(),status:ir,assignee:h,assigneeAuto:r().optional(),craftbook:dr,spawnsCraftbook:dr.optional(),sourceCraftbookIds:p(fr).optional(),craftbookParams:m(f(),f()).optional(),spawnsCraftbookParams:m(f(),f()).optional(),activeStepId:f().optional(),parentTaskRef:f().optional(),origin:c(`kind`,[t({kind:l(`project-type-schedule`),typeId:f(),scheduleKey:f()}),t({kind:l(`system-job`),jobId:f(),managedByGezelId:f().optional()}),t({kind:l(`boekwachter-issue`),issueRef:f().regex(/^BW-[1-9]\d*$/),path:f().min(1)}),t({kind:l(`craftbook-invocation`),key:f().regex(/^craftbook-root-v1:[a-f0-9]{64}$/)}),t({kind:l(`gezel-suggested-craftbook`),templateId:f(),suggestionKey:f()})]).optional(),cron:ar.optional(),nightShift:lr.optional(),fanout:sr.optional(),lastGateHandoff:t({fromStepId:f(),toStepId:f().optional(),message:f(),params:m(f(),u()).optional(),at:f()}).optional(),roleBasedNameOnlyMode:r().optional(),createdAt:f(),updatedAt:f(),createdBy:h});t({title:f().min(1),description:f().min(40),plan:f().optional(),outcomes:p(pr).optional(),assignee:h.optional(),status:n([`draft`,`active`]).optional(),craftbookId:f().optional(),craftbookSourceId:f().optional(),craftbookVersion:f().optional(),steps:p(O).optional(),entryStepId:f().optional(),craftbookParams:m(f(),f()).optional(),spawnsCraftbookParams:m(f(),f()).optional(),spawnsCraftbookId:f().optional(),spawnsCraftbookSourceId:f().optional(),spawnsCraftbookVersion:f().optional(),spawnsSteps:p(O).optional(),spawnsEntryStepId:f().optional(),parentTaskRef:f().optional(),cron:t({expression:f(),overlap:L.optional()}).optional(),nightShift:t({enabled:r(),onceADay:r().optional()}).optional(),fanout:cr.optional(),createdBy:h.optional(),roleBasedNameOnlyMode:r().optional(),dispatchEntry:r().optional(),craftbookInvocationKey:f().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`]}),t({title:f().min(1).optional(),description:f().optional(),plan:f().optional(),outcomes:p(pr).nullable().optional(),assignee:h.optional(),cron:t({expression:f(),overlap:L.optional()}).nullable().optional(),nightShift:t({enabled:r(),onceADay:r().optional()}).nullable().optional(),fanout:cr.nullable().optional(),spawnsCraftbookParams:m(f(),f()).nullable().optional()}),t({count:a().int().positive().optional(),variations:p(or).optional()}),t({status:ir}),t({next:f().optional(),force:r().optional()}),t({task:mr,gate:t({decision:l(`reject`),message:f(),attempt:a().int().nonnegative(),maxAttempts:a().int().positive(),paused:r(),infrastructureError:r().optional(),scriptRuns:p(t({scriptName:f(),runId:f().optional(),error:f().optional(),logsTail:f().optional()})).optional()}).optional()}),t({name:f().min(1).optional(),description:f().optional(),prompt:f().optional(),suggestedRole:f().nullable().optional(),assignee:h.nullable().optional(),suggestedGezelId:f().nullable().optional(),onEnter:g.nullable().optional(),onExit:g.nullable().optional(),consumes:p(Pe).min(1).nullable().optional(),advanceWhen:Ne.nullable().optional(),gate:Ee.nullable().optional(),next:f().nullable().optional(),branches:p(Me).nullable().optional(),terminal:r().optional()}),t({task:mr}),t({name:f().min(1).optional(),description:f().nullable().optional(),plan:f().nullable().optional(),defaultAssignee:h.nullable().optional(),entryStepId:f().optional()}),t({id:f().optional(),name:f().min(1),description:f().optional(),prompt:f().optional(),suggestedGezelId:f().optional(),assignee:h.optional()}),t({tasks:p(mr)});var hr=c(`kind`,[t({kind:l(`gezel`),gezelId:f(),name:f()}),t({kind:l(`user`)})]),gr=t({id:f(),at:f(),author:hr,stepId:f().optional(),text:f()});t({notes:p(gr)}),t({text:f().min(1),stepId:f().optional()}),t({note:gr}),t({text:f().min(1)}),t({note:gr});function _r(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 vr=f().refine(e=>_r(e)!==null,{message:`task ref must use projectId/num form`}),yr=t({family:n([`gemma`,`qwen`,`gpt-oss`,`mistral`,`llama`,`deepseek`,`qwq`,`phi`,`nemotron`,`glm`,`muse`,`other`]),reasoningFormat:n([`think`,`channel`,`inline`,`none`]),toolCallFormat:n([`function-call`,`qwen-xml`,`hermes`,`gemma-special-token`,`json-envelope`])}),br=f().min(1),xr=d([br,t({id:br,config:u().optional()})]),Sr=n([`artifacts`,`workspace`,`type`]);t({source:Sr,path:f().max(4096)}),t({url:f().startsWith(`/preview/`),browserUrl:f().url().optional(),expiresAt:f(),scopePath:f()}),t({path:f().max(4096)}),t({ran:r(),ok:r().optional(),errors:p(f()).optional(),reason:f().optional()}),t({entries:p(t({kind:n([`error`,`unhandledrejection`,`console.error`]),message:f().max(2e3),path:f().max(4096),source:Sr,at:f()})).min(1).max(20)});var R=/^[a-z0-9][a-z0-9.\-:]{1,63}$/,z=/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/,Cr=n([`open`,`commercial-restricted`,`custom-restricted`]),B={licenseClass:Cr.optional(),licenseShortName:f().optional(),licenseUrl:f().url().optional()},V={recoScore:a().int().positive().optional()},H={minGezelVersion:f().optional()},U=t({...H,schemaVersion:l(1),id:f().regex(R),name:f().min(1),description:f(),tags:p(f()).default([]),maintainer:t({name:f(),url:f().url().optional()}),logo:f().optional(),license:f().optional(),...B,...V,yankedVersions:p(f()).default([]),minSupportedVersion:f().optional()}),wr=n([`search`,`dev-tools`,`data`,`cloud`,`productivity`,`communication`,`content`,`ai`,`media`,`other`]),Tr=n([`general`,`code`,`communication`,`creative`,`writing`,`growth`,`game`,`data`,`home`,`money`,`events`,`other`]),Er=n([`darwin-arm64`,`darwin-x64`,`linux-arm64`,`linux-x64`,`win32-x64`]),Dr=t({kind:l(`npm-package`),package:f().min(1).max(214).regex(/^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9][a-z0-9._~-]*$/),version:f().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:f().regex(/^[a-f0-9]{64}$/),entry:f().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(f().max(4096).refine(e=>!e.includes(`\0`))).max(64).default([]),envHints:p(f().regex(/^[A-Z_][A-Z0-9_]{0,63}$/)).max(64).default([])}),Or=c(`kind`,[Dr,t({kind:l(`http-mcp`),url:f().url(),transport:n([`streamable-http`,`sse`]).default(`streamable-http`),authHint:n([`none`,`bearer`,`oauth`]).default(`none`),envHints:p(f()).default([])}),t({kind:l(`stdio-mcp-binary`),binaries:m(Er,t({url:f().url(),sha256:f().regex(/^[a-f0-9]{64}$/)})),args:p(f()).default([]),envHints:p(f()).default([])}),t({kind:l(`builtin`),toolsetGroupId:f()}),t({kind:l(`custom-mcp`),serverName:f().min(1).max(256),transport:n([`stdio`,`streamable-http`,`sse`]),source:c(`kind`,[t({kind:l(`project-file`),relativePath:n([`.gezel/mcp.json`,`.vscode/mcp.json`,`.mcp.json`])}),t({kind:l(`imported`),sourceName:f().min(1).max(512).optional()})]),command:f().min(1).max(4096).optional(),args:p(f().max(16384)).max(256).default([]),cwd:f().max(4096).optional(),envFile:f().max(4096).optional(),url:f().max(16384).optional(),envKeys:p(f().min(1).max(256)).max(256).default([]),headerKeys:p(f().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`}))})]),kr=t({id:f(),label:f(),description:f().optional(),type:n([`string`,`enum`,`url`,`number`,`boolean`]),secret:r().default(!1),required:r().default(!1),default:f().optional(),options:p(f()).optional(),multiline:r().default(!1),pattern:f().optional(),placeholder:f().optional(),envVar:f().optional()}),Ar=U.extend({kind:l(`toolset`),category:wr.optional()});t({...H,schemaVersion:l(1),version:f().regex(z),releasedAt:f(),runtime:Or,tools:p(t({name:f(),description:f().default(``)})).default([]),config:p(kr).default([]),requirements:t({node:f().optional(),platforms:p(Er).optional()}).optional(),notes:f().optional()});var jr=t({...H,schemaVersion:l(1),kind:l(`toolset`),id:f().regex(R),name:f().min(1),description:f(),tags:p(f()).default([]),maintainer:t({name:f(),url:f().url().optional()}),logo:f().optional(),license:f().optional(),version:f(),releasedAt:f(),runtime:Or,tools:p(t({name:f(),description:f().default(``)})).default([]),config:p(kr).default([]),requirements:t({node:f().optional(),platforms:p(Er).optional()}).optional(),notes:f().optional(),availableVersions:p(f()).default([]),category:wr.optional()}),Mr=U.extend({kind:l(`gezel-template`),role:f(),meesterCandidate:r().default(!1)}),Nr=t({craftbookId:f(),runMode:n([`night-shift`,`scheduled`]),cron:f().optional(),overlap:n([`skip`,`queue`,`concurrent`]).optional(),params:m(f(),f()).optional(),reason:f().optional()}).refine(e=>e.runMode!==`scheduled`||!!e.cron,{message:`scheduled suggestions require cron`});t({...H,schemaVersion:l(1),version:f().regex(z),releasedAt:f(),about:f(),suggestedProvider:F.optional(),suggestedModel:f().optional(),suggestedTools:p(f()).default([]),notes:f().optional(),frontmatter:m(f(),u()).optional(),nameSuggestions:p(f()).optional(),suggestedCraftbooks:p(Nr).optional()});var Pr=t({...H,schemaVersion:l(1),kind:l(`gezel-template`),id:f().regex(R),name:f().min(1),description:f(),tags:p(f()).default([]),maintainer:t({name:f(),url:f().url().optional()}),logo:f().optional(),license:f().optional(),version:f(),releasedAt:f(),role:f(),about:f(),suggestedProvider:F.optional(),suggestedModel:f().optional(),suggestedTools:p(f()).default([]),meesterCandidate:r().default(!1),notes:f().optional(),availableVersions:p(f()).default([]),frontmatter:m(f(),u()).optional(),nameSuggestions:p(f()).optional(),suggestedCraftbooks:p(Nr).optional()}),Fr=n([`project-starter`,`maintenance-review`,`general`]),Ir=U.extend({kind:l(`craftbook-template`),role:Fr.default(`general`),workflow:f().optional()});t({...H,schemaVersion:l(1),version:f().regex(z),releasedAt:f(),about:f(),steps:p(b).min(1),entryStepId:f().min(1),defaultAssignee:h.optional(),basedOn:D.optional(),plan:f().optional(),notes:f().optional(),spawn:x.optional(),triggers:p(f()).optional(),hooks:p(y).optional(),bundledScripts:p(f()).optional(),paramSchema:m(f(),u()).optional(),command:f().regex(/^[a-z][a-z0-9-]*$/).optional(),requirements:p(S).optional(),runModes:C.optional(),toolsets:p(w).optional(),connectors:p(T).optional()});var Lr=t({...H,schemaVersion:l(1),kind:l(`craftbook-template`),id:f().regex(R),name:f().min(1),description:f(),tags:p(f()).default([]),maintainer:t({name:f(),url:f().url().optional()}),logo:f().optional(),license:f().optional(),version:f(),releasedAt:f(),role:Fr.default(`general`),workflow:f().optional(),about:f(),steps:p(b).min(1),entryStepId:f().min(1),defaultAssignee:h.optional(),basedOn:D.optional(),plan:f().optional(),notes:f().optional(),spawn:x.optional(),availableVersions:p(f()).default([]),triggers:p(f()).optional(),hooks:p(y).optional(),scripts:E.optional(),bundledScripts:p(f()).optional(),paramSchema:m(f(),u()).optional(),command:f().regex(/^[a-z][a-z0-9-]*$/).optional(),requirements:p(S).optional(),runModes:C.optional(),toolsets:p(w).optional(),connectors:p(T).optional()}),Rr=t({templateId:f(),voorman:r().default(!1)}),zr=t({id:f(),sourceId:f().optional(),need:n([`required`,`suggested`]).default(`suggested`),autoAllow:p(f()).default([]),reason:f().optional()}),Br=t({gezel:f(),prompt:f().min(1),hideSeed:r().optional()}),Vr=t({name:f().regex(/^[a-z][a-z0-9_]*$/),description:f(),script:f(),inputs:m(f(),u()).optional(),bind:m(f(),u()).optional(),reaction:Br.optional()}),Hr=t({runMode:n([`scheduled`,`night-shift`]).default(`scheduled`),cron:f().optional(),craftbook:f(),consent:n([`ask`,`auto`,`disabled`]).default(`ask`),overlap:n([`skip`,`queue`,`concurrent`]).optional()}).refine(e=>e.runMode!==`scheduled`||!!e.cron,{message:`scheduled project-type schedules require cron`}),Ur=t({source:Sr,path:f().min(1),subtree:r().optional()}),Wr=t({entry:f(),api:l(1).optional(),reads:p(Ur).optional(),tools:p(f().regex(/^[a-z][a-z0-9_]*$/)).optional()}),Gr={extends:f().optional(),meesterManaged:r().optional(),tabVisibility:jn.optional(),mode:n([`crew`,`solo`]).optional(),leadLabel:f().min(1).optional(),leanProfile:r().optional(),indexingEnabled:r().optional(),params:m(f(),u()).optional(),nameTemplate:f().min(1).optional(),aboutTemplate:f().optional(),missionTemplate:f().optional(),gezels:p(Rr).default([]),toolsets:p(zr).default([]),craftbooks:p(f()).default([]),scripts:E.optional(),tools:p(Vr).default([]),pages:Wr.optional(),schedules:p(Hr).default([]),workspaceSeed:p(f()).default([]),artifactsSeed:p(f()).default([]),notes:f().optional()},Kr=U.extend({kind:l(`project-type`),category:Tr.optional()});t({...H,schemaVersion:l(1),version:f().regex(z),releasedAt:f(),...Gr});var qr=t({...H,schemaVersion:l(1),kind:l(`project-type`),id:f().regex(R),name:f().min(1),description:f(),tags:p(f()).default([]),category:Tr.optional(),maintainer:t({name:f(),url:f().url().optional()}),logo:f().optional(),license:f().optional(),version:f(),releasedAt:f(),...Gr,availableVersions:p(f()).default([])}),Jr=n([`mcp`,`script`,`spectral`,`native`]),Yr=d([t({kind:l(`mapping`),map:m(f(),u())}),t({kind:l(`script`),script:f()}),t({kind:l(`native`)})]),Xr=t({name:f(),consentScope:f()}),Zr=t({title:f().min(1),description:f().min(1).optional(),steps:p(f().min(1)).optional(),url:f().url().optional(),urlLabel:f().min(1).optional()}),Qr={driver:Jr,configSchema:m(f(),u()).optional(),secretShape:m(f(),u()).optional(),setupInstructions:Zr.optional(),source:m(f(),u()),normalize:Yr.default({kind:`native`}),actions:p(Xr).default([]),completeness:n([`mirror`,`window`]).optional(),allowedOrigins:p(f()).optional(),notes:f().optional()},$r=U.extend({kind:l(`connector-type`)});t({...H,schemaVersion:l(1),version:f().regex(z),releasedAt:f(),...Qr});var ei=t({...H,schemaVersion:l(1),kind:l(`connector-type`),id:f().regex(R),name:f().min(1),description:f(),tags:p(f()).default([]),maintainer:t({name:f(),url:f().url().optional()}),logo:f().optional(),license:f().optional(),version:f(),releasedAt:f(),...Qr,availableVersions:p(f()).default([])}),ti=n([`general`,`coding`,`reasoning`,`vision`,`embedding`]),ni=t({tag:f()}),ri=t({name:f(),sha256:f().regex(/^[a-f0-9]{64}$/),sizeBytes:a().int().positive()}),ii=t({huggingfaceRepo:f().regex(/^[A-Za-z0-9_\-.]+\/[A-Za-z0-9_\-.]+$/),revision:f().optional(),filename:f().optional(),sha256:f().regex(/^[a-f0-9]{64}$/).optional(),shards:p(ri).min(2).optional(),approxSizeBytes:a().int().positive(),residentBytes:a().int().positive().optional(),quantization:f().optional(),mmproj:t({filename:f(),sha256:f().regex(/^[a-f0-9]{64}$/),sizeBytes:a().int().positive()}).optional(),draftModel:t({filename:f(),sha256:f().regex(/^[a-f0-9]{64}$/),sizeBytes:a().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)`}),ai=t({huggingfaceRepo:f().regex(/^[A-Za-z0-9_\-.]+\/[A-Za-z0-9_\-.]+$/),revision:f().optional(),filename:f().optional(),sha256:f().regex(/^[a-f0-9]{64}$/).optional(),shards:p(ri).min(2).optional(),approxSizeBytes:a().int().positive(),residentBytes:a().int().positive().optional(),kvBytesPerToken:a().int().positive().optional(),residentCtxTokens:a().int().positive().optional(),quantization:f().optional(),cacheExpertsBytes:a().int().positive().optional(),ssdStreaming:r().optional(),maxLaunchCtx:a().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)`}),oi=t({huggingfaceRepo:f().regex(/^[A-Za-z0-9_\-.]+\/[A-Za-z0-9_\-.]+$/),revision:f().optional(),files:p(t({name:f(),sha256:f().regex(/^[a-f0-9]{64}$/),sizeBytes:a().int().positive()})).min(1),approxSizeBytes:a().int().positive(),residentBytes:a().int().positive().optional(),quantization:f().optional(),chatTemplate:f().optional(),disabledReason:f().optional()}),si=U.extend({kind:l(`chat-model`),maker:t({name:f().min(1),url:f().url().optional()}).optional(),parameterSize:f(),supportsTools:r(),contextWindow:a().int().positive().optional(),kvBytesPerTokenF16:a().positive().optional(),kvFixedBytesF16:a().nonnegative().optional(),upstream:f().url().optional(),category:ti.optional(),style:yr.optional(),behaviors:p(xr).optional(),tuning:M.optional()});t({...H,schemaVersion:l(1),version:f().regex(z),releasedAt:f(),approxSizeBytes:a().int().positive(),ollama:ni.optional(),llamaCpp:ii.optional(),mlx:oi.optional(),ds4:ai.optional(),notes:f().optional()});var ci=t({sniffThresholds:t({inlineJsMinBytes:a().int().min(1e3).optional(),htmlMinBytes:a().int().min(1e3).optional()}).optional()}),li=t({...H,schemaVersion:l(1),kind:l(`chat-model`),id:f().regex(R),name:f().min(1),description:f(),tags:p(f()).default([]),maintainer:t({name:f(),url:f().url().optional()}),maker:t({name:f().min(1),url:f().url().optional()}).optional(),logo:f().optional(),license:f().optional(),...B,...V,version:f(),releasedAt:f(),parameterSize:f(),approxSizeBytes:a().int().positive(),supportsTools:r(),contextWindow:a().int().positive().optional(),kvBytesPerTokenF16:a().positive().optional(),kvFixedBytesF16:a().nonnegative().optional(),upstream:f().url().optional(),category:ti.optional(),style:yr.optional(),behaviors:p(xr).optional(),tuning:M.optional(),evalHints:ci.optional(),ollama:ni.optional(),llamaCpp:ii.optional(),mlx:oi.optional(),ds4:ai.optional(),notes:f().optional(),availableVersions:p(f()).default([])}),ui=n([`general`,`artistic`,`photographic`]),di=n([`low`,`mid`,`high`,`workstation`]),fi=t({role:n([`vae`,`clip_l`,`clip_g`,`t5xxl`,`llm`]),downloadUrl:f().url(),sha256:f().regex(/^[a-f0-9]{64}$/),approxSizeBytes:a().int().positive()}),pi=U.extend({kind:l(`image-model`),recommendedSteps:a().int().positive().default(20),widthRange:t({min:a().int().positive(),max:a().int().positive()}).optional(),heightRange:t({min:a().int().positive(),max:a().int().positive()}).optional(),upstream:f().url().optional(),category:ui.optional(),weightsKind:n([`checkpoint`,`diffusion-model`]).default(`checkpoint`),supportsImg2Img:r().optional(),hardwareTier:di,minRamGB:a().positive(),commercialUse:r()});t({...H,schemaVersion:l(1),version:f().regex(z),releasedAt:f(),downloadUrl:f().url(),sha256:f().regex(/^[a-f0-9]{64}$/),approxSizeBytes:a().int().positive(),quantization:f().optional(),auxiliaryFiles:p(fi).default([]),notes:f().optional()});var mi=t({...H,schemaVersion:l(1),kind:l(`image-model`),id:f().regex(R),name:f().min(1),description:f(),tags:p(f()).default([]),maintainer:t({name:f(),url:f().url().optional()}),logo:f().optional(),license:f().optional(),...B,...V,version:f(),releasedAt:f(),downloadUrl:f().url(),sha256:f().regex(/^[a-f0-9]{64}$/),approxSizeBytes:a().int().positive(),quantization:f().optional(),recommendedSteps:a().int().positive().default(20),widthRange:t({min:a().int().positive(),max:a().int().positive()}).optional(),heightRange:t({min:a().int().positive(),max:a().int().positive()}).optional(),upstream:f().url().optional(),category:ui.optional(),weightsKind:n([`checkpoint`,`diffusion-model`]).default(`checkpoint`),supportsImg2Img:r().optional(),auxiliaryFiles:p(fi).default([]),hardwareTier:di,minRamGB:a().positive(),commercialUse:r(),notes:f().optional(),availableVersions:p(f()).default([])}),hi=n([`ltx`,`ltx2`,`wan`]),gi=t({strategy:n([`diffusers-tree`,`single-file`]).default(`diffusers-tree`),pipelineClass:f().optional(),singleFileName:f().optional(),transformerClass:f().optional(),vaeDtype:n([`float32`,`bfloat16`]).optional(),audio:r().default(!1)}),_i=t({huggingfaceRepo:f().regex(/^[A-Za-z0-9_\-.]+\/[A-Za-z0-9_\-.]+$/),revision:f().optional(),files:p(t({name:f(),sha256:f().regex(/^[a-f0-9]{64}$/),sizeBytes:a().int().positive(),repo:f().regex(/^[A-Za-z0-9_\-.]+\/[A-Za-z0-9_\-.]+$/).optional(),revision:f().optional()})).min(1),approxSizeBytes:a().int().positive(),quantization:f().optional()}),W=t({min:a().int().positive(),max:a().int().positive()}),vi=U.extend({kind:l(`video-model`),family:hi,load:gi.optional(),recommendedSteps:a().int().positive().default(40),guidanceScale:a().positive().optional(),defaultNumFrames:a().int().positive().default(97),numFramesRange:W.optional(),defaultFps:a().int().positive().default(24),fpsRange:W.optional(),maxDurationSeconds:a().positive().optional(),widthRange:W.optional(),heightRange:W.optional(),defaultWidth:a().int().positive().optional(),defaultHeight:a().int().positive().optional(),supportsImageToVideo:r().default(!1),upstream:f().url().optional(),hardwareTier:di,minVramGB:a().positive(),commercialUse:r()});t({...H,schemaVersion:l(1),version:f().regex(z),releasedAt:f(),source:_i,notes:f().optional()});var yi=t({...H,schemaVersion:l(1),kind:l(`video-model`),id:f().regex(R),name:f().min(1),description:f(),tags:p(f()).default([]),maintainer:t({name:f(),url:f().url().optional()}),logo:f().optional(),license:f().optional(),...B,...V,version:f(),releasedAt:f(),family:hi,load:gi.optional(),source:_i,approxSizeBytes:a().int().positive(),recommendedSteps:a().int().positive().default(40),guidanceScale:a().positive().optional(),defaultNumFrames:a().int().positive().default(97),numFramesRange:W.optional(),defaultFps:a().int().positive().default(24),fpsRange:W.optional(),maxDurationSeconds:a().positive().optional(),widthRange:W.optional(),heightRange:W.optional(),defaultWidth:a().int().positive().optional(),defaultHeight:a().int().positive().optional(),supportsImageToVideo:r().default(!1),upstream:f().url().optional(),hardwareTier:di,minVramGB:a().positive(),commercialUse:r(),notes:f().optional(),availableVersions:p(f()).default([])});c(`kind`,[Ar,Mr,Ir,Kr,$r,si,pi,vi]);var bi=c(`kind`,[jr,Pr,Lr,qr,ei,li,mi,yi]),xi=n([`toolset`,`gezel-template`,`craftbook-template`,`project-type`,`connector-type`,`chat-model`,`image-model`,`video-model`]),Si=t({sourceId:f(),kind:xi,manifest:bi,logoUrl:f().optional(),iconSvg:f().optional()});t({items:p(Si)}),Si.extend({readme:f().optional(),about:f().optional()}),t({versions:p(t({version:f(),releasedAt:f(),yanked:r()}))});var Ci={toolsetId:f(),sourceId:f(),version:f(),installedAt:f(),installPath:f().optional()},wi=t({...Ci,runtime:Or}),Ti=Dr.extend({sha256:f().regex(/^(?:sha256-[A-Za-z0-9+/]{43}=|sha384-[A-Za-z0-9+/]{64}|sha512-[A-Za-z0-9+/]{86}==)$/)});d([wi,t({...Ci,sourceId:l(`system`),runtime:Ti})]),t({toolsetId:f(),values:m(f(),f()).default({}),updatedAt:f()});var Ei=t({kind:xi,id:f(),version:f(),path:f(),sha256:f().regex(/^[a-f0-9]{64}$/)});t({schemaVersion:l(1),name:f().min(1),description:f().default(``),creator:f().optional(),createdAt:f().optional(),minSupportedVersion:f().optional(),items:p(Ei).min(1),provenance:t({source:f().optional(),exportedFromProject:f().optional()}).optional()});var Di=n([`llama-cpp`,`mlx`,`ds4`]),Oi=t({path:f().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:a().int().nonnegative().max(2**53-1),sha256:f().regex(/^[a-f0-9]{64}$/),role:n([`model`,`installed-manifest`,`catalog-manifest`,`catalog-file`])}),ki=t({name:f().min(1),shortName:f().min(1).optional(),class:Cr.optional(),url:f().url().optional()}),Ai=t({schemaVersion:l(1),kind:l(`gezel-model`),id:f().regex(R),name:f().min(1).max(256),engine:Di,createdAt:f().datetime(),createdBy:l(`gezel`),catalogVersion:f().optional(),approxSizeBytes:a().int().nonnegative().max(2**53-1),license:ki.optional(),files:p(Oi).min(2).max(16384)});t({importId:f().uuid(),manifest:Ai,alreadyInstalled:r(),warnings:p(f())});var ji=n([`current`,`default`,`development`]),Mi=t({source:ji,sourceLabel:f().min(1).max(128),engine:Di,id:f().regex(R),name:f().min(1).max(256),approxSizeBytes:a().int().nonnegative().max(2**53-1),catalogVersion:f().min(1),moving:r().default(!1)});t({available:r(),candidates:p(Mi)}),t({source:ji,engine:Di,id:f().regex(R)}),t({ok:l(!0),engine:Di,id:f().regex(R),localRemoved:r(),warning:f().min(1).optional()});var Ni=t({label:f().min(1),path:f().min(1)}),Pi=t({id:f(),kind:n([`command`,`output`]),content:f(),at:f(),resolvedFrom:f().optional(),stdout:f().optional(),stderr:f().optional(),exitCode:a().int().optional(),durationMs:a().int().nonnegative().optional(),truncated:r().optional(),errorMessage:f().optional(),fileReferences:p(Ni).optional(),cwd:f().optional()});t({threads:p(t({version:l(1),id:f(),projectId:f(),workingDir:f(),createdAt:f(),lastActivityAt:f(),archived:r().optional(),messages:p(Pi)}).pick({id:!0,projectId:!0,workingDir:!0,createdAt:!0,lastActivityAt:!0,archived:!0}).extend({lastCommand:f().optional()}))}),t({workingDir:f(),input:f().min(1),columns:a().int().min(20).max(500).optional()}),t({threadId:f(),runId:f()});var Fi=c(`kind`,[t({kind:l(`message`),projectId:f(),threadId:f(),workingDir:f(),message:s(()=>Pi),runId:f().optional()}),t({kind:l(`workingDirChanged`),projectId:f(),threadId:f(),newWorkingDir:f()}),t({kind:l(`runStarted`),projectId:f(),threadId:f(),runId:f(),commandMessageId:f(),at:f(),cwd:f()}),t({kind:l(`outputChunk`),projectId:f(),threadId:f(),runId:f(),chunk:f()}),t({kind:l(`inputRequested`),projectId:f(),threadId:f(),runId:f(),promptLine:f(),mode:n([`text`,`password`,`yes-no`])}),t({kind:l(`openFile`),projectId:f(),threadId:f(),path:f(),source:l(`workspace`)})]),Ii=t({threadId:f(),projectId:f(),workingDir:f(),threadCreatedAt:f(),threadLastActivityAt:f(),threadArchived:r().optional(),messageId:f(),msgKind:n([`command`,`output`]),content:f(),at:f(),resolvedFrom:f().optional(),stdout:f().optional(),stderr:f().optional(),exitCode:a().int().optional(),durationMs:a().int().nonnegative().optional(),truncated:r().optional(),errorMessage:f().optional(),fileReferences:p(Ni).optional(),cwd:f().optional()}),Li=t({kind:n([`file`,`chat`]),filePath:f().optional(),checks:p(v).optional(),scripts:p(Te).optional()}),Ri=t({version:l(1),id:f(),gezelId:f(),projectId:f(),providerName:F,model:f().optional(),modelSource:n([`capability-routing`]).optional(),nightShift:r().optional(),engineKey:f().optional(),reasoningEffort:f().optional(),title:f(),createdAt:f(),lastActivityAt:f(),archived:r().optional(),messages:p(vn),providerState:t({copilotSessionId:f().optional(),openaiPreviousResponseId:f().optional(),claudeCliSessionId:f().optional(),codexCliThreadId:f().optional()}),aboutSnapshot:f().optional(),roleBasedNameOnlyMode:r().optional(),resumeFailed:r().optional(),deliverableGatePlateau:t({signatureHash:f(),count:a().int().nonnegative(),stage:a().int().min(0).max(3),at:f()}).optional(),lastTurnError:f().optional(),lastTurnErrorDetail:yn.optional(),taskRef:f().optional(),stepId:f().optional(),lastImageGeneration:t({prompt:f(),negativePrompt:f().optional(),artifactPath:f(),seed:a().int().optional(),model:f().optional(),at:f()}).optional(),craftbookRef:f().optional(),consultationMode:r().optional(),expectedDeliverable:Li.optional(),scriptTools:p(Vr).optional(),numCtx:a().int().positive().optional(),recall:t({at:f(),query:f(),hits:p(t({text:f(),scope:n([`gezel`,`project`,`workspace`]),day:f(),score:a(),kind:n([`fact`,`decision`,`pref`,`status`]).optional()}))}).optional(),summarizedAt:f().optional(),summarizedUpTo:a().int().nonnegative().optional(),extractedUpTo:a().int().nonnegative().optional(),compactionCount:a().int().nonnegative().optional(),lastCompactedAt:f().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:f().optional(),lastMessagePreview:f().max(200).optional(),involvedGezelIds:p(f()).optional()});t({gezelId:f(),projectId:f().optional(),taskRef:f().optional(),stepId:f().optional(),craftbookRef:f().optional(),roleBasedNameOnlyMode:r().optional()}),t({sessions:p(Ri)}),t({message:f().min(1),mentions:p(f().min(1)).max(10).optional(),passiveCcGezelIds:p(f().min(1)).max(5).optional(),nudge:r().optional()}),t({accepted:l(!0),sessionId:f()});var zi=t({queueId:f(),text:f(),preview:f(),enqueuedAt:f(),nudge:r()});t({sessionId:f(),entries:p(zi)}),t({message:f().min(1)}),t({updated:l(!0),entry:zi}),t({message:f().min(1)}),t({messages:p(t({sessionId:f(),gezelId:f(),projectId:f(),sessionTitle:f(),sessionCreatedAt:f(),sessionLastActivityAt:f(),sessionArchived:r().optional(),sessionProviderName:F,sessionModel:f().optional(),sessionLastTurnError:f().optional(),taskRef:f().optional(),stepId:f().optional(),handoffFrom:t({gezelId:f(),sessionId:f()}).optional(),role:n([`user`,`assistant`]),content:f(),at:f(),from:t({gezelId:f(),gezelName:f()}).optional(),nudge:r().optional(),referencedArtifacts:p(f()).optional(),referencedTasks:p(f()).optional(),toolCalls:p(_n).optional(),intents:p(t({label:f(),afterChars:a().int().min(0)})).optional(),pendingQuestionId:f().optional(),warnings:p(f()).optional(),reasoning:f().optional(),reasoningDurationMs:a().int().nonnegative().optional(),attemptedToolCalls:p(t({body:f(),reason:f().optional()})).optional()})),hasMore:r(),nextCursor:f().optional(),terminalEntries:p(Ii).optional()});var Bi=n([`up-to-date`,`updated`,`incompatible`,`error`,`blocked`]),Vi=t({at:f(),outcome:Bi,message:f().optional(),version:f().optional(),regressions:p(t({kind:f(),id:f()})).max(25).optional()});t({enabled:r(),mode:n([`bundled`,`live`,`overridden`]),bundledVersion:f(),activeVersion:f().nullable(),lastCheck:Vi.nullable(),updateInProgress:r()});var Hi=n([`nudge_budget_exhausted`,`context_loop`,`gate_exhausted`,`step_redrive_exhausted`,`turn_aborted`,`deliverable_plateau`]),Ui=c(`kind`,[t({kind:l(`corrective_prompt`),prompt:f().min(1)}),t({kind:l(`rewrite_step`),stepId:f().min(1),prompt:f().min(1),name:f().optional(),deliverable:f().optional()}),t({kind:l(`rewrite_craftbook`),document:f().min(1),rationale:f().min(1)}),t({kind:l(`takeover_step`),instruction:f().min(1)}),t({kind:l(`stand_down`),reason:f().min(1)})]),Wi=n([`silent_stall`,`tool_loop`,`capability_ceiling`,`task_shape`,`context_pressure`,`unknown`]),Gi=t({diagnosis:f().min(1),failureClass:Wi,action:Ui,confidence:n([`low`,`medium`,`high`])}),Ki=t({record:l(`case.opened`),caseId:f().min(1),ts:f().min(1),trigger:Hi,sessionId:f().optional(),gezelId:f().min(1),projectId:f().optional(),taskRef:f().optional(),stepId:f().optional(),providerName:f().min(1),model:f().optional(),modelTier:f().optional(),consultProviderName:f().min(1),consultModel:f().optional(),signals:m(f(),u()),verdict:Gi.optional(),applied:r(),consultDurationMs:a().int().nonnegative(),promptChars:a().int().nonnegative(),responseChars:a().int().nonnegative(),debug:t({prompt:f(),rawResponse:f()}).optional()}),qi=n([`unblocked`,`re_triggered`,`gave_up`,`takeover_completed`,`takeover_failed`,`unknown`]);c(`record`,[Ki,t({record:l(`case.closed`),caseId:f().min(1),ts:f().min(1),outcome:qi,turnsObserved:a().int().nonnegative()})]);var Ji=t({label:f().max(60),target:c(`kind`,[t({kind:l(`project`),projectId:f()}),t({kind:l(`task`),projectId:f(),taskRef:f()}),t({kind:l(`view`),view:n([`projects`,`gezels`,`documents`,`settings`])})])}),Yi=t({projectId:f(),taskRef:f(),title:f()}),Xi=t({headline:f().max(120),cta:Ji.optional(),report:f(),generatedAt:f(),trigger:n([`auto`,`manual`]),actions:p(Yi).default([])});t({headline:f(),cta:Ji.optional(),report:f(),actions:p(t({projectId:f(),title:f(),description:f()})).optional()}),t({lastRunAt:f().optional(),inputHash:f().optional(),runDay:f().optional(),runsOnDay:a().int().nonnegative().optional(),recentActionKeys:p(f()).optional()}),t({lastActivityAt:f()}),t({report:Xi.nullable(),budget:t({runsToday:a().int().nonnegative(),maxRunsPerDay:a().int().positive(),lastRunAt:f().nullable()}),running:r()});var Zi=n([`info`,`minor`,`major`]),Qi=t({severity:Zi,category:f().min(1).max(40),message:f().min(1).max(300),line:a().int().positive().optional()}),$i=n([`open`,`in_progress`,`resolved`,`dismissed`]),ea=n([`not_an_issue`,`duplicate`,`wont_fix`]),G=Qi.extend({ref:f().regex(/^BW-[1-9]\d*$/),id:f().min(1),fingerprint:f().min(1),path:f().min(1),status:$i,seen:r(),stale:r(),taskRef:f().optional(),dismissalReason:ea.optional(),createdAt:f(),lastSeenAt:f(),lastCheckedAt:f().optional(),seenAt:f().optional(),resolvedAt:f().optional(),dismissedAt:f().optional()});t({notes_md:f().min(1),issues:p(Qi),health:a().int().min(1).max(10),health_reason:f().min(1)});var ta=t({notesMd:f(),issues:p(Qi),health:a().int().min(1).max(10),healthReason:f(),model:f().nullable(),provider:f().nullable().optional(),gezelId:f().nullable().optional(),gezelName:f().nullable().optional(),appVersion:f().nullable().optional(),reviewedAt:f().nullable()});t({github:Dn.optional(),exists:r(),originMatches:r().optional(),branch:f().optional(),defaultBranch:f().optional(),ahead:a().int().optional(),behind:a().int().optional(),dirty:r().optional(),changesCount:a().int().optional(),conflictedCount:a().int().optional(),mergeInProgress:r().optional(),hasUpstream:r().optional(),hasPat:r(),credentialSource:n([`pat`,`env`,`gh`,`none`])}),t({ok:l(!0),checkoutDir:f(),branch:f().optional(),adopted:r()}),t({branch:f().min(1),create:r().optional()}),t({local:p(f()),remote:p(f()),current:f().optional()}),t({ok:l(!0),fetched:r()}),t({message:f().min(1),allowEmpty:r().optional()}),t({ok:l(!0),sha:f(),filesChanged:a().int()}),t({ok:l(!0),pushed:r(),rejected:n([`non-fast-forward`,`auth`,`unknown`]).optional()});var na=t({number:a().int(),title:f(),author:f(),headRef:f(),baseRef:f(),draft:r(),updatedAt:f(),url:f()});t({pulls:p(na)}),na.extend({body:f(),state:f(),merged:r(),mergeable:r().nullable().optional(),additions:a().int(),deletions:a().int(),changedFiles:a().int()}),t({files:p(t({filename:f(),status:f(),additions:a().int(),deletions:a().int(),changes:a().int(),patch:f().optional(),patchChars:a().int().nonnegative().optional(),patchTruncated:r().optional(),previousFilename:f().optional()})),allFiles:a().int().nonnegative().optional(),totalFiles:a().int().nonnegative().optional(),offset:a().int().nonnegative().optional(),limit:a().int().positive().optional(),hasMore:r().optional(),nextOffset:a().int().nonnegative().optional(),includesPatch:r().optional()}),t({comments:p(t({id:a(),author:f(),body:f(),createdAt:f(),kind:n([`issue`,`review`]),path:f().optional()}))}),t({number:a().int(),diff:f(),path:f().optional(),offset:a().int().nonnegative().optional(),returnedChars:a().int().nonnegative().optional(),totalChars:a().int().nonnegative().optional(),truncated:r().optional(),nextOffset:a().int().nonnegative().optional()}),t({body:f().min(1)}),t({id:a(),url:f()}),t({title:f().min(1),body:f().optional(),head:f().min(1),base:f().min(1),draft:r().optional()}),t({number:a().int(),url:f()}),t({runs:p(t({id:a(),name:f(),status:f(),conclusion:f().nullable(),createdAt:f(),url:f()}))}),t({state:n([`success`,`failure`,`pending`,`unknown`]),checks:p(t({name:f(),status:f(),conclusion:f().nullable(),url:f().optional()}))});var ra=n([`modified`,`added`,`deleted`,`renamed`,`conflicted`]),ia=t({path:f(),oldPath:f().optional(),kind:ra,additions:a().int().optional(),deletions:a().int().optional(),binary:r().optional()});t({changes:p(ia),total:a().int(),truncated:r()}),t({path:f(),kind:ra,oldPath:f().optional(),binary:r(),truncated:r(),diff:f().optional(),additions:a().int().optional(),deletions:a().int().optional()}),t({paths:p(f().min(1)).min(1).optional(),all:r().optional()}).refine(e=>!!e.all!=!!e.paths?.length,{message:"Pass exactly one of `paths` or `all`."}),t({ok:l(!0),discarded:a().int()});var aa=t({sha:f(),shortSha:f(),author:f(),email:f().optional(),date:f(),subject:f(),filesChanged:a().int(),additions:a().int(),deletions:a().int()});t({commits:p(aa),hasMore:r()}),t({sha:f(),shortSha:f(),author:f(),date:f(),subject:f(),files:p(t({path:f(),additions:a().int().optional(),deletions:a().int().optional(),binary:r().optional()})),diff:f().optional(),truncated:r()}),t({state:n([`synced`,`needs-save`,`conflicts`,`auth`,`offline`,`error`]),pulled:a().int(),pushed:a().int(),merged:r().optional(),branch:f().optional(),conflictedFiles:p(f()).optional(),message:f().optional()});var oa=n([`both-modified`,`both-added`,`deleted-by-us`,`deleted-by-them`]),sa=t({path:f(),kind:oa});t({inMerge:r(),conflicts:p(sa)}),t({path:f(),base:f().optional(),ours:f().optional(),theirs:f().optional(),binary:r(),tooLarge:r()}),t({path:f().min(1),choice:n([`mine`,`theirs`,`custom`]),content:f().optional()}).refine(e=>e.choice!==`custom`||e.content!==void 0,{message:"`content` is required when choice is `custom`."}),t({ok:l(!0),remaining:a().int()}),t({message:f().optional()}),t({ok:l(!0),sha:f()}),t({ok:l(!0)}),t({message:f()}),t({path:f().min(1)}),t({path:f(),merged:f()});var ca=n([`commit`,`pr`]),la=n([`running`,`complete`,`canceled`,`error`]),ua=t({id:f().min(1),kind:ca,status:la,createdAt:f(),settledAt:f().optional(),outcome:n([`complete`,`canceled`]).optional(),error:f().optional(),taskRef:f().min(1),gezelId:f().optional(),branch:f(),headSha:f(),baseRef:f().optional(),baseSha:f().optional(),filesChanged:a().int(),additions:a().int().optional(),deletions:a().int().optional(),commitCount:a().int().optional(),filesTruncated:r(),diffTruncated:r(),manifestPath:f(),diffPath:f(),reportPath:f()}).extend({taskStatus:n([`draft`,`paused`,`active`,`complete`,`canceled`]).optional(),needsAttention:r().optional(),activeStepName:f().optional(),stepsTotal:a().int().optional(),stepsComplete:a().int().optional(),assigneeName:f().optional()});t({kind:ca}),t({ok:l(!0),review:ua}),t({reviews:p(ua)}),t({ok:l(!0),review:ua}),t({version:l(1),reviewId:f().min(1),kind:ca,projectId:f().min(1),createdAt:f(),branch:f(),headSha:f(),baseRef:f(),baseSha:f(),files:p(ia),totalFiles:a().int(),filesTruncated:r(),diffFile:f(),diffChars:a().int(),diffTruncated:r(),commits:p(aa).optional(),commitsTruncated:r().optional(),notes:p(f())});var K=n([`webhook`]),da=t({url:f().url(),method:n([`POST`,`PUT`]).optional(),headers:m(f(),f()).optional(),bodyTemplate:f().optional(),bodyContentType:f().optional()}),fa=t({default:K.optional(),webhook:da.optional()});t({name:K,configured:r(),ready:r(),lastError:f().optional(),detail:m(f(),u()).optional()}),t({channel:K.optional(),message:f().min(1),metadata:m(f(),u()).optional()}),d([t({ok:l(!0),id:f().optional(),channel:K}),t({ok:l(!1),error:f(),channel:K.optional()})]);var pa=n([`llama-server`,`ds4-server`,`sd-server`,`whisper-server`,`uv`]),ma=c(`type`,[t({type:l(`progress`),bytesWritten:a().nonnegative(),totalBytes:a().nonnegative()}),t({type:l(`retrying`),attempt:a().int().positive(),maxAttempts:a().int().positive(),delayMs:a().nonnegative(),reason:f()}),t({type:l(`verifying`),what:n([`sha256`,`signature`])}),t({type:l(`done`),binPath:f(),cached:r()}),t({type:l(`error`),error:f()})]),ha=t({name:pa,installed:r(),path:f().optional()});t({release:f(),pinned:r(),platformKey:f().nullable(),llamaBackend:n([`cuda`,`vulkan`,`metal`,`cpu`]).optional(),engines:p(ha)});var ga=t({id:f(),name:f(),kind:f(),lineStart:a().int().positive(),lineEnd:a().int().positive(),signature:f().optional(),parent:f().optional()});t({path:f().min(1)}),t({path:f(),lang:f().nullable(),summary:f().nullable().optional(),symbols:p(ga),totalLines:a().int().nonnegative(),engine:n([`index`,`live`,`unavailable`]),truncated:r(),review:ta.optional()}),t({name:f().min(1),kind:f().optional(),maxResults:a().int().positive().max(200).optional()}),t({matches:p(ga.extend({path:f()})),truncated:r(),engine:n([`index`,`unavailable`])}),t({name:f().min(1),path:f().optional()}),t({found:r(),path:f().optional(),name:f().optional(),kind:f().optional(),lineStart:a().int().positive().optional(),lineEnd:a().int().positive().optional(),signature:f().optional(),source:f().optional()}),t({name:f().min(1),glob:f().optional(),maxResults:a().int().positive().max(500).optional()}),t({references:p(t({path:f(),line:a().int().positive(),text:f()})),truncated:r(),engine:n([`ripgrep`,`javascript`])}),t({path:f().min(1)});var _a=t({ruleId:f(),category:f(),severity:n([`critical`,`high`,`medium`,`low`,`info`]),line:a().int().positive().nullable(),title:f(),source:f()}),va=t({path:f(),viaBinding:r()}),ya=t({name:f(),kind:f(),lineStart:a().int().positive(),lineEnd:a().int().positive(),signature:f().optional(),parent:f().optional(),importedBy:p(va),importedByTruncated:r(),uses:p(t({name:f(),from:f(),inRepo:r()})),usedInFileBy:p(f()),findings:p(_a),summary:f().optional()});t({path:f(),lang:f().nullable(),totalLines:a().int().nonnegative(),summary:f().nullable(),importedBy:p(t({path:f(),names:p(f())})),importedByTruncated:r(),imports:p(t({specifier:f(),resolvedPath:f().nullable(),names:p(f()),default:r(),namespace:r()})),fileFindings:p(_a),symbols:p(ya),symbolsTruncated:r(),engine:n([`index`,`live`,`unavailable`]),review:ta.optional()}),t({path:f().min(1)}),t({path:f(),found:r(),pending:r().optional(),review:ta.optional(),trackedIssues:p(G).optional(),eligible:r().optional()}),t({severity:Zi.optional(),category:f().optional(),path:f().optional(),status:$i.optional(),includeClosed:r().optional(),maxResults:a().int().positive().max(1e3).optional()}),t({issues:p(G),counts:t({total:a().int().nonnegative(),bySeverity:m(f(),a().int().nonnegative()),byCategory:m(f(),a().int().nonnegative())}),truncated:r(),indexed:r(),reviewedFiles:a().int().nonnegative(),eligibleFiles:a().int().nonnegative(),reviewers:p(t({model:f().nullable(),provider:f().nullable(),gezelName:f().nullable(),files:a().int().nonnegative()})).optional()}),t({ref:f().regex(/^BW-[1-9]\d*$/)}),t({issue:G}),t({ref:f().regex(/^BW-[1-9]\d*$/),status:$i.optional(),seen:r().optional(),dismissalReason:ea.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`}),t({issue:G}),t({ref:f().regex(/^BW-[1-9]\d*$/),gezelId:f().min(1),message:f().min(1)}),t({issue:G,taskRef:f().min(1),gezelId:f().min(1),gezelName:f().min(1),enqueued:r()}),t({path:f().optional()}),t({root:f(),languages:p(t({lang:f(),fileCount:a().int().nonnegative()})),areas:p(t({path:f(),fileCount:a().int().nonnegative(),purpose:f().optional()})),entryPoints:p(f()),keyFiles:p(f()),fileCount:a().int().nonnegative(),indexed:r(),architecture:f().optional(),health:t({reviewedFiles:a().int().nonnegative(),eligibleFiles:a().int().nonnegative(),avgHealth:a(),majorIssues:a().int().nonnegative(),minorIssues:a().int().nonnegative(),worstFiles:p(t({path:f(),health:a().int().min(1).max(10),reason:f().optional()})).max(5)}).optional()});var ba=n([`user`,`machine-engine`,`legacy-full`]);t({ok:l(!0),version:f(),serviceRole:ba.optional(),machineEngineConnected:r().optional(),startedAt:f(),nodeVersion:f().optional(),platform:f().optional(),llamaCppBackend:n([`cuda`,`vulkan`,`metal`,`cpu`]).optional(),llamaCppDetectedBackend:n([`cuda`,`vulkan`,`metal`,`cpu`]).optional(),llamaCppDetectedVendor:n([`amd`,`nvidia`,`intel`]).optional(),llamaCppQuarantinedBackends:p(n([`cuda`,`vulkan`,`metal`,`cpu`])).optional(),childProcessSpawn:n([`ok`,`denied`]).optional()});var xa=n([`vram`,`unified`,`ram`]),Sa=t({provider:f(),modelId:f(),reservedBytes:a().nonnegative(),replicaCount:a().int().positive()}),Ca=n([`machine-engine`,`app-engine`,`development-engine`,`gezel-engine`,`external`]),wa=t({pid:a().int().positive(),name:f().optional(),dedicatedBytes:a().nonnegative(),owner:Ca}),Ta=t({provider:f(),modelId:f(),replicaIdx:a().int().nonnegative(),running:r(),active:r(),pid:a().int().positive().optional(),lastUsedAt:a().nonnegative().nullable(),unloadAt:a().nonnegative().nullable(),idleTimeoutMs:a().nonnegative(),releaseReason:n([`idle`,`memory-pressure`]).nullable()});t({kind:xa,totalBytes:a().nonnegative(),usedBytes:a().nonnegative().nullable(),gezelBytesEstimated:a().nonnegative(),gezelBytesObserved:a().nonnegative().nullable(),gezelInfraBytes:a().nonnegative(),gezelModelWeightsBytes:a().nonnegative(),gezelModelCacheBytes:a().nonnegative(),engineReservedBytes:a().nonnegative(),engineBudgetBytes:a().nonnegative().nullable(),enginePools:t({kind:n([`unified`,`discrete-gpu`,`system-ram`]),vramBytes:a().nonnegative(),ramShareBytes:a().nonnegative(),fastBytes:a().nonnegative()}).nullable().optional(),engineRamSpillover:t({allowed:r(),auto:r(),overridden:r(),coResidencyBytes:a().nonnegative()}).optional(),residentModels:p(Sa),engineLifecycles:p(Ta).optional(),gpuProcesses:p(wa).optional(),gezelEngineProcessCount:a().int().nonnegative(),orphanedGezelEngineProcessCount:a().int().nonnegative(),otherBytes:a().nonnegative().nullable(),cachedBytes:a().nonnegative().nullable().optional(),freeBytes:a().nonnegative().nullable(),sampledAt:f(),source:n([`device-health`,`system-memory`,`capacity-only`]),deviceNames:p(f())}),t({sizeBytes:a().int().positive().max(10*1024**4)}),t({known:r(),ok:r(),freeBytes:a().nonnegative(),requiredBytes:a().positive(),storageLocation:l(`Gezel model storage`)}),t({version:f(),sampledAt:f(),runtime:t({nodeVersion:f(),platform:f(),arch:f(),osRelease:f(),platformKey:f().nullable()}),hardware:t({totalRamBytes:a().nonnegative(),gpuVramBytes:a().nonnegative().nullable(),gpuMemoryKind:n([`discrete`,`integrated`,`unified`,`none`,`unknown`]).optional(),usableBytes:a().nonnegative(),budgetBytes:a().nonnegative().optional(),source:n([`darwin-unified`,`gpu-nvidia`,`gpu-vulkan`,`gpu-integrated`,`system-ram-fallback`]),gpuVendor:n([`amd`,`nvidia`,`intel`]).optional(),description:f(),tier:n([`tiny`,`small`,`medium`,`large`]),gpuDevices:p(t({name:f(),totalMiB:a().nonnegative(),computeCapability:f().optional(),driverVersion:f().optional()}))}),engine:t({nativeRelease:f(),nativePinned:r(),installedEngines:p(pa),llamaCppBackend:n([`cuda`,`vulkan`,`metal`,`cpu`]).optional(),llamaCppDetectedBackend:n([`cuda`,`vulkan`,`metal`,`cpu`]).optional(),llamaCppBackendOverride:n([`auto`,`cuda`,`vulkan`,`metal`,`cpu`]).optional(),llamaCppRevision:f().optional(),llamaCppBuildBackend:f().optional(),cudaArchitectures:p(f()).optional(),cudaToolkit:f().optional()}),models:t({defaultProvider:F,defaultModel:f().optional(),installed:p(t({id:f(),provider:n([`llama-cpp`,`mlx`,`ds4`]),parameterSize:f().optional()}))}),localEngines:p(t({provider:n([`llama-cpp`,`mlx`,`ds4`]),model:f().optional(),pid:a().optional(),startedAt:f().optional(),contextPerSlot:a().optional(),contextTotal:a().optional(),slots:a().optional(),kvCacheType:f().optional(),backend:f().optional()})).optional()}),t({home:f(),scope:n([`machine`,`user`]),version:f(),startedAt:f(),firstRunCompleted:r(),usage:t({gezelCount:a().int().nonnegative(),projectCount:a().int().nonnegative(),sessionCount:a().int().nonnegative(),everUsed:r()}),provider:F.optional(),defaultModel:f().optional(),memory:t({totalBytes:a().nonnegative(),freeBytes:a().nonnegative()}),engines:p(t({key:f(),residentBytes:a().nonnegative()}))});var Ea=t({kind:n([`pat`,`oauth`]),login:f().optional(),name:f().optional(),avatarUrl:f().optional(),scopes:p(f()).optional(),acquiredAt:f().optional()}),Da=t({documents:f().min(1).optional(),gezels:f().min(1).optional(),projects:f().min(1).optional()}),Oa=t({level:n([`super-lockdown`,`lockdown`,`free`,`custom`]),allowFileEdits:r(),allowExternalChat:r(),allowExternalServices:r(),allowScriptExecution:r(),allowAppNetwork:r()}),ka=t({mode:n([`off`,`observe`,`guard`]).optional(),maxStartTemperatureC:a().min(40).max(110).optional(),resumeTemperatureC:a().min(35).max(105).optional(),minThermalMarginC:a().min(0).max(40).optional(),pollIntervalMs:a().int().min(500).max(6e4).optional(),maxWaitMs:a().int().min(0).max(36e5).optional(),consecutiveHealthySamples:a().int().min(1).max(20).optional(),onTelemetryFailure:n([`allow`,`block`]).optional()}),Aa=t({format:n([`docx`,`pdf`,`pptx`,`md`,`html`]),themeId:f().min(1),transformStyle:f().min(1),pageSize:n([`letter`,`a4`]),htmlStyle:n([`rendered`,`plain`]),htmlBundle:n([`single`,`zip`])}),ja=n([`adaptive`,`model-max`]);t({policy:ja}),t({overrides:m(f(),a().int().positive())}),t({contextTokens:a().int().min(32768).max(4194304).nullable()});var Ma=t({enabled:r().default(!1),bindAddress:f().optional(),port:a().int().positive().optional(),priority:n([`equal`,`below-local`,`above-local`]).optional(),reserveLocalGb:a().nonnegative().optional(),allowModels:p(f()).optional(),limits:t({maxConcurrentPerDevice:a().int().positive().optional(),maxChatPerDevice:a().int().positive().optional(),requestsPerMinute:a().int().positive().optional()}).optional()}),Na=t({provider:F.optional(),hosting:n([`auto`,`machine-service`,`per-user`]).optional(),service:t({url:f(),token:f()}).optional(),localEngineIdleTimeoutMs:a().int().min(6e4).optional(),deviceSafety:ka.optional(),roleBasedNameOnlyMode:r().optional(),showPoppetjes:r().optional(),narrateAssistantReplies:r().optional(),githubToken:f().optional(),githubAuth:Ea.optional(),oauthClients:m(f(),t({clientId:f()})).optional(),openaiApiKey:f().optional(),openaiOrganization:f().optional(),anthropicApiKey:f().optional(),googleAiApiKey:f().optional(),imageProvider:n([`sd-cpp`,`google-ai`,`openai`,`mock`]).optional(),defaultImageModel:t({"google-ai":f().optional(),openai:f().optional()}).optional(),imageGenerationConfirmation:d([l(`always-allow`),l(`ask`),t({mode:l(`snooze`),until:f()})]).optional(),gpuMemoryPolicy:n([`auto`,`coexist`,`swap`]).optional(),videoProvider:n([`diffusers`,`mock`]).optional(),defaultVideoModel:f().optional(),videoGenerationConfirmation:d([l(`always-allow`),l(`ask`),t({mode:l(`snooze`),until:f()})]).optional(),recognitionProvider:n([`llama-cpp`,`mlx`,`mock`]).optional(),defaultRecognitionModel:f().optional(),recognition:t({mode:n([`auto`,`always`,`off`]).optional(),modes:p(tn).optional(),maxImagesPerTurn:a().int().min(1).max(16).optional(),timeoutMsPerImage:a().int().min(5e3).optional(),maxDigestChars:a().int().min(200).optional(),maxMegapixels:a().positive().optional()}).optional(),nativeVision:m(f(),r()).optional(),webhookBearerToken:f().optional(),webhookBasicAuth:f().optional(),braveSearchApiKey:f().optional(),tavilyApiKey:f().optional(),ollamaBaseUrl:f().optional(),autoStartOllama:r().optional(),defaultModel:t({copilot:f().optional(),openai:f().optional(),anthropic:f().optional(),"anthropic-cli":f().optional(),"codex-cli":f().optional(),ollama:f().optional(),"llama-cpp":f().optional(),mlx:f().optional(),ds4:f().optional(),remote:f().optional()}).optional(),defaultReasoningEffort:t({copilot:f().optional(),openai:f().optional(),anthropic:f().optional(),"anthropic-cli":f().optional(),"codex-cli":f().optional(),ollama:f().optional(),"llama-cpp":f().optional(),mlx:f().optional(),ds4:f().optional(),remote:f().optional()}).optional(),modelTuning:m(f(),M).optional(),modelFitness:m(f(),u()).optional(),remoteServing:Ma.optional(),fileReviews:t({enabled:r().default(!0),disabledKinds:p(f()).optional()}).optional(),modelTuningProfile:m(f(),f()).optional(),meesterGezelId:f().optional(),klerkGezelId:f().optional(),boekwachterGezelId:f().optional(),keurmeesterGezelId:f().optional(),openaiEndpoints:t({enabled:r().optional(),servingGezelId:f().optional(),supportingBehaviors:r().optional(),emulateOllama:r().optional()}).optional(),ollamaNumCtx:a().int().positive().optional(),ollamaStreamingIdleSec:a().int().positive().optional(),ollamaPreFirstByteIdleSec:a().int().positive().optional(),ollamaTurnTimeoutMin:a().int().positive().optional(),ollamaNumPredict:a().int().positive().optional(),ollamaThink:r().optional(),llamaCppModelPath:f().optional(),llamaCppBaseUrl:f().optional(),llamaCppNumCtx:a().int().positive().optional(),llamaCppContextSizing:ja.optional(),modelContextOverrides:m(f(),a().int().positive()).optional(),ds4BaseUrl:f().optional(),ds4ModelPath:f().optional(),ds4NumCtx:a().int().positive().optional(),ds4SsdStreaming:r().optional(),ds4CacheExpertsGb:a().positive().optional(),llamaCppStreamingIdleSec:a().int().positive().optional(),llamaCppPreFirstByteIdleSec:a().int().positive().optional(),llamaCppBackendOverride:n([`auto`,`cuda`,`vulkan`,`metal`,`cpu`]).optional(),autoDownloadEngines:r().optional(),engineSignaturePolicy:n([`off`,`prefer`,`require`]).optional(),llamaCppKvCacheType:n([`f16`,`q8_0`,`q4_0`]).optional(),llamaCppMlock:r().optional(),llamaCppFlashAttn:d([r(),n([`on`,`off`,`auto`])]).optional(),llamaCppNGpuLayers:a().int().min(-1).optional(),llamaCppCpuMoe:r().optional(),llamaCppNCpuMoe:a().int().min(0).optional(),llamaCppCacheReuse:a().int().min(0).optional(),llamaCppSwaFull:r().optional(),llamaCppThreads:a().int().positive().optional(),llamaCppBatchSize:a().int().positive().optional(),llamaCppSpecType:n([`none`,`draft-mtp`,`draft-eagle3`,`draft-dflash`,`draft-simple`,`ngram-mod`,`ngram-simple`,`ngram-map-k`,`ngram-map-k4v`,`ngram-cache`]).optional(),llamaCppDraftModelPath:f().optional(),llamaCppSpecDraftNMax:a().int().positive().optional(),llamaCppExtraArgs:m(f(),d([f(),a(),r()])).optional(),llamaCppUbatchSize:a().int().positive().optional(),mlxBaseUrl:f().optional(),mlxModelPath:f().optional(),mlxNumCtx:a().int().positive().optional(),mlxPackageSpec:f().optional(),mlxKvBits:a().int().min(0).max(8).optional(),mlxPrefillStepSize:a().int().positive().optional(),localEngineMemoryGb:a().positive().nullable().optional(),allowRamSpillover:r().nullable().optional(),localEngineReplicas:m(f(),a().int().min(0)).optional(),localEngineReplicasMax:a().int().positive().optional(),pythonRuntime:t({source:n([`system-uv`,`system-python`,`bundled-uv`]),installerPath:f().optional(),uvVersion:f().optional(),pythonVersion:f().optional(),resolvedAt:f().optional()}).optional(),firstRunCompleted:r().optional(),securityPolicy:Oa.optional(),firstRunInstallError:f().optional(),copilotTurnTimeoutMin:a().int().positive().optional(),providerConcurrency:t({copilot:a().int().min(1).optional(),openai:a().int().min(1).optional(),anthropic:a().int().min(1).optional(),"anthropic-cli":a().int().min(1).optional(),"codex-cli":a().int().min(1).optional(),ollama:a().int().min(1).optional(),"llama-cpp":a().int().min(1).optional(),mlx:a().int().min(1).optional(),ds4:a().int().min(1).optional()}).optional(),cacheBudgetMb:t({mlx:a().int().min(64).optional(),"llama-cpp":a().int().min(64).optional()}).optional(),mlxDiskCacheBudgetMb:a().int().min(0).optional(),llamaCppDiskCacheBudgetMb:a().int().min(0).optional(),layeredPrefixCache:t({enabled:r().optional()}).optional(),batchedInference:t({enabled:r().optional()}).optional(),providerQueue:t({affinity:r().optional()}).optional(),taskRunner:t({tickIntervalMs:a().int().min(500).optional()}).optional(),taskBudget:t({enabled:r().optional(),softNudge:r().optional(),hardPause:r().optional(),scale:a().positive().optional(),limits:m(n([`tiny`,`small`,`medium`,`large`,`cloud`]),t({softTurns:a().int().positive().optional(),hardTurns:a().int().positive().optional(),softOutputTokens:a().int().positive().optional(),hardOutputTokens:a().int().positive().optional()}).partial()).optional()}).optional(),stuckStep:t({enabled:r().optional(),stallMs:a().int().positive().optional(),maxRedrives:a().int().positive().optional()}).optional(),autoRecall:t({enabled:r().optional(),topK:a().int().positive().optional(),minScore:a().optional()}).optional(),summarization:t({enabled:r().optional(),provider:F.optional(),model:f().optional(),minUserTurns:a().int().positive().optional(),idleHours:a().positive().optional()}).optional(),memory:t({maintenance:t({enabled:r().optional(),olderThanDays:a().int().min(2).optional(),minEntries:a().int().positive().optional()}).optional(),lessons:t({enabled:r().optional(),maxChars:a().int().positive().optional(),lookbackDays:a().int().positive().optional()}).optional()}).optional(),searchIndex:t({enabled:r().optional(),sessions:r().optional(),history:r().optional(),documents:r().optional()}).optional(),digest:t({enabled:r().optional()}).optional(),gildeUpdates:t({enabled:r().optional()}).optional(),meesterStatus:t({enabled:r().optional(),maxRunsPerDay:a().int().min(1).max(24).optional(),changeWindowHours:a().positive().optional()}).optional(),growth:t({enabled:r().optional()}).optional(),keurmeester:t({enabled:r().optional(),providerName:f().optional(),model:f().optional(),allowTakeover:r().optional(),maxConsultsPerSession:a().int().positive().optional(),maxConsultsPerTask:a().int().positive().optional(),cooldownMs:a().int().positive().optional()}).optional(),projectNudge:t({enabled:r().optional(),rapidIntervalMs:a().int().positive().optional(),slowIntervalMs:a().int().positive().optional(),recentActivityWindowMs:a().int().positive().optional(),rapidAttemptsBeforeBackoff:a().int().positive().optional(),firstNudgeGraceMs:a().int().nonnegative().optional()}).optional(),debugMode:r().optional(),showAdvancedFeatures:r().optional(),showWorkInProgressFeatures:r().optional(),resetTemplatesOnStartup:r().optional(),aiEngagementMode:n([`proactive`,`scheduled`,`reactive`,`off`]).optional(),showSystemTray:r().optional(),autoUpdateChecks:r().optional(),quitOnClose:r().optional(),themePref:n([`system`,`light`,`dark`]).optional(),documentExportOptions:Aa.optional(),sidebarSide:n([`left`,`right`]).optional(),homeGreetingCollapsed:r().optional(),workshopTempo:n([`gezellig`,`bedrijvig`,`druk`,`dolle-boel`]).optional(),nightShift:t({enabled:r().optional(),window:t({startHour:a().int().min(0).max(23),endHour:a().int().min(0).max(23)}).optional(),keepAwakeWhileRunning:r().optional(),wakeOnStart:r().optional(),modelOverride:t({enabled:r().optional(),provider:F.optional(),model:f().optional()}).optional()}).optional(),toolFilterMode:n([`always`,`never`,`small-model`]).optional(),channels:fa.optional(),sandboxCopilot:r().optional(),anthropicCli:t({binaryPath:f().optional(),manageRuntimeFiles:r().optional(),defaultPermissionMode:k.optional(),extraModels:p(t({id:f(),name:f()})).optional(),poolSize:a().int().min(1).max(32).optional(),workerIdleSec:a().int().min(60).max(3600).optional()}).optional(),codexCli:t({binaryPath:f().optional(),manageRuntimeFiles:r().optional(),defaultPermissionMode:A.optional(),defaultReasoningEffort:n([`minimal`,`low`,`medium`,`high`,`xhigh`,`max`,`ultra`]).optional(),extraModels:p(t({id:f(),name:f()})).optional(),extraConfigOverrides:m(f(),f()).optional()}).optional(),executionDensity:n([`auto`,`flat`,`scaffold`]).optional(),playwrightHeadless:r().optional(),fetchUrl:t({allow:p(f()).optional(),deny:p(f()).optional()}).optional(),webSearch:t({provider:n([`brave`,`wikipedia`,`tavily`,`mock`]).optional(),fallbackProvider:n([`brave`,`wikipedia`,`tavily`]).optional(),defaultLimit:a().int().min(1).max(20).optional(),allow:p(f()).optional(),deny:p(f()).optional()}).optional(),projectMru:p(t({id:f(),at:a()})).optional(),recentTabs:p(c(`kind`,[t({kind:l(`project`),id:f(),at:a(),order:a()}),t({kind:l(`gezel`),id:f(),at:a(),order:a()}),t({kind:l(`document`),path:f(),at:a(),order:a()}),t({kind:l(`task`),ref:f(),at:a(),order:a()}),t({kind:l(`area`),area:n([`projects`,`gezels`,`documents`,`tasks`,`scripts`,`history`,`settings`,`benchmarks`]),at:a(),order:a()})])).optional(),externalFolders:Da.optional()}),Pa=n([`projects`,`gezels`,`documents`,`tasks`,`craftbooks`,`scripts`,`history`,`settings`,`benchmarks`,`handboek`]);c(`kind`,[t({kind:l(`project`),id:f(),at:a(),order:a(),pinned:r().optional()}),t({kind:l(`gezel`),id:f(),at:a(),order:a(),pinned:r().optional()}),t({kind:l(`document`),path:f(),at:a(),order:a(),pinned:r().optional()}),t({kind:l(`task`),ref:f(),at:a(),order:a(),pinned:r().optional()}),t({kind:l(`area`),area:Pa,at:a(),order:a(),pinned:r().optional()}),t({kind:l(`script`),projectId:f(),name:f(),scope:n([`standard`,`user`]).optional(),at:a(),order:a(),pinned:r().optional()}),t({kind:l(`craftbook`),id:f(),source:n([`bundled`,`local`,`project`]).optional(),at:a(),order:a(),pinned:r().optional()}),t({kind:l(`craftbook-script`),craftbookId:f(),name:f(),at:a(),order:a(),pinned:r().optional()})]),Na.extend({ollamaThink:r().nullable().optional(),firstRunInstallError:f().nullable().optional(),service:t({url:f(),token:f()}).nullable().optional(),llamaCppBaseUrl:f().nullable().optional(),llamaCppModelPath:f().nullable().optional(),llamaCppBackendOverride:n([`auto`,`cuda`,`vulkan`,`metal`,`cpu`]).nullable().optional(),llamaCppKvCacheType:n([`f16`,`q8_0`,`q4_0`]).nullable().optional(),llamaCppFlashAttn:d([r(),n([`on`,`off`,`auto`])]).nullable().optional(),llamaCppSpecType:n([`none`,`draft-mtp`,`draft-eagle3`,`draft-dflash`,`draft-simple`,`ngram-mod`,`ngram-simple`,`ngram-map-k`,`ngram-map-k4v`,`ngram-cache`]).nullable().optional(),llamaCppCpuMoe:r().nullable().optional(),llamaCppSwaFull:r().nullable().optional(),mlxBaseUrl:f().nullable().optional(),mlxModelPath:f().nullable().optional(),mlxPackageSpec:f().nullable().optional(),mlxKvBits:a().int().min(0).max(8).nullable().optional(),externalFolders:t({documents:f().min(1).nullable().optional(),gezels:f().min(1).nullable().optional(),projects:f().min(1).nullable().optional()}).nullable().optional()}),t({gezels:p(pn)}),t({name:f().min(1),description:f().optional(),role:f().optional(),gender:ln.optional(),model:f().optional(),about:f().optional()}),t({state:ht,nextLevelXp:a().int(),activeTraits:p(dn),driftedTraitIds:p(f())}),t({proposalId:f().min(1)}),t({proposalId:f().min(1).optional()}),t({source:f()}),t({source:f()}),t({name:f().min(1)}),t({defaults:m(f(),u()).nullable()}),t({provider:F.nullable().optional(),model:f().nullable().optional(),reasoningEffort:f().nullable().optional(),numCtx:a().int().positive().nullable().optional(),autoRecall:r().nullable().optional(),font:f().nullable().optional(),sandboxCopilot:r().nullable().optional(),claudePermissionMode:k.nullable().optional(),codexPermissionMode:A.nullable().optional(),tuning:M.nullable().optional(),tuningProfile:j.nullable().optional(),iconOverride:r().nullable().optional(),recognition:n([`auto`,`always`,`off`]).nullable().optional()}),t({instruction:f().optional()}),t({role:f().optional()}),t({provider:F,models:p(t({id:f(),name:f(),supportsReasoning:r().optional(),reasoningEfforts:p(f()).optional(),defaultReasoningEffort:f().optional(),contextWindow:a().optional(),supportsTools:r().optional(),parameterSize:f().optional()}))}),t({svg:f()});var Fa=t({timestamp:f(),svg:f()});t({current:f().nullable(),history:p(Fa)}),t({timestamp:f()}),t({poppetje:tt}),t({seed:a().int().optional()});var Ia=n([`about`,`chat-composer`,`task-description`,`generic`]);t({text:f(),context:Ia.optional(),instruction:f().optional(),isSelection:r().optional(),subject:f().optional(),parentContext:f().optional()}),t({text:f()}),t({mode:n([`rewrite`,`insert`]).default(`rewrite`),text:f().default(``),instruction:f().optional(),context:Ia.optional(),subject:f().optional(),parentContext:f().optional(),textBefore:f().optional(),textAfter:f().optional()}),c(`type`,[t({type:l(`status`),phase:n([`queued`,`started`]),detail:f().optional()}),t({type:l(`thinking-delta`),text:f()}),t({type:l(`output-delta`),text:f()}),t({type:l(`done`),text:f()}),t({type:l(`error`),error:f()})]),t({path:f().min(1),content:f()});var La=f().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`}),Ra=c(`kind`,[t({kind:l(`documents`)}),t({kind:l(`project-artifacts`),projectId:f().trim().min(1)})]);t({markdown:f().max(5e6),selectedFile:La,format:n([`mp4`,`gif`]),source:Ra}),t({path:f().min(1)}),t({fromPath:f().trim().min(1),toPath:f().trim().min(1)}),t({gezelId:f(),messages:p(vn)}),t({message:f().min(1),projectId:f().optional(),expectedDeliverable:Li.optional()}),t({accepted:l(!0),gezelId:f()}),t({fromGezelId:f().min(1),fromSessionId:f().optional(),projectId:f().optional(),text:f().min(1),expectedDeliverable:Li.optional()}),t({accepted:l(!0),sessionId:f(),toGezelId:f(),toGezelName:f(),deduplicated:r().optional()}),t({jobTitle:f().min(1),preferredName:f().optional()}),t({gezelId:f(),name:f(),role:f(),action:n([`reused`,`created-from-gilde`,`created-bespoke`]),matchScore:a().optional(),templateId:f().optional(),alternatives:p(f()).optional()}),t({candidates:p(t({id:f(),label:f(),description:f().optional(),roleBasedName:f().optional(),group:n([`voorman`,`assignees`,`team`]).optional()}))}),t({projects:p(t({projectId:f(),projectName:f(),precedence:n([`voorman`,`assignment`,`session`,`fallback`]),lastActivityAt:f().optional()}))}),t({projectId:f(),gezelId:f(),sessionId:f(),prompt:f().min(1),choices:p(f()).max(20).optional(),allowWriteIn:r().optional(),multiSelect:r().optional(),taskRef:vr.optional(),documentPath:f().optional()}),t({questionId:f(),deduped:r().optional()}),t({projectId:f(),gezelId:f(),sessionId:f(),toolName:f().min(1),toolInput:m(f(),u())}),c(`behavior`,[t({behavior:l(`allow`),updatedInput:m(f(),u())}),t({behavior:l(`deny`),message:f()})]),t({fromGezelId:f().min(1),fromSessionId:f().min(1),toGezelIdOrName:f().min(1),projectId:f().optional(),question:f().min(1),timeoutMs:a().int().positive().optional(),taskRef:f().optional(),stepId:f().optional(),expectedDeliverable:Li.optional()}),c(`outcome`,[t({outcome:l(`reply`),text:f(),toGezelId:f(),toGezelName:f(),sessionId:f()}),t({outcome:l(`error`),reason:n([`cycle`,`depth`,`self`,`not-found`,`engagement-off`,`timeout`,`target-error`,`target-deleted`,`delivery-failed`]),message:f()})]),t({selectedChoices:p(a().int().min(0)).optional(),writeIn:f().optional(),declined:r().optional(),silentSkip:r().optional(),npmInstallDecisions:p(Lt).optional()}),t({questions:p(Qt)}),t({kind:n([`artifact`,`document`,`workspace`]),path:f().min(1).max(4096)}),t({path:f().min(1)}),c(`mode`,[t({mode:l(`text`),content:f()}),t({mode:l(`markdown`),content:f(),sidecarPath:f().min(1)}),t({mode:l(`media`),mediaKind:n([`image`,`video`,`audio`])}),t({mode:l(`binary`)})]),c(`kind`,[t({kind:l(`found`),content:f(),path:f(),fuzzy:r()}),t({kind:l(`ambiguous`),candidates:p(f())}),t({kind:l(`missing`)})]),t({lines:t({start:a().int().min(1),count:a().int().min(0)}).optional(),head:a().int().min(0).optional(),tail:a().int().min(0).optional()}),c(`kind`,[t({kind:l(`found`),content:f(),path:f(),fuzzy:r(),linesReturned:a().int().nonnegative(),totalLines:a().int().nonnegative(),bytesReturned:a().int().nonnegative(),totalBytes:a().int().nonnegative(),hasMore:r()}),t({kind:l(`ambiguous`),candidates:p(f())}),t({kind:l(`missing`)})]),t({path:f().min(1),pattern:f().min(1),caseInsensitive:r().optional(),contextLines:a().int().min(0).max(10).optional(),maxMatches:a().int().min(1).max(100).optional()}),c(`kind`,[t({kind:l(`found`),matches:p(t({lineNumber:a().int().min(1),line:f(),contextBefore:p(f()).optional(),contextAfter:p(f()).optional()})),totalMatches:a().int().nonnegative(),totalLines:a().int().nonnegative(),truncated:r(),path:f(),fuzzy:r()}),t({kind:l(`ambiguous`),candidates:p(f())}),t({kind:l(`missing`)}),t({kind:l(`invalid-pattern`),error:f()})]);var za=t({phase:n([`idle`,`installing-toolsets`,`downloading-browser`,`ready`,`setup-incomplete`,`error`]),currentToolset:f().optional(),browserProgress:t({bytesDownloaded:a(),bytesTotal:a().nullable()}).optional(),error:f().optional(),updatedAt:f()}),Ba=t({phase:n([`idle`,`provisioning`,`ready`,`error`]),message:f().optional(),error:f().optional(),updatedAt:f()}),Va=d([t({kind:l(`stdout`),line:f()}),t({kind:l(`stderr`),line:f()}),t({kind:l(`exit`),code:a()}),t({kind:l(`error`),message:f()})]),Ha=c(`type`,[t({type:l(`phase`),phase:n([`resolving`,`downloading`,`extracting`,`installing-deps`,`publishing`])}),t({type:l(`progress`),bytesWritten:a().nonnegative(),totalBytes:a().nonnegative()}),t({type:l(`retrying`),attempt:a().int().positive(),maxAttempts:a().int().positive(),delayMs:a().nonnegative(),reason:f()}),t({type:l(`log`),line:f()}),t({type:l(`done`),installPath:f(),version:f()}),t({type:l(`error`),error:f()})]);t({toolsetId:f(),version:f(),startedAt:f(),phase:n([`resolving`,`downloading`,`extracting`,`installing-deps`,`publishing`]),bytesWritten:a().nonnegative(),totalBytes:a().nonnegative(),retrying:t({attempt:a().int().positive(),maxAttempts:a().int().positive(),delayMs:a().nonnegative(),reason:f()}).optional(),log:p(f()),finished:r(),error:f().optional(),installPath:f().optional()}),t({available:r(),source:n([`env`,`managed`,`path`]).nullable(),managed:n([`current`,`outdated`,`absent`,`damaged`]),damagedReason:f().optional(),installedVersion:f().optional(),pinnedVersion:f(),installDir:f().optional(),cliPath:f().optional(),updateAvailable:r()}),t({projects:p(Pn.extend({architecture:f().optional()}))});var Ua=t({name:f().min(1),description:f().optional(),workingDir:f().min(1).optional(),about:f().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:f().optional().describe(`Concrete success criteria — usually a bullet list. What does "done" look like?`),mode:n([`crew`,`solo`]).optional(),indexingEnabled:r().optional(),github:t({url:f().url()}).optional()});t({name:f().min(1).optional(),description:f().optional(),workingDir:f().nullable().optional(),voormanGezelId:f().nullable().optional(),about:f().optional(),missionObjectives:f().optional(),github:d([i(),t({url:f().url().optional(),branch:f().optional()})]).optional(),managedWorkspaceWritePolicy:Mn.optional(),allowGezelWrites:r().optional(),codexPermissionMode:nt.optional(),claudePermissionMode:k.optional(),nudgeConfig:kn.optional(),tabVisibility:jn.optional(),indexingEnabled:r().optional(),status:n([`active`,`readonly`,`inactive`,`stable`]).optional(),archived:r().optional(),workspaceScriptTimeoutMs:a().int().min(3e4).max(30*6e4).optional(),grantedCredentials:p(f()).optional(),credentialAllowedOrigins:m(f(),p(En)).optional(),projectTypeId:f().nullable().optional(),properties:m(f(),f()).optional()});var Wa=t({typeId:f().min(1),version:f().optional(),params:m(f(),u()).optional()}),Ga=t({ref:f(),craftbook:f(),cron:f(),consent:n([`ask`,`auto`,`disabled`]),status:n([`active`,`paused`]),created:r()}),Ka=t({typeId:f(),version:f(),source:f(),gezelsCreated:p(t({id:f(),name:f(),templateId:f(),voorman:r()})),scriptsInstalled:p(f()),workspaceSeeded:p(f()),toolsetsInstalled:p(f()),toolsBound:p(f()),craftbooksInstalled:p(f()),schedulesCreated:p(Ga),aboutRendered:r(),missionRendered:r(),deferred:t({toolsets:p(f()),craftbooks:p(f()),pages:r(),schedules:a()})});Ua.pick({name:!0,description:!0,mode:!0}).extend({projectType:Wa}),t({project:In,applied:Ka}),t({name:N,version:P.optional()}).strict(),t({packages:p(It).min(1).max(50).optional(),package:N.optional(),version:P.optional(),gezelId:f().optional(),sessionId:f().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`})}),t({project:In,log:f()}),t({scripts:m(f(),f()),packageManager:f().optional()}),t({ok:r(),code:a(),stdout:f(),stderr:f(),stdoutTruncated:r(),stderrTruncated:r(),timedOut:r(),error:f().optional(),approvalPending:r().optional(),questionId:f().optional(),declined:f().optional(),resolvedBinPath:f().optional()}),t({script:f().min(1),args:p(f()).optional(),timeoutMs:a().int().positive().optional(),gezelId:f().optional(),sessionId:f().optional()}),t({bin:f().min(1),args:p(f()).optional(),timeoutMs:a().int().positive().optional(),gezelId:f().optional(),sessionId:f().optional()}),t({npmApproved:p(t({package:f(),version:f(),at:f(),approvedBy:n([`user`,`shipped`])})),npmDeclined:p(t({package:f(),version:f(),at:f()})),scriptApprovals:m(f(),n([`approved`,`declined`])),npxApprovals:m(f(),n([`approved`,`declined`])),npmShipped:p(t({package:f(),allowedVersions:p(f())}))}),t({error:f(),details:u().optional()}),t({url:f().url(),method:n([`GET`,`HEAD`,`POST`,`PUT`,`PATCH`,`DELETE`]).optional(),headers:m(f(),f()).optional(),body:f().optional(),timeoutMs:a().int().positive().max(12e4).optional(),maxBytes:a().int().positive().max(50*1024*1024).optional()}),t({status:a().int(),statusText:f(),headers:m(f(),f()),body:f().optional(),bodyBase64:f().optional(),mimeType:f().optional(),truncated:r()}),t({query:f().min(1).max(400),limit:a().int().min(1).max(20).optional(),freshness:n([`day`,`week`,`month`,`year`]).optional(),country:f().length(2).optional(),language:f().min(2).max(8).optional()});var qa=t({title:f(),url:f(),snippet:f(),domain:f(),publishedAt:f().optional(),source:n([`brave`,`wikipedia`,`tavily`,`mock`])});t({query:f().min(1).max(400),limit:a().int().min(1).max(20).optional(),language:f().min(2).max(8).optional()}),t({results:p(qa),source:n([`brave`,`wikipedia`,`tavily`,`mock`]),query:f(),durationMs:a().int().nonnegative()}),t({files:p(t({path:f().min(1).max(4096),startLine:a().int().min(1).max(1e7).optional(),endLine:a().int().min(1).max(1e7).optional()}).superRefine((e,t)=>{let n=e.startLine??1;e.endLine!==void 0&&e.endLine<n&&t.addIssue({code:o.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:o.custom,path:[`endLine`],message:`a read range may contain at most 400 lines`})})).min(1).max(8)}),t({results:p(c(`status`,[t({status:l(`ok`),path:f(),content:f(),startLine:a().int().positive(),endLine:a().int().nonnegative(),linesReturned:a().int().nonnegative(),bytesReturned:a().int().nonnegative(),scannedBytes:a().int().nonnegative(),totalLines:a().int().nonnegative().optional(),totalBytes:a().int().nonnegative(),eof:r(),completeFile:r(),hasMore:r(),nextStartLine:a().int().positive().optional(),truncated:r(),truncationReason:n([`line-limit`,`output-limit`]).optional()}),t({status:l(`error`),path:f(),code:n([`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:f(),scannedBytes:a().int().nonnegative().optional()})])),truncated:r(),totalBytesReturned:a().int().nonnegative(),totalScannedBytes:a().int().nonnegative()}),t({pattern:f().min(1).max(4e3),path:f().max(4096).optional(),glob:f().min(1).max(512).optional(),includeGlobs:p(f().min(1).max(512)).max(32).optional(),excludeGlobs:p(f().min(1).max(512)).max(32).optional(),caseInsensitive:r().optional(),literal:r().optional(),contextLines:a().int().min(0).max(5).optional(),resultMode:n([`matches`,`files`,`count`]).optional(),cursor:a().int().min(0).max(1e4).optional(),maxResults:a().int().positive().max(200).optional(),timeoutMs:a().int().min(100).max(3e4).optional()});var Ja=t({line:a().int().positive(),text:f()}),Ya=t({path:f(),line:a().int().positive(),text:f(),before:p(Ja).optional(),after:p(Ja).optional()});t({mode:n([`matches`,`files`,`count`]).default(`matches`),matches:p(Ya),files:p(f()).default([]),count:a().int().nonnegative().default(0),truncated:r(),truncationReason:n([`limit`,`output`]).optional(),nextCursor:a().int().nonnegative().optional(),engine:n([`ripgrep`,`javascript`])}),t({glob:f().min(1),path:f().optional(),caseInsensitive:r().optional(),maxResults:a().int().positive().max(5e3).optional()}),t({files:p(f()),truncated:r()});var q=t({x:a(),y:a(),w:a(),h:a()}),Xa=t({id:f(),parentId:f().nullable(),rect:q,label:f(),depth:a().int().nonnegative(),fileCount:a().int().nonnegative(),weight:a().nonnegative(),color:f().optional(),labelPlate:q.optional(),displayLabel:f().optional()}),Za=t({findings:a().int().nonnegative(),maxSeverity:n([`critical`,`high`,`medium`,`low`,`info`]).nullable(),fanIn:a().int().nonnegative(),fanOut:a().int().nonnegative(),vibe:n([`lush`,`tidy`,`plain`,`scruffy`,`blighted`]),zone:n([`residential`,`commercial`,`civic`,`industrial`]),importance:a().min(0).max(1).optional(),churn:a().int().nonnegative().optional()}),Qa=n([`hamlet`,`village`,`town`,`city`]),$a=t({id:f(),districtId:f(),rect:q,label:f(),weight:a().nonnegative(),kind:f().nullable().optional(),lang:f().nullable().optional(),state:n([`live`,`new`,`tombstoned`]),buildingCount:a().int().nonnegative(),phantom:r().optional(),placedAt:f().nullable().optional(),lot:q.optional(),health:Za.optional(),levels:a().int().min(1).max(5).optional(),landmark:r().optional(),lastTouchedAt:f().optional(),urbanity:a().min(0).max(1).optional(),settlement:Qa.optional()}),eo=t({id:f(),blockId:f(),rect:q,height:a().nonnegative(),lines:a().int().positive().optional(),lineStart:a().int().positive().optional(),lineEnd:a().int().positive().optional(),label:f(),kind:f()}),to=t({id:f(),rect:q,tier:a().int().min(0).max(3),districtId:f().nullable()}),no=t({id:f(),districtId:f().nullable(),rect:q,kind:n([`plaza`,`green`]),blockId:f().optional()}),ro=t({a:f(),b:f(),affinity:a(),source:n([`import`,`embedding`,`mixed`]),bidirectional:r()}),io=t({blockId:f(),change:n([`added`,`modified`,`deleted`,`renamed`]),additions:a().int().nonnegative(),deletions:a().int().nonnegative(),fromPath:f().optional()}),ao=t({prNumber:a().int().optional(),title:f().optional(),changedBlocks:p(io)}),oo=t({center:t({x:a(),y:a()}),radius:a().positive(),ceiling:a().min(0).max(1),peak:a().min(0).max(1),median:a().min(0).max(1),settlement:Qa,fileCount:a().int().nonnegative()}),so=n([`core`,`tests`,`all`]);t({domain:n([`code`,`docs`,`data`]).optional(),scope:so.optional(),pr:a().int().positive().optional()}),t({domain:f(),root:f(),bounds:q,builtAt:f(),indexed:r(),districts:p(Xa),blocks:p($a),buildings:p(eo),roads:p(ro),streets:p(to).optional(),plazas:p(no).optional(),overlay:ao.optional(),urbanity:oo.optional(),signals:t({gitAvailable:r(),churnWindowDays:a().int().positive()}).optional()}),t({query:f().min(1),maxResults:a().int().positive().max(100).optional()}),t({results:p(t({sourcePath:f(),markdownPath:f(),lineStart:a().int().positive(),snippet:f()})),engine:n([`fts`,`unavailable`]),truncated:r()}),t({path:f().min(1)}),t({found:r(),sourcePath:f().optional(),markdownPath:f().optional(),markdown:f().optional(),truncated:r()}),t({query:f().min(1),mode:n([`auto`,`semantic`,`keyword`]).optional(),maxResults:a().int().positive().max(100).optional()}),t({results:p(t({path:f(),lineStart:a().int().positive(),lineEnd:a().int().positive(),kind:f(),name:f().optional(),snippet:f(),score:a(),source:n([`vector`,`fts`])})),engine:n([`hybrid`,`semantic`,`fts`,`unavailable`]),truncated:r()});var co=n([`critical`,`high`,`medium`,`low`,`info`]),lo=n([`builtin`,`semgrep`,`osv`,`gitleaks`]),uo=n([`open`,`in_progress`,`resolved`]),fo=t({fingerprint:f().min(1),path:f(),line:a().int().positive().nullable(),ruleId:f(),category:f(),severity:co,source:lo,title:f(),evidence:f().optional(),status:uo,taskRef:vr.optional()}),po=t({total:a().int().nonnegative(),bySeverity:m(f(),a().int().nonnegative()),byCategory:m(f(),a().int().nonnegative()),bySource:m(f(),a().int().nonnegative())});t({useExternalTools:r().optional()}),t({ran:r(),engines:p(f()),toolsAvailable:t({semgrep:r(),osvScanner:r(),gitleaks:r(),npm:r()}),findingCounts:po,dependencies:a().int().nonnegative(),advisories:a().int().nonnegative()}),t({severity:co.optional(),category:f().optional(),path:f().optional(),source:lo.optional(),maxResults:a().int().positive().max(1e3).optional()}),t({findings:p(fo),counts:po,truncated:r(),indexed:r()}),t({fingerprint:f().min(1)}),t({resolved:r()}),t({fingerprint:f().min(1)}),t({finding:fo,taskRef:vr,gezelId:f(),gezelName:f(),enqueued:r()}),t({entryPoints:p(f()),routes:p(f()),authBoundaries:p(f()),secretTouchpoints:p(f()),taintSources:p(t({path:f(),count:a().int().positive()}))}).extend({root:f(),indexed:r()}),t({dependencies:p(t({name:f(),ecosystem:f(),version:f().nullable(),direct:r(),advisoryIds:p(f()),maxSeverity:co.nullable(),license:f().nullable()})),total:a().int().nonnegative(),withAdvisories:a().int().nonnegative(),scanned:r()}),t({indexed:r(),scanned:r(),findings:po,attackSurface:t({entryPoints:a().int().nonnegative(),routes:a().int().nonnegative(),authBoundaries:a().int().nonnegative(),secretTouchpoints:a().int().nonnegative(),taintSources:a().int().nonnegative()}),dependencies:t({total:a().int().nonnegative(),withAdvisories:a().int().nonnegative()}),systemicCandidates:p(t({category:f(),fileCount:a().int().positive(),findingCount:a().int().positive(),severity:co}))}),t({file:f().min(1),maxHops:a().int().positive().max(8).optional()}),t({file:f(),found:r(),upstream:p(f()),downstream:p(f()),taintSources:p(fo),sinks:p(fo),note:f()});var mo=t({kind:n([`project`,`gezel`,`file`,`document`,`content`,`symbol`,`memory`,`session`]),id:f(),title:f(),subtitle:f().optional(),snippet:f().optional(),projectId:f().optional(),projectName:f().optional(),path:f().optional(),source:n([`workspace`,`artifacts`]).optional(),line:a().int().positive().optional(),gezelId:f().optional(),score:a()});t({query:f().min(1).max(400),mode:n([`names`,`full`]).optional(),maxResults:a().int().positive().max(100).optional()}),t({results:p(mo),truncated:r()}),t({q:f().min(1).max(400),gezel:f().optional(),project:f().optional(),maxResults:a().int().positive().max(100).optional()}),t({results:p(t({sessionId:f(),gezelId:f(),projectId:f(),title:f(),snippet:f(),messageStart:a().int().positive(),lastActivityAt:f(),archived:r()})),engine:n([`fts`,`unavailable`])}),t({q:f().min(1).max(400),maxResults:a().int().positive().max(100).optional()}),t({results:p(t({path:f(),lineStart:a().int().positive(),snippet:f()})),engine:n([`fts`,`unavailable`])}),t({query:f().min(1),maxResults:a().int().positive().max(100).optional()}),t({results:p(t({path:f(),width:a().int().optional(),height:a().int().optional(),format:f().optional(),caption:f().optional(),score:a()})),engine:n([`fts`,`unavailable`]),truncated:r()}),t({path:f().min(1),maxResults:a().int().positive().max(100).optional()}),t({results:p(t({path:f(),score:a()})),engine:n([`vector`,`unavailable`]),truncated:r()}),t({path:f().optional()}),t({path:f(),imageCount:a().int().nonnegative(),formats:p(t({format:f(),count:a().int()})),dimensions:t({minWidth:a().int(),maxWidth:a().int(),minHeight:a().int(),maxHeight:a().int()}).nullable(),samples:p(f()),captioned:a().int().nonnegative()}),t({query:f().optional(),kind:f().optional(),maxResults:a().int().positive().max(200).optional()}),t({entities:p(t({id:a().int(),kind:f(),label:f(),canonical:f(),mentions:a().int().nonnegative()})),engine:n([`index`,`unavailable`])}),t({entity:f().min(1),maxResults:a().int().positive().max(500).optional()}),t({found:r(),entity:t({kind:f(),label:f()}).optional(),mentions:p(t({path:f(),line:a().int().optional(),date:f().optional()}))}),t({leftPath:f().optional(),leftText:f().optional(),rightPath:f().optional(),rightText:f().optional(),contextLines:a().int().min(0).max(20).optional()}).refine(e=>(e.leftPath||e.leftText)&&(e.rightPath||e.rightText),{message:`Provide {leftPath|leftText} and {rightPath|rightText}.`}),t({diff:f(),identical:r()}),t({path:f().min(1),artifact:r().optional()}),t({path:f(),mimeType:f(),base64:f(),bytes:a().int().nonnegative()}),t({path:f().min(1),maxEntries:a().int().positive().max(5e3).optional()});var ho=t({name:f(),size:a().int().nonnegative(),isDirectory:r()});t({format:n([`zip`,`tar`,`tar.gz`]),entries:p(ho),truncated:r()}),t({path:f().min(1),outputPath:f().min(1)}),t({format:n([`zip`,`tar`,`tar.gz`]),extractedCount:a().int().nonnegative(),destination:f()}),t({subcommand:n([`status`,`log`,`diff`,`show`,`blame`,`branch`,`rev-parse`,`ls-files`]),args:p(f()).max(32).optional(),timeoutMs:a().int().positive().max(12e4).optional()}),t({code:a().int(),stdout:f(),stderr:f(),stdoutTruncated:r(),timedOut:r()}),t({deviceCode:f(),userCode:f(),verificationUri:f(),interval:a().int().positive(),expiresIn:a().int().positive()});var go=t({login:f(),name:f().optional(),avatarUrl:f().optional()});t({deviceCode:f()}),c(`status`,[t({status:l(`pending`)}),t({status:l(`slow_down`)}),t({status:l(`expired`)}),t({status:l(`denied`),error:f().optional()}),t({status:l(`success`),identity:go,scopes:p(f()).optional()}),t({status:l(`not_configured`),error:f()})]),d([go.extend({signedIn:l(!0)}),t({signedIn:l(!1)})]),t({repos:p(t({fullName:f(),url:f(),description:f().optional(),private:r().optional(),pushedAt:f().optional()}))}),t({url:f()}),t({owner:f(),repo:f(),canonicalUrl:f(),defaultBranch:f().optional(),description:f().optional(),topics:p(f()).optional(),language:f().optional(),readme:f(),readmeTruncated:r()}),t({name:f().min(1),repoUrl:f(),description:f().optional(),topics:p(f()).optional(),readme:f()}),t({about:f(),missionObjectives:f()}),t({path:f().min(1)}),t({name:f(),about:f().optional(),source:f().optional()});var _o=t({name:f(),kind:n([`npm-script`,`workspace-script`,`vscode-launch`,`bin`]),source:f(),run:f(),description:f().optional()}),vo=t({version:a().int(),scannedAt:f(),root:f(),durationMs:a().int(),fileCount:a().int(),commandCount:a().int(),shapeCount:a().int().optional()}),yo=t({name:f(),char:f().length(1).optional(),type:n([`boolean`,`option`]),description:f().optional(),required:r().optional(),default:f().optional(),options:p(f()).optional(),multiple:r().optional()}),bo=t({name:f(),description:f().optional(),required:r().optional(),default:f().optional(),options:p(f()).optional()}),xo=t({source:l(`oclif`),package:f(),packageVersion:f().optional(),summary:f().optional(),description:f().optional(),subcommands:p(t({name:f(),fullName:f(),summary:f().optional()})).optional(),flags:p(yo).optional(),args:p(bo).optional(),usage:f().optional(),examples:p(f()).optional()});t({shapes:m(f(),xo)}),t({state:n([`fresh`,`stale`,`indexing`,`never`,`disabled`]),meta:vo.optional(),aiScanPending:r().optional(),aiDrive:n([`background`,`full`]).optional(),enrichment:t({eligible:a().int().nonnegative(),summarized:a().int().nonnegative(),embedded:a().int().nonnegative(),pending:a().int().nonnegative(),skipped:a().int().nonnegative().optional(),shadowsPending:a().int().nonnegative().optional(),embedModel:f().optional(),reviews:t({eligible:a().int().nonnegative(),reviewed:a().int().nonnegative(),stale:a().int().nonnegative(),pending:a().int().nonnegative()}).optional()}).optional()}),t({maxFiles:a().int().positive().max(25).optional(),budgetMs:a().int().positive().max(6e4).optional(),areas:r().optional(),reviews:r().optional(),intensity:n([`background`,`full`]).optional()}),t({paused:r(),files:a().int().nonnegative(),summarized:a().int().nonnegative(),embedded:a().int().nonnegative(),pending:a().int().nonnegative(),areasUpdated:a().int().nonnegative(),architectureUpdated:r(),reviewed:a().int().nonnegative().optional(),reviewPending:a().int().nonnegative().optional(),drained:r(),started:r().optional(),alreadyRunning:r().optional(),mode:n([`background`,`full`]).optional()});var So=t({ref:f(),title:f(),projectName:f(),stepName:f().optional()});t({background:p(t({id:f(),title:f(),detail:f(),projectName:f().optional()})),active:p(So),upcoming:p(So)});var Co=t({ref:f(),title:f(),projectId:f(),projectName:f(),completedAt:f().optional()}),wo=t({projectId:f(),projectName:f(),path:f(),title:f(),writtenAt:f().optional(),actionCounts:t({total:a(),suggested:a(),fired:a(),applied:a(),dismissed:a()})});t({windowKey:f(),windowStart:f(),windowEnd:f(),tasksCompleted:p(Co),reports:p(wo)}),t({meta:vo,commands:p(_o),shapes:m(f(),xo).optional()}),t({skills:p(t({name:f(),source:f(),origin:n([`claude`,`gstack`,`agents`,`other`]),description:f().optional(),triggers:p(f()).optional(),version:f().optional(),body:f(),generated:r().optional(),hasShellScripts:r(),files:p(t({relPath:f(),kind:n([`section`,`reference`,`template`,`script`,`bin`,`other`]),bytes:a().int().nonnegative()})).optional()}))}),t({instructions:p(t({source:f(),origin:n([`agents`,`claude`,`copilot`]),content:f(),hash:f(),mtimeMs:a()}))}),t({sessionId:f(),providerName:f(),model:f().optional(),modelTier:n([`tiny`,`small`,`medium`,`large`,`cloud`]),parameterSize:f().optional(),leaksUntaggedReasoning:r(),reasoningEffort:f().optional(),numCtx:a().optional(),systemPrompt:f(),volatileContext:f().optional(),customToolsMd:r(),registeredTools:p(f()),turnStatus:n([`idle`,`in-progress`,`queued`]),recentMessages:p(t({role:n([`user`,`assistant`,`system`,`tool`]),content:f(),reasoning:f().optional(),warnings:p(f()).optional(),synthetic:n([`compaction-summary`,`context-loop-halt`,`turn-aborted`,`growth-announcement`,`keurmeester-notice`]).optional(),attemptedToolCalls:p(t({body:f(),reason:f().optional()})).optional(),toolCalls:p(t({name:f(),argsSummary:f().optional(),success:r(),errorMessage:f().optional()})).optional()})),diagnostics:t({sessionRecordPath:f(),logsDir:f(),engineLogGlob:f().optional()}).optional(),generatedAt:f()}),t({source:f().min(1),dest:f().min(1),gezelId:f().optional(),sessionId:f().optional()}),t({ok:l(!0),source:f(),dest:f(),bytes:a().int().nonnegative()}),t({url:f().url(),dest:f().optional(),branch:f().min(1).optional(),gezelId:f().optional(),sessionId:f().optional()}),t({ok:l(!0),path:f(),files:a().int().nonnegative(),bytes:a().int().nonnegative()}),t({url:f().url(),baseRef:f().min(1),headRef:f().min(1),dest:f().optional(),diffPath:f().min(1).optional(),gezelId:f().optional(),sessionId:f().optional()}),t({ok:l(!0),path:f(),diffPath:f(),baseSha:f(),headSha:f(),files:a().int().nonnegative(),bytes:a().int().nonnegative(),diffBytes:a().int().nonnegative(),filesChanged:a().int().nonnegative()}),t({path:f().min(1),find:f().min(1),replace:f(),occurrence:d([a().int().positive(),l(`all`)]).optional(),gezelId:f().optional(),sessionId:f().optional()}),t({path:f().min(1),diff:f().min(1),gezelId:f().optional(),sessionId:f().optional()}),t({path:f().min(1),marker:f().min(1),content:f(),where:n([`before`,`after`]).optional(),gezelId:f().optional(),sessionId:f().optional()}),t({path:f().min(1),startLine:a().int().positive(),endLine:a().int().positive(),content:f(),gezelId:f().optional(),sessionId:f().optional()}),t({ok:l(!0),path:f(),diff:f(),addedLines:a().int().nonnegative(),removedLines:a().int().nonnegative(),diffTruncated:r().optional()}),t({tools:p(t({name:f(),description:f(),parameters:m(f(),u())}))}),t({args:m(f(),u()).optional()}),t({text:f(),images:p(t({base64:f(),mimeType:f()}))});var To=n([`NW`,`N`,`NE`,`W`,`C`,`E`,`SW`,`S`,`SE`]),Eo=t({path:f().min(1),region:To,cx:a().min(0).max(1),cy:a().min(0).max(1)}),Do=t({path:f().min(1),region:To.optional(),rect:q.optional(),style:f().optional()}),Oo=t({k:n([`block`,`street`,`plate`,`plaza`]),id:f(),p:f().nullable().optional(),h:f().nullable().optional(),r:te([a(),a(),a(),a()]),w:a().optional(),a:f().nullable().optional(),d:f().nullable().optional()}),ko=t({cx:a(),cy:a(),r:a().positive(),impRef:a().min(0)}),Ao=t({layoutVersion:a().int().positive(),anchors:p(Eo).default([]),journal:p(Oo).default([]),downtown:ko.optional()});t({schemaVersion:a().int().positive().default(1),about:f().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(Do).default([]),domains:m(f(),Ao).default({})});var J=t({ok:r(),detail:f()}),jo=n([`probed`,`failed`,`deferred`,`blocked`]),Mo=n([`install`,`manual`]);t({schemaVersion:l(1),provider:f(),modelId:f(),status:jo,admitted:r(),genTokensPerSec:a().nullable(),shortPromptGenTokensPerSec:a().nullable().optional(),representativeContext:t({targetPromptTokens:a().int().positive(),promptTokens:a().int().nonnegative().nullable(),cachedPromptTokens:a().int().nonnegative().nullable(),completionTokens:a().int().nonnegative().nullable(),durationMs:a().nonnegative().nullable(),ttftMs:a().nonnegative().nullable(),promptTokensPerSec:a().positive().nullable(),genTokensPerSec:a().positive().nullable()}).optional(),createdAt:f(),durationMs:a().int().nonnegative(),trigger:Mo,sha256:f().optional(),catalogVersion:f().optional(),contextWindow:a().int().optional(),host:t({totalRamBytes:a(),gpuVramBytes:a().nullable(),source:f()}),checks:t({spawn:J,toolRoundTrip:J,throughput:J,reasoningBudget:J,contextFit:J})}),t({scope:c(`kind`,[t({kind:l(`gezel`),gezelId:f()}),t({kind:l(`project`),projectId:f()}),t({kind:l(`shared`)}),t({kind:l(`system`)})]),text:f().min(1).max(2*1024*1024),sourceName:f().min(1).max(512).optional()});var No=t({serverName:f().optional(),message:f()});t({ok:l(!0),imported:p(f()),warnings:p(No).default([])});var Po=n([`fire-craftbook`,`create-task`,`apply-edits`]),Fo={id:f().regex(/^[a-z0-9][a-z0-9_-]*$/i).optional(),title:f().min(1),reason:f().optional(),projectId:f().optional()},Io=c(`kind`,[t({kind:l(`fire-craftbook`),...Fo,craftbookId:f().min(1),params:m(f(),f()).optional()}),t({kind:l(`create-task`),...Fo,prompt:f().min(1),role:f().optional()}),t({kind:l(`apply-edits`),...Fo,edits:p(t({path:f().min(1),diffArtifact:f().min(1)})).min(1)})]),Lo=n([`suggested`,`fired`,`applied`,`failed`,`dismissed`]),Ro=t({actionId:f(),reportPath:f(),kind:Po,contentHash:f(),firstSeenAt:f(),state:Lo,taskRef:f().optional(),firedAt:f().optional(),settledAt:f().optional(),outcome:n([`complete`,`canceled`]).optional(),results:p(t({path:f(),ok:r(),error:f().optional()})).optional()}),zo=t({index:a().int(),message:f(),raw:f()});t({actions:p(t({action:Io,id:f(),contentHash:f(),state:Lo,taskRef:f().optional(),firedAt:f().optional(),settledAt:f().optional(),outcome:n([`complete`,`canceled`]).optional(),results:p(t({path:f(),ok:r(),error:f().optional()})).optional(),contentChanged:r().optional()})),issues:p(zo),stale:p(Ro)}),t({path:f().min(1),actionId:f().min(1),params:m(f(),f()).optional()}),t({record:Ro,taskRef:f().optional()}),t({path:f().min(1),actionId:f().min(1)});var Bo=c(`kind`,[t({kind:l(`gezel-template`),templateId:f(),gezelId:f().optional(),gezelName:f().optional(),role:f().optional()}),t({kind:l(`project-type`),typeId:f(),scheduleKey:f()})]),Vo=n([`suggested`,`enabled`,`paused`,`dismissed`]);t({items:p(t({key:f(),source:Bo,craftbookId:f(),craftbookName:f().optional(),description:f().optional(),reason:f().optional(),runMode:n([`night-shift`,`scheduled`]),cron:f().optional(),overlap:L.optional(),paramSchema:m(f(),u()).optional(),params:m(f(),f()).optional(),state:Vo,taskRef:f().optional(),pendingQuestionId:f().optional(),orphaned:r().optional()}))}),t({key:f(),params:m(f(),f()).optional()}),t({key:f()}),t({key:f(),dismissed:r()});var Ho=n([`workspace`,`artifacts`]),Y={__gezelPage:l(1)};c(`kind`,[t({...Y,kind:l(`hello`)}),t({...Y,kind:l(`invoke`),id:f().min(1).max(64),tool:f().regex(/^[a-z][a-z0-9_]*$/),input:m(f(),u()).optional()}),t({...Y,kind:l(`read`),id:f().min(1).max(64),op:n([`read`,`list`,`stat`]),source:Ho,path:f().min(1),as:n([`text`,`json`,`bytes`]).optional(),maxBytes:a().int().positive().optional()}),t({...Y,kind:l(`watch`),id:f().min(1).max(64),source:Ho,path:f().min(1)}),t({...Y,kind:l(`unwatch`),id:f().min(1).max(64)}),t({...Y,kind:l(`refresh`)})]);var Uo=n([`not-allowed`,`invalid-input`,`script-error`,`timeout`,`unavailable`,`rate-limited`]);c(`kind`,[t({...Y,kind:l(`init`),api:l(1),theme:t({mode:n([`light`,`dark`])}),limits:t({maxInflight:a().int().positive(),maxReadBytes:a().int().positive()})}),t({...Y,kind:l(`result`),id:f(),ok:r(),output:u().optional(),error:f().optional(),errorCode:Uo.optional(),runId:f().optional(),reaction:t({delivered:r(),gezelId:f().optional(),reason:f().optional()}).optional()}),t({...Y,kind:l(`read-result`),id:f(),ok:r(),error:f().optional(),errorCode:Uo.optional(),content:f().optional(),encoding:n([`utf8`,`base64`]).optional(),entries:p(t({name:f(),kind:n([`file`,`dir`]),size:a().nonnegative(),mtime:a().nonnegative()})).optional(),etag:f().optional(),size:a().nonnegative().optional(),mtime:a().nonnegative().optional()}),t({...Y,kind:l(`change`),watchId:f(),path:f(),etag:f()}),t({...Y,kind:l(`theme`),theme:t({mode:n([`light`,`dark`])})})]),t({api:l(1),projectId:f(),source:l(`type`),entry:f(),typeName:f(),params:m(f(),u()),tools:p(f())});var Wo=f().min(1).describe(`CSS color — hex (#rgb, #rgba, #rrggbb, #rrggbbaa) or the keyword "transparent".`),Go={x:a().optional(),y:a().optional(),width:a().positive().optional(),height:a().positive().optional(),opacity:a().min(0).max(1).optional()},Ko=c(`kind`,[t({kind:l(`svg`),svg:f().min(1).describe(`SVG markup. <script>/<foreignObject>/event handlers are stripped.`),rotate:a().optional().describe(`Degrees of rotation around the layer center.`),...Go}),t({kind:l(`html`),html:f().min(1).describe(`HTML fragment rendered inside a sandboxed iframe.`),...Go}),t({kind:l(`pixels`),rows:p(f()).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:m(f(),Wo).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:a().int().positive().optional().describe(`Pixel size in output px. Defaults to a value that fits the canvas.`),...Go}),t({kind:l(`image`),artifactPath:f().min(1).describe(`Path to a previously-written artifact, relative to the project artifacts/ root.`),...Go}),t({kind:l(`text`),text:f().min(1),x:a(),y:a(),font:f().optional(),size:a().positive().optional(),color:Wo.optional(),weight:a().int().optional(),opacity:a().min(0).max(1).optional()})]);t({projectId:f().optional().describe(`Project to save the artifact under. Defaults to "default".`),width:a().int().positive().max(4096),height:a().int().positive().max(4096),layers:p(Ko).min(1).max(64),background:Wo.optional().describe(`Canvas background color. Defaults to transparent.`),filename:f().optional().describe(`Artifact filename (without extension) saved under artifacts/renders/. Defaults to a timestamped name.`),format:n([`png`,`jpeg`]).optional().describe(`Output format. Defaults to png.`)}),t({path:f().describe(`Project-relative path, e.g. "renders/sprite-1234.png".`),url:f().describe(`HTTP URL to the saved artifact, authed like every other artifact route.`),width:a().int().positive(),height:a().int().positive(),bytes:a().int().nonnegative(),mimeType:f(),base64:f().describe(`Base64-encoded image data, ready to feed into a vision input.`),engine:n([`playwright`,`resvg`]).describe(`Which render engine produced the image.`)});var qo=d([t({data:f().min(1),mimeType:f().default(`image/png`)}),t({artifactPath:f().min(1)})]);t({prompt:f().min(1),negativePrompt:f().optional(),model:f().optional(),width:a().int().positive().optional(),height:a().int().positive().optional(),steps:a().int().positive().optional(),seed:a().int().optional(),inputImages:p(qo).optional(),strength:a().min(0).max(1).optional(),projectId:f().optional(),gezelId:f().optional(),sessionId:f().optional(),inline:r().optional(),saveAs:f().optional()});var Jo=t({model:f(),seed:a().int(),steps:a().int(),widthPx:a().int().positive(),heightPx:a().int().positive(),durationMs:a().int().nonnegative(),img2imgSkippedReason:f().optional()});t({artifactPath:f(),workspacePath:f().nullable(),meta:Jo,b64Png:f().optional()}),t({models:p(t({id:f(),name:f(),approxSizeBytes:a().int().nonnegative(),installedAt:f(),kind:n([`local`,`cloud`]).optional(),supportsImg2Img:r().optional()})),defaultModel:f().optional()}),t({engine:t({status:n([`ok`,`unreachable`,`not-configured`]),baseUrl:f(),error:f().optional(),kind:n([`local`,`cloud`]).optional(),provider:f().optional()}),modelCount:a().int().nonnegative()}),t({pulls:p(t({id:f(),startedAt:f(),bytesWritten:a().int().nonnegative(),totalBytes:a().int().nonnegative(),retrying:t({attempt:a().int().positive(),maxAttempts:a().int().positive(),delayMs:a().int().nonnegative(),reason:f()}).optional(),finished:r(),error:f().optional()}))});var Yo=c(`type`,[t({type:l(`progress`),bytesWritten:a().int().nonnegative(),totalBytes:a().int().nonnegative().optional()}),t({type:l(`retrying`),attempt:a().int().positive(),maxAttempts:a().int().positive(),delayMs:a().int().nonnegative(),reason:f()}),t({type:l(`error`),error:f()}),t({type:l(`done`),id:f()})]),Xo=d([t({data:f().min(1),mimeType:f().default(`image/png`)}),t({artifactPath:f().min(1)})]);t({prompt:f().min(1),negativePrompt:f().optional(),model:f().optional(),width:a().int().positive().optional(),height:a().int().positive().optional(),numFrames:a().int().positive().optional(),fps:a().int().positive().optional(),steps:a().int().positive().optional(),seed:a().int().optional(),inputImage:Xo.optional(),projectId:f().optional(),gezelId:f().optional(),sessionId:f().optional(),inline:r().optional(),saveAs:f().optional()});var Zo=t({model:f(),seed:a().int(),steps:a().int(),widthPx:a().int().positive(),heightPx:a().int().positive(),numFrames:a().int().positive(),fps:a().int().positive(),durationMs:a().int().nonnegative(),mimeType:f()});t({artifactPath:f(),workspacePath:f().nullable(),meta:Zo,b64Poster:f().optional()}),t({models:p(t({id:f(),name:f(),approxSizeBytes:a().int().nonnegative(),installedAt:f(),kind:n([`local`,`cloud`]).optional()})),defaultModel:f().optional()});var Qo=n([`cuda`,`mps`,`cpu`]);t({engine:t({status:n([`ok`,`unreachable`,`not-configured`]),baseUrl:f(),error:f().optional(),kind:n([`local`,`cloud`]).optional(),provider:f().optional(),accelerator:Qo.optional()}),modelCount:a().int().nonnegative()}),t({pulls:p(t({id:f(),startedAt:f(),bytesWritten:a().int().nonnegative(),totalBytes:a().int().nonnegative(),file:f().optional(),fileIndex:a().int().nonnegative().optional(),fileCount:a().int().positive().optional(),retrying:t({attempt:a().int().positive(),maxAttempts:a().int().positive(),delayMs:a().int().nonnegative(),reason:f()}).optional(),finished:r(),error:f().optional()}))});var $o=c(`type`,[t({type:l(`progress`),fileIndex:a().int().nonnegative(),fileCount:a().int().positive(),file:f(),bytesWritten:a().int().nonnegative(),totalBytes:a().int().nonnegative(),bytesWrittenAll:a().int().nonnegative(),totalBytesAll:a().int().nonnegative()}),t({type:l(`retrying`),file:f(),attempt:a().int().positive(),maxAttempts:a().int().positive(),delayMs:a().int().nonnegative(),reason:f()}),t({type:l(`verifying`),file:f()}),t({type:l(`error`),error:f()}),t({type:l(`done`),id:f()})]);t({audio:d([t({data:f().min(1).describe(`Base64-encoded audio bytes.`),mimeType:f().default(`audio/wav`)}),t({artifactPath:f().min(1).describe("Project-relative artifact path under `audio/` or `audio/uploaded/`.")})]),model:f().optional(),language:f().optional(),projectId:f().optional()});var es=t({start:a(),end:a(),text:f()});t({text:f(),language:f().optional(),segments:p(es).optional(),durationMs:a().int().nonnegative()}),t({text:f().min(1),voice:f().optional(),model:f().optional(),speed:a().min(.25).max(4).optional(),projectId:f().optional(),sessionId:f().optional(),gezelId:f().optional(),inline:r().optional()});var ts=t({voice:f(),model:f(),sampleRate:a().int().positive(),durationSeconds:a().nonnegative(),durationMs:a().int().nonnegative()});t({artifactPath:f(),meta:ts,b64Wav:f().optional()}),t({models:p(t({id:f(),name:f(),approxSizeBytes:a().int().nonnegative(),installedAt:f()}))});var ns=t({id:f(),name:f(),description:f(),approxSizeBytes:a().int().nonnegative(),kind:n([`stt`,`tts`]),license:f().optional(),...B,...V});t({stt:p(ns),tts:p(ns)}),t({voices:p(t({id:f(),name:f(),language:f(),gender:n([`female`,`male`,`neutral`]).optional(),modelId:f()}))});var rs=t({status:n([`ok`,`unreachable`,`not-configured`,`no-model`]),baseUrl:f().optional(),error:f().optional(),provider:f().optional(),modelCount:a().int().nonnegative()});t({stt:rs,tts:rs});var is=c(`type`,[t({type:l(`progress`),bytesWritten:a().int().nonnegative(),totalBytes:a().int().nonnegative().optional()}),t({type:l(`error`),error:f()}),t({type:l(`done`),id:f()})]),as=n([`conceptual`,`gezel-roles`,`craftbooks`,`project-types`,`technical`,`whats-new`]);n([`app`,`site`,`agent`]);var os=t({id:f().min(1),title:f().min(1),order:a()}),ss=t({id:f().min(1),title:f().min(1),area:as,order:a(),summary:f().optional(),generated:r(),siteVisible:r().optional(),subcategory:os.optional()});t({areas:p(t({area:as,title:f(),entries:p(ss)}))});var cs=t({path:f().min(1),gezelId:f().min(1),name:f(),roleLabel:f().optional(),variant:n([`full`,`headshot`,`icon`]),poppetje:tt}),ls=t({blockId:f(),hash:f().regex(/^[a-f0-9]{64}$/),durationMs:a().int().nonnegative(),silent:r().optional()});t({articleId:f(),voice:f(),model:f(),segments:p(ls)}),t({results:p(t({id:f().min(1),title:f().min(1),area:as,summary:f().optional(),markdown:f(),figures:p(cs).default([]),generated:r(),defaultDuration:a().positive().optional()}))});var us=e({GezelApiError:()=>Q,GezelClient:()=>Ms,SsePayloadError:()=>ms,SsePrematureEofError:()=>ps,SseResponseError:()=>hs,SseStreamStaleError:()=>fs,consumeSseJson:()=>_s,streamAllChatEvents:()=>bs,streamChatEvents:()=>vs,streamCopilotLogin:()=>ws,streamMlxRuntimeStatus:()=>Cs,streamProjectChatEvents:()=>ys,streamSystemToolsetStatus:()=>Ss,streamTerminalEvents:()=>xs}),ds=2*6e4,fs=class extends Error{constructor(e){super(`SSE stream stale: no bytes from server in ${e}ms`),this.name=`SseStreamStaleError`}},ps=class extends Error{constructor(e=`SSE operation`){super(`${e} ended before a terminal event was received`),this.name=`SsePrematureEofError`}},ms=class extends Error{constructor(e){super(e),this.name=`SsePayloadError`}},hs=class extends Error{constructor(e,t){super(`SSE stream failed: ${e} ${t}`.trim()),this.status=e,this.name=`SseResponseError`}status};async function*X(e,t,n,r={}){let i=await(e.fetch??fetch).bind(globalThis)(e.url,{method:e.method??`GET`,headers:{Accept:`text/event-stream`,...e.headers},signal:e.signal,body:e.body});if(!i.ok||!i.body)throw new hs(i.ok?0:i.status,i.statusText);let a=i.body.getReader(),o=new TextDecoder,s=``,c=e.keepaliveTimeoutMs??0,l=!1,u=e=>{let n=e.split(/\r?\n/).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trimStart());if(n.length===0)return null;let i=n.join(`
2
+ `);if(i.trim()===``)return null;let a;try{a=JSON.parse(i)}catch{if(r.strictPayloads)throw new ms(`SSE event contained invalid JSON`);return console.warn(`[sse] skipping non-JSON payload:`,i.slice(0,200)),null}let o=t.safeParse(a);if(!o.success){let e=a&&typeof a==`object`&&`type`in a?String(a.type):`<no type>`;if(r.strictPayloads)throw new ms(`SSE event ${e} failed schema validation: ${o.error.issues.map(e=>`${e.path.join(`.`)}: ${e.message}`).join(`; `)}`);return console.error(`[sse] DROPPED event (type=${e}) \u2014 failed schema validation. This usually means a schema/version mismatch between packages; rebuild all of them. Issues:`,o.error.issues),null}return o.data};try{for(;;){let{value:e,done:t}=await gs(a,c);if(t){if(s+=o.decode(),s.trim()!==``){let e=u(s);e&&(yield e,n?.(e)&&(l=!0))}if(r.requireTerminal&&!l)throw new ps(r.label);return}s+=o.decode(e,{stream:!0});let i=/\r?\n\r?\n/.exec(s);for(;i;){let e=s.slice(0,i.index);s=s.slice(i.index+i[0].length);let t=u(e);if(t&&(yield t,n?.(t))){l=!0;return}i=/\r?\n\r?\n/.exec(s)}}}finally{await a.cancel().catch(()=>{}),a.releaseLock()}}async function gs(e,t){if(t<=0)return e.read();let n;try{return await Promise.race([e.read(),new Promise((e,r)=>{n=setTimeout(()=>r(new fs(t)),t)})])}finally{n&&clearTimeout(n)}}async function _s(e){let{schema:t,onEvent:n,isTerminal:r,label:i,...a}=e;for await(let e of X({keepaliveTimeoutMs:ds,...a},t,r,{strictPayloads:!0,requireTerminal:!0,label:i}))n(e)}function vs(e){return X(e,bn,e=>e.type===`done`,{requireTerminal:!0,label:`Chat stream`})}function ys(e){return X({keepaliveTimeoutMs:1e4,...e},xn)}function bs(e){return X({keepaliveTimeoutMs:1e4,...e},xn)}function xs(e){return X({keepaliveTimeoutMs:1e4,...e},Fi)}function Ss(e){return X(e,za)}function Cs(e){return X(e,Ba)}function ws(e){return X({method:`POST`,...e},Va,e=>e.kind===`exit`||e.kind===`error`,{requireTerminal:!0,label:`Copilot login stream`})}var Z={keepaliveTimeoutMs:40*6e4,staleMessage:`Download stopped: server has gone quiet.`},Q=class extends Error{constructor(e,t,n){super(e),this.status=t,this.details=n,this.name=`GezelApiError`}status;details};function Ts(e){if(!(e instanceof Error))return String(e);let t=e.cause;return t instanceof Error&&t.message&&t.message!==e.message?`${e.message} (${t.message})`:t&&typeof t==`object`&&`code`in t?`${e.message} (${String(t.code)})`:e.message}async function $(e){let{staleMessage:t,...n}=e;try{await _s(n)}catch(e){throw e instanceof Q?e:new Q(e instanceof fs&&t?t:e instanceof Error?e.message:`SSE stream failed`,e instanceof hs?e.status:0,{cause:e instanceof Error?e.name:`unknown`})}}var Es=t({file:f(),expected:f(),actual:f()}),Ds=c(`type`,[t({type:l(`progress`),bytesWritten:a(),totalBytes:a()}),t({type:l(`retrying`),attempt:a().int().positive(),maxAttempts:a().int().positive(),delayMs:a().nonnegative(),reason:f()}),t({type:l(`verifying`)}),t({type:l(`extracting-metadata`)}),t({type:l(`companion`),kind:l(`image-recognition`),id:f(),name:f(),bytesWritten:a().nonnegative(),totalBytes:a().nonnegative(),error:f().optional()}),t({type:l(`done`),id:f(),warning:f().optional()}),t({type:l(`error`),error:f(),mismatch:Es.optional()})]),Os=c(`type`,[t({type:l(`progress`),fileIndex:a().int().nonnegative(),fileCount:a().int().positive(),file:f(),bytesWritten:a().nonnegative(),totalBytes:a().nonnegative(),bytesWrittenAll:a().nonnegative(),totalBytesAll:a().nonnegative()}),t({type:l(`retrying`),attempt:a().int().positive(),maxAttempts:a().int().positive(),delayMs:a().nonnegative(),reason:f(),file:f()}),t({type:l(`verifying`),file:f()}),t({type:l(`extracting-metadata`)}),t({type:l(`done`),id:f(),warning:f().optional()}),t({type:l(`error`),error:f(),mismatch:Es.optional()})]),ks=c(`type`,[t({type:l(`spawned`),trialId:f().optional(),runDir:f().optional()}),t({type:l(`log`),line:f()}),t({type:l(`done`),result:t({trialId:f(),scenarioId:f(),modelId:f(),startedAt:f(),finishedAt:f(),durationMs:a(),success:r(),reason:f(),failureMode:f().optional(),runDir:f()})}),t({type:l(`error`),error:f()})]),As=c(`type`,[t({type:l(`status`),phase:n([`queued`,`started`]),detail:f().optional()}),t({type:l(`thinking-delta`),text:f()}),t({type:l(`output-delta`),text:f()}),t({type:l(`done`),text:f()}),t({type:l(`error`),error:f()})]),js=c(`type`,[t({type:l(`progress`),chunk:t({status:f(),digest:f().optional(),total:a().optional(),completed:a().optional()})}),t({type:l(`error`),error:f()}),t({type:l(`done`)})]),Ms=class{baseUrl;token;fetchImpl;constructor(e){this.baseUrl=e.baseUrl.replace(/\/$/,``),this.token=e.token;let t=e.fetch??fetch;this.fetchImpl=t.bind(globalThis)}async request(e,t,n,r,i){let a;try{a=await this.fetchImpl(`${this.baseUrl}${t}`,{method:e,headers:{Authorization:`Bearer ${this.token}`,...n===void 0?{}:{"Content-Type":`application/json`},...r??{}},body:n===void 0?void 0:JSON.stringify(n),...i?{signal:i}:{}})}catch(n){let r=Ts(n);throw new Q(`Gezel API transport unavailable on ${e} ${t}: ${r}`,0,{kind:`transport`,cause:r})}if(!a.ok){let n;try{let e=await a.text();if(e.length===0)n=void 0;else try{n=JSON.parse(e)}catch{n=e}}catch(e){n=e instanceof Error?e.message:String(e)}throw new Q(`Gezel API error ${a.status} on ${e} ${t}`,a.status,n)}if(a.status!==204)return await a.json()}health(e){return this.request(`GET`,`/api/health`,void 0,void 0,e)}getUsage(){return this.request(`GET`,`/api/usage`)}getQueueStatus(){return this.request(`GET`,`/api/queues`)}cancelProviderQueueItem(e,t){return this.request(`DELETE`,`/api/queues/${encodeURIComponent(e)}/${t}`)}moveProviderQueueItem(e,t,n){return this.request(`POST`,`/api/queues/${encodeURIComponent(e)}/${t}/move`,{direction:n})}getCacheStats(){return this.request(`GET`,`/api/cache/stats`)}evictSessionCache(e){return this.request(`POST`,`/api/cache/evict`,{sessionId:e})}clearProviderCache(e){return this.request(`POST`,`/api/cache/clear`,{provider:e})}warmSessionCache(e){return this.request(`POST`,`/api/cache/warm`,{sessionId:e})}getConfig(){return this.request(`GET`,`/api/config`)}updateConfig(e){return this.request(`PUT`,`/api/config`,e)}getCodexSetupStatus(){return this.request(`GET`,`/api/codex-setup`)}configureCodex(e){return this.request(`PUT`,`/api/codex-setup`,e)}removeCodexSetup(){return this.request(`DELETE`,`/api/codex-setup`)}getGildeUpdateStatus(){return this.request(`GET`,`/api/gilde-updates`)}checkGildeUpdates(){return this.request(`POST`,`/api/gilde-updates/check`)}getNightShiftStatus(){return this.request(`GET`,`/api/night-shift/status`)}setNightShiftManual(e){return this.request(`POST`,`/api/night-shift/manual`,{action:e})}getNightShiftTasks(){return this.request(`GET`,`/api/night-shift/tasks`)}getNightShiftReview(){return this.request(`GET`,`/api/night-shift/review`)}listSuggestedWork(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/suggested-work`)}enableSuggestedWork(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/suggested-work/enable`,t)}disableSuggestedWork(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/suggested-work/disable`,{key:t})}dismissSuggestedWork(e,t,n){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/suggested-work/dismiss`,{key:t,dismissed:n})}getReportActions(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/report-actions?path=${encodeURIComponent(t)}`)}fireReportAction(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/report-actions/fire`,t)}dismissReportAction(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/report-actions/dismiss`,t)}getMeesterStatus(){return this.request(`GET`,`/api/meester-status`)}runMeesterStatus(){return this.request(`POST`,`/api/meester-status/run`)}getFolders(){return this.request(`GET`,`/api/folders`)}planFolderMove(e){return this.request(`POST`,`/api/folders/plan`,e)}startFolderMove(e){return this.request(`POST`,`/api/folders/move`,e)}getFolderMoveStatus(e){return this.request(`GET`,`/api/folders/move/${encodeURIComponent(e)}`)}cancelFolderMove(e){return this.request(`POST`,`/api/folders/move/${encodeURIComponent(e)}/cancel`)}resetFolder(e){return this.request(`POST`,`/api/folders/reset`,{scope:e})}createNewMeester(e={}){return this.request(`POST`,`/api/config/meester`,e)}createNewKlerk(e={}){return this.request(`POST`,`/api/config/klerk`,e)}createNewBoekwachter(e={}){return this.request(`POST`,`/api/config/boekwachter`,e)}createNewKeurmeester(e={}){return this.request(`POST`,`/api/config/keurmeester`,e)}testProvider(e){return this.request(`GET`,`/api/models/test?provider=${encodeURIComponent(e)}`)}listProviderModels(e,t){let n=t?.refresh?`&refresh=1`:``;return this.request(`GET`,`/api/models?provider=${encodeURIComponent(e)}${n}`)}listChannels(){return this.request(`GET`,`/api/channels`)}sendChannelMessage(e){return this.request(`POST`,`/api/channels/send`,e)}testChannel(e){return this.request(`POST`,`/api/channels/${encodeURIComponent(e)}/test`)}listOAuthClients(){return this.request(`GET`,`/api/oauth-clients`)}putOAuthClient(e,t){return this.request(`PUT`,`/api/oauth-clients/${encodeURIComponent(e)}`,t)}deleteOAuthClient(e){return this.request(`DELETE`,`/api/oauth-clients/${encodeURIComponent(e)}`)}createProjectPreviewUrl(e,t){return this.createPreviewUrl(`artifacts`,e,t)}createProjectWorkspacePreviewUrl(e,t){return this.createPreviewUrl(`workspace`,e,t)}createProjectTypePreviewUrl(e,t){return this.createPreviewUrl(`type`,e,t)}async createPreviewUrl(e,t,n){let r=await this.request(`POST`,`/api/projects/${encodeURIComponent(t)}/preview-capability`,{source:e,path:n});return{...r,url:new URL(r.url,this.baseUrl).toString()}}checkProjectPage(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/page-check`,{path:t})}reportProjectPreviewLog(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/preview-log`,{entries:t})}async uploadProjectAttachment(e,t,n){let r=`${this.baseUrl}/api/projects/${encodeURIComponent(e)}/attachments`,i=t instanceof Blob||t instanceof Uint8Array?t:new Uint8Array(t),a=await this.fetchImpl(r,{method:`POST`,headers:{"content-type":n,Authorization:`Bearer ${this.token}`},body:i});if(!a.ok){let e=await a.text().catch(()=>``);throw Error(`upload failed (${a.status}): ${e}`)}return a.json()}listProjectAttachments(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/attachments`)}deleteProjectAttachment(e,t){return this.request(`DELETE`,`/api/projects/${encodeURIComponent(e)}/attachments/${encodeURIComponent(t)}`)}async fetchProjectAttachment(e,t){let n=`${this.baseUrl}/api/projects/${encodeURIComponent(e)}/attachments/${encodeURIComponent(t)}`,r=await this.fetchImpl(n,{headers:{Authorization:`Bearer ${this.token}`}});if(!r.ok)throw Error(`attachment fetch failed: ${r.status}`);return r.blob()}async uploadSessionImage(e,t,n,r){let i=`${this.baseUrl}/api/projects/${encodeURIComponent(e)}/sessions/${encodeURIComponent(t)}/images`,a=n instanceof Blob||n instanceof Uint8Array?n:new Uint8Array(n),o=await this.fetchImpl(i,{method:`POST`,headers:{"content-type":r,Authorization:`Bearer ${this.token}`},body:a});if(!o.ok){let e=await o.text().catch(()=>``);throw Error(`upload failed (${o.status}): ${e}`)}return o.json()}listSessionImages(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/sessions/${encodeURIComponent(t)}/images`)}deleteSessionImage(e,t,n){return this.request(`DELETE`,`/api/projects/${encodeURIComponent(e)}/sessions/${encodeURIComponent(t)}/images/${encodeURIComponent(n)}`)}async fetchProjectArtifactBlob(e,t){let n=`${this.baseUrl}/api/projects/${encodeURIComponent(e)}/artifacts/read?path=${encodeURIComponent(t)}&raw=1`,r=await this.fetchImpl(n,{headers:{Authorization:`Bearer ${this.token}`}});if(!r.ok)throw Error(`artifact fetch failed: ${r.status}`);return r.blob()}async fetchProjectWorkspaceBlob(e,t){let n=`${this.baseUrl}/api/projects/${encodeURIComponent(e)}/workspace/read?path=${encodeURIComponent(t)}&raw=1`,r=await this.fetchImpl(n,{headers:{Authorization:`Bearer ${this.token}`}});if(!r.ok)throw Error(`workspace fetch failed: ${r.status}`);return r.blob()}async fetchSessionImage(e,t,n){let r=`${this.baseUrl}/api/projects/${encodeURIComponent(e)}/sessions/${encodeURIComponent(t)}/images/${encodeURIComponent(n)}`,i=await this.fetchImpl(r,{headers:{Authorization:`Bearer ${this.token}`}});if(!i.ok)throw Error(`image fetch failed: ${i.status}`);return i.blob()}getCopilotUser(){return this.request(`GET`,`/api/system/copilot-user`)}startGitHubLogin(){return this.request(`POST`,`/api/system/github-login/start`,{})}pollGitHubLogin(e){return this.request(`POST`,`/api/system/github-login/poll`,{deviceCode:e})}gitHubLogout(){return this.request(`POST`,`/api/system/github-logout`,{})}getGitHubIdentity(){return this.request(`GET`,`/api/system/github-identity`)}listGitHubRepos(){return this.request(`GET`,`/api/system/github-repos`)}previewGitHubRepo(e,t){return this.request(`POST`,`/api/system/github-repo-preview`,{url:e},void 0,t)}previewProjectAbout(e,t){return this.request(`POST`,`/api/projects/preview-about`,e,void 0,t)}previewFolder(e){return this.request(`POST`,`/api/projects/preview-folder`,{path:e})}listCatalogItems(e){return this.request(`GET`,`/api/catalog/${e}`)}listProjectCraftbooks(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/craftbooks`)}getCatalogItem(e,t,n){let r=new URLSearchParams;n?.source&&r.set(`source`,n.source),n?.version&&r.set(`version`,n.version);let i=r.toString()?`?${r.toString()}`:``;return this.request(`GET`,`/api/catalog/${e}/${encodeURIComponent(t)}${i}`)}listCatalogItemVersions(e,t,n){let r=n?`?source=${encodeURIComponent(n)}`:``;return this.request(`GET`,`/api/catalog/${e}/${encodeURIComponent(t)}/versions${r}`)}async fetchCatalogFile(e){let t=await this.fetchImpl(`${this.baseUrl}${e}`,{headers:{Authorization:`Bearer ${this.token}`}});if(!t.ok)throw Error(`catalog file fetch failed: ${t.status}`);return t.blob()}createGezelFromTemplate(e,t){return this.request(`POST`,`/api/catalog/gezel-template/${encodeURIComponent(e)}/install`,t)}installToolset(e,t){return this.request(`POST`,`/api/catalog/toolset/${encodeURIComponent(e)}/install`,t)}importCustomMcpConfig(e){return this.request(`POST`,`/api/catalog/custom-toolsets/import`,e)}getToolsetConfig(e){return this.request(`GET`,`/api/toolset/${encodeURIComponent(e)}/config`)}updateToolsetConfig(e,t){return this.request(`PUT`,`/api/toolset/${encodeURIComponent(e)}/config`,t)}uninstallToolset(e,t){return this.request(`DELETE`,`/api/catalog/toolset/${encodeURIComponent(e)}/install?${Ns(t)}`)}listInstalledToolsets(e){return this.request(`GET`,`/api/catalog/installed-toolsets?${Ns(e)}`)}ollamaStatus(){return this.request(`GET`,`/api/ollama/status`)}ollamaProbe(){return this.request(`GET`,`/api/ollama/probe`)}ollamaDetect(){return this.request(`GET`,`/api/ollama/detect`)}ollamaStart(){return this.request(`POST`,`/api/ollama/start`)}listPendingOllamaPulls(){return this.request(`GET`,`/api/ollama/pending-pulls`)}clearPendingOllamaPull(e){return this.request(`DELETE`,`/api/ollama/pending-pulls/${encodeURIComponent(e)}`)}getMemoryProfile(){return this.request(`GET`,`/api/system/memory`)}getMachineMemoryUsage(){return this.request(`GET`,`/api/system/memory/usage`)}checkModelDownloadSpace(e){return this.request(`POST`,`/api/system/model-download-preflight`,e)}getSystemDiagnostics(e){return this.request(`GET`,`/api/system/diagnostics`,void 0,void 0,e)}getSystemHomeInfo(e){return this.request(`GET`,`/api/system/home`,void 0,void 0,e)}deleteOllamaModel(e){return this.request(`DELETE`,`/api/ollama/models/${encodeURIComponent(e)}`)}listLlamaCppModels(){return this.request(`GET`,`/api/llama-cpp/models`)}listIncompleteLlamaCppModels(){return this.request(`GET`,`/api/llama-cpp/incomplete`)}async exportModelBundle(e,t){let n=`${this.baseUrl}/api/model-bundles/${encodeURIComponent(e)}/${encodeURIComponent(t)}/export`,r=await this.fetchImpl(n,{headers:{Authorization:`Bearer ${this.token}`}});if(!r.ok){let e=await r.text().catch(()=>``);throw Error(`model export failed (${r.status}): ${e}`)}return r}async scanModelBundle(e){let t=e instanceof Blob||e instanceof ReadableStream||e instanceof Uint8Array?e:new Uint8Array(e),n=t instanceof ReadableStream,r=await this.fetchImpl(`${this.baseUrl}/api/model-bundles/imports/scan`,{method:`POST`,headers:{Authorization:`Bearer ${this.token}`,"Content-Type":`application/vnd.gezel.model+zip`},body:t,...n?{duplex:`half`}:{}});if(!r.ok){let e=await r.json().catch(()=>null);throw Error(e?.error??`model bundle scan failed (${r.status})`)}return r.json()}confirmModelBundleImport(e,t=!1){return this.request(`POST`,`/api/model-bundles/imports/confirm`,{importId:e,replace:t})}cancelModelBundleImport(e){return this.request(`DELETE`,`/api/model-bundles/imports/${encodeURIComponent(e)}`)}listSharedModelMigrationCandidates(e){let t=e?`?engine=${encodeURIComponent(e)}`:``;return this.request(`GET`,`/api/model-migrations/candidates${t}`)}moveModelToShared(e){return this.request(`POST`,`/api/model-migrations/move`,e)}listModelFitness(){return this.request(`GET`,`/api/model-fitness`)}runModelFitnessProbe(e,t){return this.request(`POST`,`/api/model-fitness/${encodeURIComponent(e)}/${encodeURIComponent(t)}/probe`)}listDs4Models(){return this.request(`GET`,`/api/ds4/models`)}listDs4ContextPlans(){return this.request(`GET`,`/api/ds4/context-plans`)}listIncompleteDs4Models(){return this.request(`GET`,`/api/ds4/incomplete`)}listDs4ActiveInstalls(){return this.request(`GET`,`/api/ds4/active-installs`)}deleteDs4Model(e){return this.request(`DELETE`,`/api/ds4/models/${encodeURIComponent(e)}`)}getDs4Log(e){let t=typeof e==`number`?`?bytes=${e}`:``;return this.request(`GET`,`/api/ds4/log${t}`)}getLlamaCppLog(e){let t=typeof e==`number`?`?bytes=${e}`:``;return this.request(`GET`,`/api/llama-cpp/log${t}`)}async installLlamaCppModel(e,t,n,r){return this.installGgufSse(`llama-cpp`,e,t,n,r)}async installDs4Model(e,t,n,r){return this.installGgufSse(`ds4`,e,t,n,r)}async installGgufSse(e,t,n,r,i){let a=i?.skipSha?`?skipSha=1`:``,o=`${this.baseUrl}/api/${e}/models/${encodeURIComponent(t)}/install${a}`;await $({...Z,url:o,method:`POST`,headers:{Authorization:`Bearer ${this.token}`},signal:r,fetch:this.fetchImpl,schema:Ds,onEvent:n,isTerminal:e=>e.type===`done`||e.type===`error`,label:`Install stream for "${t}"`})}deleteLlamaCppModel(e){return this.request(`DELETE`,`/api/llama-cpp/models/${encodeURIComponent(e)}`)}cancelLlamaCppModelInstall(e){return this.request(`DELETE`,`/api/llama-cpp/models/${encodeURIComponent(e)}/install`)}cancelDs4ModelInstall(e){return this.request(`DELETE`,`/api/ds4/models/${encodeURIComponent(e)}/install`)}listEvalScenarios(){return this.request(`GET`,`/api/eval/scenarios`)}getEvalAvailability(){return this.request(`GET`,`/api/eval/availability`)}listEvalResults(e){let t=new URLSearchParams;e?.scenarioId&&t.set(`scenario`,e.scenarioId),e?.limit!=null&&t.set(`limit`,String(e.limit));let n=t.toString()?`/api/eval/results?${t.toString()}`:`/api/eval/results`;return this.request(`GET`,n)}async runEval(e,t,n){await $({url:`${this.baseUrl}/api/eval/run`,method:`POST`,headers:{Authorization:`Bearer ${this.token}`,"Content-Type":`application/json`},body:JSON.stringify(e),signal:n,fetch:this.fetchImpl,schema:ks,onEvent:t,isTerminal:e=>e.type===`done`||e.type===`error`,label:`Eval stream`})}listLlamaCppActiveInstalls(){return this.request(`GET`,`/api/llama-cpp/active-installs`)}listMlxModels(){return this.request(`GET`,`/api/mlx/models`)}listIncompleteMlxModels(){return this.request(`GET`,`/api/mlx/incomplete`)}async installMlxModel(e,t,n,r){let i=r?.skipSha?`?skipSha=1`:``,a=`${this.baseUrl}/api/mlx/models/${encodeURIComponent(e)}/install${i}`;await $({...Z,url:a,method:`POST`,headers:{Authorization:`Bearer ${this.token}`},signal:n,fetch:this.fetchImpl,schema:Os,onEvent:t,isTerminal:e=>e.type===`done`||e.type===`error`,label:`Install stream for "${e}"`})}deleteMlxModel(e){return this.request(`DELETE`,`/api/mlx/models/${encodeURIComponent(e)}`)}cancelMlxModelInstall(e){return this.request(`DELETE`,`/api/mlx/models/${encodeURIComponent(e)}/install`)}listMlxActiveInstalls(){return this.request(`GET`,`/api/mlx/active-installs`)}getMlxRuntime(){return this.request(`GET`,`/api/mlx/runtime`)}resetMlxRuntime(){return this.request(`POST`,`/api/mlx/runtime/reset`)}getEngineStatus(){return this.request(`GET`,`/api/engines/status`)}getEngineRetention(){return this.request(`GET`,`/api/engines/retention`)}updateEngineRetention(e){return this.request(`PUT`,`/api/engines/retention`,{idleTimeoutMs:e})}updateEngineMemoryBudget(e){return this.request(`PUT`,`/api/engines/memory-budget`,{localEngineMemoryGb:e})}updateEngineRamSpillover(e){return this.request(`PUT`,`/api/engines/ram-spillover`,{allowRamSpillover:e})}unloadIdleEngine(e){return this.request(`POST`,`/api/engines/unload`,e)}getLlamaCppContextSizing(){return this.request(`GET`,`/api/engines/llama-cpp/context-sizing`)}updateLlamaCppContextSizing(e){return this.request(`PUT`,`/api/engines/llama-cpp/context-sizing`,{policy:e})}getModelContextOverrides(e){return this.request(`GET`,`/api/engines/${e}/model-context`)}updateModelContextOverride(e,t,n){return this.request(`PUT`,`/api/engines/${e}/model-context/${encodeURIComponent(t)}`,{contextTokens:n})}getNativeEngineStatus(){return this.request(`GET`,`/api/engines/binaries/status`)}async ensureNativeEngine(e,t,n,r){let i=n?`?variant=${encodeURIComponent(n)}`:``;await $({...Z,url:`${this.baseUrl}/api/engines/binaries/${encodeURIComponent(e)}/ensure${i}`,method:`POST`,headers:{Authorization:`Bearer ${this.token}`},signal:r,fetch:this.fetchImpl,schema:ma,onEvent:t,isTerminal:e=>e.type===`done`||e.type===`error`,label:`Native engine install stream for "${e}"`})}reconcileEnginePool(e){return this.request(`POST`,`/api/engines/reconcile`,e)}generateImage(e){return this.request(`POST`,`/api/image-gen/generate`,e)}listInstalledImageModels(){return this.request(`GET`,`/api/image-gen/models`)}getImageEngineStatus(){return this.request(`GET`,`/api/image-gen/engine-status`)}deleteImageModel(e){return this.request(`DELETE`,`/api/image-gen/models/${encodeURIComponent(e)}`)}async pullImageModel(e,t,n){return this.consumeImagePullSse(`${this.baseUrl}/api/image-gen/models/${encodeURIComponent(e)}/pull`,`POST`,t,n)}listActiveImagePulls(){return this.request(`GET`,`/api/image-gen/pulls`)}subscribeImagePull(e,t,n){return this.consumeImagePullSse(`${this.baseUrl}/api/image-gen/pulls/${encodeURIComponent(e)}/events`,`GET`,t,n)}cancelImagePull(e){return this.request(`DELETE`,`/api/image-gen/pulls/${encodeURIComponent(e)}`)}async consumeImagePullSse(e,t,n,r){await $({...Z,url:e,method:t,headers:{Authorization:`Bearer ${this.token}`},signal:r,fetch:this.fetchImpl,schema:Yo,onEvent:n,isTerminal:e=>e.type===`done`||e.type===`error`,label:`Image model pull stream`})}generateVideo(e){return this.request(`POST`,`/api/video-gen/generate`,e)}listInstalledVideoModels(){return this.request(`GET`,`/api/video-gen/models`)}getVideoEngineStatus(){return this.request(`GET`,`/api/video-gen/engine-status`)}deleteVideoModel(e){return this.request(`DELETE`,`/api/video-gen/models/${encodeURIComponent(e)}`)}async pullVideoModel(e,t,n){return this.consumeVideoPullSse(`${this.baseUrl}/api/video-gen/models/${encodeURIComponent(e)}/pull`,`POST`,t,n)}listActiveVideoPulls(){return this.request(`GET`,`/api/video-gen/pulls`)}subscribeVideoPull(e,t,n){return this.consumeVideoPullSse(`${this.baseUrl}/api/video-gen/pulls/${encodeURIComponent(e)}/events`,`GET`,t,n)}cancelVideoPull(e){return this.request(`DELETE`,`/api/video-gen/pulls/${encodeURIComponent(e)}`)}async consumeVideoPullSse(e,t,n,r){await $({...Z,url:e,method:t,headers:{Authorization:`Bearer ${this.token}`},signal:r,fetch:this.fetchImpl,schema:$o,onEvent:n,isTerminal:e=>e.type===`done`||e.type===`error`,label:`Video model pull stream`})}transcribeAudio(e){return this.request(`POST`,`/api/audio/transcribe`,e)}synthesizeSpeech(e){let{signal:t,...n}=e;return this.request(`POST`,`/api/audio/synthesize`,n,void 0,t)}getAudioEngineStatus(){return this.request(`GET`,`/api/audio/engine-status`)}listAudioCatalog(){return this.request(`GET`,`/api/audio/catalog`)}listInstalledSttModels(){return this.request(`GET`,`/api/audio/stt/models`)}listInstalledTtsModels(){return this.request(`GET`,`/api/audio/tts/models`)}deleteSttModel(e){return this.request(`DELETE`,`/api/audio/stt/models/${encodeURIComponent(e)}`)}deleteTtsModel(e){return this.request(`DELETE`,`/api/audio/tts/models/${encodeURIComponent(e)}`)}listAudioVoices(){return this.request(`GET`,`/api/audio/voices`)}async pullAudioModel(e,t,n,r){await $({...Z,url:`${this.baseUrl}/api/audio/${e}/models/${encodeURIComponent(t)}/pull`,method:`POST`,headers:{Authorization:`Bearer ${this.token}`},signal:r,fetch:this.fetchImpl,schema:is,onEvent:n,isTerminal:e=>e.type===`done`||e.type===`error`,label:`Audio model pull stream`})}getRecognitionHealth(){return this.request(`GET`,`/api/recognition/health`)}listRecognitionCatalog(){return this.request(`GET`,`/api/recognition/catalog`)}listInstalledRecognitionModels(){return this.request(`GET`,`/api/recognition/models`)}deleteRecognitionModel(e){return this.request(`DELETE`,`/api/recognition/models/${encodeURIComponent(e)}`)}clearRecognitionCache(){return this.request(`POST`,`/api/recognition/cache/clear`)}describeImage(e,t){let n=t?.projectId?`?project=${encodeURIComponent(t.projectId)}`:``;return this.request(`POST`,`/api/recognition/describe${n}`,e)}readImageMetadata(e,t){let n=t?.projectId?`?project=${encodeURIComponent(t.projectId)}`:``;return this.request(`POST`,`/api/recognition/metadata${n}`,e)}async pullRecognitionModel(e,t,n){await $({...Z,url:`${this.baseUrl}/api/recognition/models/${encodeURIComponent(e)}/pull`,method:`POST`,headers:{Authorization:`Bearer ${this.token}`},signal:n,fetch:this.fetchImpl,schema:an,onEvent:t,isTerminal:e=>e.type===`done`||e.type===`error`,label:`Recognition model pull stream`})}async pullOllamaModel(e,t,n){await $({...Z,url:`${this.baseUrl}/api/ollama/pull`,method:`POST`,headers:{Authorization:`Bearer ${this.token}`,"Content-Type":`application/json`},body:JSON.stringify({name:e}),signal:n,fetch:this.fetchImpl,schema:js,onEvent:t,isTerminal:e=>e.type===`done`,label:`Ollama pull stream`})}listGezels(){return this.request(`GET`,`/api/gezels`)}createGezel(e){return this.request(`POST`,`/api/gezels`,e)}resetGezelTemplates(){return this.request(`POST`,`/api/gezels/reset-templates`)}getGezel(e){return this.request(`GET`,`/api/gezels/${encodeURIComponent(e)}`)}deleteGezel(e){return this.request(`DELETE`,`/api/gezels/${encodeURIComponent(e)}`)}renameGezel(e,t){return this.request(`POST`,`/api/gezels/${encodeURIComponent(e)}/rename`,t)}updateGezelSettings(e,t){return this.request(`POST`,`/api/gezels/${encodeURIComponent(e)}/settings`,t)}updateGezelMarkdown(e,t){return this.request(`PUT`,`/api/gezels/${encodeURIComponent(e)}/md`,t)}getGezelGrowth(e){return this.request(`GET`,`/api/gezels/${encodeURIComponent(e)}/growth`)}refreshGezelGrowth(e){return this.request(`POST`,`/api/gezels/${encodeURIComponent(e)}/growth/refresh`)}acceptGrowthProposal(e,t){return this.request(`POST`,`/api/gezels/${encodeURIComponent(e)}/growth/accept`,{proposalId:t})}declineGrowthLevelUp(e,t){return this.request(`POST`,`/api/gezels/${encodeURIComponent(e)}/growth/decline`,t?{proposalId:t}:{})}retireGrowthTrait(e,t){return this.request(`DELETE`,`/api/gezels/${encodeURIComponent(e)}/growth/traits/${encodeURIComponent(t)}`)}updateGezelAbout(e,t){return this.request(`PUT`,`/api/gezels/${encodeURIComponent(e)}/about`,t)}updateGezelFixedFunctionDefaults(e,t){return this.request(`PUT`,`/api/gezels/${encodeURIComponent(e)}/fixed-function-defaults`,t)}generateGezelAbout(e,t={}){return this.request(`POST`,`/api/gezels/${encodeURIComponent(e)}/about/generate`,t)}generateGezelIcon(e,t={}){return this.request(`POST`,`/api/gezels/${encodeURIComponent(e)}/icon/generate`,t)}updateGezelIcon(e,t){return this.request(`PUT`,`/api/gezels/${encodeURIComponent(e)}/icon`,t)}listGezelIconHistory(e){return this.request(`GET`,`/api/gezels/${encodeURIComponent(e)}/icons`)}revertGezelIcon(e,t){return this.request(`POST`,`/api/gezels/${encodeURIComponent(e)}/icon/revert`,t)}getGezelPoppetje(e){return this.request(`GET`,`/api/gezels/${encodeURIComponent(e)}/poppetje`)}setGezelPoppetje(e,t){return this.request(`PUT`,`/api/gezels/${encodeURIComponent(e)}/poppetje`,t)}rerollGezelPoppetje(e,t={}){return this.request(`POST`,`/api/gezels/${encodeURIComponent(e)}/poppetje/reroll`,t)}messageGezel(e,t){return this.request(`POST`,`/api/gezels/${encodeURIComponent(e)}/message`,t)}askGezel(e){return this.request(`POST`,`/api/asks/request-and-wait`,e)}ensureGezel(e){return this.request(`POST`,`/api/gezels/ensure`,e)}rewriteText(e){return this.request(`POST`,`/api/ai/rewrite`,e)}async transformTextStream(e,t,n){await $({url:`${this.baseUrl}/api/ai/transform`,method:`POST`,headers:{Authorization:`Bearer ${this.token}`,"Content-Type":`application/json`},body:JSON.stringify(e),signal:n,fetch:this.fetchImpl,schema:As,onEvent:t,isTerminal:e=>e.type===`done`||e.type===`error`,label:`Transform stream`})}listChatSessions(e){let t=new URLSearchParams;e?.gezelId&&t.set(`gezel`,e.gezelId),e?.projectId&&t.set(`project`,e.projectId);let n=t.toString()?`?${t.toString()}`:``;return this.request(`GET`,`/api/sessions${n}`)}createChatSession(e){return this.request(`POST`,`/api/sessions`,e)}getChatSession(e){return this.request(`GET`,`/api/sessions/${encodeURIComponent(e)}`)}getChatSessionDebug(e,t){let n=new URLSearchParams;t?.atTimestamp&&n.set(`at`,t.atTimestamp),t?.limit&&n.set(`limit`,String(t.limit));let r=n.toString()?`?${n.toString()}`:``;return this.request(`GET`,`/api/sessions/${encodeURIComponent(e)}/debug${r}`)}sendToChatSession(e,t){let n=typeof t==`string`?{message:t}:t;return this.request(`POST`,`/api/sessions/${encodeURIComponent(e)}/send`,n)}listSessionTools(e){return this.request(`GET`,`/api/sessions/${encodeURIComponent(e)}/tools`)}listProjectTools(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/tools`)}searchProjectFiles(e,t){let n=t?`?prefix=${encodeURIComponent(t)}`:``;return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/index/files${n}`)}invokeSessionTool(e,t,n){return this.request(`POST`,`/api/sessions/${encodeURIComponent(e)}/tools/${encodeURIComponent(t)}/invoke`,{args:n??{}})}askUserQuestion(e){return this.request(`POST`,`/api/questions`,e)}listQuestions(e){let t=new URLSearchParams;e?.projectId&&t.set(`project`,e.projectId),e?.pending&&t.set(`pending`,`true`);let n=t.toString();return this.request(`GET`,`/api/questions${n?`?${n}`:``}`)}answerQuestion(e,t){return this.request(`POST`,`/api/questions/${encodeURIComponent(e)}/answer`,t)}listProjectsForGezel(e){return this.request(`GET`,`/api/gezels/${encodeURIComponent(e)}/projects`)}listMentionCandidates(e){let t=new URLSearchParams;e.projectId&&t.set(`project`,e.projectId),e.query&&t.set(`query`,e.query);let n=t.toString();return this.request(`GET`,`/api/gezels/mention-candidates${n?`?${n}`:``}`)}archiveChatSession(e){return this.request(`POST`,`/api/sessions/${encodeURIComponent(e)}/archive`)}deleteChatSession(e){return this.request(`DELETE`,`/api/sessions/${encodeURIComponent(e)}`)}getChatSessionInflight(e){return this.request(`GET`,`/api/sessions/${encodeURIComponent(e)}/inflight`)}listInflightTurns(e={}){let t=new URLSearchParams;e.projectId&&t.set(`project`,e.projectId),e.gezelId&&t.set(`gezel`,e.gezelId);let n=t.toString()?`?${t.toString()}`:``;return this.request(`GET`,`/api/sessions/inflight${n}`)}listSessionTelemetry(e={}){let t=new URLSearchParams;e.projectId&&t.set(`project`,e.projectId),e.gezelId&&t.set(`gezel`,e.gezelId);let n=t.toString()?`?${t.toString()}`:``;return this.request(`GET`,`/api/sessions/telemetry${n}`)}getSessionTelemetry(e){return this.request(`GET`,`/api/sessions/${encodeURIComponent(e)}/telemetry`)}cancelChatSessionTurn(e){return this.request(`POST`,`/api/sessions/${encodeURIComponent(e)}/cancel`)}emergencyStopChats(){return this.request(`POST`,`/api/sessions/emergency-stop`)}clearProjectErrors(e){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/clear-errors`)}listPoisonedProjects(){return this.request(`GET`,`/api/projects/poisoned`)}cancelQueuedMessage(e,t){return this.request(`DELETE`,`/api/sessions/${encodeURIComponent(e)}/queue/${encodeURIComponent(t)}`)}listSessionQueue(e){return this.request(`GET`,`/api/sessions/${encodeURIComponent(e)}/queue`)}updateQueuedMessage(e,t,n){return this.request(`PATCH`,`/api/sessions/${encodeURIComponent(e)}/queue/${encodeURIComponent(t)}`,n)}interruptChatSession(e,t){return this.request(`POST`,`/api/sessions/${encodeURIComponent(e)}/interrupt`,t)}saveMemory(e){return this.request(`POST`,`/api/memory/save`,e)}listMemoryDays(e,t){return this.request(`GET`,`/api/memory/days?scope=${e}&id=${encodeURIComponent(t)}`)}readMemoryDay(e,t,n){return this.request(`GET`,`/api/memory/day?scope=${e}&id=${encodeURIComponent(t)}&day=${encodeURIComponent(n)}`)}updateMemoryDay(e,t,n,r){return this.request(`PATCH`,`/api/memory/day?scope=${e}&id=${encodeURIComponent(t)}&day=${encodeURIComponent(n)}`,{content:r})}readMemorySummary(e,t){return this.request(`GET`,`/api/memory/summary?scope=${e}&id=${encodeURIComponent(t)}`)}readMemoryLessons(e){return this.request(`GET`,`/api/memory/lessons?gezelId=${encodeURIComponent(e)}`)}sessionEventsUrl(e){return`${this.baseUrl}/events/chat?session=${encodeURIComponent(e)}`}listProjectTimeline(e,t){let n=new URLSearchParams;t?.limit!=null&&n.set(`limit`,String(t.limit)),t?.before&&n.set(`before`,t.before),t?.gezelId&&n.set(`gezel`,t.gezelId),t?.taskRef&&n.set(`task`,t.taskRef);let r=n.toString()?`?${n.toString()}`:``;return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/timeline${r}`)}listGezelTimeline(e,t){let n=new URLSearchParams;t?.limit!=null&&n.set(`limit`,String(t.limit)),t?.before&&n.set(`before`,t.before),t?.projectId&&n.set(`project`,t.projectId);let r=n.toString()?`?${n.toString()}`:``;return this.request(`GET`,`/api/gezels/${encodeURIComponent(e)}/timeline${r}`)}listGlobalTimeline(e){let t=new URLSearchParams;e?.limit!=null&&t.set(`limit`,String(e.limit)),e?.before&&t.set(`before`,e.before);let n=t.toString()?`?${t.toString()}`:``;return this.request(`GET`,`/api/timeline${n}`)}projectEventsUrl(e){return`${this.baseUrl}/events/chat/project?project=${encodeURIComponent(e)}`}gezelEventsUrl(e){return`${this.baseUrl}/events/chat/gezel?gezel=${encodeURIComponent(e)}`}allEventsUrl(){return`${this.baseUrl}/events/chat/all`}listTerminalThreads(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/terminals`)}getTerminalThread(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/terminals/${encodeURIComponent(t)}`)}runTerminalCommand(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/terminals/run`,t)}deleteTerminalThread(e,t){return this.request(`DELETE`,`/api/projects/${encodeURIComponent(e)}/terminals/${encodeURIComponent(t)}`)}async cancelTerminalRun(e,t){try{await this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/terminals/runs/${encodeURIComponent(t)}/cancel`)}catch(e){if(e instanceof Error&&/\b404\b/.test(e.message))return;throw e}}sendTerminalInput(e,t,n){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/terminals/runs/${encodeURIComponent(t)}/input`,{text:n})}terminalEventsUrl(e){return`${this.baseUrl}/api/projects/${encodeURIComponent(e)}/terminals/events`}copilotLoginUrl(){return`${this.baseUrl}/api/system/copilot-login`}chatHistory(e,t=`default`){return this.request(`GET`,`/api/gezels/${encodeURIComponent(e)}/chat?project=${encodeURIComponent(t)}`)}sendChatMessage(e,t){return this.request(`POST`,`/api/gezels/${encodeURIComponent(e)}/chat/send`,t)}resetChat(e,t=`default`){return this.request(`POST`,`/api/gezels/${encodeURIComponent(e)}/chat/reset?project=${encodeURIComponent(t)}`)}chatEventsUrl(e,t=`default`){return`${this.baseUrl}/events/chat?gezel=${encodeURIComponent(e)}&project=${encodeURIComponent(t)}`}listProjects(e){return this.request(`GET`,`/api/projects${e?.rollup?`?rollup=1`:``}`)}listRemotes(){return this.request(`GET`,`/api/remotes`)}pairRemote(e){return this.request(`POST`,`/api/remotes/pair`,e)}inspectRemote(e){return this.request(`POST`,`/api/remotes/inspect`,e)}unpairRemote(e){return this.request(`DELETE`,`/api/remotes/${encodeURIComponent(e)}`)}getMachineServing(){return this.request(`GET`,`/api/machine-serving`)}updateMachineServing(e){return this.request(`PUT`,`/api/machine-serving`,e)}listMachineServingGrants(){return this.request(`GET`,`/api/machine-serving/grants`)}approveMachineServingGrant(e){return this.request(`POST`,`/api/machine-serving/grants/${encodeURIComponent(e)}/approve`)}denyMachineServingGrant(e){return this.request(`POST`,`/api/machine-serving/grants/${encodeURIComponent(e)}/deny`)}listMachineServingDevices(){return this.request(`GET`,`/api/machine-serving/devices`)}revokeMachineServingDevice(e){return this.request(`DELETE`,`/api/machine-serving/devices/${encodeURIComponent(e)}`)}listRemoteModels(e){return this.request(`GET`,`/api/remotes/${encodeURIComponent(e)}/models`)}createProject(e){return this.request(`POST`,`/api/projects`,e)}createTypedProject(e){return this.request(`POST`,`/api/projects/typed`,e)}getProject(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}`)}setProjectWorkingDir(e,t){return this.request(`PUT`,`/api/projects/${encodeURIComponent(e)}/working-dir`,{workingDir:t})}updateProject(e,t){return this.request(`PUT`,`/api/projects/${encodeURIComponent(e)}`,t)}deleteProject(e,t){let n=t?.removeWorkspace?`?removeWorkspace=1`:``;return this.request(`DELETE`,`/api/projects/${encodeURIComponent(e)}${n}`)}applyProjectType(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/apply-project-type`,t)}exportProjectType(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/project-types/export`,t)}importProjectType(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/project-types/import`,t)}listConnectorTypes(){return this.listCatalogItems(`connector-type`)}listConnectors(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/connectors`)}bindConnector(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/connectors/bind`,t)}syncConnector(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/connectors/${encodeURIComponent(t)}/sync`,{})}unbindConnector(e,t){return this.request(`DELETE`,`/api/projects/${encodeURIComponent(e)}/connectors/${encodeURIComponent(t)}`)}startConnectorOAuth(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/connectors/oauth/start`,t)}completeConnectorOAuth(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/connectors/oauth/complete`,t)}listConnectorActions(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/connectors/actions`)}queueConnectorAction(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/connectors/actions/${encodeURIComponent(t)}/queue`,{})}commitConnectorAction(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/connectors/actions/${encodeURIComponent(t)}/commit`,{})}discardConnectorAction(e,t){return this.request(`DELETE`,`/api/projects/${encodeURIComponent(e)}/connectors/actions/${encodeURIComponent(t)}`)}listProjectGezels(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/gezels`)}addGezelToProject(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/gezels`,{gezelId:t})}removeGezelFromProject(e,t){return this.request(`DELETE`,`/api/projects/${encodeURIComponent(e)}/gezels/${encodeURIComponent(t)}`)}listHistory(e){let t=new URLSearchParams;e?.projectId&&t.set(`project`,e.projectId),e?.gezelId&&t.set(`gezel`,e.gezelId),e?.kind&&t.set(`kind`,e.kind),e?.from&&t.set(`from`,e.from),e?.to&&t.set(`to`,e.to),e?.q&&t.set(`q`,e.q),e?.limit!=null&&t.set(`limit`,String(e.limit));let n=t.toString()?`?${t.toString()}`:``;return this.request(`GET`,`/api/history${n}`)}searchSessions(e){let t=new URLSearchParams;return t.set(`q`,e.q),e.gezel&&t.set(`gezel`,e.gezel),e.project&&t.set(`project`,e.project),e.maxResults!=null&&t.set(`maxResults`,String(e.maxResults)),this.request(`GET`,`/api/sessions/search?${t.toString()}`)}searchDocuments(e){let t=new URLSearchParams;return t.set(`q`,e.q),e.maxResults!=null&&t.set(`maxResults`,String(e.maxResults)),this.request(`GET`,`/api/documents/search?${t.toString()}`)}revealProject(e,t=`artifacts`){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/reveal?which=${t}`)}resolveReferenceFileLocation(e,t){let n=new URLSearchParams({kind:t.kind,path:t.path});return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/reference-file-location?${n.toString()}`)}revealProjectReference(e,t){let n=new URLSearchParams({kind:t.kind,path:t.path});return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/reveal-reference?${n.toString()}`)}previewReference(e,t){let n=new URLSearchParams({kind:t.kind,path:t.path});return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/reference-preview?${n.toString()}`)}listProjectArtifacts(e,t,n){let r=new URLSearchParams;t&&r.set(`path`,t),n&&r.set(`recursive`,`1`);let i=r.toString()?`?${r.toString()}`:``;return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/artifacts${i}`)}readProjectArtifact(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/artifacts/read?path=${encodeURIComponent(t)}`)}resolveProjectArtifact(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/artifacts/resolve?path=${encodeURIComponent(t)}`)}readProjectArtifactSlice(e,t,n){let r=new URLSearchParams({path:t});return n?.lines?r.set(`lines`,`${n.lines.start},${n.lines.count}`):typeof n?.head==`number`?r.set(`head`,String(n.head)):typeof n?.tail==`number`&&r.set(`tail`,String(n.tail)),this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/artifacts/slice?${r.toString()}`)}grepProjectArtifact(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/artifacts/grep`,t)}runPlaywrightScript(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/run-playwright`,t)}getSystemToolsetStatus(){return this.request(`GET`,`/api/system-toolsets/status`)}systemToolsetStatusStreamUrl(){return`${this.baseUrl}/api/system-toolsets/status/stream`}listSystemToolsetInstalls(){return this.request(`GET`,`/api/system-toolsets/installs`)}async installSystemToolset(e,t,n){await $({...Z,url:`${this.baseUrl}/api/system-toolsets/${encodeURIComponent(e)}/install`,method:`POST`,headers:{Authorization:`Bearer ${this.token}`},signal:n,fetch:this.fetchImpl,schema:Ha,onEvent:t,isTerminal:e=>e.type===`done`||e.type===`error`,label:`System toolset install stream for "${e}"`})}cancelSystemToolsetInstall(e){return this.request(`DELETE`,`/api/system-toolsets/${encodeURIComponent(e)}/install`)}getCopilotStatus(){return this.request(`GET`,`/api/system/copilot-status`)}getMlxRuntimeStatus(){return this.request(`GET`,`/api/mlx/runtime/status`)}mlxRuntimeStatusStreamUrl(){return`${this.baseUrl}/api/mlx/runtime/status/stream`}writeProjectArtifact(e,t,n,r){return this.request(`PUT`,`/api/projects/${encodeURIComponent(e)}/artifacts/write`,{path:t,content:n,...r?.gezelId?{gezelId:r.gezelId}:{},...r?.sessionId?{sessionId:r.sessionId}:{}})}async writeProjectArtifactBinary(e,t,n,r,i){let a=i?.createOnly?`&create=1`:``,o=`${this.baseUrl}/api/projects/${encodeURIComponent(e)}/artifacts/raw?path=${encodeURIComponent(t)}${a}`,s=n instanceof Blob||n instanceof Uint8Array?n:new Uint8Array(n),c=await this.fetchImpl(o,{method:`PUT`,headers:{"content-type":r,Authorization:`Bearer ${this.token}`},body:s});if(!c.ok){let e=await c.text().catch(()=>``);throw Error(`artifact binary write failed (${c.status}): ${e}`)}return c.json()}renderImage(e){return this.request(`POST`,`/api/render/image`,e)}deleteProjectArtifact(e,t){return this.request(`DELETE`,`/api/projects/${encodeURIComponent(e)}/artifacts/delete?path=${encodeURIComponent(t)}`)}listProjectWorkspace(e,t,n){let r=new URLSearchParams;t&&r.set(`path`,t),n&&r.set(`recursive`,`1`);let i=r.toString()?`?${r.toString()}`:``;return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/workspace${i}`)}listProjectWorkspaceHtmlPages(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/workspace/html-pages`)}readProjectWorkspaceFile(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/workspace/read?path=${encodeURIComponent(t)}`)}statProjectWorkspacePath(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/workspace/stat?path=${encodeURIComponent(t)}`)}writeProjectWorkspaceFile(e,t){return this.request(`PUT`,`/api/projects/${encodeURIComponent(e)}/workspace/file`,t)}async writeProjectWorkspaceBinary(e,t,n,r=`application/octet-stream`,i){let a=i?.createOnly?`&create=1`:``,o=`${this.baseUrl}/api/projects/${encodeURIComponent(e)}/workspace/raw?path=${encodeURIComponent(t)}${a}`,s=n instanceof Blob||n instanceof Uint8Array?n:new Uint8Array(n),c=await this.fetchImpl(o,{method:`PUT`,headers:{"content-type":r,Authorization:`Bearer ${this.token}`},body:s});if(!c.ok){let e=await c.text().catch(()=>``);throw Error(`workspace binary write failed (${c.status}): ${e}`)}return c.json()}copyArtifactToWorkspace(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/workspace/copy-from-artifact`,t)}fetchProjectRepo(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/workspace/fetch-repo`,t)}fetchProjectDiff(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/workspace/fetch-diff`,t)}replaceInProjectWorkspaceFile(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/workspace/replace`,t)}replaceLinesInProjectWorkspaceFile(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/workspace/replace-lines`,t)}applyPatchToProjectWorkspaceFile(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/workspace/patch`,t)}insertAtMarkerInProjectWorkspaceFile(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/workspace/insert-at-marker`,t)}rmProjectWorkspacePath(e,t,n={}){let r=new URLSearchParams;return r.set(`path`,t),n.recursive&&r.set(`recursive`,`1`),n.gezelId&&r.set(`gezelId`,n.gezelId),n.sessionId&&r.set(`sessionId`,n.sessionId),this.request(`DELETE`,`/api/projects/${encodeURIComponent(e)}/workspace/path?${r.toString()}`)}mkdirProjectWorkspace(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/workspace/mkdir`,t)}renameProjectWorkspacePath(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/workspace/rename`,t)}toolFetchUrl(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/fetch-url`,t)}toolWebSearch(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/web-search`,t)}toolWikipediaSearch(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/wikipedia-search`,t)}toolSearchFiles(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/search-files`,t)}toolReadWorkspaceFiles(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/read-files`,t)}toolFindFiles(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/find-files`,t)}toolOutlineFile(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/outline-file`,t)}toolFileContext(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/file-context`,t)}toolFileReview(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/file-review`,t)}toolListFileIssues(e,t={}){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/list-file-issues`,t)}getBoekwachterIssue(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/get-file-issue`,t)}updateBoekwachterIssue(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/update-file-issue`,t)}fixBoekwachterIssue(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/fix-file-issue`,t)}toolFindSymbol(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/find-symbol`,t)}toolReadSymbol(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/read-symbol`,t)}toolFindReferences(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/find-references`,t)}toolMapRepo(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/map-repo`,t)}toolFileMap(e,t={}){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/file-map`,t)}toolSearchDocs(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/search-docs`,t)}toolSearchCode(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/search-code`,t)}toolSecurityScan(e,t={}){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/security-scan`,t)}toolScanFindings(e,t={}){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/scan-findings`,t)}resolveSecurityFinding(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/resolve-finding`,t)}delegateSecurityFinding(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/delegate-finding`,t)}toolMapAttackSurface(e){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/map-attack-surface`,{})}toolListDependencies(e){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/list-dependencies`,{})}toolSecurityOverview(e){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/security-overview`,{})}toolTraceTaint(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/trace-taint`,t)}toolSearchImages(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/search-images`,t)}toolFindSimilarImages(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/find-similar-images`,t)}toolDescribeFolder(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/describe-folder`,t)}toolFindEntity(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/find-entity`,t)}toolListEntityMentions(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/list-entity-mentions`,t)}reportSystemIdle(e){return this.request(`POST`,`/api/system/idle`,{idleSeconds:e})}getNightShiftPowerIntent(){return this.request(`GET`,`/api/night-shift/power-intent`)}toolReadDocAsMarkdown(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/read-doc-as-markdown`,t)}toolDiffFiles(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/diff-files`,t)}toolReadImageBase64(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/read-image-base64`,t)}toolArchiveList(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/archive/list`,t)}toolArchiveExtract(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/archive/extract`,t)}toolRunGit(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tools/git`,t)}npmInstall(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/npm-install`,t)}runNodejsScript(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/run-nodejs-script`,t)}deriveFile(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/derive-file`,t)}listPackageScripts(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/package-scripts`)}runPackageScript(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/run-package-script`,t)}runNpx(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/run-npx`,t)}listWorkspaceWrites(e,t){let n=t?`?limit=${encodeURIComponent(String(t))}`:``;return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/workspace/writes${n}`)}installPackage(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/install`,t)}getProjectApprovals(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/approvals`)}getProjectGitStatus(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/git/status`)}cloneProjectGit(e){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/clone`)}pullProjectGit(e){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/pull`)}setProjectGitBranch(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/branch`,{branch:t})}createProjectGitBranch(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/branch`,{branch:t,create:!0})}listProjectGitBranches(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/git/branches`)}fetchProjectGit(e){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/fetch`)}commitProjectGit(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/commit`,{message:t})}pushProjectGit(e){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/push`)}getProjectGitChanges(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/git/changes`)}getProjectGitFileDiff(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/git/changes/diff?path=${encodeURIComponent(t)}`)}discardProjectGitChanges(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/discard`,t)}getProjectGitLog(e,t={}){let n=new URLSearchParams;t.limit!==void 0&&n.set(`limit`,String(t.limit)),t.skip!==void 0&&n.set(`skip`,String(t.skip));let r=n.toString();return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/git/log${r?`?${r}`:``}`)}getProjectGitCommit(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/git/log/${encodeURIComponent(t)}`)}syncProjectGit(e){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/sync`)}getProjectGitMergeState(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/git/merge`)}getProjectGitConflictVersions(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/git/merge/file?path=${encodeURIComponent(t)}`)}resolveProjectGitConflict(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/merge/resolve`,t)}completeProjectGitMerge(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/merge/complete`,t?{message:t}:{})}abandonProjectGitMerge(e){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/merge/abandon`)}suggestProjectGitMessage(e){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/ai/suggest-message`)}aiResolveProjectGitConflict(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/ai/merge`,{path:t})}getProjectIndex(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/index`)}getProjectIndexStatus(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/index/status`)}refreshProjectIndex(e){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/index/refresh`)}driveIndexEnrichment(e,t={}){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/index/enrich`,t)}getProjectSkills(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/index/skills`)}listProjectGitFiles(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/git/files`)}readProjectGitFile(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/git/files/read?path=${encodeURIComponent(t)}`)}startProjectCodeReview(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/reviews`,t)}listProjectCodeReviews(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/git/reviews`)}getProjectCodeReview(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/git/reviews/${encodeURIComponent(t)}`)}cancelProjectCodeReview(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/git/reviews/${encodeURIComponent(t)}/cancel`)}listProjectGitHubPulls(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/github/prs`)}getProjectGitHubPull(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/github/prs/${t}`)}listProjectGitHubPullFiles(e,t,n={}){let r=new URLSearchParams;n.offset!==void 0&&r.set(`offset`,String(n.offset)),n.limit!==void 0&&r.set(`limit`,String(n.limit)),n.includePatch!==void 0&&r.set(`includePatch`,String(n.includePatch));for(let e of n.paths??[])r.append(`path`,e);let i=r.size>0?`?${r.toString()}`:``;return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/github/prs/${t}/files${i}`)}listProjectGitHubPullComments(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/github/prs/${t}/comments`)}getProjectGitHubPullDiff(e,t,n={}){let r=new URLSearchParams;n.offset!==void 0&&r.set(`offset`,String(n.offset)),n.limit!==void 0&&r.set(`limit`,String(n.limit)),n.path&&r.set(`path`,n.path);let i=r.size>0?`?${r.toString()}`:``;return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/github/prs/${t}/diff${i}`)}createProjectGitHubPullComment(e,t,n){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/github/prs/${t}/comments`,{body:n})}createProjectGitHubPullRequest(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/github/prs`,t)}listProjectGitHubWorkflowRuns(e,t,n){let r=new URLSearchParams({branch:t});return n!==void 0&&r.set(`limit`,String(n)),this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/github/workflow-runs?${r.toString()}`)}getProjectGitHubChecks(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/github/checks?ref=${encodeURIComponent(t)}`)}search(e,t={}){let{signal:n,...r}=t;return this.request(`POST`,`/api/search`,{query:e,...r},void 0,n)}quickOpen(e,t={}){let n=new URLSearchParams({q:e});return t.limit&&n.set(`limit`,String(t.limit)),this.request(`GET`,`/api/search/quick?${n.toString()}`,void 0,void 0,t.signal)}getHandboekToc(){return this.request(`GET`,`/api/handboek/toc`)}getHandboekArticle(e,t={}){let n=t.mode?`?mode=${t.mode}`:``,r=e.split(`/`).map(encodeURIComponent).join(`/`);return this.request(`GET`,`/api/handboek/article/${r}${n}`)}getHandboekNarration(e,t={}){let n=t.voice?`?voice=${encodeURIComponent(t.voice)}`:``,r=e.split(`/`).map(encodeURIComponent).join(`/`);return this.request(`GET`,`/api/handboek/narration/article/${r}${n}`)}handboekHowDoI(e,t={}){let n=new URLSearchParams({q:e});return t.limit&&n.set(`limit`,String(t.limit)),this.request(`GET`,`/api/handboek/how-do-i?${n.toString()}`)}async fetchHandboekNarrationAudio(e){let t=`${this.baseUrl}/api/handboek/narration/audio/${e}`,n=await this.fetchImpl(t,{headers:{Authorization:`Bearer ${this.token}`}});if(!n.ok)throw Error(`narration fetch failed: ${n.status}`);return n.blob()}listDocuments(e,t){let n=new URLSearchParams;e&&n.set(`path`,e),t&&n.set(`recursive`,`1`);let r=n.toString()?`?${n.toString()}`:``;return this.request(`GET`,`/api/documents${r}`)}readDocument(e){return this.request(`GET`,`/api/documents/read?path=${encodeURIComponent(e)}`)}writeDocument(e,t){return this.request(`PUT`,`/api/documents/write`,{path:e,content:t})}async writeDocumentBinary(e,t,n){let r=`${this.baseUrl}/api/documents/raw?path=${encodeURIComponent(e)}`,i=t instanceof Blob||t instanceof Uint8Array?t:new Uint8Array(t),a=await this.fetchImpl(r,{method:`PUT`,headers:{"content-type":n,Authorization:`Bearer ${this.token}`},body:i});if(!a.ok){let e=await a.text().catch(()=>``);throw Error(`document binary write failed (${a.status}): ${e}`)}return a.json()}async fetchDocumentBlob(e){let t=`${this.baseUrl}/api/documents/read?path=${encodeURIComponent(e)}&raw=1`,n=await this.fetchImpl(t,{headers:{Authorization:`Bearer ${this.token}`}});if(!n.ok)throw Error(`document fetch failed: ${n.status}`);return n.blob()}async exportDocumentMedia(e,t){let n=`${this.baseUrl}/api/document-media-export`,r=await this.fetchImpl(n,{method:`POST`,headers:{"content-type":`application/json`,Authorization:`Bearer ${this.token}`},body:JSON.stringify(e),signal:t});if(!r.ok){let e=`document media export failed (${r.status})`,t=await r.json().then(t=>t&&typeof t==`object`&&`error`in t&&typeof t.error==`string`?t.error:e).catch(()=>e);throw Error(t)}return r.blob()}deleteDocument(e){return this.request(`DELETE`,`/api/documents/delete?path=${encodeURIComponent(e)}`)}createDocumentFolder(e){return this.request(`POST`,`/api/documents/mkdir`,{path:e})}renameDocument(e,t){return this.request(`POST`,`/api/documents/rename`,{fromPath:e,toPath:t})}continueProject(e){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/continue`)}listTasks(e){let t=new URLSearchParams;e?.status&&t.set(`status`,e.status),e?.assignee&&t.set(`assignee`,e.assignee);let n=t.toString()?`?${t.toString()}`:``;return this.request(`GET`,`/api/tasks${n}`)}listProjectTasks(e,t){let n=new URLSearchParams;t?.status&&n.set(`status`,t.status),t?.assignee&&n.set(`assignee`,t.assignee);let r=n.toString()?`?${n.toString()}`:``;return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/tasks${r}`)}createTask(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tasks`,t)}getTask(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}`)}getTaskByRef(e){let t=ne(e);return t?this.getTask(t.projectId,t.num):Promise.reject(Error(`invalid task ref "${e}"`))}updateTask(e,t,n){return this.request(`PATCH`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}`,n)}setTaskStatus(e,t,n){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/status`,{status:n})}activateTask(e,t,n=!1){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/activate`,n?{force:!0}:{})}setTaskAssignee(e,t,n){return this.updateTask(e,t,{assignee:n})}addTaskStep(e,t,n,r){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/steps`,{...n,...r??{}})}activateTaskStep(e,t,n){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/steps/${encodeURIComponent(n)}/activate`)}completeTaskStep(e,t,n,r={}){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/steps/${encodeURIComponent(n)}/complete`,r)}updateTaskStep(e,t,n,r){return this.request(`PATCH`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/steps/${encodeURIComponent(n)}`,r)}removeTaskStep(e,t,n){return this.request(`DELETE`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/steps/${encodeURIComponent(n)}`)}reorderTaskSteps(e,t,n){return this.request(`PATCH`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/craftbook/steps/order`,{order:n})}updateTaskCraftbook(e,t,n){return this.request(`PATCH`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/craftbook`,n)}exportTaskCraftbook(e,t,n={}){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/export-craftbook`,n)}listTaskNotes(e,t,n){let r=n?`?step=${encodeURIComponent(n)}`:``;return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/notes${r}`)}appendTaskNote(e,t,n,r={}){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/notes`,n,r.actorGezelId?{"x-gezel-actor":r.actorGezelId}:void 0)}updateTaskNote(e,t,n,r,i={}){return this.request(`PATCH`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/notes/${encodeURIComponent(n)}`,r,i.actorGezelId?{"x-gezel-actor":i.actorGezelId}:void 0)}deleteTaskNote(e,t,n,r={}){return this.request(`DELETE`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/notes/${encodeURIComponent(n)}`,void 0,r.actorGezelId?{"x-gezel-actor":r.actorGezelId}:void 0)}listProjectScripts(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/scripts`)}runProjectScript(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/scripts/run`,t)}invokeProjectPageTool(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/page-invoke`,t)}invokeProjectPageRead(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/page-read`,t)}getProjectScriptRun(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/script-runs/${encodeURIComponent(t)}`)}getProjectScriptSource(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/scripts/source?name=${encodeURIComponent(t)}`)}saveProjectScriptSource(e,t){return this.request(`PUT`,`/api/projects/${encodeURIComponent(e)}/scripts/source`,t)}createProjectScript(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/scripts`,t)}draftProjectScript(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/scripts/draft`,t)}deleteProjectScript(e,t){return this.request(`DELETE`,`/api/projects/${encodeURIComponent(e)}/scripts/source?name=${encodeURIComponent(t)}`)}getSdkTypes(){return this.request(`GET`,`/api/sdk/types`)}listStandardScripts(){return this.request(`GET`,`/api/scripts/standard`)}getStandardScriptSource(e){return this.request(`GET`,`/api/scripts/standard/source?name=${encodeURIComponent(e)}`)}listUserScripts(){return this.request(`GET`,`/api/scripts/user`)}getUserScriptSource(e){return this.request(`GET`,`/api/scripts/user/source?name=${encodeURIComponent(e)}`)}saveUserScriptSource(e){return this.request(`PUT`,`/api/scripts/user/source`,e)}createUserScript(e){return this.request(`POST`,`/api/scripts/user`,e)}deleteUserScript(e){return this.request(`DELETE`,`/api/scripts/user/source?name=${encodeURIComponent(e)}`)}listAvailableCredentials(){return this.request(`GET`,`/api/credentials/available`)}listTaskSessions(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/sessions`)}listTaskChildren(e,t,n){let r=new URLSearchParams;n?.status&&r.set(`status`,n.status),n?.limit&&r.set(`limit`,String(n.limit));let i=r.toString()?`?${r.toString()}`:``;return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/children${i}`)}spawnTaskInstances(e,t,n={}){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/spawn`,n)}authHeader(){return{Authorization:`Bearer ${this.token}`}}getBaseUrl(){return this.baseUrl}getFetch(){return this.fetchImpl}listCraftbooks(e={}){let t=[];e.source&&t.push(`source=${e.source}`),e.projectId&&t.push(`projectId=${encodeURIComponent(e.projectId)}`);let n=t.length?`?${t.join(`&`)}`:``;return this.request(`GET`,`/api/craftbooks${n}`)}getCraftbook(e,t={}){let n=[];t.version&&n.push(`version=${encodeURIComponent(t.version)}`),t.source&&n.push(`source=${t.source}`),t.projectId&&n.push(`projectId=${encodeURIComponent(t.projectId)}`);let r=n.length?`?${n.join(`&`)}`:``;return this.request(`GET`,`/api/craftbooks/${encodeURIComponent(e)}${r}`)}suggestCraftbooks(e){return this.request(`POST`,`/api/craftbooks/suggest`,e)}getCraftbookDocument(e,t={}){let n=[];t.format&&n.push(`format=${t.format}`),t.version&&n.push(`version=${encodeURIComponent(t.version)}`),t.source&&n.push(`source=${t.source}`),t.projectId&&n.push(`projectId=${encodeURIComponent(t.projectId)}`);let r=n.length?`?${n.join(`&`)}`:``;return this.request(`GET`,`/api/craftbooks/${encodeURIComponent(e)}/document${r}`)}createCraftbookDocument(e){return this.request(`POST`,`/api/craftbooks/document`,e)}putCraftbookDocument(e,t){return this.request(`PUT`,`/api/craftbooks/${encodeURIComponent(e)}/document`,t)}getTaskCraftbookDocument(e,t,n={}){let r=n.format?`?format=${n.format}`:``;return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/craftbook/document${r}`)}putTaskCraftbookDocument(e,t,n){return this.request(`PUT`,`/api/projects/${encodeURIComponent(e)}/tasks/${t}/craftbook/document`,n)}listProjectLocalGezels(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/local-gezels`)}getProjectLocalGezel(e,t){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/local-gezels/${encodeURIComponent(t)}`)}createProjectLocalGezel(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/local-gezels`,t)}deleteProjectLocalGezel(e,t){return this.request(`DELETE`,`/api/projects/${encodeURIComponent(e)}/local-gezels/${encodeURIComponent(t)}`)}copyGezelToProject(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/local-gezels/copy`,t)}getProjectImportsPending(e){return this.request(`GET`,`/api/projects/${encodeURIComponent(e)}/imports/pending`)}approveProjectImport(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/imports/approve`,{skillSource:t})}rejectProjectImport(e,t){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/imports/reject`,{skillSource:t})}convertProjectImport(e,t,n){return this.request(`POST`,`/api/projects/${encodeURIComponent(e)}/imports/convert`,{skillSource:t,...n?.allowLlm===void 0?{}:{allowLlm:n.allowLlm}})}createCraftbook(e){return this.request(`POST`,`/api/craftbooks`,e)}updateCraftbook(e,t){return this.request(`PATCH`,`/api/craftbooks/${encodeURIComponent(e)}`,t)}deleteCraftbook(e){return this.request(`DELETE`,`/api/craftbooks/${encodeURIComponent(e)}`)}listCraftbookScripts(e){return this.request(`GET`,`/api/craftbooks/${encodeURIComponent(e)}/scripts`)}getCraftbookScriptSource(e,t){return this.request(`GET`,`/api/craftbooks/${encodeURIComponent(e)}/scripts/source?name=${encodeURIComponent(t)}`)}saveCraftbookScriptSource(e,t){return this.request(`PUT`,`/api/craftbooks/${encodeURIComponent(e)}/scripts/source`,t)}createCraftbookScript(e,t){return this.request(`POST`,`/api/craftbooks/${encodeURIComponent(e)}/scripts`,t)}deleteCraftbookScript(e,t){return this.request(`DELETE`,`/api/craftbooks/${encodeURIComponent(e)}/scripts/source?name=${encodeURIComponent(t)}`)}getProjectGithubStatus(...e){return this.getProjectGitStatus(...e)}cloneProjectGithub(...e){return this.cloneProjectGit(...e)}pullProjectGithub(...e){return this.pullProjectGit(...e)}setProjectGithubBranch(...e){return this.setProjectGitBranch(...e)}createProjectGithubBranch(...e){return this.createProjectGitBranch(...e)}listProjectGithubBranches(...e){return this.listProjectGitBranches(...e)}fetchProjectGithub(...e){return this.fetchProjectGit(...e)}commitProjectGithub(...e){return this.commitProjectGit(...e)}pushProjectGithub(...e){return this.pushProjectGit(...e)}getProjectGithubChanges(...e){return this.getProjectGitChanges(...e)}getProjectGithubFileDiff(...e){return this.getProjectGitFileDiff(...e)}discardProjectGithubChanges(...e){return this.discardProjectGitChanges(...e)}getProjectGithubLog(...e){return this.getProjectGitLog(...e)}getProjectGithubCommit(...e){return this.getProjectGitCommit(...e)}syncProjectGithub(...e){return this.syncProjectGit(...e)}getProjectGithubMergeState(...e){return this.getProjectGitMergeState(...e)}getProjectGithubConflictVersions(...e){return this.getProjectGitConflictVersions(...e)}resolveProjectGithubConflict(...e){return this.resolveProjectGitConflict(...e)}completeProjectGithubMerge(...e){return this.completeProjectGitMerge(...e)}abandonProjectGithubMerge(...e){return this.abandonProjectGitMerge(...e)}suggestProjectGithubMessage(...e){return this.suggestProjectGitMessage(...e)}aiResolveProjectGithubConflict(...e){return this.aiResolveProjectGitConflict(...e)}listProjectGithubFiles(...e){return this.listProjectGitFiles(...e)}readProjectGithubFile(...e){return this.readProjectGitFile(...e)}listProjectGithubPulls(...e){return this.listProjectGitHubPulls(...e)}getProjectGithubPull(...e){return this.getProjectGitHubPull(...e)}listProjectGithubPullFiles(...e){return this.listProjectGitHubPullFiles(...e)}listProjectGithubPullComments(...e){return this.listProjectGitHubPullComments(...e)}getProjectGithubPullDiff(...e){return this.getProjectGitHubPullDiff(...e)}createProjectGithubPullComment(...e){return this.createProjectGitHubPullComment(...e)}createProjectGithubPullRequest(...e){return this.createProjectGitHubPullRequest(...e)}listProjectGithubWorkflowRuns(...e){return this.listProjectGitHubWorkflowRuns(...e)}getProjectGithubChecks(...e){return this.getProjectGitHubChecks(...e)}startGithubLogin(...e){return this.startGitHubLogin(...e)}pollGithubLogin(...e){return this.pollGitHubLogin(...e)}getGithubIdentity(...e){return this.getGitHubIdentity(...e)}listGithubRepos(...e){return this.listGitHubRepos(...e)}previewGithubRepo(...e){return this.previewGitHubRepo(...e)}githubLogout(...e){return this.gitHubLogout(...e)}};function Ns(e){return e.kind===`shared`?`scope=shared`:e.kind===`system`?`scope=system`:e.kind===`project`?`scope=project&project=${encodeURIComponent(e.projectId)}`:`scope=gezel&gezel=${encodeURIComponent(e.gezelId)}`}export{vs as a,ys as c,bs as i,Ss as l,Ms as n,ws as o,us as r,Cs as s,Q as t};