codebind 0.5.0__tar.gz → 0.5.2__tar.gz
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.
- {codebind-0.5.0 → codebind-0.5.2}/PKG-INFO +2 -2
- {codebind-0.5.0 → codebind-0.5.2}/README.md +1 -1
- {codebind-0.5.0 → codebind-0.5.2}/data/share/jupyter/labextensions/codebind-jupyterlab/package.json +2 -2
- codebind-0.5.2/data/share/jupyter/labextensions/codebind-jupyterlab/static/590.d0579d950c2c5846.js +1 -0
- codebind-0.5.0/data/share/jupyter/labextensions/codebind-jupyterlab/static/remoteEntry.bcc512bba6776143.js → codebind-0.5.2/data/share/jupyter/labextensions/codebind-jupyterlab/static/remoteEntry.b91d908d410b00d7.js +1 -1
- {codebind-0.5.0 → codebind-0.5.2}/jupyterlab/package.json +1 -1
- {codebind-0.5.0 → codebind-0.5.2}/jupyterlab/src/index.ts +39 -94
- {codebind-0.5.0 → codebind-0.5.2}/pyproject.toml +1 -1
- {codebind-0.5.0 → codebind-0.5.2}/pyproject.toml.orig +1 -1
- codebind-0.5.0/data/share/jupyter/labextensions/codebind-jupyterlab/static/590.31336058307703b3.js +0 -23
- {codebind-0.5.0 → codebind-0.5.2}/LICENSE +0 -0
- {codebind-0.5.0 → codebind-0.5.2}/data/share/jupyter/labextensions/codebind-jupyterlab/install.json +0 -0
- {codebind-0.5.0 → codebind-0.5.2}/data/share/jupyter/labextensions/codebind-jupyterlab/static/style.js +0 -0
- {codebind-0.5.0 → codebind-0.5.2}/data/share/jupyter/labextensions/codebind-jupyterlab/static/third-party-licenses.json +0 -0
- {codebind-0.5.0 → codebind-0.5.2}/jupyterlab/.yarnrc.yml +0 -0
- {codebind-0.5.0 → codebind-0.5.2}/jupyterlab/install.json +0 -0
- {codebind-0.5.0 → codebind-0.5.2}/jupyterlab/tsconfig.json +0 -0
- {codebind-0.5.0 → codebind-0.5.2}/jupyterlab/yarn.lock +0 -0
- {codebind-0.5.0 → codebind-0.5.2}/src/codebind/__init__.py +0 -0
- {codebind-0.5.0 → codebind-0.5.2}/src/codebind/cli.py +0 -0
- {codebind-0.5.0 → codebind-0.5.2}/src/codebind/display.py +0 -0
- {codebind-0.5.0 → codebind-0.5.2}/src/codebind/execution.py +0 -0
- {codebind-0.5.0 → codebind-0.5.2}/src/codebind/extension.py +0 -0
- {codebind-0.5.0 → codebind-0.5.2}/src/codebind/jupyter.py +0 -0
- {codebind-0.5.0 → codebind-0.5.2}/src/codebind/py.typed +0 -0
- {codebind-0.5.0 → codebind-0.5.2}/src/codebind/session.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codebind
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.2
|
|
4
4
|
Summary: A frontend-neutral model loop for persistent IPython sessions.
|
|
5
5
|
Keywords: ai,ipython,llm,repl,agents
|
|
6
6
|
Author: Giovanni Gravili
|
|
@@ -86,7 +86,7 @@ model = models.chat("openai/gpt-5")
|
|
|
86
86
|
await chat.asend("Inspect the current notebook state.", model)
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
After assigning `model`, click **Question** in the notebook toolbar to
|
|
89
|
+
After assigning `model`, select a cell and click **Question** in the notebook toolbar to configure that cell as a Question cell. Write ordinary Markdown and press `Shift+Enter`; Codebind sends the cell through `chat` using the `model` variable, renders the question as Markdown, and appends tool executions and the assistant response to the end of the notebook. Question cells are stored as standard Markdown cells with Codebind metadata, so other notebook frontends can still read them.
|
|
90
90
|
|
|
91
91
|
The Codebind package includes a prebuilt JupyterLab extension. In JupyterLab, each model-authored IPython execution becomes a genuine code cell with its native execution count and outputs, and the assistant response becomes a rendered Markdown cell. The cells are ordinary notebook content and are saved with the notebook.
|
|
92
92
|
|
|
@@ -61,7 +61,7 @@ model = models.chat("openai/gpt-5")
|
|
|
61
61
|
await chat.asend("Inspect the current notebook state.", model)
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
After assigning `model`, click **Question** in the notebook toolbar to
|
|
64
|
+
After assigning `model`, select a cell and click **Question** in the notebook toolbar to configure that cell as a Question cell. Write ordinary Markdown and press `Shift+Enter`; Codebind sends the cell through `chat` using the `model` variable, renders the question as Markdown, and appends tool executions and the assistant response to the end of the notebook. Question cells are stored as standard Markdown cells with Codebind metadata, so other notebook frontends can still read them.
|
|
65
65
|
|
|
66
66
|
The Codebind package includes a prebuilt JupyterLab extension. In JupyterLab, each model-authored IPython execution becomes a genuine code cell with its native execution count and outputs, and the assistant response becomes a rendered Markdown cell. The cells are ordinary notebook content and are saved with the notebook.
|
|
67
67
|
|
{codebind-0.5.0 → codebind-0.5.2}/data/share/jupyter/labextensions/codebind-jupyterlab/package.json
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codebind-jupyterlab",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"description": "Native JupyterLab cells and Question cells for Codebind.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"extension": true,
|
|
32
32
|
"outputDir": "../data/share/jupyter/labextensions/codebind-jupyterlab",
|
|
33
33
|
"_build": {
|
|
34
|
-
"load": "static/remoteEntry.
|
|
34
|
+
"load": "static/remoteEntry.b91d908d410b00d7.js",
|
|
35
35
|
"extension": "./extension"
|
|
36
36
|
}
|
|
37
37
|
}
|
codebind-0.5.2/data/share/jupyter/labextensions/codebind-jupyterlab/static/590.d0579d950c2c5846.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.rspackChunkcodebind_jupyterlab=self.rspackChunkcodebind_jupyterlab||[]).push([[590],{509(e,t,n){n.r(t);var o=n(511),l=n(343),i=n(171);let d="codebind:insert-question",r="codebind:run-question",u="jp-CodebindQuestionCell",s=new WeakMap;function c(e){let t=e.getMetadata("codebind");return"object"!=typeof t||null===t||"question"!==t.kind?null:{kind:"question",model:"string"==typeof t.model?t.model:"model"}}function a(e){let t=s.get(e);for(let n of e.content.widgets){let e=c(n.model);n.node.classList.toggle(u,null!==e);let o=n.node.querySelector(".jp-InputPrompt");o&&(e?(o.dataset.codebindQuestion="true",o.textContent=t?.runningQuestions.has(n.model.id)?"Question [*]:":"Question:"):o.dataset.codebindQuestion&&(delete o.dataset.codebindQuestion,o.textContent=""))}}function m(e){let t=e.sessionContext.session?.kernel;if(!t)return;let n=s.get(e)??{comm:null,runningQuestions:new Map};s.set(e,n),n.comm=null,n.runningQuestions.clear();let i=null,d=new Map,r=()=>{if(!i)return;let e=i;i=null,e.parentModel&&null!==e.parentExecutionCount&&(e.parentModel.executionCount=e.parentExecutionCount)};t.registerCommTarget("codebind",(u,s)=>{u.onMsg=u=>{let s=u.content.data;if(!function(e){if("object"!=typeof e||null===e)return!1;if("markdown_cell"===e.type)return"string"==typeof e.source;if("code_cell_started"===e.type)return"string"==typeof e.cell_id&&"string"==typeof e.source;if("code_cell_output"===e.type)return"string"==typeof e.cell_id&&"object"==typeof e.output&&null!==e.output;if("code_cell_clear"===e.type)return"string"==typeof e.cell_id&&"boolean"==typeof e.wait;if("question_finished"===e.type){let t=e.error;return"string"==typeof e.cell_id&&(null===t||"object"==typeof t&&"string"==typeof t.type&&"string"==typeof t.message)}return"code_cell_finished"===e.type&&"string"==typeof e.cell_id&&("number"==typeof e.execution_count||null===e.execution_count)&&Array.isArray(e.outputs)}(s))return;if("question_finished"===s.type){n.runningQuestions.delete(s.cell_id),a(e),r(),s.error&&(0,o.showErrorMessage)(`Codebind question: ${s.error.type}`,s.error.message);return}if("code_cell_output"===s.type)return void d.get(s.cell_id)?.outputs.add(s.output);if("code_cell_clear"===s.type)return void d.get(s.cell_id)?.outputs.clear(s.wait);if("code_cell_finished"===s.type){let e=d.get(s.cell_id);if(!e)return;e.outputs.fromJSON(s.outputs),e.executionCount=s.execution_count,e.executionState="idle",i&&null===i.parentExecutionCount&&null!==s.execution_count&&(i.parentExecutionCount=s.execution_count-1);return}(()=>{if(i)return;let n=e.content,o=n.widgets.findIndex(e=>"code"===e.model.type&&"running"===e.model.executionState);i={parentModel:o>=0?n.widgets[o].model:null,parentExecutionCount:null};let l=(e,n)=>{"idle"===n&&(t.statusChanged.disconnect(l),r())};return t.statusChanged.connect(l)})();let c=function(e,t){let n=e.content,o=n.model;if(!o)return null;let i=n.widgets.length;"code_cell_started"===t.type?o.sharedModel.insertCell(i,{cell_type:"code",source:t.source,metadata:{trusted:!0},execution_count:null,outputs:[]}):o.sharedModel.insertCell(i,{cell_type:"markdown",source:t.source,metadata:{}});let d=n.widgets[i]??null;return d instanceof l.MarkdownCell&&(d.rendered=!0),d?.model??null}(e,s);"code_cell_started"===s.type&&c?.type==="code"&&(c.executionState="running",d.set(s.cell_id,c))},n.comm=u,u.onClose=()=>{n.comm===u&&(n.comm=null)},u.send({type:"ready"})})}async function p(e){let t=e.content,n=t.activeCell;if(!n)return;let i=c(n.model);if(!i)return;let d=s.get(e);if(!d?.comm)return void await (0,o.showErrorMessage)("Codebind is not connected","Run %load_ext codebind in this kernel before sending a Question cell.");if(d.runningQuestions.size>0)return void await (0,o.showErrorMessage)("Codebind is busy","Wait for the current question to finish before sending another.");let r=n.model.sharedModel.getSource().trim();r?(d.runningQuestions.set(n.model.id,n.model),a(e),n instanceof l.MarkdownCell&&(n.rendered=!0),t.mode="command",d.comm.send({type:"question",cell_id:n.model.id,question:r,model:i.model})):await (0,o.showErrorMessage)("Empty Codebind question","Write a question before sending it.")}function f(e,t){s.set(e,{comm:null,runningQuestions:new Map}),e.toolbar.insertItem(10,"codebindQuestion",new o.ToolbarButton({label:"Question",tooltip:"Use the selected cell as a Codebind Question",onClick:()=>{t.commands.execute(d)}})),e.content.modelContentChanged.connect(()=>a(e)),e.context.ready.then(()=>a(e)),e.sessionContext.ready.then(()=>m(e)),e.sessionContext.kernelChanged.connect(()=>m(e))}let g={id:"codebind-jupyterlab:plugin",description:"Insert Codebind executions as native notebook cells.",autoStart:!0,requires:[i.INotebookTracker],activate:(e,t)=>{e.commands.addCommand(d,{label:"Use Selected Cell as Codebind Question",execute:()=>{let e=t.currentWidget;e&&function(e){let t=e.content,n=t.model;if(!n)return;t.activeCell?"markdown"!==t.activeCell.model.type&&i.NotebookActions.changeCellType(t,"markdown"):(n.sharedModel.insertCell(0,{cell_type:"markdown",source:"",metadata:{}}),t.activeCellIndex=0);let o=t.activeCell;o?.model.setMetadata("codebind",{kind:"question",model:"model"}),o instanceof l.MarkdownCell&&(o.rendered=!1),t.mode="edit",a(e),o?.editor?.focus()}(e)}}),e.commands.addCommand(r,{label:"Send Codebind Question",isEnabled:()=>{let e=t.currentWidget?.content.activeCell;return!!e&&null!==c(e.model)},execute:async()=>{let e=t.currentWidget;e&&await p(e)}}),e.commands.addKeyBinding({command:r,keys:["Shift Enter"],selector:`.jp-Notebook .${u}`}),e.contextMenu.addItem({command:d,selector:".jp-Notebook .jp-Cell",rank:8}),t.forEach(t=>f(t,e)),t.widgetAdded.connect((t,n)=>f(n,e))}};n.d(t,{},{default:g})}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _JUPYTERLAB;(()=>{"use strict";var e,n,r,t,o,i,u,a,c,l,f,s,p,d,h,g,v,y,m,b,S,k,j,w,E,x,T,M,P,A,C,O,D,_,q,L,V,N={457(e,n,r){var t={"./index":()=>r.e(590).then(()=>()=>r(509)),"./extension":()=>r.e(590).then(()=>()=>r(509))},o=function(e,n){return r.R=n,n=r.o(t,e)?t[e]():Promise.resolve().then(()=>{throw Error('Module "'+e+'" does not exist in container.')}),r.R=void 0,n},i=function(e,n){if(r.S){var t="default",o=r.S[t];if(o&&o!==e)throw Error("Container initialization failed as it has already been initialized with a different share scope");return r.S[t]=e,r.I(t,n)}};r.d(n,{get:()=>o,init:()=>i})}},$={};function z(e){var n=$[e];if(void 0!==n)return n.exports;var r=$[e]={exports:{}};return N[e](r,r.exports,z),r.exports}z.m=N,z.c=$,z.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return z.d(n,{a:n}),n},z.d=(e,n,r)=>{var t=(n,r)=>{for(var t in n)z.o(n,t)&&!z.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,[r]:n[t]})};t(n,"get"),t(r,"value")},z.f={},z.e=e=>Promise.all(Object.keys(z.f).reduce((n,r)=>(z.f[r](e,n),n),[])),z.u=e=>""+e+".31336058307703b3.js?v=31336058307703b3",z.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),z.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),I={},z.l=function(e,n,r,t){if(I[e])return void I[e].push(n);if(void 0!==r)for(var o,i,u=document.getElementsByTagName("script"),a=0;a<u.length;a++){var c=u[a];if(c.getAttribute("src")==e||c.getAttribute("data-rspack")=="codebind-jupyterlab:"+r){o=c;break}}o||(i=!0,(o=document.createElement("script")).timeout=120,z.nc&&o.setAttribute("nonce",z.nc),o.setAttribute("data-rspack","codebind-jupyterlab:"+r),o.src=e),I[e]=[n];var l=function(n,r){o.onerror=o.onload=null,clearTimeout(f);var t=I[e];if(delete I[e],o.parentNode&&o.parentNode.removeChild(o),t&&t.forEach(function(e){return e(r)}),n)return n(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),i&&document.head.appendChild(o)},z.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},z.S={},z.initializeSharingData={scopeToSharingDataMapping:{default:[{name:"codebind-jupyterlab",version:"0.5.0",factory:()=>z.e(590).then(()=>()=>z(509)),eager:0,treeShakingMode:null}]},uniqueName:"codebind-jupyterlab"},R={},U={},z.I=function(e,n){n||(n=[]);var r=U[e];if(r||(r=U[e]={}),!(n.indexOf(r)>=0)){if(n.push(r),R[e])return R[e];z.o(z.S,e)||(z.S[e]={});var t=z.S[e],o=function(e){"u">typeof console&&console.warn&&console.warn(e)},i=z.initializeSharingData.uniqueName,u=function(e,n,r,o){var u=t[e]=t[e]||{},a=u[n];(!a||!a.loaded&&(!o!=!a.eager?o:i>a.from))&&(u[n]={get:r,from:i,eager:!!o})},a=function(r){var t=function(e){o("Initialization of sharing external failed: "+e)};try{var i=z(r);if(!i)return;var u=function(r){return r&&r.init&&r.init(z.S[e],n)};if(i.then)return c.push(i.then(u,t));var a=u(i);if(a&&a.then)return c.push(a.catch(t))}catch(e){t(e)}},c=[],l=z.initializeSharingData.scopeToSharingDataMapping;return(l[e]&&l[e].forEach(function(e){"object"==typeof e?u(e.name,e.version,e.factory,e.eager):a(e)}),c.length)?R[e]=Promise.all(c).then(function(){return R[e]=1}):R[e]=1}},z.g.importScripts&&(B=z.g.location+"");var I,R,U,B,J=z.g.document;if(!B&&J&&(J.currentScript&&"SCRIPT"===J.currentScript.tagName.toUpperCase()&&(B=J.currentScript.src),!B)){var K=J.getElementsByTagName("script");if(K.length)for(var Y=K.length-1;Y>-1&&(!B||!/^http(s?):/.test(B));)B=K[Y--].src}if(!B)throw Error("Automatic publicPath is not supported in this browser");z.p=B=B.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),z.consumesLoadingData={chunkMapping:{590:["511","343","171"]},moduleIdToConsumeDataMapping:{171:{shareScope:"default",shareKey:"@jupyterlab/notebook",import:null,requiredVersion:"^4.6.3",strictVersion:!1,singleton:!0,eager:!1,fallback:void 0,treeShakingMode:null},343:{shareScope:"default",shareKey:"@jupyterlab/cells",import:null,requiredVersion:"^4.6.3",strictVersion:!1,singleton:!1,eager:!1,fallback:void 0,treeShakingMode:null},511:{shareScope:"default",shareKey:"@jupyterlab/apputils",import:null,requiredVersion:"^4.7.3",strictVersion:!1,singleton:!0,eager:!1,fallback:void 0,treeShakingMode:null}},initialConsumes:[]},e=function(e){return e.split(".").map(function(e){return+e==e?+e:e})},n=function(n){var r=function(n){var r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(n),t=r[1]?[0].concat(e(r[1])):[0];r[2]&&(t.length++,t.push.apply(t,e(r[2])));let o=t[t.length-1];for(;t.length&&(void 0===o||/^[*xX]$/.test(o));)t.pop(),o=t[t.length-1];return t},t=function(e){return 1===e.length?[0]:2===e.length?[1].concat(e.slice(1)):3===e.length?[2].concat(e.slice(1)):[e.length].concat(e.slice(1))},o=function(e){return[-e[0]-1].concat(e.slice(1))},i=function(e){let n=/^(\^|~|<=|<|>=|>|=|v|!)/.exec(e),i=n?n[0]:"",u=r(i.length?e.slice(i.length).trim():e.trim());switch(i){case"^":if(u.length>1&&0===u[1]){if(u.length>2&&0===u[2])return[3].concat(u.slice(1));return[2].concat(u.slice(1))}return[1].concat(u.slice(1));case"~":return[2].concat(u.slice(1));case">=":return u;case"=":case"v":case"":return t(u);case"<":return o(u);case">":return[,t(u),0,u,2];case"<=":return[,t(u),o(u),1];case"!":return[,t(u),0];default:throw Error("Unexpected start value")}},u=function(e,n){if(1===e.length)return e[0];let r=[];for(let n of e.slice().reverse())0 in n?r.push(n):r.push.apply(r,n.slice(1));return[,].concat(r,e.slice(1).map(()=>n))};return u(n.split(/\s*\|\|\s*/).map(function(e){let n=e.split(/\s+-\s+/);if(1===n.length){e=e.trim();let n=[],r=/[-0-9A-Za-z]\s+/g;for(var a,c=0;a=r.exec(e);){let r=a.index+1;n.push(i(e.slice(c,r).trim())),c=r}return n.push(i(e.slice(c).trim())),u(n,2)}let l=r(n[0]),f=r(n[1]);return[,t(f),o(f),1,l,2]}),1)},r=function(n){var r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(n),t=r[1]?e(r[1]):[];return r[2]&&(t.length++,t.push.apply(t,e(r[2]))),r[3]&&(t.push([]),t.push.apply(t,e(r[3]))),t},t=function(e,n){e=r(e),n=r(n);for(var t=0;;){if(t>=e.length)return t<n.length&&"u"!=(typeof n[t])[0];var o=e[t],i=(typeof o)[0];if(t>=n.length)return"u"==i;var u=n[t],a=(typeof u)[0];if(i==a){if("o"!=i&&"u"!=i&&o!=u)return o<u;t++}else{if("o"==i&&"n"==a)return!0;return"s"==a||"u"==i}}},o=function(e){var n=e[0],r="";if(1===e.length)return"*";if(n+.5){r+=0==n?">=":-1==n?"<":1==n?"^":2==n?"~":n>0?"=":"!=";for(var t=1,i=1;i<e.length;i++){var u=e[i],a=(typeof u)[0];t--,r+="u"==a?"-":(t>0?".":"")+(t=2,u)}return r}for(var c=[],i=1;i<e.length;i++){var u=e[i];c.push(0===u?"not("+l()+")":1===u?"("+l()+" || "+l()+")":2===u?c.pop()+" "+c.pop():o(u))}return l();function l(){return c.pop().replace(/^\((.+)\)$/,"$1")}},i=function(e,n){if(0 in e){n=r(n);var t=e[0],o=t<0;o&&(t=-t-1);for(var u=0,a=1,c=!0;;a++,u++){var l,f,s=a<e.length?(typeof e[a])[0]:"";if(u>=n.length||"o"==(f=(typeof(l=n[u]))[0])){if(!c)return!0;if("u"==s)return a>t&&!o;return""==s!=o}if("u"==f){if(!c||"u"!=s)return!1}else if(c)if(s==f)if(a<=t){if(l!=e[a])return!1}else{if(o?l>e[a]:l<e[a])return!1;l!=e[a]&&(c=!1)}else if("s"!=s&&"n"!=s){if(o||a<=t)return!1;c=!1,a--}else{if(a<=t||f<s!=o)return!1;c=!1}else"s"!=s&&"n"!=s&&(c=!1,a--)}}for(var p=[],d=p.pop.bind(p),u=1;u<e.length;u++){var h=e[u];p.push(1==h?d()|d():2==h?d()&d():h?i(h,n):!d())}return!!d()},u=function(e,n){var r=z.S[e];if(!r||!z.o(r,n))throw Error("Shared module "+n+" doesn't exist in shared scope "+e);return r},a=function(e,n){var r=e[n],n=Object.keys(r).reduce(function(e,n){return!e||t(e,n)?n:e},0);return n&&r[n]},c=function(e,n){var r=e[n];return Object.keys(r).reduce(function(e,n){return!e||!r[e].loaded&&t(e,n)?n:e},0)},l=function(e,n,r,t){return"Unsatisfied version "+r+" from "+(r&&e[n][r].from)+" of shared singleton module "+n+" (required "+o(t)+")"},f=function(e,n,r,t){var o=c(e,r);return m(e[r][o])},s=function(e,n,r,t){var o=c(e,r);return i(t,o)||v(l(e,r,o,t)),m(e[r][o])},p=function(e,n,r,t){var o=c(e,r);if(!i(t,o))throw Error(l(e,r,o,t));return m(e[r][o])},d=function(e,n,r){var o=e[n],n=Object.keys(o).reduce(function(e,n){return i(r,n)&&(!e||t(e,n))?n:e},0);return n&&o[n]},h=function(e,n,r,t){var i=e[r];return"No satisfying version ("+o(t)+") of shared module "+r+" found in shared scope "+n+".\nAvailable versions: "+Object.keys(i).map(function(e){return e+" from "+i[e].from}).join(", ")},g=function(e,n,r,t){var o=d(e,r,t);if(o)return m(o);throw Error(h(e,n,r,t))},v=function(e){"u">typeof console&&console.warn&&console.warn(e)},y=function(e,n,r,t){v(h(e,n,r,t))},m=function(e){return e.loaded=1,e.get()},S=(b=function(e){return function(n,r,t,o){var i=z.I(n);return i&&i.then?i.then(e.bind(e,n,z.S[n],r,t,o)):e(n,z.S[n],r,t,o)}})(function(e,n,r){return u(e,r),m(a(n,r))}),k=b(function(e,n,r,t){return n&&z.o(n,r)?m(a(n,r)):t()}),j=b(function(e,n,r,t){return u(e,r),m(d(n,r,t)||y(n,e,r,t)||a(n,r))}),w=b(function(e,n,r){return u(e,r),f(n,e,r)}),E=b(function(e,n,r,t){return u(e,r),s(n,e,r,t)}),x=b(function(e,n,r,t){return u(e,r),g(n,e,r,t)}),T=b(function(e,n,r,t){return u(e,r),p(n,e,r,t)}),M=b(function(e,n,r,t,o){return n&&z.o(n,r)?m(d(n,r,t)||y(n,e,r,t)||a(n,r)):o()}),P=b(function(e,n,r,t){return n&&z.o(n,r)?f(n,e,r):t()}),A=b(function(e,n,r,t,o){return n&&z.o(n,r)?s(n,e,r,t):o()}),C=b(function(e,n,r,t,o){var i=n&&z.o(n,r)&&d(n,r,t);return i?m(i):o()}),O=b(function(e,n,r,t,o){return n&&z.o(n,r)?p(n,e,r,t):o()}),D=function(e){var r=!1,t=!1,o=!1,i=!1,u=[e.shareScope,e.shareKey];return(e.requiredVersion?(e.strictVersion&&(r=!0),e.singleton&&(t=!0),u.push(n(e.requiredVersion)),o=!0):e.singleton&&(t=!0),e.fallback&&(i=!0,u.push(e.fallback)),r&&t&&o&&i)?function(){return O.apply(null,u)}:r&&o&&i?function(){return C.apply(null,u)}:t&&o&&i?function(){return A.apply(null,u)}:r&&t&&o?function(){return T.apply(null,u)}:t&&i?function(){return P.apply(null,u)}:o&&i?function(){return M.apply(null,u)}:r&&o?function(){return x.apply(null,u)}:t&&o?function(){return E.apply(null,u)}:t?function(){return w.apply(null,u)}:o?function(){return j.apply(null,u)}:i?function(){return k.apply(null,u)}:function(){return S.apply(null,u)}},_={},z.f.consumes=function(e,n){var r=z.consumesLoadingData.moduleIdToConsumeDataMapping,t=z.consumesLoadingData.chunkMapping;z.o(t,e)&&t[e].forEach(function(e){if(z.o(_,e))return n.push(_[e]);var t=function(n){_[e]=0,z.m[e]=function(r){delete z.c[e],r.exports=n()}},o=function(n){delete _[e],z.m[e]=function(r){throw delete z.c[e],n}};try{var i=D(r[e])();i.then?n.push(_[e]=i.then(t).catch(o)):t(i)}catch(e){o(e)}})},q={871:0},z.f.j=function(e,n){var r=z.o(q,e)?q[e]:void 0;if(0!==r)if(r)n.push(r[2]);else{var t=new Promise((n,t)=>r=q[e]=[n,t]);n.push(r[2]=t);var o=z.p+z.u(e),i=Error();z.l(o,function(n){if(z.o(q,e)&&(0!==(r=q[e])&&(q[e]=void 0),r)){var t=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;i.message="Loading chunk "+e+" failed.\n("+t+": "+o+")",i.name="ChunkLoadError",i.type=t,i.request=o,r[1](i)}},"chunk-"+e,e)}},L=(e,n)=>{var r,t,[o,i,u]=n,a=0;if(o.some(e=>0!==q[e])){for(r in i)z.o(i,r)&&(z.m[r]=i[r]);u&&u(z)}for(e&&e(n);a<o.length;a++)t=o[a],z.o(q,t)&&q[t]&&q[t][0](),q[t]=0},(V=self.rspackChunkcodebind_jupyterlab=self.rspackChunkcodebind_jupyterlab||[]).forEach(L.bind(null,0)),V.push=L.bind(null,V.push.bind(V));var F=z(457);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB)["codebind-jupyterlab"]=F})();
|
|
1
|
+
var _JUPYTERLAB;(()=>{"use strict";var e,n,r,t,o,i,u,a,c,l,f,s,p,d,h,g,v,y,m,b,S,k,j,w,E,x,T,M,P,A,C,O,D,_,q,L,V,N={457(e,n,r){var t={"./index":()=>r.e(590).then(()=>()=>r(509)),"./extension":()=>r.e(590).then(()=>()=>r(509))},o=function(e,n){return r.R=n,n=r.o(t,e)?t[e]():Promise.resolve().then(()=>{throw Error('Module "'+e+'" does not exist in container.')}),r.R=void 0,n},i=function(e,n){if(r.S){var t="default",o=r.S[t];if(o&&o!==e)throw Error("Container initialization failed as it has already been initialized with a different share scope");return r.S[t]=e,r.I(t,n)}};r.d(n,{get:()=>o,init:()=>i})}},$={};function z(e){var n=$[e];if(void 0!==n)return n.exports;var r=$[e]={exports:{}};return N[e](r,r.exports,z),r.exports}z.m=N,z.c=$,z.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return z.d(n,{a:n}),n},z.d=(e,n,r)=>{var t=(n,r)=>{for(var t in n)z.o(n,t)&&!z.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,[r]:n[t]})};t(n,"get"),t(r,"value")},z.f={},z.e=e=>Promise.all(Object.keys(z.f).reduce((n,r)=>(z.f[r](e,n),n),[])),z.u=e=>""+e+".d0579d950c2c5846.js?v=d0579d950c2c5846",z.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),z.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),I={},z.l=function(e,n,r,t){if(I[e])return void I[e].push(n);if(void 0!==r)for(var o,i,u=document.getElementsByTagName("script"),a=0;a<u.length;a++){var c=u[a];if(c.getAttribute("src")==e||c.getAttribute("data-rspack")=="codebind-jupyterlab:"+r){o=c;break}}o||(i=!0,(o=document.createElement("script")).timeout=120,z.nc&&o.setAttribute("nonce",z.nc),o.setAttribute("data-rspack","codebind-jupyterlab:"+r),o.src=e),I[e]=[n];var l=function(n,r){o.onerror=o.onload=null,clearTimeout(f);var t=I[e];if(delete I[e],o.parentNode&&o.parentNode.removeChild(o),t&&t.forEach(function(e){return e(r)}),n)return n(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),i&&document.head.appendChild(o)},z.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},z.S={},z.initializeSharingData={scopeToSharingDataMapping:{default:[{name:"codebind-jupyterlab",version:"0.5.2",factory:()=>z.e(590).then(()=>()=>z(509)),eager:0,treeShakingMode:null}]},uniqueName:"codebind-jupyterlab"},R={},U={},z.I=function(e,n){n||(n=[]);var r=U[e];if(r||(r=U[e]={}),!(n.indexOf(r)>=0)){if(n.push(r),R[e])return R[e];z.o(z.S,e)||(z.S[e]={});var t=z.S[e],o=function(e){"u">typeof console&&console.warn&&console.warn(e)},i=z.initializeSharingData.uniqueName,u=function(e,n,r,o){var u=t[e]=t[e]||{},a=u[n];(!a||!a.loaded&&(!o!=!a.eager?o:i>a.from))&&(u[n]={get:r,from:i,eager:!!o})},a=function(r){var t=function(e){o("Initialization of sharing external failed: "+e)};try{var i=z(r);if(!i)return;var u=function(r){return r&&r.init&&r.init(z.S[e],n)};if(i.then)return c.push(i.then(u,t));var a=u(i);if(a&&a.then)return c.push(a.catch(t))}catch(e){t(e)}},c=[],l=z.initializeSharingData.scopeToSharingDataMapping;return(l[e]&&l[e].forEach(function(e){"object"==typeof e?u(e.name,e.version,e.factory,e.eager):a(e)}),c.length)?R[e]=Promise.all(c).then(function(){return R[e]=1}):R[e]=1}},z.g.importScripts&&(B=z.g.location+"");var I,R,U,B,J=z.g.document;if(!B&&J&&(J.currentScript&&"SCRIPT"===J.currentScript.tagName.toUpperCase()&&(B=J.currentScript.src),!B)){var K=J.getElementsByTagName("script");if(K.length)for(var Y=K.length-1;Y>-1&&(!B||!/^http(s?):/.test(B));)B=K[Y--].src}if(!B)throw Error("Automatic publicPath is not supported in this browser");z.p=B=B.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),z.consumesLoadingData={chunkMapping:{590:["511","343","171"]},moduleIdToConsumeDataMapping:{171:{shareScope:"default",shareKey:"@jupyterlab/notebook",import:null,requiredVersion:"^4.6.3",strictVersion:!1,singleton:!0,eager:!1,fallback:void 0,treeShakingMode:null},343:{shareScope:"default",shareKey:"@jupyterlab/cells",import:null,requiredVersion:"^4.6.3",strictVersion:!1,singleton:!1,eager:!1,fallback:void 0,treeShakingMode:null},511:{shareScope:"default",shareKey:"@jupyterlab/apputils",import:null,requiredVersion:"^4.7.3",strictVersion:!1,singleton:!0,eager:!1,fallback:void 0,treeShakingMode:null}},initialConsumes:[]},e=function(e){return e.split(".").map(function(e){return+e==e?+e:e})},n=function(n){var r=function(n){var r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(n),t=r[1]?[0].concat(e(r[1])):[0];r[2]&&(t.length++,t.push.apply(t,e(r[2])));let o=t[t.length-1];for(;t.length&&(void 0===o||/^[*xX]$/.test(o));)t.pop(),o=t[t.length-1];return t},t=function(e){return 1===e.length?[0]:2===e.length?[1].concat(e.slice(1)):3===e.length?[2].concat(e.slice(1)):[e.length].concat(e.slice(1))},o=function(e){return[-e[0]-1].concat(e.slice(1))},i=function(e){let n=/^(\^|~|<=|<|>=|>|=|v|!)/.exec(e),i=n?n[0]:"",u=r(i.length?e.slice(i.length).trim():e.trim());switch(i){case"^":if(u.length>1&&0===u[1]){if(u.length>2&&0===u[2])return[3].concat(u.slice(1));return[2].concat(u.slice(1))}return[1].concat(u.slice(1));case"~":return[2].concat(u.slice(1));case">=":return u;case"=":case"v":case"":return t(u);case"<":return o(u);case">":return[,t(u),0,u,2];case"<=":return[,t(u),o(u),1];case"!":return[,t(u),0];default:throw Error("Unexpected start value")}},u=function(e,n){if(1===e.length)return e[0];let r=[];for(let n of e.slice().reverse())0 in n?r.push(n):r.push.apply(r,n.slice(1));return[,].concat(r,e.slice(1).map(()=>n))};return u(n.split(/\s*\|\|\s*/).map(function(e){let n=e.split(/\s+-\s+/);if(1===n.length){e=e.trim();let n=[],r=/[-0-9A-Za-z]\s+/g;for(var a,c=0;a=r.exec(e);){let r=a.index+1;n.push(i(e.slice(c,r).trim())),c=r}return n.push(i(e.slice(c).trim())),u(n,2)}let l=r(n[0]),f=r(n[1]);return[,t(f),o(f),1,l,2]}),1)},r=function(n){var r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(n),t=r[1]?e(r[1]):[];return r[2]&&(t.length++,t.push.apply(t,e(r[2]))),r[3]&&(t.push([]),t.push.apply(t,e(r[3]))),t},t=function(e,n){e=r(e),n=r(n);for(var t=0;;){if(t>=e.length)return t<n.length&&"u"!=(typeof n[t])[0];var o=e[t],i=(typeof o)[0];if(t>=n.length)return"u"==i;var u=n[t],a=(typeof u)[0];if(i==a){if("o"!=i&&"u"!=i&&o!=u)return o<u;t++}else{if("o"==i&&"n"==a)return!0;return"s"==a||"u"==i}}},o=function(e){var n=e[0],r="";if(1===e.length)return"*";if(n+.5){r+=0==n?">=":-1==n?"<":1==n?"^":2==n?"~":n>0?"=":"!=";for(var t=1,i=1;i<e.length;i++){var u=e[i],a=(typeof u)[0];t--,r+="u"==a?"-":(t>0?".":"")+(t=2,u)}return r}for(var c=[],i=1;i<e.length;i++){var u=e[i];c.push(0===u?"not("+l()+")":1===u?"("+l()+" || "+l()+")":2===u?c.pop()+" "+c.pop():o(u))}return l();function l(){return c.pop().replace(/^\((.+)\)$/,"$1")}},i=function(e,n){if(0 in e){n=r(n);var t=e[0],o=t<0;o&&(t=-t-1);for(var u=0,a=1,c=!0;;a++,u++){var l,f,s=a<e.length?(typeof e[a])[0]:"";if(u>=n.length||"o"==(f=(typeof(l=n[u]))[0])){if(!c)return!0;if("u"==s)return a>t&&!o;return""==s!=o}if("u"==f){if(!c||"u"!=s)return!1}else if(c)if(s==f)if(a<=t){if(l!=e[a])return!1}else{if(o?l>e[a]:l<e[a])return!1;l!=e[a]&&(c=!1)}else if("s"!=s&&"n"!=s){if(o||a<=t)return!1;c=!1,a--}else{if(a<=t||f<s!=o)return!1;c=!1}else"s"!=s&&"n"!=s&&(c=!1,a--)}}for(var p=[],d=p.pop.bind(p),u=1;u<e.length;u++){var h=e[u];p.push(1==h?d()|d():2==h?d()&d():h?i(h,n):!d())}return!!d()},u=function(e,n){var r=z.S[e];if(!r||!z.o(r,n))throw Error("Shared module "+n+" doesn't exist in shared scope "+e);return r},a=function(e,n){var r=e[n],n=Object.keys(r).reduce(function(e,n){return!e||t(e,n)?n:e},0);return n&&r[n]},c=function(e,n){var r=e[n];return Object.keys(r).reduce(function(e,n){return!e||!r[e].loaded&&t(e,n)?n:e},0)},l=function(e,n,r,t){return"Unsatisfied version "+r+" from "+(r&&e[n][r].from)+" of shared singleton module "+n+" (required "+o(t)+")"},f=function(e,n,r,t){var o=c(e,r);return m(e[r][o])},s=function(e,n,r,t){var o=c(e,r);return i(t,o)||v(l(e,r,o,t)),m(e[r][o])},p=function(e,n,r,t){var o=c(e,r);if(!i(t,o))throw Error(l(e,r,o,t));return m(e[r][o])},d=function(e,n,r){var o=e[n],n=Object.keys(o).reduce(function(e,n){return i(r,n)&&(!e||t(e,n))?n:e},0);return n&&o[n]},h=function(e,n,r,t){var i=e[r];return"No satisfying version ("+o(t)+") of shared module "+r+" found in shared scope "+n+".\nAvailable versions: "+Object.keys(i).map(function(e){return e+" from "+i[e].from}).join(", ")},g=function(e,n,r,t){var o=d(e,r,t);if(o)return m(o);throw Error(h(e,n,r,t))},v=function(e){"u">typeof console&&console.warn&&console.warn(e)},y=function(e,n,r,t){v(h(e,n,r,t))},m=function(e){return e.loaded=1,e.get()},S=(b=function(e){return function(n,r,t,o){var i=z.I(n);return i&&i.then?i.then(e.bind(e,n,z.S[n],r,t,o)):e(n,z.S[n],r,t,o)}})(function(e,n,r){return u(e,r),m(a(n,r))}),k=b(function(e,n,r,t){return n&&z.o(n,r)?m(a(n,r)):t()}),j=b(function(e,n,r,t){return u(e,r),m(d(n,r,t)||y(n,e,r,t)||a(n,r))}),w=b(function(e,n,r){return u(e,r),f(n,e,r)}),E=b(function(e,n,r,t){return u(e,r),s(n,e,r,t)}),x=b(function(e,n,r,t){return u(e,r),g(n,e,r,t)}),T=b(function(e,n,r,t){return u(e,r),p(n,e,r,t)}),M=b(function(e,n,r,t,o){return n&&z.o(n,r)?m(d(n,r,t)||y(n,e,r,t)||a(n,r)):o()}),P=b(function(e,n,r,t){return n&&z.o(n,r)?f(n,e,r):t()}),A=b(function(e,n,r,t,o){return n&&z.o(n,r)?s(n,e,r,t):o()}),C=b(function(e,n,r,t,o){var i=n&&z.o(n,r)&&d(n,r,t);return i?m(i):o()}),O=b(function(e,n,r,t,o){return n&&z.o(n,r)?p(n,e,r,t):o()}),D=function(e){var r=!1,t=!1,o=!1,i=!1,u=[e.shareScope,e.shareKey];return(e.requiredVersion?(e.strictVersion&&(r=!0),e.singleton&&(t=!0),u.push(n(e.requiredVersion)),o=!0):e.singleton&&(t=!0),e.fallback&&(i=!0,u.push(e.fallback)),r&&t&&o&&i)?function(){return O.apply(null,u)}:r&&o&&i?function(){return C.apply(null,u)}:t&&o&&i?function(){return A.apply(null,u)}:r&&t&&o?function(){return T.apply(null,u)}:t&&i?function(){return P.apply(null,u)}:o&&i?function(){return M.apply(null,u)}:r&&o?function(){return x.apply(null,u)}:t&&o?function(){return E.apply(null,u)}:t?function(){return w.apply(null,u)}:o?function(){return j.apply(null,u)}:i?function(){return k.apply(null,u)}:function(){return S.apply(null,u)}},_={},z.f.consumes=function(e,n){var r=z.consumesLoadingData.moduleIdToConsumeDataMapping,t=z.consumesLoadingData.chunkMapping;z.o(t,e)&&t[e].forEach(function(e){if(z.o(_,e))return n.push(_[e]);var t=function(n){_[e]=0,z.m[e]=function(r){delete z.c[e],r.exports=n()}},o=function(n){delete _[e],z.m[e]=function(r){throw delete z.c[e],n}};try{var i=D(r[e])();i.then?n.push(_[e]=i.then(t).catch(o)):t(i)}catch(e){o(e)}})},q={871:0},z.f.j=function(e,n){var r=z.o(q,e)?q[e]:void 0;if(0!==r)if(r)n.push(r[2]);else{var t=new Promise((n,t)=>r=q[e]=[n,t]);n.push(r[2]=t);var o=z.p+z.u(e),i=Error();z.l(o,function(n){if(z.o(q,e)&&(0!==(r=q[e])&&(q[e]=void 0),r)){var t=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;i.message="Loading chunk "+e+" failed.\n("+t+": "+o+")",i.name="ChunkLoadError",i.type=t,i.request=o,r[1](i)}},"chunk-"+e,e)}},L=(e,n)=>{var r,t,[o,i,u]=n,a=0;if(o.some(e=>0!==q[e])){for(r in i)z.o(i,r)&&(z.m[r]=i[r]);u&&u(z)}for(e&&e(n);a<o.length;a++)t=o[a],z.o(q,t)&&q[t]&&q[t][0](),q[t]=0},(V=self.rspackChunkcodebind_jupyterlab=self.rspackChunkcodebind_jupyterlab||[]).forEach(L.bind(null,0)),V.push=L.bind(null,V.push.bind(V));var F=z(457);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB)["codebind-jupyterlab"]=F})();
|
|
@@ -16,8 +16,6 @@ const TARGET_NAME = 'codebind';
|
|
|
16
16
|
const INSERT_QUESTION = 'codebind:insert-question';
|
|
17
17
|
const RUN_QUESTION = 'codebind:run-question';
|
|
18
18
|
const QUESTION_CLASS = 'jp-CodebindQuestionCell';
|
|
19
|
-
const QUESTION_RUNNING_CLASS = 'jp-CodebindQuestionCell-running';
|
|
20
|
-
const QUESTION_ERROR_CLASS = 'jp-CodebindQuestionCell-error';
|
|
21
19
|
|
|
22
20
|
interface CodeCellStartedMessage {
|
|
23
21
|
type: 'code_cell_started';
|
|
@@ -67,8 +65,6 @@ type InsertMessage = CodeCellStartedMessage | MarkdownCellMessage;
|
|
|
67
65
|
interface TurnState {
|
|
68
66
|
parentModel: ICodeCellModel | null;
|
|
69
67
|
parentExecutionCount: number | null;
|
|
70
|
-
resumeModel: ICellModel | null;
|
|
71
|
-
nextIndex: number;
|
|
72
68
|
}
|
|
73
69
|
|
|
74
70
|
interface PanelState {
|
|
@@ -146,49 +142,25 @@ function refreshQuestionCells(panel: NotebookPanel): void {
|
|
|
146
142
|
for (const cell of panel.content.widgets) {
|
|
147
143
|
const question = questionMetadata(cell.model);
|
|
148
144
|
cell.node.classList.toggle(QUESTION_CLASS, question !== null);
|
|
149
|
-
cell.node.
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
function ensureStyles(): void {
|
|
157
|
-
if (document.getElementById('codebind-question-styles')) {
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
const style = document.createElement('style');
|
|
161
|
-
style.id = 'codebind-question-styles';
|
|
162
|
-
style.textContent = `
|
|
163
|
-
.${QUESTION_CLASS} {
|
|
164
|
-
border-left: 3px solid var(--jp-brand-color1);
|
|
165
|
-
background: color-mix(in srgb, var(--jp-brand-color1) 6%, transparent);
|
|
145
|
+
const prompt = cell.node.querySelector<HTMLElement>('.jp-InputPrompt');
|
|
146
|
+
if (!prompt) {
|
|
147
|
+
continue;
|
|
166
148
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
text-transform: uppercase;
|
|
149
|
+
if (question) {
|
|
150
|
+
prompt.dataset.codebindQuestion = 'true';
|
|
151
|
+
prompt.textContent = state?.runningQuestions.has(cell.model.id)
|
|
152
|
+
? 'Question [*]:'
|
|
153
|
+
: 'Question:';
|
|
154
|
+
} else if (prompt.dataset.codebindQuestion) {
|
|
155
|
+
delete prompt.dataset.codebindQuestion;
|
|
156
|
+
prompt.textContent = '';
|
|
176
157
|
}
|
|
177
|
-
|
|
178
|
-
border-left-color: var(--jp-warn-color1);
|
|
179
|
-
opacity: 0.78;
|
|
180
|
-
}
|
|
181
|
-
.${QUESTION_ERROR_CLASS} {
|
|
182
|
-
border-left-color: var(--jp-error-color1);
|
|
183
|
-
}
|
|
184
|
-
`;
|
|
185
|
-
document.head.appendChild(style);
|
|
158
|
+
}
|
|
186
159
|
}
|
|
187
160
|
|
|
188
161
|
function insertCell(
|
|
189
162
|
panel: NotebookPanel,
|
|
190
|
-
message: InsertMessage
|
|
191
|
-
index: number
|
|
163
|
+
message: InsertMessage
|
|
192
164
|
): ICellModel | null {
|
|
193
165
|
const notebook = panel.content;
|
|
194
166
|
const model = notebook.model;
|
|
@@ -196,6 +168,7 @@ function insertCell(
|
|
|
196
168
|
return null;
|
|
197
169
|
}
|
|
198
170
|
|
|
171
|
+
const index = notebook.widgets.length;
|
|
199
172
|
if (message.type === 'code_cell_started') {
|
|
200
173
|
model.sharedModel.insertCell(index, {
|
|
201
174
|
cell_type: 'code',
|
|
@@ -212,13 +185,11 @@ function insertCell(
|
|
|
212
185
|
});
|
|
213
186
|
}
|
|
214
187
|
|
|
215
|
-
notebook.
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
void NotebookActions.run(notebook);
|
|
188
|
+
const cell = notebook.widgets[index] ?? null;
|
|
189
|
+
if (cell instanceof MarkdownCell) {
|
|
190
|
+
cell.rendered = true;
|
|
219
191
|
}
|
|
220
|
-
|
|
221
|
-
return notebook.widgets[index]?.model ?? null;
|
|
192
|
+
return cell?.model ?? null;
|
|
222
193
|
}
|
|
223
194
|
|
|
224
195
|
function registerKernel(panel: NotebookPanel): void {
|
|
@@ -238,11 +209,10 @@ function registerKernel(panel: NotebookPanel): void {
|
|
|
238
209
|
let turn: TurnState | null = null;
|
|
239
210
|
const codeCells = new Map<string, ICodeCellModel>();
|
|
240
211
|
|
|
241
|
-
const finishTurn = (
|
|
212
|
+
const finishTurn = (): void => {
|
|
242
213
|
if (!turn) {
|
|
243
214
|
return;
|
|
244
215
|
}
|
|
245
|
-
const notebook = panel.content;
|
|
246
216
|
const completed = turn;
|
|
247
217
|
turn = null;
|
|
248
218
|
if (
|
|
@@ -251,14 +221,6 @@ function registerKernel(panel: NotebookPanel): void {
|
|
|
251
221
|
) {
|
|
252
222
|
completed.parentModel.executionCount = completed.parentExecutionCount;
|
|
253
223
|
}
|
|
254
|
-
if (restoreSelection && completed.resumeModel) {
|
|
255
|
-
const index = notebook.widgets.findIndex(
|
|
256
|
-
widget => widget.model === completed.resumeModel
|
|
257
|
-
);
|
|
258
|
-
if (index >= 0) {
|
|
259
|
-
notebook.activeCellIndex = index;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
224
|
};
|
|
263
225
|
|
|
264
226
|
const beginTurn = (): TurnState => {
|
|
@@ -277,14 +239,7 @@ function registerKernel(panel: NotebookPanel): void {
|
|
|
277
239
|
: null;
|
|
278
240
|
turn = {
|
|
279
241
|
parentModel,
|
|
280
|
-
parentExecutionCount: null
|
|
281
|
-
resumeModel: notebook.activeCell?.model ?? null,
|
|
282
|
-
nextIndex:
|
|
283
|
-
parentIndex >= 0
|
|
284
|
-
? parentIndex + 1
|
|
285
|
-
: notebook.activeCell
|
|
286
|
-
? notebook.activeCellIndex + 1
|
|
287
|
-
: 0
|
|
242
|
+
parentExecutionCount: null
|
|
288
243
|
};
|
|
289
244
|
|
|
290
245
|
const onStatus = (
|
|
@@ -309,17 +264,9 @@ function registerKernel(panel: NotebookPanel): void {
|
|
|
309
264
|
return;
|
|
310
265
|
}
|
|
311
266
|
if (data.type === 'question_finished') {
|
|
312
|
-
const model = panelState.runningQuestions.get(data.cell_id);
|
|
313
267
|
panelState.runningQuestions.delete(data.cell_id);
|
|
314
|
-
if (model) {
|
|
315
|
-
const widget = panel.content.widgets.find(cell => cell.model === model);
|
|
316
|
-
widget?.node.classList.toggle(
|
|
317
|
-
QUESTION_ERROR_CLASS,
|
|
318
|
-
data.error !== null
|
|
319
|
-
);
|
|
320
|
-
}
|
|
321
268
|
refreshQuestionCells(panel);
|
|
322
|
-
finishTurn(
|
|
269
|
+
finishTurn();
|
|
323
270
|
if (data.error) {
|
|
324
271
|
void showErrorMessage(
|
|
325
272
|
`Codebind question: ${data.error.type}`,
|
|
@@ -354,14 +301,13 @@ function registerKernel(panel: NotebookPanel): void {
|
|
|
354
301
|
return;
|
|
355
302
|
}
|
|
356
303
|
|
|
357
|
-
|
|
358
|
-
const model = insertCell(panel, data
|
|
304
|
+
beginTurn();
|
|
305
|
+
const model = insertCell(panel, data);
|
|
359
306
|
if (data.type === 'code_cell_started' && model?.type === 'code') {
|
|
360
307
|
const code = model as ICodeCellModel;
|
|
361
308
|
code.executionState = 'running';
|
|
362
309
|
codeCells.set(data.cell_id, code);
|
|
363
310
|
}
|
|
364
|
-
activeTurn.nextIndex += 1;
|
|
365
311
|
};
|
|
366
312
|
panelState.comm = comm;
|
|
367
313
|
comm.onClose = () => {
|
|
@@ -374,23 +320,24 @@ function registerKernel(panel: NotebookPanel): void {
|
|
|
374
320
|
);
|
|
375
321
|
}
|
|
376
322
|
|
|
377
|
-
function
|
|
323
|
+
function configureQuestion(panel: NotebookPanel): void {
|
|
378
324
|
const notebook = panel.content;
|
|
379
325
|
const model = notebook.model;
|
|
380
326
|
if (!model) {
|
|
381
327
|
return;
|
|
382
328
|
}
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
})
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
const cell = notebook.
|
|
329
|
+
if (!notebook.activeCell) {
|
|
330
|
+
model.sharedModel.insertCell(0, {
|
|
331
|
+
cell_type: 'markdown',
|
|
332
|
+
source: '',
|
|
333
|
+
metadata: {}
|
|
334
|
+
});
|
|
335
|
+
notebook.activeCellIndex = 0;
|
|
336
|
+
} else if (notebook.activeCell.model.type !== 'markdown') {
|
|
337
|
+
NotebookActions.changeCellType(notebook, 'markdown');
|
|
338
|
+
}
|
|
339
|
+
const cell = notebook.activeCell;
|
|
340
|
+
cell?.model.setMetadata('codebind', { kind: 'question', model: 'model' });
|
|
394
341
|
if (cell instanceof MarkdownCell) {
|
|
395
342
|
cell.rendered = false;
|
|
396
343
|
}
|
|
@@ -429,7 +376,6 @@ async function runQuestion(panel: NotebookPanel): Promise<void> {
|
|
|
429
376
|
await showErrorMessage('Empty Codebind question', 'Write a question before sending it.');
|
|
430
377
|
return;
|
|
431
378
|
}
|
|
432
|
-
cell.node.classList.remove(QUESTION_ERROR_CLASS);
|
|
433
379
|
state.runningQuestions.set(cell.model.id, cell.model);
|
|
434
380
|
refreshQuestionCells(panel);
|
|
435
381
|
if (cell instanceof MarkdownCell) {
|
|
@@ -454,7 +400,7 @@ function connectPanel(panel: NotebookPanel, app: JupyterFrontEnd): void {
|
|
|
454
400
|
'codebindQuestion',
|
|
455
401
|
new ToolbarButton({
|
|
456
402
|
label: 'Question',
|
|
457
|
-
tooltip: '
|
|
403
|
+
tooltip: 'Use the selected cell as a Codebind Question',
|
|
458
404
|
onClick: () => {
|
|
459
405
|
void app.commands.execute(INSERT_QUESTION);
|
|
460
406
|
}
|
|
@@ -472,13 +418,12 @@ const plugin: JupyterFrontEndPlugin<void> = {
|
|
|
472
418
|
autoStart: true,
|
|
473
419
|
requires: [INotebookTracker],
|
|
474
420
|
activate: (app: JupyterFrontEnd, tracker: INotebookTracker): void => {
|
|
475
|
-
ensureStyles();
|
|
476
421
|
app.commands.addCommand(INSERT_QUESTION, {
|
|
477
|
-
label: '
|
|
422
|
+
label: 'Use Selected Cell as Codebind Question',
|
|
478
423
|
execute: () => {
|
|
479
424
|
const panel = tracker.currentWidget;
|
|
480
425
|
if (panel) {
|
|
481
|
-
|
|
426
|
+
configureQuestion(panel);
|
|
482
427
|
}
|
|
483
428
|
}
|
|
484
429
|
});
|
codebind-0.5.0/data/share/jupyter/labextensions/codebind-jupyterlab/static/590.31336058307703b3.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";(self.rspackChunkcodebind_jupyterlab=self.rspackChunkcodebind_jupyterlab||[]).push([[590],{509(e,t,n){n.r(t);var o=n(511),l=n(343),i=n(171);let r="codebind:insert-question",d="codebind:run-question",s="jp-CodebindQuestionCell",u="jp-CodebindQuestionCell-running",c="jp-CodebindQuestionCell-error",a=new WeakMap;function p(e){let t=e.getMetadata("codebind");return"object"!=typeof t||null===t||"question"!==t.kind?null:{kind:"question",model:"string"==typeof t.model?t.model:"model"}}function m(e){let t=a.get(e);for(let n of e.content.widgets){let e=p(n.model);n.node.classList.toggle(s,null!==e),n.node.classList.toggle(u,t?.runningQuestions.has(n.model.id)??!1)}}function f(e){let t=e.sessionContext.session?.kernel;if(!t)return;let n=a.get(e)??{comm:null,runningQuestions:new Map};a.set(e,n),n.comm=null,n.runningQuestions.clear();let l=null,r=new Map,d=(t=!0)=>{if(!l)return;let n=e.content,o=l;if(l=null,o.parentModel&&null!==o.parentExecutionCount&&(o.parentModel.executionCount=o.parentExecutionCount),t&&o.resumeModel){let e=n.widgets.findIndex(e=>e.model===o.resumeModel);e>=0&&(n.activeCellIndex=e)}};t.registerCommTarget("codebind",(s,u)=>{s.onMsg=s=>{var u;let a,p,f=s.content.data;if(!function(e){if("object"!=typeof e||null===e)return!1;if("markdown_cell"===e.type)return"string"==typeof e.source;if("code_cell_started"===e.type)return"string"==typeof e.cell_id&&"string"==typeof e.source;if("code_cell_output"===e.type)return"string"==typeof e.cell_id&&"object"==typeof e.output&&null!==e.output;if("code_cell_clear"===e.type)return"string"==typeof e.cell_id&&"boolean"==typeof e.wait;if("question_finished"===e.type){let t=e.error;return"string"==typeof e.cell_id&&(null===t||"object"==typeof t&&"string"==typeof t.type&&"string"==typeof t.message)}return"code_cell_finished"===e.type&&"string"==typeof e.cell_id&&("number"==typeof e.execution_count||null===e.execution_count)&&Array.isArray(e.outputs)}(f))return;if("question_finished"===f.type){let t=n.runningQuestions.get(f.cell_id);if(n.runningQuestions.delete(f.cell_id),t){let n=e.content.widgets.find(e=>e.model===t);n?.node.classList.toggle(c,null!==f.error)}m(e),d(!1),f.error&&(0,o.showErrorMessage)(`Codebind question: ${f.error.type}`,f.error.message);return}if("code_cell_output"===f.type)return void r.get(f.cell_id)?.outputs.add(f.output);if("code_cell_clear"===f.type)return void r.get(f.cell_id)?.outputs.clear(f.wait);if("code_cell_finished"===f.type){let e=r.get(f.cell_id);if(!e)return;e.outputs.fromJSON(f.outputs),e.executionCount=f.execution_count,e.executionState="idle",l&&null===l.parentExecutionCount&&null!==f.execution_count&&(l.parentExecutionCount=f.execution_count-1);return}let g=(()=>{if(l)return l;let n=e.content,o=n.widgets.findIndex(e=>"code"===e.model.type&&"running"===e.model.executionState);l={parentModel:o>=0?n.widgets[o].model:null,parentExecutionCount:null,resumeModel:n.activeCell?.model??null,nextIndex:o>=0?o+1:n.activeCell?n.activeCellIndex+1:0};let i=(e,n)=>{"idle"===n&&(t.statusChanged.disconnect(i),d())};return t.statusChanged.connect(i),l})(),y=(u=g.nextIndex,(p=(a=e.content).model)?("code_cell_started"===f.type?p.sharedModel.insertCell(u,{cell_type:"code",source:f.source,metadata:{trusted:!0},execution_count:null,outputs:[]}):p.sharedModel.insertCell(u,{cell_type:"markdown",source:f.source,metadata:{}}),a.activeCellIndex=u,a.deselectAll(),"markdown_cell"===f.type&&i.NotebookActions.run(a),a.scrollToItem(u),a.widgets[u]?.model??null):null);"code_cell_started"===f.type&&y?.type==="code"&&(y.executionState="running",r.set(f.cell_id,y)),g.nextIndex+=1},n.comm=s,s.onClose=()=>{n.comm===s&&(n.comm=null)},s.send({type:"ready"})})}async function g(e){let t=e.content,n=t.activeCell;if(!n)return;let i=p(n.model);if(!i)return;let r=a.get(e);if(!r?.comm)return void await (0,o.showErrorMessage)("Codebind is not connected","Run %load_ext codebind in this kernel before sending a Question cell.");if(r.runningQuestions.size>0)return void await (0,o.showErrorMessage)("Codebind is busy","Wait for the current question to finish before sending another.");let d=n.model.sharedModel.getSource().trim();d?(n.node.classList.remove(c),r.runningQuestions.set(n.model.id,n.model),m(e),n instanceof l.MarkdownCell&&(n.rendered=!0),t.mode="command",r.comm.send({type:"question",cell_id:n.model.id,question:d,model:i.model})):await (0,o.showErrorMessage)("Empty Codebind question","Write a question before sending it.")}function y(e,t){a.set(e,{comm:null,runningQuestions:new Map}),e.toolbar.insertItem(10,"codebindQuestion",new o.ToolbarButton({label:"Question",tooltip:"Insert a Codebind Question cell",onClick:()=>{t.commands.execute(r)}})),e.content.modelContentChanged.connect(()=>m(e)),e.context.ready.then(()=>m(e)),e.sessionContext.ready.then(()=>f(e)),e.sessionContext.kernelChanged.connect(()=>f(e))}let b={id:"codebind-jupyterlab:plugin",description:"Insert Codebind executions as native notebook cells.",autoStart:!0,requires:[i.INotebookTracker],activate:(e,t)=>{!function(){if(document.getElementById("codebind-question-styles"))return;let e=document.createElement("style");e.id="codebind-question-styles",e.textContent=`
|
|
2
|
-
.${s} {
|
|
3
|
-
border-left: 3px solid var(--jp-brand-color1);
|
|
4
|
-
background: color-mix(in srgb, var(--jp-brand-color1) 6%, transparent);
|
|
5
|
-
}
|
|
6
|
-
.${s} .jp-Cell-inputWrapper::before {
|
|
7
|
-
content: "Question";
|
|
8
|
-
display: block;
|
|
9
|
-
padding: 4px 10px 0;
|
|
10
|
-
color: var(--jp-brand-color1);
|
|
11
|
-
font-size: var(--jp-ui-font-size0);
|
|
12
|
-
font-weight: 600;
|
|
13
|
-
letter-spacing: 0.04em;
|
|
14
|
-
text-transform: uppercase;
|
|
15
|
-
}
|
|
16
|
-
.${u} {
|
|
17
|
-
border-left-color: var(--jp-warn-color1);
|
|
18
|
-
opacity: 0.78;
|
|
19
|
-
}
|
|
20
|
-
.${c} {
|
|
21
|
-
border-left-color: var(--jp-error-color1);
|
|
22
|
-
}
|
|
23
|
-
`,document.head.appendChild(e)}(),e.commands.addCommand(r,{label:"Insert Codebind Question",execute:()=>{let e=t.currentWidget;e&&function(e){let t=e.content,n=t.model;if(!n)return;let o=t.activeCell?t.activeCellIndex+1:0;n.sharedModel.insertCell(o,{cell_type:"markdown",source:"",metadata:{codebind:{kind:"question",model:"model"}}}),t.activeCellIndex=o,t.deselectAll();let i=t.widgets[o];i instanceof l.MarkdownCell&&(i.rendered=!1),t.mode="edit",m(e),i?.editor?.focus()}(e)}}),e.commands.addCommand(d,{label:"Send Codebind Question",isEnabled:()=>{let e=t.currentWidget?.content.activeCell;return!!e&&null!==p(e.model)},execute:async()=>{let e=t.currentWidget;e&&await g(e)}}),e.commands.addKeyBinding({command:d,keys:["Shift Enter"],selector:`.jp-Notebook .${s}`}),e.contextMenu.addItem({command:r,selector:".jp-Notebook .jp-Cell",rank:8}),t.forEach(t=>y(t,e)),t.widgetAdded.connect((t,n)=>y(n,e))}};n.d(t,{},{default:b})}}]);
|
|
File without changes
|
{codebind-0.5.0 → codebind-0.5.2}/data/share/jupyter/labextensions/codebind-jupyterlab/install.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|