Skip to content

Add Kiro to databricks aitools install - #6436

Open
antonyprasad-db wants to merge 1 commit into
databricks:mainfrom
antonyprasad-db:antonyprasad-db/aitools-add-kiro
Open

Add Kiro to databricks aitools install#6436
antonyprasad-db wants to merge 1 commit into
databricks:mainfrom
antonyprasad-db:antonyprasad-db/aitools-add-kiro

Conversation

@antonyprasad-db

Copy link
Copy Markdown

Summary

Adds Kiro to the agent registry so databricks aitools install treats it like any other skills-only agent. Follows the same shape as Goose (#6214), Gemini CLI (#6204) and Pi (#6199).

Why

Kiro reads agent skills from ~/.kiro/skills (user-level) and <workspace>/.kiro/skills (workspace-level), each skill a directory containing SKILL.md — exactly the layout this repo already emits. Today Kiro users have to fall back to databricks aitools install --path ~/.kiro/skills, which works but records no state, so aitools update and aitools uninstall never see those skills and aitools list reports every one of them as not installed.

Verification

Tested on macOS with Kiro 1.0.182.

Kiro's loader (NodeProgressiveContextSource) rejects a skill when frontmatter is missing, when name or description is empty, when name is outside 1–64 characters, when description exceeds 1024, or when name does not equal the directory name. Everything this repo emits satisfies that.

With 29 stable skills installed into ~/.kiro/skills, Kiro accepted all 29. The only rejections in that directory were two deliberately malformed probe skills added to confirm the loader was really scanning, plus two unrelated pre-existing skills whose frontmatter name disagrees with their directory:

skill.frontmatter.missing   zz-probe-no-frontmatter      (deliberate probe)
skill.fields.missing        zz-probe-no-description      (deliberate probe)
skill.name.mismatch         analyze-mlflow-trace         (pre-existing, unrelated)
skill.name.mismatch         analyze-mlflow-chat-session  (pre-existing, unrelated)

Worth knowing for anyone testing this: Kiro resolves skills lazily when a chat session starts, not when the IDE launches. Installing and then looking at an already-open Kiro shows nothing until a new session begins.

Notes on the registry entry

  • SkillsSubdir is left empty because Kiro's directory is literally skills, so the default applies.
  • SupportsProjectScope: true — Kiro's own picker text documents both scopes.
  • Binary: "kiro" is set, but Kiro is IDE-first so the binary is frequently absent from PATH. Detection then falls back to ConfigDir and reports files-only, which is the correct state for a skills-only agent (Plugin nil).

Telemetry

Also adds AitoolsAgentTypeKiro and the matching agentType case, so Kiro installs are not logged as TYPE_UNSPECIFIED and TestAgentTypeCoversRegistry stays green.

One thing a maintainer will need to do: that guard's failure message notes the enum lives in enum.proto (Universe) as well as aitools_install.go (CLI). Only the CLI half is in this PR, since the Universe proto isn't in this repo. Happy to follow whatever process you prefer for the proto side.

Tests

go test ./cmd/aitools/... ./libs/aitools/... ./libs/telemetry/...

ok  github.com/databricks/cli/cmd/aitools              2.027s
ok  github.com/databricks/cli/libs/aitools/agents
ok  github.com/databricks/cli/libs/aitools/installer
ok  github.com/databricks/cli/libs/telemetry           4.959s
ok  github.com/databricks/cli/libs/telemetry/protos    0.826s

Test coverage added alongside the existing Goose cases: registry paths and project detection in libs/aitools/agents/registry_test.go, the skills-only assertion in agents_test.go, and the project-scope declaration in libs/aitools/installer/installer_test.go.

Kiro reads agent skills from ~/.kiro/skills (user-level) and
<workspace>/.kiro/skills (workspace-level), each skill a directory holding a
SKILL.md. Its loader requires frontmatter name and description, rejects a name
longer than 64 characters or a description longer than 1024, and requires the
name to match its directory. That is already what this repo emits, so Kiro
needs only a registry entry.

Verified on macOS with Kiro 1.0.182: all 29 stable skills written to
~/.kiro/skills are accepted by Kiro's loader. The only rejections in that
directory were two deliberately malformed probes and two unrelated
pre-existing skills whose frontmatter name does not match their directory.

Kiro is IDE-first, so the `kiro` binary is frequently absent from PATH.
Detection then falls back to ConfigDir and reports files-only, which is the
correct state for a skills-only agent (Plugin nil).

Also adds the telemetry enum and agentType case so Kiro installs are not
logged as TYPE_UNSPECIFIED, keeping TestAgentTypeCoversRegistry green. Note
the matching AitoolsAgentType value is still needed in enum.proto on the
Universe side; only the CLI half is in this change.

Follows the same shape as Goose (databricks#6214), Gemini CLI (databricks#6204) and Pi (databricks#6199).
@github-actions

Copy link
Copy Markdown
Contributor

Approval status: pending

/cmd/aitools/ - needs approval

Files: cmd/aitools/telemetry.go
Suggested: @lennartkats-db
Also eligible: @simonfaltum, @parthban-db, @fjakobs, @Shridhad, @atilafassina, @keugenek, @igrekun, @pkosiec, @MarioCadenas, @pffigueiredo, @ditadi, @calvarjorge, @renaudhartert-db, @hectorcast-db, @tanmay-db, @Divyansh-db, @tejaskochar-db, @mihaimitrea-db, @chrisst, @rauchy

/libs/aitools/ - needs approval

4 files changed
Suggested: @lennartkats-db
Also eligible: @simonfaltum, @parthban-db, @fjakobs, @Shridhad, @atilafassina, @keugenek, @igrekun, @pkosiec, @MarioCadenas, @pffigueiredo, @ditadi, @calvarjorge, @renaudhartert-db, @hectorcast-db, @tanmay-db, @Divyansh-db, @tejaskochar-db, @mihaimitrea-db, @chrisst, @rauchy

/libs/telemetry/ - needs approval

Files: libs/telemetry/protos/aitools_install.go
Suggested: @simonfaltum
Also eligible: @parthban-db, @renaudhartert-db, @hectorcast-db, @tanmay-db, @Divyansh-db, @tejaskochar-db, @mihaimitrea-db, @chrisst, @rauchy

Any maintainer (@andrewnester, @anton-107, @denik, @pietern, @shreyas-goenka, @simonfaltum, @renaudhartert-db, @janniklasrose, @lennartkats-db, @rugpanov, @rclarey) can approve all areas.
See OWNERS for ownership rules.

@github-actions

Copy link
Copy Markdown
Contributor

An authorized user can trigger integration tests manually by following the instructions below:

Trigger:
go/deco-tests-run/cli

Inputs:

  • PR number: 6436
  • Commit SHA: 136fa64efba03f151c8db2ca704db8dc826cd941

Checks will be approved automatically on success.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant