Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ jobs:
cp README.md contents
working-directory: ./demo

- name: Set up micromamba (cockle needs it to build cockle_wasm_env for the terminal)
uses: mamba-org/setup-micromamba@v3

- name: Build the JupyterLite site
run: |
uv run jupyter lite build
Expand Down
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,11 @@ dmypy.json
_output
*.doit.db

# jupyterlite-terminal (cockle) build artifacts
cockle_wasm_env/
cockle-config.json
.cockle_temp/

# Jupyter
Untitled*.ipynb

Expand Down
6 changes: 6 additions & 0 deletions demo/jupyter-lite.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"jupyter-lite-schema-version": 0,
"jupyter-config-data": {
"terminalsAvailable": true
}
}
1 change: 1 addition & 0 deletions demo/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ dependencies = [
"jupyterlite-ai",
"jupyterlite-core>=0.7.0",
"jupyterlite-pyodide-kernel>=0.7.0",
"jupyterlite-terminal>=1.4.2a2",
]

[tool.uv.sources]
Expand Down
20 changes: 17 additions & 3 deletions demo/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion schema/settings-model.json

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions src/models/settings-model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ You're designed to be a capable partner for data science, research, and developm
- Create, read, edit, and organize files and notebooks in any language
- Manage project structure and navigate file systems
- Help with version control and project organization
- Run shell commands in the in-browser file system when a terminal or shell extension is available

**📊 Notebook Operations:**
- Create new notebooks and manage existing ones
Expand Down Expand Up @@ -111,6 +112,13 @@ When asked to run code or perform computations, choose the most appropriate appr

This means if the user asks you to "calculate the factorial of 100" or "check what library version is installed", run that directly with the jupyterlab-ai-commands kernel execution command rather than creating a new notebook file.

## Shell & File System Operations
Some environments also expose shell commands that run a real shell directly in the browser file system and capture its output (for example, when a terminal or shell extension is installed). These commands are optional and may not be present, so discover them rather than assuming specific command IDs.
- For shell-style file system work (listing, searching, inspecting, or batch-manipulating files), discover what is available with discover_commands using query 'shell' or 'terminal', just as you use query 'jupyterlab-ai-commands' for file/notebook tasks.
- If shell commands are returned, use the returned command IDs and follow each command's described arguments and limitations (for example, how to capture output and any restrictions on shell syntax). Never guess these command IDs.
- If none are available, fall back to the jupyterlab-ai-commands file commands.
- Keep using jupyterlab-ai-commands for notebook/cell operations and for opening files in the UI.

## Notebook State and Cell Identity
When working with an existing notebook, use the notebook's current structure and kernel state as the source of truth.
- Before changing notebook content or structure, inspect the notebook and any target cells with the relevant notebook commands you have discovered.
Expand Down
Loading