2026-01-15 11:57:16 +00:00
<!DOCTYPE html>
< html lang = "en" >
< head >
< meta charset = "UTF-8" >
2026-03-17 20:36:31 +00:00
< title > TrustGraph WebSocket API 2.1 documentation< / title >
2026-01-15 11:57:16 +00:00
< 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*/
2026-03-17 20:36:31 +00:00
/*! 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 ::-moz-focus-inner{border-style:none;padding:0}.aui-root legend{padding:0}.aui-root progress{vertical-align:baseline}.aui-root ::-webkit-inner-spin-button,.aui-root ::-webkit-outer-spin-button{height:auto}.aui-root [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.aui-root ::-webkit-search-decoration{-webkit-appearance:none}.aui-root ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.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::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-de
2026-01-15 11:57:16 +00:00
< / style >
< / head >
< body >
2026-03-17 20:36:31 +00:00
< 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<!-- --> <!-- --> 2.1< / 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 > < 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 = "#messages" > Messages< / a > < ul class = "text-sm mt-2" > < li > < a class = "flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900" href = "#message-ServiceRequest" > < div class = "break-all inline-block" > ServiceRequest< / div > < / a > < / li > < li > < a class = "flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900" href = "#message-ServiceResponse" > < div class = "break-all inline-block" > ServiceResponse< / div > < / a > < / li > < li > < a class = "flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900" href = "#message-ServiceError" > < div class = "break-all inline-block" > ServiceError< / div > < / a > < / li > < / ul > < / 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 = "#schemas" > Schemas< / a > < ul class = "text-sm mt-2" > < li > < a class = "flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900" href = "#schema-RequestEnvelope" > < div class = "break-all inline-block" > RequestEnvelope< / div > < / a > < / li > < li > < a class = "flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900" href = "#schema-ResponseEnvelope" > < div class = "break-all inline-block" > ResponseEnvelope< / div > < / a > < / li > < li > < a class = "flex break-words no-underline text-gray-700 mt-2 hover:text-gray-900" href = "#schema-ErrorEnvelope" > < div class = "break-all inline-block" > ErrorEnvelope< / div > < / 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<!-- --> <!-- --> 2.1< / 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" title = "Opens in new window" 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" title = "Opens in new window" 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" title = "Opens in new window" 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" > < spa
2026-01-15 11:57:16 +00:00
< 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 >
2026-03-17 20:36:31 +00:00
< li > triples, rows, nlp-query, structured-query, structured-diag, row-embeddings< / li >
2026-01-15 11:57:16 +00:00
< 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 >
2026-03-17 20:36:31 +00:00
< / 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 > < strong class = "bg-teal-500 no-underline text-white uppercase rounded mx-2 px-2 py-1 text-sm" > ws< / strong > < strong class = "bg-blue-500 no-underline text-white uppercase rounded px-2 py-1 text-sm" > production< / strong > < / div > < div class = "mt-2" > < div class = "prose max-w-none text-sm" > < p > Local development WebSocket server< / p >
2026-01-15 11:57:16 +00:00
< / 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 >
2026-03-17 20:36:31 +00:00
< / 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 > < strong class = "text-gray-700 mr-2" > #<!-- --> 1< / strong > < span class = "text-gray-700 mr-2" > Service Request Message< / 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" title = "Opens in new window" 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 = "bg-orange-600 text-white 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 >
2026-01-15 11:57:16 +00:00
< p > The < code > request< / code > field payload varies by service and matches the REST API request body schema.< / p >
2026-03-17 20:36:31 +00:00
< / div > < / div > < div class = "mt-2" id = "message-ServiceRequest-payload" > < div class = "flex mb-4 gap-2" > < div class = "border rounded overflow-visible w-full" > < div class = "flex flex-col justify-center p-4 bg-gray-100 border-b" > < div class = "flex justify-between items-start" > < div class = "flex items-center gap-2 w-full" > < div class = "flex items-center gap-2" > < button class = "focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 " type = "button" > < div class = "inline-block" > < span class = "break-anywhere text-sm w-full " > 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 > < / div > < span class = "capitalize text-sm text-teal-500 font-bold" > oneOf< / span > < div class = "ml-auto flex gap-4" > < button type = "button" class = "text-sm text-gray-500 hover:text-gray-700" > Expand all< / button > < / div > < / div > < / div > < div class = "mt-2 text-sm text-gray-600" > < 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 class = "flex " > < / 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 > < strong class = "text-gray-700 mr-2" > #<!-- --> 2< / strong > < span class = "text-gray-700 mr-2" > Service Response Message< / 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" title = "Opens in new window" 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 = "bg-orange-600 text-white 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 >
2026-01-15 11:57:16 +00:00
< 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 >
2026-03-17 20:36:31 +00:00
< / div > < / div > < div class = "mt-2" id = "message-ServiceResponse-payload" > < div class = "flex mb-4 gap-2" > < div class = "border rounded overflow-visible w-full" > < div class = "flex flex-col justify-center p-4 bg-gray-100 border-b" > < div class = "flex justify-between items-start" > < div class = "flex items-center gap-2 w-full" > < div class = "flex items-center gap-2" > < button class = "focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 " type = "button" > < div class = "inline-block" > < span class = "break-anywhere text-sm w-full " > 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 > < / div > < span class = "capitalize text-sm text-teal-500 font-bold" > object< / span > < div class = "ml-auto flex gap-4" > < button type = "button" class = "text-sm text-gray-500 hover:text-gray-700" > Expand all< / button > < / div > < / div > < / div > < div class = "mt-2 text-sm text-gray-600" > < div class = "prose max-w-none text-sm" > < p > WebSocket response message envelope for successful responses.< / p >
2026-01-15 11:57:16 +00:00
< p > Contains the request ID for correlation and the service-specific response payload.< / p >
2026-03-17 20:36:31 +00:00
< / div > < / div > < / div > < div class = "flex " > < / div > < / 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 > < strong class = "text-gray-700 mr-2" > #<!-- --> 3< / strong > < span class = "text-gray-700 mr-2" > Service Error Message< / 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" title = "Opens in new window" 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 = "bg-orange-600 text-white 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 >
2026-01-15 11:57:16 +00:00
< p > Contains the request ID and error details.< / p >
2026-03-17 20:36:31 +00:00
< / div > < / div > < div class = "mt-2" id = "message-ServiceError-payload" > < div class = "flex mb-4 gap-2" > < div class = "border rounded overflow-visible w-full" > < div class = "flex flex-col justify-center p-4 bg-gray-100 border-b" > < div class = "flex justify-between items-start" > < div class = "flex items-center gap-2 w-full" > < div class = "flex items-center gap-2" > < button class = "focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 " type = "button" > < div class = "inline-block" > < span class = "break-anywhere text-sm w-full " > 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 > < / div > < span class = "capitalize text-sm text-teal-500 font-bold" > object< / span > < div class = "ml-auto flex gap-4" > < button type = "button" class = "text-sm text-gray-500 hover:text-gray-700" > Expand all< / button > < / div > < / div > < / div > < div class = "mt-2 text-sm text-gray-600" > < div class = "prose max-w-none text-sm" > < p > WebSocket error message envelope.< / p >
2026-01-15 11:57:16 +00:00
< p > Sent when a request fails. Contains the request ID and error details.< / p >
2026-03-17 20:36:31 +00:00
< / div > < / div > < / div > < div class = "flex " > < / div > < / 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 class = "flex mb-4 gap-2" > < div class = "border rounded overflow-visible w-full" > < div class = "flex flex-col justify-center p-4 bg-gray-100 border-b" > < div class = "flex justify-between items-start" > < div class = "flex items-center gap-2 w-full" > < div class = "flex items-center gap-2" > < button class = "focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 " type = "button" > < div class = "inline-block" > < span class = "break-anywhere text-sm w-full " > 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 > < / div > < span class = "capitalize text-sm text-teal-500 font-bold" > object< / span > < div class = "ml-auto flex gap-4" > < button type = "button" class = "text-sm text-gray-500 hover:text-gray-700" > Expand all< / button > < / div > < / div > < / div > < div class = "mt-2 text-sm text-gray-600" > < div class = "prose max-w-none text-sm" > < p > WebSocket request message envelope.< / p >
2026-01-15 11:57:16 +00:00
< p > Wraps service-specific request payloads with routing and correlation metadata.< / p >
2026-03-17 20:36:31 +00:00
< / div > < / div > < / div > < div class = "flex " > < / div > < / 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 class = "flex mb-4 gap-2" > < div class = "border rounded overflow-visible w-full" > < div class = "flex flex-col justify-center p-4 bg-gray-100 border-b" > < div class = "flex justify-between items-start" > < div class = "flex items-center gap-2 w-full" > < div class = "flex items-center gap-2" > < button class = "focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 " type = "button" > < div class = "inline-block" > < span class = "break-anywhere text-sm w-full " > 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 > < / div > < span class = "capitalize text-sm text-teal-500 font-bold" > object< / span > < div class = "ml-auto flex gap-4" > < button type = "button" class = "text-sm text-gray-500 hover:text-gray-700" > Expand all< / button > < / div > < / div > < / div > < div class = "mt-2 text-sm text-gray-600" > < div class = "prose max-w-none text-sm" > < p > WebSocket response message envelope for successful responses.< / p >
2026-01-15 11:57:16 +00:00
< p > Contains the request ID for correlation and the service-specific response payload.< / p >
2026-03-17 20:36:31 +00:00
< / div > < / div > < / div > < div class = "flex " > < / div > < / 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 class = "flex mb-4 gap-2" > < div class = "border rounded overflow-visible w-full" > < div class = "flex flex-col justify-center p-4 bg-gray-100 border-b" > < div class = "flex justify-between items-start" > < div class = "flex items-center gap-2 w-full" > < div class = "flex items-center gap-2" > < button class = "focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 " type = "button" > < div class = "inline-block" > < span class = "break-anywhere text-sm w-full " > 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 > < / div > < span class = "capitalize text-sm text-teal-500 font-bold" > object< / span > < div class = "ml-auto flex gap-4" > < button type = "button" class = "text-sm text-gray-500 hover:text-gray-700" > Expand all< / button > < / div > < / div > < / div > < div class = "mt-2 text-sm text-gray-600" > < div class = "prose max-w-none text-sm" > < p > WebSocket error message envelope.< / p >
2026-01-15 11:57:16 +00:00
< p > Sent when a request fails. Contains the request ID and error details.< / p >
2026-03-17 20:36:31 +00:00
< / div > < / div > < / div > < div class = "flex " > < / div > < / 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 >
2026-01-15 11:57:16 +00:00
< script type = "text/javascript" >
/*! For license information please see without-parser.js.LICENSE.txt */
2026-03-17 20:36:31 +00:00
!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={11821: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(24764));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]},68009:(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(6573),r=n(67943),o=n(1698),s=n(11821);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}}},31277:(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 d=e.type()||[];Array.isArray(d)||(d=[d]),!s.includes(i.Objects)&&d.includes("object")||!s.includes(i.Arrays)&&d.includes("array")||!1!==a(e,t,n.NEW_SCHEMA)&&(s.includes(i.Objects)&&d.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)& & d.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
2026-01-15 11:57:16 +00:00
|| (${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"
2026-03-17 20:36:31 +00:00
|| ${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 d=new Set(["string","number","integer","boolean","null"]);function l(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 f(e,t,n,i){if(1===e.length)return l(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,l(e,t,n,i));return r}t.checkDataType=l,t.checkDataTypes=f;const u={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,u)}t.reportTypeError=m},91481:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;const i=n(15669),r=n(88936);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 d=i._`${p} === undefined`;"empty"===c.useDefaults& & (d=i._`${d} || ${p} === null || ${p} === ""`),o.if(d,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)))}},91686:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;const i=n(12171),r=n(97332),o=n(89073),s=n(97332),a=n(91481),c=n(95782),p=n(38878),d=n(15669),l=n(17250),f=n(96696),u=n(88936),m=n(6930);function h({gen:e,validateName:t,schema:n,schemaEnv:i,opts:r},o){r.code.es5?e.func(t,d._`${l.default.data}, ${l.default.valCxt}`,i.$async,(()=>{e.code(d._`"use strict"; ${y(n,r)}`),function(e,t){e.if(l.default.valCxt,(()=>{e.var(l.default.instancePath,d._`${l.default.valCxt}.${l.default.instancePath}`),e.var(l.default.parentData,d._`${l.default.valCxt}.${l.default.parentData}`),e.var(l.default.parentDataProperty,d._`${l.default.valCxt}.${l.default.parentDataProperty}`),e.var(l.default.rootData,d._`${l.default.valCxt}.${l.default.rootData}`),t.dynamicRef& & e.var(l.default.dynamicAnchors,d._`${l.default.valCxt}.${l.default.dynamicAnchors}`)}),(()=>{e.var(l.default.instancePath,d._`""`),e.var(l.default.parentData,d._`undefined`),e.var(l.default.parentDataProperty,d._`undefined`),e.var(l.default.rootData,l.default.data),t.dynamicRef& & e.var(l.default.dynamicAnchors,d._`{}`)}))}(e,r),e.code(o)})):e.func(t,d._`${l.default.data}, ${function(e){return d._`{${l.default.instancePath}="", ${l.default.parentData}, ${l.default.parentDataProperty}, ${l.default.rootData}=${l.default.data}${e.dynamicRef?d._`, ${l.default.dynamicAnchors}={}`:d.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)?d._`/*# sourceURL=${n} */`:d.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,u.checkUnknownRul
2026-01-15 11:57:16 +00:00
missingProperty: ${r},
depsCount: ${t},
2026-03-17 20:36:31 +00:00
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 d=(0,o.propertyInData)(n,r,c,s.opts.ownProperties);e.setParams({property:c,depsCount:p.length,deps:p.join(", ")}),s.allErrors?n.if(d,(()=>{for(const t of p)(0,o.checkReportMissingProp)(e,t)})):(n.if(i._`${d} & & (${(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},50076:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(15669),r=n(88936),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),d=t.name("_valid");if(function(){const t=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},d);e.mergeEvaluated(t)}(),e.reset(),a& & c){const n=t.let("ifClause");e.setParams({ifClause:n}),t.if(d,l("then",n),l("else",n))}else a?t.if(d,l("then")):t.if((0,i.not)(d),l("else"));function l(n,r){return()=>{const o=e.subschema({keyword:n},d);t.assign(p,d),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},46951:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(78891),r=n(21162),o=n(98634),s=n(65151),a=n(95609),c=n(5463),p=n(53021),d=n(24943),l=n(34243),f=n(98103),u=n(72869),m=n(54279),h=n(14880),y=n(22609),g=n(50076),b=n(25316);t.default=function(e=!1){const t=[u.default,m.default,h.default,y.default,g.default,b.default,p.default,d.default,c.default,l.default,f.default];return e?t.push(r.default,s.default):t.push(i.default,o.default),t.push(a.default),t}},98634:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;const i=n(15669),r=n(88936),o=n(3499),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 d=o.name("valid"),l=o.const("len",i._`${a}.length`);n.forEach(((t,n)=>{(0,r.alwaysValidSchema)(p,t)||(o.if(i._`${l} > ${n}`,(()=>e.subschema({keyword:c,schemaProp:n,dataProp:n},d))),e.ok(d))}))}t.validateTuple=a,t.default=s},65151:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=n(15669),r=n(88936),o=n(3499),s=n(78891),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:
2026-01-15 11:57:16 +00:00
< / script >
< script >
2026-03-17 20:36:31 +00:00
const schema = {
2026-01-15 11:57:16 +00:00
"asyncapi": "3.0.0",
"info": {
"title": "TrustGraph WebSocket API",
2026-03-17 20:36:31 +00:00
"version": "2.1",
"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, rows, nlp-query, structured-query, structured-diag, row-embeddings\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",
2026-01-15 11:57:16 +00:00
"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",
2026-03-17 20:36:31 +00:00
"description": "RDF triple (subject-predicate-object), optionally scoped to a named graph.\n",
2026-01-15 11:57:16 +00:00
"required": [
"s",
"p",
"o"
],
"properties": {
"s": {
"type": "object",
2026-03-17 20:36:31 +00:00
"description": "RDF Term - typed representation of a value in the knowledge graph.\n\nTerm types (discriminated by `t` field):\n- `i`: IRI (URI reference)\n- `l`: Literal (string value, optionally with datatype or language tag)\n- `r`: Quoted triple (RDF-star reification)\n- `b`: Blank node\n",
2026-01-15 11:57:16 +00:00
"properties": {
2026-03-17 20:36:31 +00:00
"t": {
2026-01-15 11:57:16 +00:00
"type": "string",
2026-03-17 20:36:31 +00:00
"description": "Term type discriminator",
"enum": [
"i",
"l",
"r",
"b"
],
"example": "i",
2026-01-15 11:57:16 +00:00
"x-parser-schema-id": "< anonymous-schema-73 > "
},
2026-03-17 20:36:31 +00:00
"i": {
"type": "string",
"description": "IRI value (when t=i)",
"example": "http://example.com/Person1",
2026-01-15 11:57:16 +00:00
"x-parser-schema-id": "< anonymous-schema-74 > "
2026-03-17 20:36:31 +00:00
},
"v": {
"type": "string",
"description": "Literal value (when t=l)",
"example": "John Doe",
"x-parser-schema-id": "< anonymous-schema-75 > "
},
"d": {
"type": "string",
"description": "Datatype IRI for literal (when t=l, optional)",
"example": "http://www.w3.org/2001/XMLSchema#integer",
"x-parser-schema-id": "< anonymous-schema-76 > "
},
"l": {
"type": "string",
"description": "Language tag for literal (when t=l, optional)",
"example": "en",
"x-parser-schema-id": "< anonymous-schema-77 > "
},
"r": {
"type": "object",
"description": "Quoted triple (when t=r) - contains s, p, o as nested Term objects with the same structure",
"properties": {
"s": {
"type": "object",
"description": "Subject term",
"x-parser-schema-id": "< anonymous-schema-79 > "
},
"p": {
"type": "object",
"description": "Predicate term",
"x-parser-schema-id": "< anonymous-schema-80 > "
},
"o": {
"type": "object",
"description": "Object term",
"x-parser-schema-id": "< anonymous-schema-81 > "
}
},
"x-parser-schema-id": "< anonymous-schema-78 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"required": [
"t"
],
"examples": [
{
"description": "IRI term",
"value": {
"t": "i",
"i": "http://schema.org/name"
}
},
{
"description": "Literal term",
"value": {
"t": "l",
"v": "John Doe"
}
},
{
"description": "Literal with language tag",
"value": {
"t": "l",
"v": "Bonjour",
"l": "fr"
}
}
],
2026-01-15 11:57:16 +00:00
"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",
2026-03-17 20:36:31 +00:00
"o": "$ref:$.channels.socket.messages.request.payload.oneOf[3].properties.request.properties.triples.properties.metadata.properties.metadata.items.properties.s",
"g": {
"type": "string",
"description": "Named graph URI (optional)",
"example": "urn:graph:source",
"x-parser-schema-id": "< anonymous-schema-82 > "
}
2026-01-15 11:57:16 +00:00
},
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-83 > "
2026-01-15 11:57:16 +00:00
}
},
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-86 > "
2026-01-15 11:57:16 +00:00
},
"user": {
"type": "string",
"description": "User identifier",
"example": "alice",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-87 > "
2026-01-15 11:57:16 +00:00
},
"collection": {
"type": "string",
"description": "Collection identifier",
"example": "default",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-88 > "
2026-01-15 11:57:16 +00:00
},
"metadata": {
"type": "array",
"description": "Metadata triples",
"items": "$ref:$.channels.socket.messages.request.payload.oneOf[3].properties.request.properties.triples.properties.metadata.properties.metadata.items",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-89 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-85 > "
2026-01-15 11:57:16 +00:00
},
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-93 > "
2026-01-15 11:57:16 +00:00
},
"example": [
0.1,
0.2,
0.3
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-92 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-91 > "
2026-01-15 11:57:16 +00:00
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-90 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-84 > "
2026-01-15 11:57:16 +00:00
}
},
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-95 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "collection-management",
"description": "Service identifier for collection-management service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-96 > "
2026-01-15 11:57:16 +00:00
},
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-98 > "
2026-01-15 11:57:16 +00:00
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-99 > "
2026-01-15 11:57:16 +00:00
},
"collection": {
"type": "string",
"description": "Collection identifier (for update, delete)",
"example": "research",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-100 > "
2026-01-15 11:57:16 +00:00
},
"timestamp": {
"type": "string",
"description": "ISO timestamp",
"format": "date-time",
"example": "2024-01-15T10:30:00Z",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-101 > "
2026-01-15 11:57:16 +00:00
},
"name": {
"type": "string",
"description": "Human-readable collection name (for update)",
"example": "Research Papers",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-102 > "
2026-01-15 11:57:16 +00:00
},
"description": {
"type": "string",
"description": "Collection description (for update)",
"example": "Academic research papers on AI and ML",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-103 > "
2026-01-15 11:57:16 +00:00
},
"tags": {
"type": "array",
"description": "Collection tags for organization (for update)",
"items": {
"type": "string",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-105 > "
2026-01-15 11:57:16 +00:00
},
"example": [
"research",
"AI",
"academic"
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-104 > "
2026-01-15 11:57:16 +00:00
},
"tag-filter": {
"type": "array",
"description": "Filter collections by tags (for list)",
"items": {
"type": "string",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-107 > "
2026-01-15 11:57:16 +00:00
},
"example": [
"research"
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-106 > "
2026-01-15 11:57:16 +00:00
},
"limit": {
"type": "integer",
"description": "Maximum number of results (for list)",
"default": 0,
"example": 100,
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-108 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-97 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
"service": "collection-management",
"request": {
"operation": "list"
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-94 > "
2026-01-15 11:57:16 +00:00
},
{
"type": "object",
"description": "WebSocket request for agent service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-110 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "agent",
"description": "Service identifier for agent service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-111 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-112 > "
2026-01-15 11:57:16 +00:00
},
"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?",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-114 > "
2026-01-15 11:57:16 +00:00
},
"state": {
"type": "string",
"description": "Agent state for continuation (optional, for multi-turn)",
"example": "agent-state-12345",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-115 > "
2026-01-15 11:57:16 +00:00
},
"group": {
"type": "array",
"description": "Group identifiers for collaborative agents (optional)",
"items": {
"type": "string",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-117 > "
2026-01-15 11:57:16 +00:00
},
"example": [
"research-team"
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-116 > "
2026-01-15 11:57:16 +00:00
},
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-120 > "
2026-01-15 11:57:16 +00:00
},
"action": {
"type": "string",
"description": "Action taken",
"example": "search",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-121 > "
2026-01-15 11:57:16 +00:00
},
"arguments": {
"type": "object",
"description": "Action arguments",
"additionalProperties": {
"type": "string",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-123 > "
2026-01-15 11:57:16 +00:00
},
"example": {
"query": "capital of France"
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-122 > "
2026-01-15 11:57:16 +00:00
},
"observation": {
"type": "string",
"description": "Result of the action",
"example": "Paris is the capital of France",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-124 > "
2026-01-15 11:57:16 +00:00
},
"user": {
"type": "string",
"description": "User context for this step",
"example": "alice",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-125 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-119 > "
2026-01-15 11:57:16 +00:00
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-118 > "
2026-01-15 11:57:16 +00:00
},
"user": {
"type": "string",
"description": "User identifier for multi-tenancy",
"default": "trustgraph",
"example": "alice",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-126 > "
2026-01-15 11:57:16 +00:00
},
"streaming": {
"type": "boolean",
"description": "Enable streaming response delivery",
"default": false,
"example": true,
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-127 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-113 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
"service": "agent",
"flow": "my-flow",
"request": {
"question": "What is quantum computing?",
"streaming": true,
"system-prompt": "You are a helpful assistant"
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-109 > "
2026-01-15 11:57:16 +00:00
},
{
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-129 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "document-rag",
"description": "Service identifier for document-rag service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-130 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-131 > "
2026-01-15 11:57:16 +00:00
},
"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?",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-133 > "
2026-01-15 11:57:16 +00:00
},
"user": {
"type": "string",
"description": "User identifier for multi-tenancy",
"default": "trustgraph",
"example": "alice",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-134 > "
2026-01-15 11:57:16 +00:00
},
"collection": {
"type": "string",
"description": "Collection to search within",
"default": "default",
"example": "research",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-135 > "
2026-01-15 11:57:16 +00:00
},
"doc-limit": {
"type": "integer",
"description": "Maximum number of documents to retrieve",
"default": 20,
"minimum": 1,
"maximum": 100,
"example": 10,
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-136 > "
2026-01-15 11:57:16 +00:00
},
"streaming": {
"type": "boolean",
"description": "Enable streaming response delivery",
"default": false,
"example": true,
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-137 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-132 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
"service": "document-rag",
"flow": "my-flow",
"request": {
"query": "What are the main features?",
"streaming": true,
"doc-limit": 20
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-128 > "
2026-01-15 11:57:16 +00:00
},
{
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-139 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "graph-rag",
"description": "Service identifier for graph-rag service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-140 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-141 > "
2026-01-15 11:57:16 +00:00
},
"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?",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-143 > "
2026-01-15 11:57:16 +00:00
},
"user": {
"type": "string",
"description": "User identifier for multi-tenancy",
"default": "trustgraph",
"example": "alice",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-144 > "
2026-01-15 11:57:16 +00:00
},
"collection": {
"type": "string",
"description": "Collection to search within",
"default": "default",
"example": "research",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-145 > "
2026-01-15 11:57:16 +00:00
},
"entity-limit": {
"type": "integer",
"description": "Maximum number of entities to retrieve",
"default": 50,
"minimum": 1,
"maximum": 200,
"example": 30,
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-146 > "
2026-01-15 11:57:16 +00:00
},
"triple-limit": {
"type": "integer",
"description": "Maximum number of triples to retrieve per entity",
"default": 30,
"minimum": 1,
"maximum": 100,
"example": 20,
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-147 > "
2026-01-15 11:57:16 +00:00
},
"max-subgraph-size": {
"type": "integer",
"description": "Maximum total subgraph size (triples)",
"default": 1000,
"minimum": 10,
"maximum": 5000,
"example": 500,
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-148 > "
2026-01-15 11:57:16 +00:00
},
"max-path-length": {
"type": "integer",
"description": "Maximum path length for graph traversal",
"default": 2,
"minimum": 1,
"maximum": 5,
"example": 3,
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-149 > "
2026-01-15 11:57:16 +00:00
},
"streaming": {
"type": "boolean",
"description": "Enable streaming response delivery",
"default": false,
"example": true,
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-150 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-142 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
"service": "graph-rag",
"flow": "my-flow",
"request": {
"query": "What entities are related to quantum computing?",
"streaming": true,
"triple-limit": 100
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-138 > "
2026-01-15 11:57:16 +00:00
},
{
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-152 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "text-completion",
"description": "Service identifier for text-completion service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-153 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-154 > "
2026-01-15 11:57:16 +00:00
},
"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.",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-156 > "
2026-01-15 11:57:16 +00:00
},
"prompt": {
"type": "string",
"description": "User prompt or question",
"example": "Explain the concept of recursion in programming.",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-157 > "
2026-01-15 11:57:16 +00:00
},
"streaming": {
"type": "boolean",
"description": "Enable streaming response delivery",
"default": false,
"example": true,
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-158 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-155 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
"service": "text-completion",
"flow": "my-flow",
"request": {
"prompt": "Once upon a time",
"streaming": true,
"max-output-tokens": 100
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-151 > "
2026-01-15 11:57:16 +00:00
},
{
"type": "object",
"description": "WebSocket request for prompt service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-160 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "prompt",
"description": "Service identifier for prompt service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-161 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-162 > "
2026-01-15 11:57:16 +00:00
},
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-164 > "
2026-01-15 11:57:16 +00:00
},
"terms": {
"type": "object",
"description": "Template variables as key-value pairs (values are JSON strings)",
"additionalProperties": {
"type": "string",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-166 > "
2026-01-15 11:57:16 +00:00
},
"example": {
"document": "\"This is the document text to summarize...\"",
"max_length": "\"200\""
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-165 > "
2026-01-15 11:57:16 +00:00
},
"variables": {
"type": "object",
"description": "Alternative to terms - variables as native JSON values (auto-converted)",
"additionalProperties": {
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-168 > "
2026-01-15 11:57:16 +00:00
},
"example": {
"document": "This is the document text to summarize...",
"max_length": 200
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-167 > "
2026-01-15 11:57:16 +00:00
},
"streaming": {
"type": "boolean",
"description": "Enable streaming response delivery",
"default": false,
"example": true,
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-169 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-163 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
"service": "prompt",
"flow": "my-flow",
"request": {
"template": "default-template",
"variables": {
"topic": "quantum computing",
"style": "technical"
}
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-159 > "
2026-01-15 11:57:16 +00:00
},
{
"type": "object",
"description": "WebSocket request for embeddings service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-171 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "embeddings",
"description": "Service identifier for embeddings service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-172 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-173 > "
2026-01-15 11:57:16 +00:00
},
"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.",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-175 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-174 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
"service": "embeddings",
"flow": "my-flow",
"request": {
"text": "What is quantum computing?"
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-170 > "
2026-01-15 11:57:16 +00:00
},
{
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-177 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "mcp-tool",
"description": "Service identifier for mcp-tool service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-178 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-179 > "
2026-01-15 11:57:16 +00:00
},
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-181 > "
2026-01-15 11:57:16 +00:00
},
"parameters": {
"type": "object",
"description": "Tool parameters (JSON object, auto-converted to string internally)",
"additionalProperties": {
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-183 > "
2026-01-15 11:57:16 +00:00
},
"example": {
"query": "quantum computing",
"limit": 10
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-182 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-180 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
"service": "mcp-tool",
"flow": "my-flow",
"request": {
"tool": "calculator",
"arguments": {
"operation": "add",
"a": 5,
"b": 3
}
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-176 > "
2026-01-15 11:57:16 +00:00
},
{
"type": "object",
"description": "WebSocket request for triples service (flow-hosted service)",
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-185 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "triples",
"description": "Service identifier for triples service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-186 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-187 > "
2026-01-15 11:57:16 +00:00
},
"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,
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-189 > "
2026-01-15 11:57:16 +00:00
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-190 > "
2026-01-15 11:57:16 +00:00
},
"collection": {
"type": "string",
"description": "Collection to query",
"default": "default",
"example": "research",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-191 > "
},
"g": {
"type": "string",
"description": "Named graph filter (optional).\n- Omitted/null: all graphs\n- Empty string: default graph only\n- URI string: specific named graph (e.g., urn:graph:source, urn:graph:retrieval)\n",
"example": "urn:graph:source",
"x-parser-schema-id": "< anonymous-schema-192 > "
},
"streaming": {
"type": "boolean",
"description": "Enable streaming response delivery",
"default": false,
"example": true,
"x-parser-schema-id": "< anonymous-schema-193 > "
},
"batch-size": {
"type": "integer",
"description": "Number of triples per streaming batch",
"default": 20,
"minimum": 1,
"maximum": 1000,
"example": 50,
"x-parser-schema-id": "< anonymous-schema-194 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-188 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
"service": "triples",
"flow": "my-flow",
"request": {
"s": {
"v": "https://example.com/entity1",
"e": true
},
"limit": 100
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-184 > "
2026-01-15 11:57:16 +00:00
},
{
"type": "object",
2026-03-17 20:36:31 +00:00
"description": "WebSocket request for rows service (flow-hosted service)",
2026-01-15 11:57:16 +00:00
"required": [
"id",
"service",
"flow",
"request"
],
"properties": {
"id": {
"type": "string",
"description": "Unique request identifier",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-196 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
2026-03-17 20:36:31 +00:00
"const": "rows",
"description": "Service identifier for rows service",
"x-parser-schema-id": "< anonymous-schema-197 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-198 > "
2026-01-15 11:57:16 +00:00
},
"request": {
"type": "object",
2026-03-17 20:36:31 +00:00
"description": "Rows query request - GraphQL query over structured data.\n",
2026-01-15 11:57:16 +00:00
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-200 > "
2026-01-15 11:57:16 +00:00
},
"variables": {
"type": "object",
"description": "GraphQL query variables",
"additionalProperties": {
"type": "string",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-202 > "
2026-01-15 11:57:16 +00:00
},
"example": {
"id": "https://example.com/person/alice"
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-201 > "
2026-01-15 11:57:16 +00:00
},
"operation-name": {
"type": "string",
"description": "Operation name (for multi-operation documents)",
"example": "GetPerson",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-203 > "
2026-01-15 11:57:16 +00:00
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-204 > "
2026-01-15 11:57:16 +00:00
},
"collection": {
"type": "string",
"description": "Collection to query",
"default": "default",
"example": "research",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-205 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-199 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
2026-03-17 20:36:31 +00:00
"service": "rows",
2026-01-15 11:57:16 +00:00
"flow": "my-flow",
"request": {
"query": "{ entity(id: \"https://example.com/entity1\") { properties { key value } } }"
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-195 > "
2026-01-15 11:57:16 +00:00
},
{
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-207 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "nlp-query",
"description": "Service identifier for nlp-query service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-208 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-209 > "
2026-01-15 11:57:16 +00:00
},
"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?",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-211 > "
2026-01-15 11:57:16 +00:00
},
"max-results": {
"type": "integer",
"description": "Maximum results to return when query is executed",
"default": 100,
"minimum": 1,
"maximum": 10000,
"example": 50,
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-212 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-210 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
"service": "nlp-query",
"flow": "my-flow",
"request": {
"query": "Show me all entities related to quantum computing",
"limit": 50
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-206 > "
2026-01-15 11:57:16 +00:00
},
{
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-214 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "structured-query",
"description": "Service identifier for structured-query service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-215 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-216 > "
2026-01-15 11:57:16 +00:00
},
"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?",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-218 > "
2026-01-15 11:57:16 +00:00
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-219 > "
2026-01-15 11:57:16 +00:00
},
"collection": {
"type": "string",
"description": "Collection to query",
"default": "default",
"example": "research",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-220 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-217 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
"service": "structured-query",
"flow": "my-flow",
"request": {
"query": {
"type": "entity",
"filters": [
{
"property": "type",
"value": "Person"
}
]
}
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-213 > "
2026-01-15 11:57:16 +00:00
},
{
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-222 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "structured-diag",
"description": "Service identifier for structured-diag service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-223 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-224 > "
2026-01-15 11:57:16 +00:00
},
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-226 > "
2026-01-15 11:57:16 +00:00
},
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-227 > "
2026-01-15 11:57:16 +00:00
},
"type": {
"type": "string",
"description": "Data type (required for generate-descriptor)",
"enum": [
"csv",
"json",
"xml"
],
"example": "csv",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-228 > "
2026-01-15 11:57:16 +00:00
},
"schema-name": {
"type": "string",
"description": "Target schema name for descriptor generation (optional)",
"example": "person-records",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-229 > "
2026-01-15 11:57:16 +00:00
},
"options": {
"type": "object",
"description": "Format-specific options (e.g., CSV delimiter)",
"additionalProperties": {
"type": "string",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-231 > "
2026-01-15 11:57:16 +00:00
},
"example": {
"delimiter": ",",
"has_header": "true"
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-230 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-225 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
"service": "structured-diag",
"flow": "my-flow",
"request": {
"operation": "status"
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-221 > "
2026-01-15 11:57:16 +00:00
},
{
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-233 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "graph-embeddings",
"description": "Service identifier for graph-embeddings service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-234 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-235 > "
2026-01-15 11:57:16 +00:00
},
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-238 > "
2026-01-15 11:57:16 +00:00
},
"example": [
0.023,
-0.142,
0.089,
0.234,
-0.067,
0.156
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-237 > "
2026-01-15 11:57:16 +00:00
},
"limit": {
"type": "integer",
"description": "Maximum number of entities to return",
"default": 10,
"minimum": 1,
"maximum": 1000,
"example": 20,
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-239 > "
2026-01-15 11:57:16 +00:00
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-240 > "
2026-01-15 11:57:16 +00:00
},
"collection": {
"type": "string",
"description": "Collection to search",
"default": "default",
"example": "research",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-241 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-236 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
"service": "graph-embeddings",
"flow": "my-flow",
"request": {
"text": "quantum computing",
"limit": 10
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-232 > "
2026-01-15 11:57:16 +00:00
},
{
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-243 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "document-embeddings",
"description": "Service identifier for document-embeddings service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-244 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-245 > "
2026-01-15 11:57:16 +00:00
},
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-248 > "
2026-01-15 11:57:16 +00:00
},
"example": [
0.023,
-0.142,
0.089,
0.234,
-0.067,
0.156
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-247 > "
2026-01-15 11:57:16 +00:00
},
"limit": {
"type": "integer",
"description": "Maximum number of document chunks to return",
"default": 10,
"minimum": 1,
"maximum": 1000,
"example": 20,
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-249 > "
2026-01-15 11:57:16 +00:00
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-250 > "
2026-01-15 11:57:16 +00:00
},
"collection": {
"type": "string",
"description": "Collection to search",
"default": "default",
"example": "research",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-251 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-246 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
"service": "document-embeddings",
"flow": "my-flow",
"request": {
"text": "quantum computing",
"limit": 10
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-242 > "
},
{
"type": "object",
"description": "WebSocket request for row-embeddings 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": "row-embeddings",
"description": "Service identifier for row-embeddings 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": "Row embeddings query request - find similar rows by vector similarity on indexed fields.\nEnables semantic/fuzzy matching on structured data.\n",
"required": [
"vectors",
"schema_name"
],
"properties": {
"vectors": {
"type": "array",
"description": "Query embedding vector",
"items": {
"type": "number",
"x-parser-schema-id": "< anonymous-schema-258 > "
},
"example": [
0.023,
-0.142,
0.089,
0.234,
-0.067,
0.156
],
"x-parser-schema-id": "< anonymous-schema-257 > "
},
"schema_name": {
"type": "string",
"description": "Schema name to search within",
"example": "customers",
"x-parser-schema-id": "< anonymous-schema-259 > "
},
"index_name": {
"type": "string",
"description": "Optional index name to filter search to specific index",
"example": "full_name",
"x-parser-schema-id": "< anonymous-schema-260 > "
},
"limit": {
"type": "integer",
"description": "Maximum number of matches to return",
"default": 10,
"minimum": 1,
"maximum": 1000,
"example": 20,
"x-parser-schema-id": "< anonymous-schema-261 > "
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
"x-parser-schema-id": "< anonymous-schema-262 > "
},
"collection": {
"type": "string",
"description": "Collection to search",
"default": "default",
"example": "sales",
"x-parser-schema-id": "< anonymous-schema-263 > "
}
},
"x-parser-schema-id": "< anonymous-schema-256 > "
}
},
"examples": [
{
"id": "req-1",
"service": "row-embeddings",
"flow": "my-flow",
"request": {
"vectors": [
0.023,
-0.142,
0.089,
0.234
],
"schema_name": "customers",
"limit": 10,
"user": "trustgraph",
"collection": "default"
}
}
],
"x-parser-schema-id": "< anonymous-schema-252 > "
2026-01-15 11:57:16 +00:00
},
{
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-265 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "text-load",
"description": "Service identifier for text-load service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-266 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-267 > "
2026-01-15 11:57:16 +00:00
},
"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==",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-269 > "
2026-01-15 11:57:16 +00:00
},
"id": {
"type": "string",
"description": "Document identifier",
"example": "doc-123",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-270 > "
2026-01-15 11:57:16 +00:00
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-271 > "
2026-01-15 11:57:16 +00:00
},
"collection": {
"type": "string",
"description": "Collection for document",
"default": "default",
"example": "research",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-272 > "
2026-01-15 11:57:16 +00:00
},
"charset": {
"type": "string",
"description": "Text character encoding",
"default": "utf-8",
"example": "utf-8",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-273 > "
2026-01-15 11:57:16 +00:00
},
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-274 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-268 > "
2026-01-15 11:57:16 +00:00
}
},
"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"
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-264 > "
2026-01-15 11:57:16 +00:00
},
{
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-276 > "
2026-01-15 11:57:16 +00:00
},
"service": {
"type": "string",
"const": "document-load",
"description": "Service identifier for document-load service",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-277 > "
2026-01-15 11:57:16 +00:00
},
"flow": {
"type": "string",
"description": "Flow ID",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-278 > "
2026-01-15 11:57:16 +00:00
},
"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...",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-280 > "
2026-01-15 11:57:16 +00:00
},
"id": {
"type": "string",
"description": "Document identifier",
"example": "doc-456",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-281 > "
2026-01-15 11:57:16 +00:00
},
"user": {
"type": "string",
"description": "User identifier",
"default": "trustgraph",
"example": "alice",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-282 > "
2026-01-15 11:57:16 +00:00
},
"collection": {
"type": "string",
"description": "Collection for document",
"default": "default",
"example": "research",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-283 > "
2026-01-15 11:57:16 +00:00
},
"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",
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-284 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-279 > "
2026-01-15 11:57:16 +00:00
}
},
"examples": [
{
"id": "req-1",
"service": "document-load",
"flow": "my-flow",
"request": {
"url": "https://example.com/document.pdf",
"collection": "default"
}
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-275 > "
2026-01-15 11:57:16 +00:00
}
],
"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"
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-286 > "
2026-01-15 11:57:16 +00:00
},
"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
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-287 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-285 > "
2026-01-15 11:57:16 +00:00
},
"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"
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-289 > "
2026-01-15 11:57:16 +00:00
},
"error": {
"type": "object",
"description": "Error information",
"required": [
"type",
"message"
],
"properties": {
"type": {
"type": "string",
"description": "Error type/category",
"examples": [
"gateway-error",
"service-error",
"timeout"
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-291 > "
2026-01-15 11:57:16 +00:00
},
"message": {
"type": "string",
"description": "Human-readable error message",
"examples": [
"Flow not found",
"Service timeout",
"Invalid request format"
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-292 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-290 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-288 > "
2026-01-15 11:57:16 +00:00
},
"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]",
2026-03-17 20:36:31 +00:00
"$ref:$.channels.socket.messages.request.payload.oneOf[20]",
"$ref:$.channels.socket.messages.request.payload.oneOf[21]"
2026-01-15 11:57:16 +00:00
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-293 > "
2026-01-15 11:57:16 +00:00
},
"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"
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-294 > "
2026-01-15 11:57:16 +00:00
},
"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"
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-295 > "
2026-01-15 11:57:16 +00:00
},
"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"
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-296 > "
2026-01-15 11:57:16 +00:00
},
"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"
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-297 > "
2026-01-15 11:57:16 +00:00
}
},
"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"
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-298 > "
2026-01-15 11:57:16 +00:00
},
"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
}
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-299 > "
2026-01-15 11:57:16 +00:00
}
},
"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"
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-300 > "
2026-01-15 11:57:16 +00:00
},
"error": {
"type": "object",
"description": "Error information",
"required": [
"type",
"message"
],
"properties": {
"type": {
"type": "string",
"description": "Error type/category",
"examples": [
"gateway-error",
"service-error",
"timeout"
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-302 > "
2026-01-15 11:57:16 +00:00
},
"message": {
"type": "string",
"description": "Human-readable error message",
"examples": [
"Flow not found",
"Service timeout",
"Invalid request format"
],
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-303 > "
2026-01-15 11:57:16 +00:00
}
},
2026-03-17 20:36:31 +00:00
"x-parser-schema-id": "< anonymous-schema-301 > "
2026-01-15 11:57:16 +00:00
}
},
"x-parser-schema-id": "ErrorEnvelope"
}
}
},
"x-parser-spec-parsed": true,
"x-parser-api-version": 3,
"x-parser-spec-stringified": true
};
2026-03-17 20:36:31 +00:00
const config = {"show":{"sidebar":true},"sidebar":{"showOperations":"byDefault"}};
const appRoot = document.getElementById('root');
AsyncApiStandalone.render(
{ schema, config, }, appRoot
);
< / script >
2026-01-15 11:57:16 +00:00
< / body >
< / html >