Skip to content
Merged
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
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,8 @@ Command "install" is deprecated, use "databricks aitools install" instead.
Flag --global has been deprecated, use --scope=global
Installing Databricks skills for Claude Code...
Using skills version test-ref
Warn: --experimental was set but the manifest at test-ref exposes no experimental skills. Set DATABRICKS_SKILLS_REF to a release that includes them (or =main for the latest).
Fetching skills manifest...
Warn: --experimental was set but the manifest at test-ref exposes no experimental skills. Set DATABRICKS_SKILLS_REF to a release or ref that includes them.
Downloading test-stable...
Exposing test-stable to 1 agent...
Installed 1 skill.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ Command "install" is deprecated, use "databricks aitools install" instead.
Flag --global has been deprecated, use --scope=global
Installing Databricks skills for Claude Code...
Using skills version test-ref
Fetching skills manifest...
Downloading test-stable-a...
Exposing test-stable-a to 1 agent...
Installed 1 skill.

=== install a specific experimental skill
Expand All @@ -13,6 +16,9 @@ Command "install" is deprecated, use "databricks aitools install" instead.
Flag --global has been deprecated, use --scope=global
Installing Databricks skills for Claude Code...
Using skills version test-ref
Fetching skills manifest...
Downloading test-exp...
Exposing test-exp to 1 agent...
Installed 1 skill.

=== asking for an experimental skill without --experimental flag errors out
Expand All @@ -21,6 +27,7 @@ Command "install" is deprecated, use "databricks aitools install" instead.
Flag --global has been deprecated, use --scope=global
Installing Databricks skills for Claude Code...
Using skills version test-ref
Fetching skills manifest...
Error: skill "test-exp" is experimental; use --experimental to install

Exit code: 1
7 changes: 7 additions & 0 deletions acceptance/experimental/aitools/skills/install/output.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ Command "install" is deprecated, use "databricks aitools install" instead.
Flag --global has been deprecated, use --scope=global
Installing Databricks skills for Claude Code...
Using skills version test-ref
Fetching skills manifest...
Downloading test-stable...
Exposing test-stable to 1 agent...
Installed 1 skill.

=== re-run with --experimental installs the experimental one too
Expand All @@ -13,6 +16,9 @@ Command "install" is deprecated, use "databricks aitools install" instead.
Flag --global has been deprecated, use --scope=global
Installing Databricks skills for Claude Code...
Using skills version test-ref
Fetching skills manifest...
Downloading test-exp...
Exposing test-exp to 1 agent...
Installed 2 skills.

=== no-op re-run is idempotent (no new fetches, no errors)
Expand All @@ -21,4 +27,5 @@ Command "install" is deprecated, use "databricks aitools install" instead.
Flag --global has been deprecated, use --scope=global
Installing Databricks skills for Claude Code...
Using skills version test-ref
Fetching skills manifest...
Installed 2 skills.
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,18 @@ Command "install" is deprecated, use "databricks aitools install" instead.
Flag --global has been deprecated, use --scope=global
Installing Databricks skills for Claude Code...
Using skills version test-ref
Fetching skills manifest...
Downloading alpha...
Exposing alpha to 1 agent...
Downloading beta...
Exposing beta to 1 agent...
Installed 2 skills.

=== update against a release where beta is gone: alpha updates, beta is pruned
>>> DATABRICKS_SKILLS_REF=v2-ref [CLI] experimental aitools update --scope global
Command "update" is deprecated, use "databricks aitools update" instead.
Downloading alpha...
Exposing alpha to 1 agent...
updated alpha v1.0.0 -> v2.0.0
removed beta (no longer in this release)
Updated 1 skill.
Expand Down
1 change: 1 addition & 0 deletions cmd/aitools/install.go
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,7 @@ func executePlan(ctx context.Context, src installer.ManifestSource, plan []agent
}
records := map[string]installer.PluginRecord{}
for _, it := range pluginItems {
cmdio.LogString(ctx, fmt.Sprintf("Installing databricks plugin for %s...", it.agent.DisplayName))
rec, err := installPluginForAgentFn(ctx, it.agent, it.scope, ref)
if err != nil {
cmdio.LogString(ctx, cmdio.Yellow(ctx, fmt.Sprintf("Skipped %s: %v", it.agent.DisplayName, err)))
Expand Down
3 changes: 2 additions & 1 deletion cmd/aitools/install_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ func TestInstallPluginFirstDefault(t *testing.T) {
plugins := setupPluginMock(t)
skills := setupInstallMock(t)

ctx := cmdio.MockDiscard(t.Context())
ctx, stderr := cmdio.NewTestContextWithStderr(t.Context())
cmd := NewInstallCmd()
cmd.SetContext(ctx)

Expand All @@ -298,6 +298,7 @@ func TestInstallPluginFirstDefault(t *testing.T) {
// plugin) does, plus a plugin recommendation.
require.Len(t, *skills, 1)
assert.Equal(t, []string{agents.NameCursor}, (*skills)[0].agents)
assert.Contains(t, stderr.String(), "Installing databricks plugin for Claude Code...")
}

func TestInstallInteractivePickerAndConfirm(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion internal/build/cli-compat.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"1.0.0": { "appkit": "0.38.1", "skills": "latest" },
"1.0.0": { "appkit": "0.38.1", "skills": "0.2.9" },
"0.299.2": { "appkit": "0.24.0", "skills": "0.1.5" }
}
3 changes: 1 addition & 2 deletions libs/aitools/installer/dump.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"maps"
"path/filepath"
"slices"
"strings"

"github.com/databricks/cli/libs/cmdio"
)
Expand All @@ -21,7 +20,7 @@ func DumpSkillsToPath(ctx context.Context, src ManifestSource, destDir string, o
if err != nil {
return 0, err
}
cmdio.LogString(ctx, "Using skills version "+strings.TrimPrefix(ref, "v"))
cmdio.LogString(ctx, "Using skills version "+DisplaySkillsVersion(ref))

manifest, ref, err := FetchSkillsManifestWithFallback(ctx, src, ref, !explicit)
if err != nil {
Expand Down
Loading
Loading