@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.
Files changed (152) hide show
  1. package/AGENTS.md +400 -0
  2. package/CHANGELOG.md +297 -0
  3. package/CONTRIBUTING.md +164 -0
  4. package/LICENSE +21 -0
  5. package/README.md +117 -0
  6. package/bin/agents +24 -0
  7. package/dist/cli.d.ts +1 -0
  8. package/dist/cli.js +282 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/commands/connect.d.ts +7 -0
  11. package/dist/commands/connect.js +48 -0
  12. package/dist/commands/connect.js.map +1 -0
  13. package/dist/commands/disconnect.d.ts +7 -0
  14. package/dist/commands/disconnect.js +47 -0
  15. package/dist/commands/disconnect.js.map +1 -0
  16. package/dist/commands/doctor.d.ts +6 -0
  17. package/dist/commands/doctor.js +430 -0
  18. package/dist/commands/doctor.js.map +1 -0
  19. package/dist/commands/init.d.ts +5 -0
  20. package/dist/commands/init.js +24 -0
  21. package/dist/commands/init.js.map +1 -0
  22. package/dist/commands/mcp-add.d.ts +20 -0
  23. package/dist/commands/mcp-add.js +250 -0
  24. package/dist/commands/mcp-add.js.map +1 -0
  25. package/dist/commands/mcp-import.d.ts +13 -0
  26. package/dist/commands/mcp-import.js +207 -0
  27. package/dist/commands/mcp-import.js.map +1 -0
  28. package/dist/commands/mcp-list.d.ts +5 -0
  29. package/dist/commands/mcp-list.js +34 -0
  30. package/dist/commands/mcp-list.js.map +1 -0
  31. package/dist/commands/mcp-remove.d.ts +7 -0
  32. package/dist/commands/mcp-remove.js +34 -0
  33. package/dist/commands/mcp-remove.js.map +1 -0
  34. package/dist/commands/mcp-test.d.ts +8 -0
  35. package/dist/commands/mcp-test.js +402 -0
  36. package/dist/commands/mcp-test.js.map +1 -0
  37. package/dist/commands/reset.d.ts +6 -0
  38. package/dist/commands/reset.js +76 -0
  39. package/dist/commands/reset.js.map +1 -0
  40. package/dist/commands/start.d.ts +6 -0
  41. package/dist/commands/start.js +292 -0
  42. package/dist/commands/start.js.map +1 -0
  43. package/dist/commands/status.d.ts +7 -0
  44. package/dist/commands/status.js +278 -0
  45. package/dist/commands/status.js.map +1 -0
  46. package/dist/commands/sync.d.ts +6 -0
  47. package/dist/commands/sync.js +22 -0
  48. package/dist/commands/sync.js.map +1 -0
  49. package/dist/commands/watch.d.ts +7 -0
  50. package/dist/commands/watch.js +117 -0
  51. package/dist/commands/watch.js.map +1 -0
  52. package/dist/core/claudeCli.d.ts +7 -0
  53. package/dist/core/claudeCli.js +35 -0
  54. package/dist/core/claudeCli.js.map +1 -0
  55. package/dist/core/config.d.ts +17 -0
  56. package/dist/core/config.js +121 -0
  57. package/dist/core/config.js.map +1 -0
  58. package/dist/core/cursorCli.d.ts +9 -0
  59. package/dist/core/cursorCli.js +60 -0
  60. package/dist/core/cursorCli.js.map +1 -0
  61. package/dist/core/fs.d.ts +11 -0
  62. package/dist/core/fs.js +76 -0
  63. package/dist/core/fs.js.map +1 -0
  64. package/dist/core/gitignore.d.ts +3 -0
  65. package/dist/core/gitignore.js +54 -0
  66. package/dist/core/gitignore.js.map +1 -0
  67. package/dist/core/mcp.d.ts +8 -0
  68. package/dist/core/mcp.js +134 -0
  69. package/dist/core/mcp.js.map +1 -0
  70. package/dist/core/mcpCrud.d.ts +34 -0
  71. package/dist/core/mcpCrud.js +105 -0
  72. package/dist/core/mcpCrud.js.map +1 -0
  73. package/dist/core/mcpImport.d.ts +14 -0
  74. package/dist/core/mcpImport.js +507 -0
  75. package/dist/core/mcpImport.js.map +1 -0
  76. package/dist/core/mcpSecrets.d.ts +27 -0
  77. package/dist/core/mcpSecrets.js +144 -0
  78. package/dist/core/mcpSecrets.js.map +1 -0
  79. package/dist/core/mcpValidation.d.ts +19 -0
  80. package/dist/core/mcpValidation.js +78 -0
  81. package/dist/core/mcpValidation.js.map +1 -0
  82. package/dist/core/paths.d.ts +37 -0
  83. package/dist/core/paths.js +43 -0
  84. package/dist/core/paths.js.map +1 -0
  85. package/dist/core/project.d.ts +16 -0
  86. package/dist/core/project.js +34 -0
  87. package/dist/core/project.js.map +1 -0
  88. package/dist/core/renderers.d.ts +14 -0
  89. package/dist/core/renderers.js +113 -0
  90. package/dist/core/renderers.js.map +1 -0
  91. package/dist/core/shell.d.ts +8 -0
  92. package/dist/core/shell.js +21 -0
  93. package/dist/core/shell.js.map +1 -0
  94. package/dist/core/shellWords.d.ts +1 -0
  95. package/dist/core/shellWords.js +84 -0
  96. package/dist/core/shellWords.js.map +1 -0
  97. package/dist/core/skills.d.ts +8 -0
  98. package/dist/core/skills.js +150 -0
  99. package/dist/core/skills.js.map +1 -0
  100. package/dist/core/skillsValidation.d.ts +1 -0
  101. package/dist/core/skillsValidation.js +68 -0
  102. package/dist/core/skillsValidation.js.map +1 -0
  103. package/dist/core/sync.d.ts +2 -0
  104. package/dist/core/sync.js +427 -0
  105. package/dist/core/sync.js.map +1 -0
  106. package/dist/core/syncLock.d.ts +1 -0
  107. package/dist/core/syncLock.js +84 -0
  108. package/dist/core/syncLock.js.map +1 -0
  109. package/dist/core/templates.d.ts +1 -0
  110. package/dist/core/templates.js +38 -0
  111. package/dist/core/templates.js.map +1 -0
  112. package/dist/core/trust.d.ts +7 -0
  113. package/dist/core/trust.js +51 -0
  114. package/dist/core/trust.js.map +1 -0
  115. package/dist/core/vscodeSettings.d.ts +17 -0
  116. package/dist/core/vscodeSettings.js +212 -0
  117. package/dist/core/vscodeSettings.js.map +1 -0
  118. package/dist/core/warnings.d.ts +2 -0
  119. package/dist/core/warnings.js +26 -0
  120. package/dist/core/warnings.js.map +1 -0
  121. package/dist/integrations/antigravity.d.ts +9 -0
  122. package/dist/integrations/antigravity.js +13 -0
  123. package/dist/integrations/antigravity.js.map +1 -0
  124. package/dist/integrations/claude.d.ts +1 -0
  125. package/dist/integrations/claude.js +4 -0
  126. package/dist/integrations/claude.js.map +1 -0
  127. package/dist/integrations/codex.d.ts +5 -0
  128. package/dist/integrations/codex.js +5 -0
  129. package/dist/integrations/codex.js.map +1 -0
  130. package/dist/integrations/copilotVscode.d.ts +7 -0
  131. package/dist/integrations/copilotVscode.js +9 -0
  132. package/dist/integrations/copilotVscode.js.map +1 -0
  133. package/dist/integrations/cursor.d.ts +7 -0
  134. package/dist/integrations/cursor.js +9 -0
  135. package/dist/integrations/cursor.js.map +1 -0
  136. package/dist/integrations/gemini.d.ts +12 -0
  137. package/dist/integrations/gemini.js +15 -0
  138. package/dist/integrations/gemini.js.map +1 -0
  139. package/dist/integrations/registry.d.ts +9 -0
  140. package/dist/integrations/registry.js +21 -0
  141. package/dist/integrations/registry.js.map +1 -0
  142. package/dist/types.d.ts +85 -0
  143. package/dist/types.js +2 -0
  144. package/dist/types.js.map +1 -0
  145. package/docs/EXAMPLES.md +211 -0
  146. package/docs/README.md +26 -0
  147. package/docs/agents-system.md +178 -0
  148. package/package.json +77 -0
  149. package/templates/agents/AGENTS.md +23 -0
  150. package/templates/agents/README.md +25 -0
  151. package/templates/agents/skills/README.md +27 -0
  152. package/templates/agents/skills/skill-guide/SKILL.md +29 -0
@@ -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
+ [![npm version](https://img.shields.io/npm/v/@agents-dev/cli.svg)](https://www.npmjs.com/package/@agents-dev/cli)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ [![Tests](https://img.shields.io/badge/tests-77%20passing-brightgreen.svg)](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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface ConnectOptions {
2
+ projectRoot: string;
3
+ llm?: string;
4
+ interactive: boolean;
5
+ verbose: boolean;
6
+ }
7
+ export declare function runConnect(options: ConnectOptions): Promise<void>;