skill-flow 1.0.1 → 1.0.3

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.
Files changed (61) hide show
  1. package/README.md +61 -22
  2. package/README.zh.md +62 -24
  3. package/dist/cli.js +35 -5
  4. package/dist/cli.js.map +1 -1
  5. package/dist/domain/types.d.ts +25 -0
  6. package/dist/services/deployment-applier.js +6 -0
  7. package/dist/services/deployment-applier.js.map +1 -1
  8. package/dist/services/deployment-planner.d.ts +5 -0
  9. package/dist/services/deployment-planner.js +198 -16
  10. package/dist/services/deployment-planner.js.map +1 -1
  11. package/dist/services/doctor-service.js +1 -1
  12. package/dist/services/doctor-service.js.map +1 -1
  13. package/dist/services/skill-flow.d.ts +28 -2
  14. package/dist/services/skill-flow.js +354 -3
  15. package/dist/services/skill-flow.js.map +1 -1
  16. package/dist/services/source-service.d.ts +1 -1
  17. package/dist/services/source-service.js +15 -18
  18. package/dist/services/source-service.js.map +1 -1
  19. package/dist/state/store.d.ts +3 -0
  20. package/dist/state/store.js +10 -0
  21. package/dist/state/store.js.map +1 -1
  22. package/dist/tests/skill-flow.test.js +1427 -0
  23. package/dist/tests/skill-flow.test.js.map +1 -1
  24. package/dist/tui/config-app.js +53 -4
  25. package/dist/tui/config-app.js.map +1 -1
  26. package/dist/tui/find-app.d.ts +9 -0
  27. package/dist/tui/find-app.js +117 -0
  28. package/dist/tui/find-app.js.map +1 -0
  29. package/dist/utils/builtin-git-sources.d.ts +5 -0
  30. package/dist/utils/builtin-git-sources.js +23 -0
  31. package/dist/utils/builtin-git-sources.js.map +1 -0
  32. package/dist/utils/find-command.d.ts +2 -0
  33. package/dist/utils/find-command.js +21 -0
  34. package/dist/utils/find-command.js.map +1 -0
  35. package/dist/utils/format.d.ts +2 -1
  36. package/dist/utils/format.js +19 -1
  37. package/dist/utils/format.js.map +1 -1
  38. package/dist/utils/github-catalog.d.ts +1 -0
  39. package/dist/utils/github-catalog.js +25 -0
  40. package/dist/utils/github-catalog.js.map +1 -0
  41. package/dist/utils/naming.d.ts +9 -1
  42. package/dist/utils/naming.js +33 -6
  43. package/dist/utils/naming.js.map +1 -1
  44. package/package.json +10 -1
  45. package/.gstack/browse-network.log +0 -1
  46. package/.gstack/browse.json +0 -7
  47. package/.gstack/qa-reports/qa-report-skill-manager-2026-03-22.md +0 -60
  48. package/docs/DESIGN.md +0 -407
  49. package/docs/PRD/PRD-1.0.0.md +0 -1862
  50. package/docs/PRD/renew/PRD-0.0.0.md +0 -26
  51. package/docs/PRD/renew/PRD-0.0.1.md +0 -408
  52. package/docs/PRD/renew/PRD-0.0.2.md +0 -705
  53. package/docs/PRD/renew/PRD-0.0.3.md +0 -740
  54. package/docs/PRD/renew/PRD-0.0.4.md +0 -1494
  55. package/docs/README.md +0 -242
  56. package/docs/plan/PLAN_v1.0.0.md +0 -663
  57. package/docs/plan/PLAN_v1.0.1.md +0 -814
  58. package/docs/refrences/README.md +0 -7
  59. package/docs/refrences/agent-skill-paths.md +0 -252
  60. package/docs/refrences/naming-dedupe-warning-rules.md +0 -482
  61. package/img/img-1.jpg +0 -0
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Skill Flow
2
2
 
3
3
  > **Workflow-first management for AI agent skills.**
4
- > Grouped workflows · Multi-target projection · Explicit state · Drift diagnosis
4
+ > Skill grouping · Deploy everywhere · Clear config · Quick diagnosis
5
5
 
6
6
  ![img](img/img-1.jpg)
7
7
 
@@ -10,26 +10,28 @@
10
10
  [![Node.js Version](https://img.shields.io/node/v/skill-flow?style=flat-square)](https://nodejs.org)
11
11
  [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg?style=flat-square)](./LICENSE)
12
12
 
13
- As your AI agent skills grow, management becomes chaotic: one Git source contains multiple related skills, projections scatter across different agents, updates and troubleshooting become difficult.
13
+ As your AI agent skills grow, management gets messy: one Git repo has a bunch of related skills, they end up scattered across different agents, and updates become a headache.
14
14
 
15
- `skill-flow` reorganizes skill management around workflows: add skill groups from Git sources, select projection targets, update uniformly, diagnose drift. Keep skill management clear, controlled, and efficient.
15
+ `skill-flow` fixes this by organizing skills around groups: add skill groups from Git repos, pick where to deploy, update all at once, spot problems fast. Keep your skill setup clean, organized, and stress-free.
16
16
 
17
17
  ## Key Features
18
18
 
19
- **Workflow-Based Grouping**
20
- One Git source = one workflow group. Related skills stay together, updates and maintenance happen at the workflow level.
19
+ ![Skill groups diagram](./img/skill-groups-diagram.png)
21
20
 
22
- **Multi-Target Projection**
23
- Configure once, project to multiple agents (Claude Code, Cursor, Windsurf, and 13+ targets).
21
+ **Skill-Based Grouping**
22
+ One Git repo = one skills group. Related skills stay together, updates and maintenance happen at the group level.
23
+
24
+ **Deploy Everywhere**
25
+ Set it up once, deploy to multiple agents (Claude Code, Cursor, Windsurf, and 13+ targets).
24
26
 
25
27
  **Interactive Terminal UI**
26
28
  Intuitive TUI: view groups → select skills → choose targets → save configuration.
27
29
 
28
30
  **Explicit State Tracking**
29
- `manifest.json` records your intent, `lock.json` records actual deployment state. Clear and queryable.
31
+ `manifest.json` = what you want, `lock.json` = what's actually installed. Both are readable and queryable.
30
32
 
31
33
  **Health Diagnosis**
32
- `doctor` command detects broken links, drift, and conflicts with precision.
34
+ `doctor` catches broken links, mismatches, and conflicts tells you exactly what's wrong.
33
35
 
34
36
  ## Installation
35
37
 
@@ -64,7 +66,7 @@ npm link
64
66
  # Add a skill source
65
67
  skill-flow add /path/to/skills-repo
66
68
 
67
- # View workflow groups
69
+ # View skills groups
68
70
  skill-flow list
69
71
 
70
72
  # Interactive configuration (select skills and targets)
@@ -76,32 +78,40 @@ skill-flow update --all
76
78
  # Health check
77
79
  skill-flow doctor
78
80
 
79
- # Remove a workflow group
81
+ # Remove a skills group
80
82
  skill-flow uninstall my-source-id
81
83
  ```
82
84
 
83
- `add <source>` supports local paths, `owner/repo`, and full https/ssh Git URLs.
85
+ `add <source>` supports local paths, `owner/repo`, full https/ssh Git URLs, GitHub tree URLs, and `clawhub:<slug>[@version]`.
86
+
87
+ By default, `add` preselects all discovered skills and all detected agent targets. When `--path <repoSubpath>` is provided, the full repo is still imported, but only skills under that path are preselected.
84
88
 
85
89
  ## Command Reference
86
90
 
87
91
  | Command | Description |
88
92
  |---|---|
89
- | `add <source>` | Add Git source (supports local path, `owner/repo`, https/ssh URL) |
90
- | `list` | Show workflow groups |
93
+ | `add <source>` | Add a skill source (Git repo or ClawHub) |
94
+ | `find <query>` | Search installed skills, built-in Git catalogs, and ClawHub |
95
+ | `search <query>` | Alias of `find` |
96
+ | `list` | Show skills groups |
91
97
  | `config` | Open interactive configuration UI |
92
- | `update [sourceId] --all` | Update sources and re-project |
93
- | `doctor` | Diagnose projection health |
94
- | `uninstall <sourceIds...>` | Remove workflow groups and projections |
98
+ | `update [sourceId] --all` | Update all skills and re-deploy |
99
+ | `doctor` | Check for problems |
100
+ | `uninstall <sourceIds...>` | Remove skills groups and their deployments |
101
+
102
+ When selected skills collide by name, `skill-flow` keeps identical duplicates as warnings and renames different-content collisions with repo/author-prefixed link names such as `gstack-browse`, `gstack(garrytan)-browse`, or `garrytan-skill-creator`.
95
103
 
96
104
  ## How It Works
97
105
 
98
106
  **State Management**
99
- - `~/.skillflow/manifest.json` - Your configuration intent
100
- - `~/.skillflow/lock.json` - Actual deployment state
101
- - `~/.skillflow/source/git/<source-id>/` - Git source cache
107
+ - `~/.skillflow/manifest.json` - Your configuration (what you want)
108
+ - `~/.skillflow/lock.json` - Actual state (what's installed)
109
+ - `~/.skillflow/source/git/<source-id>/` - Git repo cache
110
+ - `~/.skillflow/source/clawhub/<source-id>/` - ClawHub cache
111
+ - `~/.skillflow/catalog/git/<source-id>/` - Built-in Git catalog cache
102
112
 
103
- **Projection Strategy**
104
- Symlinks preferred, file copies when necessary. Target directories are projections only; true state managed by lock.json.
113
+ **Deployment Strategy**
114
+ Uses symlinks when possible, file copies when needed. Target directories are just deploy points — real state lives in lock.json.
105
115
 
106
116
  ## Supported Agents
107
117
 
@@ -109,6 +119,35 @@ Claude Code · Codex · Cursor · GitHub Copilot · Gemini CLI · OpenCode · Op
109
119
 
110
120
  Customize target paths via environment variables (e.g., `SKILL_FLOW_TARGET_CLAUDE_CODE`).
111
121
 
122
+ Broader ecosystem path references, including project-level rules and instructions paths, are tracked in [docs/refrences/agent-skill-paths.md](./docs/refrences/agent-skill-paths.md).
123
+
124
+ ## Built-in Discovery Catalogs
125
+
126
+ `find/search` searches built-in Git catalogs in addition to local installed skills and ClawHub.
127
+
128
+ For more reliable built-in Git catalog search, set `GITHUB_TOKEN` to avoid low unauthenticated GitHub API rate limits.
129
+
130
+ | Repository | Description | Stars | Skills |
131
+ | --- | --- | ---: | ---: |
132
+ | [anthropic-skills](https://github.com/anthropics/skills) | Official Agent Skills from Anthropic | 95,957 | 18 |
133
+ | [superpowers](https://github.com/obra/superpowers) | Agentic skills framework & development methodology | 89,816 | 14 |
134
+ | [everything-claude-code](https://github.com/affaan-m/everything-claude-code) | Performance optimization system for Claude Code, Codex, and beyond | 81,392 | 147 |
135
+ | [agency-agents](https://github.com/msitarzewski/agency-agents) | Specialized expert agents with personality and proven deliverables | 50,749 | — |
136
+ | [ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) | Design intelligence for building professional UI/UX | 43,112 | 7 |
137
+ | [antigravity-awesome-skills](https://github.com/sickn33/antigravity-awesome-skills) | 1,000+ battle-tested skills for Claude Code, Cursor, and more | 25,047 | 1,258 |
138
+ | [marketingskills](https://github.com/coreyhaines31/marketingskills) | Marketing skills — CRO, copywriting, SEO, analytics, growth | 14,099 | 33 |
139
+ | [agentskills](https://github.com/agentskills/agentskills) | Specification and documentation for Agent Skills | 13,342 | — |
140
+ | [taste-skill](https://github.com/Leonxlnx/taste-skill) | Gives your AI good taste — stops generic, boring output | 3,389 | 5 |
141
+ | [affiliate-skills](https://github.com/Affitor/affiliate-skills) | Full affiliate marketing funnel: research to deploy | 99 | 47 |
142
+ | [skills](https://github.com/luongnv89/skills) | Reusable skills to supercharge your AI agents | 1 | 29 |
143
+ | [awesome-claude-skills](https://github.com/ComposioHQ/awesome-claude-skills) | Community Claude skills collection | — | — |
144
+ | [myclaude](https://github.com/cexll/myclaude) | Personal Claude skills collection | — | — |
145
+ | [baoyu-skills](https://github.com/JimLiu/baoyu-skills) | Community skills collection | — | — |
146
+ | [dbskill](https://github.com/dontbesilent2025/dbskill) | Database-focused skills collection | — | — |
147
+ | [gstack](https://github.com/garrytan/gstack) | Gstack skills and workflows | — | — |
148
+ | [impeccable](https://github.com/pbakaus/impeccable) | Design and taste skills collection | — | — |
149
+ | [frontend-slides](https://github.com/zarazhangrui/frontend-slides) | Frontend presentation skills collection | — | — |
150
+
112
151
  ## Development
113
152
 
114
153
  ```bash
package/README.zh.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Skill Flow
2
2
 
3
- > **让 AI 技能管理回归工作流本质。**
4
- > 工作流分组 · 多目标投影 · 显式状态 · 漂移诊断
3
+ > **让 Skill 管理回归本质。**
4
+ > Skill 分组 · 一键部署到多个工具 · 配置清晰 · 问题快速定位
5
5
 
6
6
  ![img](img/img-1.jpg)
7
7
 
@@ -10,26 +10,27 @@
10
10
  [![Node.js Version](https://img.shields.io/node/v/skill-flow?style=flat-square)](https://nodejs.org)
11
11
  [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg?style=flat-square)](./LICENSE)
12
12
 
13
- 当你的 AI agent 技能越装越多,管理就会变得混乱:一个 Git 源包含多个相关技能,投影到不同 agent 后结构被打散,更新和排障变得困难。
13
+ 当你的 Skill 越装越多,管理就会变得混乱:从 Github 仓库下载了一堆相关技能,部署到不同 agent 后结构被打散,更新和排障变得困难。
14
14
 
15
- `skill-flow` 用工作流视角重新组织技能管理:从 Git 源添加技能组,选择投影目标,统一更新,诊断漂移。让技能管理清晰、可控、高效。
15
+ `skill-flow` Skill 视角重新组织管理:以 Github 仓库作为 Skill 分组依据,选择部署目标,统一更新,快速诊断问题。让 Skill 管理清晰、可控、高效。
16
16
 
17
17
  ## 核心特性
18
+ ![Skill 分组关系图](./img/skill-groups-diagram.png)
18
19
 
19
- **工作流分组管理**
20
- 一个 Git = 一个工作流组。相关技能保持在一起,更新和维护以工作流为单位进行。
20
+ **Skill 分组管理**
21
+ 一个 Github 仓库 = 一个 Skill 分组。相关 Skills 保持在一起,更新和维护以分组为单位进行。
21
22
 
22
- **多目标投影**
23
- 一次配置,投影到多个 agent(Claude Code、Cursor、Windsurf 等 13+ 目标)。
23
+ **一键部署到多个工具**
24
+ 一次配置,部署到多个 agent(Claude Code、Cursor、Windsurf 等 13+ 目标)。
24
25
 
25
26
  **交互式终端 UI**
26
27
  直观的 TUI 界面:查看分组 → 选择技能 → 选择目标 → 保存配置。
27
28
 
28
29
  **显式状态追踪**
29
- `manifest.json` 记录你的意图,`lock.json` 记录实际部署状态。状态清晰可查。
30
+ `manifest.json` 记录你的意图,`lock.json` 记录实际安装状态。状态清晰可查。
30
31
 
31
- **健康诊断**
32
- `doctor` 命令检测断链、漂移、冲突,精准定位问题。
32
+ **一键体检**
33
+ `doctor` 命令检测断链、不一致、冲突,精准定位问题。
33
34
 
34
35
  ## 安装
35
36
 
@@ -64,7 +65,7 @@ npm link
64
65
  # 添加技能源
65
66
  skill-flow add /path/to/skills-repo
66
67
 
67
- # 查看工作流分组
68
+ # 查看 Skill 分组
68
69
  skill-flow list
69
70
 
70
71
  # 交互式配置(选择技能和目标)
@@ -76,32 +77,40 @@ skill-flow update --all
76
77
  # 健康检查
77
78
  skill-flow doctor
78
79
 
79
- # 移除工作流组
80
+ # 移除 Skill 分组
80
81
  skill-flow uninstall my-source-id
81
82
  ```
82
83
 
83
- `add <source>` 支持本地路径、`owner/repo`,以及完整的 https/ssh Git URL
84
+ `add <source>` 支持本地路径、`owner/repo`、完整的 https/ssh Git URL、GitHub tree URL,以及 `clawhub:<slug>[@version]`。
85
+
86
+ `add` 默认会预选该源的全部 skill,以及当前检测到的全部 agent 目标。传入 `--path <repoSubpath>` 时,仍然会导入整个仓库,但只会预选该路径下的 skill。
84
87
 
85
88
  ## 命令参考
86
89
 
87
90
  | 命令 | 说明 |
88
91
  |---|---|
89
- | `add <source>` | 添加 Git 源(支持本地路径、`owner/repo`、https/ssh URL) |
90
- | `list` | 显示工作流分组 |
92
+ | `add <source>` | 添加技能源(Git 仓库或 ClawHub) |
93
+ | `find <query>` | 搜索本地已安装技能、内置 Git 仓库和 ClawHub |
94
+ | `search <query>` | `find` 的别名 |
95
+ | `list` | 显示 Skill 分组 |
91
96
  | `config` | 打开交互式配置界面 |
92
- | `update [sourceId] --all` | 更新源并重新投影 |
93
- | `doctor` | 诊断投影健康状态 |
94
- | `uninstall <sourceIds...>` | 移除工作流组及其投影 |
97
+ | `update [sourceId] --all` | 更新所有技能并重新部署 |
98
+ | `doctor` | 体检,排查问题 |
99
+ | `uninstall <sourceIds...>` | 移除 Skill 分组及其部署 |
100
+
101
+ 当已选 skill 出现同名冲突时,`skill-flow` 会把内容完全相同的重复项保留为 warning,把内容不同的冲突项改成带 repo / author 前缀的链接名,例如 `gstack-browse`、`gstack(garrytan)-browse` 或 `garrytan-skill-creator`。
95
102
 
96
103
  ## 工作原理
97
104
 
98
105
  **状态管理**
99
- - `~/.skillflow/manifest.json` - 你的配置意图
100
- - `~/.skillflow/lock.json` - 实际部署状态
101
- - `~/.skillflow/source/git/<source-id>/` - Git 源缓存
106
+ - `~/.skillflow/manifest.json` - 你的配置(你想要什么)
107
+ - `~/.skillflow/lock.json` - 实际状态(实际装了什么)
108
+ - `~/.skillflow/source/git/<source-id>/` - Git 仓库缓存
109
+ - `~/.skillflow/source/clawhub/<source-id>/` - ClawHub 缓存
110
+ - `~/.skillflow/catalog/git/<source-id>/` - 内置 Git 仓库缓存
102
111
 
103
- **投影策略**
104
- 优先使用符号链接,必要时使用文件复制。目标目录仅作为投影,真实状态由 lock.json 管理。
112
+ **部署策略**
113
+ 优先使用符号链接,必要时使用文件复制。目标目录只是部署点,真正的状态在 lock.json 里。
105
114
 
106
115
  ## 支持的 Agent
107
116
 
@@ -109,6 +118,35 @@ Claude Code · Codex · Cursor · GitHub Copilot · Gemini CLI · OpenCode · Op
109
118
 
110
119
  可通过环境变量自定义目标路径(如 `SKILL_FLOW_TARGET_CLAUDE_CODE`)。
111
120
 
121
+ 更广义的生态路径参考,包括 project 级 rules / instructions 路径,见 [docs/refrences/agent-skill-paths.md](./docs/refrences/agent-skill-paths.md)。
122
+
123
+ ## 默认内置发现仓库
124
+
125
+ `find/search` 除了搜索本地已安装技能和 ClawHub,也会搜索默认内置的 Git 仓库目录。
126
+
127
+ 如果希望内置 Git 仓库搜索更稳定,建议设置 `GITHUB_TOKEN`,避免 GitHub 未认证 API 的低速率限制。
128
+
129
+ | Repository | Description | Stars | Skills |
130
+ | --- | --- | ---: | ---: |
131
+ | [anthropic-skills](https://github.com/anthropics/skills) | Official Agent Skills from Anthropic | 95,957 | 18 |
132
+ | [superpowers](https://github.com/obra/superpowers) | Agentic skills framework & development methodology | 89,816 | 14 |
133
+ | [everything-claude-code](https://github.com/affaan-m/everything-claude-code) | Performance optimization system for Claude Code, Codex, and beyond | 81,392 | 147 |
134
+ | [agency-agents](https://github.com/msitarzewski/agency-agents) | Specialized expert agents with personality and proven deliverables | 50,749 | — |
135
+ | [ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) | Design intelligence for building professional UI/UX | 43,112 | 7 |
136
+ | [antigravity-awesome-skills](https://github.com/sickn33/antigravity-awesome-skills) | 1,000+ battle-tested skills for Claude Code, Cursor, and more | 25,047 | 1,258 |
137
+ | [marketingskills](https://github.com/coreyhaines31/marketingskills) | Marketing skills — CRO, copywriting, SEO, analytics, growth | 14,099 | 33 |
138
+ | [agentskills](https://github.com/agentskills/agentskills) | Specification and documentation for Agent Skills | 13,342 | — |
139
+ | [taste-skill](https://github.com/Leonxlnx/taste-skill) | Gives your AI good taste — stops generic, boring output | 3,389 | 5 |
140
+ | [affiliate-skills](https://github.com/Affitor/affiliate-skills) | Full affiliate marketing funnel: research to deploy | 99 | 47 |
141
+ | [skills](https://github.com/luongnv89/skills) | Reusable skills to supercharge your AI agents | 1 | 29 |
142
+ | [awesome-claude-skills](https://github.com/ComposioHQ/awesome-claude-skills) | Community Claude skills collection | — | — |
143
+ | [myclaude](https://github.com/cexll/myclaude) | Personal Claude skills collection | — | — |
144
+ | [baoyu-skills](https://github.com/JimLiu/baoyu-skills) | Community skills collection | — | — |
145
+ | [dbskill](https://github.com/dontbesilent2025/dbskill) | Database-focused skills collection | — | — |
146
+ | [gstack](https://github.com/garrytan/gstack) | Gstack skills and workflows | — | — |
147
+ | [impeccable](https://github.com/pbakaus/impeccable) | Design and taste skills collection | — | — |
148
+ | [frontend-slides](https://github.com/zarazhangrui/frontend-slides) | Frontend presentation skills collection | — | — |
149
+
112
150
  ## 开发
113
151
 
114
152
  ```bash
package/dist/cli.js CHANGED
@@ -4,14 +4,16 @@ import { Command } from "commander";
4
4
  import { render } from "ink";
5
5
  import { SkillFlowApp } from "./services/skill-flow.js";
6
6
  import { ConfigApp } from "./tui/config-app.js";
7
+ import { FindApp } from "./tui/find-app.js";
7
8
  import { formatGroupRef } from "./utils/naming.js";
8
- import { formatDoctorIssue, formatWorkflowList } from "./utils/format.js";
9
+ import { formatDoctorIssue, formatWorkflowList, } from "./utils/format.js";
10
+ import { buildFindCommand } from "./utils/find-command.js";
9
11
  const program = new Command();
10
12
  const app = new SkillFlowApp();
11
13
  program
12
14
  .name("skill-flow")
13
15
  .description("Workflow-first skill projection manager")
14
- .version("1.0.0");
16
+ .version("1.0.3");
15
17
  program
16
18
  .command("add")
17
19
  .argument("<source>", "Source locator")
@@ -40,6 +42,34 @@ program.command("list").action(async () => {
40
42
  }
41
43
  console.log(formatWorkflowList(result.data.summaries));
42
44
  });
45
+ program
46
+ .command("find")
47
+ .alias("search")
48
+ .argument("<query>", "Search query")
49
+ .option("--json", "Print JSON output")
50
+ .action(async (query, options) => {
51
+ const result = await app.findSkills(query);
52
+ if (!result.ok) {
53
+ printErrors(result.errors);
54
+ process.exitCode = 1;
55
+ return;
56
+ }
57
+ if (options.json) {
58
+ console.log(JSON.stringify(result.data.candidates.map((candidate) => ({
59
+ ...candidate,
60
+ nextCommand: buildFindCommand(candidate),
61
+ })), null, 2));
62
+ printWarnings(result.warnings.map((warning) => warning.message));
63
+ return;
64
+ }
65
+ const instance = render(_jsx(FindApp, { app: app, query: query, candidates: result.data.candidates }));
66
+ if (result.warnings.length > 0) {
67
+ for (const warning of result.warnings) {
68
+ console.warn(`warning: ${warning.message}`);
69
+ }
70
+ }
71
+ await instance.waitUntilExit();
72
+ });
43
73
  program.command("config").action(async () => {
44
74
  const result = await app.getConfigData();
45
75
  if (!result.ok) {
@@ -67,8 +97,8 @@ program.command("config").action(async () => {
67
97
  });
68
98
  program
69
99
  .command("update")
70
- .argument("[sourceId]", "Optional workflow group id")
71
- .option("--all", "Update all registered workflow groups")
100
+ .argument("[sourceId]", "Optional skills group id")
101
+ .option("--all", "Update all registered skills groups")
72
102
  .action(async (sourceId, options) => {
73
103
  const ids = options.all || !sourceId ? undefined : [sourceId];
74
104
  const result = await app.updateSources(ids);
@@ -104,7 +134,7 @@ program.command("doctor").action(async () => {
104
134
  });
105
135
  program
106
136
  .command("uninstall")
107
- .argument("<sourceIds...>", "Workflow group ids to remove")
137
+ .argument("<sourceIds...>", "Skills group ids to remove")
108
138
  .action(async (sourceIds) => {
109
139
  const result = await app.uninstall(sourceIds);
110
140
  if (!result.ok) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":"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"}
@@ -107,6 +107,7 @@ export type DeploymentAction = {
107
107
  sourcePath: string;
108
108
  targetPath: string;
109
109
  previousTargetPath?: string;
110
+ relocateExternalToTargetPath?: string;
110
111
  reason?: string;
111
112
  contentHash: string;
112
113
  };
@@ -138,3 +139,27 @@ export type WorkflowSummary = {
138
139
  activeTargetCount: number;
139
140
  health: HealthStatus;
140
141
  };
142
+ export type SkillCandidateAction = {
143
+ type: "none";
144
+ } | {
145
+ type: "add-git";
146
+ locator: string;
147
+ requestedPath?: string;
148
+ } | {
149
+ type: "add-clawhub";
150
+ slug: string;
151
+ version?: string;
152
+ };
153
+ export type SkillCandidate = {
154
+ id: string;
155
+ title: string;
156
+ description: string;
157
+ source: "local" | "builtin-git" | "clawhub";
158
+ sourceLabel: string;
159
+ sourceId: string;
160
+ sourceKind: SourceKind;
161
+ locator: string;
162
+ relativePath?: string;
163
+ installed: boolean;
164
+ action: SkillCandidateAction;
165
+ };
@@ -1,3 +1,4 @@
1
+ import fs from "node:fs/promises";
1
2
  import path from "node:path";
2
3
  import { copyDirectory, createSymlink, ensureDir, pathExists, removePath } from "../utils/fs.js";
3
4
  import { ok } from "../utils/result.js";
@@ -24,6 +25,11 @@ export class DeploymentApplier {
24
25
  (await pathExists(action.previousTargetPath))) {
25
26
  await removePath(action.previousTargetPath);
26
27
  }
28
+ if (action.relocateExternalToTargetPath &&
29
+ (await pathExists(action.targetPath))) {
30
+ await ensureDir(path.dirname(action.relocateExternalToTargetPath));
31
+ await fs.rename(action.targetPath, action.relocateExternalToTargetPath);
32
+ }
27
33
  if (action.strategy === "symlink") {
28
34
  await createSymlink(action.sourcePath, action.targetPath);
29
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-applier.js","sourceRoot":"","sources":["../../src/services/deployment-applier.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAO7B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjG,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,MAAM,OAAO,iBAAiB;IAC5B,KAAK,CAAC,SAAS,CACb,QAAkB,EAClB,OAA2B;QAE3B,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxD,SAAS;YACX,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,IAAI,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBACxC,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACtC,CAAC;gBACD,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAChD,CAAC,UAAU,EAAE,EAAE,CACb,CAAC,CACC,UAAU,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ;oBACvC,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;oBACnC,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CACpC,CACJ,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACjD,IACE,MAAM,CAAC,kBAAkB;gBACzB,MAAM,CAAC,kBAAkB,KAAK,MAAM,CAAC,UAAU;gBAC/C,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAC7C,CAAC;gBACD,MAAM,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,MAAM,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,UAAU,GAAqB;gBACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;YAEF,QAAQ,CAAC,WAAW,GAAG;gBACrB,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAC5B,CAAC,UAAU,EAAE,EAAE,CACb,CAAC,CACC,UAAU,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ;oBACvC,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;oBACnC,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CACpC,CACJ;gBACD,UAAU;aACX,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"deployment-applier.js","sourceRoot":"","sources":["../../src/services/deployment-applier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAO7B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjG,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,MAAM,OAAO,iBAAiB;IAC5B,KAAK,CAAC,SAAS,CACb,QAAkB,EAClB,OAA2B;QAE3B,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACxD,SAAS;YACX,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,IAAI,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBACxC,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACtC,CAAC;gBACD,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAChD,CAAC,UAAU,EAAE,EAAE,CACb,CAAC,CACC,UAAU,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ;oBACvC,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;oBACnC,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CACpC,CACJ,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACjD,IACE,MAAM,CAAC,kBAAkB;gBACzB,MAAM,CAAC,kBAAkB,KAAK,MAAM,CAAC,UAAU;gBAC/C,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAC7C,CAAC;gBACD,MAAM,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC9C,CAAC;YAED,IACE,MAAM,CAAC,4BAA4B;gBACnC,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EACrC,CAAC;gBACD,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBACnE,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,4BAA4B,CAAC,CAAC;YAC1E,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,MAAM,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,UAAU,GAAqB;gBACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;YAEF,QAAQ,CAAC,WAAW,GAAG;gBACrB,GAAG,QAAQ,CAAC,WAAW,CAAC,MAAM,CAC5B,CAAC,UAAU,EAAE,EAAE,CACb,CAAC,CACC,UAAU,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ;oBACvC,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;oBACnC,UAAU,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CACpC,CACJ;gBACD,UAAU;aACX,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACzB,CAAC;CACF"}
@@ -7,5 +7,10 @@ export declare class DeploymentPlanner {
7
7
  private planTarget;
8
8
  private resolveDesiredAction;
9
9
  private inspectTargetPath;
10
+ private buildExternalIdentityState;
11
+ private readSkillIdentity;
12
+ private buildExternalRelocationCandidate;
13
+ private buildExternalRelocationLinkNames;
14
+ private inspectExistingTargetPath;
10
15
  private buildProjectedLinkNameMap;
11
16
  }