@agents-dev/cli 0.7.7
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/AGENTS.md +400 -0
- package/CHANGELOG.md +297 -0
- package/CONTRIBUTING.md +164 -0
- package/LICENSE +21 -0
- package/README.md +117 -0
- package/bin/agents +24 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +282 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/connect.d.ts +7 -0
- package/dist/commands/connect.js +48 -0
- package/dist/commands/connect.js.map +1 -0
- package/dist/commands/disconnect.d.ts +7 -0
- package/dist/commands/disconnect.js +47 -0
- package/dist/commands/disconnect.js.map +1 -0
- package/dist/commands/doctor.d.ts +6 -0
- package/dist/commands/doctor.js +430 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts +5 -0
- package/dist/commands/init.js +24 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/mcp-add.d.ts +20 -0
- package/dist/commands/mcp-add.js +250 -0
- package/dist/commands/mcp-add.js.map +1 -0
- package/dist/commands/mcp-import.d.ts +13 -0
- package/dist/commands/mcp-import.js +207 -0
- package/dist/commands/mcp-import.js.map +1 -0
- package/dist/commands/mcp-list.d.ts +5 -0
- package/dist/commands/mcp-list.js +34 -0
- package/dist/commands/mcp-list.js.map +1 -0
- package/dist/commands/mcp-remove.d.ts +7 -0
- package/dist/commands/mcp-remove.js +34 -0
- package/dist/commands/mcp-remove.js.map +1 -0
- package/dist/commands/mcp-test.d.ts +8 -0
- package/dist/commands/mcp-test.js +402 -0
- package/dist/commands/mcp-test.js.map +1 -0
- package/dist/commands/reset.d.ts +6 -0
- package/dist/commands/reset.js +76 -0
- package/dist/commands/reset.js.map +1 -0
- package/dist/commands/start.d.ts +6 -0
- package/dist/commands/start.js +292 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/status.d.ts +7 -0
- package/dist/commands/status.js +278 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sync.d.ts +6 -0
- package/dist/commands/sync.js +22 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/watch.d.ts +7 -0
- package/dist/commands/watch.js +117 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/core/claudeCli.d.ts +7 -0
- package/dist/core/claudeCli.js +35 -0
- package/dist/core/claudeCli.js.map +1 -0
- package/dist/core/config.d.ts +17 -0
- package/dist/core/config.js +121 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/cursorCli.d.ts +9 -0
- package/dist/core/cursorCli.js +60 -0
- package/dist/core/cursorCli.js.map +1 -0
- package/dist/core/fs.d.ts +11 -0
- package/dist/core/fs.js +76 -0
- package/dist/core/fs.js.map +1 -0
- package/dist/core/gitignore.d.ts +3 -0
- package/dist/core/gitignore.js +54 -0
- package/dist/core/gitignore.js.map +1 -0
- package/dist/core/mcp.d.ts +8 -0
- package/dist/core/mcp.js +134 -0
- package/dist/core/mcp.js.map +1 -0
- package/dist/core/mcpCrud.d.ts +34 -0
- package/dist/core/mcpCrud.js +105 -0
- package/dist/core/mcpCrud.js.map +1 -0
- package/dist/core/mcpImport.d.ts +14 -0
- package/dist/core/mcpImport.js +507 -0
- package/dist/core/mcpImport.js.map +1 -0
- package/dist/core/mcpSecrets.d.ts +27 -0
- package/dist/core/mcpSecrets.js +144 -0
- package/dist/core/mcpSecrets.js.map +1 -0
- package/dist/core/mcpValidation.d.ts +19 -0
- package/dist/core/mcpValidation.js +78 -0
- package/dist/core/mcpValidation.js.map +1 -0
- package/dist/core/paths.d.ts +37 -0
- package/dist/core/paths.js +43 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/project.d.ts +16 -0
- package/dist/core/project.js +34 -0
- package/dist/core/project.js.map +1 -0
- package/dist/core/renderers.d.ts +14 -0
- package/dist/core/renderers.js +113 -0
- package/dist/core/renderers.js.map +1 -0
- package/dist/core/shell.d.ts +8 -0
- package/dist/core/shell.js +21 -0
- package/dist/core/shell.js.map +1 -0
- package/dist/core/shellWords.d.ts +1 -0
- package/dist/core/shellWords.js +84 -0
- package/dist/core/shellWords.js.map +1 -0
- package/dist/core/skills.d.ts +8 -0
- package/dist/core/skills.js +150 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/skillsValidation.d.ts +1 -0
- package/dist/core/skillsValidation.js +68 -0
- package/dist/core/skillsValidation.js.map +1 -0
- package/dist/core/sync.d.ts +2 -0
- package/dist/core/sync.js +427 -0
- package/dist/core/sync.js.map +1 -0
- package/dist/core/syncLock.d.ts +1 -0
- package/dist/core/syncLock.js +84 -0
- package/dist/core/syncLock.js.map +1 -0
- package/dist/core/templates.d.ts +1 -0
- package/dist/core/templates.js +38 -0
- package/dist/core/templates.js.map +1 -0
- package/dist/core/trust.d.ts +7 -0
- package/dist/core/trust.js +51 -0
- package/dist/core/trust.js.map +1 -0
- package/dist/core/vscodeSettings.d.ts +17 -0
- package/dist/core/vscodeSettings.js +212 -0
- package/dist/core/vscodeSettings.js.map +1 -0
- package/dist/core/warnings.d.ts +2 -0
- package/dist/core/warnings.js +26 -0
- package/dist/core/warnings.js.map +1 -0
- package/dist/integrations/antigravity.d.ts +9 -0
- package/dist/integrations/antigravity.js +13 -0
- package/dist/integrations/antigravity.js.map +1 -0
- package/dist/integrations/claude.d.ts +1 -0
- package/dist/integrations/claude.js +4 -0
- package/dist/integrations/claude.js.map +1 -0
- package/dist/integrations/codex.d.ts +5 -0
- package/dist/integrations/codex.js +5 -0
- package/dist/integrations/codex.js.map +1 -0
- package/dist/integrations/copilotVscode.d.ts +7 -0
- package/dist/integrations/copilotVscode.js +9 -0
- package/dist/integrations/copilotVscode.js.map +1 -0
- package/dist/integrations/cursor.d.ts +7 -0
- package/dist/integrations/cursor.js +9 -0
- package/dist/integrations/cursor.js.map +1 -0
- package/dist/integrations/gemini.d.ts +12 -0
- package/dist/integrations/gemini.js +15 -0
- package/dist/integrations/gemini.js.map +1 -0
- package/dist/integrations/registry.d.ts +9 -0
- package/dist/integrations/registry.js +21 -0
- package/dist/integrations/registry.js.map +1 -0
- package/dist/types.d.ts +85 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/docs/EXAMPLES.md +211 -0
- package/docs/README.md +26 -0
- package/docs/agents-system.md +178 -0
- package/package.json +77 -0
- package/templates/agents/AGENTS.md +23 -0
- package/templates/agents/README.md +25 -0
- package/templates/agents/skills/README.md +27 -0
- package/templates/agents/skills/skill-guide/SKILL.md +29 -0
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
Thanks for your interest! Here's how to help.
|
|
4
|
+
|
|
5
|
+
## Ways to Contribute
|
|
6
|
+
|
|
7
|
+
| Type | Action |
|
|
8
|
+
|:-----|:-------|
|
|
9
|
+
| 🐛 **Bug** | [Open an issue](https://github.com/amtiYo/agents/issues) with steps to reproduce |
|
|
10
|
+
| 💡 **Feature** | [Start a discussion](https://github.com/amtiYo/agents/discussions) to propose it |
|
|
11
|
+
| 📖 **Docs** | Fix typos or add examples via PR |
|
|
12
|
+
| 💻 **Code** | Follow the workflow below |
|
|
13
|
+
|
|
14
|
+
## Development Setup
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Fork and clone
|
|
18
|
+
git clone https://github.com/YOUR_USERNAME/agents.git
|
|
19
|
+
cd agents
|
|
20
|
+
|
|
21
|
+
# Install
|
|
22
|
+
npm install
|
|
23
|
+
|
|
24
|
+
# Build
|
|
25
|
+
npm run build
|
|
26
|
+
|
|
27
|
+
# Test
|
|
28
|
+
npm test
|
|
29
|
+
|
|
30
|
+
# Lint
|
|
31
|
+
npm run lint
|
|
32
|
+
|
|
33
|
+
# Link locally
|
|
34
|
+
npm link
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Pull Request Workflow
|
|
38
|
+
|
|
39
|
+
### 1. Create a branch
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
git checkout -b feature/your-feature-name
|
|
43
|
+
# or
|
|
44
|
+
git checkout -b fix/your-bug-fix
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 2. Make changes
|
|
48
|
+
|
|
49
|
+
- Write code
|
|
50
|
+
- Add tests (required for new features)
|
|
51
|
+
- Update docs if needed
|
|
52
|
+
|
|
53
|
+
### 3. Test
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
npm run build
|
|
57
|
+
npm test
|
|
58
|
+
npm run lint
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
All must pass.
|
|
62
|
+
|
|
63
|
+
### 4. Commit
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
git add .
|
|
67
|
+
git commit -m "feat: add new feature"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Commit types:**
|
|
71
|
+
- `feat:` — New feature
|
|
72
|
+
- `fix:` — Bug fix
|
|
73
|
+
- `docs:` — Documentation
|
|
74
|
+
- `test:` — Tests
|
|
75
|
+
- `refactor:` — Code refactoring
|
|
76
|
+
- `chore:` — Maintenance
|
|
77
|
+
|
|
78
|
+
### 5. Push and create PR
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
git push origin feature/your-feature-name
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Then open a PR on GitHub.
|
|
85
|
+
|
|
86
|
+
## PR Guidelines
|
|
87
|
+
|
|
88
|
+
### Title
|
|
89
|
+
Clear and concise (e.g., "Add Cursor integration")
|
|
90
|
+
|
|
91
|
+
### Description
|
|
92
|
+
Explain:
|
|
93
|
+
- What problem does it solve?
|
|
94
|
+
- How does it work?
|
|
95
|
+
- Any breaking changes?
|
|
96
|
+
|
|
97
|
+
### Tests
|
|
98
|
+
All PRs must include tests:
|
|
99
|
+
- Unit tests for new functions
|
|
100
|
+
- Integration tests for commands
|
|
101
|
+
- Update existing tests if behavior changes
|
|
102
|
+
|
|
103
|
+
### Documentation
|
|
104
|
+
Update docs if needed:
|
|
105
|
+
- README for user-facing changes
|
|
106
|
+
- Code comments for complex logic
|
|
107
|
+
- CHANGELOG.md (maintainers will handle)
|
|
108
|
+
|
|
109
|
+
## Code Style
|
|
110
|
+
|
|
111
|
+
- TypeScript strict mode
|
|
112
|
+
- Follow existing patterns
|
|
113
|
+
- ESLint rules
|
|
114
|
+
- Clear variable names
|
|
115
|
+
- Comments for non-obvious code
|
|
116
|
+
|
|
117
|
+
## Testing
|
|
118
|
+
|
|
119
|
+
### Run tests
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# All tests
|
|
123
|
+
npm test
|
|
124
|
+
|
|
125
|
+
# Specific file
|
|
126
|
+
npm test tests/mcp-commands.integration.test.ts
|
|
127
|
+
|
|
128
|
+
# Watch mode
|
|
129
|
+
npm test -- --watch
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Write tests
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
import { describe, it, expect } from 'vitest'
|
|
136
|
+
|
|
137
|
+
describe('yourFunction', () => {
|
|
138
|
+
it('should do something', () => {
|
|
139
|
+
const result = yourFunction('input')
|
|
140
|
+
expect(result).toBe('expected')
|
|
141
|
+
})
|
|
142
|
+
})
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Priority Areas
|
|
146
|
+
|
|
147
|
+
| Priority | Area |
|
|
148
|
+
|:---------|:-----|
|
|
149
|
+
| 🔴 High | Bug fixes, test coverage, performance, documentation |
|
|
150
|
+
| 🟡 Medium | New tool integrations, MCP enhancements, UX improvements |
|
|
151
|
+
| 🟢 Nice-to-have | VSCode extension, team features, enterprise features |
|
|
152
|
+
|
|
153
|
+
## Security
|
|
154
|
+
|
|
155
|
+
Found a vulnerability? **Email us instead of opening a public issue.**
|
|
156
|
+
|
|
157
|
+
## Getting Help
|
|
158
|
+
|
|
159
|
+
- 💬 [GitHub Discussions](https://github.com/amtiYo/agents/discussions)
|
|
160
|
+
- 🐛 [GitHub Issues](https://github.com/amtiYo/agents/issues)
|
|
161
|
+
|
|
162
|
+
## License
|
|
163
|
+
|
|
164
|
+
By contributing, you agree your contributions are licensed under the MIT License.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# agents
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@agents-dev/cli)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
[](https://github.com/amtiYo/agents)
|
|
6
|
+
|
|
7
|
+
> **One config to rule them all.**
|
|
8
|
+
> The practical standard layer for multi-LLM development.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## ⚡️ The Problem
|
|
13
|
+
|
|
14
|
+
You're using **Codex**, **Claude**, **Cursor**, and **Gemini**. You have 6 different config files. You add an MCP server to one, and the others break. Your team's onboarding doc is a wiki page that's always out of date.
|
|
15
|
+
|
|
16
|
+
## ✨ The Solution
|
|
17
|
+
|
|
18
|
+
`agents` gives you **one source of truth**.
|
|
19
|
+
|
|
20
|
+
Define your configuration once in `.agents/`, and let the CLI handle the rest. We sync your MCP servers, skills, and instructions to **every tool automatically**.
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
.agents/
|
|
24
|
+
├── agents.json → All your MCP servers
|
|
25
|
+
├── local.json → Your secrets (gitignored)
|
|
26
|
+
└── skills/ → Reusable team workflows
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 🚀 Quick Start
|
|
30
|
+
|
|
31
|
+
### 1. Install
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npm install -g @agents-dev/cli
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 2. Initialize
|
|
38
|
+
|
|
39
|
+
Go to your project folder and run:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
agents start
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
The interactive wizard will guide you through:
|
|
46
|
+
- ✅ Creating the `.agents` folder
|
|
47
|
+
- ✅ Detecting your installed AI tools
|
|
48
|
+
- ✅ Setting up your first MCP server
|
|
49
|
+
|
|
50
|
+
### 3. Sync
|
|
51
|
+
|
|
52
|
+
Whenever you change your config, just run:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
agents sync
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Boom. All your tools are updated.
|
|
59
|
+
|
|
60
|
+
## 🛠️ Supported Tools
|
|
61
|
+
|
|
62
|
+
| Tool | MCP Integration | Skills | Instructions |
|
|
63
|
+
|:-----|:---------------:|:------:|:------------:|
|
|
64
|
+
| **Codex** | ✅ | ✅ | ✅ |
|
|
65
|
+
| **Claude Code** | ✅ | ✅ | ✅ |
|
|
66
|
+
| **Gemini CLI** | ✅ | ✅ | ✅ |
|
|
67
|
+
| **Cursor** | ✅ | ✅ | ✅ |
|
|
68
|
+
| **Copilot** | ✅ | ⏳ | ✅ |
|
|
69
|
+
| **Antigravity** | ✅ | ✅ | ✅ |
|
|
70
|
+
|
|
71
|
+
## 🎮 Command Cheat Sheet
|
|
72
|
+
|
|
73
|
+
| Command | Description |
|
|
74
|
+
|:--------|:------------|
|
|
75
|
+
| `agents start` | **Start here!** Interactive setup wizard. |
|
|
76
|
+
| `agents sync` | Syncs your `.agents` config to all tools. |
|
|
77
|
+
| `agents mcp add <url>` | Adds a new MCP server (e.g., from a URL). |
|
|
78
|
+
| `agents mcp list` | Lists all configured MCP servers. |
|
|
79
|
+
| `agents doctor` | Checks for configuration issues. |
|
|
80
|
+
| `agents status` | Shows connection status of all tools. |
|
|
81
|
+
| `agents watch` | Auto-syncs changes in real-time. |
|
|
82
|
+
|
|
83
|
+
## 📚 How It Works
|
|
84
|
+
|
|
85
|
+
1. **You edit** `.agents/agents.json` (or use the CLI).
|
|
86
|
+
2. **`agents` reads** your standard configuration.
|
|
87
|
+
3. **`agents` generates** the specific config files for each tool (e.g., `.cursor/mcp.json`, `.claude/mcp.json`).
|
|
88
|
+
4. **You focus** on coding, not configuring.
|
|
89
|
+
|
|
90
|
+
## ❓ FAQ
|
|
91
|
+
|
|
92
|
+
<details>
|
|
93
|
+
<summary><b>Does this replace AGENTS.md?</b></summary>
|
|
94
|
+
**No.** It *extends* it. `AGENTS.md` is for human-readable instructions. `agents` is for machine-readable configuration (MCP servers, skills). We support both.
|
|
95
|
+
</details>
|
|
96
|
+
|
|
97
|
+
<details>
|
|
98
|
+
<summary><b>Can I use this with just one tool?</b></summary>
|
|
99
|
+
**Yes!** It's still better than managing raw config files because it gives you a clean git strategy (commit `.agents`, ignore generated files) and easy MCP management commands.
|
|
100
|
+
</details>
|
|
101
|
+
|
|
102
|
+
<details>
|
|
103
|
+
<summary><b>Where are my API keys stored?</b></summary>
|
|
104
|
+
In `.agents/local.json`. This file is **gitignored** by default, so your secrets stay safe on your machine.
|
|
105
|
+
</details>
|
|
106
|
+
|
|
107
|
+
## 🤝 Community & Support
|
|
108
|
+
|
|
109
|
+
- 🐛 **Found a bug?** [Open an issue](https://github.com/amtiYo/agents/issues)
|
|
110
|
+
- 💡 **Have an idea?** [Start a discussion](https://github.com/amtiYo/agents/discussions)
|
|
111
|
+
- ⭐ **Love it?** Star us on GitHub!
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
<p align="center">
|
|
116
|
+
<sub>Built with ❤️ for the AI coding community</sub>
|
|
117
|
+
</p>
|
package/bin/agents
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { spawnSync } from 'node:child_process'
|
|
3
|
+
import { existsSync } from 'node:fs'
|
|
4
|
+
import path from 'node:path'
|
|
5
|
+
import { fileURLToPath } from 'node:url'
|
|
6
|
+
|
|
7
|
+
const __filename = fileURLToPath(import.meta.url)
|
|
8
|
+
const __dirname = path.dirname(__filename)
|
|
9
|
+
const root = path.resolve(__dirname, '..')
|
|
10
|
+
const distCli = path.join(root, 'dist', 'cli.js')
|
|
11
|
+
|
|
12
|
+
if (!existsSync(distCli)) {
|
|
13
|
+
const build = spawnSync(process.execPath, ['node_modules/typescript/bin/tsc', '-p', 'tsconfig.json'], {
|
|
14
|
+
cwd: root,
|
|
15
|
+
stdio: 'inherit'
|
|
16
|
+
})
|
|
17
|
+
if (build.status !== 0) process.exit(build.status ?? 1)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const run = spawnSync(process.execPath, [distCli, ...process.argv.slice(2)], {
|
|
21
|
+
cwd: process.cwd(),
|
|
22
|
+
stdio: 'inherit'
|
|
23
|
+
})
|
|
24
|
+
process.exit(run.status ?? 1)
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
import { runConnect } from './commands/connect.js';
|
|
4
|
+
import { runDisconnect } from './commands/disconnect.js';
|
|
5
|
+
import { runDoctor } from './commands/doctor.js';
|
|
6
|
+
import { runInit } from './commands/init.js';
|
|
7
|
+
import { runMcpAdd } from './commands/mcp-add.js';
|
|
8
|
+
import { runMcpImport } from './commands/mcp-import.js';
|
|
9
|
+
import { runMcpList } from './commands/mcp-list.js';
|
|
10
|
+
import { runMcpRemove } from './commands/mcp-remove.js';
|
|
11
|
+
import { runMcpTest } from './commands/mcp-test.js';
|
|
12
|
+
import { runReset } from './commands/reset.js';
|
|
13
|
+
import { runStart } from './commands/start.js';
|
|
14
|
+
import { runStatus } from './commands/status.js';
|
|
15
|
+
import { runSync } from './commands/sync.js';
|
|
16
|
+
import { runWatch } from './commands/watch.js';
|
|
17
|
+
function resolvePath(input) {
|
|
18
|
+
return path.resolve(input ?? process.cwd());
|
|
19
|
+
}
|
|
20
|
+
async function main() {
|
|
21
|
+
const program = new Command();
|
|
22
|
+
program
|
|
23
|
+
.name('agents')
|
|
24
|
+
.description('Onboarding-first CLI for AGENTS.md + MCP + skills across LLM coding tools')
|
|
25
|
+
.version('0.7.7');
|
|
26
|
+
program
|
|
27
|
+
.command('start')
|
|
28
|
+
.description('Guided setup wizard: init + integrations + MCP + skills + sync')
|
|
29
|
+
.option('--path <dir>', 'Target project directory', process.cwd())
|
|
30
|
+
.option('--non-interactive', 'Disable interactive wizard and use defaults', false)
|
|
31
|
+
.option('--yes', 'Auto-confirm defaults (non-interactive)', false)
|
|
32
|
+
.action(async (opts) => {
|
|
33
|
+
await runStart({
|
|
34
|
+
projectRoot: resolvePath(opts.path),
|
|
35
|
+
nonInteractive: Boolean(opts.nonInteractive),
|
|
36
|
+
yes: Boolean(opts.yes)
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
program
|
|
40
|
+
.command('init')
|
|
41
|
+
.description('Initialize .agents scaffold (without full guided setup)')
|
|
42
|
+
.option('--path <dir>', 'Target project directory', process.cwd())
|
|
43
|
+
.option('--force', 'Overwrite scaffold files when possible', false)
|
|
44
|
+
.action(async (opts) => {
|
|
45
|
+
await runInit({
|
|
46
|
+
projectRoot: resolvePath(opts.path),
|
|
47
|
+
force: Boolean(opts.force)
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
program
|
|
51
|
+
.command('connect')
|
|
52
|
+
.description('Enable LLM integrations and sync')
|
|
53
|
+
.option('--path <dir>', 'Target project directory', process.cwd())
|
|
54
|
+
.option('--llm <list>', 'Comma-separated list: codex,claude,gemini,copilot_vscode,cursor,antigravity')
|
|
55
|
+
.option('--interactive', 'Open interactive selector')
|
|
56
|
+
.option('--verbose', 'Print detailed sync output', false)
|
|
57
|
+
.action(async (opts) => {
|
|
58
|
+
await runConnect({
|
|
59
|
+
projectRoot: resolvePath(opts.path),
|
|
60
|
+
llm: opts.llm,
|
|
61
|
+
interactive: opts.interactive ?? !opts.llm,
|
|
62
|
+
verbose: Boolean(opts.verbose)
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
program
|
|
66
|
+
.command('disconnect')
|
|
67
|
+
.description('Disable LLM integrations and sync')
|
|
68
|
+
.option('--path <dir>', 'Target project directory', process.cwd())
|
|
69
|
+
.option('--llm <list>', 'Comma-separated list: codex,claude,gemini,copilot_vscode,cursor,antigravity')
|
|
70
|
+
.option('--interactive', 'Open interactive selector')
|
|
71
|
+
.option('--verbose', 'Print detailed sync output', false)
|
|
72
|
+
.action(async (opts) => {
|
|
73
|
+
await runDisconnect({
|
|
74
|
+
projectRoot: resolvePath(opts.path),
|
|
75
|
+
llm: opts.llm,
|
|
76
|
+
interactive: opts.interactive ?? !opts.llm,
|
|
77
|
+
verbose: Boolean(opts.verbose)
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
program
|
|
81
|
+
.command('sync')
|
|
82
|
+
.description('Generate and materialize configs from .agents source-of-truth')
|
|
83
|
+
.option('--path <dir>', 'Target project directory', process.cwd())
|
|
84
|
+
.option('--check', 'Check for pending changes without writing files', false)
|
|
85
|
+
.option('--verbose', 'Print detailed sync output', false)
|
|
86
|
+
.action(async (opts) => {
|
|
87
|
+
await runSync({
|
|
88
|
+
projectRoot: resolvePath(opts.path),
|
|
89
|
+
check: Boolean(opts.check),
|
|
90
|
+
verbose: Boolean(opts.verbose)
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
program
|
|
94
|
+
.command('watch')
|
|
95
|
+
.description('Watch .agents source files and auto-run sync on changes')
|
|
96
|
+
.option('--path <dir>', 'Target project directory', process.cwd())
|
|
97
|
+
.option('--interval <ms>', 'Polling interval in milliseconds', '1200')
|
|
98
|
+
.option('--once', 'Run one sync pass and exit', false)
|
|
99
|
+
.option('--quiet', 'Reduce periodic output', false)
|
|
100
|
+
.action(async (opts) => {
|
|
101
|
+
await runWatch({
|
|
102
|
+
projectRoot: resolvePath(opts.path),
|
|
103
|
+
intervalMs: Number.parseInt(opts.interval, 10),
|
|
104
|
+
once: Boolean(opts.once),
|
|
105
|
+
quiet: Boolean(opts.quiet)
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
program
|
|
109
|
+
.command('status')
|
|
110
|
+
.description('Show enabled integrations, MCP servers, files and probes')
|
|
111
|
+
.option('--path <dir>', 'Target project directory', process.cwd())
|
|
112
|
+
.option('--json', 'Output machine-readable JSON', false)
|
|
113
|
+
.option('--verbose', 'Show full files/probes breakdown', false)
|
|
114
|
+
.option('--fast', 'Skip external CLI probes for quicker output', false)
|
|
115
|
+
.action(async (opts) => {
|
|
116
|
+
await runStatus({
|
|
117
|
+
projectRoot: resolvePath(opts.path),
|
|
118
|
+
json: Boolean(opts.json),
|
|
119
|
+
verbose: Boolean(opts.verbose),
|
|
120
|
+
fast: Boolean(opts.fast)
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
program
|
|
124
|
+
.command('doctor')
|
|
125
|
+
.description('Validate setup and detect configuration problems')
|
|
126
|
+
.option('--path <dir>', 'Target project directory', process.cwd())
|
|
127
|
+
.option('--fix', 'Apply safe automatic fixes', false)
|
|
128
|
+
.option('--fix-dry-run', 'Preview what --fix would change without applying it', false)
|
|
129
|
+
.action(async (opts) => {
|
|
130
|
+
await runDoctor({
|
|
131
|
+
projectRoot: resolvePath(opts.path),
|
|
132
|
+
fix: Boolean(opts.fix),
|
|
133
|
+
fixDryRun: Boolean(opts.fixDryRun)
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
program
|
|
137
|
+
.command('reset')
|
|
138
|
+
.description('Clean generated/materialized files safely')
|
|
139
|
+
.option('--path <dir>', 'Target project directory', process.cwd())
|
|
140
|
+
.option('--local-only', 'Clean only materialized integration files', false)
|
|
141
|
+
.option('--hard', 'Remove all agents-managed setup (including .agents and root AGENTS.md)', false)
|
|
142
|
+
.action(async (opts) => {
|
|
143
|
+
await runReset({
|
|
144
|
+
projectRoot: resolvePath(opts.path),
|
|
145
|
+
localOnly: Boolean(opts.localOnly),
|
|
146
|
+
hard: Boolean(opts.hard)
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
const mcp = program.command('mcp').description('Manage project MCP servers in .agents/agents.json');
|
|
150
|
+
mcp
|
|
151
|
+
.command('list')
|
|
152
|
+
.description('List project MCP servers')
|
|
153
|
+
.option('--path <dir>', 'Target project directory', process.cwd())
|
|
154
|
+
.option('--json', 'Output machine-readable JSON', false)
|
|
155
|
+
.action(async (opts) => {
|
|
156
|
+
await runMcpList({
|
|
157
|
+
projectRoot: resolvePath(opts.path),
|
|
158
|
+
json: Boolean(opts.json)
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
mcp
|
|
162
|
+
.command('add [name]')
|
|
163
|
+
.description('Add a project MCP server (or auto-import when [name] is a URL)')
|
|
164
|
+
.option('--path <dir>', 'Target project directory', process.cwd())
|
|
165
|
+
.option('--transport <type>', 'stdio|http|sse')
|
|
166
|
+
.option('--command <cmd>', 'Command for stdio transport')
|
|
167
|
+
.option('--arg <value>', 'Argument for stdio transport (repeatable)', collectOption, [])
|
|
168
|
+
.option('--url <url>', 'URL for http/sse transport')
|
|
169
|
+
.option('--env <KEY=VALUE>', 'Environment variable entry (repeatable)', collectOption, [])
|
|
170
|
+
.option('--header <KEY=VALUE>', 'HTTP header entry (repeatable)', collectOption, [])
|
|
171
|
+
.option('--secret-env <KEY=VALUE>', 'Secret env entry (stored in .agents/local.json)', collectOption, [])
|
|
172
|
+
.option('--secret-header <KEY=VALUE>', 'Secret header entry (stored in .agents/local.json)', collectOption, [])
|
|
173
|
+
.option('--secret-arg <index=value>', 'Secret arg by index (stored in .agents/local.json)', collectOption, [])
|
|
174
|
+
.option('--target <integration>', 'Target integration (repeatable)', collectOption, [])
|
|
175
|
+
.option('--description <text>', 'Server description')
|
|
176
|
+
.option('--disabled', 'Create server as disabled', false)
|
|
177
|
+
.option('--replace', 'Replace existing server with same name', false)
|
|
178
|
+
.option('--no-sync', 'Skip automatic sync after update', false)
|
|
179
|
+
.option('--non-interactive', 'Disable interactive prompts', false)
|
|
180
|
+
.action(async (name, opts) => {
|
|
181
|
+
await runMcpAdd({
|
|
182
|
+
projectRoot: resolvePath(opts.path),
|
|
183
|
+
name,
|
|
184
|
+
transport: opts.transport,
|
|
185
|
+
command: opts.command,
|
|
186
|
+
args: opts.arg,
|
|
187
|
+
url: opts.url,
|
|
188
|
+
env: opts.env,
|
|
189
|
+
headers: opts.header,
|
|
190
|
+
secretEnv: opts.secretEnv,
|
|
191
|
+
secretHeaders: opts.secretHeader,
|
|
192
|
+
secretArgs: opts.secretArg,
|
|
193
|
+
targets: opts.target,
|
|
194
|
+
description: opts.description,
|
|
195
|
+
disabled: Boolean(opts.disabled),
|
|
196
|
+
replace: Boolean(opts.replace),
|
|
197
|
+
noSync: Boolean(opts.noSync),
|
|
198
|
+
nonInteractive: Boolean(opts.nonInteractive)
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
mcp
|
|
202
|
+
.command('import')
|
|
203
|
+
.description('Import MCP server definitions from JSON/JSONC or URL')
|
|
204
|
+
.option('--path <dir>', 'Target project directory', process.cwd())
|
|
205
|
+
.option('--file <path>', 'Load JSON/JSONC payload from file')
|
|
206
|
+
.option('--json <text>', 'Inline JSON/JSONC payload')
|
|
207
|
+
.option('--url <url>', 'Load MCP payload from URL (extract JSON snippet)')
|
|
208
|
+
.option('--name <name>', 'Rename imported server (single-server import only)')
|
|
209
|
+
.option('--target <integration>', 'Target integration override (repeatable)', collectOption, [])
|
|
210
|
+
.option('--replace', 'Replace existing server(s) with the same name', false)
|
|
211
|
+
.option('--no-sync', 'Skip automatic sync after update', false)
|
|
212
|
+
.option('--non-interactive', 'Reserved for consistency with add flow', false)
|
|
213
|
+
.action(async (opts) => {
|
|
214
|
+
await runMcpImport({
|
|
215
|
+
projectRoot: resolvePath(opts.path),
|
|
216
|
+
file: opts.file,
|
|
217
|
+
json: opts.json,
|
|
218
|
+
url: opts.url,
|
|
219
|
+
name: opts.name,
|
|
220
|
+
targets: opts.target,
|
|
221
|
+
replace: Boolean(opts.replace),
|
|
222
|
+
noSync: Boolean(opts.noSync),
|
|
223
|
+
nonInteractive: Boolean(opts.nonInteractive)
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
mcp
|
|
227
|
+
.command('remove <name>')
|
|
228
|
+
.description('Remove a project MCP server')
|
|
229
|
+
.option('--path <dir>', 'Target project directory', process.cwd())
|
|
230
|
+
.option('--ignore-missing', 'Do not fail if server does not exist', false)
|
|
231
|
+
.option('--no-sync', 'Skip automatic sync after update', false)
|
|
232
|
+
.action(async (name, opts) => {
|
|
233
|
+
await runMcpRemove({
|
|
234
|
+
projectRoot: resolvePath(opts.path),
|
|
235
|
+
name,
|
|
236
|
+
ignoreMissing: Boolean(opts.ignoreMissing),
|
|
237
|
+
noSync: Boolean(opts.noSync)
|
|
238
|
+
});
|
|
239
|
+
});
|
|
240
|
+
mcp
|
|
241
|
+
.command('test [name]')
|
|
242
|
+
.description('Validate MCP server definitions')
|
|
243
|
+
.option('--path <dir>', 'Target project directory', process.cwd())
|
|
244
|
+
.option('--json', 'Output machine-readable JSON', false)
|
|
245
|
+
.option('--runtime', 'Run runtime health checks via integration CLIs (best-effort)', false)
|
|
246
|
+
.option('--runtime-timeout-ms <ms>', 'Timeout for each runtime CLI probe', '8000')
|
|
247
|
+
.action(async (name, opts) => {
|
|
248
|
+
await runMcpTest({
|
|
249
|
+
projectRoot: resolvePath(opts.path),
|
|
250
|
+
name,
|
|
251
|
+
json: Boolean(opts.json),
|
|
252
|
+
runtime: Boolean(opts.runtime),
|
|
253
|
+
runtimeTimeoutMs: Number.parseInt(opts.runtimeTimeoutMs, 10)
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
mcp
|
|
257
|
+
.command('doctor [name]')
|
|
258
|
+
.description('Alias for "agents mcp test"')
|
|
259
|
+
.option('--path <dir>', 'Target project directory', process.cwd())
|
|
260
|
+
.option('--json', 'Output machine-readable JSON', false)
|
|
261
|
+
.option('--runtime', 'Run runtime health checks via integration CLIs (best-effort)', false)
|
|
262
|
+
.option('--runtime-timeout-ms <ms>', 'Timeout for each runtime CLI probe', '8000')
|
|
263
|
+
.action(async (name, opts) => {
|
|
264
|
+
await runMcpTest({
|
|
265
|
+
projectRoot: resolvePath(opts.path),
|
|
266
|
+
name,
|
|
267
|
+
json: Boolean(opts.json),
|
|
268
|
+
runtime: Boolean(opts.runtime),
|
|
269
|
+
runtimeTimeoutMs: Number.parseInt(opts.runtimeTimeoutMs, 10)
|
|
270
|
+
});
|
|
271
|
+
});
|
|
272
|
+
await program.parseAsync(process.argv);
|
|
273
|
+
}
|
|
274
|
+
function collectOption(value, previous) {
|
|
275
|
+
return [...previous, value];
|
|
276
|
+
}
|
|
277
|
+
main().catch((error) => {
|
|
278
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
279
|
+
process.stderr.write(`Error: ${message}\n`);
|
|
280
|
+
process.exitCode = 1;
|
|
281
|
+
});
|
|
282
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|