codebuff-agent 2.1.78__py3-none-any.whl → 2.1.79__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 (38) hide show
  1. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/package.json +2 -2
  2. codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/remoteEntry.354cc30edfc857656ed2.js → codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/remoteEntry.85fc9c6c88a0f6b87109.js +1 -1
  3. {codebuff_agent-2.1.78.dist-info → codebuff_agent-2.1.79.dist-info}/METADATA +1 -1
  4. {codebuff_agent-2.1.78.dist-info → codebuff_agent-2.1.79.dist-info}/RECORD +38 -38
  5. jupyter_ext/_version.py +1 -1
  6. jupyter_ext/agent/codex_bridge.py +10 -4
  7. jupyter_ext/http_handlers.py +6 -0
  8. jupyter_ext/labextension/package.json +2 -2
  9. jupyter_ext/labextension/static/{remoteEntry.354cc30edfc857656ed2.js → remoteEntry.85fc9c6c88a0f6b87109.js} +1 -1
  10. jupyter_ext/pod_identity.py +32 -6
  11. jupyter_ext/team_access.py +6 -1
  12. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/etc/jupyter/jupyter_server_config.d/codebuff_agent.json +0 -0
  13. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/lab/settings/overrides.d/codebuff.json +0 -0
  14. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/166.386ff9b2c37ac865fdee.js +0 -0
  15. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/351.e796b81287b53635cfa4.js +0 -0
  16. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/353.581bd1cb00746399b62e.js +0 -0
  17. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/367.575f9621b63c9a641aa9.js +0 -0
  18. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/421.11dac223a2c2da1b09f5.js +0 -0
  19. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/432.a749eb54fdc324b18cfa.js +0 -0
  20. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/432.a749eb54fdc324b18cfa.js.LICENSE.txt +0 -0
  21. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/439.ba5b5ef70ec6de214b8c.js +0 -0
  22. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/439.ba5b5ef70ec6de214b8c.js.LICENSE.txt +0 -0
  23. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/481.cc2dec9fa869d66f1407.js +0 -0
  24. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/487.0796e931d6e651482c14.js +0 -0
  25. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/49.d326f554b6f9ccde6580.js +0 -0
  26. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/539.3024c7f70ce4db9b6428.js +0 -0
  27. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/579.3bc73eef11d3e0ce5d0c.js +0 -0
  28. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/58.eb7cc679f7535cc8a2f1.js +0 -0
  29. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/58.eb7cc679f7535cc8a2f1.js.LICENSE.txt +0 -0
  30. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/666.d9bfdb23f98489d0a188.js +0 -0
  31. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/677.d266c39dbed33bc388b3.js +0 -0
  32. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/677.d266c39dbed33bc388b3.js.LICENSE.txt +0 -0
  33. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/68.26b6f59c8454adb17f20.js +0 -0
  34. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/868.5cfe7e1a348ec5af1b8c.js +0 -0
  35. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/style.js +0 -0
  36. {codebuff_agent-2.1.78.data → codebuff_agent-2.1.79.data}/data/share/jupyter/labextensions/codebuff/static/third-party-licenses.json +0 -0
  37. {codebuff_agent-2.1.78.dist-info → codebuff_agent-2.1.79.dist-info}/WHEEL +0 -0
  38. {codebuff_agent-2.1.78.dist-info → codebuff_agent-2.1.79.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codebuff",
3
- "version": "2.1.78",
3
+ "version": "2.1.79",
4
4
  "description": "Codebuff JupyterLab Extension - Thin client for Agent Server",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -146,7 +146,7 @@
146
146
  }
147
147
  },
148
148
  "_build": {
149
- "load": "static/remoteEntry.354cc30edfc857656ed2.js",
149
+ "load": "static/remoteEntry.85fc9c6c88a0f6b87109.js",
150
150
  "extension": "./extension",
151
151
  "style": "./style"
152
152
  }
@@ -1 +1 @@
1
- var _JUPYTERLAB;(()=>{"use strict";var e={8384(e,t,r){const o={"./index":()=>Promise.all([r.e(666),r.e(432),r.e(351),r.e(345),r.e(586),r.e(195),r.e(539)]).then(()=>()=>r(5539)),"./extension":()=>Promise.all([r.e(666),r.e(432),r.e(351),r.e(345),r.e(586),r.e(195),r.e(539)]).then(()=>()=>r(5539)),"./style":()=>r.e(579).then(()=>()=>r(6579))},n=(e,t)=>(r.R=t,t=r.o(o,e)?o[e]():Promise.resolve().then(()=>{throw new Error('Module "'+e+'" does not exist in container.')}),r.R=void 0,t),a=(e,t)=>{if(!r.S)return;const o="default",n=r.S[o];if(n&&n!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return r.S[o]=e,r.I(o,t)};r.d(t,{get:()=>n,init:()=>a})}};const t={};function r(o){const n=t[o];if(void 0!==n)return n.exports;const a=t[o]={id:o,exports:{}};return e[o](a,a.exports,r),a.exports}r.m=e,r.c=t,r.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.cw=e=>{var t;return()=>{if(e){var r=e;e=0,t={exports:{}},r.call(t.exports,t,t.exports)}return t.exports}},(()=>{const e=Object.getPrototypeOf;let t;r.t=function(o,n){if(1&n&&(o=this(o)),8&n)return o;if("object"==typeof o&&o){if(4&n&&o.__esModule)return o;if(16&n&&"function"==typeof o.then)return o}const a=Object.create(null);r.r(a);const l={};t=t||[null,e({}),e([]),e(e)];for(var f=2&n&&o;("object"==typeof f||"function"==typeof f)&&!~t.indexOf(f);f=e(f))Object.getOwnPropertyNames(f).forEach(e=>l[e]=()=>o[e]);return l.default=()=>o,r.d(a,l),a}})(),r.d=(e,t)=>{if(Array.isArray(t))for(var o=0;o<t.length;){var n=t[o++],a=t[o++],l=0===a?{enumerable:!0,value:t[o++]}:{enumerable:!0,get:a};r.o(e,n)||Object.defineProperty(e,n,l)}else for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>e+"."+{49:"d326f554b6f9ccde6580",58:"eb7cc679f7535cc8a2f1",68:"26b6f59c8454adb17f20",166:"386ff9b2c37ac865fdee",351:"e796b81287b53635cfa4",353:"581bd1cb00746399b62e",367:"575f9621b63c9a641aa9",421:"11dac223a2c2da1b09f5",432:"a749eb54fdc324b18cfa",439:"ba5b5ef70ec6de214b8c",481:"cc2dec9fa869d66f1407",487:"0796e931d6e651482c14",539:"3024c7f70ce4db9b6428",579:"3bc73eef11d3e0ce5d0c",666:"d9bfdb23f98489d0a188",677:"d266c39dbed33bc388b3",868:"5cfe7e1a348ec5af1b8c"}[e]+".js?v="+{49:"d326f554b6f9ccde6580",58:"eb7cc679f7535cc8a2f1",68:"26b6f59c8454adb17f20",166:"386ff9b2c37ac865fdee",351:"e796b81287b53635cfa4",353:"581bd1cb00746399b62e",367:"575f9621b63c9a641aa9",421:"11dac223a2c2da1b09f5",432:"a749eb54fdc324b18cfa",439:"ba5b5ef70ec6de214b8c",481:"cc2dec9fa869d66f1407",487:"0796e931d6e651482c14",539:"3024c7f70ce4db9b6428",579:"3bc73eef11d3e0ce5d0c",666:"d9bfdb23f98489d0a188",677:"d266c39dbed33bc388b3",868:"5cfe7e1a348ec5af1b8c"}[e],r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="codebuff:";r.l=(o,n,a,l)=>{if(e[o])return void e[o].push(n);let f,i;if(void 0!==a){const e=document.getElementsByTagName("script");for(var c=0;c<e.length;c++){const r=e[c];if(r.getAttribute("src")==o||r.getAttribute("data-webpack")==t+a){f=r;break}}}f||(i=!0,f=document.createElement("script"),f.charset="utf-8",r.nc&&f.setAttribute("nonce",r.nc),f.setAttribute("data-webpack",t+a),f.src=o),e[o]=[n];const d=(t,r)=>{f.onerror=f.onload=null,clearTimeout(u);const n=e[o];if(delete e[o],f.parentNode?.removeChild(f),n?.forEach(e=>e(r)),t)return t(r)},u=setTimeout(d.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=d.bind(null,f.onerror),f.onload=d.bind(null,f.onload),i&&document.head.appendChild(f)}})(),r.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.dn=e=>{var t=Object.getOwnPropertyDescriptor(e,"name");(!t||!t.writable&&t.configurable)&&Object.defineProperty(e,"name",{value:"default",configurable:!0})},(()=>{r.S={};const e={},t={};r.I=(o,n)=>{n||(n=[]);let a=t[o];if(a||(a=t[o]={}),n.indexOf(a)>=0)return;if(n.push(a),e[o])return e[o];r.o(r.S,o)||(r.S[o]={});const l=r.S[o],f="codebuff",i=(e,t,r,o)=>{const n=l[e]=l[e]||{},a=n[t];(!a||!a.loaded&&(!o!=!a.eager?o:f>a.from))&&(n[t]={get:r,from:f,eager:!!o})},c=[];return"default"===o&&(i("@codemirror/commands","6.8.1",()=>Promise.all([r.e(353),r.e(708),r.e(11),r.e(195)]).then(()=>()=>r(4353))),i("@emotion/react","11.14.0",()=>Promise.all([r.e(666),r.e(345),r.e(677)]).then(()=>()=>r(7677))),i("@emotion/styled","11.14.1",()=>Promise.all([r.e(345),r.e(744),r.e(487)]).then(()=>()=>r(1868))),i("@lezer/java","1.1.4",()=>Promise.all([r.e(421),r.e(367),r.e(708),r.e(839)]).then(()=>()=>r(7367))),i("@lezer/javascript","1.5.5",()=>Promise.all([r.e(421),r.e(166),r.e(708),r.e(839)]).then(()=>()=>r(166))),i("@lezer/python","1.1.19",()=>Promise.all([r.e(421),r.e(49),r.e(708),r.e(839)]).then(()=>()=>r(49))),i("@mui/material","5.18.0",()=>Promise.all([r.e(666),r.e(68),r.e(432),r.e(345),r.e(586)]).then(()=>()=>r(3068))),i("codebuff","2.1.78",()=>Promise.all([r.e(666),r.e(432),r.e(351),r.e(345),r.e(586),r.e(195),r.e(539)]).then(()=>()=>r(5539))),i("diff","0",()=>r.e(481).then(()=>()=>r(7481)))),e[o]=c.length?Promise.all(c).then(()=>e[o]=1):1}})(),(()=>{let e;r.g.importScripts&&(e=r.g.location+"");const t=r.g.document;if(!e&&t&&("SCRIPT"===t.currentScript?.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){const r=t.getElementsByTagName("script");if(r.length){let t=r.length-1;for(;t>-1&&(!e||!/^https?:/.test(e));)e=r[t--].src}}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:|[?#].*$/g,"").replace(/\/[^/]+$/,"/"),r.p=e})(),(()=>{var e=e=>{var t=e=>e.split(".").map(e=>+e==e?+e:e),r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),o=r[1]?t(r[1]):[];return r[2]&&(o.length++,o.push.apply(o,t(r[2]))),r[3]&&(o.push([]),o.push.apply(o,t(r[3]))),o},t=(t,r)=>{t=e(t),r=e(r);for(var o=0;;){if(o>=t.length)return o<r.length&&"u"!=(typeof r[o])[0];var n=t[o],a=(typeof n)[0];if(o>=r.length)return"u"==a;var l=r[o],f=(typeof l)[0];if(a!=f)return"o"==a&&"n"==f||"s"==f||"u"==a;if("o"!=a&&"u"!=a&&n!=l)return n<l;o++}},o=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 n=1,a=1;a<e.length;a++)n--,r+="u"==(typeof(f=e[a]))[0]?"-":(n>0?".":"")+(n=2,f);return r}var l=[];for(a=1;a<e.length;a++){var f=e[a];l.push(0===f?"not("+i()+")":1===f?"("+i()+" || "+i()+")":2===f?l.pop()+" "+l.pop():o(f))}return i();function i(){return l.pop().replace(/^\((.+)\)$/,"$1")}},n=(t,r)=>{if(0 in t){r=e(r);var o=t[0],a=o<0;a&&(o=-o-1);for(var l=0,f=1,i=!0;;f++,l++){var c,d,u=f<t.length?(typeof t[f])[0]:"";if(l>=r.length||"o"==(d=(typeof(c=r[l]))[0]))return!i||("u"==u?f>o&&!a:""==u!=a);if("u"==d){if(!i||"u"!=u)return!1}else if(i)if(u==d)if(f<=o){if(c!=t[f])return!1}else{if(a?c>t[f]:c<t[f])return!1;c!=t[f]&&(i=!1)}else if("s"!=u&&"n"!=u){if(a||f<=o)return!1;i=!1,f--}else{if(f<=o||d<u!=a)return!1;i=!1}else"s"!=u&&"n"!=u&&(i=!1,f--)}}var s=[],b=s.pop.bind(s);for(l=1;l<t.length;l++){var p=t[l];s.push(1==p?b()|b():2==p?b()&b():p?n(p,r):!b())}return!!b()};const a=(e,t)=>e&&r.o(e,t),l=e=>(e.loaded=1,e.get()),f=e=>Object.keys(e).reduce((t,r)=>(e[r].eager&&(t[r]=e[r]),t),{}),i=e=>{throw new Error(e)},c=e=>function(t,o,n,a,l){const f=r.I(t);return f?.then&&!n?f.then(e.bind(e,t,r.S[t],o,!1,a,l)):e(t,r.S[t],o,n,a,l)},d=(e,t,r)=>r?r():((e,t)=>i("Shared module "+t+" doesn't exist in shared scope "+e))(e,t),u=c((e,r,c,u,s,b)=>{if(!a(r,c))return d(e,c,b);const p=((e,r,o,a)=>{const l=a?f(e[r]):e[r];return(r=Object.keys(l).reduce((e,r)=>!n(o,r)||e&&!t(e,r)?e:r,0))&&l[r]})(r,c,s,u);return p?l(p):b?b():void i(((e,t,r,n,a)=>{const l=e[r];return"No satisfying version ("+o(n)+")"+(a?" for eager consumption":"")+" of shared module "+r+" found in shared scope "+t+".\nAvailable versions: "+Object.keys(l).map(e=>e+" from "+l[e].from).join(", ")})(r,e,c,s,u))}),s=c((e,r,i,c,u,s)=>{if(!a(r,i))return d(e,i,s);const b=((e,r,o)=>{const n=o?f(e[r]):e[r];return Object.keys(n).reduce((e,r)=>!e||!n[e].loaded&&t(e,r)?r:e,0)})(r,i,c);return n(u,b)||(p=((e,t,r,n)=>"Unsatisfied version "+r+" from "+(r&&e[t][r].from)+" of shared singleton module "+t+" (required "+o(n)+")")(r,i,b,u),"undefined"!=typeof console&&console.warn&&console.warn(p)),l(r[i][b]);var p}),b={},p={3345:()=>s("default","react",!1,[1,18,2,0]),3157:()=>u("default","@emotion/react",!1,[1,11,4,1],()=>r.e(58).then(()=>()=>r(7677))),7628:()=>s("default","react-dom",!1,[1,18,2,0]),9443:()=>u("default","@emotion/styled",!1,[1,11,3,0],()=>Promise.all([r.e(744),r.e(868)]).then(()=>()=>r(1868))),2576:()=>s("default","@codemirror/state",!1,[1,6,2,0]),277:()=>s("default","@jupyterlab/cells",!1,[1,4,5,1]),1247:()=>s("default","@lumino/widgets",!1,[1,2,3,1,,"alpha",1]),1409:()=>s("default","@jupyterlab/ui-components",!1,[1,4,5,1]),1805:()=>s("default","@jupyterlab/console",!1,[1,4,5,1]),1907:()=>s("default","@jupyterlab/services",!1,[1,7,5,1]),2780:()=>s("default","@jupyterlab/filebrowser",!1,[1,4,5,1]),3118:()=>s("default","@jupyterlab/rendermime",!1,[1,4,5,1]),3366:()=>s("default","@jupyterlab/launcher",!1,[1,4,5,1]),4849:()=>u("default","diff",!1,[1,9,0,0],()=>r.e(481).then(()=>()=>r(7481))),5584:()=>s("default","@jupyterlab/application",!1,[1,4,5,1]),5690:()=>s("default","@jupyterlab/terminal",!1,[1,4,5,1]),5705:()=>u("default","@lezer/javascript",!1,[1,1,5,5],()=>Promise.all([r.e(421),r.e(166),r.e(708),r.e(839)]).then(()=>()=>r(166))),6580:()=>u("default","@lezer/python",!1,[1,1,1,19],()=>Promise.all([r.e(421),r.e(49),r.e(708),r.e(839)]).then(()=>()=>r(49))),6661:()=>u("default","@mui/material",!1,[1,5,14,0],()=>r.e(68).then(()=>()=>r(3068))),6822:()=>u("default","@codemirror/commands",!1,[4,6,8,1],()=>Promise.all([r.e(353),r.e(708),r.e(11)]).then(()=>()=>r(4353))),7125:()=>s("default","@jupyterlab/docmanager",!1,[1,4,5,1]),7292:()=>s("default","@jupyterlab/coreutils",!1,[1,6,5,1]),8389:()=>s("default","@jupyterlab/notebook",!1,[1,4,5,1]),8454:()=>u("default","@lezer/java",!1,[1,1,1,4],()=>Promise.all([r.e(421),r.e(367),r.e(708),r.e(839)]).then(()=>()=>r(7367))),9827:()=>s("default","@jupyterlab/apputils",!1,[1,4,6,1]),3708:()=>s("default","@lezer/common",!1,[1,1,0,0]),2084:()=>s("default","@codemirror/language",!1,[1,6,0,0]),5024:()=>s("default","@codemirror/view",!1,[1,6,9,6]),2744:()=>u("default","@emotion/react",!1,[1,11,0,0,,"rc",0],()=>Promise.all([r.e(666),r.e(439)]).then(()=>()=>r(7677))),1839:()=>s("default","@lezer/highlight",!1,[1,1,0,0])},h={11:[2084,5024],195:[2576],345:[3345],539:[277,1247,1409,1805,1907,2780,3118,3366,4849,5584,5690,5705,6580,6661,6822,7125,7292,8389,8454,9827],586:[3157,7628,9443],708:[3708],744:[2744],839:[1839]},m={};r.f.consumes=(e,t)=>{r.o(h,e)&&h[e].forEach(e=>{if(r.o(b,e))return t.push(b[e]);if(!m[e]){const o=t=>{b[e]=0,r.m[e]=o=>{delete r.c[e],o.exports=t()}};m[e]=!0;const n=t=>{delete b[e],r.m[e]=o=>{throw delete r.c[e],t}};try{const r=p[e]();r.then?t.push(b[e]=r.then(o).catch(n)):o(r)}catch(e){n(e)}}})}})(),(()=>{r.b="undefined"!=typeof document&&document.baseURI||self.location.href;const e={679:0};r.f.j=(t,o)=>{let n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)o.push(n[2]);else if(/^(11|195|345|586|708|744|839)$/.test(t))e[t]=0;else{const a=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=a);const l=new Error,f=o=>{if(r.o(e,t)&&(n=e[t],0!==n&&(e[t]=void 0),n)){const e=o&&("load"===o.type?"missing":o.type),r=o&&o.target&&o.target.src;l.message="Loading chunk "+t+" failed.\n("+e+": "+r+")",l.name="ChunkLoadError",l.type=e,l.request=r,l.event=o,n[1](l)}};r.l(r.p+r.u(t),f,"chunk-"+t,t)}};const t=(t,o)=>{let[n,a,l]=o;var f,i,c=0;if(n.some(t=>0!==e[t])){for(f in a)r.o(a,f)&&(r.m[f]=a[f]);l&&l(r)}for(t&&t(o);c<n.length;c++)i=n[c],r.o(e,i)&&e[i]&&e[i][0](),e[i]=0},o=self.webpackChunkcodebuff=self.webpackChunkcodebuff||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})(),r.nc=void 0;let o=r(8384);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB).codebuff=o})();
1
+ var _JUPYTERLAB;(()=>{"use strict";var e={8384(e,t,r){const o={"./index":()=>Promise.all([r.e(666),r.e(432),r.e(351),r.e(345),r.e(586),r.e(195),r.e(539)]).then(()=>()=>r(5539)),"./extension":()=>Promise.all([r.e(666),r.e(432),r.e(351),r.e(345),r.e(586),r.e(195),r.e(539)]).then(()=>()=>r(5539)),"./style":()=>r.e(579).then(()=>()=>r(6579))},n=(e,t)=>(r.R=t,t=r.o(o,e)?o[e]():Promise.resolve().then(()=>{throw new Error('Module "'+e+'" does not exist in container.')}),r.R=void 0,t),a=(e,t)=>{if(!r.S)return;const o="default",n=r.S[o];if(n&&n!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return r.S[o]=e,r.I(o,t)};r.d(t,{get:()=>n,init:()=>a})}};const t={};function r(o){const n=t[o];if(void 0!==n)return n.exports;const a=t[o]={id:o,exports:{}};return e[o](a,a.exports,r),a.exports}r.m=e,r.c=t,r.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.cw=e=>{var t;return()=>{if(e){var r=e;e=0,t={exports:{}},r.call(t.exports,t,t.exports)}return t.exports}},(()=>{const e=Object.getPrototypeOf;let t;r.t=function(o,n){if(1&n&&(o=this(o)),8&n)return o;if("object"==typeof o&&o){if(4&n&&o.__esModule)return o;if(16&n&&"function"==typeof o.then)return o}const a=Object.create(null);r.r(a);const l={};t=t||[null,e({}),e([]),e(e)];for(var f=2&n&&o;("object"==typeof f||"function"==typeof f)&&!~t.indexOf(f);f=e(f))Object.getOwnPropertyNames(f).forEach(e=>l[e]=()=>o[e]);return l.default=()=>o,r.d(a,l),a}})(),r.d=(e,t)=>{if(Array.isArray(t))for(var o=0;o<t.length;){var n=t[o++],a=t[o++],l=0===a?{enumerable:!0,value:t[o++]}:{enumerable:!0,get:a};r.o(e,n)||Object.defineProperty(e,n,l)}else for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>e+"."+{49:"d326f554b6f9ccde6580",58:"eb7cc679f7535cc8a2f1",68:"26b6f59c8454adb17f20",166:"386ff9b2c37ac865fdee",351:"e796b81287b53635cfa4",353:"581bd1cb00746399b62e",367:"575f9621b63c9a641aa9",421:"11dac223a2c2da1b09f5",432:"a749eb54fdc324b18cfa",439:"ba5b5ef70ec6de214b8c",481:"cc2dec9fa869d66f1407",487:"0796e931d6e651482c14",539:"3024c7f70ce4db9b6428",579:"3bc73eef11d3e0ce5d0c",666:"d9bfdb23f98489d0a188",677:"d266c39dbed33bc388b3",868:"5cfe7e1a348ec5af1b8c"}[e]+".js?v="+{49:"d326f554b6f9ccde6580",58:"eb7cc679f7535cc8a2f1",68:"26b6f59c8454adb17f20",166:"386ff9b2c37ac865fdee",351:"e796b81287b53635cfa4",353:"581bd1cb00746399b62e",367:"575f9621b63c9a641aa9",421:"11dac223a2c2da1b09f5",432:"a749eb54fdc324b18cfa",439:"ba5b5ef70ec6de214b8c",481:"cc2dec9fa869d66f1407",487:"0796e931d6e651482c14",539:"3024c7f70ce4db9b6428",579:"3bc73eef11d3e0ce5d0c",666:"d9bfdb23f98489d0a188",677:"d266c39dbed33bc388b3",868:"5cfe7e1a348ec5af1b8c"}[e],r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="codebuff:";r.l=(o,n,a,l)=>{if(e[o])return void e[o].push(n);let f,i;if(void 0!==a){const e=document.getElementsByTagName("script");for(var c=0;c<e.length;c++){const r=e[c];if(r.getAttribute("src")==o||r.getAttribute("data-webpack")==t+a){f=r;break}}}f||(i=!0,f=document.createElement("script"),f.charset="utf-8",r.nc&&f.setAttribute("nonce",r.nc),f.setAttribute("data-webpack",t+a),f.src=o),e[o]=[n];const d=(t,r)=>{f.onerror=f.onload=null,clearTimeout(u);const n=e[o];if(delete e[o],f.parentNode?.removeChild(f),n?.forEach(e=>e(r)),t)return t(r)},u=setTimeout(d.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=d.bind(null,f.onerror),f.onload=d.bind(null,f.onload),i&&document.head.appendChild(f)}})(),r.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.dn=e=>{var t=Object.getOwnPropertyDescriptor(e,"name");(!t||!t.writable&&t.configurable)&&Object.defineProperty(e,"name",{value:"default",configurable:!0})},(()=>{r.S={};const e={},t={};r.I=(o,n)=>{n||(n=[]);let a=t[o];if(a||(a=t[o]={}),n.indexOf(a)>=0)return;if(n.push(a),e[o])return e[o];r.o(r.S,o)||(r.S[o]={});const l=r.S[o],f="codebuff",i=(e,t,r,o)=>{const n=l[e]=l[e]||{},a=n[t];(!a||!a.loaded&&(!o!=!a.eager?o:f>a.from))&&(n[t]={get:r,from:f,eager:!!o})},c=[];return"default"===o&&(i("@codemirror/commands","6.8.1",()=>Promise.all([r.e(353),r.e(708),r.e(11),r.e(195)]).then(()=>()=>r(4353))),i("@emotion/react","11.14.0",()=>Promise.all([r.e(666),r.e(345),r.e(677)]).then(()=>()=>r(7677))),i("@emotion/styled","11.14.1",()=>Promise.all([r.e(345),r.e(744),r.e(487)]).then(()=>()=>r(1868))),i("@lezer/java","1.1.4",()=>Promise.all([r.e(421),r.e(367),r.e(708),r.e(839)]).then(()=>()=>r(7367))),i("@lezer/javascript","1.5.5",()=>Promise.all([r.e(421),r.e(166),r.e(708),r.e(839)]).then(()=>()=>r(166))),i("@lezer/python","1.1.19",()=>Promise.all([r.e(421),r.e(49),r.e(708),r.e(839)]).then(()=>()=>r(49))),i("@mui/material","5.18.0",()=>Promise.all([r.e(666),r.e(68),r.e(432),r.e(345),r.e(586)]).then(()=>()=>r(3068))),i("codebuff","2.1.79",()=>Promise.all([r.e(666),r.e(432),r.e(351),r.e(345),r.e(586),r.e(195),r.e(539)]).then(()=>()=>r(5539))),i("diff","0",()=>r.e(481).then(()=>()=>r(7481)))),e[o]=c.length?Promise.all(c).then(()=>e[o]=1):1}})(),(()=>{let e;r.g.importScripts&&(e=r.g.location+"");const t=r.g.document;if(!e&&t&&("SCRIPT"===t.currentScript?.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){const r=t.getElementsByTagName("script");if(r.length){let t=r.length-1;for(;t>-1&&(!e||!/^https?:/.test(e));)e=r[t--].src}}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:|[?#].*$/g,"").replace(/\/[^/]+$/,"/"),r.p=e})(),(()=>{var e=e=>{var t=e=>e.split(".").map(e=>+e==e?+e:e),r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),o=r[1]?t(r[1]):[];return r[2]&&(o.length++,o.push.apply(o,t(r[2]))),r[3]&&(o.push([]),o.push.apply(o,t(r[3]))),o},t=(t,r)=>{t=e(t),r=e(r);for(var o=0;;){if(o>=t.length)return o<r.length&&"u"!=(typeof r[o])[0];var n=t[o],a=(typeof n)[0];if(o>=r.length)return"u"==a;var l=r[o],f=(typeof l)[0];if(a!=f)return"o"==a&&"n"==f||"s"==f||"u"==a;if("o"!=a&&"u"!=a&&n!=l)return n<l;o++}},o=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 n=1,a=1;a<e.length;a++)n--,r+="u"==(typeof(f=e[a]))[0]?"-":(n>0?".":"")+(n=2,f);return r}var l=[];for(a=1;a<e.length;a++){var f=e[a];l.push(0===f?"not("+i()+")":1===f?"("+i()+" || "+i()+")":2===f?l.pop()+" "+l.pop():o(f))}return i();function i(){return l.pop().replace(/^\((.+)\)$/,"$1")}},n=(t,r)=>{if(0 in t){r=e(r);var o=t[0],a=o<0;a&&(o=-o-1);for(var l=0,f=1,i=!0;;f++,l++){var c,d,u=f<t.length?(typeof t[f])[0]:"";if(l>=r.length||"o"==(d=(typeof(c=r[l]))[0]))return!i||("u"==u?f>o&&!a:""==u!=a);if("u"==d){if(!i||"u"!=u)return!1}else if(i)if(u==d)if(f<=o){if(c!=t[f])return!1}else{if(a?c>t[f]:c<t[f])return!1;c!=t[f]&&(i=!1)}else if("s"!=u&&"n"!=u){if(a||f<=o)return!1;i=!1,f--}else{if(f<=o||d<u!=a)return!1;i=!1}else"s"!=u&&"n"!=u&&(i=!1,f--)}}var s=[],b=s.pop.bind(s);for(l=1;l<t.length;l++){var p=t[l];s.push(1==p?b()|b():2==p?b()&b():p?n(p,r):!b())}return!!b()};const a=(e,t)=>e&&r.o(e,t),l=e=>(e.loaded=1,e.get()),f=e=>Object.keys(e).reduce((t,r)=>(e[r].eager&&(t[r]=e[r]),t),{}),i=e=>{throw new Error(e)},c=e=>function(t,o,n,a,l){const f=r.I(t);return f?.then&&!n?f.then(e.bind(e,t,r.S[t],o,!1,a,l)):e(t,r.S[t],o,n,a,l)},d=(e,t,r)=>r?r():((e,t)=>i("Shared module "+t+" doesn't exist in shared scope "+e))(e,t),u=c((e,r,c,u,s,b)=>{if(!a(r,c))return d(e,c,b);const p=((e,r,o,a)=>{const l=a?f(e[r]):e[r];return(r=Object.keys(l).reduce((e,r)=>!n(o,r)||e&&!t(e,r)?e:r,0))&&l[r]})(r,c,s,u);return p?l(p):b?b():void i(((e,t,r,n,a)=>{const l=e[r];return"No satisfying version ("+o(n)+")"+(a?" for eager consumption":"")+" of shared module "+r+" found in shared scope "+t+".\nAvailable versions: "+Object.keys(l).map(e=>e+" from "+l[e].from).join(", ")})(r,e,c,s,u))}),s=c((e,r,i,c,u,s)=>{if(!a(r,i))return d(e,i,s);const b=((e,r,o)=>{const n=o?f(e[r]):e[r];return Object.keys(n).reduce((e,r)=>!e||!n[e].loaded&&t(e,r)?r:e,0)})(r,i,c);return n(u,b)||(p=((e,t,r,n)=>"Unsatisfied version "+r+" from "+(r&&e[t][r].from)+" of shared singleton module "+t+" (required "+o(n)+")")(r,i,b,u),"undefined"!=typeof console&&console.warn&&console.warn(p)),l(r[i][b]);var p}),b={},p={3345:()=>s("default","react",!1,[1,18,2,0]),3157:()=>u("default","@emotion/react",!1,[1,11,4,1],()=>r.e(58).then(()=>()=>r(7677))),7628:()=>s("default","react-dom",!1,[1,18,2,0]),9443:()=>u("default","@emotion/styled",!1,[1,11,3,0],()=>Promise.all([r.e(744),r.e(868)]).then(()=>()=>r(1868))),2576:()=>s("default","@codemirror/state",!1,[1,6,2,0]),277:()=>s("default","@jupyterlab/cells",!1,[1,4,5,1]),1247:()=>s("default","@lumino/widgets",!1,[1,2,3,1,,"alpha",1]),1409:()=>s("default","@jupyterlab/ui-components",!1,[1,4,5,1]),1805:()=>s("default","@jupyterlab/console",!1,[1,4,5,1]),1907:()=>s("default","@jupyterlab/services",!1,[1,7,5,1]),2780:()=>s("default","@jupyterlab/filebrowser",!1,[1,4,5,1]),3118:()=>s("default","@jupyterlab/rendermime",!1,[1,4,5,1]),3366:()=>s("default","@jupyterlab/launcher",!1,[1,4,5,1]),4849:()=>u("default","diff",!1,[1,9,0,0],()=>r.e(481).then(()=>()=>r(7481))),5584:()=>s("default","@jupyterlab/application",!1,[1,4,5,1]),5690:()=>s("default","@jupyterlab/terminal",!1,[1,4,5,1]),5705:()=>u("default","@lezer/javascript",!1,[1,1,5,5],()=>Promise.all([r.e(421),r.e(166),r.e(708),r.e(839)]).then(()=>()=>r(166))),6580:()=>u("default","@lezer/python",!1,[1,1,1,19],()=>Promise.all([r.e(421),r.e(49),r.e(708),r.e(839)]).then(()=>()=>r(49))),6661:()=>u("default","@mui/material",!1,[1,5,14,0],()=>r.e(68).then(()=>()=>r(3068))),6822:()=>u("default","@codemirror/commands",!1,[4,6,8,1],()=>Promise.all([r.e(353),r.e(708),r.e(11)]).then(()=>()=>r(4353))),7125:()=>s("default","@jupyterlab/docmanager",!1,[1,4,5,1]),7292:()=>s("default","@jupyterlab/coreutils",!1,[1,6,5,1]),8389:()=>s("default","@jupyterlab/notebook",!1,[1,4,5,1]),8454:()=>u("default","@lezer/java",!1,[1,1,1,4],()=>Promise.all([r.e(421),r.e(367),r.e(708),r.e(839)]).then(()=>()=>r(7367))),9827:()=>s("default","@jupyterlab/apputils",!1,[1,4,6,1]),3708:()=>s("default","@lezer/common",!1,[1,1,0,0]),2084:()=>s("default","@codemirror/language",!1,[1,6,0,0]),5024:()=>s("default","@codemirror/view",!1,[1,6,9,6]),2744:()=>u("default","@emotion/react",!1,[1,11,0,0,,"rc",0],()=>Promise.all([r.e(666),r.e(439)]).then(()=>()=>r(7677))),1839:()=>s("default","@lezer/highlight",!1,[1,1,0,0])},h={11:[2084,5024],195:[2576],345:[3345],539:[277,1247,1409,1805,1907,2780,3118,3366,4849,5584,5690,5705,6580,6661,6822,7125,7292,8389,8454,9827],586:[3157,7628,9443],708:[3708],744:[2744],839:[1839]},m={};r.f.consumes=(e,t)=>{r.o(h,e)&&h[e].forEach(e=>{if(r.o(b,e))return t.push(b[e]);if(!m[e]){const o=t=>{b[e]=0,r.m[e]=o=>{delete r.c[e],o.exports=t()}};m[e]=!0;const n=t=>{delete b[e],r.m[e]=o=>{throw delete r.c[e],t}};try{const r=p[e]();r.then?t.push(b[e]=r.then(o).catch(n)):o(r)}catch(e){n(e)}}})}})(),(()=>{r.b="undefined"!=typeof document&&document.baseURI||self.location.href;const e={679:0};r.f.j=(t,o)=>{let n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)o.push(n[2]);else if(/^(11|195|345|586|708|744|839)$/.test(t))e[t]=0;else{const a=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=a);const l=new Error,f=o=>{if(r.o(e,t)&&(n=e[t],0!==n&&(e[t]=void 0),n)){const e=o&&("load"===o.type?"missing":o.type),r=o&&o.target&&o.target.src;l.message="Loading chunk "+t+" failed.\n("+e+": "+r+")",l.name="ChunkLoadError",l.type=e,l.request=r,l.event=o,n[1](l)}};r.l(r.p+r.u(t),f,"chunk-"+t,t)}};const t=(t,o)=>{let[n,a,l]=o;var f,i,c=0;if(n.some(t=>0!==e[t])){for(f in a)r.o(a,f)&&(r.m[f]=a[f]);l&&l(r)}for(t&&t(o);c<n.length;c++)i=n[c],r.o(e,i)&&e[i]&&e[i][0](),e[i]=0},o=self.webpackChunkcodebuff=self.webpackChunkcodebuff||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})(),r.nc=void 0;let o=r(8384);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB).codebuff=o})();
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: codebuff-agent
3
- Version: 2.1.78
3
+ Version: 2.1.79
4
4
  Summary: Codebuff JupyterLab Extension - Thin client for Agent Server
5
5
  Project-URL: Homepage, https://github.com/lks21c/codebuff
6
6
  Project-URL: Bug Tracker, https://github.com/lks21c/codebuff/issues
@@ -52,18 +52,18 @@ codebuff_core/tests/test_error_recovery.py,sha256=4PUtupKGqdo9d0QxDJN5g15nZ6viOE
52
52
  codebuff_core/tests/test_factory.py,sha256=a0vwB3cWpw8k8xHPUUu1zLeB0Qi6NQ8ZU7A8uN823TE,5459
53
53
  codebuff_core/tests/test_services.py,sha256=WkVtlF6BBUDDlR2bHq76nKWwprHRGytoDm0oUGxq0UU,5271
54
54
  jupyter_ext/__init__.py,sha256=uEctGSnGefquYNNxumXEZZddCyIOO-c1TE7Ahxzo-G4,12214
55
- jupyter_ext/_version.py,sha256=iqkyBrWx6kzrtowMTEoOCdXBLqMQC0t5vmp8lse1jOc,172
55
+ jupyter_ext/_version.py,sha256=3ivaHzJbUof0ARvEK8APPlBGVNUdA22yWOmhZyrw9ro,172
56
56
  jupyter_ext/analytics_ingest.py,sha256=zxI99h0beD9TXzGH0u7lAnZcIe6HmLbjl7q855ri_To,25069
57
57
  jupyter_ext/apm_ingest.py,sha256=FiBvTK427zt54ygYatAufsCKoupUneQK4PzkSgHugoY,16607
58
- jupyter_ext/http_handlers.py,sha256=IiNnYLBEVWaocMs2Wc4uIJiYOJQXTJS3DMM1yY098mU,317520
58
+ jupyter_ext/http_handlers.py,sha256=7lx7_ogYyHaceTtyxqFrzfJzStlF3AMCuRD2892AHFs,318090
59
59
  jupyter_ext/idle_monitor.py,sha256=V8kxTpLYdoj9VqJB-tB33ugi4YSbiflC9IM1kpLwMKo,12783
60
60
  jupyter_ext/log_paths.py,sha256=7jdWpF_uFfuagyHKKv-am_nxbl2t_Ls8K1xVBrG-eBg,3559
61
61
  jupyter_ext/loop_lag.py,sha256=6pcO1Q3v9t5O640sIwETU0JeVZdV_QmohQ8-vwu36Ag,6259
62
- jupyter_ext/pod_identity.py,sha256=ZTrC6_yZBqY5v_STGweLaC0uAPRK5R3xjVCI-thmEIk,3810
62
+ jupyter_ext/pod_identity.py,sha256=fN34Kq02vNGuTj49GooCg0EaSMX5MEKtO2VCp1U2A_k,5216
63
63
  jupyter_ext/provider_pii.py,sha256=qY-aKeW3NLbDukEbKc7nswsoq3kPZZGpBMTxmpxyCU8,1942
64
64
  jupyter_ext/resource_usage.py,sha256=yor1jrcN3ULwDMw4pVF04BPA8Z3W1b5kPM7PUprYlXc,19459
65
65
  jupyter_ext/secrets_bootstrap.py,sha256=k3sakJt2DvWIzDwIUrli6720n0wE9xe4TdTSmuqsAlw,7318
66
- jupyter_ext/team_access.py,sha256=weB6ICjz2waGit29Q1FIhptLbiqdvFR6sFALqpstonQ,5553
66
+ jupyter_ext/team_access.py,sha256=Qz8qQ89OE1Mp2U3SRZ8ixf6SARDqFXm80Mk22_4lj6c,5741
67
67
  jupyter_ext/agent/__init__.py,sha256=OoXwrM5ky-azMTYAnUJWdEVQXYi5C-APfKCOMFwzAGU,1226
68
68
  jupyter_ext/agent/agent_factory.py,sha256=6s8Ebe5iBOzx1idpviOaScLde2DHRxHSTH3ldUsK6jo,100259
69
69
  jupyter_ext/agent/apply_patch.py,sha256=2bwk0VXZlr35N96pKKAhJDXcxkPRq5iY3FqHH5RbeRM,18779
@@ -73,7 +73,7 @@ jupyter_ext/agent/background_procs.py,sha256=Pk1CqccDvxxCD9zXO6NUFm6FXjoPlj14wFX
73
73
  jupyter_ext/agent/bg_procs_context.py,sha256=kiMfCsMmi9bzb9xBBCUoIiMMd1DMqYwOelJhZI1T76s,3529
74
74
  jupyter_ext/agent/code_history_middleware.py,sha256=W-rak7oGCP8cj5nsRpapmtbhwu61BYu7uE0vzQwN9SY,7755
75
75
  jupyter_ext/agent/codex_autofix.py,sha256=aNDuzEugzAhQXsMelwmfUgYffREF21jthduaWEfE1hM,7360
76
- jupyter_ext/agent/codex_bridge.py,sha256=V2muiRl96zbzkbSo2XISepMRtMrHAhYD9pBak_7G6NM,327352
76
+ jupyter_ext/agent/codex_bridge.py,sha256=l1ju995Lg4NiMK6waYw92S8cQFgLFIfHCgmkJzBa3eQ,327722
77
77
  jupyter_ext/agent/codex_hooks.py,sha256=S0QCxzLYvmAUJKNFaX8e38P3orEaLWpxiFPKipOs4Wc,15446
78
78
  jupyter_ext/agent/codex_prefs.py,sha256=WvwwY8wnsvwvcinMZU6xdQiAPMIPXxhWGVJJlK-K2BY,7906
79
79
  jupyter_ext/agent/codex_slash.py,sha256=d_BUJ5fVbUdq7TsbGVSfdFB_OZ1ksojcfrTBJnJBknw,68889
@@ -143,7 +143,7 @@ jupyter_ext/handlers/apm_handler.py,sha256=afBov2_XPxlrZ6DCp6dqfIs-GFqPmfE5eUllr
143
143
  jupyter_ext/handlers/rag_admin_handler.py,sha256=C4MqVLIyweR34dDot9NkUgFxl_iOi0mxuU2PotFh9WA,3068
144
144
  jupyter_ext/handlers/websocket.py,sha256=jGJFRi_Url5RzBqRWvH72fXPP0ekb-WrQVx2xqTm-Pc,16604
145
145
  jupyter_ext/lab/settings/overrides.d/codebuff.json,sha256=3n2FDnLgE0aKOyn45RvyKWZKBpz7bvoA5QtxQLyM4a0,122
146
- jupyter_ext/labextension/package.json,sha256=anWW5isPP-5upsZcCeubSPT6zi02oUx8Ju4jkur0hb4,5201
146
+ jupyter_ext/labextension/package.json,sha256=R1VlI8ZyVYMqpId8jXRt7KHvJvvluf7thj9qnMlwDFw,5201
147
147
  jupyter_ext/labextension/static/166.386ff9b2c37ac865fdee.js,sha256=OG_5ssN6yGX97ihImIjeu0ictpfioowYcR9Ay3qyC8o,78037
148
148
  jupyter_ext/labextension/static/351.e796b81287b53635cfa4.js,sha256=55a4Eoe1NjXPpP-i_vx90AdC8ghpyfy8640qFyf_cqQ,100173
149
149
  jupyter_ext/labextension/static/353.581bd1cb00746399b62e.js,sha256=WBvRywB0Y5m2Li0E6i184sCcKBi_rVXSDJ2cjTCpmZo,28894
@@ -165,7 +165,7 @@ jupyter_ext/labextension/static/677.d266c39dbed33bc388b3.js,sha256=5p_TSXMsQ26sJ
165
165
  jupyter_ext/labextension/static/677.d266c39dbed33bc388b3.js.LICENSE.txt,sha256=lqUlGHhVY3z3mcV-sTwREZRm1KQ7maSiV6-Gm8RSQNY,246
166
166
  jupyter_ext/labextension/static/68.26b6f59c8454adb17f20.js,sha256=Jrb1nIRUrbF_IEXU7CJRLbiRG9uNVBTOcPpYVYyD0t8,484028
167
167
  jupyter_ext/labextension/static/868.5cfe7e1a348ec5af1b8c.js,sha256=XP5-GjSOxa8bjNK9wNbZQqz14rF2h8P0J3LsRwC5o10,7933
168
- jupyter_ext/labextension/static/remoteEntry.354cc30edfc857656ed2.js,sha256=NUzDDt_IV2Vu0vYzd52NTtQRjEsgh_o6RCiiJvRY12I,12078
168
+ jupyter_ext/labextension/static/remoteEntry.85fc9c6c88a0f6b87109.js,sha256=hfycbIig9rhxCXDJJ1YjTSXKZ8ErjeECAGkfTwAzVGI,12078
169
169
  jupyter_ext/labextension/static/style.js,sha256=MorHEvkG0Oe-uZ7t7oFa5X01nqPLFSwlC2attA72Jr8,161
170
170
  jupyter_ext/labextension/static/third-party-licenses.json,sha256=luwtTWx15amrLYftafSAMx2ZV1sp32gCs_uslfNrf9Y,65553
171
171
  jupyter_ext/tests/__init__.py,sha256=JuO3lX7V7YfonXc_fuVQmxJcKklSq4orTEcdOuZrX8g,37
@@ -188,34 +188,34 @@ jupyter_ext/tools/search_tools.py,sha256=OZH3L-6LkcBKiQrtQqxWoSdDH0YUg2d9a2y5nQ-
188
188
  jupyter_ext/tools/security_tools.py,sha256=o-POr5BewXieuRJKli8kNC2KSLJos2GQb-70y_UHpVo,23556
189
189
  jupyter_ext/tools/shell_tools.py,sha256=lD57Vzqof81MXeLWUH6TqsjiyU_z1aY5Uj1riRFz_zU,3537
190
190
  jupyter_ext/tools/user_tools.py,sha256=xDsSBavDn7yc1iw71q0JnfMb7h_t35hcdQUlZPsNFSQ,4544
191
- codebuff_agent-2.1.78.data/data/etc/jupyter/jupyter_server_config.d/codebuff_agent.json,sha256=KXCyKfoeM1OxdPWa0wL2plndcqJkQ7ke3UaF0tJpMW0,86
192
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/package.json,sha256=anWW5isPP-5upsZcCeubSPT6zi02oUx8Ju4jkur0hb4,5201
193
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/166.386ff9b2c37ac865fdee.js,sha256=OG_5ssN6yGX97ihImIjeu0ictpfioowYcR9Ay3qyC8o,78037
194
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/351.e796b81287b53635cfa4.js,sha256=55a4Eoe1NjXPpP-i_vx90AdC8ghpyfy8640qFyf_cqQ,100173
195
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/353.581bd1cb00746399b62e.js,sha256=WBvRywB0Y5m2Li0E6i184sCcKBi_rVXSDJ2cjTCpmZo,28894
196
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/367.575f9621b63c9a641aa9.js,sha256=V1-WIbY8mmQaqaP99vIxQUsz77L2DTFp0UUYGgdg-rA,39717
197
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/421.11dac223a2c2da1b09f5.js,sha256=EdrCI6LC2hsJ9e4JHW5s1GRClkmWZRw54TCbnEZayms,28308
198
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/432.a749eb54fdc324b18cfa.js,sha256=xa_7EXIvUGWlFbtFcZj3HwoRAElOX2NaEAvw0rAKni4,44883
199
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/432.a749eb54fdc324b18cfa.js.LICENSE.txt,sha256=mlhymahwls4499g-vGLVU9Lxqw3zTOvv42ZLrJkGXbM,488
200
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/439.ba5b5ef70ec6de214b8c.js,sha256=jvm4vHxAXO-fZoVqZqnx4qUuz-23MdavPCVB2zdHr5c,7497
201
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/439.ba5b5ef70ec6de214b8c.js.LICENSE.txt,sha256=lqUlGHhVY3z3mcV-sTwREZRm1KQ7maSiV6-Gm8RSQNY,246
202
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/481.cc2dec9fa869d66f1407.js,sha256=zC3sn6hp1m8UBx3gqzUz-02FaorPolqH7yKeK_ofIEg,23159
203
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/487.0796e931d6e651482c14.js,sha256=B5bpMdbmUUgsFL7SCWiFcY9EYp2MQsWSysVsPCqCZzE,11375
204
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/49.d326f554b6f9ccde6580.js,sha256=0yb1VLb5zN5lgFN8HZpkBbuBaQUeuJe7U5Ec-0qebY0,37796
205
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/539.3024c7f70ce4db9b6428.js,sha256=MCTH9wzk25tkKEiKeBfu63xM4fdSfWYwG62W4vC0Wto,415956
206
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/579.3bc73eef11d3e0ce5d0c.js,sha256=O8c-7xHT4M5dDN_QaLAXOv1vNvMgcdiK_57YCDZEyJI,192647
207
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/58.eb7cc679f7535cc8a2f1.js,sha256=gdv-HEOQWn46_6fkKzIqx26GrfKOa62aodnM1trD5nU,8080
208
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/58.eb7cc679f7535cc8a2f1.js.LICENSE.txt,sha256=lqUlGHhVY3z3mcV-sTwREZRm1KQ7maSiV6-Gm8RSQNY,246
209
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/666.d9bfdb23f98489d0a188.js,sha256=2b_bI_mEidChiCaENfxTQtkswntodquGofjBXhN8--g,9718
210
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/677.d266c39dbed33bc388b3.js,sha256=5p_TSXMsQ26sJcaw40hTChjum9MCOguSwMPR6wRqTE8,11523
211
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/677.d266c39dbed33bc388b3.js.LICENSE.txt,sha256=lqUlGHhVY3z3mcV-sTwREZRm1KQ7maSiV6-Gm8RSQNY,246
212
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/68.26b6f59c8454adb17f20.js,sha256=Jrb1nIRUrbF_IEXU7CJRLbiRG9uNVBTOcPpYVYyD0t8,484028
213
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/868.5cfe7e1a348ec5af1b8c.js,sha256=XP5-GjSOxa8bjNK9wNbZQqz14rF2h8P0J3LsRwC5o10,7933
214
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/remoteEntry.354cc30edfc857656ed2.js,sha256=NUzDDt_IV2Vu0vYzd52NTtQRjEsgh_o6RCiiJvRY12I,12078
215
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/style.js,sha256=MorHEvkG0Oe-uZ7t7oFa5X01nqPLFSwlC2attA72Jr8,161
216
- codebuff_agent-2.1.78.data/data/share/jupyter/labextensions/codebuff/static/third-party-licenses.json,sha256=luwtTWx15amrLYftafSAMx2ZV1sp32gCs_uslfNrf9Y,65553
217
- codebuff_agent-2.1.78.data/data/share/jupyter/lab/settings/overrides.d/codebuff.json,sha256=3n2FDnLgE0aKOyn45RvyKWZKBpz7bvoA5QtxQLyM4a0,122
218
- codebuff_agent-2.1.78.dist-info/METADATA,sha256=dxXKz2NP5cRc5XTR3YuV4bVlg-2xKrL4nHaFvcnauss,4314
219
- codebuff_agent-2.1.78.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
220
- codebuff_agent-2.1.78.dist-info/licenses/LICENSE,sha256=LZnhgcr8NXVgC4ewcnNjWlYahaIS_KLMxKWDCZkHpQo,1061
221
- codebuff_agent-2.1.78.dist-info/RECORD,,
191
+ codebuff_agent-2.1.79.data/data/etc/jupyter/jupyter_server_config.d/codebuff_agent.json,sha256=KXCyKfoeM1OxdPWa0wL2plndcqJkQ7ke3UaF0tJpMW0,86
192
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/package.json,sha256=R1VlI8ZyVYMqpId8jXRt7KHvJvvluf7thj9qnMlwDFw,5201
193
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/166.386ff9b2c37ac865fdee.js,sha256=OG_5ssN6yGX97ihImIjeu0ictpfioowYcR9Ay3qyC8o,78037
194
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/351.e796b81287b53635cfa4.js,sha256=55a4Eoe1NjXPpP-i_vx90AdC8ghpyfy8640qFyf_cqQ,100173
195
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/353.581bd1cb00746399b62e.js,sha256=WBvRywB0Y5m2Li0E6i184sCcKBi_rVXSDJ2cjTCpmZo,28894
196
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/367.575f9621b63c9a641aa9.js,sha256=V1-WIbY8mmQaqaP99vIxQUsz77L2DTFp0UUYGgdg-rA,39717
197
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/421.11dac223a2c2da1b09f5.js,sha256=EdrCI6LC2hsJ9e4JHW5s1GRClkmWZRw54TCbnEZayms,28308
198
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/432.a749eb54fdc324b18cfa.js,sha256=xa_7EXIvUGWlFbtFcZj3HwoRAElOX2NaEAvw0rAKni4,44883
199
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/432.a749eb54fdc324b18cfa.js.LICENSE.txt,sha256=mlhymahwls4499g-vGLVU9Lxqw3zTOvv42ZLrJkGXbM,488
200
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/439.ba5b5ef70ec6de214b8c.js,sha256=jvm4vHxAXO-fZoVqZqnx4qUuz-23MdavPCVB2zdHr5c,7497
201
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/439.ba5b5ef70ec6de214b8c.js.LICENSE.txt,sha256=lqUlGHhVY3z3mcV-sTwREZRm1KQ7maSiV6-Gm8RSQNY,246
202
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/481.cc2dec9fa869d66f1407.js,sha256=zC3sn6hp1m8UBx3gqzUz-02FaorPolqH7yKeK_ofIEg,23159
203
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/487.0796e931d6e651482c14.js,sha256=B5bpMdbmUUgsFL7SCWiFcY9EYp2MQsWSysVsPCqCZzE,11375
204
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/49.d326f554b6f9ccde6580.js,sha256=0yb1VLb5zN5lgFN8HZpkBbuBaQUeuJe7U5Ec-0qebY0,37796
205
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/539.3024c7f70ce4db9b6428.js,sha256=MCTH9wzk25tkKEiKeBfu63xM4fdSfWYwG62W4vC0Wto,415956
206
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/579.3bc73eef11d3e0ce5d0c.js,sha256=O8c-7xHT4M5dDN_QaLAXOv1vNvMgcdiK_57YCDZEyJI,192647
207
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/58.eb7cc679f7535cc8a2f1.js,sha256=gdv-HEOQWn46_6fkKzIqx26GrfKOa62aodnM1trD5nU,8080
208
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/58.eb7cc679f7535cc8a2f1.js.LICENSE.txt,sha256=lqUlGHhVY3z3mcV-sTwREZRm1KQ7maSiV6-Gm8RSQNY,246
209
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/666.d9bfdb23f98489d0a188.js,sha256=2b_bI_mEidChiCaENfxTQtkswntodquGofjBXhN8--g,9718
210
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/677.d266c39dbed33bc388b3.js,sha256=5p_TSXMsQ26sJcaw40hTChjum9MCOguSwMPR6wRqTE8,11523
211
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/677.d266c39dbed33bc388b3.js.LICENSE.txt,sha256=lqUlGHhVY3z3mcV-sTwREZRm1KQ7maSiV6-Gm8RSQNY,246
212
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/68.26b6f59c8454adb17f20.js,sha256=Jrb1nIRUrbF_IEXU7CJRLbiRG9uNVBTOcPpYVYyD0t8,484028
213
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/868.5cfe7e1a348ec5af1b8c.js,sha256=XP5-GjSOxa8bjNK9wNbZQqz14rF2h8P0J3LsRwC5o10,7933
214
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/remoteEntry.85fc9c6c88a0f6b87109.js,sha256=hfycbIig9rhxCXDJJ1YjTSXKZ8ErjeECAGkfTwAzVGI,12078
215
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/style.js,sha256=MorHEvkG0Oe-uZ7t7oFa5X01nqPLFSwlC2attA72Jr8,161
216
+ codebuff_agent-2.1.79.data/data/share/jupyter/labextensions/codebuff/static/third-party-licenses.json,sha256=luwtTWx15amrLYftafSAMx2ZV1sp32gCs_uslfNrf9Y,65553
217
+ codebuff_agent-2.1.79.data/data/share/jupyter/lab/settings/overrides.d/codebuff.json,sha256=3n2FDnLgE0aKOyn45RvyKWZKBpz7bvoA5QtxQLyM4a0,122
218
+ codebuff_agent-2.1.79.dist-info/METADATA,sha256=6GN1CXS32Xyt90ZmIQ-ejOGlLxbqgEIVzl725RDfT1A,4314
219
+ codebuff_agent-2.1.79.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
220
+ codebuff_agent-2.1.79.dist-info/licenses/LICENSE,sha256=LZnhgcr8NXVgC4ewcnNjWlYahaIS_KLMxKWDCZkHpQo,1061
221
+ codebuff_agent-2.1.79.dist-info/RECORD,,
jupyter_ext/_version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # This file is auto-generated by Hatchling. As such, do not:
2
2
  # - modify
3
3
  # - track in version control e.g. be sure to add to .gitignore
4
- __version__ = VERSION = '2.1.78'
4
+ __version__ = VERSION = '2.1.79'
@@ -2636,9 +2636,12 @@ def make_codex_transport(
2636
2636
  from urllib.parse import urlencode
2637
2637
 
2638
2638
  from ..pod_identity import (
2639
+ ACCESS_TOKEN_HEADER,
2639
2640
  connect_identity,
2640
2641
  emp_claim_name,
2642
+ has_request_token,
2641
2643
  pod_name,
2644
+ request_claims,
2642
2645
  token_emp_check,
2643
2646
  )
2644
2647
 
@@ -2646,13 +2649,16 @@ def make_codex_transport(
2646
2649
  if pod_identity is None:
2647
2650
  return WebSocketTransport(url, headers, CodexPodIdentityMissing(pod_name()))
2648
2651
  if pod_identity:
2649
- # 접속한 사람이 pod 주인인지 토큰 사번으로 대조한다 (이슈 #617). local 은 신원이 없다
2652
+ # 접속한 사람이 pod 주인인지 요청 헤더 토큰의 사번으로 대조한다 (이슈 #617·#623).
2653
+ # local 은 신원이 없다. 헤더가 오는지만 남긴다 — 토큰 값은 로그에 싣지 않는다
2654
+ if has_request_token():
2655
+ logger.info("pod 주인 대조: %s 헤더 있음", ACCESS_TOKEN_HEADER)
2656
+ else:
2657
+ logger.warning("pod 주인 대조: %s 헤더 없음 — 거부", ACCESS_TOKEN_HEADER)
2650
2658
  result = token_emp_check(pod_identity["emp_no"])
2651
2659
  if result != "match":
2652
- from ..team_access import _read_claims
2653
-
2654
2660
  claim = emp_claim_name()
2655
- token_emp = str(_read_claims().get(claim, "") or "").strip()
2661
+ token_emp = str(request_claims().get(claim, "") or "").strip()
2656
2662
  return WebSocketTransport(
2657
2663
  url,
2658
2664
  headers,
@@ -44,6 +44,7 @@ from .agent.codex_bridge import (
44
44
  )
45
45
  from .handlers.analytics_handler import AnalyticsEventsHandler
46
46
  from .handlers.apm_handler import ApmSpansHandler
47
+ from .pod_identity import bind_request_token
47
48
  from .provider_pii import mask_provider_body
48
49
  from .resource_usage import (
49
50
  classify_resource_tiers,
@@ -1044,6 +1045,7 @@ class ChatMessageHandler(APIHandler):
1044
1045
 
1045
1046
  async def post(self):
1046
1047
  """Send chat message and get response."""
1048
+ bind_request_token(self) # pod 주인 대조는 이 요청의 헤더 토큰으로 (이슈 #623)
1047
1049
  try:
1048
1050
  body = json.loads(self.request.body.decode("utf-8"))
1049
1051
  if _inference_engine() == "langchain":
@@ -1207,6 +1209,7 @@ class ChatStreamHandler(APIHandler):
1207
1209
 
1208
1210
  async def post(self):
1209
1211
  """Send chat message and get streaming response."""
1212
+ bind_request_token(self) # pod 주인 대조는 이 요청의 헤더 토큰으로 (이슈 #623)
1210
1213
  try:
1211
1214
  body = json.loads(self.request.body.decode("utf-8"))
1212
1215
 
@@ -3307,6 +3310,7 @@ class NotebookGenerateHandler(APIHandler):
3307
3310
  """POST /codebuff/notebook/generate — start notebook generation task."""
3308
3311
 
3309
3312
  async def post(self):
3313
+ bind_request_token(self) # pod 주인 대조는 이 요청의 헤더 토큰으로 (이슈 #623)
3310
3314
  try:
3311
3315
  from datetime import datetime
3312
3316
 
@@ -5279,6 +5283,7 @@ class CodexStreamHandler(APIHandler, _CodexSseMixin):
5279
5283
  """POST: codex 서버사이드 엔진으로 턴을 돌리고 SSE 로 중계한다."""
5280
5284
 
5281
5285
  async def post(self):
5286
+ bind_request_token(self) # pod 주인 대조는 이 요청의 헤더 토큰으로 (이슈 #623)
5282
5287
  thread_id = ""
5283
5288
  owned_session = None
5284
5289
  started_ms = apm_ingest.now_ms()
@@ -6018,6 +6023,7 @@ class CodexTestHandler(APIHandler):
6018
6023
  """
6019
6024
 
6020
6025
  async def post(self):
6026
+ bind_request_token(self) # pod 주인 대조는 이 요청의 헤더 토큰으로 (이슈 #623)
6021
6027
  if not codex_allowed():
6022
6028
  self.set_status(403)
6023
6029
  self.write({"ok": False, "detail": "codex 사용 권한이 없습니다."})
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codebuff",
3
- "version": "2.1.78",
3
+ "version": "2.1.79",
4
4
  "description": "Codebuff JupyterLab Extension - Thin client for Agent Server",
5
5
  "keywords": [
6
6
  "jupyter",
@@ -146,7 +146,7 @@
146
146
  }
147
147
  },
148
148
  "_build": {
149
- "load": "static/remoteEntry.354cc30edfc857656ed2.js",
149
+ "load": "static/remoteEntry.85fc9c6c88a0f6b87109.js",
150
150
  "extension": "./extension",
151
151
  "style": "./style"
152
152
  }
@@ -1 +1 @@
1
- var _JUPYTERLAB;(()=>{"use strict";var e={8384(e,t,r){const o={"./index":()=>Promise.all([r.e(666),r.e(432),r.e(351),r.e(345),r.e(586),r.e(195),r.e(539)]).then(()=>()=>r(5539)),"./extension":()=>Promise.all([r.e(666),r.e(432),r.e(351),r.e(345),r.e(586),r.e(195),r.e(539)]).then(()=>()=>r(5539)),"./style":()=>r.e(579).then(()=>()=>r(6579))},n=(e,t)=>(r.R=t,t=r.o(o,e)?o[e]():Promise.resolve().then(()=>{throw new Error('Module "'+e+'" does not exist in container.')}),r.R=void 0,t),a=(e,t)=>{if(!r.S)return;const o="default",n=r.S[o];if(n&&n!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return r.S[o]=e,r.I(o,t)};r.d(t,{get:()=>n,init:()=>a})}};const t={};function r(o){const n=t[o];if(void 0!==n)return n.exports;const a=t[o]={id:o,exports:{}};return e[o](a,a.exports,r),a.exports}r.m=e,r.c=t,r.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.cw=e=>{var t;return()=>{if(e){var r=e;e=0,t={exports:{}},r.call(t.exports,t,t.exports)}return t.exports}},(()=>{const e=Object.getPrototypeOf;let t;r.t=function(o,n){if(1&n&&(o=this(o)),8&n)return o;if("object"==typeof o&&o){if(4&n&&o.__esModule)return o;if(16&n&&"function"==typeof o.then)return o}const a=Object.create(null);r.r(a);const l={};t=t||[null,e({}),e([]),e(e)];for(var f=2&n&&o;("object"==typeof f||"function"==typeof f)&&!~t.indexOf(f);f=e(f))Object.getOwnPropertyNames(f).forEach(e=>l[e]=()=>o[e]);return l.default=()=>o,r.d(a,l),a}})(),r.d=(e,t)=>{if(Array.isArray(t))for(var o=0;o<t.length;){var n=t[o++],a=t[o++],l=0===a?{enumerable:!0,value:t[o++]}:{enumerable:!0,get:a};r.o(e,n)||Object.defineProperty(e,n,l)}else for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>e+"."+{49:"d326f554b6f9ccde6580",58:"eb7cc679f7535cc8a2f1",68:"26b6f59c8454adb17f20",166:"386ff9b2c37ac865fdee",351:"e796b81287b53635cfa4",353:"581bd1cb00746399b62e",367:"575f9621b63c9a641aa9",421:"11dac223a2c2da1b09f5",432:"a749eb54fdc324b18cfa",439:"ba5b5ef70ec6de214b8c",481:"cc2dec9fa869d66f1407",487:"0796e931d6e651482c14",539:"3024c7f70ce4db9b6428",579:"3bc73eef11d3e0ce5d0c",666:"d9bfdb23f98489d0a188",677:"d266c39dbed33bc388b3",868:"5cfe7e1a348ec5af1b8c"}[e]+".js?v="+{49:"d326f554b6f9ccde6580",58:"eb7cc679f7535cc8a2f1",68:"26b6f59c8454adb17f20",166:"386ff9b2c37ac865fdee",351:"e796b81287b53635cfa4",353:"581bd1cb00746399b62e",367:"575f9621b63c9a641aa9",421:"11dac223a2c2da1b09f5",432:"a749eb54fdc324b18cfa",439:"ba5b5ef70ec6de214b8c",481:"cc2dec9fa869d66f1407",487:"0796e931d6e651482c14",539:"3024c7f70ce4db9b6428",579:"3bc73eef11d3e0ce5d0c",666:"d9bfdb23f98489d0a188",677:"d266c39dbed33bc388b3",868:"5cfe7e1a348ec5af1b8c"}[e],r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="codebuff:";r.l=(o,n,a,l)=>{if(e[o])return void e[o].push(n);let f,i;if(void 0!==a){const e=document.getElementsByTagName("script");for(var c=0;c<e.length;c++){const r=e[c];if(r.getAttribute("src")==o||r.getAttribute("data-webpack")==t+a){f=r;break}}}f||(i=!0,f=document.createElement("script"),f.charset="utf-8",r.nc&&f.setAttribute("nonce",r.nc),f.setAttribute("data-webpack",t+a),f.src=o),e[o]=[n];const d=(t,r)=>{f.onerror=f.onload=null,clearTimeout(u);const n=e[o];if(delete e[o],f.parentNode?.removeChild(f),n?.forEach(e=>e(r)),t)return t(r)},u=setTimeout(d.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=d.bind(null,f.onerror),f.onload=d.bind(null,f.onload),i&&document.head.appendChild(f)}})(),r.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.dn=e=>{var t=Object.getOwnPropertyDescriptor(e,"name");(!t||!t.writable&&t.configurable)&&Object.defineProperty(e,"name",{value:"default",configurable:!0})},(()=>{r.S={};const e={},t={};r.I=(o,n)=>{n||(n=[]);let a=t[o];if(a||(a=t[o]={}),n.indexOf(a)>=0)return;if(n.push(a),e[o])return e[o];r.o(r.S,o)||(r.S[o]={});const l=r.S[o],f="codebuff",i=(e,t,r,o)=>{const n=l[e]=l[e]||{},a=n[t];(!a||!a.loaded&&(!o!=!a.eager?o:f>a.from))&&(n[t]={get:r,from:f,eager:!!o})},c=[];return"default"===o&&(i("@codemirror/commands","6.8.1",()=>Promise.all([r.e(353),r.e(708),r.e(11),r.e(195)]).then(()=>()=>r(4353))),i("@emotion/react","11.14.0",()=>Promise.all([r.e(666),r.e(345),r.e(677)]).then(()=>()=>r(7677))),i("@emotion/styled","11.14.1",()=>Promise.all([r.e(345),r.e(744),r.e(487)]).then(()=>()=>r(1868))),i("@lezer/java","1.1.4",()=>Promise.all([r.e(421),r.e(367),r.e(708),r.e(839)]).then(()=>()=>r(7367))),i("@lezer/javascript","1.5.5",()=>Promise.all([r.e(421),r.e(166),r.e(708),r.e(839)]).then(()=>()=>r(166))),i("@lezer/python","1.1.19",()=>Promise.all([r.e(421),r.e(49),r.e(708),r.e(839)]).then(()=>()=>r(49))),i("@mui/material","5.18.0",()=>Promise.all([r.e(666),r.e(68),r.e(432),r.e(345),r.e(586)]).then(()=>()=>r(3068))),i("codebuff","2.1.78",()=>Promise.all([r.e(666),r.e(432),r.e(351),r.e(345),r.e(586),r.e(195),r.e(539)]).then(()=>()=>r(5539))),i("diff","0",()=>r.e(481).then(()=>()=>r(7481)))),e[o]=c.length?Promise.all(c).then(()=>e[o]=1):1}})(),(()=>{let e;r.g.importScripts&&(e=r.g.location+"");const t=r.g.document;if(!e&&t&&("SCRIPT"===t.currentScript?.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){const r=t.getElementsByTagName("script");if(r.length){let t=r.length-1;for(;t>-1&&(!e||!/^https?:/.test(e));)e=r[t--].src}}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:|[?#].*$/g,"").replace(/\/[^/]+$/,"/"),r.p=e})(),(()=>{var e=e=>{var t=e=>e.split(".").map(e=>+e==e?+e:e),r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),o=r[1]?t(r[1]):[];return r[2]&&(o.length++,o.push.apply(o,t(r[2]))),r[3]&&(o.push([]),o.push.apply(o,t(r[3]))),o},t=(t,r)=>{t=e(t),r=e(r);for(var o=0;;){if(o>=t.length)return o<r.length&&"u"!=(typeof r[o])[0];var n=t[o],a=(typeof n)[0];if(o>=r.length)return"u"==a;var l=r[o],f=(typeof l)[0];if(a!=f)return"o"==a&&"n"==f||"s"==f||"u"==a;if("o"!=a&&"u"!=a&&n!=l)return n<l;o++}},o=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 n=1,a=1;a<e.length;a++)n--,r+="u"==(typeof(f=e[a]))[0]?"-":(n>0?".":"")+(n=2,f);return r}var l=[];for(a=1;a<e.length;a++){var f=e[a];l.push(0===f?"not("+i()+")":1===f?"("+i()+" || "+i()+")":2===f?l.pop()+" "+l.pop():o(f))}return i();function i(){return l.pop().replace(/^\((.+)\)$/,"$1")}},n=(t,r)=>{if(0 in t){r=e(r);var o=t[0],a=o<0;a&&(o=-o-1);for(var l=0,f=1,i=!0;;f++,l++){var c,d,u=f<t.length?(typeof t[f])[0]:"";if(l>=r.length||"o"==(d=(typeof(c=r[l]))[0]))return!i||("u"==u?f>o&&!a:""==u!=a);if("u"==d){if(!i||"u"!=u)return!1}else if(i)if(u==d)if(f<=o){if(c!=t[f])return!1}else{if(a?c>t[f]:c<t[f])return!1;c!=t[f]&&(i=!1)}else if("s"!=u&&"n"!=u){if(a||f<=o)return!1;i=!1,f--}else{if(f<=o||d<u!=a)return!1;i=!1}else"s"!=u&&"n"!=u&&(i=!1,f--)}}var s=[],b=s.pop.bind(s);for(l=1;l<t.length;l++){var p=t[l];s.push(1==p?b()|b():2==p?b()&b():p?n(p,r):!b())}return!!b()};const a=(e,t)=>e&&r.o(e,t),l=e=>(e.loaded=1,e.get()),f=e=>Object.keys(e).reduce((t,r)=>(e[r].eager&&(t[r]=e[r]),t),{}),i=e=>{throw new Error(e)},c=e=>function(t,o,n,a,l){const f=r.I(t);return f?.then&&!n?f.then(e.bind(e,t,r.S[t],o,!1,a,l)):e(t,r.S[t],o,n,a,l)},d=(e,t,r)=>r?r():((e,t)=>i("Shared module "+t+" doesn't exist in shared scope "+e))(e,t),u=c((e,r,c,u,s,b)=>{if(!a(r,c))return d(e,c,b);const p=((e,r,o,a)=>{const l=a?f(e[r]):e[r];return(r=Object.keys(l).reduce((e,r)=>!n(o,r)||e&&!t(e,r)?e:r,0))&&l[r]})(r,c,s,u);return p?l(p):b?b():void i(((e,t,r,n,a)=>{const l=e[r];return"No satisfying version ("+o(n)+")"+(a?" for eager consumption":"")+" of shared module "+r+" found in shared scope "+t+".\nAvailable versions: "+Object.keys(l).map(e=>e+" from "+l[e].from).join(", ")})(r,e,c,s,u))}),s=c((e,r,i,c,u,s)=>{if(!a(r,i))return d(e,i,s);const b=((e,r,o)=>{const n=o?f(e[r]):e[r];return Object.keys(n).reduce((e,r)=>!e||!n[e].loaded&&t(e,r)?r:e,0)})(r,i,c);return n(u,b)||(p=((e,t,r,n)=>"Unsatisfied version "+r+" from "+(r&&e[t][r].from)+" of shared singleton module "+t+" (required "+o(n)+")")(r,i,b,u),"undefined"!=typeof console&&console.warn&&console.warn(p)),l(r[i][b]);var p}),b={},p={3345:()=>s("default","react",!1,[1,18,2,0]),3157:()=>u("default","@emotion/react",!1,[1,11,4,1],()=>r.e(58).then(()=>()=>r(7677))),7628:()=>s("default","react-dom",!1,[1,18,2,0]),9443:()=>u("default","@emotion/styled",!1,[1,11,3,0],()=>Promise.all([r.e(744),r.e(868)]).then(()=>()=>r(1868))),2576:()=>s("default","@codemirror/state",!1,[1,6,2,0]),277:()=>s("default","@jupyterlab/cells",!1,[1,4,5,1]),1247:()=>s("default","@lumino/widgets",!1,[1,2,3,1,,"alpha",1]),1409:()=>s("default","@jupyterlab/ui-components",!1,[1,4,5,1]),1805:()=>s("default","@jupyterlab/console",!1,[1,4,5,1]),1907:()=>s("default","@jupyterlab/services",!1,[1,7,5,1]),2780:()=>s("default","@jupyterlab/filebrowser",!1,[1,4,5,1]),3118:()=>s("default","@jupyterlab/rendermime",!1,[1,4,5,1]),3366:()=>s("default","@jupyterlab/launcher",!1,[1,4,5,1]),4849:()=>u("default","diff",!1,[1,9,0,0],()=>r.e(481).then(()=>()=>r(7481))),5584:()=>s("default","@jupyterlab/application",!1,[1,4,5,1]),5690:()=>s("default","@jupyterlab/terminal",!1,[1,4,5,1]),5705:()=>u("default","@lezer/javascript",!1,[1,1,5,5],()=>Promise.all([r.e(421),r.e(166),r.e(708),r.e(839)]).then(()=>()=>r(166))),6580:()=>u("default","@lezer/python",!1,[1,1,1,19],()=>Promise.all([r.e(421),r.e(49),r.e(708),r.e(839)]).then(()=>()=>r(49))),6661:()=>u("default","@mui/material",!1,[1,5,14,0],()=>r.e(68).then(()=>()=>r(3068))),6822:()=>u("default","@codemirror/commands",!1,[4,6,8,1],()=>Promise.all([r.e(353),r.e(708),r.e(11)]).then(()=>()=>r(4353))),7125:()=>s("default","@jupyterlab/docmanager",!1,[1,4,5,1]),7292:()=>s("default","@jupyterlab/coreutils",!1,[1,6,5,1]),8389:()=>s("default","@jupyterlab/notebook",!1,[1,4,5,1]),8454:()=>u("default","@lezer/java",!1,[1,1,1,4],()=>Promise.all([r.e(421),r.e(367),r.e(708),r.e(839)]).then(()=>()=>r(7367))),9827:()=>s("default","@jupyterlab/apputils",!1,[1,4,6,1]),3708:()=>s("default","@lezer/common",!1,[1,1,0,0]),2084:()=>s("default","@codemirror/language",!1,[1,6,0,0]),5024:()=>s("default","@codemirror/view",!1,[1,6,9,6]),2744:()=>u("default","@emotion/react",!1,[1,11,0,0,,"rc",0],()=>Promise.all([r.e(666),r.e(439)]).then(()=>()=>r(7677))),1839:()=>s("default","@lezer/highlight",!1,[1,1,0,0])},h={11:[2084,5024],195:[2576],345:[3345],539:[277,1247,1409,1805,1907,2780,3118,3366,4849,5584,5690,5705,6580,6661,6822,7125,7292,8389,8454,9827],586:[3157,7628,9443],708:[3708],744:[2744],839:[1839]},m={};r.f.consumes=(e,t)=>{r.o(h,e)&&h[e].forEach(e=>{if(r.o(b,e))return t.push(b[e]);if(!m[e]){const o=t=>{b[e]=0,r.m[e]=o=>{delete r.c[e],o.exports=t()}};m[e]=!0;const n=t=>{delete b[e],r.m[e]=o=>{throw delete r.c[e],t}};try{const r=p[e]();r.then?t.push(b[e]=r.then(o).catch(n)):o(r)}catch(e){n(e)}}})}})(),(()=>{r.b="undefined"!=typeof document&&document.baseURI||self.location.href;const e={679:0};r.f.j=(t,o)=>{let n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)o.push(n[2]);else if(/^(11|195|345|586|708|744|839)$/.test(t))e[t]=0;else{const a=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=a);const l=new Error,f=o=>{if(r.o(e,t)&&(n=e[t],0!==n&&(e[t]=void 0),n)){const e=o&&("load"===o.type?"missing":o.type),r=o&&o.target&&o.target.src;l.message="Loading chunk "+t+" failed.\n("+e+": "+r+")",l.name="ChunkLoadError",l.type=e,l.request=r,l.event=o,n[1](l)}};r.l(r.p+r.u(t),f,"chunk-"+t,t)}};const t=(t,o)=>{let[n,a,l]=o;var f,i,c=0;if(n.some(t=>0!==e[t])){for(f in a)r.o(a,f)&&(r.m[f]=a[f]);l&&l(r)}for(t&&t(o);c<n.length;c++)i=n[c],r.o(e,i)&&e[i]&&e[i][0](),e[i]=0},o=self.webpackChunkcodebuff=self.webpackChunkcodebuff||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})(),r.nc=void 0;let o=r(8384);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB).codebuff=o})();
1
+ var _JUPYTERLAB;(()=>{"use strict";var e={8384(e,t,r){const o={"./index":()=>Promise.all([r.e(666),r.e(432),r.e(351),r.e(345),r.e(586),r.e(195),r.e(539)]).then(()=>()=>r(5539)),"./extension":()=>Promise.all([r.e(666),r.e(432),r.e(351),r.e(345),r.e(586),r.e(195),r.e(539)]).then(()=>()=>r(5539)),"./style":()=>r.e(579).then(()=>()=>r(6579))},n=(e,t)=>(r.R=t,t=r.o(o,e)?o[e]():Promise.resolve().then(()=>{throw new Error('Module "'+e+'" does not exist in container.')}),r.R=void 0,t),a=(e,t)=>{if(!r.S)return;const o="default",n=r.S[o];if(n&&n!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return r.S[o]=e,r.I(o,t)};r.d(t,{get:()=>n,init:()=>a})}};const t={};function r(o){const n=t[o];if(void 0!==n)return n.exports;const a=t[o]={id:o,exports:{}};return e[o](a,a.exports,r),a.exports}r.m=e,r.c=t,r.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.cw=e=>{var t;return()=>{if(e){var r=e;e=0,t={exports:{}},r.call(t.exports,t,t.exports)}return t.exports}},(()=>{const e=Object.getPrototypeOf;let t;r.t=function(o,n){if(1&n&&(o=this(o)),8&n)return o;if("object"==typeof o&&o){if(4&n&&o.__esModule)return o;if(16&n&&"function"==typeof o.then)return o}const a=Object.create(null);r.r(a);const l={};t=t||[null,e({}),e([]),e(e)];for(var f=2&n&&o;("object"==typeof f||"function"==typeof f)&&!~t.indexOf(f);f=e(f))Object.getOwnPropertyNames(f).forEach(e=>l[e]=()=>o[e]);return l.default=()=>o,r.d(a,l),a}})(),r.d=(e,t)=>{if(Array.isArray(t))for(var o=0;o<t.length;){var n=t[o++],a=t[o++],l=0===a?{enumerable:!0,value:t[o++]}:{enumerable:!0,get:a};r.o(e,n)||Object.defineProperty(e,n,l)}else for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>e+"."+{49:"d326f554b6f9ccde6580",58:"eb7cc679f7535cc8a2f1",68:"26b6f59c8454adb17f20",166:"386ff9b2c37ac865fdee",351:"e796b81287b53635cfa4",353:"581bd1cb00746399b62e",367:"575f9621b63c9a641aa9",421:"11dac223a2c2da1b09f5",432:"a749eb54fdc324b18cfa",439:"ba5b5ef70ec6de214b8c",481:"cc2dec9fa869d66f1407",487:"0796e931d6e651482c14",539:"3024c7f70ce4db9b6428",579:"3bc73eef11d3e0ce5d0c",666:"d9bfdb23f98489d0a188",677:"d266c39dbed33bc388b3",868:"5cfe7e1a348ec5af1b8c"}[e]+".js?v="+{49:"d326f554b6f9ccde6580",58:"eb7cc679f7535cc8a2f1",68:"26b6f59c8454adb17f20",166:"386ff9b2c37ac865fdee",351:"e796b81287b53635cfa4",353:"581bd1cb00746399b62e",367:"575f9621b63c9a641aa9",421:"11dac223a2c2da1b09f5",432:"a749eb54fdc324b18cfa",439:"ba5b5ef70ec6de214b8c",481:"cc2dec9fa869d66f1407",487:"0796e931d6e651482c14",539:"3024c7f70ce4db9b6428",579:"3bc73eef11d3e0ce5d0c",666:"d9bfdb23f98489d0a188",677:"d266c39dbed33bc388b3",868:"5cfe7e1a348ec5af1b8c"}[e],r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="codebuff:";r.l=(o,n,a,l)=>{if(e[o])return void e[o].push(n);let f,i;if(void 0!==a){const e=document.getElementsByTagName("script");for(var c=0;c<e.length;c++){const r=e[c];if(r.getAttribute("src")==o||r.getAttribute("data-webpack")==t+a){f=r;break}}}f||(i=!0,f=document.createElement("script"),f.charset="utf-8",r.nc&&f.setAttribute("nonce",r.nc),f.setAttribute("data-webpack",t+a),f.src=o),e[o]=[n];const d=(t,r)=>{f.onerror=f.onload=null,clearTimeout(u);const n=e[o];if(delete e[o],f.parentNode?.removeChild(f),n?.forEach(e=>e(r)),t)return t(r)},u=setTimeout(d.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=d.bind(null,f.onerror),f.onload=d.bind(null,f.onload),i&&document.head.appendChild(f)}})(),r.r=e=>{Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.dn=e=>{var t=Object.getOwnPropertyDescriptor(e,"name");(!t||!t.writable&&t.configurable)&&Object.defineProperty(e,"name",{value:"default",configurable:!0})},(()=>{r.S={};const e={},t={};r.I=(o,n)=>{n||(n=[]);let a=t[o];if(a||(a=t[o]={}),n.indexOf(a)>=0)return;if(n.push(a),e[o])return e[o];r.o(r.S,o)||(r.S[o]={});const l=r.S[o],f="codebuff",i=(e,t,r,o)=>{const n=l[e]=l[e]||{},a=n[t];(!a||!a.loaded&&(!o!=!a.eager?o:f>a.from))&&(n[t]={get:r,from:f,eager:!!o})},c=[];return"default"===o&&(i("@codemirror/commands","6.8.1",()=>Promise.all([r.e(353),r.e(708),r.e(11),r.e(195)]).then(()=>()=>r(4353))),i("@emotion/react","11.14.0",()=>Promise.all([r.e(666),r.e(345),r.e(677)]).then(()=>()=>r(7677))),i("@emotion/styled","11.14.1",()=>Promise.all([r.e(345),r.e(744),r.e(487)]).then(()=>()=>r(1868))),i("@lezer/java","1.1.4",()=>Promise.all([r.e(421),r.e(367),r.e(708),r.e(839)]).then(()=>()=>r(7367))),i("@lezer/javascript","1.5.5",()=>Promise.all([r.e(421),r.e(166),r.e(708),r.e(839)]).then(()=>()=>r(166))),i("@lezer/python","1.1.19",()=>Promise.all([r.e(421),r.e(49),r.e(708),r.e(839)]).then(()=>()=>r(49))),i("@mui/material","5.18.0",()=>Promise.all([r.e(666),r.e(68),r.e(432),r.e(345),r.e(586)]).then(()=>()=>r(3068))),i("codebuff","2.1.79",()=>Promise.all([r.e(666),r.e(432),r.e(351),r.e(345),r.e(586),r.e(195),r.e(539)]).then(()=>()=>r(5539))),i("diff","0",()=>r.e(481).then(()=>()=>r(7481)))),e[o]=c.length?Promise.all(c).then(()=>e[o]=1):1}})(),(()=>{let e;r.g.importScripts&&(e=r.g.location+"");const t=r.g.document;if(!e&&t&&("SCRIPT"===t.currentScript?.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){const r=t.getElementsByTagName("script");if(r.length){let t=r.length-1;for(;t>-1&&(!e||!/^https?:/.test(e));)e=r[t--].src}}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:|[?#].*$/g,"").replace(/\/[^/]+$/,"/"),r.p=e})(),(()=>{var e=e=>{var t=e=>e.split(".").map(e=>+e==e?+e:e),r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),o=r[1]?t(r[1]):[];return r[2]&&(o.length++,o.push.apply(o,t(r[2]))),r[3]&&(o.push([]),o.push.apply(o,t(r[3]))),o},t=(t,r)=>{t=e(t),r=e(r);for(var o=0;;){if(o>=t.length)return o<r.length&&"u"!=(typeof r[o])[0];var n=t[o],a=(typeof n)[0];if(o>=r.length)return"u"==a;var l=r[o],f=(typeof l)[0];if(a!=f)return"o"==a&&"n"==f||"s"==f||"u"==a;if("o"!=a&&"u"!=a&&n!=l)return n<l;o++}},o=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 n=1,a=1;a<e.length;a++)n--,r+="u"==(typeof(f=e[a]))[0]?"-":(n>0?".":"")+(n=2,f);return r}var l=[];for(a=1;a<e.length;a++){var f=e[a];l.push(0===f?"not("+i()+")":1===f?"("+i()+" || "+i()+")":2===f?l.pop()+" "+l.pop():o(f))}return i();function i(){return l.pop().replace(/^\((.+)\)$/,"$1")}},n=(t,r)=>{if(0 in t){r=e(r);var o=t[0],a=o<0;a&&(o=-o-1);for(var l=0,f=1,i=!0;;f++,l++){var c,d,u=f<t.length?(typeof t[f])[0]:"";if(l>=r.length||"o"==(d=(typeof(c=r[l]))[0]))return!i||("u"==u?f>o&&!a:""==u!=a);if("u"==d){if(!i||"u"!=u)return!1}else if(i)if(u==d)if(f<=o){if(c!=t[f])return!1}else{if(a?c>t[f]:c<t[f])return!1;c!=t[f]&&(i=!1)}else if("s"!=u&&"n"!=u){if(a||f<=o)return!1;i=!1,f--}else{if(f<=o||d<u!=a)return!1;i=!1}else"s"!=u&&"n"!=u&&(i=!1,f--)}}var s=[],b=s.pop.bind(s);for(l=1;l<t.length;l++){var p=t[l];s.push(1==p?b()|b():2==p?b()&b():p?n(p,r):!b())}return!!b()};const a=(e,t)=>e&&r.o(e,t),l=e=>(e.loaded=1,e.get()),f=e=>Object.keys(e).reduce((t,r)=>(e[r].eager&&(t[r]=e[r]),t),{}),i=e=>{throw new Error(e)},c=e=>function(t,o,n,a,l){const f=r.I(t);return f?.then&&!n?f.then(e.bind(e,t,r.S[t],o,!1,a,l)):e(t,r.S[t],o,n,a,l)},d=(e,t,r)=>r?r():((e,t)=>i("Shared module "+t+" doesn't exist in shared scope "+e))(e,t),u=c((e,r,c,u,s,b)=>{if(!a(r,c))return d(e,c,b);const p=((e,r,o,a)=>{const l=a?f(e[r]):e[r];return(r=Object.keys(l).reduce((e,r)=>!n(o,r)||e&&!t(e,r)?e:r,0))&&l[r]})(r,c,s,u);return p?l(p):b?b():void i(((e,t,r,n,a)=>{const l=e[r];return"No satisfying version ("+o(n)+")"+(a?" for eager consumption":"")+" of shared module "+r+" found in shared scope "+t+".\nAvailable versions: "+Object.keys(l).map(e=>e+" from "+l[e].from).join(", ")})(r,e,c,s,u))}),s=c((e,r,i,c,u,s)=>{if(!a(r,i))return d(e,i,s);const b=((e,r,o)=>{const n=o?f(e[r]):e[r];return Object.keys(n).reduce((e,r)=>!e||!n[e].loaded&&t(e,r)?r:e,0)})(r,i,c);return n(u,b)||(p=((e,t,r,n)=>"Unsatisfied version "+r+" from "+(r&&e[t][r].from)+" of shared singleton module "+t+" (required "+o(n)+")")(r,i,b,u),"undefined"!=typeof console&&console.warn&&console.warn(p)),l(r[i][b]);var p}),b={},p={3345:()=>s("default","react",!1,[1,18,2,0]),3157:()=>u("default","@emotion/react",!1,[1,11,4,1],()=>r.e(58).then(()=>()=>r(7677))),7628:()=>s("default","react-dom",!1,[1,18,2,0]),9443:()=>u("default","@emotion/styled",!1,[1,11,3,0],()=>Promise.all([r.e(744),r.e(868)]).then(()=>()=>r(1868))),2576:()=>s("default","@codemirror/state",!1,[1,6,2,0]),277:()=>s("default","@jupyterlab/cells",!1,[1,4,5,1]),1247:()=>s("default","@lumino/widgets",!1,[1,2,3,1,,"alpha",1]),1409:()=>s("default","@jupyterlab/ui-components",!1,[1,4,5,1]),1805:()=>s("default","@jupyterlab/console",!1,[1,4,5,1]),1907:()=>s("default","@jupyterlab/services",!1,[1,7,5,1]),2780:()=>s("default","@jupyterlab/filebrowser",!1,[1,4,5,1]),3118:()=>s("default","@jupyterlab/rendermime",!1,[1,4,5,1]),3366:()=>s("default","@jupyterlab/launcher",!1,[1,4,5,1]),4849:()=>u("default","diff",!1,[1,9,0,0],()=>r.e(481).then(()=>()=>r(7481))),5584:()=>s("default","@jupyterlab/application",!1,[1,4,5,1]),5690:()=>s("default","@jupyterlab/terminal",!1,[1,4,5,1]),5705:()=>u("default","@lezer/javascript",!1,[1,1,5,5],()=>Promise.all([r.e(421),r.e(166),r.e(708),r.e(839)]).then(()=>()=>r(166))),6580:()=>u("default","@lezer/python",!1,[1,1,1,19],()=>Promise.all([r.e(421),r.e(49),r.e(708),r.e(839)]).then(()=>()=>r(49))),6661:()=>u("default","@mui/material",!1,[1,5,14,0],()=>r.e(68).then(()=>()=>r(3068))),6822:()=>u("default","@codemirror/commands",!1,[4,6,8,1],()=>Promise.all([r.e(353),r.e(708),r.e(11)]).then(()=>()=>r(4353))),7125:()=>s("default","@jupyterlab/docmanager",!1,[1,4,5,1]),7292:()=>s("default","@jupyterlab/coreutils",!1,[1,6,5,1]),8389:()=>s("default","@jupyterlab/notebook",!1,[1,4,5,1]),8454:()=>u("default","@lezer/java",!1,[1,1,1,4],()=>Promise.all([r.e(421),r.e(367),r.e(708),r.e(839)]).then(()=>()=>r(7367))),9827:()=>s("default","@jupyterlab/apputils",!1,[1,4,6,1]),3708:()=>s("default","@lezer/common",!1,[1,1,0,0]),2084:()=>s("default","@codemirror/language",!1,[1,6,0,0]),5024:()=>s("default","@codemirror/view",!1,[1,6,9,6]),2744:()=>u("default","@emotion/react",!1,[1,11,0,0,,"rc",0],()=>Promise.all([r.e(666),r.e(439)]).then(()=>()=>r(7677))),1839:()=>s("default","@lezer/highlight",!1,[1,1,0,0])},h={11:[2084,5024],195:[2576],345:[3345],539:[277,1247,1409,1805,1907,2780,3118,3366,4849,5584,5690,5705,6580,6661,6822,7125,7292,8389,8454,9827],586:[3157,7628,9443],708:[3708],744:[2744],839:[1839]},m={};r.f.consumes=(e,t)=>{r.o(h,e)&&h[e].forEach(e=>{if(r.o(b,e))return t.push(b[e]);if(!m[e]){const o=t=>{b[e]=0,r.m[e]=o=>{delete r.c[e],o.exports=t()}};m[e]=!0;const n=t=>{delete b[e],r.m[e]=o=>{throw delete r.c[e],t}};try{const r=p[e]();r.then?t.push(b[e]=r.then(o).catch(n)):o(r)}catch(e){n(e)}}})}})(),(()=>{r.b="undefined"!=typeof document&&document.baseURI||self.location.href;const e={679:0};r.f.j=(t,o)=>{let n=r.o(e,t)?e[t]:void 0;if(0!==n)if(n)o.push(n[2]);else if(/^(11|195|345|586|708|744|839)$/.test(t))e[t]=0;else{const a=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=a);const l=new Error,f=o=>{if(r.o(e,t)&&(n=e[t],0!==n&&(e[t]=void 0),n)){const e=o&&("load"===o.type?"missing":o.type),r=o&&o.target&&o.target.src;l.message="Loading chunk "+t+" failed.\n("+e+": "+r+")",l.name="ChunkLoadError",l.type=e,l.request=r,l.event=o,n[1](l)}};r.l(r.p+r.u(t),f,"chunk-"+t,t)}};const t=(t,o)=>{let[n,a,l]=o;var f,i,c=0;if(n.some(t=>0!==e[t])){for(f in a)r.o(a,f)&&(r.m[f]=a[f]);l&&l(r)}for(t&&t(o);c<n.length;c++)i=n[c],r.o(e,i)&&e[i]&&e[i][0](),e[i]=0},o=self.webpackChunkcodebuff=self.webpackChunkcodebuff||[];o.forEach(t.bind(null,0)),o.push=t.bind(null,o.push.bind(o))})(),r.nc=void 0;let o=r(8384);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB).codebuff=o})();
@@ -11,7 +11,9 @@ pod 이름은 `jupyter` + `x` + 사번6 + 난수8 + `p` + 권한3 + 프로젝트
11
11
 
12
12
  pod 이름의 사번은 접속한 사람의 키클락 토큰 사번과도 대조한다(이슈 #617) — 남의 pod 에 붙어
13
13
  그 사람의 전용 role 로 도구를 돌리는 길을 막는다. 사번 클레임은 `preferred_username` 이다
14
- (centri 포털이 같은 토큰을 그렇게 읽는다).
14
+ (centri 포털이 같은 토큰을 그렇게 읽는다). 토큰은 pod 환경변수(`KEYCLOAK_ID_TOKEN`)가 아니라
15
+ **브라우저 요청의 `X-Auth-Request-Access-Token` 헤더**다(이슈 #623) — 인증 프록시가 접속한 사람의
16
+ 토큰을 요청마다 붙인다. 환경변수 토큰은 pod 주인의 것이고, 개발계 값은 디코드되지도 않았다.
15
17
  """
16
18
 
17
19
  from __future__ import annotations
@@ -19,7 +21,8 @@ from __future__ import annotations
19
21
  import os
20
22
  import re
21
23
  import socket
22
- from typing import Dict, Optional
24
+ from contextvars import ContextVar
25
+ from typing import Any, Dict, Optional
23
26
 
24
27
  _POD_NAME = re.compile(
25
28
  r"jupyterx(?P<emp_no>[0-9a-z]{6})[0-9a-z]{8}p(?P<perm>[0-9a-z]{3})(?P<prj_code>[0-9a-z]{6})"
@@ -61,12 +64,35 @@ def compare_emp_no(emp_no: str, claims: dict, claim_name: str) -> str:
61
64
  return "match" if token_emp == _norm(emp_no) else "mismatch"
62
65
 
63
66
 
64
- def token_emp_check(emp_no: str) -> str:
65
- """지금 pod 의 `KEYCLOAK_ID_TOKEN` 으로 `compare_emp_no` 를 돌린다."""
66
- from .team_access import _read_claims
67
+ #: 인증 프록시가 요청마다 붙이는 접속자 토큰 헤더 (이슈 #623, 담당자 안내 2026-10-21)
68
+ ACCESS_TOKEN_HEADER = "X-Auth-Request-Access-Token"
69
+
70
+ # 지금 요청의 접속자 토큰. codex 연결을 여는 핸들러가 요청 머리에서 채운다 — 그 요청이 띄운
71
+ # 태스크(노트북 생성)도 값을 물려받는다. 요청마다 새 컨텍스트라 다른 요청의 값이 남지 않는다
72
+ _request_token: ContextVar[str] = ContextVar("codebuff_request_token", default="")
73
+
74
+
75
+ def bind_request_token(handler: Any) -> None:
76
+ """핸들러의 요청 머리에서 `ACCESS_TOKEN_HEADER` 를 읽어 둔다. 없으면 빈 값(=거부)."""
77
+ headers = getattr(handler.request, "headers", None) or {}
78
+ _request_token.set(headers.get(ACCESS_TOKEN_HEADER, "") or "")
79
+
80
+
81
+ def has_request_token() -> bool:
82
+ return bool(_request_token.get())
67
83
 
84
+
85
+ def request_claims() -> dict:
86
+ """지금 요청 토큰의 payload. 헤더가 없거나 깨졌으면 빈 dict."""
87
+ from .team_access import decode_claims
88
+
89
+ return decode_claims(_request_token.get())
90
+
91
+
92
+ def token_emp_check(emp_no: str) -> str:
93
+ """지금 요청의 `X-Auth-Request-Access-Token` 으로 `compare_emp_no` 를 돌린다."""
68
94
  claim = emp_claim_name()
69
- return compare_emp_no(emp_no, _read_claims(), claim)
95
+ return compare_emp_no(emp_no, request_claims(), claim)
70
96
 
71
97
 
72
98
  def pod_name() -> str:
@@ -33,7 +33,12 @@ _ALWAYS_CODEX_USERS = ("453180",)
33
33
 
34
34
  def _read_claims() -> dict:
35
35
  """`KEYCLOAK_ID_TOKEN` 의 payload. 토큰이 없거나 깨졌으면 빈 dict."""
36
- parts = os.environ.get("KEYCLOAK_ID_TOKEN", "").split(".")
36
+ return decode_claims(os.environ.get("KEYCLOAK_ID_TOKEN", ""))
37
+
38
+
39
+ def decode_claims(token: str) -> dict:
40
+ """JWT 의 payload(`.` 으로 나눈 두 번째 조각). 토큰이 없거나 깨졌으면 빈 dict."""
41
+ parts = (token or "").split(".")
37
42
  if len(parts) != 3:
38
43
  return {}
39
44
  try: