[{"data":1,"prerenderedAt":884},["ShallowReactive",2],{"navigation":3,"\u002Freference\u002Fcontracts":194,"\u002Freference\u002Fcontracts-surround":879},[4,18,31,64,81,102,111,132,149],{"title":5,"path":6,"stem":7,"children":8,"page":17},"Getting started","\u002Fgetting-started","1.getting-started",[9,13],{"title":10,"path":11,"stem":12},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":14,"path":15,"stem":16},"Run your first workflow","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F2.quickstart",false,{"title":19,"path":20,"stem":21,"children":22,"page":17},"Core concepts","\u002Fconcepts","2.concepts",[23,27],{"title":24,"path":25,"stem":26},"The platform model","\u002Fconcepts\u002Fplatform","2.concepts\u002F1.platform",{"title":28,"path":29,"stem":30},"Architecture and boundaries","\u002Fconcepts\u002Farchitecture","2.concepts\u002F2.architecture",{"title":32,"path":33,"stem":34,"children":35,"page":17},"Installation","\u002Finstallation","3.installation",[36,40,44,48,52,56,60],{"title":37,"path":38,"stem":39},"Overview and requirements","\u002Finstallation\u002Foverview","3.installation\u002F1.overview",{"title":41,"path":42,"stem":43},"Local evaluation","\u002Finstallation\u002Flocal-evaluation","3.installation\u002F2.local-evaluation",{"title":45,"path":46,"stem":47},"Install the server","\u002Finstallation\u002Fserver","3.installation\u002F3.server",{"title":49,"path":50,"stem":51},"Install a runner","\u002Finstallation\u002Frunner","3.installation\u002F4.runner",{"title":53,"path":54,"stem":55},"Verify the installation","\u002Finstallation\u002Fverification","3.installation\u002F5.verification",{"title":57,"path":58,"stem":59},"Upgrade the platform","\u002Finstallation\u002Fupgrades","3.installation\u002F6.upgrades",{"title":61,"path":62,"stem":63},"Guided installer","\u002Finstallation\u002Finstaller","3.installation\u002F7.installer",{"title":65,"path":66,"stem":67,"children":68,"page":17},"Build workflows","\u002Fworkflows","4.workflows",[69,73,77],{"title":70,"path":71,"stem":72},"Build a Definition","\u002Fworkflows\u002Fdefinitions","4.workflows\u002F0.definitions",{"title":74,"path":75,"stem":76},"Deploy and run workflows","\u002Fworkflows\u002Fruns","4.workflows\u002F1.runs",{"title":78,"path":79,"stem":80},"Inputs, context, and secrets","\u002Fworkflows\u002Finputs-and-secrets","4.workflows\u002F2.inputs-and-secrets",{"title":82,"path":83,"stem":84,"children":85,"page":17},"Run and recover","\u002Foperations","5.operations",[86,90,94,98],{"title":87,"path":88,"stem":89},"Monitor Runs","\u002Foperations\u002Fmonitoring","5.operations\u002F1.monitoring",{"title":91,"path":92,"stem":93},"Approve prepared steps","\u002Foperations\u002Fapprovals","5.operations\u002F2.approvals",{"title":95,"path":96,"stem":97},"Recover or cancel execution","\u002Foperations\u002Frecovery","5.operations\u002F3.recovery",{"title":99,"path":100,"stem":101},"Troubleshooting","\u002Foperations\u002Ftroubleshooting","5.operations\u002F4.troubleshooting",{"title":103,"path":104,"stem":105,"children":106,"page":17},"Action catalog","\u002Fcatalog","6.catalog",[107],{"title":108,"path":109,"stem":110},"Find and use Actions","\u002Fcatalog\u002Foverview","6.catalog\u002F1.overview",{"title":112,"path":113,"stem":114,"children":115,"page":17},"Administration","\u002Fadministration","7.administration",[116,120,124,128],{"title":117,"path":118,"stem":119},"Registries and Environments","\u002Fadministration\u002Fenvironments","7.administration\u002F2.environments",{"title":121,"path":122,"stem":123},"Manage runners","\u002Fadministration\u002Frunners","7.administration\u002F3.runners",{"title":125,"path":126,"stem":127},"Access and approval policies","\u002Fadministration\u002Faccess","7.administration\u002F4.access",{"title":129,"path":130,"stem":131},"Backups and upgrades","\u002Fadministration\u002Fmaintenance","7.administration\u002F5.maintenance",{"title":133,"path":134,"stem":135,"children":136,"page":17},"Develop Actions","\u002Factions","8.actions",[137,141,145],{"title":138,"path":139,"stem":140},"Build your first Action","\u002Factions\u002Fquickstart","8.actions\u002F1.quickstart",{"title":142,"path":143,"stem":144},"Local development","\u002Factions\u002Flocal-development","8.actions\u002F2.local-development",{"title":146,"path":147,"stem":148},"Publish an Action","\u002Factions\u002Fpublishing","8.actions\u002F3.publishing",{"title":150,"path":151,"stem":152,"children":153,"page":17},"Reference","\u002Freference","9.reference",[154,158,162,166,170,174,178,182,186,190],{"title":155,"path":156,"stem":157},"Operator CLI","\u002Freference\u002Foperator-cli","9.reference\u002F1.operator-cli",{"title":159,"path":160,"stem":161},"Installer CLI","\u002Freference\u002Finstaller-cli","9.reference\u002F10.installer-cli",{"title":163,"path":164,"stem":165},"Definition syntax","\u002Freference\u002Fdefinition","9.reference\u002F2.definition",{"title":167,"path":168,"stem":169},"CLI configuration","\u002Freference\u002Fconfiguration","9.reference\u002F3.configuration",{"title":171,"path":172,"stem":173},"API integration","\u002Freference\u002Fapi","9.reference\u002F4.api",{"title":175,"path":176,"stem":177},"Action CLI","\u002Freference\u002Faction-cli","9.reference\u002F5.action-cli",{"title":179,"path":180,"stem":181},"Action SDK","\u002Freference\u002Fsdk","9.reference\u002F6.sdk",{"title":183,"path":184,"stem":185},"Contracts and compatibility","\u002Freference\u002Fcontracts","9.reference\u002F7.contracts",{"title":187,"path":188,"stem":189},"Server configuration","\u002Freference\u002Fserver-configuration","9.reference\u002F8.server-configuration",{"title":191,"path":192,"stem":193},"Runner configuration","\u002Freference\u002Frunner-configuration","9.reference\u002F9.runner-configuration",{"id":195,"title":183,"body":196,"description":874,"extension":875,"meta":876,"navigation":438,"path":184,"seo":877,"stem":185,"__hash__":878},"docs\u002F9.reference\u002F7.contracts.md",{"type":197,"value":198,"toc":863},"minimark",[199,208,215,220,347,354,357,361,368,375,386,390,393,396,623,630,633,637,644,735,741,745,751,761,765,775,778,782,796,799,803,806,824,827,831,840,859],[200,201,202,203,207],"p",{},"Pyplines maintains structural contracts in the repository's ",[204,205,206],"code",{},"contracts\u002F"," directory.\nDefinitions, configuration documents, and Action records use JSON Schema Draft\n2020-12. The HTTP API uses OpenAPI 3.1. Behavioral specifications cover guarantees\nthat structural schemas cannot express, including approvals and recovery.",[200,209,210,211,214],{},"Contract publication begins with software releases containing this capability.\nOlder releases may have no downloadable contract bundle; use their running server's\n",[204,212,213],{},"\u002Fopenapi.json"," and retained documentation rather than applying a newer contract\nretroactively.",[216,217,219],"h2",{"id":218},"choose-the-appropriate-contract","Choose the appropriate contract",[221,222,223,239],"table",{},[224,225,226],"thead",{},[227,228,229,233,236],"tr",{},[230,231,232],"th",{},"Interface",[230,234,235],{},"Contract",[230,237,238],{},"Consumer",[240,241,242,256,269,282,295,308,321,334],"tbody",{},[227,243,244,248,253],{},[245,246,247],"td",{},"Workflow YAML",[245,249,250],{},[204,251,252],{},"definition\u002Fv1\u002Fdefinition.schema.json",[245,254,255],{},"Editors, workflow builders, validators",[227,257,258,261,266],{},[245,259,260],{},"Registry, Environment, policy files",[245,262,263],{},[204,264,265],{},"configuration\u002Fv1\u002F*.schema.json",[245,267,268],{},"Administrative tooling",[227,270,271,274,279],{},[245,272,273],{},"Installer configuration",[245,275,276],{},[204,277,278],{},"installation\u002Fv1\u002Finstallation.schema.json",[245,280,281],{},"Host provisioning tools",[227,283,284,287,292],{},[245,285,286],{},"Installer document",[245,288,289],{},[204,290,291],{},"installer\u002Fv1\u002Finstallation.schema.json",[245,293,294],{},"Multi-target installation tools",[227,296,297,300,305],{},[245,298,299],{},"Action image",[245,301,302],{},[204,303,304],{},"action\u002Fv1\u002Fmanifest.schema.json",[245,306,307],{},"Publishers and registry inspectors",[227,309,310,313,318],{},[245,311,312],{},"Action inputs\u002Fresults\u002Flogs",[245,314,315],{},[204,316,317],{},"action\u002Fv1\u002F*.schema.json",[245,319,320],{},"Runtime implementers",[227,322,323,326,331],{},[245,324,325],{},"HTTP requests and responses",[245,327,328],{},[204,329,330],{},"http\u002Fv1\u002Fopenapi.json",[245,332,333],{},"API clients and client generators",[227,335,336,339,344],{},[245,337,338],{},"Execution guarantees",[245,340,341],{},[204,342,343],{},"semantics\u002F*.md",[245,345,346],{},"Operators and integration implementers",[200,348,349,350,353],{},"Configuration files include ",[204,351,352],{},"name","; resource API requests obtain it from the URL.\nAPI responses remove registry credentials. Use OpenAPI for HTTP payloads rather\nthan assuming that a configuration-file schema describes the response.",[200,355,356],{},"Runtime envelopes are documented for compatible implementations. They do not\nprovide a public endpoint for submitting work directly to runners. Integrations\nstart Runs through the server API.",[216,358,360],{"id":359},"discover-published-contracts","Discover published contracts",[200,362,363,364,367],{},"The publisher maintains a machine-readable catalog at\n",[204,365,366],{},"https:\u002F\u002Fpyplines.dev\u002Fcontracts\u002Findex.json",". Each entry identifies a release group,\nversion, commit, immutable base URL, manifest, archive, and archive SHA-256.",[200,369,370,371,374],{},"The ",[204,372,373],{},"supported"," entries identify the selected platform\u002Ftooling tags and whether\ncontracts have been published for them. A newly published release does not\nimplicitly replace the supported combination. Follow the entry matching your\ninstallation rather than selecting the highest version string.",[200,376,377,378,381,382,385],{},"Release artifacts are also attached to the matching GitHub release as\n",[204,379,380],{},"contracts.tar.gz"," and ",[204,383,384],{},"contracts-manifest.json",". The manifest records file checksums,\ncanonical schema IDs, and source schema hashes. Platform bundles contain OpenAPI;\ntooling bundles carry their applicable schemas without a server API export.",[216,387,389],{"id":388},"validate-offline","Validate offline",[200,391,392],{},"Download and verify the selected archive against its release manifest\u002Fcatalog\nchecksum, then extract it into a trusted local directory. The bundled schemas are\nself-contained; validation does not fetch schema references over the network.",[200,394,395],{},"For example, in a Python environment with the contract-enabled operator CLI installed, validate\na parsed Definition against an extracted schema:",[397,398,404],"pre",{"className":399,"code":400,"filename":401,"language":402,"meta":403,"style":403},"language-python shiki shiki-themes pyplines-light pyplines-light pyplines-dark","import json\nfrom pathlib import Path\n\nfrom jsonschema import Draft202012Validator\nfrom referencing import Registry\nfrom pyplines_cli.documents import load\n\nschema = json.loads(\n    Path(\"contracts\u002Fdefinition\u002Fv1\u002Fdefinition.schema.json\").read_text()\n)\nDraft202012Validator.check_schema(schema)\ndefinition = load(Path(\"workflow.yaml\"))\nDraft202012Validator(schema, registry=Registry()).validate(definition)\n","validate_definition.py","python","",[204,405,406,419,433,440,453,466,486,491,511,538,544,562,590],{"__ignoreMap":403},[407,408,411,415],"span",{"class":409,"line":410},"line",1,[407,412,414],{"class":413},"sYpJS","import",[407,416,418],{"class":417},"smnRP"," json\n",[407,420,422,425,428,430],{"class":409,"line":421},2,[407,423,424],{"class":413},"from",[407,426,427],{"class":417}," pathlib ",[407,429,414],{"class":413},[407,431,432],{"class":417}," Path\n",[407,434,436],{"class":409,"line":435},3,[407,437,439],{"emptyLinePlaceholder":438},true,"\n",[407,441,443,445,448,450],{"class":409,"line":442},4,[407,444,424],{"class":413},[407,446,447],{"class":417}," jsonschema ",[407,449,414],{"class":413},[407,451,452],{"class":417}," Draft202012Validator\n",[407,454,456,458,461,463],{"class":409,"line":455},5,[407,457,424],{"class":413},[407,459,460],{"class":417}," referencing ",[407,462,414],{"class":413},[407,464,465],{"class":417}," Registry\n",[407,467,469,471,474,478,481,483],{"class":409,"line":468},6,[407,470,424],{"class":413},[407,472,473],{"class":417}," pyplines_cli",[407,475,477],{"class":476},"sgMYo",".",[407,479,480],{"class":417},"documents ",[407,482,414],{"class":413},[407,484,485],{"class":417}," load\n",[407,487,489],{"class":409,"line":488},7,[407,490,439],{"emptyLinePlaceholder":438},[407,492,494,497,500,503,505,508],{"class":409,"line":493},8,[407,495,496],{"class":417},"schema ",[407,498,499],{"class":413},"=",[407,501,502],{"class":417}," json",[407,504,477],{"class":476},[407,506,507],{"class":417},"loads",[407,509,510],{"class":476},"(\n",[407,512,514,517,520,523,527,529,532,535],{"class":409,"line":513},9,[407,515,516],{"class":417},"    Path",[407,518,519],{"class":476},"(",[407,521,522],{"class":476},"\"",[407,524,526],{"class":525},"sfDcV","contracts\u002Fdefinition\u002Fv1\u002Fdefinition.schema.json",[407,528,522],{"class":476},[407,530,531],{"class":476},").",[407,533,534],{"class":417},"read_text",[407,536,537],{"class":476},"()\n",[407,539,541],{"class":409,"line":540},10,[407,542,543],{"class":476},")\n",[407,545,547,550,552,555,557,560],{"class":409,"line":546},11,[407,548,549],{"class":417},"Draft202012Validator",[407,551,477],{"class":476},[407,553,554],{"class":417},"check_schema",[407,556,519],{"class":476},[407,558,559],{"class":417},"schema",[407,561,543],{"class":476},[407,563,565,568,570,573,575,578,580,582,585,587],{"class":409,"line":564},12,[407,566,567],{"class":417},"definition ",[407,569,499],{"class":413},[407,571,572],{"class":417}," load",[407,574,519],{"class":476},[407,576,577],{"class":417},"Path",[407,579,519],{"class":476},[407,581,522],{"class":476},[407,583,584],{"class":525},"workflow.yaml",[407,586,522],{"class":476},[407,588,589],{"class":476},"))\n",[407,591,593,595,597,599,602,605,607,610,613,616,618,621],{"class":409,"line":592},13,[407,594,549],{"class":417},[407,596,519],{"class":476},[407,598,559],{"class":417},[407,600,601],{"class":476},",",[407,603,604],{"class":417}," registry",[407,606,499],{"class":413},[407,608,609],{"class":417},"Registry",[407,611,612],{"class":476},"()).",[407,614,615],{"class":417},"validate",[407,617,519],{"class":476},[407,619,620],{"class":417},"definition",[407,622,543],{"class":476},[200,624,625,626,629],{},"This example uses the installed operator CLI's bounded YAML loader to reject\naliases, duplicate keys, and oversized files. A generic YAML loader alone does not\nprovide the platform's parsing protections. For ordinary local use,\n",[204,627,628],{},"pyplines validate workflow.yaml"," already uses its packaged structural schema.",[200,631,632],{},"Structural validation does not establish that an Action exists, that references\naddress earlier steps, or that the supplied credentials work. Deployment and\npreparation perform those additional checks.",[216,634,636],{"id":635},"configure-an-editor","Configure an editor",[200,638,639,640,643],{},"A YAML editor with schema associations can map workflow files to the extracted\n",[204,641,642],{},"definition.schema.json",". For editors supporting a YAML language-server modeline:",[397,645,649],{"className":646,"code":647,"filename":584,"language":648,"meta":403,"style":403},"language-yaml shiki shiki-themes pyplines-light pyplines-light pyplines-dark","# yaml-language-server: $schema=.\u002Fcontracts\u002Fdefinition\u002Fv1\u002Fdefinition.schema.json\napiVersion: pyplines\u002Fv1\nkind: Definition\nname: example\nsteps:\n  - name: first\n    uses: echo@2026.10.3\n    with:\n      message: Hello from operations\n","yaml",[204,650,651,657,668,678,687,695,708,718,725],{"__ignoreMap":403},[407,652,653],{"class":409,"line":410},[407,654,656],{"class":655},"sgrdR","# yaml-language-server: $schema=.\u002Fcontracts\u002Fdefinition\u002Fv1\u002Fdefinition.schema.json\n",[407,658,659,662,665],{"class":409,"line":421},[407,660,661],{"class":417},"apiVersion",[407,663,664],{"class":476},":",[407,666,667],{"class":525}," pyplines\u002Fv1\n",[407,669,670,673,675],{"class":409,"line":435},[407,671,672],{"class":417},"kind",[407,674,664],{"class":476},[407,676,677],{"class":525}," Definition\n",[407,679,680,682,684],{"class":409,"line":442},[407,681,352],{"class":417},[407,683,664],{"class":476},[407,685,686],{"class":525}," example\n",[407,688,689,692],{"class":409,"line":455},[407,690,691],{"class":417},"steps",[407,693,694],{"class":476},":\n",[407,696,697,700,703,705],{"class":409,"line":468},[407,698,699],{"class":476},"  -",[407,701,702],{"class":417}," name",[407,704,664],{"class":476},[407,706,707],{"class":525}," first\n",[407,709,710,713,715],{"class":409,"line":488},[407,711,712],{"class":417},"    uses",[407,714,664],{"class":476},[407,716,717],{"class":525}," echo@2026.10.3\n",[407,719,720,723],{"class":409,"line":493},[407,721,722],{"class":417},"    with",[407,724,694],{"class":476},[407,726,727,730,732],{"class":409,"line":513},[407,728,729],{"class":417},"      message",[407,731,664],{"class":476},[407,733,734],{"class":525}," Hello from operations\n",[200,736,370,737,740],{},[204,738,739],{},"echo"," image must be provided by your administrator before deployment. Editor\ncompletion and validation do not execute the workflow.",[216,742,744],{"id":743},"generate-an-api-client","Generate an API client",[200,746,747,748,750],{},"Point an OpenAPI 3.1-compatible client generator at the extracted\n",[204,749,330],{},". Its operation IDs are stable method\u002Fpath-based identifiers.\nIt describes operator bearer authentication separately from runner registration\ncredentials. Inspect error responses and Run states; an accepted request is not\nproof of completed execution.",[200,752,753,754,756,757,760],{},"The generated document served by ",[204,755,213],{}," uses the same route registration\nas the release export. Use a running server's document when diagnosing its exact\nversion. See ",[758,759,171],"a",{"href":172}," for interaction guidance.",[216,762,764],{"id":763},"inspect-an-individual-action","Inspect an individual Action",[200,766,767,768,381,771,774],{},"The shared manifest schema describes the packaging format. An Action's own\n",[204,769,770],{},"input_schema",[204,772,773],{},"output_schema"," describe its specific fields and types. Those\nschemas are generated from its Python models and captured in its image.",[200,776,777],{},"Use the deployed revision and pinned digest to identify the actual Action being\nexecuted. A schema does not describe every external side effect; review the\nAction's documented permissions, failure behavior, and retry safety as well.",[216,779,781],{"id":780},"version-and-compatibility-rules","Version and compatibility rules",[200,783,784,785,381,788,791,792,795],{},"Protocol identifiers such as ",[204,786,787],{},"pyplines\u002Fv1",[204,789,790],{},"pyplines.action.v1"," differ from\nsoftware release versions. Released schema ",[204,793,794],{},"$id"," URLs are immutable. The manifest's\nsource hashes allow comparison of shared contracts across independently versioned\nplatform and tooling releases.",[200,797,798],{},"Schema changes require review of both producers and consumers. A new response\nfield can affect a strict client even when existing fields remain unchanged.\nBehavioral changes may be breaking without any schema change. Prereleases do not\ncarry stable-interface guarantees; pin a release and its checksums for reproducible\nintegrations.",[216,800,802],{"id":801},"contribute-a-contract-change","Contribute a contract change",[200,804,805],{},"From the repository root:",[397,807,812],{"className":808,"code":809,"filename":810,"language":811,"meta":403,"style":403},"language-sh shiki shiki-themes pyplines-light pyplines-light pyplines-dark","task contracts:generate\ntask contracts:check\n","Terminal","sh",[204,813,814,819],{"__ignoreMap":403},[407,815,816],{"class":409,"line":410},[407,817,818],{},"task contracts:generate\n",[407,820,821],{"class":409,"line":421},[407,822,823],{},"task contracts:check\n",[200,825,826],{},"Generation updates the OpenAPI export, repository schema index, and packaged\nPython schemas. CI verifies reproducibility and conformance examples. Software\nreleases package the exact reviewed contracts; website publication copies those\nartifacts without generating a new interface from current source.",[216,828,830],{"id":829},"installation-configuration","Installation configuration",[200,832,833,835,836,839],{},[204,834,278],{}," defines the desired configuration for\n",[758,837,838],{"href":62},"the installer",": component, platform version, endpoints,\nTLS paths, storage location, and runner settings. It rejects credential values and\nunknown fields. The schema is packaged with the installer and included in release\ncontract bundles; private installer state is not an interchange format.",[200,841,842,843,846,847,850,851,854,855,858],{},"The multi-target installer document uses ",[204,844,845],{},"apiVersion: pyplines.installer\u002Fv1"," and\n",[204,848,849],{},"contracts\u002Finstaller\u002Fv1\u002Finstallation.schema.json",". It describes named targets,\nrelease versions, dependency references, and credential sources. Validate structural\nshape with JSON Schema, then use ",[204,852,853],{},"pyplines-installer validate FILE"," for graph and\ncomponent checks. The original ",[204,856,857],{},"pyplines.installation\u002Fv1"," single-service contract\nremains supported by compatibility commands. Both ship in release contract bundles.",[860,861,862],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sYpJS, html code.shiki .sYpJS{--shiki-light:#806000;--shiki-default:#806000;--shiki-dark:#F2CD66}html pre.shiki code .smnRP, html code.shiki .smnRP{--shiki-light:#243247;--shiki-default:#243247;--shiki-dark:#DCE6F0}html pre.shiki code .sgMYo, html code.shiki .sgMYo{--shiki-light:#54657A;--shiki-default:#54657A;--shiki-dark:#A9B8CA}html pre.shiki code .sfDcV, html code.shiki .sfDcV{--shiki-light:#34694B;--shiki-default:#34694B;--shiki-dark:#9BC9AD}html pre.shiki code .sgrdR, html code.shiki .sgrdR{--shiki-light:#607187;--shiki-light-font-style:italic;--shiki-default:#607187;--shiki-default-font-style:italic;--shiki-dark:#94A7BD;--shiki-dark-font-style:italic}",{"title":403,"searchDepth":421,"depth":421,"links":864},[865,866,867,868,869,870,871,872,873],{"id":218,"depth":421,"text":219},{"id":359,"depth":421,"text":360},{"id":388,"depth":421,"text":389},{"id":635,"depth":421,"text":636},{"id":743,"depth":421,"text":744},{"id":763,"depth":421,"text":764},{"id":780,"depth":421,"text":781},{"id":801,"depth":421,"text":802},{"id":829,"depth":421,"text":830},"Discover, pin, and validate against the machine-readable Pyplines interfaces.","md",{},{"title":183,"description":874},"aqDgV6KIuFByF6nHkTpalMFtdt10Jbj324HnpRkVVSs",[880,882],{"title":179,"path":180,"stem":181,"description":881,"children":-1},"Typed inputs, outputs, context, and structured logs.",{"title":187,"path":188,"stem":189,"description":883,"children":-1},"Commands, flags, TLS, storage, and lifecycle settings for pyplines-server.",1792213698014]