trustgraph/docs/websocket.html

3270 lines
2.5 MiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>TrustGraph WebSocket API 1.8 documentation</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="data:image/x-icon;base64,AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAAAABgAAAAAQAgAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKoVqgy5F8qHsxXR3asS1vmnE9f9pRLa/6cU2f+oFNn/qhXW/60V1f+uF9P/sBfR/7EYz/+0Gs7/tRvM/7ccyv+6Hcn/uh7F/7sfxP++IMP/vyHB/8IjwP/DI77/xCW8/8Ylu//HKLr/ySi4/8sptv/MK7X/zCuz/84tsv/QL7D+0i+t+9cyp+rcOqGb3USIDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AP8CuhjLl6kS2fugEd//ohHd/6MR3P+lEtr/pxTZ/6gU2f+qFdb/rRXV/64X0v+wF9H/sRjP/7Qazv+1G8z/txzK/7odyf+6HsX/ux/E/74gwv+/IsH/wSPA/8Mjvf/EJbv/xia6/8couf/JKbj/yyq2/8wrtP/MLLL/zy6x/9AusP/QL6//0jGt/9MxrP/TMqr/1zWn/ds9nqsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8QvxCxFtPhoBHf/6AR3/+iEd3/oxHc/6US2v+nFNn/qBTZ/6oV1v+tFdX/rhfT/7AX0f+xGM//tBrO/7UbzP+3HMr/uh3J/7ofxf+7H8T/viDC/8Aiwf/BI8D/wyS9/8Qlu//GJrn/xyi5/8kqt//LK7X/zCy0/80tsv/PLrD/0DCv/9Awrv/SMaz/0zOs/9M0qf/UNKj/1zWn/9k4pP/cO5/x2UKXGwAAAAAAAAAAAAAAAAAAAAAAAAAAvw3MFKwU1vSgEd//oBHf/6IR3f+jEdz/pRLa/6cU2f+oFNn/qhXW/60V1f+uF9L/sBfR/7EYz/+0Gs7/tRvM/7ccyv+6Hcn/ux/F/7sfw/++IML/wCLB/8IjwP/DJL3/xCW7/8Ynuf/HKLj/ySq3/8srtf/MLLT/zS2y/88wsP/QMK7/0TGt/9Izq//TM6r/0zWo/9U2pv/XN6X/2Tik/9k5o//aO6D/3D2e+d5DkBcAAAAAAAAAAAAAAAD/AP8CsRXR46AR3/+gEd//ohHd/6MR3P+lEtr/pxTZ/6gU2f+qFdb/rRXV/64X0v+wF9H/sRjP/7Qazv+1G8z/txzK/7odyf+6H8X/uyDD/74hwv/AIsH/wiPA/8Mlvf/EJrv/xie5/8cpuP/JK7b/zCy0/8wts//NLrH/zzCw/9Axrv/RMq3/0jSr/9M1qv/UNqf/1Til/9c5pf/ZOqL/2juh/9o8n//bPZ7/3D+c/95CmO4AAAAAAAAAAAAAAAC7GsyWoBHf/6AR3/+iEd3/oxHc/6US2v+nFNn/qBTZ/6oV1v+tFtX/rhfS/7AX0f+xGM//tBrO/7UbzP+3HMr/uh3J/7ofxP+7IMP/viHC/8AjwP/DJMD/wyW9/8Qmu//GKLj/xyq3/8krtv/MLLT/zC6y/80vsP/PMa//0DKt/9EzrP/TNar/0zap/9Q4pv/VOaT/1zqj/9k7of/aPKD/2j6e/9s/nf/cQJz/3UKa/95Dmf/hSJKqAAAAAKoVlQypEtr6oBHf/6IR3f+jEdz/pRLa/6cU2f+oFNn/qhXW/60V1f+uF9L/sBfR/7EYz/+0Gs7/tRvM/7ccyv+6Hcn/ux/F/7sgw/++IcL/vyPA/8IkwP/DJb3/xCa7/8couP/HKrf/ySu1/8wts//NLrL/zTCw/88xrv/QM6z/0TSr/9M1qf/UN6j/1Dim/9Y6pP/YO6L/2T2g/9o+n//aP5z/20Gc/9xBmv/eQ5n/3kSY/99Fl//fR5T96lWVDL8Xz4SgEd//ohHd/6MR3P+lEtr/pxTZ/6gU2f+qFdb/rRbV/64X0v+wF9H/sRjP/7Qazv+1G8z/txzK/7odyf+6H8T/uyDD/74hwv/AI8D/wiS//8Mlvf/EJrr/xyi4/8cqt//JK7X/zC2z/80usf/NMK//zzKu/9AzrP/RNar/0zap/9Q3p//UOaX/1juj/9g8of/ZPp//2j+e/9tBnP/bQpr/3UOZ/95FmP/eRpb/30eV/99Ik//gSZL/406OmrMU09qiEd3/oxHc/6US2v+nFNn/qBTZ/6oV1v+tFtX/rhfS/7AX0f+xGM//tBrO/7UbzP+3HMr/uh3J/7sfxP+7IMP/viHC/8AjwP/CJL//wyW9/8Qnuv/HLbr/zUC+/85BvP/NM7X/zS+x/80wr//PM63/0DSs/9I1qv/UOKj/1Din/9U6pP/WPKP/2D2h/9o/n//aQJ3/20Kb/9tDmf/dRZj/3keW/99Ilf/gSZT/30uR/+FMkf/iTo//4k6P6KsT1vijEdz/pRLa/6cU2f+oFNn/qhXW/60W1f+uF9L/sBfR/7EYz/+0G87/tRvM/7ccyv+6Hcn/ux/E/7sgw/++IcL/wCPA/8Mtwv/aeNb/67bo//rq+P//////////////////////+uj2/+644v/hf8r/0zyt/9Q4p//VOqb/1Tuk/9Y9of/YPqD/2kCe/9pCnP/bQ5n/3EWY/91Gl//eSZX/30qU/+BKkv/fTZD/4U6P/+JPjf/jUYz/5FGL+6gS2v2lEtr/pxTZ/6gU2f+qFdb/rRXV/64X0v+wF9H/sRjP/7Qazv+1G8z/txzK/7odyf+7H8T/uyDD/74hwv/BKMH/347e//vw+////////////////////////////////////////////////////////O/4/+iTzv/WP6T/1j6h/9k/oP/aQZ3/20Ob/9tEmf/cRpf/3kiW/95KlP/fTJP/4E2R/+BOj//hT47/41KL/+NTi//kVIn/41WI/qYT2f+nFNn/qBTZ/6oV1v+tFtX/rhfS/7AX0f+xGM//tBvO/7UbzP+3HMr/uh3J/7sfxP+7IMP/viHC/8g+yP/02fT/////////////////9tvz/+im4P/hg9L/3XPK/950yP/jiM//66vc//jg8v/////////////////32Oz/3VOo/9tCnP/bRJv/20aY/9xIlv/eSZT/3kuT/+BNkf/gTpD/4FCO/+FRjP/jU4r/41WJ/+RXh//lWIX/5VuF/6cU2f+oFNn/qhXW/60W1f+uF9L/sBfR/7EYz/+0Gs7/tRvM/7ccyv+6Hcn/ux/E/7sgw/++IcL/yD/I//jn+P///////////+/D6//TVsb/yi21/8wusv/NMLH/zjGu/9A0rf/QNar/0jeo/9Q5p//eZ7n/9M3n////////////+uby/99XpP/cRpf/3UiV/95KlP/fTJL/4E6Q/+BPj//gUY3/4lKL/+NVif/kV4j/5VmG/+Vag//mXYP/5l+A/6gU2f+qFdb/rRbV/64X0v+wF9H/sRjP/7Qazv+1G8z/txzK/7odyf+7H8T/uyDD/74hwv/BJsH/8c3w///////+/P7/3oHW/8gst//KLbX/zC6y/80wsP/OMq7/0DSs/9E2qv/SN6j/1Dqm/9U8pP/VPaL/10Cg/+qWyf///v7///////bN4//dSpb/3kuT/99Okf/gUI//4VCO/+FTi//iVIr/5FeI/+RYh//lWoT/5VyC/+dfgf/mYX//6GJ9/6oV1v+tFtX/rhfS/7AX0f+xGM//tBvO/7UbzP+3HMr/uh3J/7sfxP+7IMP/viLC/8AjwP/Xb9T////////////gitj/yCy3/8kttf/ML7L/zTCw/84yrv/QNaz/0Dap/9I3qP/UOqb/1Tyk/9U9of/WQJ//2UKd/9tEm//toMv////////////ogLL/30+Q/+BRj//hUo3/4VSK/+JVif/kWIf/5FqF/+Vcg//lXoD/52GA/+djff/oZHz/6Wd5/60V1f+uF9L/sBfR/7EYz/+0G87/tRvM/7ccyv+6Hcn/ux/E/7sgw/++I
<style type="text/css">
html{-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}
.aui-root .hljs{display:block;overflow-x:auto;padding:.5em;background:#011627;color:#d6deeb}.aui-root .hljs-keyword{color:#c792ea;font-style:italic}.aui-root .hljs-built_in{color:#addb67;font-style:italic}.aui-root .hljs-type{color:#82aaff}.aui-root .hljs-literal{color:#ff5874}.aui-root .hljs-number{color:#f78c6c}.aui-root .hljs-regexp{color:#5ca7e4}.aui-root .hljs-string{color:#ecc48d}.aui-root .hljs-subst{color:#d3423e}.aui-root .hljs-symbol{color:#82aaff}.aui-root .hljs-class{color:#ffcb8b}.aui-root .hljs-function{color:#82aaff}.aui-root .hljs-title{color:#dcdcaa;font-style:italic}.aui-root .hljs-params{color:#7fdbca}.aui-root .hljs-comment{color:#637777;font-style:italic}.aui-root .hljs-doctag{color:#7fdbca}.aui-root .hljs-meta,.aui-root .hljs-meta-keyword{color:#82aaff}.aui-root .hljs-meta-string{color:#ecc48d}.aui-root .hljs-section{color:#82b1ff}.aui-root .hljs-attr,.aui-root .hljs-builtin-name,.aui-root .hljs-name,.aui-root .hljs-tag{color:#7fdbca}.aui-root .hljs-attribute{color:#80cbc4}.aui-root .hljs-variable{color:#addb67}.aui-root .hljs-bullet{color:#d9f5dd}.aui-root .hljs-code{color:#80cbc4}.aui-root .hljs-emphasis{color:#c792ea;font-style:italic}.aui-root .hljs-strong{color:#addb67;font-weight:700}.aui-root .hljs-formula{color:#c792ea}.aui-root .hljs-link{color:#ff869a}.aui-root .hljs-quote{color:#697098;font-style:italic}.aui-root .hljs-selector-tag{color:#ff6363}.aui-root .hljs-selector-id{color:#fad430}.aui-root .hljs-selector-class{color:#addb67;font-style:italic}.aui-root .hljs-selector-attr,.aui-root .hljs-selector-pseudo{color:#c792ea;font-style:italic}.aui-root .hljs-template-tag{color:#c792ea}.aui-root .hljs-template-variable{color:#addb67}.aui-root .hljs-addition{color:#addb67;font-style:italic}.aui-root .hljs-deletion{color:rgba(239,83,80,.5647058823529412);font-style:italic}
/*! tailwindcss v2.2.19 | MIT License | https://tailwindcss.com*/
/*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */.aui-root html{-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.15;-webkit-text-size-adjust:100%}.aui-root body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}.aui-root hr{height:0;color:inherit}.aui-root abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.aui-root b,.aui-root strong{font-weight:bolder}.aui-root code,.aui-root kbd,.aui-root pre,.aui-root samp{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}.aui-root small{font-size:80%}.aui-root sub,.aui-root sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.aui-root sub{bottom:-.25em}.aui-root sup{top:-.5em}.aui-root table{text-indent:0;border-color:inherit}.aui-root button,.aui-root input,.aui-root optgroup,.aui-root select,.aui-root textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}.aui-root button,.aui-root select{text-transform:none}.aui-root [type=button],.aui-root button{-webkit-appearance:button}.aui-root legend{padding:0}.aui-root progress{vertical-align:baseline}.aui-root summary{display:list-item}.aui-root blockquote,.aui-root dd,.aui-root dl,.aui-root figure,.aui-root h1,.aui-root h2,.aui-root h3,.aui-root h4,.aui-root h5,.aui-root h6,.aui-root hr,.aui-root p,.aui-root pre{margin:0}.aui-root button{background-color:transparent;background-image:none}.aui-root fieldset{margin:0;padding:0}.aui-root ol,.aui-root ul{list-style:none;margin:0;padding:0}.aui-root html{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.aui-root body{font-family:inherit;line-height:inherit}.aui-root *,.aui-root :after,.aui-root :before{box-sizing:border-box;border:0 solid}.aui-root hr{border-top-width:1px}.aui-root img{border-style:solid}.aui-root textarea{resize:vertical}.aui-root input::-moz-placeholder, .aui-root textarea::-moz-placeholder{opacity:1;color:#cbd5e0}.aui-root input:-ms-input-placeholder, .aui-root textarea:-ms-input-placeholder{opacity:1;color:#cbd5e0}.aui-root input::placeholder,.aui-root textarea::placeholder{opacity:1;color:#cbd5e0}.aui-root button{cursor:pointer}.aui-root table{border-collapse:collapse}.aui-root h1,.aui-root h2,.aui-root h3,.aui-root h4,.aui-root h5,.aui-root h6{font-size:inherit;font-weight:inherit}.aui-root a{color:inherit;text-decoration:inherit}.aui-root button,.aui-root input,.aui-root optgroup,.aui-root select,.aui-root textarea{padding:0;line-height:inherit;color:inherit}.aui-root code,.aui-root kbd,.aui-root pre,.aui-root samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.aui-root audio,.aui-root canvas,.aui-root embed,.aui-root iframe,.aui-root img,.aui-root object,.aui-root svg,.aui-root video{display:block;vertical-align:middle}.aui-root img,.aui-root video{max-width:100%;height:auto}.aui-root [hidden]{display:none}.aui-root *,.aui-root :after,.aui-root :before{--tw-border-opacity:1;border-color:rgba(203,213,224,var(--tw-border-opacity))}.aui-root .container{width:100%}@media (min-width:640px){.aui-root .container{max-width:640px}}@media (min-width:768px){.aui-root .container{max-width:768px}}@media (min-width:1024px){.aui-root .container{max-width:1024px}}@media (min-width:1280px){.aui-root .container{max-width:1280px}}@media (min-width:1536px){.aui-root .container{max-width:1536px}}.aui-root .prose{color:#4a5568;max-width:65ch}.aui-root .prose [class~=lead]{color:#718096;font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.aui-root .prose a{color:#1a202c;text-decoration:underline;font-weight:500}.aui-root .prose strong{color:#1a202c;font-weight:600}.aui-root .prose ol[type=a]{--list-counter-style:lower-alpha}.aui-root .prose ol[type=i]{--list-counter-style:lower-roman}.aui-root .prose ol[type="1"]{--list-counte
</style>
</head>
<body>
<div id="root"><section class="aui-root"><div class="container:xl relative md:flex bg-white leading-normal" id=""><div class="burger-menu rounded-full h-16 w-16 bg-white fixed bottom-16 right-8 flex items-center justify-center z-30 cursor-pointer shadow-md bg-teal-500" data-lol="false"><svg viewBox="0 0 100 70" width="40" height="30" class="fill-current text-gray-200"><rect width="100" height="10"></rect><rect y="30" width="100" height="10"></rect><rect y="60" width="100" height="10"></rect></svg></div><div class="hidden sidebar relative w-64 max-h-screen h-full bg-gray-200 shadow z-20"><div class=" block fixed max-h-screen h-full font-sans px-4 pt-8 pb-16 overflow-y-auto bg-gray-200"><div class="sidebar--content"><div><h1 class="text-2xl font-light">TrustGraph WebSocket API<!-- --> <!-- -->1.8</h1></div><ul class="text-sm mt-10 relative"><li class="mb-3"><a class="text-gray-700 no-underline hover:text-gray-900" href="#introduction">Introduction</a></li><li class="mb-3 mt-9"><a class="text-xs uppercase text-gray-700 mt-10 mb-4 font-thin hover:text-gray-900" href="#servers">Servers</a><ul class="text-sm mt-2"><li><a class="flex no-underline text-gray-700 mb-2 hover:text-gray-900" href="#server-production"><span class="break-all inline-block">production</span></a></li></ul></li></ul></div></div></div><div class="panel--center relative py-8 flex-1"><div class="relative z-10"><div class="panel-item"><div class="panel-item--center px-8 text-left" id="introduction"><div class="text-4xl">TrustGraph WebSocket API<!-- --> <!-- -->1.8</div><ul class="flex flex-wrap mt-2 leading-normal"><li class="inline-block mt-2 mr-2"><a href="https://www.apache.org/licenses/LICENSE-2.0.html" class="border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1" target="_blank" rel="nofollow noopener noreferrer"><span>Apache 2.0</span></a></li><li class="inline-block mt-2 mr-2"><a href="https://www.iana.org/assignments/media-types/application/json" class="border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1" target="_blank" rel="nofollow noopener noreferrer"><span>application/json</span></a></li><li class="inline-block mt-2 mr-2"><a href="https://trustgraph.ai" class="border border-solid border-purple-300 hover:bg-purple-300 hover:text-purple-600 text-purple-500 font-bold no-underline text-xs uppercase rounded px-3 py-1" target="_blank" rel="nofollow noopener noreferrer"><span>TrustGraph Project</span></a></li></ul><div class="mt-4"><div class="prose max-w-none text-sm"><p>WebSocket API for TrustGraph - providing multiplexed, asynchronous access to all services.</p>
<h2 id="overview">Overview</h2>
<p>The WebSocket API provides access to all TrustGraph services over a single persistent connection:</p>
<ul>
<li><strong>Multiplexed</strong>: Multiple concurrent requests with ID-based correlation</li>
<li><strong>Asynchronous</strong>: Non-blocking request/response pattern</li>
<li><strong>Efficient</strong>: Lower overhead than HTTP REST</li>
<li><strong>Streaming</strong>: Real-time progressive responses</li>
</ul>
<h2 id="protocol-summary">Protocol Summary</h2>
<p>All messages are JSON with:</p>
<ul>
<li><code>id</code>: Client-generated unique identifier for request/response correlation</li>
<li><code>service</code>: Service identifier (e.g., "config", "agent", "document-rag")</li>
<li><code>flow</code>: Optional flow ID for flow-hosted services</li>
<li><code>request</code>/<code>response</code>: Service-specific payload (identical to REST API schemas)</li>
<li><code>error</code>: Error information on failure</li>
</ul>
<h2 id="service-types">Service Types</h2>
<p><strong>Global Services</strong> (no <code>flow</code> parameter):</p>
<ul>
<li>config, flow, librarian, knowledge, collection-management</li>
</ul>
<p><strong>Flow-Hosted Services</strong> (require <code>flow</code> parameter):</p>
<ul>
<li>agent, text-completion, prompt, document-rag, graph-rag</li>
<li>embeddings, graph-embeddings, document-embeddings</li>
<li>triples, objects, nlp-query, structured-query, structured-diag</li>
<li>text-load, document-load, mcp-tool</li>
</ul>
<h2 id="schema-reuse">Schema Reuse</h2>
<p>Request and response payloads use identical schemas to the REST API.
See OpenAPI specification for detailed schema documentation.</p>
</div></div></div><div class="panel-item--right"></div></div><section id="servers" class="mt-16"><h2 class="2xl:w-7/12 text-3xl font-light mb-4 px-8">Servers</h2><ul><li class="mb-4" id="server-production"><div class="panel-item"><div class="panel-item--center px-8"><div class="shadow rounded bg-gray-200 p-4 border bg-gray-100"><div><span class="font-mono text-base">ws://localhost:8088/</span><span class="bg-teal-500 font-bold no-underline text-white uppercase rounded mx-2 px-2 py-1 text-sm">ws</span><span class="bg-blue-500 font-bold no-underline text-white uppercase rounded px-2 py-1 text-sm">production</span></div><div class="mt-2"><div class="prose max-w-none text-sm"><p>Local development WebSocket server</p>
</div></div><div id="server-production-security"><div class="text-sm mt-4"><h5 class="text-gray-800">Security<!-- -->:</h5><ul><li class="mt-2"><div><div><span>HTTP API key<ul class="inline-block ml-2"><li class="inline-block font-bold no-underline bg-blue-400 text-white text-xs uppercase rounded px-2 py-0 ml-1"><span>Name: <!-- -->token</span></li><li class="inline-block font-bold no-underline bg-blue-400 text-white text-xs uppercase rounded px-2 py-0 ml-1"><span>In: <!-- -->query</span></li></ul></span></div><div><div class="prose max-w-none text-sm"><p>Bearer token authentication when GATEWAY_SECRET is configured.
Include as query parameter: ws://localhost:8088/api/v1/socket?token=</p>
</div></div></div></li></ul></div></div><div class="mt-2"></div></div></div><div class="panel-item--right"></div></div></li></ul></section><section id="messages" class="mt-16"><h2 class="2xl:w-7/12 text-3xl font-light mb-4 px-8">Messages</h2><ul><li class="mb-4" id="message-ServiceRequest"><div class="panel-item"><div class="panel-item--center px-8"><div class="shadow rounded bg-gray-200 p-4 border"><div><span class="text-gray-700 font-bold mr-2">#<!-- -->1</span><span class="text-gray-700 mr-2">Service Request Message</span><span class="border text-orange-600 rounded text-xs py-0 px-2">ServiceRequest</span></div><p class="text-gray-600 text-sm">Request message for any TrustGraph service</p><ul class="leading-normal mt-2 mb-4 space-x-2 space-y-2"><li class="inline-block"><a href="https://www.iana.org/assignments/media-types/application/json" class="border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1" target="_blank" rel="nofollow noopener noreferrer"><span>application/json</span></a></li></ul><div class="border bg-gray-100 rounded px-4 py-2 mt-2"><div class="text-sm text-gray-700">Message ID<span class="border text-orange-600 rounded text-xs ml-2 py-0 px-2">ServiceRequest</span></div></div><div class="mt-2"><div class="prose max-w-none text-sm"><p>Generic request message that can invoke any TrustGraph service.</p>
<p>The <code>request</code> field payload varies by service and matches the REST API request body schema.</p>
</div></div><div class="mt-2" id="message-ServiceRequest-payload"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Payload</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">oneOf</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service request envelope with id, service, optional flow, and service-specific request payload</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Adheres to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for config service (global service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;config&quot;,&quot;request&quot;:{&quot;operation&quot;:&quot;list&quot;,&quot;type&quot;:&quot;flow&quot;}}</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-2&quot;,&quot;service&quot;:&quot;config&quot;,&quot;request&quot;:{&quot;operation&quot;:&quot;get&quot;,&quot;keys&quot;:[{&quot;type&quot;:&quot;flow&quot;,&quot;key&quot;:&quot;my-flow&quot;}]}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for config service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;config&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Configuration service request.</p>
<p>Supports operations: config, list, get, put, delete</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">operation</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Operation to perform:</p>
<ul>
<li><code>config</code>: Get complete configuration</li>
<li><code>list</code>: List all items of a specific type</li>
<li><code>get</code>: Get specific configuration items</li>
<li><code>put</code>: Set/update configuration values</li>
<li><code>delete</code>: Delete configuration items</li>
</ul>
</div></div><ul class="text-xs">Allowed values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;config&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;list&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;get&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;put&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;delete&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">type</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Configuration type (required for list, get, put, delete operations).
Common types: flow, prompt, token-cost, parameter-type, interface-description</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">keys</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;object&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Keys to retrieve (for get operation) or delete (for delete operation)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm "></span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 block"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">type</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Configuration type</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">key</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Configuration key</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">values</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;object&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Values to set/update (for put operation)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm "></span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 block"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">type</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Configuration type</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">key</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Configuration key</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">value</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Configuration value (structure depends on type)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for flow service (global service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;flow&quot;,&quot;request&quot;:{&quot;operation&quot;:&quot;list&quot;}}</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-2&quot;,&quot;service&quot;:&quot;flow&quot;,&quot;request&quot;:{&quot;operation&quot;:&quot;start&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;blueprint&quot;:&quot;default-blueprint&quot;}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for flow service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;flow&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow service request for managing flow instances and blueprints.</p>
<p>Operations: start-flow, stop-flow, list-flows, get-flow,
list-blueprints, get-blueprint, put-blueprint, delete-blueprint</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">operation</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow operation:</p>
<ul>
<li><code>start-flow</code>: Start a new flow instance from a blueprint</li>
<li><code>stop-flow</code>: Stop a running flow instance</li>
<li><code>list-flows</code>: List all running flow instances</li>
<li><code>get-flow</code>: Get details of a running flow</li>
<li><code>list-blueprints</code>: List available flow blueprints</li>
<li><code>get-blueprint</code>: Get blueprint definition</li>
<li><code>put-blueprint</code>: Create/update blueprint definition</li>
<li><code>delete-blueprint</code>: Delete blueprint definition</li>
</ul>
</div></div><ul class="text-xs">Allowed values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;start-flow&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;stop-flow&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;list-flows&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;get-flow&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;list-blueprints&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;get-blueprint&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;put-blueprint&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;delete-blueprint&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow-id</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow instance ID (required for start-flow, stop-flow, get-flow)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">blueprint-name</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow blueprint name (required for start-flow, get-blueprint, put-blueprint, delete-blueprint)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">blueprint-definition</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow blueprint definition (required for put-blueprint)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">description</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow description (optional for start-flow)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">parameters</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow parameters (for start-flow).
All values are stored as strings, regardless of input type.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm ">Additional properties:</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div></div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for librarian service (global service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;librarian&quot;,&quot;request&quot;:{&quot;operation&quot;:&quot;list&quot;,&quot;collection&quot;:&quot;default&quot;}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for librarian service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;librarian&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Librarian service request for document library management.</p>
<p>Operations: add-document, remove-document, list-documents,
start-processing, stop-processing, list-processing</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">operation</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Library operation:</p>
<ul>
<li><code>add-document</code>: Add document to library</li>
<li><code>remove-document</code>: Remove document from library</li>
<li><code>list-documents</code>: List documents in library</li>
<li><code>start-processing</code>: Start processing library documents</li>
<li><code>stop-processing</code>: Stop library processing</li>
<li><code>list-processing</code>: List processing status</li>
</ul>
</div></div><ul class="text-xs">Allowed values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;add-document&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;remove-document&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;list-documents&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;start-processing&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;stop-processing&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;list-processing&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">collection</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection identifier</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;default&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User identifier</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;trustgraph&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">document-id</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Document identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">processing-id</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Processing task identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">document-metadata</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Document metadata for library management</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">url</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Document URL or identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">title</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Document title</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">author</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Document author</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">date</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Document date</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">metadata</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Additional metadata fields</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">processing-metadata</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Processing metadata for library document processing</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">collection</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">status</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Processing status</p>
</div></div><ul class="text-xs">Allowed values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;pending&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;processing&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;completed&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;failed&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">timestamp</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"><span class="bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs">format: <!-- -->date-time</span></div><div><div class="prose max-w-none text-sm"><p>Processing timestamp</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">error</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Error message if processing failed</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">content</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Document content (for add-document with inline content)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">criteria</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;object&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Search criteria for filtering documents</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm "></span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 block"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">key</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Metadata field name</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">value</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value to match</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">operator</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Comparison operator</p>
</div></div><ul class="text-xs">Allowed values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;eq&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;ne&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;gt&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;lt&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;contains&quot;</span></li></ul></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for knowledge service (global service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;knowledge&quot;,&quot;request&quot;:{&quot;operation&quot;:&quot;store&quot;,&quot;triples&quot;:[{&quot;s&quot;:{&quot;v&quot;:&quot;https://example.com/entity1&quot;,&quot;e&quot;:true},&quot;p&quot;:{&quot;v&quot;:&quot;https://example.com/relates-to&quot;,&quot;e&quot;:true},&quot;o&quot;:{&quot;v&quot;:&quot;https://example.com/entity2&quot;,&quot;e&quot;:true}}]}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for knowledge service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;knowledge&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Knowledge graph core management request.</p>
<p>Operations: list-kg-cores, get-kg-core, put-kg-core, delete-kg-core,
load-kg-core, unload-kg-core</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">operation</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Knowledge core operation:</p>
<ul>
<li><code>list-kg-cores</code>: List knowledge cores for user</li>
<li><code>get-kg-core</code>: Get knowledge core by ID</li>
<li><code>put-kg-core</code>: Store triples and/or embeddings</li>
<li><code>delete-kg-core</code>: Delete knowledge core by ID</li>
<li><code>load-kg-core</code>: Load knowledge core into flow</li>
<li><code>unload-kg-core</code>: Unload knowledge core from flow</li>
</ul>
</div></div><ul class="text-xs">Allowed values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;list-kg-cores&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;get-kg-core&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;put-kg-core&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;delete-kg-core&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;load-kg-core&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;unload-kg-core&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User identifier (for list-kg-cores, put-kg-core, delete-kg-core)</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;trustgraph&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Knowledge core ID (for get, put, delete, load, unload)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID (for load-kg-core)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">collection</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection identifier (for load-kg-core)</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;default&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">triples</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Triples to store (for put-kg-core)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">metadata</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Knowledge core ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">collection</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">metadata</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;object&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Metadata triples</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm "></span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF triple (subject-predicate-object)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 block"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">s</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">p</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">o</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">triples</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;object&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Knowledge triples</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm "></span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF triple (subject-predicate-object)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 block"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">s</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">p</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">o</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">graph-embeddings</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Graph embeddings to store (for put-kg-core)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">metadata</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Knowledge core ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">collection</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">metadata</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;object&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Metadata triples</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm "></span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF triple (subject-predicate-object)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 block"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">s</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">p</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">o</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">entities</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;object&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Entity embeddings</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm "></span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 block"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">entity</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">vectors</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;number&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Embedding vectors</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm ">Items:</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">number</div><div class="inline-block"></div></div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for collection-management service (global service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;collection-management&quot;,&quot;request&quot;:{&quot;operation&quot;:&quot;list&quot;}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for collection-management service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;collection-management&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection management request.</p>
<p>Operations: list-collections, update-collection, delete-collection</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">operation</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection operation:</p>
<ul>
<li><code>list-collections</code>: List collections for user</li>
<li><code>update-collection</code>: Create or update collection metadata</li>
<li><code>delete-collection</code>: Delete collection</li>
</ul>
</div></div><ul class="text-xs">Allowed values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;list-collections&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;update-collection&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;delete-collection&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User identifier</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;trustgraph&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">collection</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection identifier (for update, delete)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">timestamp</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"><span class="bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs">format: <!-- -->date-time</span></div><div><div class="prose max-w-none text-sm"><p>ISO timestamp</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">name</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Human-readable collection name (for update)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">description</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection description (for update)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">tags</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;string&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection tags for organization (for update)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm ">Items:</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div></div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">tag-filter</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;string&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Filter collections by tags (for list)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm ">Items:</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div></div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">limit</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">integer</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Maximum number of results (for list)</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">0</span></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for agent service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;agent&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;question&quot;:&quot;What is quantum computing?&quot;,&quot;streaming&quot;:true,&quot;system-prompt&quot;:&quot;You are a helpful assistant&quot;}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for agent service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;agent&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Agent service request - conversational AI agent that can reason and take actions.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">question</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User question or prompt for the agent</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">state</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Agent state for continuation (optional, for multi-turn)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">group</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;string&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Group identifiers for collaborative agents (optional)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm ">Items:</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div></div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">history</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;object&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Conversation history (optional, list of previous agent steps)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm "></span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 block"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">thought</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Agent's reasoning</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">action</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Action taken</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">arguments</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Action arguments</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm ">Additional properties:</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div></div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">observation</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Result of the action</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User context for this step</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User identifier for multi-tenancy</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;trustgraph&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">streaming</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Enable streaming response delivery</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">false</span></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for document-rag service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;document-rag&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;query&quot;:&quot;What are the main features?&quot;,&quot;streaming&quot;:true,&quot;doc-limit&quot;:20}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for document-rag service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;document-rag&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Document RAG (Retrieval-Augmented Generation) query request.
Searches document embeddings and generates answer using retrieved context.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">query</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User query or question</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User identifier for multi-tenancy</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;trustgraph&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">collection</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection to search within</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;default&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">doc-limit</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">integer</div><div class="inline-block"><span class="bg-purple-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs">[ 1 .. 100 ]</span></div><div><div class="prose max-w-none text-sm"><p>Maximum number of documents to retrieve</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">20</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">streaming</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Enable streaming response delivery</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">false</span></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for graph-rag service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;graph-rag&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;query&quot;:&quot;What entities are related to quantum computing?&quot;,&quot;streaming&quot;:true,&quot;triple-limit&quot;:100}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for graph-rag service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;graph-rag&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Graph RAG (Retrieval-Augmented Generation) query request.
Searches knowledge graph and generates answer using retrieved subgraph.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">query</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User query or question</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User identifier for multi-tenancy</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;trustgraph&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">collection</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection to search within</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;default&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">entity-limit</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">integer</div><div class="inline-block"><span class="bg-purple-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs">[ 1 .. 200 ]</span></div><div><div class="prose max-w-none text-sm"><p>Maximum number of entities to retrieve</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">50</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">triple-limit</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">integer</div><div class="inline-block"><span class="bg-purple-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs">[ 1 .. 100 ]</span></div><div><div class="prose max-w-none text-sm"><p>Maximum number of triples to retrieve per entity</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">30</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">max-subgraph-size</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">integer</div><div class="inline-block"><span class="bg-purple-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs">[ 10 .. 5000 ]</span></div><div><div class="prose max-w-none text-sm"><p>Maximum total subgraph size (triples)</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">1000</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">max-path-length</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">integer</div><div class="inline-block"><span class="bg-purple-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs">[ 1 .. 5 ]</span></div><div><div class="prose max-w-none text-sm"><p>Maximum path length for graph traversal</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">2</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">streaming</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Enable streaming response delivery</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">false</span></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for text-completion service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;text-completion&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;prompt&quot;:&quot;Once upon a time&quot;,&quot;streaming&quot;:true,&quot;max-output-tokens&quot;:100}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for text-completion service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;text-completion&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Text completion request - direct LLM completion without RAG.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">system</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>System prompt that sets behavior and context for the LLM</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">prompt</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User prompt or question</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">streaming</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Enable streaming response delivery</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">false</span></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for prompt service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;prompt&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;template&quot;:&quot;default-template&quot;,&quot;variables&quot;:{&quot;topic&quot;:&quot;quantum computing&quot;,&quot;style&quot;:&quot;technical&quot;}}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for prompt service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;prompt&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Prompt service request - template-based text generation.</p>
<p>Execute a stored prompt template with variable substitution.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Prompt template ID (stored in config)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">terms</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Template variables as key-value pairs (values are JSON strings)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm ">Additional properties:</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div></div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">variables</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Alternative to terms - variables as native JSON values (auto-converted)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm ">Additional properties:</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">any</div><div class="inline-block"></div></div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">streaming</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Enable streaming response delivery</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">false</span></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for embeddings service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;embeddings&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;text&quot;:&quot;What is quantum computing?&quot;}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for embeddings service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;embeddings&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Embeddings request - convert text to vector embedding.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">text</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Text to convert to embedding vector</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for mcp-tool service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;mcp-tool&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;tool&quot;:&quot;calculator&quot;,&quot;arguments&quot;:{&quot;operation&quot;:&quot;add&quot;,&quot;a&quot;:5,&quot;b&quot;:3}}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for mcp-tool service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;mcp-tool&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>MCP tool request - execute Model Context Protocol tool.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">name</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Tool name to execute</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">parameters</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Tool parameters (JSON object, auto-converted to string internally)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm ">Additional properties:</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">any</div><div class="inline-block"></div></div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for triples service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;triples&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;s&quot;:{&quot;v&quot;:&quot;https://example.com/entity1&quot;,&quot;e&quot;:true},&quot;limit&quot;:100}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for triples service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;triples&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Triples query request - query knowledge graph by subject/predicate/object pattern.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">s</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">p</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">o</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">limit</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">integer</div><div class="inline-block"><span class="bg-purple-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs">[ 1 .. 100000 ]</span></div><div><div class="prose max-w-none text-sm"><p>Maximum number of triples to return</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">10000</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User identifier</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;trustgraph&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">collection</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection to query</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;default&quot;</span></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for objects service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;objects&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;query&quot;:&quot;{ entity(id: \&quot;https://example.com/entity1\&quot;) { properties { key value } } }&quot;}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for objects service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;objects&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Objects query request - GraphQL query over knowledge graph.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">query</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>GraphQL query string</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">variables</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>GraphQL query variables</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm ">Additional properties:</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div></div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">operation-name</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Operation name (for multi-operation documents)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User identifier</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;trustgraph&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">collection</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection to query</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;default&quot;</span></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for nlp-query service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;nlp-query&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;query&quot;:&quot;Show me all entities related to quantum computing&quot;,&quot;limit&quot;:50}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for nlp-query service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;nlp-query&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>NLP query request - convert natural language question to structured query.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">question</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Natural language question</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">max-results</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">integer</div><div class="inline-block"><span class="bg-purple-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs">[ 1 .. 10000 ]</span></div><div><div class="prose max-w-none text-sm"><p>Maximum results to return when query is executed</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">100</span></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for structured-query service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;structured-query&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;query&quot;:{&quot;type&quot;:&quot;entity&quot;,&quot;filters&quot;:[{&quot;property&quot;:&quot;type&quot;,&quot;value&quot;:&quot;Person&quot;}]}}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for structured-query service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;structured-query&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Structured query request - natural language question with automatic execution.</p>
<p>Combines NLP query generation and execution in one call.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">question</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Natural language question</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User identifier</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;trustgraph&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">collection</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection to query</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;default&quot;</span></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for structured-diag service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;structured-diag&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;operation&quot;:&quot;status&quot;}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for structured-diag service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;structured-diag&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Structured data diagnosis request - analyze and understand structured data formats.</p>
<p>Operations: detect-type, generate-descriptor, diagnose, schema-selection</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">operation</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Diagnosis operation:</p>
<ul>
<li><code>detect-type</code>: Identify data format (CSV, JSON, XML)</li>
<li><code>generate-descriptor</code>: Create schema descriptor for data</li>
<li><code>diagnose</code>: Full analysis (detect + generate descriptor)</li>
<li><code>schema-selection</code>: Find matching schemas for data</li>
</ul>
</div></div><ul class="text-xs">Allowed values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;detect-type&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;generate-descriptor&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;diagnose&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;schema-selection&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">sample</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Data sample to analyze (text content)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">type</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Data type (required for generate-descriptor)</p>
</div></div><ul class="text-xs">Allowed values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;csv&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;json&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2"><span>&quot;xml&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">schema-name</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Target schema name for descriptor generation (optional)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">options</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Format-specific options (e.g., CSV delimiter)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm ">Additional properties:</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div></div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for graph-embeddings service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;graph-embeddings&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;text&quot;:&quot;quantum computing&quot;,&quot;limit&quot;:10}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for graph-embeddings service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;graph-embeddings&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Graph embeddings query request - find similar entities by vector similarity.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">vectors</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;number&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Query embedding vector</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm ">Items:</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">number</div><div class="inline-block"></div></div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">limit</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">integer</div><div class="inline-block"><span class="bg-purple-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs">[ 1 .. 1000 ]</span></div><div><div class="prose max-w-none text-sm"><p>Maximum number of entities to return</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">10</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User identifier</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;trustgraph&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">collection</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection to search</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;default&quot;</span></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for document-embeddings service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;document-embeddings&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;text&quot;:&quot;quantum computing&quot;,&quot;limit&quot;:10}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for document-embeddings service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;document-embeddings&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Document embeddings query request - find similar documents by vector similarity.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">vectors</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;number&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Query embedding vector</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm ">Items:</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">number</div><div class="inline-block"></div></div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">limit</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">integer</div><div class="inline-block"><span class="bg-purple-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs">[ 1 .. 1000 ]</span></div><div><div class="prose max-w-none text-sm"><p>Maximum number of document chunks to return</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">10</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User identifier</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;trustgraph&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">collection</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection to search</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;default&quot;</span></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for text-load service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;text-load&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;text&quot;:&quot;This is the document content to be loaded into the knowledge graph.&quot;,&quot;collection&quot;:&quot;default&quot;}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for text-load service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;text-load&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Text load request - load text document into processing pipeline.</p>
<p>Fire-and-forget operation (no response).</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">text</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"><span class="bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs">format: <!-- -->byte</span></div><div><div class="prose max-w-none text-sm"><p>Text content (base64 encoded)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Document identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User identifier</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;trustgraph&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">collection</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection for document</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;default&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">charset</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Text character encoding</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;utf-8&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">metadata</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;object&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Document metadata as RDF triples</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm "></span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF triple (subject-predicate-object)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 block"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">s</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">p</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">o</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Or to:</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request for document-load service (flow-hosted service)</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;id&quot;:&quot;req-1&quot;,&quot;service&quot;:&quot;document-load&quot;,&quot;flow&quot;:&quot;my-flow&quot;,&quot;request&quot;:{&quot;url&quot;:&quot;https://example.com/document.pdf&quot;,&quot;collection&quot;:&quot;default&quot;}}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Unique request identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier for document-load service</p>
</div></div><div class="text-xs">Const:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;document-load&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Document load request - load binary document (PDF, etc.) into processing pipeline.</p>
<p>Fire-and-forget operation (no response).</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">data</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"><span class="bg-yellow-600 font-bold no-underline text-white rounded lowercase mr-2 p-1 text-xs">format: <!-- -->byte</span></div><div><div class="prose max-w-none text-sm"><p>Document data (base64 encoded)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Document identifier</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">user</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>User identifier</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;trustgraph&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">collection</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Collection for document</p>
</div></div><div class="text-xs">Default value:<span class="border inline-block text-orange-600 rounded ml-1 py-0 px-2">&quot;default&quot;</span></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">metadata</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">array&lt;object&gt;</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Document metadata as RDF triples</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm "></span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF triple (subject-predicate-object)</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 block"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">s</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">p</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">o</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>RDF value - can be entity/URI or literal</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">v</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Value (URI or literal text)</p>
</div></div></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">e</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">boolean</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>True if entity/URI, false if literal</p>
</div></div></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div></div></div></div></div></li><li class="mb-4" id="message-ServiceResponse"><div class="panel-item"><div class="panel-item--center px-8"><div class="shadow rounded bg-gray-200 p-4 border"><div><span class="text-gray-700 font-bold mr-2">#<!-- -->2</span><span class="text-gray-700 mr-2">Service Response Message</span><span class="border text-orange-600 rounded text-xs py-0 px-2">ServiceResponse</span></div><p class="text-gray-600 text-sm">Successful response from any TrustGraph service</p><ul class="leading-normal mt-2 mb-4 space-x-2 space-y-2"><li class="inline-block"><a href="https://www.iana.org/assignments/media-types/application/json" class="border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1" target="_blank" rel="nofollow noopener noreferrer"><span>application/json</span></a></li></ul><div class="border bg-gray-100 rounded px-4 py-2 mt-2"><div class="text-sm text-gray-700">Message ID<span class="border text-orange-600 rounded text-xs ml-2 py-0 px-2">ServiceResponse</span></div></div><div class="mt-2"><div class="prose max-w-none text-sm"><p>Generic response message from any TrustGraph service.</p>
<p>The <code>response</code> field payload varies by service and matches the REST API response body schema.</p>
<p>For streaming services, multiple messages with the same <code>id</code> may be sent.</p>
</div></div><div class="mt-2" id="message-ServiceResponse-payload"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Payload</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket response message envelope for successful responses.</p>
<p>Contains the request ID for correlation and the service-specific response payload.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Request identifier from the original request. Client uses this to match
responses to requests in multiplexed communication.</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;req-123&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;request-abc-456&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">response</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service-specific response payload. Structure is identical to the response body
in the corresponding REST API endpoint.</p>
<p>For streaming services, multiple response messages may be sent with the same <code>id</code>.
Look for <code>end-of-stream</code> or service-specific completion flags to detect the final message.</p>
<p>See OpenAPI specification for detailed schemas per service.</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;type&quot;:&quot;flow&quot;,&quot;keys&quot;:[&quot;my-flow&quot;,&quot;production-flow&quot;]}</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;chunk-type&quot;:&quot;answer&quot;,&quot;content&quot;:&quot;Quantum computing uses quantum bits...&quot;,&quot;end-of-stream&quot;:false}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div></div></div></li><li class="mb-4" id="message-ServiceError"><div class="panel-item"><div class="panel-item--center px-8"><div class="shadow rounded bg-gray-200 p-4 border"><div><span class="text-gray-700 font-bold mr-2">#<!-- -->3</span><span class="text-gray-700 mr-2">Service Error Message</span><span class="border text-orange-600 rounded text-xs py-0 px-2">ServiceError</span></div><p class="text-gray-600 text-sm">Error response from any TrustGraph service</p><ul class="leading-normal mt-2 mb-4 space-x-2 space-y-2"><li class="inline-block"><a href="https://www.iana.org/assignments/media-types/application/json" class="border border-solid border-orange-300 hover:bg-orange-300 hover:text-orange-600 text-orange-500 font-bold no-underline text-xs uppercase rounded px-3 py-1" target="_blank" rel="nofollow noopener noreferrer"><span>application/json</span></a></li></ul><div class="border bg-gray-100 rounded px-4 py-2 mt-2"><div class="text-sm text-gray-700">Message ID<span class="border text-orange-600 rounded text-xs ml-2 py-0 px-2">ServiceError</span></div></div><div class="mt-2"><div class="prose max-w-none text-sm"><p>Error message sent when a service request fails.</p>
<p>Contains the request ID and error details.</p>
</div></div><div class="mt-2" id="message-ServiceError-payload"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">Payload</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket error message envelope.</p>
<p>Sent when a request fails. Contains the request ID and error details.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Request identifier from the original request that failed.</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;req-123&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;request-abc-456&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">error</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Error information</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">type</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Error type/category</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;gateway-error&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;service-error&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;timeout&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">message</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Human-readable error message</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;Flow not found&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;Service timeout&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;Invalid request format&quot;</span></li></ul></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div></div></div></li></ul></section><section id="schemas" class="mt-16"><h2 class="2xl:w-7/12 text-3xl font-light mb-4 px-8">Schemas</h2><ul><li class="mb-4" id="schema-RequestEnvelope"><div><div class="panel-item--center px-8"><div class="shadow rounded px-4 py-2 border bg-gray-200"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">RequestEnvelope</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket request message envelope.</p>
<p>Wraps service-specific request payloads with routing and correlation metadata.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Client-generated unique identifier for this request within the WebSocket session.
Used to correlate responses with requests in multiplexed async communication.
Can be any string, but must be unique per active request.</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;req-123&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;request-abc-456&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;b5f8d9a2-4c3e-11ef-9c8a-0242ac120002&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">service</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service identifier. Same as {kind} in REST API URLs.</p>
<p>Global services: config, flow, librarian, knowledge, collection-management
Flow-hosted services: agent, text-completion, prompt, document-rag, graph-rag,
embeddings, graph-embeddings, document-embeddings, triples, objects,
nlp-query, structured-query, structured-diag, text-load, document-load, mcp-tool</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;config&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;agent&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;document-rag&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">flow</span></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Flow ID for flow-hosted services. Required for services accessed via
/api/v1/flow/{flow}/service/{kind} in REST API.</p>
<p>Omit this field for global services (config, flow, librarian, knowledge, collection-management).</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;my-flow&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;production-flow&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">request</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service-specific request payload. Structure is identical to the request body
in the corresponding REST API endpoint.</p>
<p>See OpenAPI specification for detailed schemas per service.</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;operation&quot;:&quot;list&quot;,&quot;type&quot;:&quot;flow&quot;}</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;question&quot;:&quot;What is quantum computing?&quot;,&quot;streaming&quot;:true,&quot;system-prompt&quot;:&quot;You are a helpful assistant&quot;}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div><div class="w-full mt-4"></div></div></li><li class="mb-4" id="schema-ResponseEnvelope"><div><div class="panel-item--center px-8"><div class="shadow rounded px-4 py-2 border bg-gray-200"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">ResponseEnvelope</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket response message envelope for successful responses.</p>
<p>Contains the request ID for correlation and the service-specific response payload.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Request identifier from the original request. Client uses this to match
responses to requests in multiplexed communication.</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;req-123&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;request-abc-456&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">response</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Service-specific response payload. Structure is identical to the response body
in the corresponding REST API endpoint.</p>
<p>For streaming services, multiple response messages may be sent with the same <code>id</code>.
Look for <code>end-of-stream</code> or service-specific completion flags to detect the final message.</p>
<p>See OpenAPI specification for detailed schemas per service.</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;type&quot;:&quot;flow&quot;,&quot;keys&quot;:[&quot;my-flow&quot;,&quot;production-flow&quot;]}</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>{&quot;chunk-type&quot;:&quot;answer&quot;,&quot;content&quot;:&quot;Quantum computing uses quantum bits...&quot;,&quot;end-of-stream&quot;:false}</span></li></ul></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div><div class="w-full mt-4"></div></div></li><li class="mb-4" id="schema-ErrorEnvelope"><div><div class="panel-item--center px-8"><div class="shadow rounded px-4 py-2 border bg-gray-200"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm ">ErrorEnvelope</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>WebSocket error message envelope.</p>
<p>Sent when a request fails. Contains the request ID and error details.</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">id</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Request identifier from the original request that failed.</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;req-123&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;request-abc-456&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><button class="focus:outline-none undefined" type="button"><div class="inline-block"><span class="break-anywhere text-sm italic">error</span></div><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 20 20" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg" class="inline-block align-baseline cursor-pointer ml-0.5 -mb-1 w-5 h-5 transform transition-transform duration-150 ease-linear "><path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path></svg></button><button type="button" class="ml-1 text-sm text-gray-500">Expand all</button><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">object</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Error information</p>
</div></div></div></div></div><div class="rounded p-4 py-2 border bg-gray-100 bg-gray-200 hidden"><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">type</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Error type/category</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;gateway-error&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;service-error&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;timeout&quot;</span></li></ul></div></div></div></div><div><div class="flex py-2"><div class="min-w-1/4 mr-2"><span class="break-anywhere text-sm italic">message</span><div class="text-red-600 text-xs">required</div></div><div><div><div class="capitalize text-sm text-teal-500 font-bold inline-block mr-2">string</div><div class="inline-block"></div><div><div class="prose max-w-none text-sm"><p>Human-readable error message</p>
</div></div><ul class="text-xs">Examples values:<!-- --> <li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;Flow not found&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;Service timeout&quot;</span></li><li class="border inline-block text-orange-600 rounded ml-1 py-0 px-2 break-all"><span>&quot;Invalid request format&quot;</span></li></ul></div></div></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div><p class="mt-2 text-xs text-gray-700">Additional properties are allowed.</p></div></div></div></div><div class="w-full mt-4"></div></div></li></ul></section></div><div class="panel--right absolute top-0 right-0 h-full bg-gray-800"></div></div></div></section></div>
<script type="text/javascript">
/*! For license information please see without-parser.js.LICENSE.txt */
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("AsyncApiStandalone",[],t):"object"==typeof exports?exports.AsyncApiStandalone=t():e.AsyncApiStandalone=t()}("undefined"!=typeof self?self:this,(()=>(()=>{var e={8262:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.lastVersion=t.specVersions=t.EXTENSION_REGEX=t.xParserObjectUniqueId=t.xParserCircularProps=t.xParserCircular=t.xParserOriginalTraits=t.xParserOriginalPayload=t.xParserOriginalSchemaFormat=t.xParserSchemaId=t.xParserMessageParsed=t.xParserMessageName=t.xParserApiVersion=t.xParserSpecStringified=t.xParserSpecParsed=void 0;const r=i(n(11005));t.xParserSpecParsed="x-parser-spec-parsed",t.xParserSpecStringified="x-parser-spec-stringified",t.xParserApiVersion="x-parser-api-version",t.xParserMessageName="x-parser-message-name",t.xParserMessageParsed="x-parser-message-parsed",t.xParserSchemaId="x-parser-schema-id",t.xParserOriginalSchemaFormat="x-parser-original-schema-format",t.xParserOriginalPayload="x-parser-original-payload",t.xParserOriginalTraits="x-parser-original-traits",t.xParserCircular="x-parser-circular",t.xParserCircularProps="x-parser-circular-props",t.xParserObjectUniqueId="x-parser-unique-object-id",t.EXTENSION_REGEX=/^x-[\w\d.\-_]+$/,t.specVersions=Object.keys(r.default.schemas),t.lastVersion=t.specVersions[t.specVersions.length-1]},7307:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isStringifiedDocument=t.isParsedDocument=t.isOldAsyncAPIDocument=t.isAsyncAPIDocument=t.toAsyncAPIDocument=t.createAsyncAPIDocument=void 0;const i=n(99711),r=n(21634),o=n(28227),s=n(8262);function a(e){switch(e.semver.major){case 2:return new i.AsyncAPIDocumentV2(e.parsed,{asyncapi:e,pointer:"/"});case 3:return new i.AsyncAPIDocumentV3(e.parsed,{asyncapi:e,pointer:"/"});default:throw new Error(`Unsupported AsyncAPI version: ${e.semver.version}`)}}function c(e){return!!e&&(e instanceof i.AsyncAPIDocumentV2||e instanceof i.AsyncAPIDocumentV3||!(!e||"function"!=typeof e.json)&&e.json()[s.xParserApiVersion]===i.ParserAPIVersion)}function p(e){return"object"==typeof e&&null!==e&&Boolean(e[s.xParserSpecParsed])}t.createAsyncAPIDocument=a,t.toAsyncAPIDocument=function(e){return c(e)?e:p(e)?a((0,o.createDetailedAsyncAPI)(e,e)):(0,r.unstringify)(e)},t.isAsyncAPIDocument=c,t.isOldAsyncAPIDocument=function(e){if(e&&"function"==typeof e.json){const t=e.json()[s.xParserApiVersion];return void 0===t||0===t}return!1},t.isParsedDocument=p,t.isStringifiedDocument=function(e){try{return"object"==typeof(e="string"==typeof e?JSON.parse(e):e)&&null!==e&&Boolean(e[s.xParserSpecParsed])&&Boolean(e[s.xParserSpecStringified])}catch(e){return!1}}},4613:(e,t)=>{"use strict";var n,i;function r(e,t,o){if(!e)return;const{schemaTypesToIterate:s,callback:a,seenSchemas:c}=o,p=e.json();if(c.has(p))return;c.add(p);let l=e.type()||[];Array.isArray(l)||(l=[l]),!s.includes(i.Objects)&&l.includes("object")||!s.includes(i.Arrays)&&l.includes("array")||!1!==a(e,t,n.NEW_SCHEMA)&&(s.includes(i.Objects)&&l.includes("object")&&function(e,t){Object.entries(e.properties()||{}).forEach((([e,n])=>{r(n,e,t)}));const n=e.additionalProperties();"object"==typeof n&&r(n,null,t);const o=t.schemaTypesToIterate;o.includes(i.PropertyNames)&&e.propertyNames()&&r(e.propertyNames(),null,t),o.includes(i.PatternProperties)&&Object.entries(e.patternProperties()||{}).forEach((([e,n])=>{r(n,e,t)}))}(e,o),s.includes(i.Arrays)&&l.includes("array")&&function(e,t){const n=e.items();n&&(Array.isArray(n)?n.forEach(((e,n)=>{r(e,n,t)})):r(n,null,t));const i=e.additionalItems();"object"==typeof i&&r(i,null,t),t.schemaTypesToIterate.includes("contains")&&e.contains()&&r(e.contains(),null,t)}(e,o),s.includes(i.OneOfs)&&(e.oneOf()||[]).forEach(((e,t)=>{r(e,t,o)})),s.includes(i.AnyOfs)&&(e.anyOf()||[]).forEach(((e,t)=>{r(e,t,o)})),s.includes(i.AllOfs)&&(e.allOf()||[]).forEach(((e,t)=>{r(e,t,o)})),s.includes(i.Nots)&&e.not()&&r(e.n
|| (${a} == "string" && ${r} && ${r} == +${r})`).assign(c,s._`+${r}`);case"integer":return void i.elseIf(s._`${a} === "boolean" || ${r} === null
|| (${a} === "string" && ${r} && ${r} == +${r} && !(${r} % 1))`).assign(c,s._`+${r}`);case"boolean":return void i.elseIf(s._`${r} === "false" || ${r} === 0 || ${r} === null`).assign(c,!1).elseIf(s._`${r} === "true" || ${r} === 1`).assign(c,!0);case"null":return i.elseIf(s._`${r} === "" || ${r} === 0 || ${r} === false`),void i.assign(c,null);case"array":i.elseIf(s._`${a} === "string" || ${a} === "number"
|| ${a} === "boolean" || ${r} === null`).assign(c,s._`[${r}]`)}}i.else(),m(e),i.endIf(),i.if(s._`${c} !== undefined`,(()=>{i.assign(r,c),function({gen:e,parentData:t,parentDataProperty:n},i){e.if(s._`${t} !== undefined`,(()=>e.assign(s._`${t}[${n}]`,i)))}(e,c)}))}(e,t,a):m(e)}))}return p};const l=new Set(["string","number","integer","boolean","null"]);function d(e,t,n,i=c.Correct){const r=i===c.Correct?s.operators.EQ:s.operators.NEQ;let o;switch(e){case"null":return s._`${t} ${r} null`;case"array":o=s._`Array.isArray(${t})`;break;case"object":o=s._`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":o=a(s._`!(${t} % 1) && !isNaN(${t})`);break;case"number":o=a();break;default:return s._`typeof ${t} ${r} ${e}`}return i===c.Correct?o:(0,s.not)(o);function a(e=s.nil){return(0,s.and)(s._`typeof ${t} == "number"`,e,n?s._`isFinite(${t})`:s.nil)}}function u(e,t,n,i){if(1===e.length)return d(e[0],t,n,i);let r;const o=(0,a.toHash)(e);if(o.array&&o.object){const e=s._`typeof ${t} != "object"`;r=o.null?e:s._`!${t} || ${e}`,delete o.null,delete o.array,delete o.object}else r=s.nil;o.number&&delete o.integer;for(const e in o)r=(0,s.and)(r,d(e,t,n,i));return r}t.checkDataType=d,t.checkDataTypes=u;const f={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>"string"==typeof e?s._`{type: ${e}}`:s._`{type: ${t}}`};function m(e){const t=function(e){const{gen:t,data:n,schema:i}=e,r=(0,a.schemaRefOrVal)(e,i,"type");return{gen:t,keyword:"type",data:n,schema:i.type,schemaCode:r,schemaValue:r,parentSchema:i,params:{},it:e}}(e);(0,o.reportError)(t,f)}t.reportTypeError=m},66809:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;const i=n(16008),r=n(8199);function o(e,t,n){const{gen:o,compositeRule:s,data:a,opts:c}=e;if(void 0===n)return;const p=i._`${a}${(0,i.getProperty)(t)}`;if(s)return void(0,r.checkStrictMode)(e,`default is ignored for: ${p}`);let l=i._`${p} === undefined`;"empty"===c.useDefaults&&(l=i._`${l} || ${p} === null || ${p} === ""`),o.if(l,i._`${p} = ${(0,i.stringify)(n)}`)}t.assignDefaults=function(e,t){const{properties:n,items:i}=e.schema;if("object"===t&&n)for(const t in n)o(e,t,n[t].default);else"array"===t&&Array.isArray(i)&&i.forEach(((t,n)=>o(e,n,t.default)))}},32445:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;const i=n(52733),r=n(57607),o=n(73967),s=n(57607),a=n(66809),c=n(39782),p=n(19706),l=n(16008),d=n(18090),u=n(90178),f=n(8199),m=n(60512);function h({gen:e,validateName:t,schema:n,schemaEnv:i,opts:r},o){r.code.es5?e.func(t,l._`${d.default.data}, ${d.default.valCxt}`,i.$async,(()=>{e.code(l._`"use strict"; ${y(n,r)}`),function(e,t){e.if(d.default.valCxt,(()=>{e.var(d.default.instancePath,l._`${d.default.valCxt}.${d.default.instancePath}`),e.var(d.default.parentData,l._`${d.default.valCxt}.${d.default.parentData}`),e.var(d.default.parentDataProperty,l._`${d.default.valCxt}.${d.default.parentDataProperty}`),e.var(d.default.rootData,l._`${d.default.valCxt}.${d.default.rootData}`),t.dynamicRef&&e.var(d.default.dynamicAnchors,l._`${d.default.valCxt}.${d.default.dynamicAnchors}`)}),(()=>{e.var(d.default.instancePath,l._`""`),e.var(d.default.parentData,l._`undefined`),e.var(d.default.parentDataProperty,l._`undefined`),e.var(d.default.rootData,d.default.data),t.dynamicRef&&e.var(d.default.dynamicAnchors,l._`{}`)}))}(e,r),e.code(o)})):e.func(t,l._`${d.default.data}, ${function(e){return l._`{${d.default.instancePath}="", ${d.default.parentData}, ${d.default.parentDataProperty}, ${d.default.rootData}=${d.default.data}${e.dynamicRef?l._`, ${d.default.dynamicAnchors}={}`:l.nil}}={}`}(r)}`,i.$async,(()=>e.code(y(n,r)).code(o)))}function y(e,t){const n="object"==typeof e&&e[t.schemaId];return n&&(t.code.source||t.code.process)?l._`/*# sourceURL=${n} */`:l.nil}function g({schema:e,self:t}){if("boolean"==typeof e)return!e;for(const n in e)if(t.RULES.all[n])return!0;return!1}function b(e){return"boolean"!=typeof e.schema}function v(e){(0,f.checkUnknownRule
missingProperty: ${r},
depsCount: ${t},
deps: ${n}}`};const s={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(e){const[t,n]=function({schema:e}){const t={},n={};for(const i in e)"__proto__"!==i&&((Array.isArray(e[i])?t:n)[i]=e[i]);return[t,n]}(e);a(e,t),c(e,n)}};function a(e,t=e.schema){const{gen:n,data:r,it:s}=e;if(0===Object.keys(t).length)return;const a=n.let("missing");for(const c in t){const p=t[c];if(0===p.length)continue;const l=(0,o.propertyInData)(n,r,c,s.opts.ownProperties);e.setParams({property:c,depsCount:p.length,deps:p.join(", ")}),s.allErrors?n.if(l,(()=>{for(const t of p)(0,o.checkReportMissingProp)(e,t)})):(n.if(i._`${l} && (${(0,o.checkMissingProp)(e,p,a)})`),(0,o.reportMissingProp)(e,a),n.else())}}function c(e,t=e.schema){const{gen:n,data:i,keyword:s,it:a}=e,c=n.name("valid");for(const p in t)(0,r.alwaysValidSchema)(a,t[p])||(n.if((0,o.propertyInData)(n,i,p,a.opts.ownProperties),(()=>{const t=e.subschema({keyword:s,schemaProp:p},c);e.mergeValidEvaluated(t,c)}),(()=>n.var(c,!0))),e.ok(c))}t.validatePropertyDeps=a,t.validateSchemaDeps=c,t.default=s},7719:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(16008),r=n(8199),o={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:({params:e})=>i.str`must match "${e.ifClause}" schema`,params:({params:e})=>i._`{failingKeyword: ${e.ifClause}}`},code(e){const{gen:t,parentSchema:n,it:o}=e;void 0===n.then&&void 0===n.else&&(0,r.checkStrictMode)(o,'"if" without "then" and "else" is ignored');const a=s(o,"then"),c=s(o,"else");if(!a&&!c)return;const p=t.let("valid",!0),l=t.name("_valid");if(function(){const t=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},l);e.mergeEvaluated(t)}(),e.reset(),a&&c){const n=t.let("ifClause");e.setParams({ifClause:n}),t.if(l,d("then",n),d("else",n))}else a?t.if(l,d("then")):t.if((0,i.not)(l),d("else"));function d(n,r){return()=>{const o=e.subschema({keyword:n},l);t.assign(p,l),e.mergeValidEvaluated(o,p),r?t.assign(r,i._`${n}`):e.setParams({ifClause:n})}}e.pass(p,(()=>e.error(!0)))}};function s(e,t){const n=e.schema[t];return void 0!==n&&!(0,r.alwaysValidSchema)(e,n)}t.default=o},40980:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(90083),r=n(87444),o=n(95901),s=n(50077),a=n(58130),c=n(49334),p=n(13420),l=n(46160),d=n(9689),u=n(54773),f=n(11088),m=n(30407),h=n(42614),y=n(81257),g=n(7719),b=n(8181);t.default=function(e=!1){const t=[f.default,m.default,h.default,y.default,g.default,b.default,p.default,l.default,c.default,d.default,u.default];return e?t.push(r.default,s.default):t.push(i.default,o.default),t.push(a.default),t}},95901:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;const i=n(16008),r=n(8199),o=n(50144),s={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){const{schema:t,it:n}=e;if(Array.isArray(t))return a(e,"additionalItems",t);n.items=!0,(0,r.alwaysValidSchema)(n,t)||e.ok((0,o.validateArray)(e))}};function a(e,t,n=e.schema){const{gen:o,parentSchema:s,data:a,keyword:c,it:p}=e;!function(e){const{opts:i,errSchemaPath:o}=p,s=n.length,a=s===e.minItems&&(s===e.maxItems||!1===e[t]);if(i.strictTuples&&!a){const e=`"${c}" is ${s}-tuple, but minItems or maxItems/${t} are not specified or different at path "${o}"`;(0,r.checkStrictMode)(p,e,i.strictTuples)}}(s),p.opts.unevaluated&&n.length&&!0!==p.items&&(p.items=r.mergeEvaluated.items(o,n.length,p.items));const l=o.name("valid"),d=o.const("len",i._`${a}.length`);n.forEach(((t,n)=>{(0,r.alwaysValidSchema)(p,t)||(o.if(i._`${d} > ${n}`,(()=>e.subschema({keyword:c,schemaProp:n,dataProp:n},l))),e.ok(l))}))}t.validateTuple=a,t.default=s},50077:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(16008),r=n(8199),o=n(50144),s=n(90083),a={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:{message:({params:{len:e}})=>i.str`must NOT have more than ${e} items`,params:({params:{len:e}})=>i._`{limit: ${e}}`},code(e){const{schema:t,pa
|| (${a} == "string" && ${r} && ${r} == +${r})`).assign(c,s._`+${r}`);case"integer":return void i.elseIf(s._`${a} === "boolean" || ${r} === null
|| (${a} === "string" && ${r} && ${r} == +${r} && !(${r} % 1))`).assign(c,s._`+${r}`);case"boolean":return void i.elseIf(s._`${r} === "false" || ${r} === 0 || ${r} === null`).assign(c,!1).elseIf(s._`${r} === "true" || ${r} === 1`).assign(c,!0);case"null":return i.elseIf(s._`${r} === "" || ${r} === 0 || ${r} === false`),void i.assign(c,null);case"array":i.elseIf(s._`${a} === "string" || ${a} === "number"
|| ${a} === "boolean" || ${r} === null`).assign(c,s._`[${r}]`)}}i.else(),m(e),i.endIf(),i.if(s._`${c} !== undefined`,(()=>{i.assign(r,c),function({gen:e,parentData:t,parentDataProperty:n},i){e.if(s._`${t} !== undefined`,(()=>e.assign(s._`${t}[${n}]`,i)))}(e,c)}))}(e,t,a):m(e)}))}return p};const l=new Set(["string","number","integer","boolean","null"]);function d(e,t,n,i=c.Correct){const r=i===c.Correct?s.operators.EQ:s.operators.NEQ;let o;switch(e){case"null":return s._`${t} ${r} null`;case"array":o=s._`Array.isArray(${t})`;break;case"object":o=s._`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":o=a(s._`!(${t} % 1) && !isNaN(${t})`);break;case"number":o=a();break;default:return s._`typeof ${t} ${r} ${e}`}return i===c.Correct?o:(0,s.not)(o);function a(e=s.nil){return(0,s.and)(s._`typeof ${t} == "number"`,e,n?s._`isFinite(${t})`:s.nil)}}function u(e,t,n,i){if(1===e.length)return d(e[0],t,n,i);let r;const o=(0,a.toHash)(e);if(o.array&&o.object){const e=s._`typeof ${t} != "object"`;r=o.null?e:s._`!${t} || ${e}`,delete o.null,delete o.array,delete o.object}else r=s.nil;o.number&&delete o.integer;for(const e in o)r=(0,s.and)(r,d(e,t,n,i));return r}t.checkDataType=d,t.checkDataTypes=u;const f={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>"string"==typeof e?s._`{type: ${e}}`:s._`{type: ${t}}`};function m(e){const t=function(e){const{gen:t,data:n,schema:i}=e,r=(0,a.schemaRefOrVal)(e,i,"type");return{gen:t,keyword:"type",data:n,schema:i.type,schemaCode:r,schemaValue:r,parentSchema:i,params:{},it:e}}(e);(0,o.reportError)(t,f)}t.reportTypeError=m},57054:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;const i=n(48461),r=n(40950);function o(e,t,n){const{gen:o,compositeRule:s,data:a,opts:c}=e;if(void 0===n)return;const p=i._`${a}${(0,i.getProperty)(t)}`;if(s)return void(0,r.checkStrictMode)(e,`default is ignored for: ${p}`);let l=i._`${p} === undefined`;"empty"===c.useDefaults&&(l=i._`${l} || ${p} === null || ${p} === ""`),o.if(l,i._`${p} = ${(0,i.stringify)(n)}`)}t.assignDefaults=function(e,t){const{properties:n,items:i}=e.schema;if("object"===t&&n)for(const t in n)o(e,t,n[t].default);else"array"===t&&Array.isArray(i)&&i.forEach(((t,n)=>o(e,n,t.default)))}},25700:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;const i=n(57122),r=n(85298),o=n(51134),s=n(85298),a=n(57054),c=n(83134),p=n(75197),l=n(48461),d=n(5077),u=n(77679),f=n(40950),m=n(2024);function h({gen:e,validateName:t,schema:n,schemaEnv:i,opts:r},o){r.code.es5?e.func(t,l._`${d.default.data}, ${d.default.valCxt}`,i.$async,(()=>{e.code(l._`"use strict"; ${y(n,r)}`),function(e,t){e.if(d.default.valCxt,(()=>{e.var(d.default.instancePath,l._`${d.default.valCxt}.${d.default.instancePath}`),e.var(d.default.parentData,l._`${d.default.valCxt}.${d.default.parentData}`),e.var(d.default.parentDataProperty,l._`${d.default.valCxt}.${d.default.parentDataProperty}`),e.var(d.default.rootData,l._`${d.default.valCxt}.${d.default.rootData}`),t.dynamicRef&&e.var(d.default.dynamicAnchors,l._`${d.default.valCxt}.${d.default.dynamicAnchors}`)}),(()=>{e.var(d.default.instancePath,l._`""`),e.var(d.default.parentData,l._`undefined`),e.var(d.default.parentDataProperty,l._`undefined`),e.var(d.default.rootData,d.default.data),t.dynamicRef&&e.var(d.default.dynamicAnchors,l._`{}`)}))}(e,r),e.code(o)})):e.func(t,l._`${d.default.data}, ${function(e){return l._`{${d.default.instancePath}="", ${d.default.parentData}, ${d.default.parentDataProperty}, ${d.default.rootData}=${d.default.data}${e.dynamicRef?l._`, ${d.default.dynamicAnchors}={}`:l.nil}}={}`}(r)}`,i.$async,(()=>e.code(y(n,r)).code(o)))}function y(e,t){const n="object"==typeof e&&e[t.schemaId];return n&&(t.code.source||t.code.process)?l._`/*# sourceURL=${n} */`:l.nil}function g({schema:e,self:t}){if("boolean"==typeof e)return!e;for(const n in e)if(t.RULES.all[n])return!0;return!1}function b(e){return"boolean"!=typeof e.schema}function v(e){(0,f.checkUnknownRule
missingProperty: ${r},
depsCount: ${t},
deps: ${n}}`};const s={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(e){const[t,n]=function({schema:e}){const t={},n={};for(const i in e)"__proto__"!==i&&((Array.isArray(e[i])?t:n)[i]=e[i]);return[t,n]}(e);a(e,t),c(e,n)}};function a(e,t=e.schema){const{gen:n,data:r,it:s}=e;if(0===Object.keys(t).length)return;const a=n.let("missing");for(const c in t){const p=t[c];if(0===p.length)continue;const l=(0,o.propertyInData)(n,r,c,s.opts.ownProperties);e.setParams({property:c,depsCount:p.length,deps:p.join(", ")}),s.allErrors?n.if(l,(()=>{for(const t of p)(0,o.checkReportMissingProp)(e,t)})):(n.if(i._`${l} && (${(0,o.checkMissingProp)(e,p,a)})`),(0,o.reportMissingProp)(e,a),n.else())}}function c(e,t=e.schema){const{gen:n,data:i,keyword:s,it:a}=e,c=n.name("valid");for(const p in t)(0,r.alwaysValidSchema)(a,t[p])||(n.if((0,o.propertyInData)(n,i,p,a.opts.ownProperties),(()=>{const t=e.subschema({keyword:s,schemaProp:p},c);e.mergeValidEvaluated(t,c)}),(()=>n.var(c,!0))),e.ok(c))}t.validatePropertyDeps=a,t.validateSchemaDeps=c,t.default=s},73449:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(48461),r=n(40950),o={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:({params:e})=>i.str`must match "${e.ifClause}" schema`,params:({params:e})=>i._`{failingKeyword: ${e.ifClause}}`},code(e){const{gen:t,parentSchema:n,it:o}=e;void 0===n.then&&void 0===n.else&&(0,r.checkStrictMode)(o,'"if" without "then" and "else" is ignored');const a=s(o,"then"),c=s(o,"else");if(!a&&!c)return;const p=t.let("valid",!0),l=t.name("_valid");if(function(){const t=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},l);e.mergeEvaluated(t)}(),e.reset(),a&&c){const n=t.let("ifClause");e.setParams({ifClause:n}),t.if(l,d("then",n),d("else",n))}else a?t.if(l,d("then")):t.if((0,i.not)(l),d("else"));function d(n,r){return()=>{const o=e.subschema({keyword:n},l);t.assign(p,l),e.mergeValidEvaluated(o,p),r?t.assign(r,i._`${n}`):e.setParams({ifClause:n})}}e.pass(p,(()=>e.error(!0)))}};function s(e,t){const n=e.schema[t];return void 0!==n&&!(0,r.alwaysValidSchema)(e,n)}t.default=o},61964:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(59756),r=n(81849),o=n(42031),s=n(8089),a=n(90220),c=n(54853),p=n(21523),l=n(79670),d=n(90704),u=n(66125),f=n(98556),m=n(55812),h=n(94164),y=n(67516),g=n(73449),b=n(65846);t.default=function(e=!1){const t=[f.default,m.default,h.default,y.default,g.default,b.default,p.default,l.default,c.default,d.default,u.default];return e?t.push(r.default,s.default):t.push(i.default,o.default),t.push(a.default),t}},42031:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;const i=n(48461),r=n(40950),o=n(47813),s={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){const{schema:t,it:n}=e;if(Array.isArray(t))return a(e,"additionalItems",t);n.items=!0,(0,r.alwaysValidSchema)(n,t)||e.ok((0,o.validateArray)(e))}};function a(e,t,n=e.schema){const{gen:o,parentSchema:s,data:a,keyword:c,it:p}=e;!function(e){const{opts:i,errSchemaPath:o}=p,s=n.length,a=s===e.minItems&&(s===e.maxItems||!1===e[t]);if(i.strictTuples&&!a){const e=`"${c}" is ${s}-tuple, but minItems or maxItems/${t} are not specified or different at path "${o}"`;(0,r.checkStrictMode)(p,e,i.strictTuples)}}(s),p.opts.unevaluated&&n.length&&!0!==p.items&&(p.items=r.mergeEvaluated.items(o,n.length,p.items));const l=o.name("valid"),d=o.const("len",i._`${a}.length`);n.forEach(((t,n)=>{(0,r.alwaysValidSchema)(p,t)||(o.if(i._`${d} > ${n}`,(()=>e.subschema({keyword:c,schemaProp:n,dataProp:n},l))),e.ok(l))}))}t.validateTuple=a,t.default=s},8089:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(48461),r=n(40950),o=n(47813),s=n(59756),a={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:{message:({params:{len:e}})=>i.str`must NOT have more than ${e} items`,params:({params:{len:e}})=>i._`{limit: ${e}}`},code(e){const{schema
</script>
<script>
const schema = {
"asyncapi": "3.0.0",
"info": {
"title": "TrustGraph WebSocket API",
"version": "1.8",
"description": "WebSocket API for TrustGraph - providing multiplexed, asynchronous access to all services.\n\n## Overview\n\nThe WebSocket API provides access to all TrustGraph services over a single persistent connection:\n- **Multiplexed**: Multiple concurrent requests with ID-based correlation\n- **Asynchronous**: Non-blocking request/response pattern\n- **Efficient**: Lower overhead than HTTP REST\n- **Streaming**: Real-time progressive responses\n\n## Protocol Summary\n\nAll messages are JSON with:\n- `id`: Client-generated unique identifier for request/response correlation\n- `service`: Service identifier (e.g., \"config\", \"agent\", \"document-rag\")\n- `flow`: Optional flow ID for flow-hosted services\n- `request`/`response`: Service-specific payload (identical to REST API schemas)\n- `error`: Error information on failure\n\n## Service Types\n\n**Global Services** (no `flow` parameter):\n- config, flow, librarian, knowledge, collection-management\n\n**Flow-Hosted Services** (require `flow` parameter):\n- agent, text-completion, prompt, document-rag, graph-rag\n- embeddings, graph-embeddings, document-embeddings\n- triples, objects, nlp-query, structured-query, structured-diag\n- text-load, document-load, mcp-tool\n\n## Schema Reuse\n\nRequest and response payloads use identical schemas to the REST API.\nSee OpenAPI specification for detailed schema documentation.\n",
"contact": {
"name": "TrustGraph Project",
"url": "https://trustgraph.ai"
},
"license": {
"name": "Apache 2.0",
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
}
},
"servers": {
"production": {
"host": "localhost:8088",
"protocol": "ws",
"description": "Local development WebSocket server",
"security": [
{
"type": "httpApiKey",
"name": "token",
"in": "query",
"description": "Bearer token authentication when GATEWAY_SECRET is configured.\nInclude as query parameter: ws://localhost:8088/api/v1/socket?token=<token>\n"
}
]
}
},
"defaultContentType": "application/json",
"channels": {
"socket": {
"address": "/api/v1/socket",
"description": "Primary WebSocket channel for all TrustGraph services.\n\nThis single channel provides multiplexed access to:\n- All global services (config, flow, librarian, knowledge, collection-management)\n- All flow-hosted services (agent, RAG, embeddings, queries, loading, etc.)\n\n## Multiplexing\n\nMultiple requests can be sent concurrently over this channel. Each request includes\na unique `id` field that is echoed back in responses for correlation.\n\n## Message Flow\n\n1. Client sends request with unique `id`, `service`, optional `flow`, and `request` payload\n2. Server processes request asynchronously\n3. Server sends response(s) with matching `id` and either `response` or `error`\n4. For streaming services, multiple responses may be sent with the same `id`\n\n## Service Routing\n\nMessages are routed to services based on:\n- `service`: Service identifier (required)\n- `flow`: Flow ID (required for flow-hosted services, omitted for global services)\n",
"messages": {
"request": {
"name": "ServiceRequest",
"title": "Service Request Message",
"summary": "Request message for any TrustGraph service",
"description": "Generic request message that can invoke any TrustGraph service.\n\nThe `request` field payload varies by service and matches the REST API request body schema.\n",
"payload": {
"description": "Service request envelope with id, service, optional flow, and service-specific request payload",
"oneOf": [
{
"type": "object",
"description": "WebSocket request for config service (global service)",
"required": [
"id",
"service",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-3>"
},
"service": {
"type": "string",
"const": "config",
"description": "Service identifier for config service",
"x-parser-schema-id": "<anonymous-schema-4>"
},
"request": {
"type": "object",
"description": "Configuration service request.\n\nSupports operations: config, list, get, put, delete\n",
"required": [
"operation"
],
"properties": {
"operation": {
"type": "string",
"enum": [
"config",
"list",
"get",
"put",
"delete"
],
"description": "Operation to perform:\n- `config`: Get complete configuration\n- `list`: List all items of a specific type\n- `get`: Get specific configuration items\n- `put`: Set/update configuration values\n- `delete`: Delete configuration items\n",
"example": "config",
"x-parser-schema-id": "<anonymous-schema-6>"
},
"type": {
"type": "string",
"description": "Configuration type (required for list, get, put, delete operations).\nCommon types: flow, prompt, token-cost, parameter-type, interface-description\n",
"example": "flow",
"x-parser-schema-id": "<anonymous-schema-7>"
},
"keys": {
"type": "array",
"description": "Keys to retrieve (for get operation) or delete (for delete operation)",
"items": {
"type": "object",
"required": [
"type",
"key"
],
"properties": {
"type": {
"type": "string",
"description": "Configuration type",
"example": "flow",
"x-parser-schema-id": "<anonymous-schema-10>"
},
"key": {
"type": "string",
"description": "Configuration key",
"example": "my-flow",
"x-parser-schema-id": "<anonymous-schema-11>"
}
},
"x-parser-schema-id": "<anonymous-schema-9>"
},
"x-parser-schema-id": "<anonymous-schema-8>"
},
"values": {
"type": "array",
"description": "Values to set/update (for put operation)",
"items": {
"type": "object",
"required": [
"type",
"key",
"value"
],
"properties": {
"type": {
"type": "string",
"description": "Configuration type",
"example": "flow",
"x-parser-schema-id": "<anonymous-schema-14>"
},
"key": {
"type": "string",
"description": "Configuration key",
"example": "my-flow",
"x-parser-schema-id": "<anonymous-schema-15>"
},
"value": {
"type": "object",
"description": "Configuration value (structure depends on type)",
"additionalProperties": true,
"example": {
"blueprint-name": "document-rag",
"description": "My RAG flow"
},
"x-parser-schema-id": "<anonymous-schema-16>"
}
},
"x-parser-schema-id": "<anonymous-schema-13>"
},
"x-parser-schema-id": "<anonymous-schema-12>"
}
},
"x-parser-schema-id": "<anonymous-schema-5>"
}
},
"examples": [
{
"id": "req-1",
"service": "config",
"request": {
"operation": "list",
"type": "flow"
}
},
{
"id": "req-2",
"service": "config",
"request": {
"operation": "get",
"keys": [
{
"type": "flow",
"key": "my-flow"
}
]
}
}
],
"x-parser-schema-id": "<anonymous-schema-2>"
},
{
"type": "object",
"description": "WebSocket request for flow service (global service)",
"required": [
"id",
"service",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-18>"
},
"service": {
"type": "string",
"const": "flow",
"description": "Service identifier for flow service",
"x-parser-schema-id": "<anonymous-schema-19>"
},
"request": {
"type": "object",
"description": "Flow service request for managing flow instances and blueprints.\n\nOperations: start-flow, stop-flow, list-flows, get-flow,\nlist-blueprints, get-blueprint, put-blueprint, delete-blueprint\n",
"required": [
"operation"
],
"properties": {
"operation": {
"type": "string",
"enum": [
"start-flow",
"stop-flow",
"list-flows",
"get-flow",
"list-blueprints",
"get-blueprint",
"put-blueprint",
"delete-blueprint"
],
"description": "Flow operation:\n- `start-flow`: Start a new flow instance from a blueprint\n- `stop-flow`: Stop a running flow instance\n- `list-flows`: List all running flow instances\n- `get-flow`: Get details of a running flow\n- `list-blueprints`: List available flow blueprints\n- `get-blueprint`: Get blueprint definition\n- `put-blueprint`: Create/update blueprint definition\n- `delete-blueprint`: Delete blueprint definition\n",
"x-parser-schema-id": "<anonymous-schema-21>"
},
"flow-id": {
"type": "string",
"description": "Flow instance ID (required for start-flow, stop-flow, get-flow)",
"example": "my-flow",
"x-parser-schema-id": "<anonymous-schema-22>"
},
"blueprint-name": {
"type": "string",
"description": "Flow blueprint name (required for start-flow, get-blueprint, put-blueprint, delete-blueprint)",
"example": "document-rag",
"x-parser-schema-id": "<anonymous-schema-23>"
},
"blueprint-definition": {
"type": "object",
"description": "Flow blueprint definition (required for put-blueprint)",
"additionalProperties": true,
"example": {
"description": "Custom RAG pipeline",
"parameters": {
"model": {
"type": "llm-model",
"description": "LLM model for processing",
"order": 1
}
},
"class": {
"text-completion:{class}": {
"request": "non-persistent://tg/request/text-completion:{class}",
"response": "non-persistent://tg/response/text-completion:{class}"
}
},
"flow": {
"chunker:{id}": {
"input": "persistent://tg/flow/chunk:{id}",
"output": "persistent://tg/flow/chunk-load:{id}"
}
},
"interfaces": {
"agent": {
"request": "non-persistent://tg/request/agent:{id}",
"response": "non-persistent://tg/response/agent:{id}"
}
}
},
"x-parser-schema-id": "<anonymous-schema-24>"
},
"description": {
"type": "string",
"description": "Flow description (optional for start-flow)",
"example": "My document processing flow",
"x-parser-schema-id": "<anonymous-schema-25>"
},
"parameters": {
"type": "object",
"description": "Flow parameters (for start-flow).\nAll values are stored as strings, regardless of input type.\n",
"additionalProperties": {
"type": "string",
"x-parser-schema-id": "<anonymous-schema-27>"
},
"example": {
"model": "gpt-4",
"temperature": "0.7",
"chunk-size": "1000"
},
"x-parser-schema-id": "<anonymous-schema-26>"
}
},
"x-parser-schema-id": "<anonymous-schema-20>"
}
},
"examples": [
{
"id": "req-1",
"service": "flow",
"request": {
"operation": "list"
}
},
{
"id": "req-2",
"service": "flow",
"request": {
"operation": "start",
"flow": "my-flow",
"blueprint": "default-blueprint"
}
}
],
"x-parser-schema-id": "<anonymous-schema-17>"
},
{
"type": "object",
"description": "WebSocket request for librarian service (global service)",
"required": [
"id",
"service",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-29>"
},
"service": {
"type": "string",
"const": "librarian",
"description": "Service identifier for librarian service",
"x-parser-schema-id": "<anonymous-schema-30>"
},
"request": {
"type": "object",
"description": "Librarian service request for document library management.\n\nOperations: add-document, remove-document, list-documents,\nstart-processing, stop-processing, list-processing\n",
"required": [
"operation"
],
"properties": {
"operation": {
"type": "string",
"enum": [
"add-document",
"remove-document",
"list-documents",
"start-processing",
"stop-processing",
"list-processing"
],
"description": "Library operation:\n- `add-document`: Add document to library\n- `remove-document`: Remove document from library\n- `list-documents`: List documents in library\n- `start-processing`: Start processing library documents\n- `stop-processing`: Stop library processing\n- `list-processing`: List processing status\n",
"x-parser-schema-id": "<anonymous-schema-32>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"example": "my-flow",
"x-parser-schema-id": "<anonymous-schema-33>"
},
"collection": {
"type": "string",
"description": "Collection identifier",
"default": "default",
"example": "default",
"x-parser-schema-id": "<anonymous-schema-34>"
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-35>"
},
"document-id": {
"type": "string",
"description": "Document identifier",
"example": "doc-123",
"x-parser-schema-id": "<anonymous-schema-36>"
},
"processing-id": {
"type": "string",
"description": "Processing task identifier",
"example": "proc-456",
"x-parser-schema-id": "<anonymous-schema-37>"
},
"document-metadata": {
"type": "object",
"description": "Document metadata for library management",
"properties": {
"url": {
"type": "string",
"description": "Document URL or identifier",
"example": "https://example.com/document.pdf",
"x-parser-schema-id": "<anonymous-schema-39>"
},
"title": {
"type": "string",
"description": "Document title",
"example": "Example Document",
"x-parser-schema-id": "<anonymous-schema-40>"
},
"author": {
"type": "string",
"description": "Document author",
"example": "John Doe",
"x-parser-schema-id": "<anonymous-schema-41>"
},
"date": {
"type": "string",
"description": "Document date",
"example": "2024-01-15",
"x-parser-schema-id": "<anonymous-schema-42>"
},
"metadata": {
"type": "object",
"description": "Additional metadata fields",
"additionalProperties": true,
"example": {
"department": "Engineering",
"category": "Technical"
},
"x-parser-schema-id": "<anonymous-schema-43>"
}
},
"x-parser-schema-id": "<anonymous-schema-38>"
},
"processing-metadata": {
"type": "object",
"description": "Processing metadata for library document processing",
"properties": {
"flow": {
"type": "string",
"description": "Flow ID",
"example": "my-flow",
"x-parser-schema-id": "<anonymous-schema-45>"
},
"collection": {
"type": "string",
"description": "Collection identifier",
"example": "default",
"x-parser-schema-id": "<anonymous-schema-46>"
},
"status": {
"type": "string",
"description": "Processing status",
"enum": [
"pending",
"processing",
"completed",
"failed"
],
"example": "completed",
"x-parser-schema-id": "<anonymous-schema-47>"
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "Processing timestamp",
"example": "2024-01-15T10:30:00Z",
"x-parser-schema-id": "<anonymous-schema-48>"
},
"error": {
"type": "string",
"description": "Error message if processing failed",
"example": "Failed to extract text from PDF",
"x-parser-schema-id": "<anonymous-schema-49>"
}
},
"x-parser-schema-id": "<anonymous-schema-44>"
},
"content": {
"type": "string",
"description": "Document content (for add-document with inline content)",
"example": "This is the document content...",
"x-parser-schema-id": "<anonymous-schema-50>"
},
"criteria": {
"type": "array",
"description": "Search criteria for filtering documents",
"items": {
"type": "object",
"required": [
"key",
"value",
"operator"
],
"properties": {
"key": {
"type": "string",
"description": "Metadata field name",
"example": "author",
"x-parser-schema-id": "<anonymous-schema-53>"
},
"value": {
"type": "string",
"description": "Value to match",
"example": "John Doe",
"x-parser-schema-id": "<anonymous-schema-54>"
},
"operator": {
"type": "string",
"enum": [
"eq",
"ne",
"gt",
"lt",
"contains"
],
"description": "Comparison operator",
"example": "eq",
"x-parser-schema-id": "<anonymous-schema-55>"
}
},
"x-parser-schema-id": "<anonymous-schema-52>"
},
"x-parser-schema-id": "<anonymous-schema-51>"
}
},
"x-parser-schema-id": "<anonymous-schema-31>"
}
},
"examples": [
{
"id": "req-1",
"service": "librarian",
"request": {
"operation": "list",
"collection": "default"
}
}
],
"x-parser-schema-id": "<anonymous-schema-28>"
},
{
"type": "object",
"description": "WebSocket request for knowledge service (global service)",
"required": [
"id",
"service",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-57>"
},
"service": {
"type": "string",
"const": "knowledge",
"description": "Service identifier for knowledge service",
"x-parser-schema-id": "<anonymous-schema-58>"
},
"request": {
"type": "object",
"description": "Knowledge graph core management request.\n\nOperations: list-kg-cores, get-kg-core, put-kg-core, delete-kg-core,\nload-kg-core, unload-kg-core\n",
"required": [
"operation"
],
"properties": {
"operation": {
"type": "string",
"enum": [
"list-kg-cores",
"get-kg-core",
"put-kg-core",
"delete-kg-core",
"load-kg-core",
"unload-kg-core"
],
"description": "Knowledge core operation:\n- `list-kg-cores`: List knowledge cores for user\n- `get-kg-core`: Get knowledge core by ID\n- `put-kg-core`: Store triples and/or embeddings\n- `delete-kg-core`: Delete knowledge core by ID\n- `load-kg-core`: Load knowledge core into flow\n- `unload-kg-core`: Unload knowledge core from flow\n",
"x-parser-schema-id": "<anonymous-schema-60>"
},
"user": {
"type": "string",
"description": "User identifier (for list-kg-cores, put-kg-core, delete-kg-core)",
"default": "trustgraph",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-61>"
},
"id": {
"type": "string",
"description": "Knowledge core ID (for get, put, delete, load, unload)",
"example": "core-123",
"x-parser-schema-id": "<anonymous-schema-62>"
},
"flow": {
"type": "string",
"description": "Flow ID (for load-kg-core)",
"example": "my-flow",
"x-parser-schema-id": "<anonymous-schema-63>"
},
"collection": {
"type": "string",
"description": "Collection identifier (for load-kg-core)",
"default": "default",
"example": "default",
"x-parser-schema-id": "<anonymous-schema-64>"
},
"triples": {
"type": "object",
"description": "Triples to store (for put-kg-core)",
"required": [
"metadata",
"triples"
],
"properties": {
"metadata": {
"type": "object",
"required": [
"id",
"user",
"collection"
],
"properties": {
"id": {
"type": "string",
"description": "Knowledge core ID",
"example": "core-123",
"x-parser-schema-id": "<anonymous-schema-67>"
},
"user": {
"type": "string",
"description": "User identifier",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-68>"
},
"collection": {
"type": "string",
"description": "Collection identifier",
"example": "default",
"x-parser-schema-id": "<anonymous-schema-69>"
},
"metadata": {
"type": "array",
"description": "Metadata triples",
"items": {
"type": "object",
"description": "RDF triple (subject-predicate-object)",
"required": [
"s",
"p",
"o"
],
"properties": {
"s": {
"type": "object",
"description": "RDF value - can be entity/URI or literal",
"required": [
"v",
"e"
],
"properties": {
"v": {
"type": "string",
"description": "Value (URI or literal text)",
"example": "https://example.com/entity1",
"x-parser-schema-id": "<anonymous-schema-73>"
},
"e": {
"type": "boolean",
"description": "True if entity/URI, false if literal",
"example": true,
"x-parser-schema-id": "<anonymous-schema-74>"
}
},
"x-parser-schema-id": "<anonymous-schema-72>"
},
"p": "$ref:$.channels.socket.messages.request.payload.oneOf[3].properties.request.properties.triples.properties.metadata.properties.metadata.items.properties.s",
"o": "$ref:$.channels.socket.messages.request.payload.oneOf[3].properties.request.properties.triples.properties.metadata.properties.metadata.items.properties.s"
},
"x-parser-schema-id": "<anonymous-schema-71>"
},
"x-parser-schema-id": "<anonymous-schema-70>"
}
},
"x-parser-schema-id": "<anonymous-schema-66>"
},
"triples": {
"type": "array",
"description": "Knowledge triples",
"items": "$ref:$.channels.socket.messages.request.payload.oneOf[3].properties.request.properties.triples.properties.metadata.properties.metadata.items",
"x-parser-schema-id": "<anonymous-schema-75>"
}
},
"x-parser-schema-id": "<anonymous-schema-65>"
},
"graph-embeddings": {
"type": "object",
"description": "Graph embeddings to store (for put-kg-core)",
"required": [
"metadata",
"entities"
],
"properties": {
"metadata": {
"type": "object",
"required": [
"id",
"user",
"collection"
],
"properties": {
"id": {
"type": "string",
"description": "Knowledge core ID",
"example": "core-123",
"x-parser-schema-id": "<anonymous-schema-78>"
},
"user": {
"type": "string",
"description": "User identifier",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-79>"
},
"collection": {
"type": "string",
"description": "Collection identifier",
"example": "default",
"x-parser-schema-id": "<anonymous-schema-80>"
},
"metadata": {
"type": "array",
"description": "Metadata triples",
"items": "$ref:$.channels.socket.messages.request.payload.oneOf[3].properties.request.properties.triples.properties.metadata.properties.metadata.items",
"x-parser-schema-id": "<anonymous-schema-81>"
}
},
"x-parser-schema-id": "<anonymous-schema-77>"
},
"entities": {
"type": "array",
"description": "Entity embeddings",
"items": {
"type": "object",
"required": [
"entity",
"vectors"
],
"properties": {
"entity": "$ref:$.channels.socket.messages.request.payload.oneOf[3].properties.request.properties.triples.properties.metadata.properties.metadata.items.properties.s",
"vectors": {
"type": "array",
"description": "Embedding vectors",
"items": {
"type": "number",
"x-parser-schema-id": "<anonymous-schema-85>"
},
"example": [
0.1,
0.2,
0.3
],
"x-parser-schema-id": "<anonymous-schema-84>"
}
},
"x-parser-schema-id": "<anonymous-schema-83>"
},
"x-parser-schema-id": "<anonymous-schema-82>"
}
},
"x-parser-schema-id": "<anonymous-schema-76>"
}
},
"x-parser-schema-id": "<anonymous-schema-59>"
}
},
"examples": [
{
"id": "req-1",
"service": "knowledge",
"request": {
"operation": "store",
"triples": [
{
"s": {
"v": "https://example.com/entity1",
"e": true
},
"p": {
"v": "https://example.com/relates-to",
"e": true
},
"o": {
"v": "https://example.com/entity2",
"e": true
}
}
]
}
}
],
"x-parser-schema-id": "<anonymous-schema-56>"
},
{
"type": "object",
"description": "WebSocket request for collection-management service (global service)",
"required": [
"id",
"service",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-87>"
},
"service": {
"type": "string",
"const": "collection-management",
"description": "Service identifier for collection-management service",
"x-parser-schema-id": "<anonymous-schema-88>"
},
"request": {
"type": "object",
"description": "Collection management request.\n\nOperations: list-collections, update-collection, delete-collection\n",
"required": [
"operation"
],
"properties": {
"operation": {
"type": "string",
"enum": [
"list-collections",
"update-collection",
"delete-collection"
],
"description": "Collection operation:\n- `list-collections`: List collections for user\n- `update-collection`: Create or update collection metadata\n- `delete-collection`: Delete collection\n",
"x-parser-schema-id": "<anonymous-schema-90>"
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-91>"
},
"collection": {
"type": "string",
"description": "Collection identifier (for update, delete)",
"example": "research",
"x-parser-schema-id": "<anonymous-schema-92>"
},
"timestamp": {
"type": "string",
"description": "ISO timestamp",
"format": "date-time",
"example": "2024-01-15T10:30:00Z",
"x-parser-schema-id": "<anonymous-schema-93>"
},
"name": {
"type": "string",
"description": "Human-readable collection name (for update)",
"example": "Research Papers",
"x-parser-schema-id": "<anonymous-schema-94>"
},
"description": {
"type": "string",
"description": "Collection description (for update)",
"example": "Academic research papers on AI and ML",
"x-parser-schema-id": "<anonymous-schema-95>"
},
"tags": {
"type": "array",
"description": "Collection tags for organization (for update)",
"items": {
"type": "string",
"x-parser-schema-id": "<anonymous-schema-97>"
},
"example": [
"research",
"AI",
"academic"
],
"x-parser-schema-id": "<anonymous-schema-96>"
},
"tag-filter": {
"type": "array",
"description": "Filter collections by tags (for list)",
"items": {
"type": "string",
"x-parser-schema-id": "<anonymous-schema-99>"
},
"example": [
"research"
],
"x-parser-schema-id": "<anonymous-schema-98>"
},
"limit": {
"type": "integer",
"description": "Maximum number of results (for list)",
"default": 0,
"example": 100,
"x-parser-schema-id": "<anonymous-schema-100>"
}
},
"x-parser-schema-id": "<anonymous-schema-89>"
}
},
"examples": [
{
"id": "req-1",
"service": "collection-management",
"request": {
"operation": "list"
}
}
],
"x-parser-schema-id": "<anonymous-schema-86>"
},
{
"type": "object",
"description": "WebSocket request for agent service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-102>"
},
"service": {
"type": "string",
"const": "agent",
"description": "Service identifier for agent service",
"x-parser-schema-id": "<anonymous-schema-103>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-104>"
},
"request": {
"type": "object",
"description": "Agent service request - conversational AI agent that can reason and take actions.\n",
"required": [
"question"
],
"properties": {
"question": {
"type": "string",
"description": "User question or prompt for the agent",
"example": "What is the capital of France?",
"x-parser-schema-id": "<anonymous-schema-106>"
},
"state": {
"type": "string",
"description": "Agent state for continuation (optional, for multi-turn)",
"example": "agent-state-12345",
"x-parser-schema-id": "<anonymous-schema-107>"
},
"group": {
"type": "array",
"description": "Group identifiers for collaborative agents (optional)",
"items": {
"type": "string",
"x-parser-schema-id": "<anonymous-schema-109>"
},
"example": [
"research-team"
],
"x-parser-schema-id": "<anonymous-schema-108>"
},
"history": {
"type": "array",
"description": "Conversation history (optional, list of previous agent steps)",
"items": {
"type": "object",
"properties": {
"thought": {
"type": "string",
"description": "Agent's reasoning",
"example": "I need to search for information about Paris",
"x-parser-schema-id": "<anonymous-schema-112>"
},
"action": {
"type": "string",
"description": "Action taken",
"example": "search",
"x-parser-schema-id": "<anonymous-schema-113>"
},
"arguments": {
"type": "object",
"description": "Action arguments",
"additionalProperties": {
"type": "string",
"x-parser-schema-id": "<anonymous-schema-115>"
},
"example": {
"query": "capital of France"
},
"x-parser-schema-id": "<anonymous-schema-114>"
},
"observation": {
"type": "string",
"description": "Result of the action",
"example": "Paris is the capital of France",
"x-parser-schema-id": "<anonymous-schema-116>"
},
"user": {
"type": "string",
"description": "User context for this step",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-117>"
}
},
"x-parser-schema-id": "<anonymous-schema-111>"
},
"x-parser-schema-id": "<anonymous-schema-110>"
},
"user": {
"type": "string",
"description": "User identifier for multi-tenancy",
"default": "trustgraph",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-118>"
},
"streaming": {
"type": "boolean",
"description": "Enable streaming response delivery",
"default": false,
"example": true,
"x-parser-schema-id": "<anonymous-schema-119>"
}
},
"x-parser-schema-id": "<anonymous-schema-105>"
}
},
"examples": [
{
"id": "req-1",
"service": "agent",
"flow": "my-flow",
"request": {
"question": "What is quantum computing?",
"streaming": true,
"system-prompt": "You are a helpful assistant"
}
}
],
"x-parser-schema-id": "<anonymous-schema-101>"
},
{
"type": "object",
"description": "WebSocket request for document-rag service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-121>"
},
"service": {
"type": "string",
"const": "document-rag",
"description": "Service identifier for document-rag service",
"x-parser-schema-id": "<anonymous-schema-122>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-123>"
},
"request": {
"type": "object",
"description": "Document RAG (Retrieval-Augmented Generation) query request.\nSearches document embeddings and generates answer using retrieved context.\n",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "User query or question",
"example": "What are the key findings in the research papers?",
"x-parser-schema-id": "<anonymous-schema-125>"
},
"user": {
"type": "string",
"description": "User identifier for multi-tenancy",
"default": "trustgraph",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-126>"
},
"collection": {
"type": "string",
"description": "Collection to search within",
"default": "default",
"example": "research",
"x-parser-schema-id": "<anonymous-schema-127>"
},
"doc-limit": {
"type": "integer",
"description": "Maximum number of documents to retrieve",
"default": 20,
"minimum": 1,
"maximum": 100,
"example": 10,
"x-parser-schema-id": "<anonymous-schema-128>"
},
"streaming": {
"type": "boolean",
"description": "Enable streaming response delivery",
"default": false,
"example": true,
"x-parser-schema-id": "<anonymous-schema-129>"
}
},
"x-parser-schema-id": "<anonymous-schema-124>"
}
},
"examples": [
{
"id": "req-1",
"service": "document-rag",
"flow": "my-flow",
"request": {
"query": "What are the main features?",
"streaming": true,
"doc-limit": 20
}
}
],
"x-parser-schema-id": "<anonymous-schema-120>"
},
{
"type": "object",
"description": "WebSocket request for graph-rag service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-131>"
},
"service": {
"type": "string",
"const": "graph-rag",
"description": "Service identifier for graph-rag service",
"x-parser-schema-id": "<anonymous-schema-132>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-133>"
},
"request": {
"type": "object",
"description": "Graph RAG (Retrieval-Augmented Generation) query request.\nSearches knowledge graph and generates answer using retrieved subgraph.\n",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "User query or question",
"example": "What connections exist between quantum physics and computer science?",
"x-parser-schema-id": "<anonymous-schema-135>"
},
"user": {
"type": "string",
"description": "User identifier for multi-tenancy",
"default": "trustgraph",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-136>"
},
"collection": {
"type": "string",
"description": "Collection to search within",
"default": "default",
"example": "research",
"x-parser-schema-id": "<anonymous-schema-137>"
},
"entity-limit": {
"type": "integer",
"description": "Maximum number of entities to retrieve",
"default": 50,
"minimum": 1,
"maximum": 200,
"example": 30,
"x-parser-schema-id": "<anonymous-schema-138>"
},
"triple-limit": {
"type": "integer",
"description": "Maximum number of triples to retrieve per entity",
"default": 30,
"minimum": 1,
"maximum": 100,
"example": 20,
"x-parser-schema-id": "<anonymous-schema-139>"
},
"max-subgraph-size": {
"type": "integer",
"description": "Maximum total subgraph size (triples)",
"default": 1000,
"minimum": 10,
"maximum": 5000,
"example": 500,
"x-parser-schema-id": "<anonymous-schema-140>"
},
"max-path-length": {
"type": "integer",
"description": "Maximum path length for graph traversal",
"default": 2,
"minimum": 1,
"maximum": 5,
"example": 3,
"x-parser-schema-id": "<anonymous-schema-141>"
},
"streaming": {
"type": "boolean",
"description": "Enable streaming response delivery",
"default": false,
"example": true,
"x-parser-schema-id": "<anonymous-schema-142>"
}
},
"x-parser-schema-id": "<anonymous-schema-134>"
}
},
"examples": [
{
"id": "req-1",
"service": "graph-rag",
"flow": "my-flow",
"request": {
"query": "What entities are related to quantum computing?",
"streaming": true,
"triple-limit": 100
}
}
],
"x-parser-schema-id": "<anonymous-schema-130>"
},
{
"type": "object",
"description": "WebSocket request for text-completion service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-144>"
},
"service": {
"type": "string",
"const": "text-completion",
"description": "Service identifier for text-completion service",
"x-parser-schema-id": "<anonymous-schema-145>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-146>"
},
"request": {
"type": "object",
"description": "Text completion request - direct LLM completion without RAG.\n",
"required": [
"system",
"prompt"
],
"properties": {
"system": {
"type": "string",
"description": "System prompt that sets behavior and context for the LLM",
"example": "You are a helpful assistant that provides concise answers.",
"x-parser-schema-id": "<anonymous-schema-148>"
},
"prompt": {
"type": "string",
"description": "User prompt or question",
"example": "Explain the concept of recursion in programming.",
"x-parser-schema-id": "<anonymous-schema-149>"
},
"streaming": {
"type": "boolean",
"description": "Enable streaming response delivery",
"default": false,
"example": true,
"x-parser-schema-id": "<anonymous-schema-150>"
}
},
"x-parser-schema-id": "<anonymous-schema-147>"
}
},
"examples": [
{
"id": "req-1",
"service": "text-completion",
"flow": "my-flow",
"request": {
"prompt": "Once upon a time",
"streaming": true,
"max-output-tokens": 100
}
}
],
"x-parser-schema-id": "<anonymous-schema-143>"
},
{
"type": "object",
"description": "WebSocket request for prompt service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-152>"
},
"service": {
"type": "string",
"const": "prompt",
"description": "Service identifier for prompt service",
"x-parser-schema-id": "<anonymous-schema-153>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-154>"
},
"request": {
"type": "object",
"description": "Prompt service request - template-based text generation.\n\nExecute a stored prompt template with variable substitution.\n",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Prompt template ID (stored in config)",
"example": "summarize-document",
"x-parser-schema-id": "<anonymous-schema-156>"
},
"terms": {
"type": "object",
"description": "Template variables as key-value pairs (values are JSON strings)",
"additionalProperties": {
"type": "string",
"x-parser-schema-id": "<anonymous-schema-158>"
},
"example": {
"document": "\"This is the document text to summarize...\"",
"max_length": "\"200\""
},
"x-parser-schema-id": "<anonymous-schema-157>"
},
"variables": {
"type": "object",
"description": "Alternative to terms - variables as native JSON values (auto-converted)",
"additionalProperties": {
"x-parser-schema-id": "<anonymous-schema-160>"
},
"example": {
"document": "This is the document text to summarize...",
"max_length": 200
},
"x-parser-schema-id": "<anonymous-schema-159>"
},
"streaming": {
"type": "boolean",
"description": "Enable streaming response delivery",
"default": false,
"example": true,
"x-parser-schema-id": "<anonymous-schema-161>"
}
},
"x-parser-schema-id": "<anonymous-schema-155>"
}
},
"examples": [
{
"id": "req-1",
"service": "prompt",
"flow": "my-flow",
"request": {
"template": "default-template",
"variables": {
"topic": "quantum computing",
"style": "technical"
}
}
}
],
"x-parser-schema-id": "<anonymous-schema-151>"
},
{
"type": "object",
"description": "WebSocket request for embeddings service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-163>"
},
"service": {
"type": "string",
"const": "embeddings",
"description": "Service identifier for embeddings service",
"x-parser-schema-id": "<anonymous-schema-164>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-165>"
},
"request": {
"type": "object",
"description": "Embeddings request - convert text to vector embedding.\n",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "Text to convert to embedding vector",
"example": "Quantum computing uses quantum mechanics principles for computation.",
"x-parser-schema-id": "<anonymous-schema-167>"
}
},
"x-parser-schema-id": "<anonymous-schema-166>"
}
},
"examples": [
{
"id": "req-1",
"service": "embeddings",
"flow": "my-flow",
"request": {
"text": "What is quantum computing?"
}
}
],
"x-parser-schema-id": "<anonymous-schema-162>"
},
{
"type": "object",
"description": "WebSocket request for mcp-tool service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-169>"
},
"service": {
"type": "string",
"const": "mcp-tool",
"description": "Service identifier for mcp-tool service",
"x-parser-schema-id": "<anonymous-schema-170>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-171>"
},
"request": {
"type": "object",
"description": "MCP tool request - execute Model Context Protocol tool.\n",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Tool name to execute",
"example": "search",
"x-parser-schema-id": "<anonymous-schema-173>"
},
"parameters": {
"type": "object",
"description": "Tool parameters (JSON object, auto-converted to string internally)",
"additionalProperties": {
"x-parser-schema-id": "<anonymous-schema-175>"
},
"example": {
"query": "quantum computing",
"limit": 10
},
"x-parser-schema-id": "<anonymous-schema-174>"
}
},
"x-parser-schema-id": "<anonymous-schema-172>"
}
},
"examples": [
{
"id": "req-1",
"service": "mcp-tool",
"flow": "my-flow",
"request": {
"tool": "calculator",
"arguments": {
"operation": "add",
"a": 5,
"b": 3
}
}
}
],
"x-parser-schema-id": "<anonymous-schema-168>"
},
{
"type": "object",
"description": "WebSocket request for triples service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-177>"
},
"service": {
"type": "string",
"const": "triples",
"description": "Service identifier for triples service",
"x-parser-schema-id": "<anonymous-schema-178>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-179>"
},
"request": {
"type": "object",
"description": "Triples query request - query knowledge graph by subject/predicate/object pattern.\n",
"properties": {
"s": "$ref:$.channels.socket.messages.request.payload.oneOf[3].properties.request.properties.triples.properties.metadata.properties.metadata.items.properties.s",
"p": "$ref:$.channels.socket.messages.request.payload.oneOf[3].properties.request.properties.triples.properties.metadata.properties.metadata.items.properties.s",
"o": "$ref:$.channels.socket.messages.request.payload.oneOf[3].properties.request.properties.triples.properties.metadata.properties.metadata.items.properties.s",
"limit": {
"type": "integer",
"description": "Maximum number of triples to return",
"default": 10000,
"minimum": 1,
"maximum": 100000,
"example": 100,
"x-parser-schema-id": "<anonymous-schema-181>"
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-182>"
},
"collection": {
"type": "string",
"description": "Collection to query",
"default": "default",
"example": "research",
"x-parser-schema-id": "<anonymous-schema-183>"
}
},
"x-parser-schema-id": "<anonymous-schema-180>"
}
},
"examples": [
{
"id": "req-1",
"service": "triples",
"flow": "my-flow",
"request": {
"s": {
"v": "https://example.com/entity1",
"e": true
},
"limit": 100
}
}
],
"x-parser-schema-id": "<anonymous-schema-176>"
},
{
"type": "object",
"description": "WebSocket request for objects service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-185>"
},
"service": {
"type": "string",
"const": "objects",
"description": "Service identifier for objects service",
"x-parser-schema-id": "<anonymous-schema-186>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-187>"
},
"request": {
"type": "object",
"description": "Objects query request - GraphQL query over knowledge graph.\n",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "GraphQL query string",
"example": "query GetPerson($id: ID!) {\n person(id: $id) {\n name\n email\n knows {\n name\n }\n }\n}\n",
"x-parser-schema-id": "<anonymous-schema-189>"
},
"variables": {
"type": "object",
"description": "GraphQL query variables",
"additionalProperties": {
"type": "string",
"x-parser-schema-id": "<anonymous-schema-191>"
},
"example": {
"id": "https://example.com/person/alice"
},
"x-parser-schema-id": "<anonymous-schema-190>"
},
"operation-name": {
"type": "string",
"description": "Operation name (for multi-operation documents)",
"example": "GetPerson",
"x-parser-schema-id": "<anonymous-schema-192>"
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-193>"
},
"collection": {
"type": "string",
"description": "Collection to query",
"default": "default",
"example": "research",
"x-parser-schema-id": "<anonymous-schema-194>"
}
},
"x-parser-schema-id": "<anonymous-schema-188>"
}
},
"examples": [
{
"id": "req-1",
"service": "objects",
"flow": "my-flow",
"request": {
"query": "{ entity(id: \"https://example.com/entity1\") { properties { key value } } }"
}
}
],
"x-parser-schema-id": "<anonymous-schema-184>"
},
{
"type": "object",
"description": "WebSocket request for nlp-query service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-196>"
},
"service": {
"type": "string",
"const": "nlp-query",
"description": "Service identifier for nlp-query service",
"x-parser-schema-id": "<anonymous-schema-197>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-198>"
},
"request": {
"type": "object",
"description": "NLP query request - convert natural language question to structured query.\n",
"required": [
"question"
],
"properties": {
"question": {
"type": "string",
"description": "Natural language question",
"example": "Who does Alice know that works in engineering?",
"x-parser-schema-id": "<anonymous-schema-200>"
},
"max-results": {
"type": "integer",
"description": "Maximum results to return when query is executed",
"default": 100,
"minimum": 1,
"maximum": 10000,
"example": 50,
"x-parser-schema-id": "<anonymous-schema-201>"
}
},
"x-parser-schema-id": "<anonymous-schema-199>"
}
},
"examples": [
{
"id": "req-1",
"service": "nlp-query",
"flow": "my-flow",
"request": {
"query": "Show me all entities related to quantum computing",
"limit": 50
}
}
],
"x-parser-schema-id": "<anonymous-schema-195>"
},
{
"type": "object",
"description": "WebSocket request for structured-query service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-203>"
},
"service": {
"type": "string",
"const": "structured-query",
"description": "Service identifier for structured-query service",
"x-parser-schema-id": "<anonymous-schema-204>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-205>"
},
"request": {
"type": "object",
"description": "Structured query request - natural language question with automatic execution.\n\nCombines NLP query generation and execution in one call.\n",
"required": [
"question"
],
"properties": {
"question": {
"type": "string",
"description": "Natural language question",
"example": "Who does Alice know that works in engineering?",
"x-parser-schema-id": "<anonymous-schema-207>"
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-208>"
},
"collection": {
"type": "string",
"description": "Collection to query",
"default": "default",
"example": "research",
"x-parser-schema-id": "<anonymous-schema-209>"
}
},
"x-parser-schema-id": "<anonymous-schema-206>"
}
},
"examples": [
{
"id": "req-1",
"service": "structured-query",
"flow": "my-flow",
"request": {
"query": {
"type": "entity",
"filters": [
{
"property": "type",
"value": "Person"
}
]
}
}
}
],
"x-parser-schema-id": "<anonymous-schema-202>"
},
{
"type": "object",
"description": "WebSocket request for structured-diag service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-211>"
},
"service": {
"type": "string",
"const": "structured-diag",
"description": "Service identifier for structured-diag service",
"x-parser-schema-id": "<anonymous-schema-212>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-213>"
},
"request": {
"type": "object",
"description": "Structured data diagnosis request - analyze and understand structured data formats.\n\nOperations: detect-type, generate-descriptor, diagnose, schema-selection\n",
"required": [
"operation",
"sample"
],
"properties": {
"operation": {
"type": "string",
"enum": [
"detect-type",
"generate-descriptor",
"diagnose",
"schema-selection"
],
"description": "Diagnosis operation:\n- `detect-type`: Identify data format (CSV, JSON, XML)\n- `generate-descriptor`: Create schema descriptor for data\n- `diagnose`: Full analysis (detect + generate descriptor)\n- `schema-selection`: Find matching schemas for data\n",
"x-parser-schema-id": "<anonymous-schema-215>"
},
"sample": {
"type": "string",
"description": "Data sample to analyze (text content)",
"example": "name,age,email\nAlice,30,alice@example.com\nBob,25,bob@example.com\n",
"x-parser-schema-id": "<anonymous-schema-216>"
},
"type": {
"type": "string",
"description": "Data type (required for generate-descriptor)",
"enum": [
"csv",
"json",
"xml"
],
"example": "csv",
"x-parser-schema-id": "<anonymous-schema-217>"
},
"schema-name": {
"type": "string",
"description": "Target schema name for descriptor generation (optional)",
"example": "person-records",
"x-parser-schema-id": "<anonymous-schema-218>"
},
"options": {
"type": "object",
"description": "Format-specific options (e.g., CSV delimiter)",
"additionalProperties": {
"type": "string",
"x-parser-schema-id": "<anonymous-schema-220>"
},
"example": {
"delimiter": ",",
"has_header": "true"
},
"x-parser-schema-id": "<anonymous-schema-219>"
}
},
"x-parser-schema-id": "<anonymous-schema-214>"
}
},
"examples": [
{
"id": "req-1",
"service": "structured-diag",
"flow": "my-flow",
"request": {
"operation": "status"
}
}
],
"x-parser-schema-id": "<anonymous-schema-210>"
},
{
"type": "object",
"description": "WebSocket request for graph-embeddings service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-222>"
},
"service": {
"type": "string",
"const": "graph-embeddings",
"description": "Service identifier for graph-embeddings service",
"x-parser-schema-id": "<anonymous-schema-223>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-224>"
},
"request": {
"type": "object",
"description": "Graph embeddings query request - find similar entities by vector similarity.\n",
"required": [
"vectors"
],
"properties": {
"vectors": {
"type": "array",
"description": "Query embedding vector",
"items": {
"type": "number",
"x-parser-schema-id": "<anonymous-schema-227>"
},
"example": [
0.023,
-0.142,
0.089,
0.234,
-0.067,
0.156
],
"x-parser-schema-id": "<anonymous-schema-226>"
},
"limit": {
"type": "integer",
"description": "Maximum number of entities to return",
"default": 10,
"minimum": 1,
"maximum": 1000,
"example": 20,
"x-parser-schema-id": "<anonymous-schema-228>"
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-229>"
},
"collection": {
"type": "string",
"description": "Collection to search",
"default": "default",
"example": "research",
"x-parser-schema-id": "<anonymous-schema-230>"
}
},
"x-parser-schema-id": "<anonymous-schema-225>"
}
},
"examples": [
{
"id": "req-1",
"service": "graph-embeddings",
"flow": "my-flow",
"request": {
"text": "quantum computing",
"limit": 10
}
}
],
"x-parser-schema-id": "<anonymous-schema-221>"
},
{
"type": "object",
"description": "WebSocket request for document-embeddings service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-232>"
},
"service": {
"type": "string",
"const": "document-embeddings",
"description": "Service identifier for document-embeddings service",
"x-parser-schema-id": "<anonymous-schema-233>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-234>"
},
"request": {
"type": "object",
"description": "Document embeddings query request - find similar documents by vector similarity.\n",
"required": [
"vectors"
],
"properties": {
"vectors": {
"type": "array",
"description": "Query embedding vector",
"items": {
"type": "number",
"x-parser-schema-id": "<anonymous-schema-237>"
},
"example": [
0.023,
-0.142,
0.089,
0.234,
-0.067,
0.156
],
"x-parser-schema-id": "<anonymous-schema-236>"
},
"limit": {
"type": "integer",
"description": "Maximum number of document chunks to return",
"default": 10,
"minimum": 1,
"maximum": 1000,
"example": 20,
"x-parser-schema-id": "<anonymous-schema-238>"
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-239>"
},
"collection": {
"type": "string",
"description": "Collection to search",
"default": "default",
"example": "research",
"x-parser-schema-id": "<anonymous-schema-240>"
}
},
"x-parser-schema-id": "<anonymous-schema-235>"
}
},
"examples": [
{
"id": "req-1",
"service": "document-embeddings",
"flow": "my-flow",
"request": {
"text": "quantum computing",
"limit": 10
}
}
],
"x-parser-schema-id": "<anonymous-schema-231>"
},
{
"type": "object",
"description": "WebSocket request for text-load service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-242>"
},
"service": {
"type": "string",
"const": "text-load",
"description": "Service identifier for text-load service",
"x-parser-schema-id": "<anonymous-schema-243>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-244>"
},
"request": {
"type": "object",
"description": "Text load request - load text document into processing pipeline.\n\nFire-and-forget operation (no response).\n",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "Text content (base64 encoded)",
"format": "byte",
"example": "VGhpcyBpcyB0aGUgZG9jdW1lbnQgdGV4dC4uLg==",
"x-parser-schema-id": "<anonymous-schema-246>"
},
"id": {
"type": "string",
"description": "Document identifier",
"example": "doc-123",
"x-parser-schema-id": "<anonymous-schema-247>"
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-248>"
},
"collection": {
"type": "string",
"description": "Collection for document",
"default": "default",
"example": "research",
"x-parser-schema-id": "<anonymous-schema-249>"
},
"charset": {
"type": "string",
"description": "Text character encoding",
"default": "utf-8",
"example": "utf-8",
"x-parser-schema-id": "<anonymous-schema-250>"
},
"metadata": {
"type": "array",
"description": "Document metadata as RDF triples",
"items": "$ref:$.channels.socket.messages.request.payload.oneOf[3].properties.request.properties.triples.properties.metadata.properties.metadata.items",
"x-parser-schema-id": "<anonymous-schema-251>"
}
},
"x-parser-schema-id": "<anonymous-schema-245>"
}
},
"examples": [
{
"id": "req-1",
"service": "text-load",
"flow": "my-flow",
"request": {
"text": "This is the document content to be loaded into the knowledge graph.",
"collection": "default"
}
}
],
"x-parser-schema-id": "<anonymous-schema-241>"
},
{
"type": "object",
"description": "WebSocket request for document-load service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
"x-parser-schema-id": "<anonymous-schema-253>"
},
"service": {
"type": "string",
"const": "document-load",
"description": "Service identifier for document-load service",
"x-parser-schema-id": "<anonymous-schema-254>"
},
"flow": {
"type": "string",
"description": "Flow ID",
"x-parser-schema-id": "<anonymous-schema-255>"
},
"request": {
"type": "object",
"description": "Document load request - load binary document (PDF, etc.) into processing pipeline.\n\nFire-and-forget operation (no response).\n",
"required": [
"data"
],
"properties": {
"data": {
"type": "string",
"description": "Document data (base64 encoded)",
"format": "byte",
"example": "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL...",
"x-parser-schema-id": "<anonymous-schema-257>"
},
"id": {
"type": "string",
"description": "Document identifier",
"example": "doc-456",
"x-parser-schema-id": "<anonymous-schema-258>"
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
"x-parser-schema-id": "<anonymous-schema-259>"
},
"collection": {
"type": "string",
"description": "Collection for document",
"default": "default",
"example": "research",
"x-parser-schema-id": "<anonymous-schema-260>"
},
"metadata": {
"type": "array",
"description": "Document metadata as RDF triples",
"items": "$ref:$.channels.socket.messages.request.payload.oneOf[3].properties.request.properties.triples.properties.metadata.properties.metadata.items",
"x-parser-schema-id": "<anonymous-schema-261>"
}
},
"x-parser-schema-id": "<anonymous-schema-256>"
}
},
"examples": [
{
"id": "req-1",
"service": "document-load",
"flow": "my-flow",
"request": {
"url": "https://example.com/document.pdf",
"collection": "default"
}
}
],
"x-parser-schema-id": "<anonymous-schema-252>"
}
],
"x-parser-schema-id": "<anonymous-schema-1>"
},
"examples": [
{
"name": "Config service request",
"summary": "List all flow configurations",
"payload": {
"id": "req-1",
"service": "config",
"request": {
"operation": "list",
"type": "flow"
}
}
},
{
"name": "Agent service request",
"summary": "Ask question to agent",
"payload": {
"id": "req-2",
"service": "agent",
"flow": "my-flow",
"request": {
"question": "What is quantum computing?",
"streaming": true
}
}
}
],
"x-parser-unique-object-id": "request"
},
"response": {
"name": "ServiceResponse",
"title": "Service Response Message",
"summary": "Successful response from any TrustGraph service",
"description": "Generic response message from any TrustGraph service.\n\nThe `response` field payload varies by service and matches the REST API response body schema.\n\nFor streaming services, multiple messages with the same `id` may be sent.\n",
"payload": {
"type": "object",
"description": "WebSocket response message envelope for successful responses.\n\nContains the request ID for correlation and the service-specific response payload.\n",
"required": [
"id",
"response"
],
"properties": {
"id": {
"type": "string",
"description": "Request identifier from the original request. Client uses this to match\nresponses to requests in multiplexed communication.\n",
"examples": [
"req-123",
"request-abc-456"
],
"x-parser-schema-id": "<anonymous-schema-263>"
},
"response": {
"type": "object",
"description": "Service-specific response payload. Structure is identical to the response body\nin the corresponding REST API endpoint.\n\nFor streaming services, multiple response messages may be sent with the same `id`.\nLook for `end-of-stream` or service-specific completion flags to detect the final message.\n\nSee OpenAPI specification for detailed schemas per service.\n",
"examples": [
{
"type": "flow",
"keys": [
"my-flow",
"production-flow"
]
},
{
"chunk-type": "answer",
"content": "Quantum computing uses quantum bits...",
"end-of-stream": false
}
],
"x-parser-schema-id": "<anonymous-schema-264>"
}
},
"x-parser-schema-id": "<anonymous-schema-262>"
},
"examples": [
{
"name": "Config service response",
"summary": "List of flow configurations",
"payload": {
"id": "req-1",
"response": {
"type": "flow",
"keys": [
"my-flow",
"production-flow"
]
}
}
},
{
"name": "Agent streaming response",
"summary": "Agent answer chunk",
"payload": {
"id": "req-2",
"response": {
"chunk-type": "answer",
"content": "Quantum computing uses quantum mechanical phenomena...",
"end-of-stream": false
}
}
}
],
"x-parser-unique-object-id": "response"
},
"error": {
"name": "ServiceError",
"title": "Service Error Message",
"summary": "Error response from any TrustGraph service",
"description": "Error message sent when a service request fails.\n\nContains the request ID and error details.\n",
"payload": {
"type": "object",
"description": "WebSocket error message envelope.\n\nSent when a request fails. Contains the request ID and error details.\n",
"required": [
"id",
"error"
],
"properties": {
"id": {
"type": "string",
"description": "Request identifier from the original request that failed.\n",
"examples": [
"req-123",
"request-abc-456"
],
"x-parser-schema-id": "<anonymous-schema-266>"
},
"error": {
"type": "object",
"description": "Error information",
"required": [
"type",
"message"
],
"properties": {
"type": {
"type": "string",
"description": "Error type/category",
"examples": [
"gateway-error",
"service-error",
"timeout"
],
"x-parser-schema-id": "<anonymous-schema-268>"
},
"message": {
"type": "string",
"description": "Human-readable error message",
"examples": [
"Flow not found",
"Service timeout",
"Invalid request format"
],
"x-parser-schema-id": "<anonymous-schema-269>"
}
},
"x-parser-schema-id": "<anonymous-schema-267>"
}
},
"x-parser-schema-id": "<anonymous-schema-265>"
},
"examples": [
{
"name": "Flow not found error",
"summary": "Requested flow does not exist",
"payload": {
"id": "req-2",
"error": {
"type": "gateway-error",
"message": "Flow 'my-flow' not found"
}
}
},
{
"name": "Service timeout error",
"summary": "Service processing timeout",
"payload": {
"id": "req-3",
"error": {
"type": "timeout",
"message": "Request exceeded 600s timeout"
}
}
}
],
"x-parser-unique-object-id": "error"
}
},
"x-parser-unique-object-id": "socket"
}
},
"components": {
"securitySchemes": {
"bearerAuth": "$ref:$.servers.production.security[0]"
},
"messages": {
"ServiceRequest": {
"name": "ServiceRequest",
"title": "Service Request Message",
"summary": "Request message for any TrustGraph service",
"description": "Generic request message that can invoke any TrustGraph service.\n\nThe `request` field payload varies by service and matches the REST API request body schema.\n",
"payload": {
"description": "Service request envelope with id, service, optional flow, and service-specific request payload",
"oneOf": [
"$ref:$.channels.socket.messages.request.payload.oneOf[0]",
"$ref:$.channels.socket.messages.request.payload.oneOf[1]",
"$ref:$.channels.socket.messages.request.payload.oneOf[2]",
"$ref:$.channels.socket.messages.request.payload.oneOf[3]",
"$ref:$.channels.socket.messages.request.payload.oneOf[4]",
"$ref:$.channels.socket.messages.request.payload.oneOf[5]",
"$ref:$.channels.socket.messages.request.payload.oneOf[6]",
"$ref:$.channels.socket.messages.request.payload.oneOf[7]",
"$ref:$.channels.socket.messages.request.payload.oneOf[8]",
"$ref:$.channels.socket.messages.request.payload.oneOf[9]",
"$ref:$.channels.socket.messages.request.payload.oneOf[10]",
"$ref:$.channels.socket.messages.request.payload.oneOf[11]",
"$ref:$.channels.socket.messages.request.payload.oneOf[12]",
"$ref:$.channels.socket.messages.request.payload.oneOf[13]",
"$ref:$.channels.socket.messages.request.payload.oneOf[14]",
"$ref:$.channels.socket.messages.request.payload.oneOf[15]",
"$ref:$.channels.socket.messages.request.payload.oneOf[16]",
"$ref:$.channels.socket.messages.request.payload.oneOf[17]",
"$ref:$.channels.socket.messages.request.payload.oneOf[18]",
"$ref:$.channels.socket.messages.request.payload.oneOf[19]",
"$ref:$.channels.socket.messages.request.payload.oneOf[20]"
],
"x-parser-schema-id": "<anonymous-schema-270>"
},
"examples": [
{
"name": "Config service request",
"summary": "List all flow configurations",
"payload": {
"id": "req-1",
"service": "config",
"request": {
"operation": "list",
"type": "flow"
}
}
},
{
"name": "Agent service request",
"summary": "Ask question to agent",
"payload": {
"id": "req-2",
"service": "agent",
"flow": "my-flow",
"request": {
"question": "What is quantum computing?",
"streaming": true
}
}
}
],
"x-parser-unique-object-id": "ServiceRequest"
},
"ServiceResponse": {
"name": "ServiceResponse",
"title": "Service Response Message",
"summary": "Successful response from any TrustGraph service",
"description": "Generic response message from any TrustGraph service.\n\nThe `response` field payload varies by service and matches the REST API response body schema.\n\nFor streaming services, multiple messages with the same `id` may be sent.\n",
"payload": "$ref:$.channels.socket.messages.response.payload",
"examples": [
{
"name": "Config service response",
"summary": "List of flow configurations",
"payload": {
"id": "req-1",
"response": {
"type": "flow",
"keys": [
"my-flow",
"production-flow"
]
}
}
},
{
"name": "Agent streaming response",
"summary": "Agent answer chunk",
"payload": {
"id": "req-2",
"response": {
"chunk-type": "answer",
"content": "Quantum computing uses quantum mechanical phenomena...",
"end-of-stream": false
}
}
}
],
"x-parser-unique-object-id": "ServiceResponse"
},
"ServiceError": {
"name": "ServiceError",
"title": "Service Error Message",
"summary": "Error response from any TrustGraph service",
"description": "Error message sent when a service request fails.\n\nContains the request ID and error details.\n",
"payload": "$ref:$.channels.socket.messages.error.payload",
"examples": [
{
"name": "Flow not found error",
"summary": "Requested flow does not exist",
"payload": {
"id": "req-2",
"error": {
"type": "gateway-error",
"message": "Flow 'my-flow' not found"
}
}
},
{
"name": "Service timeout error",
"summary": "Service processing timeout",
"payload": {
"id": "req-3",
"error": {
"type": "timeout",
"message": "Request exceeded 600s timeout"
}
}
}
],
"x-parser-unique-object-id": "ServiceError"
}
},
"schemas": {
"RequestEnvelope": {
"type": "object",
"description": "WebSocket request message envelope.\n\nWraps service-specific request payloads with routing and correlation metadata.\n",
"required": [
"id",
"service",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Client-generated unique identifier for this request within the WebSocket session.\nUsed to correlate responses with requests in multiplexed async communication.\nCan be any string, but must be unique per active request.\n",
"examples": [
"req-123",
"request-abc-456",
"b5f8d9a2-4c3e-11ef-9c8a-0242ac120002"
],
"x-parser-schema-id": "<anonymous-schema-271>"
},
"service": {
"type": "string",
"description": "Service identifier. Same as {kind} in REST API URLs.\n\nGlobal services: config, flow, librarian, knowledge, collection-management\nFlow-hosted services: agent, text-completion, prompt, document-rag, graph-rag,\nembeddings, graph-embeddings, document-embeddings, triples, objects,\nnlp-query, structured-query, structured-diag, text-load, document-load, mcp-tool\n",
"examples": [
"config",
"agent",
"document-rag"
],
"x-parser-schema-id": "<anonymous-schema-272>"
},
"flow": {
"type": "string",
"description": "Flow ID for flow-hosted services. Required for services accessed via\n/api/v1/flow/{flow}/service/{kind} in REST API.\n\nOmit this field for global services (config, flow, librarian, knowledge, collection-management).\n",
"examples": [
"my-flow",
"production-flow"
],
"x-parser-schema-id": "<anonymous-schema-273>"
},
"request": {
"type": "object",
"description": "Service-specific request payload. Structure is identical to the request body\nin the corresponding REST API endpoint.\n\nSee OpenAPI specification for detailed schemas per service.\n",
"examples": [
{
"operation": "list",
"type": "flow"
},
{
"question": "What is quantum computing?",
"streaming": true,
"system-prompt": "You are a helpful assistant"
}
],
"x-parser-schema-id": "<anonymous-schema-274>"
}
},
"x-parser-schema-id": "RequestEnvelope"
},
"ResponseEnvelope": {
"type": "object",
"description": "WebSocket response message envelope for successful responses.\n\nContains the request ID for correlation and the service-specific response payload.\n",
"required": [
"id",
"response"
],
"properties": {
"id": {
"type": "string",
"description": "Request identifier from the original request. Client uses this to match\nresponses to requests in multiplexed communication.\n",
"examples": [
"req-123",
"request-abc-456"
],
"x-parser-schema-id": "<anonymous-schema-275>"
},
"response": {
"type": "object",
"description": "Service-specific response payload. Structure is identical to the response body\nin the corresponding REST API endpoint.\n\nFor streaming services, multiple response messages may be sent with the same `id`.\nLook for `end-of-stream` or service-specific completion flags to detect the final message.\n\nSee OpenAPI specification for detailed schemas per service.\n",
"examples": [
{
"type": "flow",
"keys": [
"my-flow",
"production-flow"
]
},
{
"chunk-type": "answer",
"content": "Quantum computing uses quantum bits...",
"end-of-stream": false
}
],
"x-parser-schema-id": "<anonymous-schema-276>"
}
},
"x-parser-schema-id": "ResponseEnvelope"
},
"ErrorEnvelope": {
"type": "object",
"description": "WebSocket error message envelope.\n\nSent when a request fails. Contains the request ID and error details.\n",
"required": [
"id",
"error"
],
"properties": {
"id": {
"type": "string",
"description": "Request identifier from the original request that failed.\n",
"examples": [
"req-123",
"request-abc-456"
],
"x-parser-schema-id": "<anonymous-schema-277>"
},
"error": {
"type": "object",
"description": "Error information",
"required": [
"type",
"message"
],
"properties": {
"type": {
"type": "string",
"description": "Error type/category",
"examples": [
"gateway-error",
"service-error",
"timeout"
],
"x-parser-schema-id": "<anonymous-schema-279>"
},
"message": {
"type": "string",
"description": "Human-readable error message",
"examples": [
"Flow not found",
"Service timeout",
"Invalid request format"
],
"x-parser-schema-id": "<anonymous-schema-280>"
}
},
"x-parser-schema-id": "<anonymous-schema-278>"
}
},
"x-parser-schema-id": "ErrorEnvelope"
}
}
},
"x-parser-spec-parsed": true,
"x-parser-api-version": 3,
"x-parser-spec-stringified": true
};
const config = {"show":{"sidebar":true},"sidebar":{"showOperations":"byDefault"}};
AsyncApiStandalone.hydrate({ schema, config }, document.getElementById("root"));
</script>
</body>
</html>