signalpilot-ai-internal 0.10.0__py3-none-any.whl → 0.10.22__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. signalpilot_ai_internal/__init__.py +1 -0
  2. signalpilot_ai_internal/_version.py +1 -1
  3. signalpilot_ai_internal/databricks_schema_service.py +902 -0
  4. signalpilot_ai_internal/handlers.py +72 -2
  5. signalpilot_ai_internal/mcp_handlers.py +508 -0
  6. signalpilot_ai_internal/mcp_server_manager.py +298 -0
  7. signalpilot_ai_internal/mcp_service.py +1303 -0
  8. signalpilot_ai_internal/schema_search_service.py +62 -1
  9. signalpilot_ai_internal/test_dbt_mcp_server.py +180 -0
  10. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/package.json +2 -2
  11. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/schemas/signalpilot-ai-internal/package.json.orig +1 -1
  12. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/schemas/signalpilot-ai-internal/plugin.json +7 -1
  13. signalpilot_ai_internal-0.10.0.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/786.770dc7bcab77e14cc135.js → signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/110.224e83db03814fd03955.js +2 -2
  14. signalpilot_ai_internal-0.10.0.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/57.e9acd2e1f9739037f1ab.js → signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/57.c4232851631fb2e7e59a.js +1 -1
  15. signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/726.318e4e791edb63cc788f.js +1 -0
  16. signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/880.d9914229e4f120e7e9e4.js +1 -0
  17. signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/936.d80de1e4da5b520d2f3b.js +1 -0
  18. signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/remoteEntry.b63c429ca81e743b403c.js +1 -0
  19. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/third-party-licenses.json +18 -0
  20. {signalpilot_ai_internal-0.10.0.dist-info → signalpilot_ai_internal-0.10.22.dist-info}/METADATA +3 -2
  21. signalpilot_ai_internal-0.10.22.dist-info/RECORD +56 -0
  22. signalpilot_ai_internal-0.10.0.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/330.af2e9cb5def5ae2b84d5.js +0 -1
  23. signalpilot_ai_internal-0.10.0.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/880.25ddd15aca09421d3765.js +0 -1
  24. signalpilot_ai_internal-0.10.0.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/remoteEntry.b05b2f0c9617ba28370d.js +0 -1
  25. signalpilot_ai_internal-0.10.0.dist-info/RECORD +0 -50
  26. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/etc/jupyter/jupyter_server_config.d/signalpilot_ai.json +0 -0
  27. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/install.json +0 -0
  28. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/122.e2dadf63dc64d7b5f1ee.js +0 -0
  29. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/220.328403b5545f268b95c6.js +0 -0
  30. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/262.726e1da31a50868cb297.js +0 -0
  31. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/353.972abe1d2d66f083f9cc.js +0 -0
  32. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/364.dbec4c2dc12e7b050dcc.js +0 -0
  33. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/384.fa432bdb7fb6b1c95ad6.js +0 -0
  34. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/439.37e271d7a80336daabe2.js +0 -0
  35. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/476.ad22ccddd74ee306fb56.js +0 -0
  36. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/481.73c7a9290b7d35a8b9c1.js +0 -0
  37. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/512.b58fc0093d080b8ee61c.js +0 -0
  38. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/553.b4042a795c91d9ff71ef.js +0 -0
  39. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/553.b4042a795c91d9ff71ef.js.LICENSE.txt +0 -0
  40. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/635.9720593ee20b768da3ca.js +0 -0
  41. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/713.8e6edc9a965bdd578ca7.js +0 -0
  42. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/741.dc49867fafb03ea2ba4d.js +0 -0
  43. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/742.91e7b516c8699eea3373.js +0 -0
  44. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/785.2d75de1a8d2c3131a8db.js +0 -0
  45. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/801.ca9e114a30896b669a3c.js +0 -0
  46. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/888.34054db17bcf6e87ec95.js +0 -0
  47. {signalpilot_ai_internal-0.10.0.data → signalpilot_ai_internal-0.10.22.data}/data/share/jupyter/labextensions/signalpilot-ai-internal/static/style.js +0 -0
  48. {signalpilot_ai_internal-0.10.0.dist-info → signalpilot_ai_internal-0.10.22.dist-info}/WHEEL +0 -0
  49. {signalpilot_ai_internal-0.10.0.dist-info → signalpilot_ai_internal-0.10.22.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunksignalpilot_ai_internal=self.webpackChunksignalpilot_ai_internal||[]).push([[936],{45981:e=>{function n(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{const i=e[t],o=typeof i;"object"!==o&&"function"!==o||Object.isFrozen(i)||n(i)}),e}class t{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function i(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function o(e,...n){const t=Object.create(null);for(const n in e)t[n]=e[n];return n.forEach(function(e){for(const n in e)t[n]=e[n]}),t}const r=e=>!!e.scope;class s{constructor(e,n){this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){this.buffer+=i(e)}openNode(e){if(!r(e))return;const n=((e,{prefix:n})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const t=e.split(".");return[`${n}${t.shift()}`,...t.map((e,n)=>`${e}${"_".repeat(n+1)}`)].join(" ")}return`${n}${e}`})(e.scope,{prefix:this.classPrefix});this.span(n)}closeNode(e){r(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}}const a=(e={})=>{const n={children:[]};return Object.assign(n,e),n};class c{constructor(){this.rootNode=a(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const n=a({scope:e});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,n){return"string"==typeof n?e.addText(n):n.children&&(e.openNode(n),n.children.forEach(n=>this._walk(e,n)),e.closeNode(n)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every(e=>"string"==typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{c._collapse(e)}))}}class l extends c{constructor(e){super(),this.options=e}addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,n){const t=e.root;n&&(t.scope=`language:${n}`),this.add(t)}toHTML(){return new s(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function u(e){return e?"string"==typeof e?e:e.source:null}function g(e){return f("(?=",e,")")}function d(e){return f("(?:",e,")*")}function h(e){return f("(?:",e,")?")}function f(...e){return e.map(e=>u(e)).join("")}function p(...e){const n=function(e){const n=e[e.length-1];return"object"==typeof n&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}(e);return"("+(n.capture?"":"?:")+e.map(e=>u(e)).join("|")+")"}function b(e){return new RegExp(e.toString()+"|").exec("").length-1}const m=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function E(e,{joinWith:n}){let t=0;return e.map(e=>{t+=1;const n=t;let i=u(e),o="";for(;i.length>0;){const e=m.exec(i);if(!e){o+=i;break}o+=i.substring(0,e.index),i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?o+="\\"+String(Number(e[1])+n):(o+=e[0],"("===e[0]&&t++)}return o}).map(e=>`(${e})`).join(n)}const w="[a-zA-Z]\\w*",_="[a-zA-Z_]\\w*",x="\\b\\d+(\\.\\d+)?",y="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",O="\\b(0b[01]+)",N={begin:"\\\\[\\s\\S]",relevance:0},M={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[N]},k={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[N]},S=function(e,n,t={}){const i=o({scope:"comment",begin:e,end:n,contains:[]},t);i.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const r=p("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return i.contains.push({begin:f(/[ ]+/,"(",r,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i},v=S("//","$"),R=S("/\\*","\\*/"),j=S("#","$"),A={scope:"number",begin:x,relevance:0},T={scope:"number",begin:y,relevance:0},I={scope:"number",begin:O,relevance:0},L={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[N,{begin:/\[/,end:/\]/,relevance:0,contains:[N]}]},B={scope:"title",begin:w,relevance:0},C={scope:"title",begin:_,relevance:0},D={begin:"\\.\\s*"+_,relevance:0};var H=Object.freeze({__proto__:null,APOS_STRING_MODE:M,BACKSLASH_ESCAPE:N,BINARY_NUMBER_MODE:I,BINARY_NUMBER_RE:O,COMMENT:S,C_BLOCK_COMMENT_MODE:R,C_LINE_COMMENT_MODE:v,C_NUMBER_MODE:T,C_NUMBER_RE:y,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,n)=>{n.data._beginMatch=e[1]},"on:end":(e,n)=>{n.data._beginMatch!==e[1]&&n.ignoreMatch()}})},HASH_COMMENT_MODE:j,IDENT_RE:w,MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:D,NUMBER_MODE:A,NUMBER_RE:x,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},QUOTE_STRING_MODE:k,REGEXP_MODE:L,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const n=/^#![ ]*\//;return e.binary&&(e.begin=f(n,/.*\b/,e.binary,/\b.*/)),o({scope:"meta",begin:n,end:/$/,relevance:0,"on:begin":(e,n)=>{0!==e.index&&n.ignoreMatch()}},e)},TITLE_MODE:B,UNDERSCORE_IDENT_RE:_,UNDERSCORE_TITLE_MODE:C});function P(e,n){"."===e.input[e.index-1]&&n.ignoreMatch()}function $(e,n){void 0!==e.className&&(e.scope=e.className,delete e.className)}function U(e,n){n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=P,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function z(e,n){Array.isArray(e.illegal)&&(e.illegal=p(...e.illegal))}function W(e,n){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function G(e,n){void 0===e.relevance&&(e.relevance=1)}const K=(e,n)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const t=Object.assign({},e);Object.keys(e).forEach(n=>{delete e[n]}),e.keywords=t.keywords,e.begin=f(t.beforeMatch,g(t.begin)),e.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},e.relevance=0,delete t.beforeMatch},X=["of","and","for","in","not","or","if","then","parent","list","value"];function F(e,n,t="keyword"){const i=Object.create(null);return"string"==typeof e?o(t,e.split(" ")):Array.isArray(e)?o(t,e):Object.keys(e).forEach(function(t){Object.assign(i,F(e[t],n,t))}),i;function o(e,t){n&&(t=t.map(e=>e.toLowerCase())),t.forEach(function(n){const t=n.split("|");i[t[0]]=[e,Z(t[0],t[1])]})}}function Z(e,n){return n?Number(n):function(e){return X.includes(e.toLowerCase())}(e)?0:1}const J={},V=e=>{console.error(e)},q=(e,...n)=>{console.log(`WARN: ${e}`,...n)},Q=(e,n)=>{J[`${e}/${n}`]||(console.log(`Deprecated as of ${e}. ${n}`),J[`${e}/${n}`]=!0)},Y=new Error;function ee(e,n,{key:t}){let i=0;const o=e[t],r={},s={};for(let e=1;e<=n.length;e++)s[e+i]=o[e],r[e+i]=!0,i+=b(n[e-1]);e[t]=s,e[t]._emit=r,e[t]._multi=!0}function ne(e){!function(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)}(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw V("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Y;if("object"!=typeof e.beginScope||null===e.beginScope)throw V("beginScope must be object"),Y;ee(e,e.begin,{key:"beginScope"}),e.begin=E(e.begin,{joinWith:""})}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw V("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Y;if("object"!=typeof e.endScope||null===e.endScope)throw V("endScope must be object"),Y;ee(e,e.end,{key:"endScope"}),e.end=E(e.end,{joinWith:""})}}(e)}function te(e){function n(n,t){return new RegExp(u(n),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(t?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,n){n.position=this.position++,this.matchIndexes[this.matchAt]=n,this.regexes.push([n,e]),this.matchAt+=b(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map(e=>e[1]);this.matcherRe=n(E(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const n=this.matcherRe.exec(e);if(!n)return null;const t=n.findIndex((e,n)=>n>0&&void 0!==e),i=this.matchIndexes[t];return n.splice(0,t),Object.assign(n,i)}}class i{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const n=new t;return this.rules.slice(e).forEach(([e,t])=>n.addRule(e,t)),n.compile(),this.multiRegexes[e]=n,n}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,n){this.rules.push([e,n]),"begin"===n.type&&this.count++}exec(e){const n=this.getMatcher(this.regexIndex);n.lastIndex=this.lastIndex;let t=n.exec(e);if(this.resumingScanAtSamePosition())if(t&&t.index===this.lastIndex);else{const n=this.getMatcher(0);n.lastIndex=this.lastIndex+1,t=n.exec(e)}return t&&(this.regexIndex+=t.position+1,this.regexIndex===this.count&&this.considerAll()),t}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=o(e.classNameAliases||{}),function t(r,s){const a=r;if(r.isCompiled)return a;[$,W,ne,K].forEach(e=>e(r,s)),e.compilerExtensions.forEach(e=>e(r,s)),r.__beforeBegin=null,[U,z,G].forEach(e=>e(r,s)),r.isCompiled=!0;let c=null;return"object"==typeof r.keywords&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords),c=r.keywords.$pattern,delete r.keywords.$pattern),c=c||/\w+/,r.keywords&&(r.keywords=F(r.keywords,e.case_insensitive)),a.keywordPatternRe=n(c,!0),s&&(r.begin||(r.begin=/\B|\b/),a.beginRe=n(a.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),r.end&&(a.endRe=n(a.end)),a.terminatorEnd=u(a.end)||"",r.endsWithParent&&s.terminatorEnd&&(a.terminatorEnd+=(r.end?"|":"")+s.terminatorEnd)),r.illegal&&(a.illegalRe=n(r.illegal)),r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map(function(e){return function(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(n){return o(e,{variants:null},n)})),e.cachedVariants?e.cachedVariants:ie(e)?o(e,{starts:e.starts?o(e.starts):null}):Object.isFrozen(e)?o(e):e}("self"===e?r:e)})),r.contains.forEach(function(e){t(e,a)}),r.starts&&t(r.starts,s),a.matcher=function(e){const n=new i;return e.contains.forEach(e=>n.addRule(e.begin,{rule:e,type:"begin"})),e.terminatorEnd&&n.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&n.addRule(e.illegal,{type:"illegal"}),n}(a),a}(e)}function ie(e){return!!e&&(e.endsWithParent||ie(e.starts))}class oe extends Error{constructor(e,n){super(e),this.name="HTMLInjectionError",this.html=n}}const re=i,se=o,ae=Symbol("nomatch"),ce=function(e){const i=Object.create(null),o=Object.create(null),r=[];let s=!0;const a="Could not find the language '{}', did you forget to load/include a language module?",c={disableAutodetect:!0,name:"Plain text",contains:[]};let u={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:l};function b(e){return u.noHighlightRe.test(e)}function m(e,n,t){let i="",o="";"object"==typeof n?(i=e,t=n.ignoreIllegals,o=n.language):(Q("10.7.0","highlight(lang, code, ...args) has been deprecated."),Q("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),o=e,i=n),void 0===t&&(t=!0);const r={code:i,language:o};k("before:highlight",r);const s=r.result?r.result:E(r.language,r.code,t);return s.code=r.code,k("after:highlight",s),s}function E(e,n,o,r){const c=Object.create(null);function l(e,n){return e.keywords[n]}function g(){if(!S.keywords)return void R.addText(j);let e=0;S.keywordPatternRe.lastIndex=0;let n=S.keywordPatternRe.exec(j),t="";for(;n;){t+=j.substring(e,n.index);const i=N.case_insensitive?n[0].toLowerCase():n[0],o=l(S,i);if(o){const[e,r]=o;if(R.addText(t),t="",c[i]=(c[i]||0)+1,c[i]<=7&&(A+=r),e.startsWith("_"))t+=n[0];else{const t=N.classNameAliases[e]||e;h(n[0],t)}}else t+=n[0];e=S.keywordPatternRe.lastIndex,n=S.keywordPatternRe.exec(j)}t+=j.substring(e),R.addText(t)}function d(){null!=S.subLanguage?function(){if(""===j)return;let e=null;if("string"==typeof S.subLanguage){if(!i[S.subLanguage])return void R.addText(j);e=E(S.subLanguage,j,!0,v[S.subLanguage]),v[S.subLanguage]=e._top}else e=w(j,S.subLanguage.length?S.subLanguage:null);S.relevance>0&&(A+=e.relevance),R.__addSublanguage(e._emitter,e.language)}():g(),j=""}function h(e,n){""!==e&&(R.startScope(n),R.addText(e),R.endScope())}function f(e,n){let t=1;const i=n.length-1;for(;t<=i;){if(!e._emit[t]){t++;continue}const i=N.classNameAliases[e[t]]||e[t],o=n[t];i?h(o,i):(j=o,g(),j=""),t++}}function p(e,n){return e.scope&&"string"==typeof e.scope&&R.openNode(N.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(h(j,N.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),j=""):e.beginScope._multi&&(f(e.beginScope,n),j="")),S=Object.create(e,{parent:{value:S}}),S}function b(e,n,i){let o=function(e,n){const t=e&&e.exec(n);return t&&0===t.index}(e.endRe,i);if(o){if(e["on:end"]){const i=new t(e);e["on:end"](n,i),i.isMatchIgnored&&(o=!1)}if(o){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return b(e.parent,n,i)}function m(e){return 0===S.matcher.regexIndex?(j+=e[0],1):(L=!0,0)}function _(e){const t=e[0],i=n.substring(e.index),o=b(S,e,i);if(!o)return ae;const r=S;S.endScope&&S.endScope._wrap?(d(),h(t,S.endScope._wrap)):S.endScope&&S.endScope._multi?(d(),f(S.endScope,e)):r.skip?j+=t:(r.returnEnd||r.excludeEnd||(j+=t),d(),r.excludeEnd&&(j=t));do{S.scope&&R.closeNode(),S.skip||S.subLanguage||(A+=S.relevance),S=S.parent}while(S!==o.parent);return o.starts&&p(o.starts,e),r.returnEnd?0:t.length}let x={};function y(i,r){const a=r&&r[0];if(j+=i,null==a)return d(),0;if("begin"===x.type&&"end"===r.type&&x.index===r.index&&""===a){if(j+=n.slice(r.index,r.index+1),!s){const n=new Error(`0 width match regex (${e})`);throw n.languageName=e,n.badRule=x.rule,n}return 1}if(x=r,"begin"===r.type)return function(e){const n=e[0],i=e.rule,o=new t(i),r=[i.__beforeBegin,i["on:begin"]];for(const t of r)if(t&&(t(e,o),o.isMatchIgnored))return m(n);return i.skip?j+=n:(i.excludeBegin&&(j+=n),d(),i.returnBegin||i.excludeBegin||(j=n)),p(i,e),i.returnBegin?0:n.length}(r);if("illegal"===r.type&&!o){const e=new Error('Illegal lexeme "'+a+'" for mode "'+(S.scope||"<unnamed>")+'"');throw e.mode=S,e}if("end"===r.type){const e=_(r);if(e!==ae)return e}if("illegal"===r.type&&""===a)return j+="\n",1;if(I>1e5&&I>3*r.index)throw new Error("potential infinite loop, way more iterations than matches");return j+=a,a.length}const N=O(e);if(!N)throw V(a.replace("{}",e)),new Error('Unknown language: "'+e+'"');const M=te(N);let k="",S=r||M;const v={},R=new u.__emitter(u);!function(){const e=[];for(let n=S;n!==N;n=n.parent)n.scope&&e.unshift(n.scope);e.forEach(e=>R.openNode(e))}();let j="",A=0,T=0,I=0,L=!1;try{if(N.__emitTokens)N.__emitTokens(n,R);else{for(S.matcher.considerAll();;){I++,L?L=!1:S.matcher.considerAll(),S.matcher.lastIndex=T;const e=S.matcher.exec(n);if(!e)break;const t=y(n.substring(T,e.index),e);T=e.index+t}y(n.substring(T))}return R.finalize(),k=R.toHTML(),{language:e,value:k,relevance:A,illegal:!1,_emitter:R,_top:S}}catch(t){if(t.message&&t.message.includes("Illegal"))return{language:e,value:re(n),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:T,context:n.slice(T-100,T+100),mode:t.mode,resultSoFar:k},_emitter:R};if(s)return{language:e,value:re(n),illegal:!1,relevance:0,errorRaised:t,_emitter:R,_top:S};throw t}}function w(e,n){n=n||u.languages||Object.keys(i);const t=function(e){const n={value:re(e),illegal:!1,relevance:0,_top:c,_emitter:new u.__emitter(u)};return n._emitter.addText(e),n}(e),o=n.filter(O).filter(M).map(n=>E(n,e,!1));o.unshift(t);const r=o.sort((e,n)=>{if(e.relevance!==n.relevance)return n.relevance-e.relevance;if(e.language&&n.language){if(O(e.language).supersetOf===n.language)return 1;if(O(n.language).supersetOf===e.language)return-1}return 0}),[s,a]=r,l=s;return l.secondBest=a,l}function _(e){let n=null;const t=function(e){let n=e.className+" ";n+=e.parentNode?e.parentNode.className:"";const t=u.languageDetectRe.exec(n);if(t){const n=O(t[1]);return n||(q(a.replace("{}",t[1])),q("Falling back to no-highlight mode for this block.",e)),n?t[1]:"no-highlight"}return n.split(/\s+/).find(e=>b(e)||O(e))}(e);if(b(t))return;if(k("before:highlightElement",{el:e,language:t}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e);if(e.children.length>0&&(u.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),u.throwUnescapedHTML))throw new oe("One of your code blocks includes unescaped HTML.",e.innerHTML);n=e;const i=n.textContent,r=t?m(i,{language:t,ignoreIllegals:!0}):w(i);e.innerHTML=r.value,e.dataset.highlighted="yes",function(e,n,t){const i=n&&o[n]||t;e.classList.add("hljs"),e.classList.add(`language-${i}`)}(e,t,r.language),e.result={language:r.language,re:r.relevance,relevance:r.relevance},r.secondBest&&(e.secondBest={language:r.secondBest.language,relevance:r.secondBest.relevance}),k("after:highlightElement",{el:e,result:r,text:i})}let x=!1;function y(){if("loading"===document.readyState)return x||window.addEventListener("DOMContentLoaded",function(){y()},!1),void(x=!0);document.querySelectorAll(u.cssSelector).forEach(_)}function O(e){return e=(e||"").toLowerCase(),i[e]||i[o[e]]}function N(e,{languageName:n}){"string"==typeof e&&(e=[e]),e.forEach(e=>{o[e.toLowerCase()]=n})}function M(e){const n=O(e);return n&&!n.disableAutodetect}function k(e,n){const t=e;r.forEach(function(e){e[t]&&e[t](n)})}Object.assign(e,{highlight:m,highlightAuto:w,highlightAll:y,highlightElement:_,highlightBlock:function(e){return Q("10.7.0","highlightBlock will be removed entirely in v12.0"),Q("10.7.0","Please use highlightElement now."),_(e)},configure:function(e){u=se(u,e)},initHighlighting:()=>{y(),Q("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){y(),Q("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(n,t){let o=null;try{o=t(e)}catch(e){if(V("Language definition for '{}' could not be registered.".replace("{}",n)),!s)throw e;V(e),o=c}o.name||(o.name=n),i[n]=o,o.rawDefinition=t.bind(null,e),o.aliases&&N(o.aliases,{languageName:n})},unregisterLanguage:function(e){delete i[e];for(const n of Object.keys(o))o[n]===e&&delete o[n]},listLanguages:function(){return Object.keys(i)},getLanguage:O,registerAliases:N,autoDetection:M,inherit:se,addPlugin:function(e){!function(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=n=>{e["before:highlightBlock"](Object.assign({block:n.el},n))}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=n=>{e["after:highlightBlock"](Object.assign({block:n.el},n))})}(e),r.push(e)},removePlugin:function(e){const n=r.indexOf(e);-1!==n&&r.splice(n,1)}}),e.debugMode=function(){s=!1},e.safeMode=function(){s=!0},e.versionString="11.11.1",e.regex={concat:f,lookahead:g,either:p,optional:h,anyNumberOfTimes:d};for(const e in H)"object"==typeof H[e]&&n(H[e]);return Object.assign(e,H),e},le=ce({});le.newInstance=()=>ce({}),e.exports=le,le.HighlightJS=le,le.default=le},65772:e=>{e.exports=function(e){const n=["true","false","null"],t={scope:"literal",beginKeywords:n.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:n},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0},e.QUOTE_STRING_MODE,t,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}}}]);
@@ -0,0 +1 @@
1
+ var _JUPYTERLAB;(()=>{"use strict";var e,t,r,a,n,o,i,l,d,f,c,u,s,h,b,p,m,g,v,y,j,w,P,k={70484:(e,t,r)=>{var a={"./index":()=>Promise.all([r.e(122),r.e(936),r.e(110),r.e(760),r.e(638),r.e(379),r.e(839),r.e(880)]).then(()=>()=>r(8509)),"./extension":()=>Promise.all([r.e(122),r.e(936),r.e(110),r.e(760),r.e(638),r.e(379),r.e(839),r.e(880)]).then(()=>()=>r(8509)),"./style":()=>r.e(726).then(()=>()=>r(80726))},n=(e,t)=>(r.R=t,t=r.o(a,e)?a[e]():Promise.resolve().then(()=>{throw new Error('Module "'+e+'" does not exist in container.')}),r.R=void 0,t),o=(e,t)=>{if(r.S){var a="default",n=r.S[a];if(n&&n!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return r.S[a]=e,r.I(a,t)}};r.d(t,{get:()=>n,init:()=>o})}},S={};function x(e){var t=S[e];if(void 0!==t)return t.exports;var r=S[e]={id:e,exports:{}};return k[e].call(r.exports,r,r.exports,x),r.exports}x.m=k,x.c=S,x.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return x.d(t,{a:t}),t},x.d=(e,t)=>{for(var r in t)x.o(t,r)&&!x.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},x.f={},x.e=e=>Promise.all(Object.keys(x.f).reduce((t,r)=>(x.f[r](e,t),t),[])),x.u=e=>e+"."+{57:"c4232851631fb2e7e59a",110:"224e83db03814fd03955",122:"e2dadf63dc64d7b5f1ee",220:"328403b5545f268b95c6",262:"726e1da31a50868cb297",353:"972abe1d2d66f083f9cc",364:"dbec4c2dc12e7b050dcc",384:"fa432bdb7fb6b1c95ad6",439:"37e271d7a80336daabe2",476:"ad22ccddd74ee306fb56",481:"73c7a9290b7d35a8b9c1",512:"b58fc0093d080b8ee61c",553:"b4042a795c91d9ff71ef",635:"9720593ee20b768da3ca",713:"8e6edc9a965bdd578ca7",726:"318e4e791edb63cc788f",741:"dc49867fafb03ea2ba4d",742:"91e7b516c8699eea3373",785:"2d75de1a8d2c3131a8db",801:"ca9e114a30896b669a3c",880:"d9914229e4f120e7e9e4",888:"34054db17bcf6e87ec95",936:"d80de1e4da5b520d2f3b"}[e]+".js?v="+{57:"c4232851631fb2e7e59a",110:"224e83db03814fd03955",122:"e2dadf63dc64d7b5f1ee",220:"328403b5545f268b95c6",262:"726e1da31a50868cb297",353:"972abe1d2d66f083f9cc",364:"dbec4c2dc12e7b050dcc",384:"fa432bdb7fb6b1c95ad6",439:"37e271d7a80336daabe2",476:"ad22ccddd74ee306fb56",481:"73c7a9290b7d35a8b9c1",512:"b58fc0093d080b8ee61c",553:"b4042a795c91d9ff71ef",635:"9720593ee20b768da3ca",713:"8e6edc9a965bdd578ca7",726:"318e4e791edb63cc788f",741:"dc49867fafb03ea2ba4d",742:"91e7b516c8699eea3373",785:"2d75de1a8d2c3131a8db",801:"ca9e114a30896b669a3c",880:"d9914229e4f120e7e9e4",888:"34054db17bcf6e87ec95",936:"d80de1e4da5b520d2f3b"}[e],x.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),x.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="signalpilot-ai-internal:",x.l=(r,a,n,o)=>{if(e[r])e[r].push(a);else{var i,l;if(void 0!==n)for(var d=document.getElementsByTagName("script"),f=0;f<d.length;f++){var c=d[f];if(c.getAttribute("src")==r||c.getAttribute("data-webpack")==t+n){i=c;break}}i||(l=!0,(i=document.createElement("script")).charset="utf-8",x.nc&&i.setAttribute("nonce",x.nc),i.setAttribute("data-webpack",t+n),i.src=r),e[r]=[a];var u=(t,a)=>{i.onerror=i.onload=null,clearTimeout(s);var n=e[r];if(delete e[r],i.parentNode&&i.parentNode.removeChild(i),n&&n.forEach(e=>e(a)),t)return t(a)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=u.bind(null,i.onerror),i.onload=u.bind(null,i.onload),l&&document.head.appendChild(i)}},x.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{x.S={};var e={},t={};x.I=(r,a)=>{a||(a=[]);var n=t[r];if(n||(n=t[r]={}),!(a.indexOf(n)>=0)){if(a.push(n),e[r])return e[r];x.o(x.S,r)||(x.S[r]={});var o=x.S[r],i="signalpilot-ai-internal",l=(e,t,r,a)=>{var n=o[e]=o[e]||{},l=n[t];(!l||!l.loaded&&(!a!=!l.eager?a:i>l.from))&&(n[t]={get:r,from:i,eager:!!a})},d=[];return"default"===r&&(l("@anthropic-ai/sdk","0.54.0",()=>x.e(742).then(()=>()=>x(32742))),l("best-effort-json-parser","1.2.1",()=>x.e(439).then(()=>()=>x(45439))),l("codemirror-merge-alpinex","6.10.5",()=>Promise.all([x.e(353),x.e(635),x.e(760),x.e(839)]).then(()=>()=>x(67635))),l("codemirror","6.0.2",()=>Promise.all([x.e(353),x.e(785),x.e(760)]).then(()=>()=>x(45785))),l("diff2html","3.4.52",()=>Promise.all([x.e(122),x.e(379)]).then(()=>()=>x(2122))),l("diff","7.0.0",()=>x.e(713).then(()=>()=>x(85713))),l("diff","0",()=>x.e(481).then(()=>()=>x(47481))),l("driver.js","1.3.6",()=>x.e(741).then(()=>()=>x(69741))),l("fuse.js","7.1.0",()=>x.e(384).then(()=>()=>x(72384))),l("highlight.js","0",()=>x.e(801).then(()=>()=>x(27801))),l("highlight.js","0",()=>Promise.all([x.e(57),x.e(936)]).then(()=>()=>x(17057))),l("jwt-decode","4.0.0",()=>x.e(512).then(()=>()=>x(68512))),l("marked","15.0.12",()=>x.e(364).then(()=>()=>x(54364))),l("partial-json","0.1.7",()=>x.e(220).then(()=>()=>x(69220))),l("posthog-js","1.291.0",()=>x.e(476).then(()=>()=>x(55476))),l("react-bootstrap","2.10.10",()=>Promise.all([x.e(553),x.e(638)]).then(()=>()=>x(34553))),l("rxjs","7.8.2",()=>x.e(888).then(()=>()=>x(82888))),l("signalpilot-ai-internal","0.10.22",()=>Promise.all([x.e(122),x.e(936),x.e(110),x.e(760),x.e(638),x.e(379),x.e(839),x.e(880)]).then(()=>()=>x(8509))),l("uuid","11.1.0",()=>x.e(262).then(()=>()=>x(78262)))),e[r]=d.length?Promise.all(d).then(()=>e[r]=1):1}}})(),(()=>{var e;x.g.importScripts&&(e=x.g.location+"");var t=x.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var a=r.length-1;a>-1&&(!e||!/^http(s?):/.test(e));)e=r[a--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),x.p=e})(),r=e=>{var t=e=>e.split(".").map(e=>+e==e?+e:e),r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),a=r[1]?t(r[1]):[];return r[2]&&(a.length++,a.push.apply(a,t(r[2]))),r[3]&&(a.push([]),a.push.apply(a,t(r[3]))),a},a=(e,t)=>{e=r(e),t=r(t);for(var a=0;;){if(a>=e.length)return a<t.length&&"u"!=(typeof t[a])[0];var n=e[a],o=(typeof n)[0];if(a>=t.length)return"u"==o;var i=t[a],l=(typeof i)[0];if(o!=l)return"o"==o&&"n"==l||"s"==l||"u"==o;if("o"!=o&&"u"!=o&&n!=i)return n<i;a++}},n=e=>{var t=e[0],r="";if(1===e.length)return"*";if(t+.5){r+=0==t?">=":-1==t?"<":1==t?"^":2==t?"~":t>0?"=":"!=";for(var a=1,o=1;o<e.length;o++)a--,r+="u"==(typeof(l=e[o]))[0]?"-":(a>0?".":"")+(a=2,l);return r}var i=[];for(o=1;o<e.length;o++){var l=e[o];i.push(0===l?"not("+d()+")":1===l?"("+d()+" || "+d()+")":2===l?i.pop()+" "+i.pop():n(l))}return d();function d(){return i.pop().replace(/^\((.+)\)$/,"$1")}},o=(e,t)=>{if(0 in e){t=r(t);var a=e[0],n=a<0;n&&(a=-a-1);for(var i=0,l=1,d=!0;;l++,i++){var f,c,u=l<e.length?(typeof e[l])[0]:"";if(i>=t.length||"o"==(c=(typeof(f=t[i]))[0]))return!d||("u"==u?l>a&&!n:""==u!=n);if("u"==c){if(!d||"u"!=u)return!1}else if(d)if(u==c)if(l<=a){if(f!=e[l])return!1}else{if(n?f>e[l]:f<e[l])return!1;f!=e[l]&&(d=!1)}else if("s"!=u&&"n"!=u){if(n||l<=a)return!1;d=!1,l--}else{if(l<=a||c<u!=n)return!1;d=!1}else"s"!=u&&"n"!=u&&(d=!1,l--)}}var s=[],h=s.pop.bind(s);for(i=1;i<e.length;i++){var b=e[i];s.push(1==b?h()|h():2==b?h()&h():b?o(b,t):!h())}return!!h()},i=(e,t)=>e&&x.o(e,t),l=e=>(e.loaded=1,e.get()),d=e=>Object.keys(e).reduce((t,r)=>(e[r].eager&&(t[r]=e[r]),t),{}),f=(e,t,r,n)=>{var i=n?d(e[t]):e[t];return(t=Object.keys(i).reduce((e,t)=>!o(r,t)||e&&!a(e,t)?e:t,0))&&i[t]},c=(e,t,r)=>{var n=r?d(e[t]):e[t];return Object.keys(n).reduce((e,t)=>!e||!n[e].loaded&&a(e,t)?t:e,0)},u=(e,t,r,a)=>"Unsatisfied version "+r+" from "+(r&&e[t][r].from)+" of shared singleton module "+t+" (required "+n(a)+")",s=(e,t,r,a,o)=>{var i=e[r];return"No satisfying version ("+n(a)+")"+(o?" for eager consumption":"")+" of shared module "+r+" found in shared scope "+t+".\nAvailable versions: "+Object.keys(i).map(e=>e+" from "+i[e].from).join(", ")},h=e=>{throw new Error(e)},b=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},m=(e,t,r)=>r?r():((e,t)=>h("Shared module "+t+" doesn't exist in shared scope "+e))(e,t),g=(p=e=>function(t,r,a,n,o){var i=x.I(t);return i&&i.then&&!a?i.then(e.bind(e,t,x.S[t],r,!1,n,o)):e(t,x.S[t],r,a,n,o)})((e,t,r,a,n,o)=>{if(!i(t,r))return m(e,r,o);var d=f(t,r,n,a);return d?l(d):o?o():void h(s(t,e,r,n,a))}),v=p((e,t,r,a,n,d)=>{if(!i(t,r))return m(e,r,d);var f=c(t,r,a);return o(n,f)||b(u(t,r,f,n)),l(t[r][f])}),y={},j={3708:()=>v("default","@lezer/common",!1,[1,1,0,0]),45024:()=>v("default","@codemirror/view",!1,[1,6,9,6]),60195:()=>v("default","@codemirror/state",!1,[1,6,2,0]),72084:()=>v("default","@codemirror/language",!1,[1,6,0,0]),7628:()=>v("default","react-dom",!1,[1,18,2,0]),93345:()=>v("default","react",!1,[1,18,2,0]),73379:()=>g("default","diff",!1,[1,7,0,0],()=>x.e(713).then(()=>()=>x(85713))),51839:()=>v("default","@lezer/highlight",!1,[1,1,0,0]),2526:()=>g("default","highlight.js",!1,[4,11,9,0],()=>x.e(801).then(()=>()=>x(27801))),6750:()=>g("default","rxjs",!1,[1,7,8,2],()=>x.e(888).then(()=>()=>x(82888))),7332:()=>g("default","codemirror",!1,[1,6,0,2],()=>Promise.all([x.e(353),x.e(785)]).then(()=>()=>x(45785))),8056:()=>g("default","jwt-decode",!1,[1,4,0,0],()=>x.e(512).then(()=>()=>x(68512))),11907:()=>v("default","@jupyterlab/services",!1,[1,7,5,1]),14744:()=>g("default","uuid",!1,[1,11,1,0],()=>x.e(262).then(()=>()=>x(78262))),23842:()=>v("default","@jupyterlab/extensionmanager",!1,[1,4,5,1]),31952:()=>g("default","fuse.js",!1,[1,7,1,0],()=>x.e(384).then(()=>()=>x(72384))),40223:()=>v("default","@jupyterlab/settingregistry",!1,[1,4,5,1]),43966:()=>g("default","posthog-js",!1,[1,1,268,5],()=>x.e(476).then(()=>()=>x(55476))),50113:()=>g("default","diff",!1,[1,8,0,1],()=>x.e(481).then(()=>()=>x(47481))),50460:()=>v("default","@jupyterlab/codemirror",!1,[1,4,5,1]),51247:()=>v("default","@lumino/widgets",!1,[1,2,3,1,,"alpha",1]),51409:()=>v("default","@jupyterlab/ui-components",!1,[1,4,5,1]),53550:()=>g("default","marked",!1,[1,15,0,11],()=>x.e(364).then(()=>()=>x(54364))),56707:()=>v("default","@jupyterlab/statedb",!1,[1,4,5,1]),60135:()=>g("default","@anthropic-ai/sdk",!1,[2,0,54,0],()=>x.e(742).then(()=>()=>x(32742))),67292:()=>v("default","@jupyterlab/coreutils",!1,[1,6,5,1]),71336:()=>g("default","diff2html",!1,[1,3,4,51],()=>()=>x(2122)),74602:()=>v("default","@lumino/signaling",!1,[1,2,0,0]),75271:()=>g("default","highlight.js",!1,[1,11,11,1],()=>x.e(57).then(()=>()=>x(17057))),79827:()=>v("default","@jupyterlab/apputils",!1,[1,4,6,1]),84920:()=>g("default","codemirror-merge-alpinex",!1,[1,6,10,5],()=>Promise.all([x.e(353),x.e(635)]).then(()=>()=>x(67635))),87125:()=>v("default","@jupyterlab/docmanager",!1,[1,4,5,1]),87284:()=>g("default","driver.js",!1,[1,1,3,6],()=>x.e(741).then(()=>()=>x(69741))),88276:()=>g("default","best-effort-json-parser",!1,[1,1,1,3],()=>x.e(439).then(()=>()=>x(45439))),88389:()=>v("default","@jupyterlab/notebook",!1,[1,4,5,1]),92311:()=>g("default","react-bootstrap",!1,[1,2,10,10],()=>x.e(553).then(()=>()=>x(34553))),97570:()=>g("default","partial-json",!1,[2,0,1,7],()=>x.e(220).then(()=>()=>x(69220)))},w={379:[73379],638:[7628,93345],760:[3708,45024,60195,72084],839:[51839],880:[2526,6750,7332,8056,11907,14744,23842,31952,40223,43966,50113,50460,51247,51409,53550,56707,60135,67292,71336,74602,75271,79827,84920,87125,87284,88276,88389,92311,97570]},P={},x.f.consumes=(e,t)=>{x.o(w,e)&&w[e].forEach(e=>{if(x.o(y,e))return t.push(y[e]);if(!P[e]){var r=t=>{y[e]=0,x.m[e]=r=>{delete x.c[e],r.exports=t()}};P[e]=!0;var a=t=>{delete y[e],x.m[e]=r=>{throw delete x.c[e],t}};try{var n=j[e]();n.then?t.push(y[e]=n.then(r).catch(a)):r(n)}catch(e){a(e)}}})},(()=>{x.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={428:0};x.f.j=(t,r)=>{var a=x.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(379|638|760|839)$/.test(t))e[t]=0;else{var n=new Promise((r,n)=>a=e[t]=[r,n]);r.push(a[2]=n);var o=x.p+x.u(t),i=new Error;x.l(o,r=>{if(x.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var n=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;i.message="Loading chunk "+t+" failed.\n("+n+": "+o+")",i.name="ChunkLoadError",i.type=n,i.request=o,a[1](i)}},"chunk-"+t,t)}};var t=(t,r)=>{var a,n,[o,i,l]=r,d=0;if(o.some(t=>0!==e[t])){for(a in i)x.o(i,a)&&(x.m[a]=i[a]);l&&l(x)}for(t&&t(r);d<o.length;d++)n=o[d],x.o(e,n)&&e[n]&&e[n][0](),e[n]=0},r=self.webpackChunksignalpilot_ai_internal=self.webpackChunksignalpilot_ai_internal||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),x.nc=void 0;var E=x(70484);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB)["signalpilot-ai-internal"]=E})();
@@ -24,6 +24,12 @@
24
24
  "licenseId": "MIT",
25
25
  "extractedText": "MIT License\n\nCopyright (C) 2018-2021 by Marijn Haverbeke <marijn@haverbeke.berlin> and others\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
26
26
  },
27
+ {
28
+ "name": "@codemirror/lang-json",
29
+ "versionInfo": "6.0.2",
30
+ "licenseId": "MIT",
31
+ "extractedText": "MIT License\n\nCopyright (C) 2018-2021 by Marijn Haverbeke <marijn@haverbeke.berlin> and others\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
32
+ },
27
33
  {
28
34
  "name": "@codemirror/lang-python",
29
35
  "versionInfo": "6.2.1",
@@ -42,6 +48,12 @@
42
48
  "licenseId": "MIT",
43
49
  "extractedText": "MIT License\n\nCopyright (C) 2018-2021 by Marijn Haverbeke <marijn@haverbeke.berlin> and others\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
44
50
  },
51
+ {
52
+ "name": "@lezer/json",
53
+ "versionInfo": "1.0.3",
54
+ "licenseId": "MIT",
55
+ "extractedText": "MIT License\n\nCopyright (C) 2020 by Marijn Haverbeke <marijn@haverbeke.berlin>, Arun Srinivasan <rulfzid@gmail.com>, and others\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE."
56
+ },
45
57
  {
46
58
  "name": "@lezer/lr",
47
59
  "versionInfo": "1.4.3",
@@ -258,6 +270,12 @@
258
270
  "licenseId": "MIT",
259
271
  "extractedText": "The MIT License (MIT)\n\nCopyright (c) 2014-present Stephen J. Collings, Matthew Honnibal, Pieter Vanderwerff\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
260
272
  },
273
+ {
274
+ "name": "react-dom",
275
+ "versionInfo": "18.3.1",
276
+ "licenseId": "MIT",
277
+ "extractedText": "MIT License\n\nCopyright (c) Facebook, Inc. and its affiliates.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
278
+ },
261
279
  {
262
280
  "name": "react-lifecycles-compat",
263
281
  "versionInfo": "3.0.4",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: signalpilot_ai_internal
3
- Version: 0.10.0
3
+ Version: 0.10.22
4
4
  Summary: SignalPilot Agent - Your Jupyter Notebook Assistant
5
5
  Project-URL: Homepage, https://signalpilot.ai/
6
6
  Author-email: Daniel Schaffield <danielschaffield@gmail.com>
@@ -49,11 +49,12 @@ Classifier: Programming Language :: Python :: 3.11
49
49
  Classifier: Programming Language :: Python :: 3.12
50
50
  Classifier: Programming Language :: Python :: 3.13
51
51
  Requires-Python: >=3.10
52
+ Requires-Dist: aiohttp>=3.9.0
52
53
  Requires-Dist: jupyter-server<3,>=2.4.0
53
54
  Requires-Dist: openpyxl
54
55
  Requires-Dist: pandas>=2.0.0
55
56
  Requires-Dist: pyarrow
56
- Requires-Dist: schema-search
57
+ Requires-Dist: schema-search[bigquery,databricks,postgres,snowflake]
57
58
  Provides-Extra: test
58
59
  Requires-Dist: coverage; extra == 'test'
59
60
  Requires-Dist: pytest; extra == 'test'
@@ -0,0 +1,56 @@
1
+ signalpilot_ai_internal/__init__.py,sha256=UF8SnBqxdh5UKKvH79JDlSTF5Eb5IcsjhsjcX7qBLq0,1198
2
+ signalpilot_ai_internal/_version.py,sha256=Uig1W4Db8az2ZP8KBuQvT1d2R9pS2rms5pD59MaMwVU,173
3
+ signalpilot_ai_internal/cache_handlers.py,sha256=49DkEixzZdyMP4J-zI9P1WdKMu54SMxu5R8pyAlTFF8,13845
4
+ signalpilot_ai_internal/cache_service.py,sha256=SiP9aU-HzrOXs6QnCNcrII1BA6k4-PyQsCM0F8uCEq4,29279
5
+ signalpilot_ai_internal/databricks_schema_service.py,sha256=5AhLz2ey8khOJjehmS-bNW3JxP_lm70T4q8xpwoIcAw,34431
6
+ signalpilot_ai_internal/file_scanner_service.py,sha256=0Iym9_BpWds9iKw1jnAfQi2cTWdDM6iTDmnCavgKnII,61482
7
+ signalpilot_ai_internal/handlers.py,sha256=2ZiR9VFMhfNpuQa2D1tqg8InucjML4QcAEMKkcuyu0s,36873
8
+ signalpilot_ai_internal/mcp_handlers.py,sha256=QUzzsv32mgT4Zs6TxbMTISBBO1ZLFgZAgKDE4o3dsr4,17877
9
+ signalpilot_ai_internal/mcp_server_manager.py,sha256=sYMRaGyY_H32Z7CxvN0JUHBr2C47pdx9XW57WprT4Uo,9717
10
+ signalpilot_ai_internal/mcp_service.py,sha256=N8c_uB9PfzL7f5ASLG8IjUZ6tYzbMuWb2gSPPGlK0YY,56769
11
+ signalpilot_ai_internal/schema_search_config.yml,sha256=WPv7c5tz9jBAjWGAxPDpgQOUqqPFEhMuIkfYsL88zG0,528
12
+ signalpilot_ai_internal/schema_search_service.py,sha256=F-5RgqtmwRS72fz8eaiNpj2oRuENb5EBtxtjYRkRsIc,6140
13
+ signalpilot_ai_internal/snowflake_schema_service.py,sha256=LNIvy4YBx7n9Bq0vHFhGOFqkKtOKPNcMK8uXT9S1V3c,28261
14
+ signalpilot_ai_internal/test_dbt_mcp_server.py,sha256=5JhS5WZqmwZ169X8p3eFPnky9aiMNvfo9ddRPS6kBEs,6653
15
+ signalpilot_ai_internal/unified_database_schema_service.py,sha256=Cp1ZOAOXxkp5-bHHLqZbp8E0fl0x86uYmDZJ7l4bNzs,31370
16
+ signalpilot_ai_internal/html_export_template/README.md,sha256=5GiMlfypGCdIjv8UGWHsIacttLzZJGbT4dvRYKqs4-g,753
17
+ signalpilot_ai_internal/html_export_template/conf.json,sha256=rkw8xg-vhVeuz2IwopAhouBOSaIb1kA3ro4YLaAC8h0,216
18
+ signalpilot_ai_internal/html_export_template/index.html.j2,sha256=yvJOr3VXUdsAUoppmSJ0t6DNeSu1SN2FIfrM7BCZkUk,4455
19
+ signalpilot_ai_internal/tests/__init__.py,sha256=-y-vPH0YtxvBmhgamma6fkx1ap1ekAX9QBm22kUzrsc,45
20
+ signalpilot_ai_internal/tests/test_handlers.py,sha256=TXQWKKz8mM70IU6l2SFfz16v8VIt_GpasaQMSWd2BOw,460
21
+ signalpilot_ai_internal-0.10.22.data/data/etc/jupyter/jupyter_server_config.d/signalpilot_ai.json,sha256=QhCIxTHxVUeAlPolJWL4kAdEktdJEEKL3CS4cA_8SUo,97
22
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/package.json,sha256=jB588OdBDWd1KDAGmncwrexmG0j-cJnyTKry_ZmhQUM,7626
23
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/schemas/signalpilot-ai-internal/package.json.orig,sha256=QUqGMjCDFVav5kXrv3J-ct-zzZhPR897xbBfCGbvqYI,7484
24
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/schemas/signalpilot-ai-internal/plugin.json,sha256=rQ5sLJsEuwUVMwtlJFpbLkH5OiFey7X7Y33D4aXctMs,2955
25
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/110.224e83db03814fd03955.js,sha256=Ik6D2wOBT9A5VZ_a784oqRs5puXU7aMt3JNlCxZNo4M,642399
26
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/122.e2dadf63dc64d7b5f1ee.js,sha256=4trfY9xk17Xx7vY7kcUhqIE1Jyfwb7Wkh-D7VdfdszY,38183
27
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/220.328403b5545f268b95c6.js,sha256=MoQDtVRfJouVxhbhe-MVXy6x9Ca7MUozgykHrxdc63M,3909
28
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/262.726e1da31a50868cb297.js,sha256=cm4doxpQhoyyl_WYttZFKjY2gZhqEn1Cc3iNa-DmvxI,10179
29
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/353.972abe1d2d66f083f9cc.js,sha256=lyq-HS1m8IP5zCzX6w9ybpIXszf6yCupCzJWGIcA5FM,23625
30
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/364.dbec4c2dc12e7b050dcc.js,sha256=2-xMLcEuewUNzGkb3Z7L_767weUX0wBjIT_E-NeDfso,39409
31
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/384.fa432bdb7fb6b1c95ad6.js,sha256=-kMr23-2scla1iPaPMEWiQVLv0N3PUCG3J6FHz-tJzU,18045
32
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/439.37e271d7a80336daabe2.js,sha256=N-Jx16gDNtqr4tZhRf9ERehqZXJy5ByJ9if-a4h77iQ,3009
33
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/476.ad22ccddd74ee306fb56.js,sha256=rSLM3ddO4wb7VgqHp2iNbydrUexQCSieNn7iXX3Rb5g,160792
34
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/481.73c7a9290b7d35a8b9c1.js,sha256=c8epKQt9Nai5wWLTiZzCKtCiYRxZq10Pp7lZet3JIOY,17259
35
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/512.b58fc0093d080b8ee61c.js,sha256=tY_ACT0IC47mHIZasPoCChT7L-x13PczTD5Rk1MUyfw,1109
36
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/553.b4042a795c91d9ff71ef.js,sha256=-4MCZD5tVxI-h4O1MT_UMB8rkOlbiXE76_yGyjW9MnU,119516
37
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/553.b4042a795c91d9ff71ef.js.LICENSE.txt,sha256=LGdwyBXWbtsopwVyjsXCIwoc-zj70yxAOCOR7b1bAc4,371
38
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/57.c4232851631fb2e7e59a.js,sha256=xCMoUWMfsuflml4pLjKwbiEX70JsATVAtggYV3AF5Rw,938120
39
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/635.9720593ee20b768da3ca.js,sha256=lyBZPuILdo2jyiRtkWzVc18DkPyUQwZx1SWZBtUOW6o,34163
40
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/713.8e6edc9a965bdd578ca7.js,sha256=jm7cmpZb3VeMp5BUNH_gI6NCpBdXPYP2plDNcE2NxuY,23332
41
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/726.318e4e791edb63cc788f.js,sha256=MY5OeR7bY8x4j1VvdXR_Y09F40Zv9c3u18ZOZrbQgCQ,355097
42
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/741.dc49867fafb03ea2ba4d.js,sha256=3EmGf6-wPqK6TXTzh3QmfxgLlHoLc0Z5Xhz5dZwVBOs,20854
43
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/742.91e7b516c8699eea3373.js,sha256=kee1FshpnuozcwobQ383GN5zbxjSwC-4mjzSvAli690,57587
44
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/785.2d75de1a8d2c3131a8db.js,sha256=LXXeGo0sMTGo2wjo7JmCZvdgwNDVjRbEa-TFLeJPnWw,65326
45
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/801.ca9e114a30896b669a3c.js,sha256=yp4RSjCJa2aaPCD4KymkbubbRtGuvk2Ny8eqXZxrMeg,931969
46
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/880.d9914229e4f120e7e9e4.js,sha256=2ZFCKeTxIOfp5DIkeyptl6TlNzf--ObJ8MmYwmPIKNE,2220371
47
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/888.34054db17bcf6e87ec95.js,sha256=NAVNsXvPbofslRAMG2lG_9xG3d8Qqmiee6rdW2yveEE,65946
48
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/936.d80de1e4da5b520d2f3b.js,sha256=2A3h5NpbUg0vOyDkLY-NG8QWmvTamwpxEgIm4He-7hw,20915
49
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/remoteEntry.b63c429ca81e743b403c.js,sha256=tjxCnKgedDtAPHNrUrElIpf2lr5EjMOLGieamLqXle0,12691
50
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/style.js,sha256=191eIwSL3zAMov8DA9E3slEt0v7ZxNxx_2_SeguRXts,166
51
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/static/third-party-licenses.json,sha256=vKt1d4O_Rzl9SpXEJLHNl2j2SFTNmXYYLAXxQnhDvzA,112833
52
+ signalpilot_ai_internal-0.10.22.data/data/share/jupyter/labextensions/signalpilot-ai-internal/install.json,sha256=1DKTkJKm4YOQuWf1XSacVBARn6I7_GyI8HE7ITXCM2s,207
53
+ signalpilot_ai_internal-0.10.22.dist-info/METADATA,sha256=-Bo0K7wwKnRCi6-GaTTC2MgPmVwibsy-4ZDEdirX3cM,7128
54
+ signalpilot_ai_internal-0.10.22.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
55
+ signalpilot_ai_internal-0.10.22.dist-info/licenses/LICENSE,sha256=zsSUFnbKwCesfRSafkOcXkQGrMFo6zQ8LHlOt-MYHDY,1525
56
+ signalpilot_ai_internal-0.10.22.dist-info/RECORD,,