[{"data":1,"prerenderedAt":501},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fv2\u002Fcognets\u002Ffolder\u002Fconfig":3},{"id":4,"title":5,"body":6,"description":494,"extension":495,"meta":496,"navigation":92,"path":497,"seo":498,"stem":499,"__hash__":500},"docs\u002Fdocs\u002Fv2\u002Fcognets\u002Ffolder\u002Fconfig.md","cognet.config.ts",{"type":7,"value":8,"toc":482},"minimark",[9,13,22,148,153,250,256,272,275,281,288,294,305,311,334,340,375,384,390,413,416,427,433,447,450,457,461,471,478],[10,11,5],"h1",{"id":12},"cognetconfigts",[14,15,16,17,21],"p",{},"Identity only. Pure data, no logic, no lifecycle. Behaviour lives in ",[18,19,20],"code",{},"src\u002Fmain.ts",", and\nthe compile step composes the two.",[23,24,29],"pre",{"className":25,"code":26,"language":27,"meta":28,"style":28},"language-ts shiki shiki-themes dark-plus","export default defineCognet({\n    name: \"zero\",\n    version: \"0.1.0\",\n    abi: \"9\",\n\n    mode: { kind: \"invocation\" },\n\n    \u002F\u002F runaway guard: a wake that hasn't converged in this many\n    \u002F\u002F render→infer→act ticks is a loop bug or a stuck model, not progress\n    maxTicksPerWake: 32,\n})\n","ts","",[18,30,31,51,65,76,87,94,112,117,124,130,142],{"__ignoreMap":28},[32,33,36,40,43,47],"span",{"class":34,"line":35},"line",1,[32,37,39],{"class":38},"sYbnZ","export",[32,41,42],{"class":38}," default",[32,44,46],{"class":45},"sCudf"," defineCognet",[32,48,50],{"class":49},"sTNBD","({\n",[32,52,54,58,62],{"class":34,"line":53},2,[32,55,57],{"class":56},"s3F5K","    name:",[32,59,61],{"class":60},"sKc5r"," \"zero\"",[32,63,64],{"class":49},",\n",[32,66,68,71,74],{"class":34,"line":67},3,[32,69,70],{"class":56},"    version:",[32,72,73],{"class":60}," \"0.1.0\"",[32,75,64],{"class":49},[32,77,79,82,85],{"class":34,"line":78},4,[32,80,81],{"class":56},"    abi:",[32,83,84],{"class":60}," \"9\"",[32,86,64],{"class":49},[32,88,90],{"class":34,"line":89},5,[32,91,93],{"emptyLinePlaceholder":92},true,"\n",[32,95,97,100,103,106,109],{"class":34,"line":96},6,[32,98,99],{"class":56},"    mode:",[32,101,102],{"class":49}," { ",[32,104,105],{"class":56},"kind:",[32,107,108],{"class":60}," \"invocation\"",[32,110,111],{"class":49}," },\n",[32,113,115],{"class":34,"line":114},7,[32,116,93],{"emptyLinePlaceholder":92},[32,118,120],{"class":34,"line":119},8,[32,121,123],{"class":122},"sOLPB","    \u002F\u002F runaway guard: a wake that hasn't converged in this many\n",[32,125,127],{"class":34,"line":126},9,[32,128,129],{"class":122},"    \u002F\u002F render→infer→act ticks is a loop bug or a stuck model, not progress\n",[32,131,133,136,140],{"class":34,"line":132},10,[32,134,135],{"class":56},"    maxTicksPerWake:",[32,137,139],{"class":138},"sDGX8"," 32",[32,141,64],{"class":49},[32,143,145],{"class":34,"line":144},11,[32,146,147],{"class":49},"})\n",[149,150,152],"h2",{"id":151},"fields","Fields",[154,155,156,172],"table",{},[157,158,159],"thead",{},[160,161,162,166,169],"tr",{},[163,164,165],"th",{},"Field",[163,167,168],{},"Required",[163,170,171],{},"What it declares",[173,174,175,189,201,213,225,238],"tbody",{},[160,176,177,183,186],{},[178,179,180],"td",{},[18,181,182],{},"name",[178,184,185],{},"yes",[178,187,188],{},"The cognet's own name. Its private store is namespaced by this.",[160,190,191,196,198],{},[178,192,193],{},[18,194,195],{},"version",[178,197,185],{},[178,199,200],{},"Artifact version.",[160,202,203,208,210],{},[178,204,205],{},[18,206,207],{},"abi",[178,209,185],{},[178,211,212],{},"The kernel ABI this cognet was built against.",[160,214,215,220,222],{},[178,216,217],{},[18,218,219],{},"mode",[178,221,185],{},[178,223,224],{},"How the scheduler wakes it.",[160,226,227,232,235],{},[178,228,229],{},[18,230,231],{},"wakeOn",[178,233,234],{},"no",[178,236,237],{},"Default wake mask. Absent means wake on everything.",[160,239,240,245,247],{},[178,241,242],{},[18,243,244],{},"maxTicksPerWake",[178,246,234],{},[178,248,249],{},"Hard safety bound for one wake. Defaults to 8.",[149,251,253,255],{"id":252},"abi-the-compatibility-contract",[18,254,207],{}," — the compatibility contract",[23,257,259],{"className":25,"code":258,"language":27,"meta":28,"style":28},"abi: \"9\"\n",[18,260,261],{"__ignoreMap":28},[32,262,263,266,269],{"class":34,"line":35},[32,264,207],{"class":265},"sqDPy",[32,267,268],{"class":49},": ",[32,270,271],{"class":60},"\"9\"\n",[14,273,274],{},"A cognet is versioned against the kernel the way a binary is versioned against syscalls.\nThis declares which contract it was written for.",[14,276,277,280],{},[18,278,279],{},"axon prepare"," checks it against the kernel the installed Axon provides and fails there,\nnaming both versions and the file to edit. A cognet built for an older ABI never\nhalf-loads.",[14,282,283,284,287],{},"This matters more now that cognets version independently of the CLI: an agent can pin\n",[18,285,286],{},"@you\u002Fmy-cognet@0.1.0"," while its Axon moves forward. The check is what turns that from a\nmysterious runtime failure into a clear prepare-time one.",[149,289,291,293],{"id":290},"mode-invocation-or-continuous",[18,292,219],{}," — invocation or continuous",[14,295,296,297,301,302,304],{},"Part of the cognet's own declared identity, deliberately ",[298,299,300],"strong",{},"not"," blueprint-overridable.\nSame trust direction as ",[18,303,207],{},": a cognet written for stimulus-driven wakes was never\nwritten to tolerate an empty-stimuli tick, so an agent author can't flip it from outside.",[14,306,307,310],{},[298,308,309],{},"Invocation"," — woken once per admitted stimulus arrival, handed the full diff\naccumulated since the last wake. If several stimuli arrived while the previous wake was\nrunning, they arrive together.",[23,312,314],{"className":25,"code":313,"language":27,"meta":28,"style":28},"mode: { kind: \"invocation\" }\n",[18,315,316],{"__ignoreMap":28},[32,317,318,320,323,326,328,331],{"class":34,"line":35},[32,319,219],{"class":265},[32,321,322],{"class":49},": { ",[32,324,325],{"class":265},"kind",[32,327,268],{"class":49},[32,329,330],{"class":60},"\"invocation\"",[32,332,333],{"class":49}," }\n",[14,335,336,339],{},[298,337,338],{},"Continuous"," — woken on a fixed clock regardless of whether anything arrived. An empty\ndiff is the ordinary steady state, not an edge case.",[23,341,343],{"className":25,"code":342,"language":27,"meta":28,"style":28},"mode: { kind: \"continuous\", tickMs: 8 }   \u002F\u002F 125Hz\n",[18,344,345],{"__ignoreMap":28},[32,346,347,349,351,353,355,358,361,364,366,369,372],{"class":34,"line":35},[32,348,219],{"class":265},[32,350,322],{"class":49},[32,352,325],{"class":265},[32,354,268],{"class":49},[32,356,357],{"class":60},"\"continuous\"",[32,359,360],{"class":49},", ",[32,362,363],{"class":265},"tickMs",[32,365,268],{"class":49},[32,367,368],{"class":138},"8",[32,370,371],{"class":49}," }   ",[32,373,374],{"class":122},"\u002F\u002F 125Hz\n",[14,376,377,378,383],{},"Continuous mode is declared but not yet implemented — selecting it throws today. See\n",[379,380,382],"a",{"href":381},"\u002Fdocs\u002Fv2\u002Fcognets\u002Fengine\u002Floop","The Loop",".",[149,385,387,389],{"id":386},"wakeon-the-wake-mask",[18,388,231],{}," — the wake mask",[23,391,393],{"className":25,"code":392,"language":27,"meta":28,"style":28},"wakeOn: [\"cognet:stimulus:text\", \"cognet:stimulus:field\"]\n",[18,394,395],{"__ignoreMap":28},[32,396,397,399,402,405,407,410],{"class":34,"line":35},[32,398,231],{"class":265},[32,400,401],{"class":49},": [",[32,403,404],{"class":60},"\"cognet:stimulus:text\"",[32,406,360],{"class":49},[32,408,409],{"class":60},"\"cognet:stimulus:field\"",[32,411,412],{"class":49},"]\n",[14,414,415],{},"Which entry types should wake this cognet. Absent means everything.",[14,417,418,419,423,424,426],{},"This is the cognet's ",[420,421,422],"em",{},"default",", and unlike ",[18,425,219],{}," it is overridable by the agent's\nblueprint — the cognet declares what it was built to handle, the agent narrows it for its\nown deployment.",[149,428,430,432],{"id":429},"maxticksperwake-the-runaway-guard",[18,431,244],{}," — the runaway guard",[23,434,436],{"className":25,"code":435,"language":27,"meta":28,"style":28},"maxTicksPerWake: 32\n",[18,437,438],{"__ignoreMap":28},[32,439,440,442,444],{"class":34,"line":35},[32,441,244],{"class":265},[32,443,268],{"class":49},[32,445,446],{"class":138},"32\n",[14,448,449],{},"A hard bound, not a scheduling mechanism. A wake that hasn't converged in this many ticks\nis a loop bug or a stuck model, not progress, and the host throws rather than spinning.",[14,451,452,453,456],{},"Strategy may stop earlier and usually does — ",[18,454,455],{},"zero"," typically converges in two or three\nticks. Defaults to 8 when omitted.",[149,458,460],{"id":459},"what-isnt-here","What isn't here",[14,462,463,464,467,468,383],{},"No engine selection, no model, no prompt, no policy, no paths. Those belong to the\n",[420,465,466],{},"agent",", in ",[18,469,470],{},"axon.config.ts",[14,472,473,474,383],{},"A cognet cannot read any of them. It declares who it is and how it wants to be woken;\neverything about the environment it runs in is on the other side of the\n",[379,475,477],{"href":476},"\u002Fdocs\u002Fv2\u002Fcognets\u002Fengine\u002Fkernel-contract","kernel contract",[479,480,481],"style",{},"html pre.shiki code .sYbnZ, html code.shiki .sYbnZ{--shiki-default:#C586C0}html pre.shiki code .sCudf, html code.shiki .sCudf{--shiki-default:#DCDCAA}html pre.shiki code .sTNBD, html code.shiki .sTNBD{--shiki-default:#D4D4D4}html pre.shiki code .s3F5K, html code.shiki .s3F5K{--shiki-default:#9CDCFE}html pre.shiki code .sKc5r, html code.shiki .sKc5r{--shiki-default:#CE9178}html pre.shiki code .sOLPB, html code.shiki .sOLPB{--shiki-default:#6A9955}html pre.shiki code .sDGX8, html code.shiki .sDGX8{--shiki-default:#B5CEA8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sqDPy, html code.shiki .sqDPy{--shiki-default:#C8C8C8}",{"title":28,"searchDepth":53,"depth":53,"links":483},[484,485,487,489,491,493],{"id":151,"depth":53,"text":152},{"id":252,"depth":53,"text":486},"abi — the compatibility contract",{"id":290,"depth":53,"text":488},"mode — invocation or continuous",{"id":386,"depth":53,"text":490},"wakeOn — the wake mask",{"id":429,"depth":53,"text":492},"maxTicksPerWake — the runaway guard",{"id":459,"depth":53,"text":460},"Identity, ABI version, and how the scheduler wakes this brain.","md",{},"\u002Fdocs\u002Fv2\u002Fcognets\u002Ffolder\u002Fconfig",{"title":5,"description":494},"docs\u002Fv2\u002Fcognets\u002Ffolder\u002Fconfig","EBOvHsdCMqs047Uq5sJ7kYsNT8UjxDz7xSCOVD0BTwY",1785156432108]