{"_id":"@aolney/jupyterlab-starchat-extension","_rev":"2-89c7c6219d6151bc0980097519cc7b1a","name":"@aolney/jupyterlab-starchat-extension","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.1":{"name":"@aolney/jupyterlab-starchat-extension","version":"0.1.1","description":"A JupyterLab extension that implements the StarChat coding assistant","keywords":["jupyter","jupyterlab","jupyterlab-extension"],"homepage":"https://github.com/aolney/jupyterlab-starchat-extension","bugs":{"url":"https://github.com/aolney/jupyterlab-starchat-extension/issues"},"license":"Apache-2.0","author":{"name":"Andrew M. Olney"},"main":"lib/index.js","types":"lib/index.d.ts","style":"style/index.css","repository":{"type":"git","url":"git+https://github.com/aolney/jupyterlab-starchat-extension.git"},"scripts":{"build":"fable-splitter src -o lib","watch":"fable-splitter src -o lib -w"},"dependencies":{"@babel/runtime-corejs2":"^7.0.0","@jupyterlab/application":"^1.0.0","@jupyterlab/apputils":"^1.2.1","@phosphor/coreutils":"^1.3.1","@phosphor/messaging":"^1.3.0","@phosphor/widgets":"^1.9.3","markdown-it":"^13.0.1"},"devDependencies":{"@babel/core":"^7.3.4","@babel/plugin-transform-runtime":"^7.0.0","@babel/preset-env":"^7.0.0","babel-loader":"^8.0.6","copy-webpack-plugin":"^5.0.2","core-js":"^3.0.0","css-loader":"^2.1.1","fable-compiler":"^2.1.12","fable-loader":"^2.1.9","fable-splitter":"^2.2.1","file-loader":"^4.0.0","gh-pages":"^2.0.1","html-webpack-plugin":"^3.2.0","isomorphic-fetch":"^2.2.1","jsdom":"^15.1.0","jsdom-global":"^3.0.2","loglevel":"^1.5.0","mini-css-extract-plugin":"^0.5.0","raf-stub":"^2.0.2","remotedev":"^0.2.9","resolve-url-loader":"^3.1.0","rimraf":"^2.6.1","style-loader":"^0.18.2","typescript":"~3.5.2","webpack":"^4.29.3","webpack-cli":"^3.2.3","webpack-dev-server":"^3.1.14"},"sideEffects":["style/*.css"],"jupyterlab":{"extension":true},"gitHead":"e84d34b7dba00ea73fdcaf427dac70a26613a90b","_id":"@aolney/jupyterlab-starchat-extension@0.1.1","_nodeVersion":"14.21.3","_npmVersion":"6.14.18","dist":{"integrity":"sha512-fJ/nGUN6zlQRTlM/qhTuSmsYEXNQw9mDRPQQ/4XUVwW4QOcPyktOAjwtHBTAyzaNcrerbxNrjY7pV2sV4v29ug==","shasum":"6b248d199ef639a791707149ebb325615c621f3d","tarball":"https://registry.npmjs.org/@aolney/jupyterlab-starchat-extension/-/jupyterlab-starchat-extension-0.1.1.tgz","fileCount":38,"unpackedSize":596544,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYh2XjGoI/7rhSa6YPoBXYL7gqTunSMPsN6LdP0uIjvAIhAJfWhV9cmLkp7PtU1E+1WXkUPvOiSP5+AfT0y5xP2fuN"}]},"_npmUser":{"name":"aolney","email":"aolney@memphis.edu"},"directories":{},"maintainers":[{"name":"aolney","email":"aolney@memphis.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jupyterlab-starchat-extension_0.1.1_1686353920327_0.8857832398963144"},"_hasShrinkwrap":false},"0.1.2":{"name":"@aolney/jupyterlab-starchat-extension","version":"0.1.2","description":"A JupyterLab extension that implements the StarChat coding assistant","keywords":["jupyter","jupyterlab","jupyterlab-extension"],"homepage":"https://github.com/aolney/jupyterlab-starchat-extension","bugs":{"url":"https://github.com/aolney/jupyterlab-starchat-extension/issues"},"license":"Apache-2.0","author":{"name":"Andrew M. Olney"},"main":"lib/index.js","types":"lib/index.d.ts","style":"style/index.css","repository":{"type":"git","url":"git+https://github.com/aolney/jupyterlab-starchat-extension.git"},"scripts":{"build":"fable-splitter src -o lib","watch":"fable-splitter src -o lib -w"},"dependencies":{"@babel/runtime-corejs2":"^7.0.0","@jupyterlab/application":"^1.0.0","@jupyterlab/apputils":"^1.2.1","@phosphor/coreutils":"^1.3.1","@phosphor/messaging":"^1.3.0","@phosphor/widgets":"^1.9.3","markdown-it":"^13.0.1"},"devDependencies":{"@babel/core":"^7.3.4","@babel/plugin-transform-runtime":"^7.0.0","@babel/preset-env":"^7.0.0","babel-loader":"^8.0.6","copy-webpack-plugin":"^5.0.2","core-js":"^3.0.0","css-loader":"^2.1.1","fable-compiler":"^2.1.12","fable-loader":"^2.1.9","fable-splitter":"^2.2.1","file-loader":"^4.0.0","gh-pages":"^2.0.1","html-webpack-plugin":"^3.2.0","isomorphic-fetch":"^2.2.1","jsdom":"^15.1.0","jsdom-global":"^3.0.2","loglevel":"^1.5.0","mini-css-extract-plugin":"^0.5.0","raf-stub":"^2.0.2","remotedev":"^0.2.9","resolve-url-loader":"^3.1.0","rimraf":"^2.6.1","style-loader":"^0.18.2","typescript":"~3.5.2","webpack":"^4.29.3","webpack-cli":"^3.2.3","webpack-dev-server":"^3.1.14"},"sideEffects":["style/*.css"],"jupyterlab":{"extension":true},"gitHead":"a0c08886a42176a0f5db3c007713080dc69e3e4f","_id":"@aolney/jupyterlab-starchat-extension@0.1.2","_nodeVersion":"14.21.3","_npmVersion":"6.14.18","dist":{"integrity":"sha512-kxbsEuAFg3bJ3Mel0wd2viwAztOKZUCTyaKWkOwUieHcbhkMHasunOmgDu3mSiY6I1n5Lpzoe175mZS8YQ4vMw==","shasum":"75ebcf96ac4fb458bc2389a9cd8b8ba5f259abbc","tarball":"https://registry.npmjs.org/@aolney/jupyterlab-starchat-extension/-/jupyterlab-starchat-extension-0.1.2.tgz","fileCount":38,"unpackedSize":599999,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHVw/CqwjkowBU9zpHGTFk+ZZnfMwq1wr6vPOkUM7fVCAiAuf4th+lM49uE4OWclST+/BHC/JglNfRSNfj8OM+u/tg=="}]},"_npmUser":{"name":"aolney","email":"aolney@memphis.edu"},"directories":{},"maintainers":[{"name":"aolney","email":"aolney@memphis.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jupyterlab-starchat-extension_0.1.2_1686609178663_0.3451544866513334"},"_hasShrinkwrap":false},"0.1.3":{"name":"@aolney/jupyterlab-starchat-extension","version":"0.1.3","description":"A JupyterLab extension that implements the StarChat coding assistant","keywords":["jupyter","jupyterlab","jupyterlab-extension"],"homepage":"https://github.com/aolney/jupyterlab-starchat-extension","bugs":{"url":"https://github.com/aolney/jupyterlab-starchat-extension/issues"},"license":"Apache-2.0","author":{"name":"Andrew M. Olney"},"main":"lib/index.js","types":"lib/index.d.ts","style":"style/index.css","repository":{"type":"git","url":"git+https://github.com/aolney/jupyterlab-starchat-extension.git"},"scripts":{"build":"fable-splitter src -o lib","watch":"fable-splitter src -o lib -w"},"dependencies":{"@babel/runtime-corejs2":"^7.0.0","@jupyterlab/application":"^1.0.0","@jupyterlab/apputils":"^1.2.1","@phosphor/coreutils":"^1.3.1","@phosphor/messaging":"^1.3.0","@phosphor/widgets":"^1.9.3","markdown-it":"^13.0.1"},"devDependencies":{"@babel/core":"^7.3.4","@babel/plugin-transform-runtime":"^7.0.0","@babel/preset-env":"^7.0.0","babel-loader":"^8.0.6","copy-webpack-plugin":"^5.0.2","core-js":"^3.0.0","css-loader":"^2.1.1","fable-compiler":"^2.1.12","fable-loader":"^2.1.9","fable-splitter":"^2.2.1","file-loader":"^4.0.0","gh-pages":"^2.0.1","html-webpack-plugin":"^3.2.0","isomorphic-fetch":"^2.2.1","jsdom":"^15.1.0","jsdom-global":"^3.0.2","loglevel":"^1.5.0","mini-css-extract-plugin":"^0.5.0","raf-stub":"^2.0.2","remotedev":"^0.2.9","resolve-url-loader":"^3.1.0","rimraf":"^2.6.1","style-loader":"^0.18.2","typescript":"~3.5.2","webpack":"^4.29.3","webpack-cli":"^3.2.3","webpack-dev-server":"^3.1.14"},"sideEffects":["style/*.css"],"jupyterlab":{"extension":true},"gitHead":"c2628c1754f9abcd7d4d3d2c20998806135b4370","_id":"@aolney/jupyterlab-starchat-extension@0.1.3","_nodeVersion":"17.1.0","_npmVersion":"8.1.2","dist":{"integrity":"sha512-ZlPBKkYYqCeIaAydBRogDmbmVLIg+amTiPadEJeJx8IpNDhgaz3lUf3vQwVQcwjvvb/1skQrptgt6n/KtTNVRw==","shasum":"a0959f4b721569faf28098256def2738ae7067e0","tarball":"https://registry.npmjs.org/@aolney/jupyterlab-starchat-extension/-/jupyterlab-starchat-extension-0.1.3.tgz","fileCount":38,"unpackedSize":600091,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEJA2EszT09maR1Z/zhePvtzKF+WVoeUuDEKT5XulNy1AiEAnhT2Wgwqgm8/mLjVs/fBDcOj0Q01IAkywo2/Dt/ikJ0="}]},"_npmUser":{"name":"aolney","email":"aolney@memphis.edu"},"directories":{},"maintainers":[{"name":"aolney","email":"aolney@memphis.edu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/jupyterlab-starchat-extension_0.1.3_1686689535325_0.6485362422355225"},"_hasShrinkwrap":false}},"time":{"created":"2023-06-09T23:38:40.260Z","0.1.1":"2023-06-09T23:38:40.508Z","modified":"2023-06-13T20:52:15.674Z","0.1.2":"2023-06-12T22:32:58.826Z","0.1.3":"2023-06-13T20:52:15.570Z"},"maintainers":[{"name":"aolney","email":"aolney@memphis.edu"}],"description":"A JupyterLab extension that implements the StarChat coding assistant","homepage":"https://github.com/aolney/jupyterlab-starchat-extension","keywords":["jupyter","jupyterlab","jupyterlab-extension"],"repository":{"type":"git","url":"git+https://github.com/aolney/jupyterlab-starchat-extension.git"},"author":{"name":"Andrew M. Olney"},"bugs":{"url":"https://github.com/aolney/jupyterlab-starchat-extension/issues"},"license":"Apache-2.0","readme":"# jupyterlab-starchat-extension\n\n> **Note**\n> You will need a StarChat endpoint. See [starchat-service](https://github.com/aolney/starchat-service)\n\nA [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) extension that implements the [StarChat](https://huggingface.co/spaces/HuggingFaceH4/starchat-playground) coding assistant. Uses [Fable](https://fable.io/) tooling.\n\nThe following query string parameters enable functionality:\n\n- `endpoint=xxx` specifies a url for the StarChat endpoint (e.g. https://yourdomain.com/starchat) **the extension will not work properly without this**\n- `log=xxx` specifies a url for a logging endpoint (e.g. https://yourdomain.com/log)\n- `id=xxx` adds an identifier for logging\n\nThe log data format is `{username: string, json: string}`.\n\n**NOTE: This plugin requires jupyterlab <= 1.2.6, so if you have a higher version (e.g. 2.X) you will need to execute `conda install jupyterlab=1.2.6` or similar for `pip`. The conda environment specification provided in `environment.yml` will work as-is (e.g. `mamba env create -f environment.yml`) or can be used as a template.**\n\n## Installation\n\n```bash\njupyter labextension install @aolney/jupyterlab-starchat-extension\n```\n\n## Updating to latest version\n\n```bash\njupyter labextension update @aolney/jupyterlab-starchat-extension\n```\n\n\n## Development\n\nThis is based on my personal preferences. For more options, [see the extension development guide](https://jupyterlab.readthedocs.io/en/stable/developer/extension_dev.html#developer-extensions).\n\n### Prerequisites\n\n* [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/getting_started/installation.html)\n* [Fable](https://fable.io/)\n* An F# editor like Visual Studio Code with [Ionide](http://ionide.io/) \n* Chrome\n* \n### Initial install and after library adds\n\n```bash\nnpm install\nmono .paket/paket.exe install\nnpm run build\n```\n\n### Terminal A in VSCode\n\n```bash\njupyter labextension install . --no-build\nnpm run watch\n```\n\nThis will watch your F# code and trigger builds of `index.js`.\n\nIf you prefer not to trigger builds using a watch, you can `npm run build` every time you want a new build.\n\n### Terminal B in VSCode\n\n```bash\njupyter lab --watch\n```\n\nThis will watch your extension and trigger builds of it.\n\nEven with this watch, you still need to refresh your browser during development.\n\n## Project structure\n\n### npm/yarn\n\nJS dependencies are declared in `package.json`, while `package-lock.json` is a lock file automatically generated.\n\n### paket\n\n[Paket](https://fsprojects.github.io/Paket/) \n\n> Paket is a dependency manager for .NET and mono projects, which is designed to work well with NuGet packages and also enables referencing files directly from Git repositories or any HTTP resource. It enables precise and predictable control over what packages the projects within your application reference.\n\n.NET dependencies are declared in `paket.dependencies`. The `src/paket.references` lists the libraries actually used in the project. Since you can have several F# projects, we could have different custom `.paket` files for each project.\n\nLast but not least, in the `.fsproj` file you can find a new node: `\t<Import Project=\"..\\.paket\\Paket.Restore.targets\" />` which just tells the compiler to look for the referenced libraries information from the `.paket/Paket.Restore.targets` file.\n\n### Fable-splitter\n\n[Fable-splitter]() is a standalone tool which outputs separated files instead of a single bundle. Here all the js files are put into the `lib`. And the main entry point is our `index.js` file.\n\n### Imports\n\nBecause Jupyter uses Typescript, we can use [ts2fable](https://github.com/fable-compiler/ts2fable) to generate strongly typed imports of Jupyter's JS packages. Unfortunately these are a bit huge and the conversion is messy. `Jupyter.fs` contains the minimal imports for this demo repo, and these imports were tweaked out of the files in the `ts2fable-attempt` directory.\n\n\n","readmeFilename":"README.md"}