From 3081e4bbe5a124a6b06d07dcf112bf2f23a13d3e Mon Sep 17 00:00:00 2001 From: Matthew Printz Date: Tue, 21 Jul 2026 09:31:49 -0600 Subject: [PATCH 1/7] Integration editor page updates - Remove AdHoc/Specialist Agent from creation list - Add Skills in its place - Ability to upload skils as a zip or .md file - Zip unpacking handled in browser with results populating local interface until save - Backend changes for saving/updating/deleting skills --- beaker-vue/package.json | 3 +- .../integrations/IntegrationPanel.vue | 94 ++- .../integrations/MCPIntegrationEditor.vue | 2 + .../integrations/MCPIntegrationViewer.vue | 2 + .../integrations/SkillIntegrationEditor.vue | 534 ++++++++++++++++++ .../integrations/SkillIntegrationViewer.vue | 2 + .../integrations/SkillResourcePanel.vue | 451 +++++++++++++++ .../src/components/integrations/index.ts | 2 + .../src/pages/IntegrationsInterface.vue | 170 ++++-- beaker-vue/src/util/integration.ts | 33 ++ beaker-vue/src/util/skillArchive.ts | 150 +++++ src/beaker_notebook/app/api/integrations.py | 16 + src/beaker_notebook/kernel.py | 3 + src/beaker_notebook/lib/context.py | 42 ++ src/beaker_notebook/lib/integrations/skill.py | 531 ++++++++++++++++- 15 files changed, 1957 insertions(+), 78 deletions(-) create mode 100644 beaker-vue/src/components/integrations/SkillIntegrationEditor.vue create mode 100644 beaker-vue/src/components/integrations/SkillResourcePanel.vue create mode 100644 beaker-vue/src/util/skillArchive.ts diff --git a/beaker-vue/package.json b/beaker-vue/package.json index c05c34ca..3ef00603 100644 --- a/beaker-vue/package.json +++ b/beaker-vue/package.json @@ -50,6 +50,7 @@ "@codemirror/lang-markdown": "^6.3.2", "@codemirror/lang-python": "^6.1.7", "@codemirror/theme-one-dark": "^6.1.2", + "@jataware/beaker-client": "^2.0.9", "@jupyterlab/coreutils": "^6.4.1", "@jupyterlab/mathjax-extension": "^4.4.1", "@jupyterlab/rendermime": "^4.4.1", @@ -57,7 +58,6 @@ "@primevue/icons": "^4.3.4", "@primevue/themes": "^4.3.4", "ansi-html-community": "^0.0.8", - "@jataware/beaker-client": "^2.0.9", "buffer": "^6.0.3", "codemirror": "^6.0.1", "codemirror-lang-r": "^0.1.1", @@ -65,6 +65,7 @@ "cookie": "^1.0.2", "cytoscape": "^3.31.2", "escape-html": "^1.0.3", + "fflate": "^0.8.3", "filesize": "^10.1.6", "hash-sum": "^2.0.0", "isomorphic-fetch": "^3.0.0", diff --git a/beaker-vue/src/components/integrations/IntegrationPanel.vue b/beaker-vue/src/components/integrations/IntegrationPanel.vue index 305c0223..26c1f62c 100644 --- a/beaker-vue/src/components/integrations/IntegrationPanel.vue +++ b/beaker-vue/src/components/integrations/IntegrationPanel.vue @@ -1,5 +1,11 @@