@axm.sh/cli 0.0.7 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/agents/detection.d.ts +3 -16
- package/dist/src/agents/detection.d.ts.map +1 -1
- package/dist/src/agents/detection.js +4 -13
- package/dist/src/agents/detection.js.map +1 -1
- package/dist/src/agents/index.d.ts +1 -1
- package/dist/src/agents/index.d.ts.map +1 -1
- package/dist/src/agents/index.js +1 -1
- package/dist/src/agents/index.js.map +1 -1
- package/dist/src/cli-commands/init/handler.d.ts +1 -1
- package/dist/src/cli-commands/init/handler.d.ts.map +1 -1
- package/dist/src/cli-commands/init/handler.js +1 -1
- package/dist/src/cli-commands/init/handler.js.map +1 -1
- package/dist/src/cli-commands/skills/command.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/command.js +6 -0
- package/dist/src/cli-commands/skills/command.js.map +1 -1
- package/dist/src/cli-commands/skills/constants.d.ts +9 -0
- package/dist/src/cli-commands/skills/constants.d.ts.map +1 -0
- package/dist/src/cli-commands/skills/constants.js +9 -0
- package/dist/src/cli-commands/skills/constants.js.map +1 -0
- package/dist/src/cli-commands/skills/copy-skill.d.ts +1 -1
- package/dist/src/cli-commands/skills/copy-skill.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/copy-skill.js +11 -24
- package/dist/src/cli-commands/skills/copy-skill.js.map +1 -1
- package/dist/src/cli-commands/skills/disable/command.d.ts +15 -0
- package/dist/src/cli-commands/skills/disable/command.d.ts.map +1 -0
- package/dist/src/cli-commands/skills/disable/command.js +56 -0
- package/dist/src/cli-commands/skills/disable/command.js.map +1 -0
- package/dist/src/cli-commands/skills/disable/disable-skill.d.ts +25 -0
- package/dist/src/cli-commands/skills/disable/disable-skill.d.ts.map +1 -0
- package/dist/src/cli-commands/skills/disable/disable-skill.js +101 -0
- package/dist/src/cli-commands/skills/disable/disable-skill.js.map +1 -0
- package/dist/src/cli-commands/skills/disable/handler.d.ts +18 -0
- package/dist/src/cli-commands/skills/disable/handler.d.ts.map +1 -0
- package/dist/src/cli-commands/skills/disable/handler.js +72 -0
- package/dist/src/cli-commands/skills/disable/handler.js.map +1 -0
- package/dist/src/cli-commands/skills/enable/command.d.ts +15 -0
- package/dist/src/cli-commands/skills/enable/command.d.ts.map +1 -0
- package/dist/src/cli-commands/skills/enable/command.js +56 -0
- package/dist/src/cli-commands/skills/enable/command.js.map +1 -0
- package/dist/src/cli-commands/skills/enable/enable-skill.d.ts +26 -0
- package/dist/src/cli-commands/skills/enable/enable-skill.d.ts.map +1 -0
- package/dist/src/cli-commands/skills/enable/enable-skill.js +138 -0
- package/dist/src/cli-commands/skills/enable/enable-skill.js.map +1 -0
- package/dist/src/cli-commands/skills/enable/handler.d.ts +18 -0
- package/dist/src/cli-commands/skills/enable/handler.d.ts.map +1 -0
- package/dist/src/cli-commands/skills/enable/handler.js +72 -0
- package/dist/src/cli-commands/skills/enable/handler.js.map +1 -0
- package/dist/src/cli-commands/skills/fork/handler.d.ts +4 -13
- package/dist/src/cli-commands/skills/fork/handler.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/fork/handler.js +37 -29
- package/dist/src/cli-commands/skills/fork/handler.js.map +1 -1
- package/dist/src/cli-commands/skills/fs-helpers.d.ts +12 -0
- package/dist/src/cli-commands/skills/fs-helpers.d.ts.map +1 -0
- package/dist/src/cli-commands/skills/fs-helpers.js +12 -0
- package/dist/src/cli-commands/skills/fs-helpers.js.map +1 -0
- package/dist/src/cli-commands/skills/install/discover-skills.d.ts +3 -18
- package/dist/src/cli-commands/skills/install/discover-skills.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/install/discover-skills.js +7 -20
- package/dist/src/cli-commands/skills/install/discover-skills.js.map +1 -1
- package/dist/src/cli-commands/skills/install/handler.d.ts +1 -16
- package/dist/src/cli-commands/skills/install/handler.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/install/handler.js +20 -27
- package/dist/src/cli-commands/skills/install/handler.js.map +1 -1
- package/dist/src/cli-commands/skills/install/install-skill.d.ts +1 -1
- package/dist/src/cli-commands/skills/install/install-skill.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/install/install-skill.js +12 -18
- package/dist/src/cli-commands/skills/install/install-skill.js.map +1 -1
- package/dist/src/cli-commands/skills/install/select-skills.d.ts +4 -5
- package/dist/src/cli-commands/skills/install/select-skills.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/install/select-skills.js +13 -13
- package/dist/src/cli-commands/skills/install/select-skills.js.map +1 -1
- package/dist/src/cli-commands/skills/install/skill-utils.d.ts +1 -6
- package/dist/src/cli-commands/skills/install/skill-utils.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/install/skill-utils.js +8 -4
- package/dist/src/cli-commands/skills/install/skill-utils.js.map +1 -1
- package/dist/src/cli-commands/skills/list/handler.d.ts +1 -1
- package/dist/src/cli-commands/skills/list/handler.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/list/handler.js +1 -1
- package/dist/src/cli-commands/skills/list/handler.js.map +1 -1
- package/dist/src/cli-commands/skills/naming.d.ts +17 -0
- package/dist/src/cli-commands/skills/naming.d.ts.map +1 -0
- package/dist/src/cli-commands/skills/naming.js +20 -0
- package/dist/src/cli-commands/skills/naming.js.map +1 -0
- package/dist/src/cli-commands/skills/operations.d.ts +25 -1
- package/dist/src/cli-commands/skills/operations.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/publish/handler.d.ts +1 -10
- package/dist/src/cli-commands/skills/publish/handler.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/publish/handler.js +31 -47
- package/dist/src/cli-commands/skills/publish/handler.js.map +1 -1
- package/dist/src/cli-commands/skills/publish-skill.d.ts +1 -1
- package/dist/src/cli-commands/skills/publish-skill.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/publish-skill.js +37 -52
- package/dist/src/cli-commands/skills/publish-skill.js.map +1 -1
- package/dist/src/cli-commands/skills/rename/command.d.ts +16 -0
- package/dist/src/cli-commands/skills/rename/command.d.ts.map +1 -0
- package/dist/src/cli-commands/skills/rename/command.js +62 -0
- package/dist/src/cli-commands/skills/rename/command.js.map +1 -0
- package/dist/src/cli-commands/skills/rename/handler.d.ts +20 -0
- package/dist/src/cli-commands/skills/rename/handler.d.ts.map +1 -0
- package/dist/src/cli-commands/skills/rename/handler.js +77 -0
- package/dist/src/cli-commands/skills/rename/handler.js.map +1 -0
- package/dist/src/cli-commands/skills/rename/rename-skill.d.ts +25 -0
- package/dist/src/cli-commands/skills/rename/rename-skill.d.ts.map +1 -0
- package/dist/src/cli-commands/skills/rename/rename-skill.js +125 -0
- package/dist/src/cli-commands/skills/rename/rename-skill.js.map +1 -0
- package/dist/src/cli-commands/skills/uninstall/handler.d.ts +1 -1
- package/dist/src/cli-commands/skills/uninstall/handler.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/uninstall/handler.js +12 -1
- package/dist/src/cli-commands/skills/uninstall/handler.js.map +1 -1
- package/dist/src/cli-commands/skills/uninstall/uninstall-skill.d.ts +1 -1
- package/dist/src/cli-commands/skills/uninstall/uninstall-skill.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/uninstall/uninstall-skill.js +14 -23
- package/dist/src/cli-commands/skills/uninstall/uninstall-skill.js.map +1 -1
- package/dist/src/cli-commands/skills/update/build-plan.d.ts +7 -2
- package/dist/src/cli-commands/skills/update/build-plan.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/update/build-plan.js +28 -20
- package/dist/src/cli-commands/skills/update/build-plan.js.map +1 -1
- package/dist/src/cli-commands/skills/update/handler.d.ts +11 -20
- package/dist/src/cli-commands/skills/update/handler.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/update/handler.js +161 -90
- package/dist/src/cli-commands/skills/update/handler.js.map +1 -1
- package/dist/src/cli-commands/skills/utils.d.ts +2 -16
- package/dist/src/cli-commands/skills/utils.d.ts.map +1 -1
- package/dist/src/cli-commands/skills/utils.js +36 -20
- package/dist/src/cli-commands/skills/utils.js.map +1 -1
- package/dist/src/cli-error/cli-error.d.ts +21 -0
- package/dist/src/cli-error/cli-error.d.ts.map +1 -0
- package/dist/src/cli-error/cli-error.js +12 -0
- package/dist/src/cli-error/cli-error.js.map +1 -0
- package/dist/src/cli-error/index.d.ts +3 -0
- package/dist/src/cli-error/index.d.ts.map +1 -0
- package/dist/src/cli-error/index.js +3 -0
- package/dist/src/cli-error/index.js.map +1 -0
- package/dist/src/cli-error/render.d.ts +4 -0
- package/dist/src/cli-error/render.d.ts.map +1 -0
- package/dist/src/cli-error/render.js +25 -0
- package/dist/src/cli-error/render.js.map +1 -0
- package/dist/src/extensions/skills/index.d.ts +0 -5
- package/dist/src/extensions/skills/index.d.ts.map +1 -1
- package/dist/src/extensions/skills/index.js +1 -4
- package/dist/src/extensions/skills/index.js.map +1 -1
- package/dist/src/extensions/skills/state/index.d.ts +2 -2
- package/dist/src/extensions/skills/state/index.d.ts.map +1 -1
- package/dist/src/extensions/skills/state/index.js +1 -1
- package/dist/src/extensions/skills/state/index.js.map +1 -1
- package/dist/src/extensions/skills/state/pure-functions.d.ts +4 -29
- package/dist/src/extensions/skills/state/pure-functions.d.ts.map +1 -1
- package/dist/src/extensions/skills/state/pure-functions.js +4 -37
- package/dist/src/extensions/skills/state/pure-functions.js.map +1 -1
- package/dist/src/extensions/skills/state/types.d.ts +0 -1
- package/dist/src/extensions/skills/state/types.d.ts.map +1 -1
- package/dist/src/extensions/skills/state/types.js.map +1 -1
- package/dist/src/extensions/skills/types.d.ts +0 -40
- package/dist/src/extensions/skills/types.d.ts.map +1 -1
- package/dist/src/extensions/skills/types.js +0 -1
- package/dist/src/extensions/skills/types.js.map +1 -1
- package/dist/src/git/errors.d.ts +1 -2
- package/dist/src/git/errors.d.ts.map +1 -1
- package/dist/src/git/errors.js +0 -1
- package/dist/src/git/errors.js.map +1 -1
- package/dist/src/git/index.d.ts +0 -1
- package/dist/src/git/index.d.ts.map +1 -1
- package/dist/src/git/index.js +0 -1
- package/dist/src/git/index.js.map +1 -1
- package/dist/src/git/operations.d.ts +7 -7
- package/dist/src/git/operations.d.ts.map +1 -1
- package/dist/src/git/operations.js +22 -19
- package/dist/src/git/operations.js.map +1 -1
- package/dist/src/lockfile/index.d.ts +1 -2
- package/dist/src/lockfile/index.d.ts.map +1 -1
- package/dist/src/lockfile/index.js +2 -1
- package/dist/src/lockfile/index.js.map +1 -1
- package/dist/src/lockfile/lockfile.d.ts +77 -51
- package/dist/src/lockfile/lockfile.d.ts.map +1 -1
- package/dist/src/lockfile/lockfile.js +27 -51
- package/dist/src/lockfile/lockfile.js.map +1 -1
- package/dist/src/resolution/index.d.ts +0 -1
- package/dist/src/resolution/index.d.ts.map +1 -1
- package/dist/src/resolution/index.js +0 -2
- package/dist/src/resolution/index.js.map +1 -1
- package/dist/src/resolution/resolver.d.ts +2 -2
- package/dist/src/resolution/resolver.d.ts.map +1 -1
- package/dist/src/resolution/resolver.js +1 -1
- package/dist/src/resolution/resolver.js.map +1 -1
- package/dist/src/resolution/resolvers/ambiguous.js +1 -1
- package/dist/src/resolution/resolvers/ambiguous.js.map +1 -1
- package/dist/src/resolution/resolvers/axm-name.d.ts.map +1 -1
- package/dist/src/resolution/resolvers/axm-name.js +1 -1
- package/dist/src/resolution/resolvers/axm-name.js.map +1 -1
- package/dist/src/resolution/resolvers/bare-name.js +1 -1
- package/dist/src/resolution/resolvers/bare-name.js.map +1 -1
- package/dist/src/resolution/resolvers/explicit-source.d.ts.map +1 -1
- package/dist/src/resolution/resolvers/explicit-source.js +1 -1
- package/dist/src/resolution/resolvers/explicit-source.js.map +1 -1
- package/dist/src/resolution/resolvers/local-path.d.ts.map +1 -1
- package/dist/src/resolution/resolvers/local-path.js +1 -1
- package/dist/src/resolution/resolvers/local-path.js.map +1 -1
- package/dist/src/resolution/resolvers/url.d.ts.map +1 -1
- package/dist/src/resolution/resolvers/url.js +1 -1
- package/dist/src/resolution/resolvers/url.js.map +1 -1
- package/dist/src/runtime/error-handling.d.ts +10 -0
- package/dist/src/runtime/error-handling.d.ts.map +1 -0
- package/dist/src/runtime/error-handling.js +10 -0
- package/dist/src/runtime/error-handling.js.map +1 -0
- package/dist/src/runtime/index.d.ts +5 -4
- package/dist/src/runtime/index.d.ts.map +1 -1
- package/dist/src/runtime/index.js +11 -4
- package/dist/src/runtime/index.js.map +1 -1
- package/dist/src/settings/format-preserving-json.d.ts +1 -2
- package/dist/src/settings/format-preserving-json.d.ts.map +1 -1
- package/dist/src/settings/format-preserving-json.js +7 -7
- package/dist/src/settings/format-preserving-json.js.map +1 -1
- package/dist/src/settings/index.d.ts +5 -4
- package/dist/src/settings/index.d.ts.map +1 -1
- package/dist/src/settings/index.js +4 -2
- package/dist/src/settings/index.js.map +1 -1
- package/dist/src/settings/schema.d.ts +48 -8
- package/dist/src/settings/schema.d.ts.map +1 -1
- package/dist/src/settings/schema.js +26 -7
- package/dist/src/settings/schema.js.map +1 -1
- package/dist/src/settings/settings.d.ts +10 -52
- package/dist/src/settings/settings.d.ts.map +1 -1
- package/dist/src/settings/settings.js +22 -48
- package/dist/src/settings/settings.js.map +1 -1
- package/dist/src/settings/skill-entry.d.ts +44 -0
- package/dist/src/settings/skill-entry.d.ts.map +1 -0
- package/dist/src/settings/skill-entry.js +58 -0
- package/dist/src/settings/skill-entry.js.map +1 -0
- package/dist/src/sources/azurerepos/repo-exists.d.ts +2 -2
- package/dist/src/sources/azurerepos/repo-exists.d.ts.map +1 -1
- package/dist/src/sources/azurerepos/repo-exists.js +9 -7
- package/dist/src/sources/azurerepos/repo-exists.js.map +1 -1
- package/dist/src/sources/azurerepos/scp.d.ts +1 -2
- package/dist/src/sources/azurerepos/scp.d.ts.map +1 -1
- package/dist/src/sources/azurerepos/scp.js +6 -2
- package/dist/src/sources/azurerepos/scp.js.map +1 -1
- package/dist/src/sources/azurerepos/url.d.ts +1 -2
- package/dist/src/sources/azurerepos/url.d.ts.map +1 -1
- package/dist/src/sources/azurerepos/url.js +11 -3
- package/dist/src/sources/azurerepos/url.js.map +1 -1
- package/dist/src/sources/bitbucket/resolve-repo.d.ts +2 -2
- package/dist/src/sources/bitbucket/resolve-repo.d.ts.map +1 -1
- package/dist/src/sources/bitbucket/resolve-repo.js +5 -4
- package/dist/src/sources/bitbucket/resolve-repo.js.map +1 -1
- package/dist/src/sources/bitbucket/scp.d.ts +1 -2
- package/dist/src/sources/bitbucket/scp.d.ts.map +1 -1
- package/dist/src/sources/bitbucket/scp.js +6 -2
- package/dist/src/sources/bitbucket/scp.js.map +1 -1
- package/dist/src/sources/bitbucket/shorthand.d.ts +1 -1
- package/dist/src/sources/bitbucket/shorthand.d.ts.map +1 -1
- package/dist/src/sources/bitbucket/url.d.ts +1 -2
- package/dist/src/sources/bitbucket/url.d.ts.map +1 -1
- package/dist/src/sources/bitbucket/url.js +11 -3
- package/dist/src/sources/bitbucket/url.js.map +1 -1
- package/dist/src/sources/clone-url.d.ts +3 -4
- package/dist/src/sources/clone-url.d.ts.map +1 -1
- package/dist/src/sources/clone-url.js +6 -6
- package/dist/src/sources/clone-url.js.map +1 -1
- package/dist/src/sources/github/api.d.ts +3 -21
- package/dist/src/sources/github/api.d.ts.map +1 -1
- package/dist/src/sources/github/api.js +16 -28
- package/dist/src/sources/github/api.js.map +1 -1
- package/dist/src/sources/github/index.d.ts +1 -1
- package/dist/src/sources/github/index.d.ts.map +1 -1
- package/dist/src/sources/github/index.js +1 -1
- package/dist/src/sources/github/index.js.map +1 -1
- package/dist/src/sources/github/resolve-repo.d.ts +2 -2
- package/dist/src/sources/github/resolve-repo.d.ts.map +1 -1
- package/dist/src/sources/github/resolve-repo.js +5 -4
- package/dist/src/sources/github/resolve-repo.js.map +1 -1
- package/dist/src/sources/github/scp.d.ts +1 -2
- package/dist/src/sources/github/scp.d.ts.map +1 -1
- package/dist/src/sources/github/scp.js +6 -2
- package/dist/src/sources/github/scp.js.map +1 -1
- package/dist/src/sources/github/shorthand.d.ts +1 -1
- package/dist/src/sources/github/shorthand.d.ts.map +1 -1
- package/dist/src/sources/github/url.d.ts +1 -2
- package/dist/src/sources/github/url.d.ts.map +1 -1
- package/dist/src/sources/github/url.js +11 -3
- package/dist/src/sources/github/url.js.map +1 -1
- package/dist/src/sources/gitlab/resolve-repo.d.ts +2 -2
- package/dist/src/sources/gitlab/resolve-repo.d.ts.map +1 -1
- package/dist/src/sources/gitlab/resolve-repo.js +5 -4
- package/dist/src/sources/gitlab/resolve-repo.js.map +1 -1
- package/dist/src/sources/gitlab/scp.d.ts +1 -2
- package/dist/src/sources/gitlab/scp.d.ts.map +1 -1
- package/dist/src/sources/gitlab/scp.js +6 -2
- package/dist/src/sources/gitlab/scp.js.map +1 -1
- package/dist/src/sources/gitlab/shorthand.d.ts +1 -1
- package/dist/src/sources/gitlab/shorthand.d.ts.map +1 -1
- package/dist/src/sources/gitlab/url.d.ts +1 -2
- package/dist/src/sources/gitlab/url.d.ts.map +1 -1
- package/dist/src/sources/gitlab/url.js +11 -3
- package/dist/src/sources/gitlab/url.js.map +1 -1
- package/dist/src/sources/index.d.ts +0 -4
- package/dist/src/sources/index.d.ts.map +1 -1
- package/dist/src/sources/index.js +2 -3
- package/dist/src/sources/index.js.map +1 -1
- package/dist/src/sources/local/parser.d.ts +2 -2
- package/dist/src/sources/local/parser.d.ts.map +1 -1
- package/dist/src/sources/local/parser.js.map +1 -1
- package/dist/src/sources/parse-provider-shorthand.d.ts +2 -3
- package/dist/src/sources/parse-provider-shorthand.d.ts.map +1 -1
- package/dist/src/sources/parse-provider-shorthand.js +7 -3
- package/dist/src/sources/parse-provider-shorthand.js.map +1 -1
- package/dist/src/sources/provider.d.ts +5 -44
- package/dist/src/sources/provider.d.ts.map +1 -1
- package/dist/src/sources/provider.js +12 -26
- package/dist/src/sources/provider.js.map +1 -1
- package/dist/src/sources/providers/azurerepos.js +7 -7
- package/dist/src/sources/providers/azurerepos.js.map +1 -1
- package/dist/src/sources/providers/git-hosting.d.ts +3 -3
- package/dist/src/sources/providers/git-hosting.d.ts.map +1 -1
- package/dist/src/sources/providers/git-hosting.js +14 -33
- package/dist/src/sources/providers/git-hosting.js.map +1 -1
- package/dist/src/sources/providers/git.js +7 -7
- package/dist/src/sources/providers/git.js.map +1 -1
- package/dist/src/sources/providers/local.d.ts.map +1 -1
- package/dist/src/sources/providers/local.js +7 -18
- package/dist/src/sources/providers/local.js.map +1 -1
- package/dist/src/sources/providers/registry.d.ts +5 -5
- package/dist/src/sources/providers/registry.d.ts.map +1 -1
- package/dist/src/sources/providers/registry.js +136 -92
- package/dist/src/sources/providers/registry.js.map +1 -1
- package/dist/src/sources/registry-guard.d.ts +2 -3
- package/dist/src/sources/registry-guard.d.ts.map +1 -1
- package/dist/src/sources/registry-guard.js +8 -6
- package/dist/src/sources/registry-guard.js.map +1 -1
- package/dist/src/sources/resolve-source.d.ts +3 -3
- package/dist/src/sources/resolve-source.d.ts.map +1 -1
- package/dist/src/sources/resolve-source.js +83 -49
- package/dist/src/sources/resolve-source.js.map +1 -1
- package/dist/src/sources/service.d.ts +3 -4
- package/dist/src/sources/service.d.ts.map +1 -1
- package/dist/src/sources/service.js +8 -5
- package/dist/src/sources/service.js.map +1 -1
- package/dist/src/tui/confirm/service.d.ts +2 -2
- package/dist/src/tui/confirm/service.d.ts.map +1 -1
- package/dist/src/tui/confirm/service.js.map +1 -1
- package/dist/src/tui/errors.d.ts +0 -9
- package/dist/src/tui/errors.d.ts.map +1 -1
- package/dist/src/tui/errors.js +0 -2
- package/dist/src/tui/errors.js.map +1 -1
- package/dist/src/tui/index.d.ts +1 -1
- package/dist/src/tui/index.d.ts.map +1 -1
- package/dist/src/tui/index.js +1 -1
- package/dist/src/tui/index.js.map +1 -1
- package/dist/src/tui/multiselect/service.d.ts +3 -2
- package/dist/src/tui/multiselect/service.d.ts.map +1 -1
- package/dist/src/tui/multiselect/service.js +7 -5
- package/dist/src/tui/multiselect/service.js.map +1 -1
- package/dist/src/tui/password-input/service.d.ts +3 -2
- package/dist/src/tui/password-input/service.d.ts.map +1 -1
- package/dist/src/tui/password-input/service.js +7 -5
- package/dist/src/tui/password-input/service.js.map +1 -1
- package/dist/src/tui/select/service.d.ts +3 -2
- package/dist/src/tui/select/service.d.ts.map +1 -1
- package/dist/src/tui/select/service.js +5 -5
- package/dist/src/tui/select/service.js.map +1 -1
- package/dist/src/tui/spinner/index.d.ts +1 -1
- package/dist/src/tui/spinner/index.d.ts.map +1 -1
- package/dist/src/tui/spinner/service.d.ts +1 -5
- package/dist/src/tui/spinner/service.d.ts.map +1 -1
- package/dist/src/tui/spinner/service.js +25 -12
- package/dist/src/tui/spinner/service.js.map +1 -1
- package/dist/src/tui/spinner/test.d.ts +3 -0
- package/dist/src/tui/spinner/test.d.ts.map +1 -1
- package/dist/src/tui/spinner/test.js +9 -0
- package/dist/src/tui/spinner/test.js.map +1 -1
- package/dist/src/tui/spinner/types.d.ts +5 -0
- package/dist/src/tui/spinner/types.d.ts.map +1 -1
- package/dist/src/tui/text-input/service.d.ts +2 -2
- package/dist/src/tui/text-input/service.d.ts.map +1 -1
- package/dist/src/tui/text-input/service.js.map +1 -1
- package/dist/src/utils/create-symlink.d.ts +1 -14
- package/dist/src/utils/create-symlink.d.ts.map +1 -1
- package/dist/src/utils/create-symlink.js +17 -15
- package/dist/src/utils/create-symlink.js.map +1 -1
- package/dist/src/utils/index.d.ts +1 -2
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +1 -2
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/workspace/apply-plan.d.ts +5 -17
- package/dist/src/workspace/apply-plan.d.ts.map +1 -1
- package/dist/src/workspace/apply-plan.js +3 -12
- package/dist/src/workspace/apply-plan.js.map +1 -1
- package/dist/src/workspace/ensure-agents.d.ts +2 -15
- package/dist/src/workspace/ensure-agents.d.ts.map +1 -1
- package/dist/src/workspace/ensure-agents.js +7 -15
- package/dist/src/workspace/ensure-agents.js.map +1 -1
- package/dist/src/workspace/errors.d.ts +1 -1
- package/dist/src/workspace/errors.d.ts.map +1 -1
- package/dist/src/workspace/index.d.ts +1 -2
- package/dist/src/workspace/index.d.ts.map +1 -1
- package/dist/src/workspace/index.js +1 -2
- package/dist/src/workspace/index.js.map +1 -1
- package/dist/src/workspace/service.d.ts +30 -23
- package/dist/src/workspace/service.d.ts.map +1 -1
- package/dist/src/workspace/service.js +105 -38
- package/dist/src/workspace/service.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Disable command handler - Effect-based orchestration for `axm skills disable`.
|
|
3
|
+
*
|
|
4
|
+
* Validates skill state then builds and resolves a single-step plan.
|
|
5
|
+
*
|
|
6
|
+
* @experimental This API is unstable and may change without notice.
|
|
7
|
+
*/
|
|
8
|
+
import * as Effect from "effect/Effect";
|
|
9
|
+
import * as Option from "effect/Option";
|
|
10
|
+
import { makeCliError } from "../../../cli-error/index.js";
|
|
11
|
+
import { Log } from "../../../tui/index.js";
|
|
12
|
+
import { Workspace } from "../../../workspace/index.js";
|
|
13
|
+
import { disableSkill } from "./disable-skill.js";
|
|
14
|
+
// -----------------------------------------------------------------------------
|
|
15
|
+
// Main Handler
|
|
16
|
+
// -----------------------------------------------------------------------------
|
|
17
|
+
export const handleDisable = (args) => Effect.gen(function* () {
|
|
18
|
+
const ws = yield* Workspace;
|
|
19
|
+
const log = yield* Log;
|
|
20
|
+
yield* log.info("axm skills disable");
|
|
21
|
+
// Load configured skills
|
|
22
|
+
const configuredSkills = yield* ws.getConfiguredSkills();
|
|
23
|
+
const entry = configuredSkills[args.name];
|
|
24
|
+
// Validate: skill exists
|
|
25
|
+
if (entry === undefined) {
|
|
26
|
+
return yield* makeCliError({
|
|
27
|
+
code: "SKILL_NOT_FOUND",
|
|
28
|
+
what: `Skill '${args.name}' not found`,
|
|
29
|
+
howToFix: "Run `axm skills list` to see available skills",
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
// Validate: skill is managed
|
|
33
|
+
if (!entry.managed) {
|
|
34
|
+
return yield* makeCliError({
|
|
35
|
+
code: "SKILL_NOT_MANAGED",
|
|
36
|
+
what: `Cannot disable unmanaged skill '${args.name}'`,
|
|
37
|
+
howToFix: "Only managed skills (installed via axm) can be enabled/disabled",
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
// Validate: skill is currently enabled
|
|
41
|
+
if (!entry.enabled) {
|
|
42
|
+
yield* log.info(`Skill '${args.name}' is already disabled`);
|
|
43
|
+
yield* log.success("Nothing to do.");
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// Build operation
|
|
47
|
+
const op = {
|
|
48
|
+
name: "disable-skill",
|
|
49
|
+
args: { skillName: args.name },
|
|
50
|
+
};
|
|
51
|
+
// Build single-step plan
|
|
52
|
+
const plan = {
|
|
53
|
+
name: "Disable skill",
|
|
54
|
+
description: Option.some(`Disable ${args.name}`),
|
|
55
|
+
jobs: [
|
|
56
|
+
{
|
|
57
|
+
concurrency: 1,
|
|
58
|
+
steps: [
|
|
59
|
+
{
|
|
60
|
+
_tag: "PlannedJobStep",
|
|
61
|
+
operation: op,
|
|
62
|
+
expectedResult: { result: "success", message: `Disabled ${args.name}` },
|
|
63
|
+
label: args.name,
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
};
|
|
69
|
+
yield* ws.resolvePlan(plan, { "disable-skill": disableSkill });
|
|
70
|
+
yield* log.success("Done");
|
|
71
|
+
}).pipe(Effect.withSpan("Disable.handle"));
|
|
72
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/disable/handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAalD,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAwB,EAAE,EAAE,CACxD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC;IAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;IAEvB,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEtC,yBAAyB;IACzB,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC;IACzD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE1C,yBAAyB;IACzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC;YACzB,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,UAAU,IAAI,CAAC,IAAI,aAAa;YACtC,QAAQ,EAAE,+CAA+C;SAC1D,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B;IAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC;YACzB,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,mCAAmC,IAAI,CAAC,IAAI,GAAG;YACrD,QAAQ,EAAE,iEAAiE;SAC5E,CAAC,CAAC;IACL,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,uBAAuB,CAAC,CAAC;QAC5D,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,kBAAkB;IAClB,MAAM,EAAE,GAAG;QACT,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE;KACC,CAAC;IAElC,yBAAyB;IACzB,MAAM,IAAI,GAAgC;QACxC,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,EAAE;YACJ;gBACE,WAAW,EAAE,CAAC;gBACd,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,gBAAgB;wBACtB,SAAS,EAAE,EAAE;wBACb,cAAc,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,IAAI,CAAC,IAAI,EAAE,EAAE;wBACvE,KAAK,EAAE,IAAI,CAAC,IAAI;qBACjB;iBACF;aACF;SACF;KACF,CAAC;IAEF,KAAK,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,CAAC;IAE/D,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable command yargs definition - wires handler to `axm skills enable`.
|
|
3
|
+
*
|
|
4
|
+
* @experimental This API is unstable and may change without notice.
|
|
5
|
+
*/
|
|
6
|
+
import type { CommandModule } from "yargs";
|
|
7
|
+
export interface EnableCommandArgs {
|
|
8
|
+
name: string;
|
|
9
|
+
global: boolean;
|
|
10
|
+
yes: boolean;
|
|
11
|
+
preview: boolean;
|
|
12
|
+
"non-interactive": boolean | undefined;
|
|
13
|
+
}
|
|
14
|
+
export declare const enableCommand: CommandModule<{}, EnableCommandArgs>;
|
|
15
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/enable/command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAK3C,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC;AAGD,eAAO,MAAM,aAAa,EAAE,aAAa,CAAC,EAAE,EAAE,iBAAiB,CAiD9D,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable command yargs definition - wires handler to `axm skills enable`.
|
|
3
|
+
*
|
|
4
|
+
* @experimental This API is unstable and may change without notice.
|
|
5
|
+
*/
|
|
6
|
+
import * as Option from "effect/Option";
|
|
7
|
+
import { run } from "../../../runtime/index.js";
|
|
8
|
+
import { handleEnable } from "./handler.js";
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type -- yargs convention
|
|
10
|
+
export const enableCommand = {
|
|
11
|
+
command: "enable <name>",
|
|
12
|
+
describe: "Enable a previously disabled skill",
|
|
13
|
+
builder: (yargs) => yargs
|
|
14
|
+
.positional("name", {
|
|
15
|
+
type: "string",
|
|
16
|
+
describe: "Name of the skill to enable",
|
|
17
|
+
demandOption: true,
|
|
18
|
+
})
|
|
19
|
+
.option("global", {
|
|
20
|
+
type: "boolean",
|
|
21
|
+
describe: "Use global ~/.axm/ workspace",
|
|
22
|
+
default: false,
|
|
23
|
+
})
|
|
24
|
+
.option("yes", {
|
|
25
|
+
alias: "y",
|
|
26
|
+
type: "boolean",
|
|
27
|
+
describe: "Skip all confirmation prompts",
|
|
28
|
+
default: false,
|
|
29
|
+
})
|
|
30
|
+
.option("preview", {
|
|
31
|
+
type: "boolean",
|
|
32
|
+
describe: "Display plan without applying",
|
|
33
|
+
default: false,
|
|
34
|
+
})
|
|
35
|
+
.option("non-interactive", {
|
|
36
|
+
type: "boolean",
|
|
37
|
+
describe: "Disable all interactive prompts",
|
|
38
|
+
})
|
|
39
|
+
.example("$0 skills enable my-skill", "Enable a previously disabled skill")
|
|
40
|
+
.example("$0 skills enable my-skill --preview", "Preview what would be enabled"),
|
|
41
|
+
handler: async (argv) => {
|
|
42
|
+
await run(handleEnable({
|
|
43
|
+
name: argv.name,
|
|
44
|
+
yes: argv.yes,
|
|
45
|
+
}), {
|
|
46
|
+
workspace: {
|
|
47
|
+
global: argv.global,
|
|
48
|
+
yes: argv.yes,
|
|
49
|
+
nonInteractive: Option.fromNullable(argv["non-interactive"]),
|
|
50
|
+
preview: argv.preview,
|
|
51
|
+
agents: Option.none(),
|
|
52
|
+
},
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/enable/command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAU5C,uFAAuF;AACvF,MAAM,CAAC,MAAM,aAAa,GAAyC;IACjE,OAAO,EAAE,eAAe;IACxB,QAAQ,EAAE,oCAAoC;IAC9C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,UAAU,CAAC,MAAM,EAAE;QAClB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,6BAA6B;QACvC,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,8BAA8B;QACxC,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,+BAA+B;QACzC,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,+BAA+B;QACzC,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,iBAAiB,EAAE;QACzB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,iCAAiC;KAC5C,CAAC;SACD,OAAO,CAAC,2BAA2B,EAAE,oCAAoC,CAAC;SAC1E,OAAO,CAAC,qCAAqC,EAAE,+BAA+B,CAAC;IACpF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,GAAG,CACP,YAAY,CAAC;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,EACF;YACE,SAAS,EAAE;gBACT,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC5D,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;aACtB;SACF,CACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable skill executor — re-installs files for a previously disabled skill.
|
|
3
|
+
*
|
|
4
|
+
* Pipeline: read state → resolve source → copy to canonical → create symlinks →
|
|
5
|
+
* update lock agents → update settings entry.
|
|
6
|
+
*
|
|
7
|
+
* @experimental This API is unstable and may change without notice.
|
|
8
|
+
*/
|
|
9
|
+
import * as FileSystem from "@effect/platform/FileSystem";
|
|
10
|
+
import * as Path from "@effect/platform/Path";
|
|
11
|
+
import { Log } from "../../../tui/index.js";
|
|
12
|
+
import type { OperationHandler } from "../../../workspace/apply-plan.js";
|
|
13
|
+
import { Workspace } from "../../../workspace/service.js";
|
|
14
|
+
import type { EnableSkillOperation } from "../operations.js";
|
|
15
|
+
/**
|
|
16
|
+
* Enable-skill operation handler.
|
|
17
|
+
*
|
|
18
|
+
* 1. Read configured agents, lock entry, settings entry
|
|
19
|
+
* 2. Determine canonical path from lock entry type
|
|
20
|
+
* 3. Copy source files to canonical location
|
|
21
|
+
* 4. Create agent symlinks (concurrent)
|
|
22
|
+
* 5. Update lock agents
|
|
23
|
+
* 6. Update settings entry to set enabled: true
|
|
24
|
+
*/
|
|
25
|
+
export declare const enableSkill: OperationHandler<EnableSkillOperation, FileSystem.FileSystem | Path.Path | Workspace | Log>;
|
|
26
|
+
//# sourceMappingURL=enable-skill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enable-skill.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/enable/enable-skill.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAK9C,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAK1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAM7D;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,EAAE,gBAAgB,CACxC,oBAAoB,EACpB,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,GAAG,CAyIjD,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable skill executor — re-installs files for a previously disabled skill.
|
|
3
|
+
*
|
|
4
|
+
* Pipeline: read state → resolve source → copy to canonical → create symlinks →
|
|
5
|
+
* update lock agents → update settings entry.
|
|
6
|
+
*
|
|
7
|
+
* @experimental This API is unstable and may change without notice.
|
|
8
|
+
*/
|
|
9
|
+
import * as FileSystem from "@effect/platform/FileSystem";
|
|
10
|
+
import * as Path from "@effect/platform/Path";
|
|
11
|
+
import * as Effect from "effect/Effect";
|
|
12
|
+
import * as Option from "effect/Option";
|
|
13
|
+
import { getAgentById } from "../../../agents/registry.js";
|
|
14
|
+
import { makeCliError } from "../../../cli-error/index.js";
|
|
15
|
+
import { Log } from "../../../tui/index.js";
|
|
16
|
+
import { createSymlink } from "../../../utils/create-symlink.js";
|
|
17
|
+
import { Workspace } from "../../../workspace/service.js";
|
|
18
|
+
import { copySkillDirectory } from "../copy-skill-directory.js";
|
|
19
|
+
import { CANONICAL_SKILLS_DIR, REGISTRY_EXTENSIONS_DIR } from "../constants.js";
|
|
20
|
+
import { removeIfExists } from "../fs-helpers.js";
|
|
21
|
+
import { sanitizeName } from "../install/skill-utils.js";
|
|
22
|
+
// -----------------------------------------------------------------------------
|
|
23
|
+
// Public API
|
|
24
|
+
// -----------------------------------------------------------------------------
|
|
25
|
+
/**
|
|
26
|
+
* Enable-skill operation handler.
|
|
27
|
+
*
|
|
28
|
+
* 1. Read configured agents, lock entry, settings entry
|
|
29
|
+
* 2. Determine canonical path from lock entry type
|
|
30
|
+
* 3. Copy source files to canonical location
|
|
31
|
+
* 4. Create agent symlinks (concurrent)
|
|
32
|
+
* 5. Update lock agents
|
|
33
|
+
* 6. Update settings entry to set enabled: true
|
|
34
|
+
*/
|
|
35
|
+
export const enableSkill = (op) => Effect.gen(function* () {
|
|
36
|
+
const fs = yield* FileSystem.FileSystem;
|
|
37
|
+
const path = yield* Path.Path;
|
|
38
|
+
const ws = yield* Workspace;
|
|
39
|
+
const axmDir = ws.path;
|
|
40
|
+
const base = path.dirname(axmDir);
|
|
41
|
+
const sanitizedName = sanitizeName(op.args.skillName);
|
|
42
|
+
// 1. Read workspace state
|
|
43
|
+
const configuredAgents = yield* ws.getConfiguredAgents();
|
|
44
|
+
const lockEntryOption = yield* ws.getLockedSkill(op.args.skillName).pipe(Effect.mapError((e) => makeCliError({
|
|
45
|
+
code: "ENABLE_SKILL_LOCKFILE_READ_FAILED",
|
|
46
|
+
what: `Failed to read lockfile: ${e.what}`,
|
|
47
|
+
cause: e,
|
|
48
|
+
})));
|
|
49
|
+
if (Option.isNone(lockEntryOption)) {
|
|
50
|
+
return yield* makeCliError({
|
|
51
|
+
code: "ENABLE_SKILL_NOT_FOUND",
|
|
52
|
+
what: `Lock entry for "${op.args.skillName}" not found in lockfile`,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
const lockEntry = lockEntryOption.value;
|
|
56
|
+
// 2. Determine canonical path based on source type
|
|
57
|
+
const isRegistry = lockEntry.type === "registry";
|
|
58
|
+
const registryScope = isRegistry && "scope" in lockEntry ? lockEntry.scope : undefined;
|
|
59
|
+
const canonicalPath = isRegistry
|
|
60
|
+
? path.join(base, REGISTRY_EXTENSIONS_DIR, registryScope, "skills", sanitizedName)
|
|
61
|
+
: path.join(base, CANONICAL_SKILLS_DIR, sanitizedName);
|
|
62
|
+
const contentPath = isRegistry ? path.join(canonicalPath, "src") : canonicalPath;
|
|
63
|
+
// 3. Resolve source and copy to canonical location
|
|
64
|
+
// For local sources, the lock entry path is the source repo root;
|
|
65
|
+
// the individual skill lives at repo-root/skill-name
|
|
66
|
+
if (lockEntry.type === "local") {
|
|
67
|
+
const sourcePath = path.join(lockEntry.path, sanitizedName);
|
|
68
|
+
// Pre-clean canonical location
|
|
69
|
+
yield* removeIfExists(fs, canonicalPath);
|
|
70
|
+
yield* copySkillDirectory(sourcePath, contentPath).pipe(Effect.mapError((e) => makeCliError({
|
|
71
|
+
code: "ENABLE_SKILL_COPY_FAILED",
|
|
72
|
+
what: `Failed to copy skill files to ${contentPath}`,
|
|
73
|
+
cause: e,
|
|
74
|
+
})));
|
|
75
|
+
}
|
|
76
|
+
else if (isRegistry) {
|
|
77
|
+
// For registry sources, the canonical path should already exist from prior install
|
|
78
|
+
// or needs re-resolution through SourceProviders (not available in this handler).
|
|
79
|
+
// If files don't exist, fail with a helpful message.
|
|
80
|
+
const exists = yield* fs
|
|
81
|
+
.exists(canonicalPath)
|
|
82
|
+
.pipe(Effect.catchAll(() => Effect.succeed(false)));
|
|
83
|
+
if (!exists) {
|
|
84
|
+
return yield* makeCliError({
|
|
85
|
+
code: "ENABLE_SKILL_MISSING_FILES",
|
|
86
|
+
what: `Skill files for "${op.args.skillName}" not found at ${canonicalPath}`,
|
|
87
|
+
howToFix: "Try reinstalling the skill with `axm skills install`",
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// For git-based sources (github, gitlab, etc.), use the path from lock entry
|
|
93
|
+
const sourcePath = "path" in lockEntry ? lockEntry.path : undefined;
|
|
94
|
+
if (sourcePath) {
|
|
95
|
+
yield* removeIfExists(fs, canonicalPath);
|
|
96
|
+
yield* copySkillDirectory(sourcePath, contentPath).pipe(Effect.mapError((e) => makeCliError({
|
|
97
|
+
code: "ENABLE_SKILL_COPY_FAILED",
|
|
98
|
+
what: `Failed to copy skill files to ${contentPath}`,
|
|
99
|
+
cause: e,
|
|
100
|
+
})));
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
// Git sources without a local path need re-resolution
|
|
104
|
+
return yield* makeCliError({
|
|
105
|
+
code: "ENABLE_SKILL_MISSING_FILES",
|
|
106
|
+
what: `Cannot re-resolve source for "${op.args.skillName}"`,
|
|
107
|
+
howToFix: "Try reinstalling the skill with `axm skills install`",
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// 4. Create agent symlinks (concurrent)
|
|
112
|
+
yield* Effect.forEach(configuredAgents, (agentId) => {
|
|
113
|
+
const maybeAgent = getAgentById(agentId);
|
|
114
|
+
if (Option.isNone(maybeAgent))
|
|
115
|
+
return Effect.void;
|
|
116
|
+
const agent = maybeAgent.value;
|
|
117
|
+
// Self-reference detection
|
|
118
|
+
const agentSkillsDir = path.resolve(base, agent.skills.dir);
|
|
119
|
+
const canonicalSkillsDir = path.resolve(base, CANONICAL_SKILLS_DIR);
|
|
120
|
+
if (agentSkillsDir === canonicalSkillsDir)
|
|
121
|
+
return Effect.void;
|
|
122
|
+
const agentSkillPath = path.join(base, agent.skills.dir, sanitizedName);
|
|
123
|
+
return createSymlink({ target: contentPath, link: agentSkillPath }).pipe(Effect.catchAll(() => copySkillDirectory(contentPath, agentSkillPath).pipe(Effect.catchAll(() => Effect.void))));
|
|
124
|
+
}, { concurrency: "unbounded" });
|
|
125
|
+
// 5. Update lock agents
|
|
126
|
+
yield* ws
|
|
127
|
+
.updateLockEntryAgents(op.args.skillName, configuredAgents)
|
|
128
|
+
.pipe(Effect.catchAll(() => Effect.void));
|
|
129
|
+
// 6. Update settings entry to set enabled: true
|
|
130
|
+
yield* ws
|
|
131
|
+
.updateSkillEntry(op.args.skillName, (e) => ({ ...e, enabled: true }))
|
|
132
|
+
.pipe(Effect.catchAll(() => Effect.void));
|
|
133
|
+
return {
|
|
134
|
+
result: "success",
|
|
135
|
+
message: `Enabled ${op.args.skillName}`,
|
|
136
|
+
};
|
|
137
|
+
});
|
|
138
|
+
//# sourceMappingURL=enable-skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enable-skill.js","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/enable/enable-skill.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,WAAW,GAGpB,CAAC,EAAE,EAAE,EAAE,CACT,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC;IAC5B,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC;IACvB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAElC,MAAM,aAAa,GAAG,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEtD,0BAA0B;IAC1B,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC;IAEzD,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CACtE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,YAAY,CAAC;QACX,IAAI,EAAE,mCAAmC;QACzC,IAAI,EAAE,4BAA4B,CAAC,CAAC,IAAI,EAAE;QAC1C,KAAK,EAAE,CAAC;KACT,CAAC,CACH,CACF,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC;YACzB,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,mBAAmB,EAAE,CAAC,IAAI,CAAC,SAAS,yBAAyB;SACpE,CAAC,CAAC;IACL,CAAC;IACD,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;IAExC,mDAAmD;IACnD,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC;IACjD,MAAM,aAAa,GACjB,UAAU,IAAI,OAAO,IAAI,SAAS,CAAC,CAAC,CAAE,SAA+B,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1F,MAAM,aAAa,GAAG,UAAU;QAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,EAAE,aAAc,EAAE,QAAQ,EAAE,aAAa,CAAC;QACnF,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,oBAAoB,EAAE,aAAa,CAAC,CAAC;IAEzD,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAEjF,mDAAmD;IACnD,kEAAkE;IAClE,qDAAqD;IACrD,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAE5D,+BAA+B;QAC/B,KAAK,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAEzC,KAAK,CAAC,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,IAAI,CACrD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,YAAY,CAAC;YACX,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,iCAAiC,WAAW,EAAE;YACpD,KAAK,EAAE,CAAC;SACT,CAAC,CACH,CACF,CAAC;IACJ,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,mFAAmF;QACnF,kFAAkF;QAClF,qDAAqD;QACrD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE;aACrB,MAAM,CAAC,aAAa,CAAC;aACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC;gBACzB,IAAI,EAAE,4BAA4B;gBAClC,IAAI,EAAE,oBAAoB,EAAE,CAAC,IAAI,CAAC,SAAS,kBAAkB,aAAa,EAAE;gBAC5E,QAAQ,EAAE,sDAAsD;aACjE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;SAAM,CAAC;QACN,6EAA6E;QAC7E,MAAM,UAAU,GAAG,MAAM,IAAI,SAAS,CAAC,CAAC,CAAE,SAA+B,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3F,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;YACzC,KAAK,CAAC,CAAC,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,IAAI,CACrD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACpB,YAAY,CAAC;gBACX,IAAI,EAAE,0BAA0B;gBAChC,IAAI,EAAE,iCAAiC,WAAW,EAAE;gBACpD,KAAK,EAAE,CAAC;aACT,CAAC,CACH,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC;gBACzB,IAAI,EAAE,4BAA4B;gBAClC,IAAI,EAAE,iCAAiC,EAAE,CAAC,IAAI,CAAC,SAAS,GAAG;gBAC3D,QAAQ,EAAE,sDAAsD;aACjE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,gBAAgB,EAChB,CAAC,OAAO,EAAE,EAAE;QACV,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC;QAClD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAE/B,2BAA2B;QAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QACpE,IAAI,cAAc,KAAK,kBAAkB;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC;QAE9D,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QACxE,OAAO,aAAa,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,IAAI,CACtE,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CACnB,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,IAAI,CAClD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CACnC,CACF,CACF,CAAC;IACJ,CAAC,EACD,EAAE,WAAW,EAAE,WAAW,EAAE,CAC7B,CAAC;IAEF,wBAAwB;IACxB,KAAK,CAAC,CAAC,EAAE;SACN,qBAAqB,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC;SAC1D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5C,gDAAgD;IAChD,KAAK,CAAC,CAAC,EAAE;SACN,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;SACrE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5C,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;KACd,CAAC;AAC9B,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable command handler - Effect-based orchestration for `axm skills enable`.
|
|
3
|
+
*
|
|
4
|
+
* Validates skill state then builds and resolves a single-step plan.
|
|
5
|
+
*
|
|
6
|
+
* @experimental This API is unstable and may change without notice.
|
|
7
|
+
*/
|
|
8
|
+
import * as Effect from "effect/Effect";
|
|
9
|
+
import { Log } from "../../../tui/index.js";
|
|
10
|
+
import { Workspace } from "../../../workspace/index.js";
|
|
11
|
+
export interface EnableHandlerArgs {
|
|
12
|
+
/** Name of the skill to enable */
|
|
13
|
+
readonly name: string;
|
|
14
|
+
/** Skip confirmations */
|
|
15
|
+
readonly yes: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const handleEnable: (args: EnableHandlerArgs) => Effect.Effect<undefined, import("../../../tui/errors.js").PromptCancelled | import("../../../cli-error/cli-error.js").CliError, import("../../../tui/index.js").Confirm | Log | import("@effect/platform/FileSystem").FileSystem | import("@effect/platform/Path").Path | Workspace>;
|
|
18
|
+
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/enable/handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AASxD,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAMD,eAAO,MAAM,YAAY,GAAI,MAAM,iBAAiB,yRAgET,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable command handler - Effect-based orchestration for `axm skills enable`.
|
|
3
|
+
*
|
|
4
|
+
* Validates skill state then builds and resolves a single-step plan.
|
|
5
|
+
*
|
|
6
|
+
* @experimental This API is unstable and may change without notice.
|
|
7
|
+
*/
|
|
8
|
+
import * as Effect from "effect/Effect";
|
|
9
|
+
import * as Option from "effect/Option";
|
|
10
|
+
import { makeCliError } from "../../../cli-error/index.js";
|
|
11
|
+
import { Log } from "../../../tui/index.js";
|
|
12
|
+
import { Workspace } from "../../../workspace/index.js";
|
|
13
|
+
import { enableSkill } from "./enable-skill.js";
|
|
14
|
+
// -----------------------------------------------------------------------------
|
|
15
|
+
// Main Handler
|
|
16
|
+
// -----------------------------------------------------------------------------
|
|
17
|
+
export const handleEnable = (args) => Effect.gen(function* () {
|
|
18
|
+
const ws = yield* Workspace;
|
|
19
|
+
const log = yield* Log;
|
|
20
|
+
yield* log.info("axm skills enable");
|
|
21
|
+
// Load configured skills
|
|
22
|
+
const configuredSkills = yield* ws.getConfiguredSkills();
|
|
23
|
+
const entry = configuredSkills[args.name];
|
|
24
|
+
// Validate: skill exists
|
|
25
|
+
if (entry === undefined) {
|
|
26
|
+
return yield* makeCliError({
|
|
27
|
+
code: "SKILL_NOT_FOUND",
|
|
28
|
+
what: `Skill '${args.name}' not found`,
|
|
29
|
+
howToFix: "Run `axm skills list` to see available skills",
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
// Validate: skill is managed
|
|
33
|
+
if (!entry.managed) {
|
|
34
|
+
return yield* makeCliError({
|
|
35
|
+
code: "SKILL_NOT_MANAGED",
|
|
36
|
+
what: `Cannot enable unmanaged skill '${args.name}'`,
|
|
37
|
+
howToFix: "Only managed skills (installed via axm) can be enabled/disabled",
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
// Validate: skill is currently disabled
|
|
41
|
+
if (entry.enabled) {
|
|
42
|
+
yield* log.info(`Skill '${args.name}' is already enabled`);
|
|
43
|
+
yield* log.success("Nothing to do.");
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// Build operation
|
|
47
|
+
const op = {
|
|
48
|
+
name: "enable-skill",
|
|
49
|
+
args: { skillName: args.name },
|
|
50
|
+
};
|
|
51
|
+
// Build single-step plan
|
|
52
|
+
const plan = {
|
|
53
|
+
name: "Enable skill",
|
|
54
|
+
description: Option.some(`Enable ${args.name}`),
|
|
55
|
+
jobs: [
|
|
56
|
+
{
|
|
57
|
+
concurrency: 1,
|
|
58
|
+
steps: [
|
|
59
|
+
{
|
|
60
|
+
_tag: "PlannedJobStep",
|
|
61
|
+
operation: op,
|
|
62
|
+
expectedResult: { result: "success", message: `Enabled ${args.name}` },
|
|
63
|
+
label: args.name,
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
};
|
|
69
|
+
yield* ws.resolvePlan(plan, { "enable-skill": enableSkill });
|
|
70
|
+
yield* log.success("Done");
|
|
71
|
+
}).pipe(Effect.withSpan("Enable.handle"));
|
|
72
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/enable/handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAahD,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAuB,EAAE,EAAE,CACtD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC;IAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC;IAEvB,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAErC,yBAAyB;IACzB,MAAM,gBAAgB,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC;IACzD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE1C,yBAAyB;IACzB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC;YACzB,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,UAAU,IAAI,CAAC,IAAI,aAAa;YACtC,QAAQ,EAAE,+CAA+C;SAC1D,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B;IAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC;YACzB,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,kCAAkC,IAAI,CAAC,IAAI,GAAG;YACpD,QAAQ,EAAE,iEAAiE;SAC5E,CAAC,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,sBAAsB,CAAC,CAAC;QAC3D,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,kBAAkB;IAClB,MAAM,EAAE,GAAG;QACT,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE;KACA,CAAC;IAEjC,yBAAyB;IACzB,MAAM,IAAI,GAA+B;QACvC,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,EAAE;YACJ;gBACE,WAAW,EAAE,CAAC;gBACd,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,gBAAgB;wBACtB,SAAS,EAAE,EAAE;wBACb,cAAc,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,IAAI,CAAC,IAAI,EAAE,EAAE;wBACtE,KAAK,EAAE,IAAI,CAAC,IAAI;qBACjB;iBACF;aACF;SACF;KACF,CAAC;IAEF,KAAK,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;IAE7D,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC"}
|
|
@@ -29,21 +29,12 @@ export interface ForkHandlerArgs {
|
|
|
29
29
|
/** Skip confirmations. */
|
|
30
30
|
readonly yes: boolean;
|
|
31
31
|
}
|
|
32
|
-
declare const ForkError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
|
|
33
|
-
readonly _tag: "ForkError";
|
|
34
|
-
} & Readonly<A>;
|
|
35
|
-
export declare class ForkError extends ForkError_base<{
|
|
36
|
-
readonly message: string;
|
|
37
|
-
readonly cause: unknown;
|
|
38
|
-
}> {
|
|
39
|
-
}
|
|
40
32
|
/**
|
|
41
33
|
* Handles the `axm skills fork` command.
|
|
42
34
|
*/
|
|
43
|
-
export declare const handleFork: (args: ForkHandlerArgs) => Effect.Effect<undefined, import("../../../tui/errors.js").
|
|
44
|
-
"copy-skill": import("../../../workspace/apply-plan.js").OperationHandler<CopySkillOperation,
|
|
45
|
-
"publish-skill": import("../../../workspace/apply-plan.js").OperationHandler<PublishSkillOperation,
|
|
46
|
-
"install-skill": import("../../../workspace/apply-plan.js").OperationHandler<InstallSkillOperation, Log |
|
|
35
|
+
export declare const handleFork: (args: ForkHandlerArgs) => Effect.Effect<undefined, import("../../../tui/errors.js").PromptCancelled | import("../../../cli-error/cli-error.js").CliError, import("../../../tui/index.js").Confirm | Spinner | import("../../../tui/index.js").TextInput | import("effect/Scope").Scope | SourceProviders | import("../../../workspace/apply-plan.js").ExecutionContext<{
|
|
36
|
+
"copy-skill": import("../../../workspace/apply-plan.js").OperationHandler<CopySkillOperation, import("@effect/platform/FileSystem").FileSystem | Path.Path | Workspace>;
|
|
37
|
+
"publish-skill": import("../../../workspace/apply-plan.js").OperationHandler<PublishSkillOperation, import("@effect/platform/FileSystem").FileSystem | Path.Path | Workspace>;
|
|
38
|
+
"install-skill": import("../../../workspace/apply-plan.js").OperationHandler<InstallSkillOperation, Log | import("@effect/platform/FileSystem").FileSystem | Path.Path | Workspace>;
|
|
47
39
|
}>>;
|
|
48
|
-
export {};
|
|
49
40
|
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/fork/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAGL,eAAe,EAEhB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../src/cli-commands/skills/fork/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAGL,eAAe,EAEhB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EAErB,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAY1B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,0BAA0B;IAC1B,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAQD;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,eAAe;;;;GAqMP,CAAC"}
|
|
@@ -15,22 +15,16 @@
|
|
|
15
15
|
import * as Path from "@effect/platform/Path";
|
|
16
16
|
import { resolveSource, printSourceInput, SourceProviders, registryGuard, } from "../../../sources/index.js";
|
|
17
17
|
import * as Array from "effect/Array";
|
|
18
|
-
import * as Data from "effect/Data";
|
|
19
18
|
import * as Effect from "effect/Effect";
|
|
20
19
|
import * as Option from "effect/Option";
|
|
20
|
+
import { makeCliError } from "../../../cli-error/index.js";
|
|
21
21
|
import { Log, Spinner } from "../../../tui/index.js";
|
|
22
|
-
import { formatError } from "../../../utils/errors.js";
|
|
23
22
|
import { Workspace as Workspace } from "../../../workspace/index.js";
|
|
24
23
|
import { copySkill } from "../copy-skill.js";
|
|
25
24
|
import { installSkill } from "../install/install-skill.js";
|
|
26
25
|
import { publishSkill } from "../publish-skill.js";
|
|
27
26
|
import { expandGlobs } from "../../../skills/index.js";
|
|
28
27
|
// -----------------------------------------------------------------------------
|
|
29
|
-
// Errors
|
|
30
|
-
// -----------------------------------------------------------------------------
|
|
31
|
-
export class ForkError extends Data.TaggedError("ForkError") {
|
|
32
|
-
}
|
|
33
|
-
// -----------------------------------------------------------------------------
|
|
34
28
|
// Main Handler
|
|
35
29
|
// -----------------------------------------------------------------------------
|
|
36
30
|
/**
|
|
@@ -47,29 +41,39 @@ export const handleFork = (args) => Effect.gen(function* () {
|
|
|
47
41
|
// Step 1: Registry guard
|
|
48
42
|
yield* registryGuard;
|
|
49
43
|
// Step 2: Resolve scope
|
|
50
|
-
const scope = yield* ws.getConfiguredScope().pipe(Effect.mapError((e) =>
|
|
51
|
-
|
|
44
|
+
const scope = yield* ws.getConfiguredScope().pipe(Effect.mapError((e) => makeCliError({
|
|
45
|
+
code: "SCOPE_RESOLUTION_FAILED",
|
|
46
|
+
what: `Failed to resolve scope: ${e._tag}`,
|
|
47
|
+
howToFix: "Configure a scope in your settings with `axm init`.",
|
|
52
48
|
cause: e,
|
|
53
49
|
})));
|
|
54
50
|
// Step 3: Parse source and discover skills
|
|
55
51
|
const handle = yield* spinnerSvc.start("Resolving skills...");
|
|
56
|
-
const source = yield* resolveSource(args.source).pipe(Effect.mapError((error) =>
|
|
57
|
-
|
|
52
|
+
const source = yield* resolveSource(args.source).pipe(Effect.mapError((error) => makeCliError({
|
|
53
|
+
code: "INVALID_SOURCE",
|
|
54
|
+
what: `Invalid source: ${error.message}`,
|
|
55
|
+
details: [`Provided: ${args.source}`],
|
|
56
|
+
howToFix: "Valid formats: installed skill name, local path, github:owner/repo",
|
|
58
57
|
cause: error,
|
|
59
58
|
})), Effect.tapError(() => handle.stop("Failed")));
|
|
60
59
|
const allRefs = yield* sources
|
|
61
60
|
.resolveExtension(source, { names: [], agents: [], type: "skill" })
|
|
62
|
-
.pipe(Effect.mapError((error) =>
|
|
63
|
-
|
|
61
|
+
.pipe(Effect.mapError((error) => makeCliError({
|
|
62
|
+
code: "DISCOVER_FAILED",
|
|
63
|
+
what: `Failed to discover skills: ${error.message}`,
|
|
64
|
+
details: [`Source: ${printSourceInput(source)}`],
|
|
65
|
+
howToFix: "Verify the source path contains directories with SKILL.md files.",
|
|
64
66
|
cause: error,
|
|
65
67
|
})), Effect.tapError(() => handle.stop("Failed")));
|
|
66
68
|
const discoveredSkills = Array.filter(allRefs, (ref) => ref.type === "skill");
|
|
67
69
|
if (discoveredSkills.length === 0) {
|
|
68
70
|
yield* handle.stop("No skills found");
|
|
69
|
-
return yield*
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
return yield* Effect.fail(makeCliError({
|
|
72
|
+
code: "NO_SKILLS_FOUND",
|
|
73
|
+
what: "No skills found in source",
|
|
74
|
+
details: [`Source: ${printSourceInput(source)}`],
|
|
75
|
+
howToFix: "Verify the source path contains directories with SKILL.md files.",
|
|
76
|
+
}));
|
|
73
77
|
}
|
|
74
78
|
// Step 4: Filter by --skill globs (if provided)
|
|
75
79
|
const filtered = args.skills.length > 0
|
|
@@ -86,24 +90,28 @@ export const handleFork = (args) => Effect.gen(function* () {
|
|
|
86
90
|
if (args.skills.length > 0 && filtered.length === 0) {
|
|
87
91
|
yield* handle.stop("No matches");
|
|
88
92
|
const allNames = Array.map(discoveredSkills, (r) => r.skill.name);
|
|
89
|
-
return yield*
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
+
return yield* Effect.fail(makeCliError({
|
|
94
|
+
code: "NO_SKILLS_MATCHED",
|
|
95
|
+
what: "No skills matched the given patterns",
|
|
96
|
+
details: [`Patterns: ${args.skills.join(", ")}`, `Available: ${allNames.join(", ")}`],
|
|
97
|
+
howToFix: "Check skill names with `axm skills install --list <source>`.",
|
|
98
|
+
}));
|
|
93
99
|
}
|
|
94
100
|
yield* handle.stop(`Found ${filtered.length} skill(s)`);
|
|
95
101
|
// Step 5: Get agents from workspace
|
|
96
102
|
const agentIds = yield* ws.getConfiguredAgents();
|
|
97
103
|
// Step 6: Determine first registry source name for publishing
|
|
98
|
-
const registrySources = yield* ws.getConfiguredRegistrySources(Option.none()).pipe(Effect.mapError((e) =>
|
|
99
|
-
|
|
104
|
+
const registrySources = yield* ws.getConfiguredRegistrySources(Option.none()).pipe(Effect.mapError((e) => makeCliError({
|
|
105
|
+
code: "REGISTRY_SOURCES_FAILED",
|
|
106
|
+
what: `Failed to get registry sources: ${e._tag}`,
|
|
100
107
|
cause: e,
|
|
101
108
|
})));
|
|
102
109
|
if (registrySources.length === 0) {
|
|
103
|
-
return yield*
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
110
|
+
return yield* Effect.fail(makeCliError({
|
|
111
|
+
code: "NO_REGISTRY_CONFIGURED",
|
|
112
|
+
what: "No registry sources configured",
|
|
113
|
+
howToFix: "Run the registry guard first.",
|
|
114
|
+
}));
|
|
107
115
|
}
|
|
108
116
|
const registryName = registrySources[0].name;
|
|
109
117
|
// Step 7: Build plan — fork + publish + install per skill (3 sequential ops)
|
|
@@ -130,7 +138,7 @@ export const handleFork = (args) => Effect.gen(function* () {
|
|
|
130
138
|
args: {
|
|
131
139
|
source: {
|
|
132
140
|
type: "local",
|
|
133
|
-
path: ref.location.replace(
|
|
141
|
+
path: ref.location.replace(/^file:\/\//, ""),
|
|
134
142
|
},
|
|
135
143
|
targetName,
|
|
136
144
|
location: ref.location,
|
|
@@ -176,5 +184,5 @@ export const handleFork = (args) => Effect.gen(function* () {
|
|
|
176
184
|
"install-skill": installSkill,
|
|
177
185
|
});
|
|
178
186
|
yield* log.success("Done");
|
|
179
|
-
});
|
|
187
|
+
}).pipe(Effect.withSpan("Fork.handle"));
|
|
180
188
|
//# sourceMappingURL=handler.js.map
|