Skip to content

Replace registries with new add command which installs from git without filtering#32

Merged
jakemac53 merged 14 commits into
serverpod:mainfrom
jakemac53:drop-registries
Jun 26, 2026
Merged

Replace registries with new add command which installs from git without filtering#32
jakemac53 merged 14 commits into
serverpod:mainfrom
jakemac53:drop-registries

Conversation

@jakemac53

@jakemac53 jakemac53 commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator

Closes dart-lang/ai#470

  • Adds a new add command with syntax similar to npx skills add, standard commands from https://skills.sh will work if you substitute dart run skills@ for npx skills.
  • Example to install dart skills dart run skills@ add dart-lang/skills. I filed a separate issue for us to suggest dart-lang/skills and flutter/skills on the first run in any project.
  • Drop all registry support, in favor of just installing any/all skills directly from git repos.
    • The main difference is we don't search for skills matching names of package dependencies.
  • Drops the registry command entirely,
  • Reworks the manifest (with a migration) to drop the registry section and merge it into the regular skills section. Keys are now not package names but source URIs. For packages, these are just package:<name>.
  • The get command will now list any installed repos as available to install skills from.

jakemac53 added 11 commits June 23, 2026 19:44
…f explicit manifest state

This commit removes the explicit `gitRepos` array tracking from the local `SkillManifest` and dynamically infers installed git repositories by inspecting the `sourceUri`s of installed skills. This eliminates duplicate state and simplifies the manifest model.

Additionally:
- Transitions registries to a unified GitRepo model.
- Removes manual tracking of git repos from the `skills add` command and skill_installer.
- Modifies `skills get` to dynamically scan explicit gitUris along with inferred repos.
- Improves migration logic to seamlessly convert old `package:<name>` URIs to `https://` URIs for registries converted to local git clones.
- Isolates package URI prefix migrations to a dedicated function evaluated prior to registry migrations.

TAG=agy
CONV=84ac14d5-9b15-42f2-9ed9-27befbf8c286
@jakemac53 jakemac53 marked this pull request as ready for review June 24, 2026 17:53
@jakemac53

Copy link
Copy Markdown
Collaborator Author

cc @kenzieschmoll for review

Comment thread lib/src/commands/add_command.dart
Comment thread lib/src/commands/add_command.dart
Comment thread lib/src/commands/add_command.dart
Comment thread lib/src/commands/get_command.dart
Comment thread lib/src/commands/get_skills.dart Outdated
Comment thread lib/src/commands/get_skills.dart
Comment thread lib/src/commands/remove_command.dart
Comment thread lib/src/core/git_repos.dart
Comment thread lib/src/core/migration.dart Outdated
Comment thread lib/src/core/git_sync.dart Outdated
Comment thread lib/src/commands/remove_command.dart Outdated
Comment thread lib/src/core/git_sync.dart Outdated
Comment thread test/commands/remove_command_test.dart
Comment thread test/commands/remove_command_test.dart

@kenzieschmoll kenzieschmoll left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you also add tests for the cases I called out where --all and specific skill names may be passed?

Additional test coverage comments:

  • No AddCommand Tests: The new command (lib/src/commands/add_command.dart) has no test file
  • Untested parseGitRepoArg: The URL parsing utility in lib/src/core/git_repos.dart has no unit tests.
  • Migration Edge Cases: There is no test coverage for when a user aborts the migration dialog or when migrating SSH-cloned legacy repositories (the latter currently causes a runtime crash).

@jakemac53 jakemac53 requested a review from kenzieschmoll June 25, 2026 17:25
@jakemac53

Copy link
Copy Markdown
Collaborator Author

Addressed all comments so I am going to go ahead and land this and start work on the fork into dart-lang/ai

@jakemac53 jakemac53 merged commit d71f3a3 into serverpod:main Jun 26, 2026
4 checks passed
@jakemac53 jakemac53 deleted the drop-registries branch June 26, 2026 16:17
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.

Allow installing skills directly from git repos

2 participants