agentinit 1.21.0 → 1.22.1
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/CHANGELOG.md +15 -1
- package/README.md +81 -27
- package/dist/agents/Agent.d.ts +4 -0
- package/dist/agents/Agent.d.ts.map +1 -1
- package/dist/agents/Agent.js +9 -1
- package/dist/agents/Agent.js.map +1 -1
- package/dist/agents/HermesAgent.d.ts.map +1 -1
- package/dist/agents/HermesAgent.js +1 -0
- package/dist/agents/HermesAgent.js.map +1 -1
- package/dist/cli.js +150 -25
- package/dist/commands/skills.d.ts.map +1 -1
- package/dist/commands/skills.js +154 -21
- package/dist/commands/skills.js.map +1 -1
- package/dist/core/skillsManager.d.ts.map +1 -1
- package/dist/core/skillsManager.js +6 -3
- package/dist/core/skillsManager.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [1.22.1](https://github.com/agentinit/agentinit/compare/v1.22.0...v1.22.1) (2026-04-28)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **skills:** honor global-only Hermes installs ([5ad8120](https://github.com/agentinit/agentinit/commit/5ad8120e63afbb74ced6180a80d2cff761cb3fae))
|
|
7
|
+
|
|
8
|
+
# [1.22.0](https://github.com/agentinit/agentinit/compare/v1.21.0...v1.22.0) (2026-04-28)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **skills:** resolve bundled plugins from skill names ([74a8698](https://github.com/agentinit/agentinit/commit/74a8698021b70bbfa602c0c39283b6dfd46276d4))
|
|
14
|
+
|
|
1
15
|
# [1.21.0](https://github.com/agentinit/agentinit/compare/v1.20.2...v1.21.0) (2026-04-26)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -249,7 +263,7 @@
|
|
|
249
263
|
|
|
250
264
|
* support the `openai` marketplace for skills and plugin installs
|
|
251
265
|
* add OpenClaw as a skills target with shared project installs via `.agents/skills/` and dedicated global installs via `~/.openclaw/skills/`
|
|
252
|
-
* add Hermes as a skills target
|
|
266
|
+
* add Hermes as a global-only skills target via `~/.hermes/skills/`
|
|
253
267
|
* warn and fall back to GitHub repos for marketplace misses, marking allowlisted repos like `openai/codex-plugin-cc` as verified
|
|
254
268
|
* install Claude Code-native plugin payloads during `plugins install` when Claude-only components are detected and Claude Code is targeted, registering native marketplace metadata under `~/.claude/plugins`
|
|
255
269
|
|
package/README.md
CHANGED
|
@@ -1,19 +1,60 @@
|
|
|
1
1
|
# AgentInit
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Keep your AI coding agents in sync from one `agents.md` file.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[](https://www.npmjs.com/package/agentinit)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](package.json)
|
|
8
|
+
|
|
9
|
+
AgentInit is a CLI for teams and solo developers who use more than one coding agent and are tired of repeating the same setup in different formats. Define your standards once in `agents.md`, generate the files each tool expects, install shared skills and MCPs, and keep the whole setup manageable over time.
|
|
10
|
+
|
|
11
|
+
It works with Claude Code, Cursor, Windsurf, Copilot, Codex CLI, Gemini CLI, RooCode, Zed, Droid, and more.
|
|
12
|
+
|
|
13
|
+
## Why AgentInit?
|
|
14
|
+
|
|
15
|
+
Most agent setups drift fast.
|
|
16
|
+
|
|
17
|
+
You tweak `CLAUDE.md`, forget to update `.cursorrules`, install a skill in one tool but not another, and a week later every environment behaves a little differently. AgentInit gives you one source of truth for instructions, one CLI for setup, and one place to manage skills, rules, and MCP servers.
|
|
18
|
+
|
|
19
|
+
Use it when you want to:
|
|
20
|
+
|
|
21
|
+
- keep multiple agent tools aligned without manual copy-paste
|
|
22
|
+
- bootstrap new projects with stack-aware guidance
|
|
23
|
+
- install shared skills and MCP servers in a consistent way
|
|
24
|
+
- apply changes safely with previews, backups, and reverts
|
|
25
|
+
- make your agent setup easier to onboard, review, and maintain
|
|
26
|
+
|
|
27
|
+
## Table of Contents
|
|
28
|
+
|
|
29
|
+
- [Features](#features)
|
|
30
|
+
- [Quick Start](#quick-start)
|
|
31
|
+
- [Commands](#commands)
|
|
32
|
+
- [How It Works](#how-it-works)
|
|
33
|
+
- [Project Structure](#project-structure)
|
|
34
|
+
- [Configuration](#configuration)
|
|
35
|
+
- [Stack Detection](#stack-detection)
|
|
36
|
+
- [MCP Registry](#mcp-registry)
|
|
37
|
+
- [Library API](#library-api)
|
|
38
|
+
- [Development](#development)
|
|
39
|
+
- [Contributing](#contributing)
|
|
40
|
+
- [License](#license)
|
|
6
41
|
|
|
7
42
|
## Features
|
|
8
43
|
|
|
9
|
-
- **
|
|
10
|
-
- **
|
|
11
|
-
- **
|
|
12
|
-
- **
|
|
13
|
-
- **
|
|
14
|
-
- **
|
|
15
|
-
|
|
16
|
-
|
|
44
|
+
- **One source of truth**: Write and maintain shared instructions in `agents.md`
|
|
45
|
+
- **Multi-agent sync**: Generate the right files for Claude, Cursor, Windsurf, Copilot, Codex CLI, and other supported tools
|
|
46
|
+
- **Stack-aware project setup**: Detect your language, framework, package manager, and test tooling to generate more useful defaults
|
|
47
|
+
- **Skills, plugins, and MCPs**: Install reusable capabilities from local paths, Git repositories, or marketplaces
|
|
48
|
+
- **Operational safety**: Preview changes, create backups, revert managed files, and track installs with a lockfile
|
|
49
|
+
- **Shared standards support**: Use `AGENTS.md` where supported and alias `CLAUDE.md` when you want a shared canonical rules file
|
|
50
|
+
|
|
51
|
+
## How It Works
|
|
52
|
+
|
|
53
|
+
1. Run `agentinit init` to generate an `agents.md` file for your project.
|
|
54
|
+
2. Customize the instructions, standards, and sub-agent roles you want all tools to follow.
|
|
55
|
+
3. Run `agentinit sync` or `agentinit apply` to write tool-specific files, install project-owned skills, and keep generated artifacts in sync.
|
|
56
|
+
|
|
57
|
+
If you already have agent files in a repo, start with `agentinit detect` to inspect what AgentInit can work with before you standardize it.
|
|
17
58
|
|
|
18
59
|
## Quick Start
|
|
19
60
|
|
|
@@ -27,16 +68,16 @@ npm install -g agentinit
|
|
|
27
68
|
### Basic Usage
|
|
28
69
|
|
|
29
70
|
```bash
|
|
30
|
-
# Initialize agent configuration
|
|
71
|
+
# Initialize a shared agent configuration
|
|
31
72
|
agentinit init
|
|
32
73
|
|
|
33
|
-
#
|
|
74
|
+
# Review what AgentInit detects in the current repo
|
|
34
75
|
agentinit detect
|
|
35
76
|
|
|
36
|
-
# Sync agents.md
|
|
77
|
+
# Sync agents.md into agent-specific files
|
|
37
78
|
agentinit sync
|
|
38
79
|
|
|
39
|
-
# Apply project-owned
|
|
80
|
+
# Apply synced files, project-owned skills, and managed ignore entries
|
|
40
81
|
agentinit apply
|
|
41
82
|
|
|
42
83
|
# Add and verify an MCP server
|
|
@@ -44,6 +85,22 @@ agentinit mcp add --verify \
|
|
|
44
85
|
--mcp-stdio everything "npx -y @modelcontextprotocol/server-everything"
|
|
45
86
|
```
|
|
46
87
|
|
|
88
|
+
### A Typical Flow
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# 1. Generate a starting point
|
|
92
|
+
agentinit init --template cli
|
|
93
|
+
|
|
94
|
+
# 2. Edit agents.md with your standards
|
|
95
|
+
|
|
96
|
+
# 3. Write the files each agent expects
|
|
97
|
+
agentinit apply
|
|
98
|
+
|
|
99
|
+
# 4. Add shared skills or MCP servers
|
|
100
|
+
agentinit skills add openai-docs --agent claude
|
|
101
|
+
agentinit mcp verify --all
|
|
102
|
+
```
|
|
103
|
+
|
|
47
104
|
### Output Controls
|
|
48
105
|
|
|
49
106
|
```bash
|
|
@@ -233,13 +290,13 @@ agentinit skills update openai-docs --everywhere
|
|
|
233
290
|
agentinit skills remove openai-docs
|
|
234
291
|
```
|
|
235
292
|
|
|
236
|
-
|
|
293
|
+
Skills are installed into a canonical store (`.agents/skills/` for project, `~/.agents/skills/` for global) with agent-specific paths symlinked automatically. Bare skill names resolve from your default marketplace or fall back to the public catalog at `vercel-labs/agent-skills`. Supports GitHub, GitLab, Bitbucket, local paths, and marketplace sources.
|
|
237
294
|
|
|
238
|
-
|
|
295
|
+
If a GitHub or local Claude bundle contains multiple plugins, `agentinit skills add` prompts you to choose one or more bundled plugins to inspect or install. Use `--all` to skip the prompt and install or inspect every bundled plugin. In non-interactive `--yes` mode, AgentInit can also auto-resolve bundled plugins from `--skill` when those skill names map uniquely; ambiguous selections still fail with guidance.
|
|
239
296
|
|
|
240
|
-
|
|
297
|
+
Re-running `agentinit skills add` compares the source with the installed version and asks for confirmation before overwriting changed skills. Installs are security-scanned by default; use `--no-scan` to skip or `--allow-risky` to proceed with high-risk patterns.
|
|
241
298
|
|
|
242
|
-
`agentinit skills update [name]` replays tracked
|
|
299
|
+
`agentinit skills update [name]` replays tracked installs from their original source. Use `agentinit skills update <name> --everywhere` to update that skill across every tracked target in the global lockfile.
|
|
243
300
|
|
|
244
301
|
### `agentinit lock`
|
|
245
302
|
|
|
@@ -297,9 +354,9 @@ agentinit plugins list
|
|
|
297
354
|
agentinit plugins remove code-review
|
|
298
355
|
```
|
|
299
356
|
|
|
300
|
-
|
|
357
|
+
Plugins install into `~/.claude/plugins` (for Claude-format bundles) or the canonical skill store. Built-in marketplaces include `claude` and `openai`.
|
|
301
358
|
|
|
302
|
-
If a GitHub or local Claude bundle contains multiple plugins, `agentinit plugins install` prompts you to choose
|
|
359
|
+
If a GitHub or local Claude bundle contains multiple plugins, `agentinit plugins install` prompts you to choose which bundled plugins to inspect or install. Use `--all` to skip the prompt. In non-interactive `--yes` mode, ambiguous multi-plugin bundles still fail unless `--all` is provided.
|
|
303
360
|
|
|
304
361
|
### `agentinit config`
|
|
305
362
|
|
|
@@ -377,7 +434,7 @@ This is a TypeScript project using Next.js...
|
|
|
377
434
|
- Write clean, maintainable code...
|
|
378
435
|
|
|
379
436
|
### Testing Strategy
|
|
380
|
-
- Write unit tests using
|
|
437
|
+
- Write unit tests using vitest...
|
|
381
438
|
|
|
382
439
|
## Agent Instructions
|
|
383
440
|
### General Behavior
|
|
@@ -515,10 +572,10 @@ bun install
|
|
|
515
572
|
bun run build
|
|
516
573
|
|
|
517
574
|
# Run locally
|
|
518
|
-
node dist/
|
|
575
|
+
node dist/cli.js --help
|
|
519
576
|
```
|
|
520
577
|
|
|
521
|
-
###
|
|
578
|
+
### Source Structure
|
|
522
579
|
|
|
523
580
|
```
|
|
524
581
|
src/
|
|
@@ -535,14 +592,13 @@ src/
|
|
|
535
592
|
│ ├── installLock.ts # Global install lock state
|
|
536
593
|
│ ├── templateEngine.ts # Template processing
|
|
537
594
|
│ └── propagator.ts # Config sync engine
|
|
538
|
-
├── registry/ # MCP registry
|
|
539
595
|
├── utils/ # Utilities
|
|
540
596
|
└── types/ # TypeScript definitions
|
|
541
597
|
```
|
|
542
598
|
|
|
543
599
|
## Contributing
|
|
544
600
|
|
|
545
|
-
|
|
601
|
+
Issues and pull requests are welcome. Open an issue if you want to discuss a new agent, marketplace behavior, or MCP workflow before making a larger change.
|
|
546
602
|
|
|
547
603
|
## License
|
|
548
604
|
|
|
@@ -550,6 +606,4 @@ MIT License - see [LICENSE](LICENSE) file for details.
|
|
|
550
606
|
|
|
551
607
|
## Links
|
|
552
608
|
|
|
553
|
-
- [Documentation](https://docs.agentinit.dev)
|
|
554
|
-
- [MCP Registry](https://registry.agentinit.dev)
|
|
555
609
|
- [GitHub Issues](https://github.com/agentinit/agentinit/issues)
|
package/dist/agents/Agent.d.ts
CHANGED
|
@@ -125,6 +125,10 @@ export declare abstract class Agent {
|
|
|
125
125
|
* Returns null if skills are not supported
|
|
126
126
|
*/
|
|
127
127
|
getSkillsDir(projectPath: string, global?: boolean): string | null;
|
|
128
|
+
/**
|
|
129
|
+
* Return the effective skills install scope for this agent.
|
|
130
|
+
*/
|
|
131
|
+
getSkillsScope(global?: boolean): 'project' | 'global';
|
|
128
132
|
/**
|
|
129
133
|
* Return the project-level shared rules standard used by this agent, if any.
|
|
130
134
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../src/agents/Agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../src/agents/Agent.ts"],"names":[],"mappings":"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"}
|
package/dist/agents/Agent.js
CHANGED
|
@@ -185,11 +185,19 @@ export class Agent {
|
|
|
185
185
|
getSkillsDir(projectPath, global) {
|
|
186
186
|
if (!this.definition.skillPaths)
|
|
187
187
|
return null;
|
|
188
|
-
if (global) {
|
|
188
|
+
if (this.getSkillsScope(global) === 'global') {
|
|
189
189
|
return this.definition.skillPaths.global.replace('~', homedir());
|
|
190
190
|
}
|
|
191
191
|
return resolve(projectPath, this.definition.skillPaths.project);
|
|
192
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* Return the effective skills install scope for this agent.
|
|
195
|
+
*/
|
|
196
|
+
getSkillsScope(global) {
|
|
197
|
+
return global || this.definition.skillsConfigScope === 'global-only'
|
|
198
|
+
? 'global'
|
|
199
|
+
: 'project';
|
|
200
|
+
}
|
|
193
201
|
/**
|
|
194
202
|
* Return the project-level shared rules standard used by this agent, if any.
|
|
195
203
|
*/
|
package/dist/agents/Agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../src/agents/Agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAU7D;;;GAGG;AACH,MAAM,OAAgB,KAAK;IACf,UAAU,CAAkB;IAEtC,YAAY,UAA2B;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,SAAS,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,MAAM,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,OAAO;oBACL,KAAK,EAAE,IAAI;oBACX,UAAU,EAAE,QAAQ;iBACrB,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,WAAmB;QAClC,OAAO,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED;;;OAGG;IACH,gBAAgB;QACd,OAAO,uBAAuB,CAC5B,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAChC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAClC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,WAAmB;QACrC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,uBAAuB,CAC5B,IAAI,CAAC,UAAU,CAAC,eAAe,EAC/B,IAAI,CAAC,UAAU,CAAC,gBAAgB,CACjC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC1C,CAAC;IAWD;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,WAAmB;QACrC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CAAC,OAA0B;QACnD,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACzF,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,OAA0B;QACzC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YAC7B,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;gBACpB,KAAK,OAAO;oBACV,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;gBACrC,KAAK,MAAM;oBACT,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBACpC,KAAK,KAAK;oBACR,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;gBACnC;oBACE,OAAO,KAAK,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,OAA0B;QAC5C,8BAA8B;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;IA8BD;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,WAAmB,EACnB,KAAmB;QAEnB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,OAAO,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,KAAmB;QACxC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QAEzC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,CAAC;gBACf,KAAK,EAAE,IAAI,CAAC,IAAI;gBAChB,UAAU,EAAE,EAAE;gBACd,MAAM,EAAE,CAAC,SAAS,IAAI,CAAC,IAAI,gCAAgC,CAAC;aAC7D,CAAC;QACJ,CAAC;QAED,OAAO,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;IAClE,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,WAAmB,EAAE,MAAgB;QAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAC7C,IAAI,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../src/agents/Agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HermesAgent.d.ts","sourceRoot":"","sources":["../../src/agents/HermesAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,KAAK,EAAmB,oBAAoB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnE,qBAAa,WAAY,SAAQ,KAAK;;
|
|
1
|
+
{"version":3,"file":"HermesAgent.d.ts","sourceRoot":"","sources":["../../src/agents/HermesAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,KAAK,EAAmB,oBAAoB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnE,qBAAa,WAAY,SAAQ,KAAK;;IAkC9B,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAY1E,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhF,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5E,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,YAAY,EACpB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC;IAIlB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAIhD,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE;IAIxD,oBAAoB,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM;CAGvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HermesAgent.js","sourceRoot":"","sources":["../../src/agents/HermesAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC;QACE,MAAM,UAAU,GAAoB;YAClC,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE;gBACZ,GAAG,EAAE;oBACH,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE,KAAK;iBACX;gBACD,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,IAAI;aACb;YACD,WAAW,EAAE,EAAE;YACf,gBAAgB,EAAE,qBAAqB;YACvC,cAAc,EAAE,aAAa;YAC7B,UAAU,EAAE;gBACV,OAAO,EAAE,iBAAiB;gBAC1B,MAAM,EAAE,mBAAmB;aAC5B;YACD,gBAAgB,EAAE;gBAChB,MAAM,EAAE,QAAQ;aACjB;SACF,CAAC;QAEF,KAAK,CAAC,UAAU,CAAC,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,YAAoB;QACvC,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,UAAU;SACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,YAAoB,EAAE,QAA2B;QACpE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,YAAoB,EAAE,WAAmB;QAC7D,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,WAAmB,EACnB,MAAoB,EACpB,gBAAwB;QAExB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,oBAAoB,CAAC,QAAgB;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,uBAAuB,CAAC,QAAgB;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oBAAoB,CAAC,SAAwB;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"HermesAgent.js","sourceRoot":"","sources":["../../src/agents/HermesAgent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC;QACE,MAAM,UAAU,GAAoB;YAClC,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE;gBACZ,GAAG,EAAE;oBACH,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE,KAAK;iBACX;gBACD,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,KAAK;gBAChB,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,IAAI;aACb;YACD,WAAW,EAAE,EAAE;YACf,gBAAgB,EAAE,qBAAqB;YACvC,cAAc,EAAE,aAAa;YAC7B,UAAU,EAAE;gBACV,OAAO,EAAE,iBAAiB;gBAC1B,MAAM,EAAE,mBAAmB;aAC5B;YACD,iBAAiB,EAAE,aAAa;YAChC,gBAAgB,EAAE;gBAChB,MAAM,EAAE,QAAQ;aACjB;SACF,CAAC;QAEF,KAAK,CAAC,UAAU,CAAC,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,YAAoB;QACvC,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,UAAU;SACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,YAAoB,EAAE,QAA2B;QACpE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,YAAoB,EAAE,WAAmB;QAC7D,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,WAAmB,EACnB,MAAoB,EACpB,gBAAwB;QAExB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,oBAAoB,CAAC,QAAgB;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,uBAAuB,CAAC,QAAgB;QACtC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,oBAAoB,CAAC,SAAwB;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
|
package/dist/cli.js
CHANGED
|
@@ -12636,11 +12636,14 @@ class Agent {
|
|
|
12636
12636
|
getSkillsDir(projectPath, global3) {
|
|
12637
12637
|
if (!this.definition.skillPaths)
|
|
12638
12638
|
return null;
|
|
12639
|
-
if (global3) {
|
|
12639
|
+
if (this.getSkillsScope(global3) === "global") {
|
|
12640
12640
|
return this.definition.skillPaths.global.replace("~", homedir2());
|
|
12641
12641
|
}
|
|
12642
12642
|
return resolve6(projectPath, this.definition.skillPaths.project);
|
|
12643
12643
|
}
|
|
12644
|
+
getSkillsScope(global3) {
|
|
12645
|
+
return global3 || this.definition.skillsConfigScope === "global-only" ? "global" : "project";
|
|
12646
|
+
}
|
|
12644
12647
|
getProjectRulesStandard() {
|
|
12645
12648
|
return this.definition.projectStandards?.rules || null;
|
|
12646
12649
|
}
|
|
@@ -16148,6 +16151,7 @@ class HermesAgent extends Agent {
|
|
|
16148
16151
|
project: ".agents/skills/",
|
|
16149
16152
|
global: "~/.hermes/skills/"
|
|
16150
16153
|
},
|
|
16154
|
+
skillsConfigScope: "global-only",
|
|
16151
16155
|
projectStandards: {
|
|
16152
16156
|
skills: "agents"
|
|
16153
16157
|
}
|
|
@@ -19745,7 +19749,7 @@ class SkillsManager {
|
|
|
19745
19749
|
mode: "copy"
|
|
19746
19750
|
};
|
|
19747
19751
|
}
|
|
19748
|
-
const canonicalPath = this.resolveInstallPath(this.getCanonicalSkillsDir(projectPath, options2.global
|
|
19752
|
+
const canonicalPath = this.resolveInstallPath(this.getCanonicalSkillsDir(projectPath, agent.getSkillsScope(options2.global) === "global"), normalizedSkillName);
|
|
19749
19753
|
if (agentPath === canonicalPath) {
|
|
19750
19754
|
return {
|
|
19751
19755
|
path: canonicalPath,
|
|
@@ -20200,12 +20204,14 @@ class SkillsManager {
|
|
|
20200
20204
|
for (const entry of entries) {
|
|
20201
20205
|
const hashPath = entry.canonicalPath || entry.path;
|
|
20202
20206
|
const contentHash = await hashDirectory(hashPath);
|
|
20207
|
+
const agent = this.agentManager.getAgentById(entry.agent);
|
|
20208
|
+
const scope = agent?.getSkillsScope(options2.global) ?? (options2.global ? "global" : "project");
|
|
20203
20209
|
await lock.recordSkill({
|
|
20204
20210
|
action,
|
|
20205
20211
|
name: entry.skill.name,
|
|
20206
20212
|
projectPath: resolve9(projectPath),
|
|
20207
20213
|
agents: [entry.agent],
|
|
20208
|
-
scope
|
|
20214
|
+
scope,
|
|
20209
20215
|
source: lockSource,
|
|
20210
20216
|
installPath: entry.path,
|
|
20211
20217
|
mode: entry.mode,
|
|
@@ -20235,7 +20241,7 @@ class SkillsManager {
|
|
|
20235
20241
|
if (!agent.supportsSkills())
|
|
20236
20242
|
continue;
|
|
20237
20243
|
const scopes = [];
|
|
20238
|
-
if (!options2.global) {
|
|
20244
|
+
if (!options2.global && agent.getSkillsScope(false) === "project") {
|
|
20239
20245
|
scopes.push({ scope: "project", dir: agent.getSkillsDir(projectPath, false) });
|
|
20240
20246
|
}
|
|
20241
20247
|
scopes.push({ scope: "global", dir: agent.getSkillsDir(projectPath, true) });
|
|
@@ -42327,27 +42333,134 @@ init_skills();
|
|
|
42327
42333
|
var normalizeSkillPrefix = function(prefix) {
|
|
42328
42334
|
return prefix?.trim() ?? "";
|
|
42329
42335
|
};
|
|
42330
|
-
var
|
|
42331
|
-
|
|
42336
|
+
var matchesSelectedSkillValue = function(skillName, selectedName, prefix) {
|
|
42337
|
+
const normalizedSkillName = skillName.trim().toLowerCase();
|
|
42338
|
+
const normalizedSelectedName = selectedName.trim().toLowerCase();
|
|
42339
|
+
if (!normalizedSelectedName) {
|
|
42340
|
+
return false;
|
|
42341
|
+
}
|
|
42342
|
+
if (normalizedSelectedName === normalizedSkillName) {
|
|
42332
42343
|
return true;
|
|
42333
42344
|
}
|
|
42334
|
-
const normalizedPrefix = normalizeSkillPrefix(prefix);
|
|
42345
|
+
const normalizedPrefix = normalizeSkillPrefix(prefix).toLowerCase();
|
|
42335
42346
|
if (!normalizedPrefix) {
|
|
42336
42347
|
return false;
|
|
42337
42348
|
}
|
|
42338
|
-
return
|
|
42349
|
+
return normalizedSelectedName === `${normalizedPrefix}${normalizedSkillName}`;
|
|
42350
|
+
};
|
|
42351
|
+
var matchesSelectedSkillName = function(skillName, selectedNames, prefix) {
|
|
42352
|
+
return [...selectedNames].some((selectedName) => matchesSelectedSkillValue(skillName, selectedName, prefix));
|
|
42353
|
+
};
|
|
42354
|
+
async function resolveBundlePluginsForSelectedSkills(skillsManager5, source, projectPath, entries, selectedSkillNames, prefix, options2 = {}) {
|
|
42355
|
+
const requestedSkillNames = Array.from(new Set(selectedSkillNames.map((name) => name.trim().toLowerCase()).filter(Boolean)));
|
|
42356
|
+
if (requestedSkillNames.length === 0) {
|
|
42357
|
+
return {
|
|
42358
|
+
pluginNames: null,
|
|
42359
|
+
ambiguousSkillNames: [],
|
|
42360
|
+
unresolvedSkillNames: [],
|
|
42361
|
+
hadDiscoveryError: false
|
|
42362
|
+
};
|
|
42363
|
+
}
|
|
42364
|
+
const matchedPluginNamesBySkill = new Map;
|
|
42365
|
+
const matchedSkills = new Map;
|
|
42366
|
+
const prioritizedEntries = [
|
|
42367
|
+
...entries.filter((entry) => requestedSkillNames.some((skillName) => matchesSelectedSkillValue(entry.name, skillName, prefix))),
|
|
42368
|
+
...entries.filter((entry) => !requestedSkillNames.some((skillName) => matchesSelectedSkillValue(entry.name, skillName, prefix)))
|
|
42369
|
+
];
|
|
42370
|
+
for (const entry of prioritizedEntries) {
|
|
42371
|
+
let discoveredSkills;
|
|
42372
|
+
try {
|
|
42373
|
+
const discovered = await skillsManager5.discoverFromSource(source, projectPath, {
|
|
42374
|
+
...options2.from !== undefined ? { from: options2.from } : {},
|
|
42375
|
+
pluginName: entry.name
|
|
42376
|
+
});
|
|
42377
|
+
discoveredSkills = discovered.skills;
|
|
42378
|
+
} catch {
|
|
42379
|
+
return {
|
|
42380
|
+
pluginNames: null,
|
|
42381
|
+
ambiguousSkillNames: [],
|
|
42382
|
+
unresolvedSkillNames: requestedSkillNames,
|
|
42383
|
+
hadDiscoveryError: true
|
|
42384
|
+
};
|
|
42385
|
+
}
|
|
42386
|
+
for (const skill of discoveredSkills) {
|
|
42387
|
+
for (const requestedSkillName of requestedSkillNames) {
|
|
42388
|
+
if (!matchesSelectedSkillValue(skill.name, requestedSkillName, prefix)) {
|
|
42389
|
+
continue;
|
|
42390
|
+
}
|
|
42391
|
+
const existingPluginNames = matchedPluginNamesBySkill.get(requestedSkillName) || new Set;
|
|
42392
|
+
existingPluginNames.add(entry.name);
|
|
42393
|
+
matchedPluginNamesBySkill.set(requestedSkillName, existingPluginNames);
|
|
42394
|
+
matchedSkills.set(`${entry.name}:${skill.path}:${skill.name}`, skill);
|
|
42395
|
+
}
|
|
42396
|
+
}
|
|
42397
|
+
}
|
|
42398
|
+
const unresolvedSkillNames = requestedSkillNames.filter((skillName) => !matchedPluginNamesBySkill.has(skillName));
|
|
42399
|
+
const ambiguousSkillNames = requestedSkillNames.filter((skillName) => {
|
|
42400
|
+
const pluginNames = matchedPluginNamesBySkill.get(skillName);
|
|
42401
|
+
return !!pluginNames && pluginNames.size > 1;
|
|
42402
|
+
});
|
|
42403
|
+
if (unresolvedSkillNames.length > 0 || ambiguousSkillNames.length > 0) {
|
|
42404
|
+
return {
|
|
42405
|
+
pluginNames: null,
|
|
42406
|
+
ambiguousSkillNames,
|
|
42407
|
+
unresolvedSkillNames,
|
|
42408
|
+
hadDiscoveryError: false
|
|
42409
|
+
};
|
|
42410
|
+
}
|
|
42411
|
+
const selectedPluginNames = new Set;
|
|
42412
|
+
for (const requestedSkillName of requestedSkillNames) {
|
|
42413
|
+
for (const pluginName of matchedPluginNamesBySkill.get(requestedSkillName) || []) {
|
|
42414
|
+
selectedPluginNames.add(pluginName);
|
|
42415
|
+
}
|
|
42416
|
+
}
|
|
42417
|
+
return {
|
|
42418
|
+
pluginNames: entries.filter((entry) => selectedPluginNames.has(entry.name)).map((entry) => entry.name),
|
|
42419
|
+
ambiguousSkillNames: [],
|
|
42420
|
+
unresolvedSkillNames: [],
|
|
42421
|
+
hadDiscoveryError: false
|
|
42422
|
+
};
|
|
42423
|
+
}
|
|
42424
|
+
async function collectBundlePluginSkills(skillsManager5, source, projectPath, pluginNames, options2 = {}, preparedPlugin) {
|
|
42425
|
+
const collectedSkills = new Map;
|
|
42426
|
+
for (const pluginName of pluginNames) {
|
|
42427
|
+
const pluginSkills = preparedPlugin?.name === pluginName ? preparedPlugin.skills : (await skillsManager5.discoverFromSource(source, projectPath, {
|
|
42428
|
+
...options2.from !== undefined ? { from: options2.from } : {},
|
|
42429
|
+
pluginName
|
|
42430
|
+
})).skills;
|
|
42431
|
+
for (const skill of pluginSkills) {
|
|
42432
|
+
collectedSkills.set(`${pluginName}:${skill.path}:${skill.name}`, skill);
|
|
42433
|
+
}
|
|
42434
|
+
}
|
|
42435
|
+
return [...collectedSkills.values()];
|
|
42436
|
+
}
|
|
42437
|
+
var formatBundlePluginResolutionError = function(resolution) {
|
|
42438
|
+
const details = [];
|
|
42439
|
+
if (resolution.ambiguousSkillNames.length > 0) {
|
|
42440
|
+
details.push(`ambiguous skill name${resolution.ambiguousSkillNames.length === 1 ? "" : "s"}: ${resolution.ambiguousSkillNames.join(", ")}`);
|
|
42441
|
+
}
|
|
42442
|
+
if (resolution.unresolvedSkillNames.length > 0) {
|
|
42443
|
+
details.push(`unknown skill name${resolution.unresolvedSkillNames.length === 1 ? "" : "s"}: ${resolution.unresolvedSkillNames.join(", ")}`);
|
|
42444
|
+
}
|
|
42445
|
+
const suffix = details.length > 0 ? ` (${details.join("; ")})` : "";
|
|
42446
|
+
return `Error: Could not resolve bundled plugins from --skill in non-interactive mode${suffix}. Use --all, remove --yes to choose plugins interactively, or provide skill names that map to a unique bundled plugin.`;
|
|
42339
42447
|
};
|
|
42340
42448
|
function registerSkillsCommand(program2) {
|
|
42341
42449
|
const marketplaceHelp = getMarketplaceIds().join(", ");
|
|
42342
42450
|
const skills3 = program2.command("skills").alias("skill").description("Manage agent skills");
|
|
42343
42451
|
skills3.command("add <source>").description("Add skills from a marketplace, hosted Git repo, or local path").option("--from <marketplace>", `Marketplace source override (available: ${marketplaceHelp})`).option("-g, --global", "Install skills globally").option("-a, --agent <agents...>", "Target specific agent(s)").option("-s, --skill <names...>", "Install only specific skills by name").option("-l, --list", "List available skills from the source without installing").option("--all", "Select all bundled plugins when the source contains multiple plugins").option("--copy", "Copy skill files instead of symlinking").option("--prefix <prefix>", "Prefix installed skill names").option("--no-scan", "Skip security scanning before installation").option("--allow-risky", "Install even if scanning finds high-risk patterns").option("-y, --yes", "Skip prompts, auto-detect project-configured agents, and apply available skill updates").action(async (source, options2) => {
|
|
42344
42452
|
logger.titleBox("AgentInit Skills");
|
|
42453
|
+
const projectPath = process.cwd();
|
|
42345
42454
|
const agentManager9 = new AgentManager;
|
|
42346
42455
|
const skillsManager5 = new SkillsManager(agentManager9);
|
|
42456
|
+
let targetAgents = options2.agent;
|
|
42457
|
+
let targetGlobal = options2.global;
|
|
42458
|
+
let selectedSkillNames = options2.skill;
|
|
42459
|
+
let installPrefix = options2.prefix;
|
|
42347
42460
|
if (options2.list) {
|
|
42348
42461
|
const spinner = ora("Discovering skills...").start();
|
|
42349
42462
|
try {
|
|
42350
|
-
const result = await skillsManager5.discoverFromSource(source,
|
|
42463
|
+
const result = await skillsManager5.discoverFromSource(source, projectPath, {
|
|
42351
42464
|
from: options2.from
|
|
42352
42465
|
});
|
|
42353
42466
|
spinner.stop();
|
|
@@ -42362,7 +42475,7 @@ function registerSkillsCommand(program2) {
|
|
|
42362
42475
|
for (const pluginName of selected) {
|
|
42363
42476
|
const retrySpinner = ora(`Discovering skills from ${pluginName}...`).start();
|
|
42364
42477
|
try {
|
|
42365
|
-
const result = await skillsManager5.discoverFromSource(source,
|
|
42478
|
+
const result = await skillsManager5.discoverFromSource(source, projectPath, {
|
|
42366
42479
|
from: options2.from,
|
|
42367
42480
|
pluginName
|
|
42368
42481
|
});
|
|
@@ -42384,26 +42497,42 @@ function registerSkillsCommand(program2) {
|
|
|
42384
42497
|
let selectedPluginNames;
|
|
42385
42498
|
let preparedSkills = [];
|
|
42386
42499
|
try {
|
|
42387
|
-
const prepared = await skillsManager5.prepareSource(source,
|
|
42500
|
+
const prepared = await skillsManager5.prepareSource(source, projectPath, {
|
|
42388
42501
|
from: options2.from
|
|
42389
42502
|
});
|
|
42390
42503
|
preparedSkills = prepared.skills;
|
|
42391
42504
|
verifySpinner.stop();
|
|
42392
42505
|
} catch (error) {
|
|
42393
|
-
if (error instanceof MultipleBundlePluginsError
|
|
42506
|
+
if (error instanceof MultipleBundlePluginsError) {
|
|
42394
42507
|
verifySpinner.stop();
|
|
42395
|
-
const
|
|
42396
|
-
|
|
42508
|
+
const bundleResolution = selectedSkillNames && selectedSkillNames.length > 0 ? await resolveBundlePluginsForSelectedSkills(skillsManager5, source, projectPath, error.entries, selectedSkillNames, installPrefix, { from: options2.from }) : null;
|
|
42509
|
+
let pluginSelection = bundleResolution?.pluginNames ?? null;
|
|
42510
|
+
if (!pluginSelection && (options2.all || !options2.yes)) {
|
|
42511
|
+
pluginSelection = await selectBundlePlugins(error.entries, "install", { selectAll: options2.all });
|
|
42512
|
+
if (!pluginSelection) {
|
|
42513
|
+
return;
|
|
42514
|
+
}
|
|
42515
|
+
}
|
|
42516
|
+
if (!pluginSelection) {
|
|
42517
|
+
verifySpinner.fail("Failed to verify skill source");
|
|
42518
|
+
if (options2.yes && bundleResolution && !bundleResolution.hadDiscoveryError) {
|
|
42519
|
+
logger.error(formatBundlePluginResolutionError(bundleResolution));
|
|
42520
|
+
} else {
|
|
42521
|
+
logger.error(`Error: ${error.message}`);
|
|
42522
|
+
}
|
|
42397
42523
|
return;
|
|
42398
42524
|
}
|
|
42399
|
-
selectedPluginNames =
|
|
42525
|
+
selectedPluginNames = pluginSelection;
|
|
42400
42526
|
const retrySpinner = ora("Verifying skill source...").start();
|
|
42401
42527
|
try {
|
|
42402
|
-
const prepared = await skillsManager5.prepareSource(source,
|
|
42528
|
+
const prepared = await skillsManager5.prepareSource(source, projectPath, {
|
|
42403
42529
|
from: options2.from,
|
|
42404
42530
|
...selectedPluginNames[0] ? { pluginName: selectedPluginNames[0] } : {}
|
|
42405
42531
|
});
|
|
42406
|
-
preparedSkills =
|
|
42532
|
+
preparedSkills = selectedPluginNames.length > 1 ? await collectBundlePluginSkills(skillsManager5, source, projectPath, selectedPluginNames, { from: options2.from }, selectedPluginNames[0] ? {
|
|
42533
|
+
name: selectedPluginNames[0],
|
|
42534
|
+
skills: prepared.skills
|
|
42535
|
+
} : undefined) : prepared.skills;
|
|
42407
42536
|
retrySpinner.stop();
|
|
42408
42537
|
} catch (retryError) {
|
|
42409
42538
|
retrySpinner.fail("Failed to verify skill source");
|
|
@@ -42416,17 +42545,13 @@ function registerSkillsCommand(program2) {
|
|
|
42416
42545
|
return;
|
|
42417
42546
|
}
|
|
42418
42547
|
}
|
|
42419
|
-
let targetAgents = options2.agent;
|
|
42420
|
-
let targetGlobal = options2.global;
|
|
42421
|
-
let selectedSkillNames = options2.skill;
|
|
42422
|
-
let installPrefix = options2.prefix;
|
|
42423
42548
|
if (!options2.yes && (!selectedSkillNames || selectedSkillNames.length === 0) && preparedSkills.length > 1) {
|
|
42424
42549
|
if (selectedPluginNames && selectedPluginNames.length > 1) {
|
|
42425
42550
|
logger.info("Multiple bundled plugins selected; installing all skills from each selected plugin. Use --skill to filter by skill name.");
|
|
42426
42551
|
} else {
|
|
42427
42552
|
const skillSelection = await resolveInteractiveSkillSelection(preparedSkills, installPrefix);
|
|
42428
42553
|
if (skillSelection.aborted) {
|
|
42429
|
-
await skillsManager5.discardPreparedSource(source,
|
|
42554
|
+
await skillsManager5.discardPreparedSource(source, projectPath, {
|
|
42430
42555
|
from: options2.from
|
|
42431
42556
|
});
|
|
42432
42557
|
return;
|
|
@@ -42438,14 +42563,14 @@ function registerSkillsCommand(program2) {
|
|
|
42438
42563
|
if (!targetAgents && !options2.yes) {
|
|
42439
42564
|
const selectedSkillNameSet = selectedSkillNames && selectedSkillNames.length > 0 ? new Set(selectedSkillNames.map((name) => name.toLowerCase())) : undefined;
|
|
42440
42565
|
const filteredPreviewSkills = selectedSkillNameSet ? preparedSkills.filter((skill) => matchesSelectedSkillName(skill.name, selectedSkillNameSet, installPrefix)) : preparedSkills;
|
|
42441
|
-
const selection = await resolveInteractiveSkillTargets(skillsManager5, agentManager9, source,
|
|
42566
|
+
const selection = await resolveInteractiveSkillTargets(skillsManager5, agentManager9, source, projectPath, {
|
|
42442
42567
|
from: options2.from,
|
|
42443
42568
|
global: options2.global,
|
|
42444
42569
|
copy: options2.copy,
|
|
42445
42570
|
skills: filteredPreviewSkills
|
|
42446
42571
|
});
|
|
42447
42572
|
if (selection?.aborted) {
|
|
42448
|
-
await skillsManager5.discardPreparedSource(source,
|
|
42573
|
+
await skillsManager5.discardPreparedSource(source, projectPath, {
|
|
42449
42574
|
from: options2.from
|
|
42450
42575
|
});
|
|
42451
42576
|
return;
|
|
@@ -42483,7 +42608,7 @@ function registerSkillsCommand(program2) {
|
|
|
42483
42608
|
const spinner = ora(pluginName ? `Installing skills from ${pluginName}...` : "Installing skills...").start();
|
|
42484
42609
|
try {
|
|
42485
42610
|
if (pluginName && pluginName !== selectedPluginNames?.[0]) {
|
|
42486
|
-
await skillsManager5.prepareSource(source,
|
|
42611
|
+
await skillsManager5.prepareSource(source, projectPath, {
|
|
42487
42612
|
from: options2.from,
|
|
42488
42613
|
pluginName
|
|
42489
42614
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8NpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6lB5D"}
|