[{"data":1,"prerenderedAt":1364},["ShallowReactive",2],{"navigation_docs":3,"-reference-derive-methods":412,"-reference-derive-methods-surround":1359},[4,38,84,326,386],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":37},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,15,20,24,28,32],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-book-open",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":6},"Quick start: Nuxt","\u002Fgetting-started\u002Fquick-start-nuxt","1.getting-started\u002F3.quick-start-nuxt",{"title":25,"path":26,"stem":27,"icon":6},"Quick start: plain Vue","\u002Fgetting-started\u002Fquick-start-vue","1.getting-started\u002F4.quick-start-vue",{"title":29,"path":30,"stem":31,"icon":6},"Quick start: React","\u002Fgetting-started\u002Fquick-start-react","1.getting-started\u002F5.quick-start-react",{"title":33,"path":34,"stem":35,"icon":36},"Glossary","\u002Fgetting-started\u002Fglossary","1.getting-started\u002F6.glossary","i-lucide-book-a",false,{"title":39,"icon":40,"path":41,"stem":42,"children":43,"page":37},"Tutorial","i-lucide-graduation-cap","\u002Ftutorial","2.tutorial",[44,49,54,59,64,69,74,79],{"title":45,"path":46,"stem":47,"icon":48},"Tutorial: overview","\u002Ftutorial\u002Foverview","2.tutorial\u002F1.overview","i-lucide-map",{"title":50,"path":51,"stem":52,"icon":53},"Chapter 2: A simple editor","\u002Ftutorial\u002Fsimple-editor","2.tutorial\u002F2.simple-editor","i-lucide-pencil",{"title":55,"path":56,"stem":57,"icon":58},"Chapter 3: Compose features","\u002Ftutorial\u002Fcompose-features","2.tutorial\u002F3.compose-features","i-lucide-blocks",{"title":60,"path":61,"stem":62,"icon":63},"Chapter 4: Your own block, path A","\u002Ftutorial\u002Fown-block-path-a","2.tutorial\u002F4.own-block-path-a","i-lucide-square-plus",{"title":65,"path":66,"stem":67,"icon":68},"Chapter 5: Your own feature, path B","\u002Ftutorial\u002Fown-feature-path-b","2.tutorial\u002F5.own-feature-path-b","i-lucide-puzzle",{"title":70,"path":71,"stem":72,"icon":73},"Chapter 6: Backend and collaboration","\u002Ftutorial\u002Fbackend-and-collaboration","2.tutorial\u002F6.backend-and-collaboration","i-lucide-users",{"title":75,"path":76,"stem":77,"icon":78},"Chapter 7: AI","\u002Ftutorial\u002Fai","2.tutorial\u002F7.ai","i-lucide-sparkles",{"title":80,"path":81,"stem":82,"icon":83},"Chapter 8: The React surface","\u002Ftutorial\u002Freact-surface","2.tutorial\u002F8.react-surface","i-lucide-atom",{"title":85,"icon":14,"path":86,"stem":87,"children":88,"page":37},"Guides","\u002Fguides","3.guides",[89,93,98,103,108,112,116,121,126,130,134,139,144,149,154,159,164,169,174,179,184,189,194,199,204,209,213,218,223,228,233,237,242,247,251,256,261,266,271,276,281,286,291,295,302,307,311,316,321],{"title":90,"path":91,"stem":92,"icon":58},"Feature composition and entries","\u002Fguides\u002Fcomposition","3.guides\u002F1.composition",{"title":94,"path":95,"stem":96,"icon":97},"Media, mentions and transcript features","\u002Fguides\u002Fmedia-mentions-transcript","3.guides\u002F10.media-mentions-transcript","i-lucide-image",{"title":99,"path":100,"stem":101,"icon":102},"Authors and comments","\u002Fguides\u002Fauthors-and-comments","3.guides\u002F11.authors-and-comments","i-lucide-message-square-text",{"title":104,"path":105,"stem":106,"icon":107},"Themes (Obsidian)","\u002Fguides\u002Fthemes","3.guides\u002F12.themes","i-lucide-palette",{"title":109,"path":110,"stem":111,"icon":58},"Composites and the settings UI","\u002Fguides\u002Fcomposites","3.guides\u002F13.composites",{"title":113,"path":114,"stem":115,"icon":78},"AI","\u002Fguides\u002Fai","3.guides\u002F14.ai",{"title":117,"path":118,"stem":119,"icon":120},"Document tree","\u002Fguides\u002Fdocument-tree","3.guides\u002F15.document-tree","i-lucide-folder-tree",{"title":122,"path":123,"stem":124,"icon":125},"Markdown and code","\u002Fguides\u002Fmarkdown-and-code","3.guides\u002F16.markdown-and-code","i-lucide-file-code",{"title":127,"path":128,"stem":129,"icon":83},"Advanced editor in React","\u002Fguides\u002Fadvanced-react","3.guides\u002F17.advanced-react",{"title":131,"path":132,"stem":133,"icon":6},"Kitchen sink: learning path","\u002Fguides\u002Fadvanced-nuxt-example","3.guides\u002F18.advanced-nuxt-example",{"title":135,"path":136,"stem":137,"icon":138},"Production","\u002Fguides\u002Fproduction","3.guides\u002F19.production","i-lucide-server",{"title":140,"path":141,"stem":142,"icon":143},"Register the Nuxt module","\u002Fguides\u002Fnuxt-module","3.guides\u002F2.nuxt-module","i-lucide-package",{"title":145,"path":146,"stem":147,"icon":148},"Storage adapters, comment stores, Nitro host","\u002Fguides\u002Fstorage-adapters","3.guides\u002F20.storage-adapters","i-lucide-database",{"title":150,"path":151,"stem":152,"icon":153},"Migrating from #tiptap-editor","\u002Fguides\u002Fmigration","3.guides\u002F21.migration","i-lucide-arrow-right-left",{"title":155,"path":156,"stem":157,"icon":158},"Content tree mechanics","\u002Fguides\u002Fcontent-tree","3.guides\u002F22.content-tree","i-lucide-git-fork",{"title":160,"path":161,"stem":162,"icon":163},"Block capabilities, abilities and actions","\u002Fguides\u002Fblock-capabilities","3.guides\u002F23.block-capabilities","i-lucide-shield-check",{"title":165,"path":166,"stem":167,"icon":168},"Block types in code and JSON","\u002Fguides\u002Fblock-types","3.guides\u002F24.block-types","i-lucide-shapes",{"title":170,"path":171,"stem":172,"icon":173},"Derive methods and the Derivation index","\u002Fguides\u002Fderive-methods","3.guides\u002F25.derive-methods","i-lucide-git-branch-plus",{"title":175,"path":176,"stem":177,"icon":178},"Block properties and Property definitions","\u002Fguides\u002Fblock-properties","3.guides\u002F26.block-properties","i-lucide-sliders-horizontal",{"title":180,"path":181,"stem":182,"icon":183},"Image studio","\u002Fguides\u002Fimage-studio","3.guides\u002F27.image-studio","i-lucide-image-plus",{"title":185,"path":186,"stem":187,"icon":188},"Prüfung and Freigabestatus","\u002Fguides\u002Fpruefung","3.guides\u002F28.pruefung","i-lucide-stamp",{"title":190,"path":191,"stem":192,"icon":193},"Workspace: find, read, reference and embed Blocks across Documents","\u002Fguides\u002Fworkspace","3.guides\u002F29.workspace","i-lucide-network",{"title":195,"path":196,"stem":197,"icon":198},"EditorPorts: auth and storage","\u002Fguides\u002Feditor-ports","3.guides\u002F3.editor-ports","i-lucide-plug",{"title":200,"path":201,"stem":202,"icon":203},"Collections: an ordered list of Blocks","\u002Fguides\u002Fcollections","3.guides\u002F30.collections","i-lucide-list-checks",{"title":205,"path":206,"stem":207,"icon":208},"Data views: a query shown as table, list or board","\u002Fguides\u002Fdata-views","3.guides\u002F31.data-views","i-lucide-table-properties",{"title":210,"path":211,"stem":212,"icon":193},"Explore: backlinks, related Blocks and the trail","\u002Fguides\u002Fexplore","3.guides\u002F32.explore",{"title":214,"path":215,"stem":216,"icon":217},"Render: export a Block or a Document to a file","\u002Fguides\u002Frender","3.guides\u002F33.render","i-lucide-file-output",{"title":219,"path":220,"stem":221,"icon":222},"Importers: what a dropped file becomes","\u002Fguides\u002Fimporters","3.guides\u002F34.importers","i-lucide-file-input",{"title":224,"path":225,"stem":226,"icon":227},"Templates: start a Document from a Dokumentvorlage","\u002Fguides\u002Ftemplates","3.guides\u002F35.templates","i-lucide-file-stack",{"title":229,"path":230,"stem":231,"icon":232},"Citations","\u002Fguides\u002Fcitations","3.guides\u002F36.citations","i-lucide-quote",{"title":234,"path":235,"stem":236,"icon":163},"AI proposals and the export check","\u002Fguides\u002Fexport-check","3.guides\u002F37.export-check",{"title":238,"path":239,"stem":240,"icon":241},"Query: filter, sort, group and total Blocks","\u002Fguides\u002Fquery","3.guides\u002F38.query","i-lucide-list-filter",{"title":243,"path":244,"stem":245,"icon":246},"Edges: backlinks and authored connections","\u002Fguides\u002Fedges","3.guides\u002F39.edges","i-lucide-link-2",{"title":248,"path":249,"stem":250,"icon":163},"Server routes and authentication","\u002Fguides\u002Froutes-and-auth","3.guides\u002F4.routes-and-auth",{"title":252,"path":253,"stem":254,"icon":255},"Speech: text to audio, and subtitle files","\u002Fguides\u002Fspeech","3.guides\u002F41.speech","i-lucide-audio-lines",{"title":257,"path":258,"stem":259,"icon":260},"Graph: the Edges around a Block","\u002Fguides\u002Fgraph","3.guides\u002F42.graph","i-lucide-waypoints",{"title":262,"path":263,"stem":264,"icon":265},"PDF viewer: passages, anchors and quotes","\u002Fguides\u002Fpdf-viewer","3.guides\u002F43.pdf-viewer","i-lucide-file-search",{"title":267,"path":268,"stem":269,"icon":270},"Obsidian: import and export a vault","\u002Fguides\u002Fobsidian","3.guides\u002F44.obsidian","i-lucide-folder-input",{"title":272,"path":273,"stem":274,"icon":275},"Typst: render a Document as a PDF with citations","\u002Fguides\u002Ftypst","3.guides\u002F45.typst","i-lucide-file-text",{"title":277,"path":278,"stem":279,"icon":280},"Audio: read aloud, mixdown and ElevenLabs","\u002Fguides\u002Faudio","3.guides\u002F46.audio","i-lucide-audio-waveform",{"title":282,"path":283,"stem":284,"icon":285},"Slides: decks, slide layouts and exports","\u002Fguides\u002Fslides","3.guides\u002F47.slides","i-lucide-presentation",{"title":287,"path":288,"stem":289,"icon":290},"Knowledge graph: sources and concepts beside the Documents","\u002Fguides\u002Fknowledge-graph","3.guides\u002F49.knowledge-graph","i-lucide-share-2",{"title":292,"path":293,"stem":294,"icon":78},"AI configuration and secrets","\u002Fguides\u002Fai-configuration","3.guides\u002F5.ai-configuration",{"title":296,"path":297,"stem":298,"children":299,"icon":301},"Index on Postgres: typos, meaning and SQL pushdown","\u002Fguides\u002Findex-pg","3.guides\u002F50.index-pg",[300],{"title":296,"path":297,"stem":298,"icon":301},"i-lucide-database-zap",{"title":303,"path":304,"stem":305,"icon":306},"Charts: bar, line, pie and scatter over a query","\u002Fguides\u002Fcharts","3.guides\u002F51.charts","i-lucide-chart-column",{"title":308,"path":309,"stem":310,"icon":73},"Collaboration on the client","\u002Fguides\u002Fcollaboration","3.guides\u002F6.collaboration",{"title":312,"path":313,"stem":314,"icon":315},"Block UI (drag handle, hover actions)","\u002Fguides\u002Fblock-ui","3.guides\u002F7.block-ui","i-lucide-grip-vertical",{"title":317,"path":318,"stem":319,"icon":320},"Settings and app lifetime","\u002Fguides\u002Fsettings","3.guides\u002F8.settings","i-lucide-settings",{"title":322,"path":323,"stem":324,"icon":325},"Language","\u002Fguides\u002Flanguage","3.guides\u002F9.language","i-lucide-languages",{"title":327,"icon":14,"path":328,"stem":329,"children":330,"page":37},"Reference","\u002Freference","4.reference",[331,335,339,344,348,352,356,360,364,368,373,378,382],{"title":332,"path":333,"stem":334,"icon":143},"Public exports","\u002Freference\u002Fexports","4.reference\u002F1.exports",{"title":336,"path":337,"stem":338,"icon":173},"Derive method contract","\u002Freference\u002Fderive-methods","4.reference\u002F10.derive-methods",{"title":340,"path":341,"stem":342,"icon":343},"Changelog","\u002Freference\u002Fchangelog","4.reference\u002F11.changelog","i-lucide-history",{"title":345,"path":346,"stem":347,"icon":217},"Renderer port","\u002Freference\u002Frenderer-port","4.reference\u002F12.renderer-port",{"title":349,"path":350,"stem":351,"icon":255},"Speech port","\u002Freference\u002Fspeech-port","4.reference\u002F13.speech-port",{"title":353,"path":354,"stem":355,"icon":58},"Presets and features","\u002Freference\u002Fpresets-and-features","4.reference\u002F2.presets-and-features",{"title":357,"path":358,"stem":359,"icon":68},"Feature contract","\u002Freference\u002Ffeature-contract","4.reference\u002F3.feature-contract",{"title":361,"path":362,"stem":363,"icon":107},"CSS and UI-provider requirements","\u002Freference\u002Fcss-and-ui","4.reference\u002F4.css-and-ui",{"title":365,"path":366,"stem":367,"icon":148},"Vue-free advanced schema","\u002Freference\u002Fadvanced-schema","4.reference\u002F5.advanced-schema",{"title":369,"path":370,"stem":371,"icon":372},"Dependency rules","\u002Freference\u002Fdependency-rules","4.reference\u002F6.dependency-rules","i-lucide-git-branch",{"title":374,"path":375,"stem":376,"icon":377},"Commands","\u002Freference\u002Fcommands","4.reference\u002F7.commands","i-lucide-terminal",{"title":379,"path":380,"stem":381,"icon":163},"Block capability contract","\u002Freference\u002Fblock-capabilities","4.reference\u002F8.block-capabilities",{"title":383,"path":384,"stem":385,"icon":168},"Block type contract","\u002Freference\u002Fblock-types","4.reference\u002F9.block-types",{"title":387,"path":388,"stem":389,"children":390,"icon":393},"AI agents","\u002Fai-agents","5.ai-agents\u002F1.index",[391,394,398,402,407],{"title":392,"path":388,"stem":389,"icon":393},"Overview","i-lucide-bot",{"title":395,"path":396,"stem":397,"icon":198},"Integrate the editor","\u002Fai-agents\u002Fintegrate","5.ai-agents\u002F2.integrate",{"title":399,"path":400,"stem":401,"icon":68},"Add a block or feature","\u002Fai-agents\u002Fextend","5.ai-agents\u002F3.extend",{"title":403,"path":404,"stem":405,"icon":406},"Pitfalls and invariants","\u002Fai-agents\u002Finvariants","5.ai-agents\u002F4.invariants","i-lucide-shield-alert",{"title":408,"path":409,"stem":410,"icon":411},"Verify","\u002Fai-agents\u002Fverify","5.ai-agents\u002F5.verify","i-lucide-check-check",{"id":413,"title":336,"body":414,"description":1352,"extension":1353,"links":1354,"meta":1355,"navigation":1356,"path":337,"seo":1357,"stem":338,"__hash__":1358},"docs\u002F4.reference\u002F10.derive-methods.md",{"type":415,"value":416,"toc":1341},"minimark",[417,438,445,464,652,666,673,731,735,819,825,832,1025,1059,1063,1073,1170,1173],[418,419,420,421,425,426,429,430,433,434,437],"p",{},"The types come from ",[422,423,424],"code",{},"packages\u002Feditor\u002Fsrc\u002Fcore\u002Fderive.ts"," and ",[422,427,428],{},"core\u002Fderivation.ts"," and are exported from ",[422,431,432],{},"@skaile\u002Fforge-editor\u002Fcore",". For how to write a derive method, see ",[435,436,170],"a",{"href":171},".",[439,440,442],"h2",{"id":441},"derivemethod",[422,443,444],{},"DeriveMethod",[418,446,447,448,451,452,455,456,459,460,463],{},"One way to make a new block or text from a block. A Feature contributes methods in ",[422,449,450],{},"EditorFeature.deriveMethods","; ",[422,453,454],{},"defineEditor"," merges them in feature order into ",[422,457,458],{},"preset.deriveMethods"," (",[422,461,462],{},"DeriveRegistry",").",[465,466,467,483],"table",{},[468,469,470],"thead",{},[471,472,473,477,480],"tr",{},[474,475,476],"th",{},"Field",[474,478,479],{},"Type",[474,481,482],{},"Meaning",[484,485,486,502,520,534,552,570,585,600,622,637],"tbody",{},[471,487,488,494,499],{},[489,490,491],"td",{},[422,492,493],{},"id",[489,495,496],{},[422,497,498],{},"string",[489,500,501],{},"Unique across the preset. Also the id of the block action generated from the method.",[471,503,504,509,514],{},[489,505,506],{},[422,507,508],{},"label",[489,510,511],{},[422,512,513],{},"(ctx: FeatureContext) => string",[489,515,516,517,463],{},"Menu label, in the language of the surface (",[422,518,519],{},"ctx.t",[471,521,522,527,531],{},[489,523,524],{},[422,525,526],{},"icon",[489,528,529],{},[422,530,498],{},[489,532,533],{},"Iconify name.",[471,535,536,541,546],{},[489,537,538],{},[422,539,540],{},"ability",[489,542,543],{},[422,544,545],{},"Ability?",[489,547,548,549,463],{},"Shown only on blocks that have this ability (",[422,550,551],{},"BlockAction.ability",[471,553,554,559,564],{},[489,555,556],{},[422,557,558],{},"order",[489,560,561],{},[422,562,563],{},"number?",[489,565,566,567,463],{},"Position among the block actions (",[422,568,569],{},"BlockAction.order",[471,571,572,577,582],{},[489,573,574],{},[422,575,576],{},"placement",[489,578,579],{},[422,580,581],{},"BlockAction['placement']?",[489,583,584],{},"Where the action shows.",[471,586,587,592,597],{},[489,588,589],{},[422,590,591],{},"requires",[489,593,594],{},[422,595,596],{},"readonly string[]",[489,598,599],{},"Capability ids the original must all have. Every id must be declared by a Feature (or built in) when the preset is defined.",[471,601,602,607,612],{},[489,603,604],{},[422,605,606],{},"available",[489,608,609],{},[422,610,611],{},"(ctx: DeriveContext) => boolean?",[489,613,614,615,618,619,621],{},"Backend flags and per-block conditions (",[422,616,617],{},"ctx.ctx.backend.ai",", a readable source). Absent: always available where ",[422,620,591],{}," holds.",[471,623,624,629,634],{},[489,625,626],{},[422,627,628],{},"run",[489,630,631],{},[422,632,633],{},"(ctx: DeriveContext) => void",[489,635,636],{},"Does the work and writes the result, and for a Derived block its Derivation.",[471,638,639,644,649],{},[489,640,641],{},[422,642,643],{},"menu",[489,645,646],{},[422,647,648],{},"(ctx: DeriveContext) => MenuItem[]",[489,650,651],{},"For a method with sub-choices (derive into one of several Block types).",[418,653,654,655,425,657,659,660,662,663,665],{},"Exactly one of ",[422,656,628],{},[422,658,643],{}," is set; ",[422,661,454],{}," throws for neither or both, for a duplicate id and for a ",[422,664,591],{}," entry no Feature declares.",[667,668,670],"h3",{"id":669},"derivecontext",[422,671,672],{},"DeriveContext",[465,674,675,683],{},[468,676,677],{},[471,678,679,681],{},[474,680,476],{},[474,682,482],{},[484,684,685,695,705,717],{},[471,686,687,692],{},[489,688,689],{},[422,690,691],{},"editor",[489,693,694],{},"the editor",[471,696,697,702],{},[489,698,699],{},[422,700,701],{},"node",[489,703,704],{},"the original block",[471,706,707,712],{},[489,708,709],{},[422,710,711],{},"pos",[489,713,714,715],{},"the position right before ",[422,716,701],{},[471,718,719,724],{},[489,720,721],{},[422,722,723],{},"ctx",[489,725,726,727,730],{},"the ",[422,728,729],{},"FeatureContext"," of the surface (backend, public AI flags, settings, notices, translations)",[439,732,734],{"id":733},"registry-and-functions","Registry and functions",[465,736,737,747],{},[468,738,739],{},[471,740,741,744],{},[474,742,743],{},"Export",[474,745,746],{},"Does",[484,748,749,764,774,793],{},[471,750,751,755],{},[489,752,753],{},[422,754,462],{},[489,756,757,760,761],{},[422,758,759],{},"methods"," (feature order) and ",[422,762,763],{},"get(id)",[471,765,766,771],{},[489,767,768],{},[422,769,770],{},"createDeriveRegistry(methods)",[489,772,773],{},"builds a registry",[471,775,776,781],{},[489,777,778],{},[422,779,780],{},"deriveMethodsAt(editor, ctx, pos)",[489,782,783,784,786,787,789,790,792],{},"the methods that can run on the block at ",[422,785,711],{},": the block has every capability the method ",[422,788,591],{},", and ",[422,791,606],{}," holds. Empty without a block there or without a preset.",[471,794,795,800],{},[489,796,797],{},[422,798,799],{},"deriveActionsOf(preset, ctx)",[489,801,802,803,806,807,809,810,425,812,814,815,818],{},"one ",[422,804,805],{},"BlockAction"," per method, in the shape the block UI renders; ",[422,808,591],{},", ",[422,811,540],{},[422,813,606],{}," gate it. ",[422,816,817],{},"blockActionsOf"," includes them.",[439,820,822],{"id":821},"derivation",[422,823,824],{},"Derivation",[418,826,827,828,831],{},"The record in ",[422,829,830],{},"meta.derivation"," of a Derived block. The original keeps nothing.",[465,833,834,844],{},[468,835,836],{},[471,837,838,840,842],{},[474,839,476],{},[474,841,479],{},[474,843,482],{},[484,845,846,865,899,914,928,946,962,976,1006],{},[471,847,848,853,858],{},[489,849,850],{},[422,851,852],{},"from",[489,854,855],{},[422,856,857],{},"{ asset: string } | { block: string, document?: string }",[489,859,860,861,864],{},"The original: an uploaded asset by asset name, or a block by block ID. ",[422,862,863],{},"document"," is the Document the block lives in; absent = this Document.",[471,866,867,872,877],{},[489,868,869],{},[422,870,871],{},"method",[489,873,874],{},[422,875,876],{},"DerivationMethod",[489,878,879,880,809,883,809,886,809,889,809,892,809,895,898],{},"How it was made: ",[422,881,882],{},"'transcription'",[422,884,885],{},"'pdf-text'",[422,887,888],{},"'ocr'",[422,890,891],{},"'description'",[422,893,894],{},"'bibliography'",[422,896,897],{},"ai:\u003CtypeId>"," for a block derived by the model, or any string.",[471,900,901,906,911],{},[489,902,903],{},[422,904,905],{},"model",[489,907,908],{},[422,909,910],{},"string?",[489,912,913],{},"The model that made it.",[471,915,916,921,925],{},[489,917,918],{},[422,919,920],{},"createdAt",[489,922,923],{},[422,924,498],{},[489,926,927],{},"ISO timestamp.",[471,929,930,935,939],{},[489,931,932],{},[422,933,934],{},"inputHash",[489,936,937],{},[422,938,498],{},[489,940,941,942,945],{},"SHA-256 hex of the asset bytes or of the source block's Markdown; ",[422,943,944],{},"''"," when unknown.",[471,947,948,953,957],{},[489,949,950],{},[422,951,952],{},"outputHash",[489,954,955],{},[422,956,498],{},[489,958,959,960,945],{},"SHA-256 hex of the produced body's Markdown; ",[422,961,944],{},[471,963,964,969,973],{},[489,965,966],{},[422,967,968],{},"output",[489,970,971],{},[422,972,910],{},[489,974,975],{},"Asset name of the stored raw output (text\u002Fmarkdown).",[471,977,978,983,988],{},[489,979,980],{},[422,981,982],{},"inputs",[489,984,985],{},[422,986,987],{},"Record\u003Cstring, { from: DerivationSource, hash: string }>?",[489,989,990,991,994,995,425,997,999,1000,1002,1003,437],{},"The named inputs of an N-to-1 Derivation (",[422,992,993],{},"mixdown",", a summary of several Blocks). ",[422,996,852],{},[422,998,934],{}," then name the primary input, and ",[422,1001,934],{}," is ",[422,1004,1005],{},"derivationFingerprint",[471,1007,1008,1013,1018],{},[489,1009,1010],{},[422,1011,1012],{},"activity",[489,1014,1015],{},[422,1016,1017],{},"{ id: string, agent?: string, at?: string }?",[489,1019,1020,1021,1024],{},"The run that produced the Block (an AI request, a job); ",[422,1022,1023],{},"agent"," is a model or tool id.",[418,1026,1027,1030,1031,1034,1035,1038,1039,1042,1043,1046,1047,1050,1051,1054,1055,1058],{},[422,1028,1029],{},"DERIVATION_KEY"," is the ",[422,1032,1033],{},"meta"," key (",[422,1036,1037],{},"'derivation'","). ",[422,1040,1041],{},"derivationOf(node)"," reads a Derivation (",[422,1044,1045],{},"null"," without one). ",[422,1048,1049],{},"derivedChildrenOf(parent)"," lists the direct children of ",[422,1052,1053],{},"parent"," that are Derived blocks, with their child index. ",[422,1056,1057],{},"isForeignSource(derivation, documentId)"," tells whether it points at a block of another Document.",[439,1060,1062],{"id":1061},"derivation-index","Derivation index",[418,1064,1065,1068,1069,1072],{},[422,1066,1067],{},"derivationIndexOf(doc)"," builds the reverse index once per document version (memoised per ",[422,1070,1071],{},"doc"," node):",[465,1074,1075,1087],{},[468,1076,1077],{},[471,1078,1079,1085],{},[474,1080,1081,1082],{},"Member of ",[422,1083,1084],{},"DerivationIndex",[474,1086,482],{},[484,1088,1089,1099,1117,1141,1158],{},[471,1090,1091,1096],{},[489,1092,1093],{},[422,1094,1095],{},"derived",[489,1097,1098],{},"every Derived block with its position, in document order",[471,1100,1101,1106],{},[489,1102,1103],{},[422,1104,1105],{},"blockById(id)",[489,1107,1108,1111,1112,1114,1115],{},[422,1109,1110],{},"{ node, pos }"," of the block with block ID ",[422,1113,493],{}," (any depth), or ",[422,1116,1045],{},[471,1118,1119,1124],{},[489,1120,1121],{},[422,1122,1123],{},"assetBlocks(name)",[489,1125,726,1126,459,1129,1132,1133,1136,1137,1140],{},[422,1127,1128],{},"AssetBlock[]",[422,1130,1131],{},"{ node, pos, holder }",") that hold the stored asset ",[422,1134,1135],{},"name",", in document order; ",[422,1138,1139],{},"holder"," is the position and size of the block around the asset block",[471,1142,1143,1148],{},[489,1144,1145],{},[422,1146,1147],{},"derivedFromBlock(id)",[489,1149,1150,1151,1153,1154,1157],{},"the Derived blocks whose Derivation points at block ",[422,1152,493],{},", in this or any Document (",[422,1155,1156],{},"isForeignSource"," tells them apart)",[471,1159,1160,1165],{},[489,1161,1162],{},[422,1163,1164],{},"derivedFromAsset(name)",[489,1166,1167,1168],{},"the Derived blocks whose Derivation points at the stored asset ",[422,1169,1135],{},[418,1171,1172],{},"Functions on top of it:",[465,1174,1175,1185],{},[468,1176,1177],{},[471,1178,1179,1182],{},[474,1180,1181],{},"Function",[474,1183,1184],{},"Returns",[484,1186,1187,1207,1234,1299,1329],{},[471,1188,1189,1194],{},[489,1190,1191],{},[422,1192,1193],{},"derivedOf(doc, originalPos, documentId?)",[489,1195,726,1196,459,1199,1202,1203,1206],{},[422,1197,1198],{},"DerivedEntry[]",[422,1200,1201],{},"{ node, pos, derivation }",") made from the original at ",[422,1204,1205],{},"originalPos",", in document order. They point at its block ID or at an asset the original holds as a direct child (its Source media). A Derived block moved out of the original still counts; Derivations from another Document are not listed.",[471,1208,1209,1214],{},[489,1210,1211],{},[422,1212,1213],{},"derivationOriginOf(doc, derivedPos, documentId?)",[489,1215,1216,1219,1220,809,1223,1226,1227,1230,1231,1233],{},[422,1217,1218],{},"DerivationOrigin",": ",[422,1221,1222],{},"{ status: 'found', node, pos }",[422,1224,1225],{},"{ status: 'missing' }"," (the original was deleted) or ",[422,1228,1229],{},"{ status: 'foreign' }"," (another Document, not looked up); ",[422,1232,1045],{}," when the node is no Derived block",[471,1235,1236,1241],{},[489,1237,1238],{},[422,1239,1240],{},"derivationState(doc, derivedPos, bodyHash, documentId?, foreignHash?, inputHashOf?)",[489,1242,1243,1219,1246,1249,1250,1253,1254,1257,1258,1261,1262,1264,1265,1268,1269,451,1272,1274,1275,1277,1278,1281,1282,459,1285,1288,1289,451,1291,1293,1294,1296,1297,1233],{},[422,1244,1245],{},"DerivationState",[422,1247,1248],{},"source"," (the origin ",[422,1251,1252],{},"status","), ",[422,1255,1256],{},"stale"," (an original changed since: an asset's stored ",[422,1259,1260],{},"hash"," against ",[422,1263,934],{},", a Block of another Document through ",[422,1266,1267],{},"foreignHash",", each named input through ",[422,1270,1271],{},"inputHashOf(from)",[422,1273,1045],{}," for a block original in this Document, when unknown, and for ",[422,1276,982],{}," without ",[422,1279,1280],{},"inputHashOf",") and ",[422,1283,1284],{},"edited",[422,1286,1287],{},"bodyHash()"," differs from ",[422,1290,952],{},[422,1292,1045],{}," when ",[422,1295,952],{}," is unknown); ",[422,1298,1045],{},[471,1300,1301,1306],{},[489,1302,1303],{},[422,1304,1305],{},"derivedStateOf(state)",[489,1307,1308,459,1311,1314,1315,809,1318,809,1320,809,1322,1325,1326],{},[422,1309,1310],{},"DerivedStateId",[422,1312,1313],{},"'fresh' | 'stale' | 'edited' | 'missing' | 'foreign'","): the first that applies of ",[422,1316,1317],{},"missing",[422,1319,1256],{},[422,1321,1284],{},[422,1323,1324],{},"foreign"," (original in another Document, nothing known of it), else ",[422,1327,1328],{},"fresh",[471,1330,1331,1336],{},[489,1332,1333],{},[422,1334,1335],{},"derivationFingerprint({ method, inputs })",[489,1337,1338,1339],{},"SHA-256 hex of the method and the hash of every input by input name; independent of the order of the keys in ",[422,1340,982],{},{"title":1342,"searchDepth":1343,"depth":1343,"links":1344},"",2,[1345,1349,1350,1351],{"id":441,"depth":1343,"text":444,"children":1346},[1347],{"id":669,"depth":1348,"text":672},3,{"id":733,"depth":1343,"text":734},{"id":821,"depth":1343,"text":824},{"id":1061,"depth":1343,"text":1062},"DeriveMethod, DeriveContext, the derive registry, the Derivation record and the derivation index functions.","md",null,{},{"icon":173},{"title":336,"description":1352},"sm9IbxBvgKmU1FFN8eFVy2SNMWYE0eCUcnEaLHaGARo",[1360,1362],{"title":332,"path":333,"stem":334,"description":1361,"icon":143,"children":-1},"Every explicit subpath of @skaile\u002Fforge-editor and the names it exports.",{"title":340,"path":341,"stem":342,"description":1363,"icon":343,"children":-1},"Release history of @skaile\u002Fforge-editor on GitHub and the current version on npm.",1793178237135]