import{s as Ze,o as Ge,n as Z}from"../chunks/scheduler.008aaf19.js";import{S as _e,i as ke,e as T,s as r,c as w,h as Ne,a as J,d as a,b as p,f as xe,g as u,j as d,k as Ot,l as Se,m as i,n as m,t as j,o as f,p as h}from"../chunks/index.7c7f75b2.js";import{C as G}from"../chunks/CodeBlock.027569b9.js";import{H as B,E as Ee}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.4f0ca956.js";import{H as te,a as x}from"../chunks/HfOption.b44a1114.js";function We(y){let s,o;return s=new G({props:{code:"ZGVmJTIwZ2V0X3dlYXRoZXIobG9jYXRpb24lM0ElMjBzdHIpJTIwLSUzRSUyMGRpY3QlM0ElMEElMjAlMjAlMjAlMjAlMjIlMjIlMjJHZXQlMjB0aGUlMjBjdXJyZW50JTIwd2VhdGhlciUyMGZvciUyMGElMjBzcGVjaWZpZWQlMjBsb2NhdGlvbi4lMjIlMjIlMjIlMEElMjAlMjAlMjAlMjAlMjMlMjBDb25uZWN0JTIwdG8lMjB3ZWF0aGVyJTIwQVBJJTIwYW5kJTIwZmV0Y2glMjBkYXRhJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIydGVtcGVyYXR1cmUlMjIlM0ElMjA3MiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMmNvbmRpdGlvbnMlMjIlM0ElMjAlMjJTdW5ueSUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMmh1bWlkaXR5JTIyJTNBJTIwNDUlMEElMjAlMjAlMjAlMjAlN0Q=",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">get_weather</span>(<span class="hljs-params">location: <span class="hljs-built_in">str</span></span>) -&gt; <span class="hljs-built_in">dict</span>:
    <span class="hljs-string">&quot;&quot;&quot;Get the current weather for a specified location.&quot;&quot;&quot;</span>
    <span class="hljs-comment"># Connect to weather API and fetch data</span>
    <span class="hljs-keyword">return</span> {
        <span class="hljs-string">&quot;temperature&quot;</span>: <span class="hljs-number">72</span>,
        <span class="hljs-string">&quot;conditions&quot;</span>: <span class="hljs-string">&quot;Sunny&quot;</span>,
        <span class="hljs-string">&quot;humidity&quot;</span>: <span class="hljs-number">45</span>
    }`,wrap:!1}}),{c(){w(s.$$.fragment)},l(e){u(s.$$.fragment,e)},m(e,c){m(s,e,c),o=!0},p:Z,i(e){o||(j(s.$$.fragment,e),o=!0)},o(e){f(s.$$.fragment,e),o=!1},d(e){h(s,e)}}}function qe(y){let s,o;return s=new G({props:{code:"ZnVuY3Rpb24lMjBnZXRXZWF0aGVyKGxvY2F0aW9uKSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyRiUyRiUyMENvbm5lY3QlMjB0byUyMHdlYXRoZXIlMjBBUEklMjBhbmQlMjBmZXRjaCUyMGRhdGElMEElMjAlMjAlMjAlMjByZXR1cm4lMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjB0ZW1wZXJhdHVyZSUzQSUyMDcyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY29uZGl0aW9ucyUzQSUyMCdTdW5ueSclMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBodW1pZGl0eSUzQSUyMDQ1JTBBJTIwJTIwJTIwJTIwJTdEJTNCJTBBJTdE",highlighted:`<span class="hljs-keyword">function</span> <span class="hljs-title function_">getWeather</span>(<span class="hljs-params">location</span>) {
    <span class="hljs-comment">// Connect to weather API and fetch data</span>
    <span class="hljs-keyword">return</span> {
        <span class="hljs-attr">temperature</span>: <span class="hljs-number">72</span>,
        <span class="hljs-attr">conditions</span>: <span class="hljs-string">&#x27;Sunny&#x27;</span>,
        <span class="hljs-attr">humidity</span>: <span class="hljs-number">45</span>
    };
}`,wrap:!1}}),{c(){w(s.$$.fragment)},l(e){u(s.$$.fragment,e)},m(e,c){m(s,e,c),o=!0},p:Z,i(e){o||(j(s.$$.fragment,e),o=!0)},o(e){f(s.$$.fragment,e),o=!1},d(e){h(s,e)}}}function Qe(y){let s,o,e,c;return s=new x({props:{id:"tool-example",option:"python",$$slots:{default:[We]},$$scope:{ctx:y}}}),e=new x({props:{id:"tool-example",option:"javascript",$$slots:{default:[qe]},$$scope:{ctx:y}}}),{c(){w(s.$$.fragment),o=r(),w(e.$$.fragment)},l(n){u(s.$$.fragment,n),o=p(n),u(e.$$.fragment,n)},m(n,M){m(s,n,M),i(n,o,M),m(e,n,M),c=!0},p(n,M){const I={};M&2&&(I.$$scope={dirty:M,ctx:n}),s.$set(I);const $={};M&2&&($.$$scope={dirty:M,ctx:n}),e.$set($)},i(n){c||(j(s.$$.fragment,n),j(e.$$.fragment,n),c=!0)},o(n){f(s.$$.fragment,n),f(e.$$.fragment,n),c=!1},d(n){n&&a(o),h(s,n),h(e,n)}}}function Re(y){let s,o;return s=new G({props:{code:"ZGVmJTIwcmVhZF9maWxlKGZpbGVfcGF0aCUzQSUyMHN0ciklMjAtJTNFJTIwc3RyJTNBJTBBJTIwJTIwJTIwJTIwJTIyJTIyJTIyUmVhZCUyMHRoZSUyMGNvbnRlbnRzJTIwb2YlMjBhJTIwZmlsZSUyMGF0JTIwdGhlJTIwc3BlY2lmaWVkJTIwcGF0aC4lMjIlMjIlMjIlMEElMjAlMjAlMjAlMjB3aXRoJTIwb3BlbihmaWxlX3BhdGglMkMlMjAncicpJTIwYXMlMjBmJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTIwZi5yZWFkKCk=",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">read_file</span>(<span class="hljs-params">file_path: <span class="hljs-built_in">str</span></span>) -&gt; <span class="hljs-built_in">str</span>:
    <span class="hljs-string">&quot;&quot;&quot;Read the contents of a file at the specified path.&quot;&quot;&quot;</span>
    <span class="hljs-keyword">with</span> <span class="hljs-built_in">open</span>(file_path, <span class="hljs-string">&#x27;r&#x27;</span>) <span class="hljs-keyword">as</span> f:
        <span class="hljs-keyword">return</span> f.read()`,wrap:!1}}),{c(){w(s.$$.fragment)},l(e){u(s.$$.fragment,e)},m(e,c){m(s,e,c),o=!0},p:Z,i(e){o||(j(s.$$.fragment,e),o=!0)},o(e){f(s.$$.fragment,e),o=!1},d(e){h(s,e)}}}function Ve(y){let s,o;return s=new G({props:{code:"ZnVuY3Rpb24lMjByZWFkRmlsZShmaWxlUGF0aCklMjAlN0IlMEElMjAlMjAlMjAlMjAlMkYlMkYlMjBVc2luZyUyMGZzLnJlYWRGaWxlJTIwdG8lMjByZWFkJTIwZmlsZSUyMGNvbnRlbnRzJTBBJTIwJTIwJTIwJTIwY29uc3QlMjBmcyUyMCUzRCUyMHJlcXVpcmUoJ2ZzJyklM0IlMEElMjAlMjAlMjAlMjByZXR1cm4lMjBuZXclMjBQcm9taXNlKChyZXNvbHZlJTJDJTIwcmVqZWN0KSUyMCUzRCUzRSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZzLnJlYWRGaWxlKGZpbGVQYXRoJTJDJTIwJ3V0ZjgnJTJDJTIwKGVyciUyQyUyMGRhdGEpJTIwJTNEJTNFJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaWYlMjAoZXJyKSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJlamVjdChlcnIpJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmV0dXJuJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmVzb2x2ZShkYXRhKSUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCklM0IlMEElMjAlMjAlMjAlMjAlN0QpJTNCJTBBJTdE",highlighted:`<span class="hljs-keyword">function</span> <span class="hljs-title function_">readFile</span>(<span class="hljs-params">filePath</span>) {
    <span class="hljs-comment">// Using fs.readFile to read file contents</span>
    <span class="hljs-keyword">const</span> fs = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;fs&#x27;</span>);
    <span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> <span class="hljs-title class_">Promise</span>(<span class="hljs-function">(<span class="hljs-params">resolve, reject</span>) =&gt;</span> {
        fs.<span class="hljs-title function_">readFile</span>(filePath, <span class="hljs-string">&#x27;utf8&#x27;</span>, <span class="hljs-function">(<span class="hljs-params">err, data</span>) =&gt;</span> {
            <span class="hljs-keyword">if</span> (err) {
                <span class="hljs-title function_">reject</span>(err);
                <span class="hljs-keyword">return</span>;
            }
            <span class="hljs-title function_">resolve</span>(data);
        });
    });
}`,wrap:!1}}),{c(){w(s.$$.fragment)},l(e){u(s.$$.fragment,e)},m(e,c){m(s,e,c),o=!0},p:Z,i(e){o||(j(s.$$.fragment,e),o=!0)},o(e){f(s.$$.fragment,e),o=!1},d(e){h(s,e)}}}function He(y){let s,o,e,c;return s=new x({props:{id:"resource-example",option:"python",$$slots:{default:[Re]},$$scope:{ctx:y}}}),e=new x({props:{id:"resource-example",option:"javascript",$$slots:{default:[Ve]},$$scope:{ctx:y}}}),{c(){w(s.$$.fragment),o=r(),w(e.$$.fragment)},l(n){u(s.$$.fragment,n),o=p(n),u(e.$$.fragment,n)},m(n,M){m(s,n,M),i(n,o,M),m(e,n,M),c=!0},p(n,M){const I={};M&2&&(I.$$scope={dirty:M,ctx:n}),s.$set(I);const $={};M&2&&($.$$scope={dirty:M,ctx:n}),e.$set($)},i(n){c||(j(s.$$.fragment,n),j(e.$$.fragment,n),c=!0)},o(n){f(s.$$.fragment,n),f(e.$$.fragment,n),c=!1},d(n){n&&a(o),h(s,n),h(e,n)}}}function Ye(y){let s,o;return s=new G({props:{code:"ZGVmJTIwY29kZV9yZXZpZXcoY29kZSUzQSUyMHN0ciUyQyUyMGxhbmd1YWdlJTNBJTIwc3RyKSUyMC0lM0UlMjBsaXN0JTNBJTBBJTIwJTIwJTIwJTIwJTIyJTIyJTIyR2VuZXJhdGUlMjBhJTIwY29kZSUyMHJldmlldyUyMGZvciUyMHRoZSUyMHByb3ZpZGVkJTIwY29kZSUyMHNuaXBwZXQuJTIyJTIyJTIyJTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIycm9sZSUyMiUzQSUyMCUyMnN5c3RlbSUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMmNvbnRlbnQlMjIlM0ElMjBmJTIyWW91JTIwYXJlJTIwYSUyMGNvZGUlMjByZXZpZXdlciUyMGV4YW1pbmluZyUyMCU3Qmxhbmd1YWdlJTdEJTIwY29kZS4lMjBQcm92aWRlJTIwYSUyMGRldGFpbGVkJTIwcmV2aWV3JTIwaGlnaGxpZ2h0aW5nJTIwYmVzdCUyMHByYWN0aWNlcyUyQyUyMHBvdGVudGlhbCUyMGlzc3VlcyUyQyUyMGFuZCUyMHN1Z2dlc3Rpb25zJTIwZm9yJTIwaW1wcm92ZW1lbnQuJTIyJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIycm9sZSUyMiUzQSUyMCUyMnVzZXIlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjJjb250ZW50JTIyJTNBJTIwZiUyMlBsZWFzZSUyMHJldmlldyUyMHRoaXMlMjAlN0JsYW5ndWFnZSU3RCUyMGNvZGUlM0ElNUNuJTVDbiU2MCU2MCU2MCU3Qmxhbmd1YWdlJTdEJTVDbiU3QmNvZGUlN0QlNUNuJTYwJTYwJTYwJTIyJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTVE",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">code_review</span>(<span class="hljs-params">code: <span class="hljs-built_in">str</span>, language: <span class="hljs-built_in">str</span></span>) -&gt; <span class="hljs-built_in">list</span>:
    <span class="hljs-string">&quot;&quot;&quot;Generate a code review for the provided code snippet.&quot;&quot;&quot;</span>
    <span class="hljs-keyword">return</span> [
        {
            <span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;system&quot;</span>,
            <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">f&quot;You are a code reviewer examining <span class="hljs-subst">{language}</span> code. Provide a detailed review highlighting best practices, potential issues, and suggestions for improvement.&quot;</span>
        },
        {
            <span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>,
            <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">f&quot;Please review this <span class="hljs-subst">{language}</span> code:\\n\\n\`\`\`<span class="hljs-subst">{language}</span>\\n<span class="hljs-subst">{code}</span>\\n\`\`\`&quot;</span>
        }
    ]`,wrap:!1}}),{c(){w(s.$$.fragment)},l(e){u(s.$$.fragment,e)},m(e,c){m(s,e,c),o=!0},p:Z,i(e){o||(j(s.$$.fragment,e),o=!0)},o(e){f(s.$$.fragment,e),o=!1},d(e){h(s,e)}}}function Xe(y){let s,o;return s=new G({props:{code:"ZnVuY3Rpb24lMjBjb2RlUmV2aWV3KGNvZGUlMkMlMjBsYW5ndWFnZSklMjAlN0IlMEElMjAlMjAlMjAlMjByZXR1cm4lMjAlNUIlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByb2xlJTNBJTIwJ3N5c3RlbSclMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjb250ZW50JTNBJTIwJTYwWW91JTIwYXJlJTIwYSUyMGNvZGUlMjByZXZpZXdlciUyMGV4YW1pbmluZyUyMCUyNCU3Qmxhbmd1YWdlJTdEJTIwY29kZS4lMjBQcm92aWRlJTIwYSUyMGRldGFpbGVkJTIwcmV2aWV3JTIwaGlnaGxpZ2h0aW5nJTIwYmVzdCUyMHByYWN0aWNlcyUyQyUyMHBvdGVudGlhbCUyMGlzc3VlcyUyQyUyMGFuZCUyMHN1Z2dlc3Rpb25zJTIwZm9yJTIwaW1wcm92ZW1lbnQuJTYwJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcm9sZSUzQSUyMCd1c2VyJyUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGNvbnRlbnQlM0ElMjAlNjBQbGVhc2UlMjByZXZpZXclMjB0aGlzJTIwJTI0JTdCbGFuZ3VhZ2UlN0QlMjBjb2RlJTNBJTVDbiU1Q24lNUMlNjAlNUMlNjAlNUMlNjAlMjQlN0JsYW5ndWFnZSU3RCU1Q24lMjQlN0Jjb2RlJTdEJTVDbiU1QyU2MCU1QyU2MCU1QyU2MCU2MCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCUyMCUyMCU1RCUzQiUwQSU3RA==",highlighted:'<span class="hljs-keyword">function</span> <span class="hljs-title function_">codeReview</span>(<span class="hljs-params">code, language</span>) {\n    <span class="hljs-keyword">return</span> [\n        {\n            <span class="hljs-attr">role</span>: <span class="hljs-string">&#x27;system&#x27;</span>,\n            <span class="hljs-attr">content</span>: <span class="hljs-string">`You are a code reviewer examining <span class="hljs-subst">${language}</span> code. Provide a detailed review highlighting best practices, potential issues, and suggestions for improvement.`</span>\n        },\n        {\n            <span class="hljs-attr">role</span>: <span class="hljs-string">&#x27;user&#x27;</span>,\n            <span class="hljs-attr">content</span>: <span class="hljs-string">`Please review this <span class="hljs-subst">${language}</span> code:\\n\\n\\`\\`\\`<span class="hljs-subst">${language}</span>\\n<span class="hljs-subst">${code}</span>\\n\\`\\`\\``</span>\n        }\n    ];\n}',wrap:!1}}),{c(){w(s.$$.fragment)},l(e){u(s.$$.fragment,e)},m(e,c){m(s,e,c),o=!0},p:Z,i(e){o||(j(s.$$.fragment,e),o=!0)},o(e){f(s.$$.fragment,e),o=!1},d(e){h(s,e)}}}function Le(y){let s,o,e,c;return s=new x({props:{id:"prompt-example",option:"python",$$slots:{default:[Ye]},$$scope:{ctx:y}}}),e=new x({props:{id:"prompt-example",option:"javascript",$$slots:{default:[Xe]},$$scope:{ctx:y}}}),{c(){w(s.$$.fragment),o=r(),w(e.$$.fragment)},l(n){u(s.$$.fragment,n),o=p(n),u(e.$$.fragment,n)},m(n,M){m(s,n,M),i(n,o,M),m(e,n,M),c=!0},p(n,M){const I={};M&2&&(I.$$scope={dirty:M,ctx:n}),s.$set(I);const $={};M&2&&($.$$scope={dirty:M,ctx:n}),e.$set($)},i(n){c||(j(s.$$.fragment,n),j(e.$$.fragment,n),c=!0)},o(n){f(s.$$.fragment,n),f(e.$$.fragment,n),c=!1},d(n){n&&a(o),h(s,n),h(e,n)}}}function Pe(y){let s,o;return s=new G({props:{code:"ZGVmJTIwcmVxdWVzdF9zYW1wbGluZyhtZXNzYWdlcyUyQyUyMHN5c3RlbV9wcm9tcHQlM0ROb25lJTJDJTIwaW5jbHVkZV9jb250ZXh0JTNEJTIybm9uZSUyMiklM0ElMEElMjAlMjAlMjAlMjAlMjIlMjIlMjJSZXF1ZXN0JTIwTExNJTIwc2FtcGxpbmclMjBmcm9tJTIwdGhlJTIwY2xpZW50LiUyMiUyMiUyMiUwQSUyMCUyMCUyMCUyMCUyMyUyMEluJTIwYSUyMHJlYWwlMjBpbXBsZW1lbnRhdGlvbiUyQyUyMHRoaXMlMjB3b3VsZCUyMHNlbmQlMjBhJTIwcmVxdWVzdCUyMHRvJTIwdGhlJTIwY2xpZW50JTBBJTIwJTIwJTIwJTIwcmV0dXJuJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIycm9sZSUyMiUzQSUyMCUyMmFzc2lzdGFudCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMmNvbnRlbnQlMjIlM0ElMjAlMjJBbmFseXNpcyUyMG9mJTIwdGhlJTIwcHJvdmlkZWQlMjBkYXRhLi4uJTIyJTBBJTIwJTIwJTIwJTIwJTdE",highlighted:`<span class="hljs-keyword">def</span> <span class="hljs-title function_">request_sampling</span>(<span class="hljs-params">messages, system_prompt=<span class="hljs-literal">None</span>, include_context=<span class="hljs-string">&quot;none&quot;</span></span>):
    <span class="hljs-string">&quot;&quot;&quot;Request LLM sampling from the client.&quot;&quot;&quot;</span>
    <span class="hljs-comment"># In a real implementation, this would send a request to the client</span>
    <span class="hljs-keyword">return</span> {
        <span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;assistant&quot;</span>,
        <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;Analysis of the provided data...&quot;</span>
    }`,wrap:!1}}),{c(){w(s.$$.fragment)},l(e){u(s.$$.fragment,e)},m(e,c){m(s,e,c),o=!0},p:Z,i(e){o||(j(s.$$.fragment,e),o=!0)},o(e){f(s.$$.fragment,e),o=!1},d(e){h(s,e)}}}function ze(y){let s,o;return s=new G({props:{code:"ZnVuY3Rpb24lMjByZXF1ZXN0U2FtcGxpbmcobWVzc2FnZXMlMkMlMjBzeXN0ZW1Qcm9tcHQlMjAlM0QlMjBudWxsJTJDJTIwaW5jbHVkZUNvbnRleHQlMjAlM0QlMjAnbm9uZScpJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTJGJTJGJTIwSW4lMjBhJTIwcmVhbCUyMGltcGxlbWVudGF0aW9uJTJDJTIwdGhpcyUyMHdvdWxkJTIwc2VuZCUyMGElMjByZXF1ZXN0JTIwdG8lMjB0aGUlMjBjbGllbnQlMEElMjAlMjAlMjAlMjByZXR1cm4lMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByb2xlJTNBJTIwJ2Fzc2lzdGFudCclMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjb250ZW50JTNBJTIwJ0FuYWx5c2lzJTIwb2YlMjB0aGUlMjBwcm92aWRlZCUyMGRhdGEuLi4nJTBBJTIwJTIwJTIwJTIwJTdEJTNCJTBBJTdEJTBBJTBBZnVuY3Rpb24lMjBoYW5kbGVTYW1wbGluZ1JlcXVlc3QocmVxdWVzdCklMjAlN0IlMEElMjAlMjAlMjAlMjBjb25zdCUyMCU3QiUyMG1lc3NhZ2VzJTJDJTIwc3lzdGVtUHJvbXB0JTJDJTIwaW5jbHVkZUNvbnRleHQlMjAlN0QlMjAlM0QlMjByZXF1ZXN0JTNCJTBBJTIwJTIwJTIwJTIwJTJGJTJGJTIwSW4lMjBhJTIwcmVhbCUyMGltcGxlbWVudGF0aW9uJTJDJTIwdGhpcyUyMHdvdWxkJTIwcHJvY2VzcyUyMHRoZSUyMHJlcXVlc3QlMjBhbmQlMjByZXR1cm4lMjBhJTIwcmVzcG9uc2UlMEElMjAlMjAlMjAlMjByZXR1cm4lMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByb2xlJTNBJTIwJ2Fzc2lzdGFudCclMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBjb250ZW50JTNBJTIwJ1Jlc3BvbnNlJTIwdG8lMjB0aGUlMjBzYW1wbGluZyUyMHJlcXVlc3QuLi4nJTBBJTIwJTIwJTIwJTIwJTdEJTNCJTBBJTdE",highlighted:`<span class="hljs-keyword">function</span> <span class="hljs-title function_">requestSampling</span>(<span class="hljs-params">messages, systemPrompt = <span class="hljs-literal">null</span>, includeContext = <span class="hljs-string">&#x27;none&#x27;</span></span>) {
    <span class="hljs-comment">// In a real implementation, this would send a request to the client</span>
    <span class="hljs-keyword">return</span> {
        <span class="hljs-attr">role</span>: <span class="hljs-string">&#x27;assistant&#x27;</span>,
        <span class="hljs-attr">content</span>: <span class="hljs-string">&#x27;Analysis of the provided data...&#x27;</span>
    };
}

<span class="hljs-keyword">function</span> <span class="hljs-title function_">handleSamplingRequest</span>(<span class="hljs-params">request</span>) {
    <span class="hljs-keyword">const</span> { messages, systemPrompt, includeContext } = request;
    <span class="hljs-comment">// In a real implementation, this would process the request and return a response</span>
    <span class="hljs-keyword">return</span> {
        <span class="hljs-attr">role</span>: <span class="hljs-string">&#x27;assistant&#x27;</span>,
        <span class="hljs-attr">content</span>: <span class="hljs-string">&#x27;Response to the sampling request...&#x27;</span>
    };
}`,wrap:!1}}),{c(){w(s.$$.fragment)},l(e){u(s.$$.fragment,e)},m(e,c){m(s,e,c),o=!0},p:Z,i(e){o||(j(s.$$.fragment,e),o=!0)},o(e){f(s.$$.fragment,e),o=!1},d(e){h(s,e)}}}function Fe(y){let s,o,e,c;return s=new x({props:{id:"sampling-example",option:"python",$$slots:{default:[Pe]},$$scope:{ctx:y}}}),e=new x({props:{id:"sampling-example",option:"javascript",$$slots:{default:[ze]},$$scope:{ctx:y}}}),{c(){w(s.$$.fragment),o=r(),w(e.$$.fragment)},l(n){u(s.$$.fragment,n),o=p(n),u(e.$$.fragment,n)},m(n,M){m(s,n,M),i(n,o,M),m(e,n,M),c=!0},p(n,M){const I={};M&2&&(I.$$scope={dirty:M,ctx:n}),s.$set(I);const $={};M&2&&($.$$scope={dirty:M,ctx:n}),e.$set($)},i(n){c||(j(s.$$.fragment,n),j(e.$$.fragment,n),c=!0)},o(n){f(s.$$.fragment,n),f(e.$$.fragment,n),c=!1},d(n){n&&a(o),h(s,n),h(e,n)}}}function De(y){let s,o,e,c,n,M,I,$="MCP Servers expose a variety of capabilities to Clients through the communication protocol. These capabilities fall into four main categories, each with distinct characteristics and use cases. Let’s explore these core primitives that form the foundation of MCP’s functionality.",Jt,U,ee="<p>In this section, we’ll show examples as framework agnostic functions in each language. This is to focus on the concepts and how they work together, rather than the complexities of any framework.</p> <p>In the coming units, we’ll show how these concepts are implemented in MCP specific code.</p>",wt,_,ut,k,se="Tools are executable functions or actions that the AI model can invoke through the MCP protocol.",mt,N,le="<li><strong>Control</strong>: Tools are typically <strong>model-controlled</strong>, meaning that the AI model (LLM) decides when to call them based on the user’s request and context.</li> <li><strong>Safety</strong>: Due to their ability to perform actions with side effects, tool execution can be dangerous. Therefore, they typically require explicit user approval.</li> <li><strong>Use Cases</strong>: Sending messages, creating tickets, querying APIs, performing calculations.</li>",jt,S,ne="<strong>Example</strong>: A weather tool that fetches current weather data for a given location:",ft,g,ht,E,dt,W,ae="Resources provide read-only access to data sources, allowing the AI model to retrieve context without executing complex logic.",yt,q,ie="<li><strong>Control</strong>: Resources are <strong>application-controlled</strong>, meaning the Host application typically decides when to access them.</li> <li><strong>Nature</strong>: They are designed for data retrieval with minimal computation, similar to GET endpoints in REST APIs.</li> <li><strong>Safety</strong>: Since they are read-only, they typically present lower security risks than Tools.</li> <li><strong>Use Cases</strong>: Accessing file contents, retrieving database records, reading configuration information.</li>",It,Q,oe="<strong>Example</strong>: A resource that provides access to file contents:",$t,C,Ut,R,gt,V,re="Prompts are predefined templates or workflows that guide the interaction between the user, the AI model, and the Server’s capabilities.",Ct,H,pe="<li><strong>Control</strong>: Prompts are <strong>user-controlled</strong>, often presented as options in the Host application’s UI.</li> <li><strong>Purpose</strong>: They structure interactions for optimal use of available Tools and Resources.</li> <li><strong>Selection</strong>: Users typically select a prompt before the AI model begins processing, setting context for the interaction.</li> <li><strong>Use Cases</strong>: Common workflows, specialized task templates, guided interactions.</li>",bt,Y,ce="<strong>Example</strong>: A prompt template for generating a code review:",At,b,vt,X,Bt,L,Me="Sampling allows Servers to request the Client (specifically, the Host application) to perform LLM interactions.",xt,P,Te="<li><strong>Control</strong>: Sampling is <strong>server-initiated</strong> but requires Client/Host facilitation.</li> <li><strong>Purpose</strong>: It enables server-driven agentic behaviors and potentially recursive or multi-step interactions.</li> <li><strong>Safety</strong>: Like Tools, sampling operations typically require user approval.</li> <li><strong>Use Cases</strong>: Complex multi-step tasks, autonomous agent workflows, interactive processes.</li>",Zt,z,Je="<strong>Example</strong>: A Server might request the Client to analyze data it has processed:",Gt,A,_t,F,we="The sampling flow follows these steps:",kt,D,ue="<li>Server sends a <code>sampling/createMessage</code> request to the client</li> <li>Client reviews the request and can modify it</li> <li>Client samples from an LLM</li> <li>Client reviews the completion</li> <li>Client returns the result to the server</li>",Nt,v,me="<p>This human-in-the-loop design ensures users maintain control over what the LLM sees and generates. When implementing sampling, it’s important to provide clear, well-structured prompts and include relevant context.</p>",St,K,Et,O,je="Let’s look at how these capabilities work together to enable complex interactions. In the table below, we’ve outlined the capabilities, who controls them, the direction of control, and some other details.",Wt,tt,fe="<thead><tr><th>Capability</th> <th>Controlled By</th> <th>Direction</th> <th>Side Effects</th> <th>Approval Needed</th> <th>Typical Use Cases</th></tr></thead> <tbody><tr><td>Tools</td> <td>Model (LLM)</td> <td>Client → Server</td> <td>Yes (potentially)</td> <td>Yes</td> <td>Actions, API calls, data manipulation</td></tr> <tr><td>Resources</td> <td>Application</td> <td>Client → Server</td> <td>No (read-only)</td> <td>Typically no</td> <td>Data retrieval, context gathering</td></tr> <tr><td>Prompts</td> <td>User</td> <td>Server → Client</td> <td>No</td> <td>No (selected by user)</td> <td>Guided workflows, specialized templates</td></tr> <tr><td>Sampling</td> <td>Server</td> <td>Server → Client → Server</td> <td>Indirectly</td> <td>Yes</td> <td>Multi-step tasks, agentic behaviors</td></tr></tbody>",qt,et,he="These capabilities are designed to work together in complementary ways:",Qt,st,de="<li>A user might select a <strong>Prompt</strong> to start a specialized workflow</li> <li>The Prompt might include context from <strong>Resources</strong></li> <li>During processing, the AI model might call <strong>Tools</strong> to perform specific actions</li> <li>For complex operations, the Server might use <strong>Sampling</strong> to request additional LLM processing</li>",Rt,lt,ye="The distinction between these primitives provides a clear structure for MCP interactions, enabling AI models to access information, perform actions, and engage in complex workflows while maintaining appropriate control boundaries.",Vt,nt,Ht,at,Ie="One of MCP’s key features is dynamic capability discovery. When a Client connects to a Server, it can query the available Tools, Resources, and Prompts through specific list methods:",Yt,it,$e="<li><code>tools/list</code>: Discover available Tools</li> <li><code>resources/list</code>: Discover available Resources</li> <li><code>prompts/list</code>: Discover available Prompts</li>",Xt,ot,Ue="This dynamic discovery mechanism allows Clients to adapt to the specific capabilities each Server offers without requiring hardcoded knowledge of the Server’s functionality.",Lt,rt,Pt,pt,ge="Understanding these core primitives is essential for working with MCP effectively. By providing distinct types of capabilities with clear control boundaries, MCP enables powerful interactions between AI models and external systems while maintaining appropriate safety and control mechanisms.",zt,ct,Ce="In the next section, we’ll explore how Gradio integrates with MCP to provide easy-to-use interfaces for these capabilities.",Ft,Mt,Dt,Tt,Kt;return n=new B({props:{title:"Understanding MCP Capabilities",local:"understanding-mcp-capabilities",headingTag:"h1"}}),_=new B({props:{title:"Tools",local:"tools",headingTag:"h2"}}),g=new te({props:{id:"tool-example",options:["python","javascript"],$$slots:{default:[Qe]},$$scope:{ctx:y}}}),E=new B({props:{title:"Resources",local:"resources",headingTag:"h2"}}),C=new te({props:{id:"resource-example",options:["python","javascript"],$$slots:{default:[He]},$$scope:{ctx:y}}}),R=new B({props:{title:"Prompts",local:"prompts",headingTag:"h2"}}),b=new te({props:{id:"prompt-example",options:["python","javascript"],$$slots:{default:[Le]},$$scope:{ctx:y}}}),X=new B({props:{title:"Sampling",local:"sampling",headingTag:"h2"}}),A=new te({props:{id:"sampling-example",options:["python","javascript"],$$slots:{default:[Fe]},$$scope:{ctx:y}}}),K=new B({props:{title:"How Capabilities Work Together",local:"how-capabilities-work-together",headingTag:"h2"}}),nt=new B({props:{title:"Discovery Process",local:"discovery-process",headingTag:"h2"}}),rt=new B({props:{title:"Conclusion",local:"conclusion",headingTag:"h2"}}),Mt=new Ee({props:{source:"https://github.com/huggingface/mcp-course/blob/main/units/en/unit1/capabilities.mdx"}}),{c(){s=T("meta"),o=r(),e=T("p"),c=r(),w(n.$$.fragment),M=r(),I=T("p"),I.textContent=$,Jt=r(),U=T("blockquote"),U.innerHTML=ee,wt=r(),w(_.$$.fragment),ut=r(),k=T("p"),k.textContent=se,mt=r(),N=T("ul"),N.innerHTML=le,jt=r(),S=T("p"),S.innerHTML=ne,ft=r(),w(g.$$.fragment),ht=r(),w(E.$$.fragment),dt=r(),W=T("p"),W.textContent=ae,yt=r(),q=T("ul"),q.innerHTML=ie,It=r(),Q=T("p"),Q.innerHTML=oe,$t=r(),w(C.$$.fragment),Ut=r(),w(R.$$.fragment),gt=r(),V=T("p"),V.textContent=re,Ct=r(),H=T("ul"),H.innerHTML=pe,bt=r(),Y=T("p"),Y.innerHTML=ce,At=r(),w(b.$$.fragment),vt=r(),w(X.$$.fragment),Bt=r(),L=T("p"),L.textContent=Me,xt=r(),P=T("ul"),P.innerHTML=Te,Zt=r(),z=T("p"),z.innerHTML=Je,Gt=r(),w(A.$$.fragment),_t=r(),F=T("p"),F.textContent=we,kt=r(),D=T("ol"),D.innerHTML=ue,Nt=r(),v=T("blockquote"),v.innerHTML=me,St=r(),w(K.$$.fragment),Et=r(),O=T("p"),O.textContent=je,Wt=r(),tt=T("table"),tt.innerHTML=fe,qt=r(),et=T("p"),et.textContent=he,Qt=r(),st=T("ol"),st.innerHTML=de,Rt=r(),lt=T("p"),lt.textContent=ye,Vt=r(),w(nt.$$.fragment),Ht=r(),at=T("p"),at.textContent=Ie,Yt=r(),it=T("ul"),it.innerHTML=$e,Xt=r(),ot=T("p"),ot.textContent=Ue,Lt=r(),w(rt.$$.fragment),Pt=r(),pt=T("p"),pt.textContent=ge,zt=r(),ct=T("p"),ct.textContent=Ce,Ft=r(),w(Mt.$$.fragment),Dt=r(),Tt=T("p"),this.h()},l(t){const l=Ne("svelte-u9bgzb",document.head);s=J(l,"META",{name:!0,content:!0}),l.forEach(a),o=p(t),e=J(t,"P",{}),xe(e).forEach(a),c=p(t),u(n.$$.fragment,t),M=p(t),I=J(t,"P",{"data-svelte-h":!0}),d(I)!=="svelte-1rqrg0d"&&(I.textContent=$),Jt=p(t),U=J(t,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),d(U)!=="svelte-1jgac4r"&&(U.innerHTML=ee),wt=p(t),u(_.$$.fragment,t),ut=p(t),k=J(t,"P",{"data-svelte-h":!0}),d(k)!=="svelte-eabvb"&&(k.textContent=se),mt=p(t),N=J(t,"UL",{"data-svelte-h":!0}),d(N)!=="svelte-1ku5qg9"&&(N.innerHTML=le),jt=p(t),S=J(t,"P",{"data-svelte-h":!0}),d(S)!=="svelte-92tn3a"&&(S.innerHTML=ne),ft=p(t),u(g.$$.fragment,t),ht=p(t),u(E.$$.fragment,t),dt=p(t),W=J(t,"P",{"data-svelte-h":!0}),d(W)!=="svelte-1h8iwnr"&&(W.textContent=ae),yt=p(t),q=J(t,"UL",{"data-svelte-h":!0}),d(q)!=="svelte-1t0pd42"&&(q.innerHTML=ie),It=p(t),Q=J(t,"P",{"data-svelte-h":!0}),d(Q)!=="svelte-wiikae"&&(Q.innerHTML=oe),$t=p(t),u(C.$$.fragment,t),Ut=p(t),u(R.$$.fragment,t),gt=p(t),V=J(t,"P",{"data-svelte-h":!0}),d(V)!=="svelte-17ki8xe"&&(V.textContent=re),Ct=p(t),H=J(t,"UL",{"data-svelte-h":!0}),d(H)!=="svelte-8xl8wu"&&(H.innerHTML=pe),bt=p(t),Y=J(t,"P",{"data-svelte-h":!0}),d(Y)!=="svelte-1ytqzlv"&&(Y.innerHTML=ce),At=p(t),u(b.$$.fragment,t),vt=p(t),u(X.$$.fragment,t),Bt=p(t),L=J(t,"P",{"data-svelte-h":!0}),d(L)!=="svelte-1i1kyfj"&&(L.textContent=Me),xt=p(t),P=J(t,"UL",{"data-svelte-h":!0}),d(P)!=="svelte-1ye19a"&&(P.innerHTML=Te),Zt=p(t),z=J(t,"P",{"data-svelte-h":!0}),d(z)!=="svelte-19b7qk5"&&(z.innerHTML=Je),Gt=p(t),u(A.$$.fragment,t),_t=p(t),F=J(t,"P",{"data-svelte-h":!0}),d(F)!=="svelte-hnxpug"&&(F.textContent=we),kt=p(t),D=J(t,"OL",{"data-svelte-h":!0}),d(D)!=="svelte-ski7a8"&&(D.innerHTML=ue),Nt=p(t),v=J(t,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),d(v)!=="svelte-1gt9xxf"&&(v.innerHTML=me),St=p(t),u(K.$$.fragment,t),Et=p(t),O=J(t,"P",{"data-svelte-h":!0}),d(O)!=="svelte-1teh3lt"&&(O.textContent=je),Wt=p(t),tt=J(t,"TABLE",{"data-svelte-h":!0}),d(tt)!=="svelte-b2orbk"&&(tt.innerHTML=fe),qt=p(t),et=J(t,"P",{"data-svelte-h":!0}),d(et)!=="svelte-w5ngrr"&&(et.textContent=he),Qt=p(t),st=J(t,"OL",{"data-svelte-h":!0}),d(st)!=="svelte-3ssiwq"&&(st.innerHTML=de),Rt=p(t),lt=J(t,"P",{"data-svelte-h":!0}),d(lt)!=="svelte-1tbgnp9"&&(lt.textContent=ye),Vt=p(t),u(nt.$$.fragment,t),Ht=p(t),at=J(t,"P",{"data-svelte-h":!0}),d(at)!=="svelte-70unto"&&(at.textContent=Ie),Yt=p(t),it=J(t,"UL",{"data-svelte-h":!0}),d(it)!=="svelte-1tbjqlf"&&(it.innerHTML=$e),Xt=p(t),ot=J(t,"P",{"data-svelte-h":!0}),d(ot)!=="svelte-11ck5sy"&&(ot.textContent=Ue),Lt=p(t),u(rt.$$.fragment,t),Pt=p(t),pt=J(t,"P",{"data-svelte-h":!0}),d(pt)!=="svelte-w0cqgp"&&(pt.textContent=ge),zt=p(t),ct=J(t,"P",{"data-svelte-h":!0}),d(ct)!=="svelte-13tys92"&&(ct.textContent=Ce),Ft=p(t),u(Mt.$$.fragment,t),Dt=p(t),Tt=J(t,"P",{}),xe(Tt).forEach(a),this.h()},h(){Ot(s,"name","hf:doc:metadata"),Ot(s,"content",Ke),Ot(U,"class","tip"),Ot(v,"class","tip")},m(t,l){Se(document.head,s),i(t,o,l),i(t,e,l),i(t,c,l),m(n,t,l),i(t,M,l),i(t,I,l),i(t,Jt,l),i(t,U,l),i(t,wt,l),m(_,t,l),i(t,ut,l),i(t,k,l),i(t,mt,l),i(t,N,l),i(t,jt,l),i(t,S,l),i(t,ft,l),m(g,t,l),i(t,ht,l),m(E,t,l),i(t,dt,l),i(t,W,l),i(t,yt,l),i(t,q,l),i(t,It,l),i(t,Q,l),i(t,$t,l),m(C,t,l),i(t,Ut,l),m(R,t,l),i(t,gt,l),i(t,V,l),i(t,Ct,l),i(t,H,l),i(t,bt,l),i(t,Y,l),i(t,At,l),m(b,t,l),i(t,vt,l),m(X,t,l),i(t,Bt,l),i(t,L,l),i(t,xt,l),i(t,P,l),i(t,Zt,l),i(t,z,l),i(t,Gt,l),m(A,t,l),i(t,_t,l),i(t,F,l),i(t,kt,l),i(t,D,l),i(t,Nt,l),i(t,v,l),i(t,St,l),m(K,t,l),i(t,Et,l),i(t,O,l),i(t,Wt,l),i(t,tt,l),i(t,qt,l),i(t,et,l),i(t,Qt,l),i(t,st,l),i(t,Rt,l),i(t,lt,l),i(t,Vt,l),m(nt,t,l),i(t,Ht,l),i(t,at,l),i(t,Yt,l),i(t,it,l),i(t,Xt,l),i(t,ot,l),i(t,Lt,l),m(rt,t,l),i(t,Pt,l),i(t,pt,l),i(t,zt,l),i(t,ct,l),i(t,Ft,l),m(Mt,t,l),i(t,Dt,l),i(t,Tt,l),Kt=!0},p(t,[l]){const be={};l&2&&(be.$$scope={dirty:l,ctx:t}),g.$set(be);const Ae={};l&2&&(Ae.$$scope={dirty:l,ctx:t}),C.$set(Ae);const ve={};l&2&&(ve.$$scope={dirty:l,ctx:t}),b.$set(ve);const Be={};l&2&&(Be.$$scope={dirty:l,ctx:t}),A.$set(Be)},i(t){Kt||(j(n.$$.fragment,t),j(_.$$.fragment,t),j(g.$$.fragment,t),j(E.$$.fragment,t),j(C.$$.fragment,t),j(R.$$.fragment,t),j(b.$$.fragment,t),j(X.$$.fragment,t),j(A.$$.fragment,t),j(K.$$.fragment,t),j(nt.$$.fragment,t),j(rt.$$.fragment,t),j(Mt.$$.fragment,t),Kt=!0)},o(t){f(n.$$.fragment,t),f(_.$$.fragment,t),f(g.$$.fragment,t),f(E.$$.fragment,t),f(C.$$.fragment,t),f(R.$$.fragment,t),f(b.$$.fragment,t),f(X.$$.fragment,t),f(A.$$.fragment,t),f(K.$$.fragment,t),f(nt.$$.fragment,t),f(rt.$$.fragment,t),f(Mt.$$.fragment,t),Kt=!1},d(t){t&&(a(o),a(e),a(c),a(M),a(I),a(Jt),a(U),a(wt),a(ut),a(k),a(mt),a(N),a(jt),a(S),a(ft),a(ht),a(dt),a(W),a(yt),a(q),a(It),a(Q),a($t),a(Ut),a(gt),a(V),a(Ct),a(H),a(bt),a(Y),a(At),a(vt),a(Bt),a(L),a(xt),a(P),a(Zt),a(z),a(Gt),a(_t),a(F),a(kt),a(D),a(Nt),a(v),a(St),a(Et),a(O),a(Wt),a(tt),a(qt),a(et),a(Qt),a(st),a(Rt),a(lt),a(Vt),a(Ht),a(at),a(Yt),a(it),a(Xt),a(ot),a(Lt),a(Pt),a(pt),a(zt),a(ct),a(Ft),a(Dt),a(Tt)),a(s),h(n,t),h(_,t),h(g,t),h(E,t),h(C,t),h(R,t),h(b,t),h(X,t),h(A,t),h(K,t),h(nt,t),h(rt,t),h(Mt,t)}}}const Ke='{"title":"Understanding MCP Capabilities","local":"understanding-mcp-capabilities","sections":[{"title":"Tools","local":"tools","sections":[],"depth":2},{"title":"Resources","local":"resources","sections":[],"depth":2},{"title":"Prompts","local":"prompts","sections":[],"depth":2},{"title":"Sampling","local":"sampling","sections":[],"depth":2},{"title":"How Capabilities Work Together","local":"how-capabilities-work-together","sections":[],"depth":2},{"title":"Discovery Process","local":"discovery-process","sections":[],"depth":2},{"title":"Conclusion","local":"conclusion","sections":[],"depth":2}],"depth":1}';function Oe(y){return Ge(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class as extends _e{constructor(s){super(),ke(this,s,Oe,De,Ze,{})}}export{as as component};
