@agentage/cli 0.1.1 → 0.1.6

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 (59) hide show
  1. package/README.md +244 -48
  2. package/dist/cli.js +15 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/cli.test.js +21 -13
  5. package/dist/cli.test.js.map +1 -1
  6. package/dist/commands/init.d.ts +3 -0
  7. package/dist/commands/init.d.ts.map +1 -1
  8. package/dist/commands/init.js +21 -11
  9. package/dist/commands/init.js.map +1 -1
  10. package/dist/commands/init.test.js +28 -23
  11. package/dist/commands/init.test.js.map +1 -1
  12. package/dist/commands/login.d.ts +2 -0
  13. package/dist/commands/login.d.ts.map +1 -0
  14. package/dist/commands/login.js +67 -0
  15. package/dist/commands/login.js.map +1 -0
  16. package/dist/commands/login.test.d.ts +2 -0
  17. package/dist/commands/login.test.d.ts.map +1 -0
  18. package/dist/commands/login.test.js +157 -0
  19. package/dist/commands/login.test.js.map +1 -0
  20. package/dist/commands/logout.d.ts +2 -0
  21. package/dist/commands/logout.d.ts.map +1 -0
  22. package/dist/commands/logout.js +29 -0
  23. package/dist/commands/logout.js.map +1 -0
  24. package/dist/commands/logout.test.d.ts +2 -0
  25. package/dist/commands/logout.test.d.ts.map +1 -0
  26. package/dist/commands/logout.test.js +49 -0
  27. package/dist/commands/logout.test.js.map +1 -0
  28. package/dist/commands/whoami.d.ts +2 -0
  29. package/dist/commands/whoami.d.ts.map +1 -0
  30. package/dist/commands/whoami.js +47 -0
  31. package/dist/commands/whoami.js.map +1 -0
  32. package/dist/commands/whoami.test.d.ts +2 -0
  33. package/dist/commands/whoami.test.d.ts.map +1 -0
  34. package/dist/commands/whoami.test.js +96 -0
  35. package/dist/commands/whoami.test.js.map +1 -0
  36. package/dist/index.d.ts +1 -1
  37. package/dist/index.js +1 -1
  38. package/dist/index.test.js +1 -1
  39. package/dist/services/auth.service.d.ts +10 -0
  40. package/dist/services/auth.service.d.ts.map +1 -0
  41. package/dist/services/auth.service.js +97 -0
  42. package/dist/services/auth.service.js.map +1 -0
  43. package/dist/services/auth.service.test.d.ts +2 -0
  44. package/dist/services/auth.service.test.d.ts.map +1 -0
  45. package/dist/services/auth.service.test.js +215 -0
  46. package/dist/services/auth.service.test.js.map +1 -0
  47. package/dist/types/config.types.d.ts +159 -0
  48. package/dist/types/config.types.d.ts.map +1 -0
  49. package/dist/types/config.types.js +20 -0
  50. package/dist/types/config.types.js.map +1 -0
  51. package/dist/utils/config.d.ts +10 -0
  52. package/dist/utils/config.d.ts.map +1 -0
  53. package/dist/utils/config.js +49 -0
  54. package/dist/utils/config.js.map +1 -0
  55. package/dist/utils/config.test.d.ts +2 -0
  56. package/dist/utils/config.test.d.ts.map +1 -0
  57. package/dist/utils/config.test.js +118 -0
  58. package/dist/utils/config.test.js.map +1 -0
  59. package/package.json +3 -2
package/README.md CHANGED
@@ -1,85 +1,290 @@
1
- # @agentage/cli
1
+ # AgentKit CLI
2
2
 
3
- > CLI tool for creating and running AI agents locally
3
+ Command-line interface for creating and managing AI agents.
4
4
 
5
- **Status**: MVP Phase - Core functionality only
5
+ ## Installation
6
6
 
7
- ## About
7
+ Install globally:
8
8
 
9
- AgentKit CLI lets you define AI agents in simple configuration files and run them from your terminal. Create specialized agents for code review, documentation, testing, or any task—then execute them with a single command.
9
+ ```bash
10
+ npm install -g @agentage/cli
11
+ ```
10
12
 
11
- Each agent is just a file (YAML, JSON, or Markdown) with a name, model, and instructions. No complex setup, no boilerplate code.
13
+ Or use with npx:
12
14
 
13
- ## Installation
15
+ ```bash
16
+ npx @agentage/cli <command>
17
+ ```
18
+
19
+ ## Quick Start
14
20
 
15
21
  ```bash
16
- npm install -g @agentage/cli
22
+ # Create a new agent
23
+ agent init my-assistant
24
+
25
+ # Run the agent
26
+ agent run my-assistant "Hello, how are you?"
27
+
28
+ # List all agents
29
+ agent list
30
+ ```
31
+
32
+ ## Commands
33
+
34
+ ### `agent init [name]`
35
+
36
+ Create a new agent configuration file.
37
+
38
+ #### Synopsis
39
+
40
+ ```bash
41
+ agent init [name]
42
+ ```
43
+
44
+ #### Arguments
45
+
46
+ - `name` (optional): Name for the agent (default: `my-agent`)
47
+
48
+ #### Description
49
+
50
+ Creates a new agent YAML file in the `agents/` directory with a default template.
51
+
52
+ #### Examples
53
+
54
+ ```bash
55
+ # Create agent with default name
56
+ agent init
57
+
58
+ # Create agent with custom name
59
+ agent init my-assistant
60
+
61
+ # Create specialized agents
62
+ agent init code-reviewer
63
+ agent init data-analyzer
64
+ agent init customer-support
65
+ ```
66
+
67
+ #### Output
68
+
69
+ Creates `agents/<name>.yml`:
70
+
71
+ ```yaml
72
+ name: my-assistant
73
+ model: gpt-4
74
+ instructions: |
75
+ You are a helpful AI assistant.
76
+ Respond clearly and concisely.
77
+ tools: []
78
+ variables: {}
17
79
  ```
18
80
 
19
- ## Usage
81
+ ---
82
+
83
+ ### `agent run <name> [prompt]`
84
+
85
+ Execute an agent with a prompt.
20
86
 
21
- ### Create an agent
87
+ #### Synopsis
22
88
 
23
89
  ```bash
24
- agentkit init my-agent
90
+ agent run <name> [prompt]
25
91
  ```
26
92
 
27
- ### Run an agent
93
+ #### Arguments
94
+
95
+ - `name` (required): Name of the agent to run
96
+ - `prompt` (optional): Message to send to agent (default: `"Hello!"`)
97
+
98
+ #### Description
99
+
100
+ Loads an agent configuration from `agents/<name>.yml` and executes it with the provided prompt. Requires `OPENAI_API_KEY` environment variable.
101
+
102
+ #### Examples
103
+
104
+ ```bash
105
+ # Run with default prompt
106
+ agent run my-assistant
107
+
108
+ # Run with custom prompt
109
+ agent run my-assistant "What is TypeScript?"
110
+
111
+ # Run specialized agents
112
+ agent run data-analyzer "Analyze sales trends for Q4"
113
+ agent run customer-support "How do I reset my password?"
114
+ ```
115
+
116
+ #### Environment Variables
117
+
118
+ - `OPENAI_API_KEY`: Required. Your OpenAI API key
119
+
120
+ ```bash
121
+ export OPENAI_API_KEY='sk-...'
122
+ agent run my-assistant "Hello"
123
+ ```
124
+
125
+ ---
126
+
127
+ ### `agent list`
128
+
129
+ List all available agents.
130
+
131
+ #### Synopsis
28
132
 
29
133
  ```bash
30
- agentkit run my-agent "Your prompt here"
134
+ agent list
31
135
  ```
32
136
 
33
- ### List local agents
137
+ #### Description
138
+
139
+ Displays all agent configurations found in the `agents/` directory with their names and models.
140
+
141
+ #### Output
34
142
 
35
143
  ```bash
36
- agentkit list
144
+ 📋 Available Agents:
145
+
146
+ ✅ my-assistant (gpt-4)
147
+ ✅ code-reviewer (gpt-4)
148
+ ✅ data-analyzer (gpt-3.5-turbo)
37
149
  ```
38
150
 
39
- ## Agent Definition
151
+ ---
152
+
153
+ ## Agent Configuration File
154
+
155
+ ### File Format
40
156
 
41
- Agents can be defined in multiple formats. All require three fields: **name**, **description**, and **model**.
157
+ Agent configurations use YAML format and must be placed in the `agents/` directory.
42
158
 
43
- **YAML** (`agent.yml`):
159
+ ### File Structure
44
160
 
45
161
  ```yaml
46
- name: my-agent
47
- description: A helpful assistant for code review
162
+ name: agent-name
48
163
  model: gpt-4
49
164
  instructions: |
50
- You are a helpful assistant that...
165
+ Multi-line instructions
166
+ for the agent
167
+ tools: []
168
+ variables: {}
51
169
  ```
52
170
 
53
- **JSON** (`agent.json`):
171
+ ### Example Configurations
54
172
 
55
- ```json
56
- {
57
- "name": "my-agent",
58
- "description": "A helpful assistant for code review",
59
- "model": "gpt-4",
60
- "instructions": "You are a helpful assistant that..."
61
- }
173
+ #### Basic Assistant
174
+
175
+ ```yaml
176
+ name: assistant
177
+ model: gpt-4
178
+ instructions: |
179
+ You are a helpful AI assistant.
180
+ Provide clear and accurate information.
181
+ tools: []
182
+ variables: {}
62
183
  ```
63
184
 
64
- **Markdown** (`agent.md`):
185
+ #### Code Reviewer
65
186
 
66
- ```markdown
67
- ---
68
- name: "my-agent"
69
- description: "A helpful assistant for code review"
70
- model: "gpt-4"
71
- ---
187
+ ```yaml
188
+ name: code-reviewer
189
+ model: gpt-4
190
+ instructions: |
191
+ You are an expert code reviewer.
192
+ Review code for:
193
+ - Bugs and errors
194
+ - Security issues
195
+ - Best practices
196
+ - Performance concerns
197
+ Provide specific, actionable feedback.
198
+ tools: []
199
+ variables: {}
200
+ ```
201
+
202
+ #### Data Analyzer
203
+
204
+ ```yaml
205
+ name: data-analyzer
206
+ model: gpt-4
207
+ instructions: |
208
+ You are a data analysis expert.
209
+ Analyze data to find:
210
+ - Trends and patterns
211
+ - Anomalies
212
+ - Key insights
213
+ - Actionable recommendations
214
+ Present findings clearly with evidence.
215
+ tools: []
216
+ variables: {}
217
+ ```
218
+
219
+ ## Environment Setup
220
+
221
+ ### Using .env File
72
222
 
73
- # Agent
223
+ Create a `.env` file in your project root:
74
224
 
75
- You are a helpful assistant that...
225
+ ```env
226
+ OPENAI_API_KEY=sk-your-api-key-here
76
227
  ```
77
228
 
229
+ ### Using Environment Variables
230
+
231
+ **Linux/macOS:**
232
+ ```bash
233
+ export OPENAI_API_KEY='sk-...'
234
+ ```
235
+
236
+ **Windows (CMD):**
237
+ ```cmd
238
+ set OPENAI_API_KEY=sk-...
239
+ ```
240
+
241
+ **Windows (PowerShell):**
242
+ ```powershell
243
+ $env:OPENAI_API_KEY='sk-...'
244
+ ```
245
+
246
+ ## Troubleshooting
247
+
248
+ ### Issue: Command not found
249
+
250
+ **Solution:**
251
+ ```bash
252
+ # Install globally
253
+ npm install -g @agentage/cli
254
+
255
+ # Or use npx
256
+ npx @agentage/cli init
257
+ ```
258
+
259
+ ### Issue: Agent not found
260
+
261
+ **Solution:**
262
+ ```bash
263
+ # List available agents
264
+ agent list
265
+
266
+ # Create the agent first
267
+ agent init my-assistant
268
+ ```
269
+
270
+ ### Issue: API errors
271
+
272
+ **Solution:**
273
+ - Check API key is valid
274
+ - Verify internet connection
275
+ - Check OpenAI API status
276
+
277
+ ## See Also
278
+
279
+ - [Agent Schema Reference](./docs/agent-schema.md)
280
+ - [SDK Documentation](../../docs/api-reference.md)
281
+ - [Getting Started Guide](../../docs/getting-started.md)
282
+
78
283
  ## Requirements
79
284
 
80
285
  - Node.js 20+
81
286
  - npm 10+
82
- - OpenAI API key (set `OPENAI_API_KEY` environment variable)
287
+ - OpenAI API key
83
288
 
84
289
  ## Development
85
290
 
@@ -93,17 +298,8 @@ npm run build
93
298
  # Test
94
299
  npm run test
95
300
 
96
- # Lint
97
- npm run lint
98
-
99
- # Type check
100
- npm run type-check
101
-
102
301
  # Verify all
103
302
  npm run verify
104
-
105
- # Clean
106
- npm run clean
107
303
  ```
108
304
 
109
305
  ## License
package/dist/cli.js CHANGED
@@ -2,7 +2,10 @@
2
2
  import { Command } from 'commander';
3
3
  import { initCommand } from './commands/init.js';
4
4
  import { listCommand } from './commands/list.js';
5
+ import { loginCommand } from './commands/login.js';
6
+ import { logoutCommand } from './commands/logout.js';
5
7
  import { runCommand } from './commands/run.js';
8
+ import { whoamiCommand } from './commands/whoami.js';
6
9
  import { version } from './index.js';
7
10
  const program = new Command();
8
11
  program
@@ -21,5 +24,17 @@ program
21
24
  .argument('[prompt]', 'Prompt to send to the agent')
22
25
  .action(runCommand);
23
26
  program.command('list').description('List all agents').action(listCommand);
27
+ program
28
+ .command('login')
29
+ .description('Login to the Agentage registry')
30
+ .action(loginCommand);
31
+ program
32
+ .command('logout')
33
+ .description('Logout from the Agentage registry')
34
+ .action(logoutCommand);
35
+ program
36
+ .command('whoami')
37
+ .description('Display the currently logged in user')
38
+ .action(whoamiCommand);
24
39
  program.parse();
25
40
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,qDAAqD,CAAC;KAClE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;KAChC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,cAAc,CAAC;KAC3B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;KAChC,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC;KACnD,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAE3E,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,qDAAqD,CAAC;KAClE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;KAChC,MAAM,CAAC,WAAW,CAAC,CAAC;AAEvB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,cAAc,CAAC;KAC3B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;KAChC,QAAQ,CAAC,UAAU,EAAE,6BAA6B,CAAC;KACnD,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAG3E,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO,CAAC,KAAK,EAAE,CAAC"}
package/dist/cli.test.js CHANGED
@@ -1,24 +1,27 @@
1
1
  import { execSync } from 'child_process';
2
- import { existsSync, rmSync, unlinkSync } from 'fs';
2
+ import { existsSync, mkdirSync, rmSync } from 'fs';
3
3
  import { join } from 'path';
4
4
  const CLI_PATH = join(__dirname, 'cli.ts');
5
5
  describe('CLI Commands', () => {
6
+ const testDir = 'test-cli-workspace';
7
+ beforeEach(() => {
8
+ if (existsSync(testDir)) {
9
+ rmSync(testDir, { recursive: true });
10
+ }
11
+ mkdirSync(testDir);
12
+ process.chdir(testDir);
13
+ });
6
14
  afterEach(() => {
7
- const testFiles = ['test-agent.agent.yml', 'my-agent.agent.yml'];
8
- testFiles.forEach((file) => {
9
- if (existsSync(file)) {
10
- unlinkSync(file);
11
- }
12
- });
13
- if (existsSync('agents')) {
14
- rmSync('agents', { recursive: true, force: true });
15
+ process.chdir('..');
16
+ if (existsSync(testDir)) {
17
+ rmSync(testDir, { recursive: true });
15
18
  }
16
19
  });
17
20
  test('CLI shows version', () => {
18
21
  const output = execSync(`tsx ${CLI_PATH} --version`, {
19
22
  encoding: 'utf-8',
20
23
  });
21
- expect(output.trim()).toBe('0.1.1');
24
+ expect(output.trim()).toBe('0.1.2');
22
25
  });
23
26
  test('CLI shows help', () => {
24
27
  const output = execSync(`tsx ${CLI_PATH} --help`, {
@@ -29,12 +32,17 @@ describe('CLI Commands', () => {
29
32
  expect(output).toContain('run');
30
33
  expect(output).toContain('list');
31
34
  });
32
- test('init command creates agent file', () => {
35
+ test('init command creates agent folder and config', () => {
33
36
  const output = execSync(`tsx ${CLI_PATH} init test-agent`, {
34
37
  encoding: 'utf-8',
35
38
  });
36
- expect(output).toContain(' Created agents/test-agent.yml');
37
- expect(existsSync('agents/test-agent.yml')).toBe(true);
39
+ const expectedAgentPath = join('agents', 'test-agent.agent.md');
40
+ const expectedConfigPath = 'agent.json';
41
+ expect(output).toContain('✅ Created');
42
+ expect(output).toContain('test-agent.agent.md');
43
+ expect(output).toContain('agent.json');
44
+ expect(existsSync(expectedAgentPath)).toBe(true);
45
+ expect(existsSync(expectedConfigPath)).toBe(true);
38
46
  });
39
47
  test('run command requires agent file', () => {
40
48
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,5 @@
1
+ export interface AgentConfig {
2
+ path: string;
3
+ }
1
4
  export declare const initCommand: (name?: string) => Promise<void>;
2
5
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAwB7D,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,WAAW,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CA+B7D,CAAC"}
@@ -1,21 +1,31 @@
1
1
  import { mkdir, writeFile } from 'fs/promises';
2
2
  import { join } from 'path';
3
+ const sampleAgentTemplate = `---
4
+ name: {{name}}
5
+ description: An AI assistant agent
6
+ argument-hint: Describe what you want help with
7
+ tools: []
8
+ handoffs: []
9
+ ---
10
+ You are a helpful AI assistant.
11
+
12
+ Respond clearly and concisely to user requests.
13
+ `;
3
14
  export const initCommand = async (name) => {
4
15
  const agentName = name || 'my-agent';
5
16
  const agentsDir = 'agents';
6
- const filePath = join(agentsDir, `${agentName}.yml`);
7
- const template = `name: ${agentName}
8
- model: gpt-4
9
- instructions: |
10
- You are a helpful AI assistant.
11
- Respond clearly and concisely.
12
- tools: []
13
- variables: {}
14
- `;
17
+ const agentFilePath = join(agentsDir, `${agentName}.agent.md`);
18
+ const configFilePath = 'agent.json';
19
+ const agentContent = sampleAgentTemplate.replace(/{{name}}/g, agentName);
20
+ const agentConfig = {
21
+ path: '~/agents/',
22
+ };
15
23
  try {
16
24
  await mkdir(agentsDir, { recursive: true });
17
- await writeFile(filePath, template, 'utf-8');
18
- console.log(`✅ Created ${filePath}`);
25
+ await writeFile(agentFilePath, agentContent, 'utf-8');
26
+ console.log(`✅ Created ${agentFilePath}`);
27
+ await writeFile(configFilePath, JSON.stringify(agentConfig, null, 2), 'utf-8');
28
+ console.log(`✅ Created ${configFilePath}`);
19
29
  }
20
30
  catch (error) {
21
31
  console.error(`❌ Failed: ${error.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,IAAa,EAAiB,EAAE;IAChE,MAAM,SAAS,GAAG,IAAI,IAAI,UAAU,CAAC;IACrC,MAAM,SAAS,GAAG,QAAQ,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,MAAM,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAG,SAAS,SAAS;;;;;;;CAOpC,CAAC;IAEA,IAAI,CAAC;QAEH,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5C,MAAM,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,aAAc,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,mBAAmB,GAAG;;;;;;;;;;CAU3B,CAAC;AAMF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,IAAa,EAAiB,EAAE;IAChE,MAAM,SAAS,GAAG,IAAI,IAAI,UAAU,CAAC;IACrC,MAAM,SAAS,GAAG,QAAQ,CAAC;IAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,WAAW,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,YAAY,CAAC;IAEpC,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEzE,MAAM,WAAW,GAAgB;QAC/B,IAAI,EAAE,WAAW;KAClB,CAAC;IAEF,IAAI,CAAC;QAEH,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAG5C,MAAM,SAAS,CAAC,aAAa,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,aAAa,aAAa,EAAE,CAAC,CAAC;QAG1C,MAAM,SAAS,CACb,cAAc,EACd,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EACpC,OAAO,CACR,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,aAAa,cAAc,EAAE,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,aAAc,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
@@ -2,48 +2,53 @@ import { existsSync, mkdirSync, readFileSync, rmSync } from 'fs';
2
2
  import { join } from 'path';
3
3
  import { initCommand } from './init.js';
4
4
  describe('initCommand', () => {
5
- const testAgentsDir = 'test-agents';
5
+ const testDir = 'test-init-workspace';
6
6
  beforeEach(() => {
7
- if (existsSync(testAgentsDir)) {
8
- rmSync(testAgentsDir, { recursive: true });
7
+ if (existsSync(testDir)) {
8
+ rmSync(testDir, { recursive: true });
9
9
  }
10
- mkdirSync(testAgentsDir);
11
- process.chdir(testAgentsDir);
10
+ mkdirSync(testDir);
11
+ process.chdir(testDir);
12
12
  });
13
13
  afterEach(() => {
14
14
  process.chdir('..');
15
- if (existsSync(testAgentsDir)) {
16
- rmSync(testAgentsDir, { recursive: true });
15
+ if (existsSync(testDir)) {
16
+ rmSync(testDir, { recursive: true });
17
17
  }
18
18
  });
19
- test('creates agent file with default name', async () => {
19
+ test('creates agent.json in current directory and agents folder with default name', async () => {
20
20
  await initCommand();
21
- const filePath = join('agents', 'my-agent.yml');
22
- expect(existsSync(filePath)).toBe(true);
23
- const content = readFileSync(filePath, 'utf-8');
24
- expect(content).toContain('name: my-agent');
25
- expect(content).toContain('model: gpt-4');
26
- expect(content).toContain('You are a helpful AI assistant');
21
+ const agentFilePath = join('agents', 'my-agent.agent.md');
22
+ const configFilePath = 'agent.json';
23
+ expect(existsSync('agents')).toBe(true);
24
+ expect(existsSync(agentFilePath)).toBe(true);
25
+ expect(existsSync(configFilePath)).toBe(true);
26
+ const agentContent = readFileSync(agentFilePath, 'utf-8');
27
+ expect(agentContent).toContain('name: my-agent');
28
+ expect(agentContent).toContain('You are a helpful AI assistant');
29
+ const configContent = JSON.parse(readFileSync(configFilePath, 'utf-8'));
30
+ expect(configContent.path).toBe('~/agents/');
27
31
  });
28
32
  test('creates agent file with custom name', async () => {
29
33
  await initCommand('custom-agent');
30
- const filePath = join('agents', 'custom-agent.yml');
31
- expect(existsSync(filePath)).toBe(true);
32
- const content = readFileSync(filePath, 'utf-8');
33
- expect(content).toContain('name: custom-agent');
34
+ const agentFilePath = join('agents', 'custom-agent.agent.md');
35
+ expect(existsSync('agents')).toBe(true);
36
+ expect(existsSync(agentFilePath)).toBe(true);
37
+ const agentContent = readFileSync(agentFilePath, 'utf-8');
38
+ expect(agentContent).toContain('name: custom-agent');
34
39
  });
35
- test('creates agents directory if it does not exist', async () => {
36
- expect(existsSync('agents')).toBe(false);
40
+ test('creates agent.json config with path property', async () => {
37
41
  await initCommand('test-agent');
38
- expect(existsSync('agents')).toBe(true);
39
- expect(existsSync(join('agents', 'test-agent.yml'))).toBe(true);
42
+ const configFilePath = 'agent.json';
43
+ expect(existsSync(configFilePath)).toBe(true);
44
+ const configContent = JSON.parse(readFileSync(configFilePath, 'utf-8'));
45
+ expect(configContent).toEqual({ path: '~/agents/' });
40
46
  });
41
47
  test('handles errors gracefully', async () => {
42
48
  const mockExit = jest.spyOn(process, 'exit').mockImplementation(() => {
43
49
  throw new Error('process.exit called');
44
50
  });
45
51
  const consoleError = jest.spyOn(console, 'error').mockImplementation();
46
- mkdirSync('agents');
47
52
  const originalWriteFile = require('fs/promises').writeFile;
48
53
  jest
49
54
  .spyOn(require('fs/promises'), 'writeFile')
@@ -1 +1 @@
1
- {"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/commands/init.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/commands/init.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const loginCommand: () => Promise<void>;
2
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,IAAI,CAiGjD,CAAC"}