@agentage/cli 0.1.19 → 0.2.0

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 (247) hide show
  1. package/dist/cli.js +20 -244
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/agents.d.ts +3 -0
  4. package/dist/commands/agents.d.ts.map +1 -0
  5. package/dist/commands/agents.js +45 -0
  6. package/dist/commands/agents.js.map +1 -0
  7. package/dist/commands/daemon-cmd.d.ts +3 -0
  8. package/dist/commands/daemon-cmd.d.ts.map +1 -0
  9. package/dist/commands/daemon-cmd.js +26 -0
  10. package/dist/commands/daemon-cmd.js.map +1 -0
  11. package/dist/commands/login.d.ts +2 -1
  12. package/dist/commands/login.d.ts.map +1 -1
  13. package/dist/commands/login.js +8 -65
  14. package/dist/commands/login.js.map +1 -1
  15. package/dist/commands/logout.d.ts +2 -1
  16. package/dist/commands/logout.d.ts.map +1 -1
  17. package/dist/commands/logout.js +7 -26
  18. package/dist/commands/logout.js.map +1 -1
  19. package/dist/commands/logs.d.ts +3 -0
  20. package/dist/commands/logs.d.ts.map +1 -0
  21. package/dist/commands/logs.js +45 -0
  22. package/dist/commands/logs.js.map +1 -0
  23. package/dist/commands/machines.d.ts +3 -0
  24. package/dist/commands/machines.d.ts.map +1 -0
  25. package/dist/commands/machines.js +14 -0
  26. package/dist/commands/machines.js.map +1 -0
  27. package/dist/commands/run.d.ts +2 -1
  28. package/dist/commands/run.d.ts.map +1 -1
  29. package/dist/commands/run.js +70 -24
  30. package/dist/commands/run.js.map +1 -1
  31. package/dist/commands/runs.d.ts +3 -0
  32. package/dist/commands/runs.d.ts.map +1 -0
  33. package/dist/commands/runs.js +73 -0
  34. package/dist/commands/runs.js.map +1 -0
  35. package/dist/commands/status.d.ts +3 -0
  36. package/dist/commands/status.d.ts.map +1 -0
  37. package/dist/commands/status.js +34 -0
  38. package/dist/commands/status.js.map +1 -0
  39. package/dist/daemon/config.d.ts +32 -0
  40. package/dist/daemon/config.d.ts.map +1 -0
  41. package/dist/daemon/config.js +57 -0
  42. package/dist/daemon/config.js.map +1 -0
  43. package/dist/daemon/daemon.d.ts +8 -0
  44. package/dist/daemon/daemon.d.ts.map +1 -0
  45. package/dist/daemon/daemon.js +106 -0
  46. package/dist/daemon/daemon.js.map +1 -0
  47. package/dist/daemon/logger.d.ts +10 -0
  48. package/dist/daemon/logger.d.ts.map +1 -0
  49. package/dist/daemon/logger.js +41 -0
  50. package/dist/daemon/logger.js.map +1 -0
  51. package/dist/daemon/routes.d.ts +7 -0
  52. package/dist/daemon/routes.d.ts.map +1 -0
  53. package/dist/daemon/routes.js +102 -0
  54. package/dist/daemon/routes.js.map +1 -0
  55. package/dist/daemon/run-manager.d.ts +13 -0
  56. package/dist/daemon/run-manager.d.ts.map +1 -0
  57. package/dist/daemon/run-manager.js +119 -0
  58. package/dist/daemon/run-manager.js.map +1 -0
  59. package/dist/daemon/server.d.ts +11 -0
  60. package/dist/daemon/server.d.ts.map +1 -0
  61. package/dist/daemon/server.js +59 -0
  62. package/dist/daemon/server.js.map +1 -0
  63. package/dist/daemon/websocket.d.ts +4 -0
  64. package/dist/daemon/websocket.d.ts.map +1 -0
  65. package/dist/daemon/websocket.js +88 -0
  66. package/dist/daemon/websocket.js.map +1 -0
  67. package/dist/daemon-entry.d.ts +2 -0
  68. package/dist/daemon-entry.d.ts.map +1 -0
  69. package/dist/daemon-entry.js +45 -0
  70. package/dist/daemon-entry.js.map +1 -0
  71. package/dist/discovery/code-factory.d.ts +3 -0
  72. package/dist/discovery/code-factory.d.ts.map +1 -0
  73. package/dist/discovery/code-factory.js +32 -0
  74. package/dist/discovery/code-factory.js.map +1 -0
  75. package/dist/discovery/markdown-factory.d.ts +3 -0
  76. package/dist/discovery/markdown-factory.d.ts.map +1 -0
  77. package/dist/discovery/markdown-factory.js +63 -0
  78. package/dist/discovery/markdown-factory.js.map +1 -0
  79. package/dist/discovery/scanner.d.ts +3 -0
  80. package/dist/discovery/scanner.d.ts.map +1 -0
  81. package/dist/discovery/scanner.js +50 -0
  82. package/dist/discovery/scanner.js.map +1 -0
  83. package/dist/index.d.ts +2 -2
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +1 -8
  86. package/dist/index.js.map +1 -1
  87. package/dist/utils/daemon-client.d.ts +5 -0
  88. package/dist/utils/daemon-client.d.ts.map +1 -0
  89. package/dist/utils/daemon-client.js +44 -0
  90. package/dist/utils/daemon-client.js.map +1 -0
  91. package/dist/utils/ensure-daemon.d.ts +2 -0
  92. package/dist/utils/ensure-daemon.d.ts.map +1 -0
  93. package/dist/utils/ensure-daemon.js +7 -0
  94. package/dist/utils/ensure-daemon.js.map +1 -0
  95. package/dist/utils/render.d.ts +3 -0
  96. package/dist/utils/render.d.ts.map +1 -0
  97. package/dist/utils/render.js +84 -0
  98. package/dist/utils/render.js.map +1 -0
  99. package/package.json +44 -54
  100. package/.github/copilot-instructions.md +0 -126
  101. package/.github/dependabot.yml +0 -41
  102. package/.github/workflows/ci.yml +0 -50
  103. package/.github/workflows/publish.yml +0 -170
  104. package/dist/cli.test.d.ts +0 -2
  105. package/dist/cli.test.d.ts.map +0 -1
  106. package/dist/cli.test.js +0 -67
  107. package/dist/cli.test.js.map +0 -1
  108. package/dist/commands/init.d.ts +0 -8
  109. package/dist/commands/init.d.ts.map +0 -1
  110. package/dist/commands/init.js +0 -39
  111. package/dist/commands/init.js.map +0 -1
  112. package/dist/commands/init.test.d.ts +0 -2
  113. package/dist/commands/init.test.d.ts.map +0 -1
  114. package/dist/commands/init.test.js +0 -79
  115. package/dist/commands/init.test.js.map +0 -1
  116. package/dist/commands/install.d.ts +0 -8
  117. package/dist/commands/install.d.ts.map +0 -1
  118. package/dist/commands/install.js +0 -90
  119. package/dist/commands/install.js.map +0 -1
  120. package/dist/commands/install.test.d.ts +0 -2
  121. package/dist/commands/install.test.d.ts.map +0 -1
  122. package/dist/commands/install.test.js +0 -172
  123. package/dist/commands/install.test.js.map +0 -1
  124. package/dist/commands/list.d.ts +0 -2
  125. package/dist/commands/list.d.ts.map +0 -1
  126. package/dist/commands/list.js +0 -145
  127. package/dist/commands/list.js.map +0 -1
  128. package/dist/commands/list.test.d.ts +0 -2
  129. package/dist/commands/list.test.d.ts.map +0 -1
  130. package/dist/commands/list.test.js +0 -120
  131. package/dist/commands/list.test.js.map +0 -1
  132. package/dist/commands/login.test.d.ts +0 -2
  133. package/dist/commands/login.test.d.ts.map +0 -1
  134. package/dist/commands/login.test.js +0 -157
  135. package/dist/commands/login.test.js.map +0 -1
  136. package/dist/commands/logout.test.d.ts +0 -2
  137. package/dist/commands/logout.test.d.ts.map +0 -1
  138. package/dist/commands/logout.test.js +0 -49
  139. package/dist/commands/logout.test.js.map +0 -1
  140. package/dist/commands/publish.d.ts +0 -10
  141. package/dist/commands/publish.d.ts.map +0 -1
  142. package/dist/commands/publish.js +0 -138
  143. package/dist/commands/publish.js.map +0 -1
  144. package/dist/commands/publish.test.d.ts +0 -2
  145. package/dist/commands/publish.test.d.ts.map +0 -1
  146. package/dist/commands/publish.test.js +0 -307
  147. package/dist/commands/publish.test.js.map +0 -1
  148. package/dist/commands/run.test.d.ts +0 -2
  149. package/dist/commands/run.test.d.ts.map +0 -1
  150. package/dist/commands/run.test.js +0 -73
  151. package/dist/commands/run.test.js.map +0 -1
  152. package/dist/commands/search.d.ts +0 -8
  153. package/dist/commands/search.d.ts.map +0 -1
  154. package/dist/commands/search.js +0 -41
  155. package/dist/commands/search.js.map +0 -1
  156. package/dist/commands/search.test.d.ts +0 -2
  157. package/dist/commands/search.test.d.ts.map +0 -1
  158. package/dist/commands/search.test.js +0 -138
  159. package/dist/commands/search.test.js.map +0 -1
  160. package/dist/commands/update.d.ts +0 -8
  161. package/dist/commands/update.d.ts.map +0 -1
  162. package/dist/commands/update.js +0 -28
  163. package/dist/commands/update.js.map +0 -1
  164. package/dist/commands/update.test.d.ts +0 -2
  165. package/dist/commands/update.test.d.ts.map +0 -1
  166. package/dist/commands/update.test.js +0 -134
  167. package/dist/commands/update.test.js.map +0 -1
  168. package/dist/commands/whoami.d.ts +0 -2
  169. package/dist/commands/whoami.d.ts.map +0 -1
  170. package/dist/commands/whoami.js +0 -55
  171. package/dist/commands/whoami.js.map +0 -1
  172. package/dist/commands/whoami.test.d.ts +0 -2
  173. package/dist/commands/whoami.test.d.ts.map +0 -1
  174. package/dist/commands/whoami.test.js +0 -119
  175. package/dist/commands/whoami.test.js.map +0 -1
  176. package/dist/index.test.d.ts +0 -2
  177. package/dist/index.test.d.ts.map +0 -1
  178. package/dist/index.test.js +0 -17
  179. package/dist/index.test.js.map +0 -1
  180. package/dist/schemas/agent.schema.d.ts +0 -22
  181. package/dist/schemas/agent.schema.d.ts.map +0 -1
  182. package/dist/schemas/agent.schema.js +0 -9
  183. package/dist/schemas/agent.schema.js.map +0 -1
  184. package/dist/schemas/agent.schema.test.d.ts +0 -2
  185. package/dist/schemas/agent.schema.test.d.ts.map +0 -1
  186. package/dist/schemas/agent.schema.test.js +0 -80
  187. package/dist/schemas/agent.schema.test.js.map +0 -1
  188. package/dist/services/auth.service.d.ts +0 -10
  189. package/dist/services/auth.service.d.ts.map +0 -1
  190. package/dist/services/auth.service.js +0 -99
  191. package/dist/services/auth.service.js.map +0 -1
  192. package/dist/services/auth.service.test.d.ts +0 -2
  193. package/dist/services/auth.service.test.d.ts.map +0 -1
  194. package/dist/services/auth.service.test.js +0 -218
  195. package/dist/services/auth.service.test.js.map +0 -1
  196. package/dist/services/registry.service.d.ts +0 -13
  197. package/dist/services/registry.service.d.ts.map +0 -1
  198. package/dist/services/registry.service.js +0 -74
  199. package/dist/services/registry.service.js.map +0 -1
  200. package/dist/services/registry.service.test.d.ts +0 -2
  201. package/dist/services/registry.service.test.d.ts.map +0 -1
  202. package/dist/services/registry.service.test.js +0 -222
  203. package/dist/services/registry.service.test.js.map +0 -1
  204. package/dist/types/config.types.d.ts +0 -177
  205. package/dist/types/config.types.d.ts.map +0 -1
  206. package/dist/types/config.types.js +0 -22
  207. package/dist/types/config.types.js.map +0 -1
  208. package/dist/types/lockfile.types.d.ts +0 -1
  209. package/dist/types/lockfile.types.d.ts.map +0 -1
  210. package/dist/types/lockfile.types.js +0 -2
  211. package/dist/types/lockfile.types.js.map +0 -1
  212. package/dist/types/registry.types.d.ts +0 -65
  213. package/dist/types/registry.types.d.ts.map +0 -1
  214. package/dist/types/registry.types.js +0 -2
  215. package/dist/types/registry.types.js.map +0 -1
  216. package/dist/utils/agent-parser.d.ts +0 -26
  217. package/dist/utils/agent-parser.d.ts.map +0 -1
  218. package/dist/utils/agent-parser.js +0 -45
  219. package/dist/utils/agent-parser.js.map +0 -1
  220. package/dist/utils/agent-parser.test.d.ts +0 -2
  221. package/dist/utils/agent-parser.test.d.ts.map +0 -1
  222. package/dist/utils/agent-parser.test.js +0 -102
  223. package/dist/utils/agent-parser.test.js.map +0 -1
  224. package/dist/utils/config.d.ts +0 -21
  225. package/dist/utils/config.d.ts.map +0 -1
  226. package/dist/utils/config.js +0 -99
  227. package/dist/utils/config.js.map +0 -1
  228. package/dist/utils/config.test.d.ts +0 -2
  229. package/dist/utils/config.test.d.ts.map +0 -1
  230. package/dist/utils/config.test.js +0 -214
  231. package/dist/utils/config.test.js.map +0 -1
  232. package/dist/utils/lockfile.d.ts +0 -1
  233. package/dist/utils/lockfile.d.ts.map +0 -1
  234. package/dist/utils/lockfile.js +0 -2
  235. package/dist/utils/lockfile.js.map +0 -1
  236. package/dist/utils/lockfile.test.d.ts +0 -1
  237. package/dist/utils/lockfile.test.d.ts.map +0 -1
  238. package/dist/utils/lockfile.test.js +0 -7
  239. package/dist/utils/lockfile.test.js.map +0 -1
  240. package/dist/utils/version.d.ts +0 -10
  241. package/dist/utils/version.d.ts.map +0 -1
  242. package/dist/utils/version.js +0 -33
  243. package/dist/utils/version.js.map +0 -1
  244. package/dist/utils/version.test.d.ts +0 -2
  245. package/dist/utils/version.test.d.ts.map +0 -1
  246. package/dist/utils/version.test.js +0 -30
  247. package/dist/utils/version.test.js.map +0 -1
@@ -1,170 +0,0 @@
1
- name: Publish Package
2
-
3
- on:
4
- push:
5
- branches: [master, main]
6
- paths:
7
- - "package.json"
8
- workflow_dispatch:
9
-
10
- permissions:
11
- contents: write
12
- id-token: write
13
-
14
- env:
15
- NODE_VERSION: "20"
16
-
17
- jobs:
18
- detect-changes:
19
- name: 🔍 Detect Version Changes
20
- runs-on: ubuntu-latest
21
- outputs:
22
- should-publish: ${{ steps.detect.outputs.should-publish }}
23
- name: ${{ steps.detect.outputs.name }}
24
- version: ${{ steps.detect.outputs.version }}
25
-
26
- steps:
27
- - name: 📥 Checkout code
28
- uses: actions/checkout@v6
29
-
30
- - name: 🔧 Setup Node.js
31
- uses: actions/setup-node@v6
32
- with:
33
- node-version: ${{ env.NODE_VERSION }}
34
- cache: "npm"
35
-
36
- - name: 📦 Install dependencies
37
- run: npm ci
38
-
39
- - name: 🔍 Detect version changes
40
- id: detect
41
- run: |
42
- name=$(node -p "require('./package.json').name")
43
- version=$(node -p "require('./package.json').version")
44
- private=$(node -p "require('./package.json').private || false")
45
-
46
- echo "name=${name}" >> $GITHUB_OUTPUT
47
- echo "version=${version}" >> $GITHUB_OUTPUT
48
-
49
- # Skip if private
50
- if [ "$private" = "true" ]; then
51
- echo "should-publish=false" >> $GITHUB_OUTPUT
52
- echo "ℹ️ Package is private, skipping publish"
53
- exit 0
54
- fi
55
-
56
- echo "📦 Checking ${name}@${version}..."
57
-
58
- # Check if this version exists on npm
59
- if npm view "${name}@${version}" version 2>/dev/null; then
60
- echo "should-publish=false" >> $GITHUB_OUTPUT
61
- echo "⏭️ Version ${version} already published for ${name}"
62
- else
63
- echo "should-publish=true" >> $GITHUB_OUTPUT
64
- echo "✨ New version detected: ${name}@${version}"
65
- fi
66
-
67
- verify:
68
- name: ✅ Verify Package
69
- needs: [detect-changes]
70
- if: needs.detect-changes.outputs.should-publish == 'true'
71
- runs-on: ubuntu-latest
72
-
73
- steps:
74
- - name: 📥 Checkout code
75
- uses: actions/checkout@v6
76
-
77
- - name: 🔧 Setup Node.js
78
- uses: actions/setup-node@v6
79
- with:
80
- node-version: ${{ env.NODE_VERSION }}
81
- cache: "npm"
82
-
83
- - name: 📦 Install dependencies
84
- run: npm ci
85
-
86
- - name: 🏗️ Build package
87
- run: npm run build
88
-
89
- - name: 🧪 Run tests
90
- run: npm test
91
-
92
- - name: 🔍 Run linting
93
- run: npm run lint
94
-
95
- - name: ✅ Verification passed
96
- run: |
97
- echo "✅ ${{ needs.detect-changes.outputs.name }}@${{ needs.detect-changes.outputs.version }} verified successfully" >> $GITHUB_STEP_SUMMARY
98
-
99
- publish:
100
- name: 📤 Publish Package
101
- needs: [detect-changes, verify]
102
- if: needs.detect-changes.outputs.should-publish == 'true' && needs.verify.result == 'success'
103
- runs-on: ubuntu-latest
104
-
105
- steps:
106
- - name: 📥 Checkout code
107
- uses: actions/checkout@v6
108
-
109
- - name: 🔧 Setup Node.js
110
- uses: actions/setup-node@v6
111
- with:
112
- node-version: ${{ env.NODE_VERSION }}
113
- cache: "npm"
114
- registry-url: "https://registry.npmjs.org"
115
-
116
- - name: 📦 Install dependencies
117
- run: npm ci
118
-
119
- - name: 🏗️ Build package
120
- run: npm run build
121
-
122
- - name: 📤 Publish to npm
123
- env:
124
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
125
- run: |
126
- echo "📤 Publishing ${{ needs.detect-changes.outputs.name }}@${{ needs.detect-changes.outputs.version }}"
127
- npm publish --access public --provenance
128
-
129
- - name: 🏷️ Create git tag
130
- run: |
131
- git config --global user.name "github-actions[bot]"
132
- git config --global user.email "github-actions[bot]@users.noreply.github.com"
133
-
134
- TAG_NAME="v${{ needs.detect-changes.outputs.version }}"
135
-
136
- git tag -a "${TAG_NAME}" -m "Release ${{ needs.detect-changes.outputs.name }}@${{ needs.detect-changes.outputs.version }}"
137
- git push origin "${TAG_NAME}"
138
-
139
- - name: ✅ Published successfully
140
- run: |
141
- echo "🎉 Successfully published ${{ needs.detect-changes.outputs.name }}@${{ needs.detect-changes.outputs.version }}" >> $GITHUB_STEP_SUMMARY
142
- echo "📦 Package URL: https://www.npmjs.com/package/${{ needs.detect-changes.outputs.name }}/v/${{ needs.detect-changes.outputs.version }}" >> $GITHUB_STEP_SUMMARY
143
-
144
- summary:
145
- name: 📋 Publish Summary
146
- needs: [detect-changes, verify, publish]
147
- if: always()
148
- runs-on: ubuntu-latest
149
-
150
- steps:
151
- - name: 📊 Create summary
152
- run: |
153
- echo "## 📦 Package Publishing Summary" >> $GITHUB_STEP_SUMMARY
154
- echo "" >> $GITHUB_STEP_SUMMARY
155
-
156
- if [ "${{ needs.detect-changes.outputs.should-publish }}" != "true" ]; then
157
- echo "ℹ️ **No new version to publish**" >> $GITHUB_STEP_SUMMARY
158
- echo "" >> $GITHUB_STEP_SUMMARY
159
- echo "Version ${{ needs.detect-changes.outputs.version }} is already published or package is private." >> $GITHUB_STEP_SUMMARY
160
- elif [ "${{ needs.verify.result }}" != "success" ]; then
161
- echo "❌ **Verification failed - package not published**" >> $GITHUB_STEP_SUMMARY
162
- echo "" >> $GITHUB_STEP_SUMMARY
163
- echo "Please fix verification errors and try again." >> $GITHUB_STEP_SUMMARY
164
- elif [ "${{ needs.publish.result }}" == "success" ]; then
165
- echo "✅ **Package published successfully!**" >> $GITHUB_STEP_SUMMARY
166
- echo "" >> $GITHUB_STEP_SUMMARY
167
- echo "- **${{ needs.detect-changes.outputs.name }}** version ${{ needs.detect-changes.outputs.version }}" >> $GITHUB_STEP_SUMMARY
168
- else
169
- echo "⚠️ **Package failed to publish**" >> $GITHUB_STEP_SUMMARY
170
- fi
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=cli.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.test.d.ts","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":""}
package/dist/cli.test.js DELETED
@@ -1,67 +0,0 @@
1
- import { execSync } from 'child_process';
2
- import { existsSync, mkdirSync, rmSync } from 'fs';
3
- import { join } from 'path';
4
- const CLI_PATH = join(__dirname, 'cli.ts');
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
- });
14
- afterEach(() => {
15
- process.chdir('..');
16
- if (existsSync(testDir)) {
17
- rmSync(testDir, { recursive: true });
18
- }
19
- });
20
- test('CLI shows version', () => {
21
- const output = execSync(`tsx ${CLI_PATH} --version`, {
22
- encoding: 'utf-8',
23
- });
24
- expect(output.trim()).toMatch(/^\d+\.\d+\.\d+$/);
25
- });
26
- test('CLI shows help', () => {
27
- const output = execSync(`tsx ${CLI_PATH} --help`, {
28
- encoding: 'utf-8',
29
- });
30
- expect(output).toContain('AgentKit CLI');
31
- expect(output).toContain('init');
32
- expect(output).toContain('run');
33
- expect(output).toContain('list');
34
- expect(output).toContain('update');
35
- });
36
- test('init command creates agent folder and config', () => {
37
- const output = execSync(`tsx ${CLI_PATH} init test-agent`, {
38
- encoding: 'utf-8',
39
- });
40
- const expectedAgentPath = join('agents', 'test-agent.agent.md');
41
- const expectedConfigPath = 'agent.json';
42
- expect(output).toContain('✅ Created');
43
- expect(output).toContain('test-agent.agent.md');
44
- expect(output).toContain('agent.json');
45
- expect(existsSync(expectedAgentPath)).toBe(true);
46
- expect(existsSync(expectedConfigPath)).toBe(true);
47
- });
48
- test('run command requires agent file', () => {
49
- try {
50
- execSync(`tsx ${CLI_PATH} run my-agent "hello"`, {
51
- encoding: 'utf-8',
52
- });
53
- fail('Should have thrown an error');
54
- }
55
- catch (error) {
56
- const err = error;
57
- expect(err.stderr || err.stdout || err.message).toContain('Failed');
58
- }
59
- });
60
- test('list command runs successfully', () => {
61
- const output = execSync(`tsx ${CLI_PATH} list`, {
62
- encoding: 'utf-8',
63
- });
64
- expect(output.includes('No agents found') || output.includes('Available Agents')).toBe(true);
65
- });
66
- });
67
- //# sourceMappingURL=cli.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- export interface AgentConfig {
2
- paths: string[];
3
- }
4
- export interface InitOptions {
5
- global?: boolean;
6
- }
7
- export declare const initCommand: (name?: string, options?: InitOptions) => Promise<void>;
8
- //# sourceMappingURL=init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAOD,eAAO,MAAM,WAAW,GACtB,OAAO,MAAM,EACb,UAAU,WAAW,KACpB,OAAO,CAAC,IAAI,CAmCd,CAAC"}
@@ -1,39 +0,0 @@
1
- import { mkdir, writeFile } from 'fs/promises';
2
- import { homedir } from 'os';
3
- import { join } from 'path';
4
- const sampleAgentTemplate = `---
5
- name: {{name}}
6
- description: An AI assistant agent
7
- argument-hint: Describe what you want help with
8
- tools: []
9
- handoffs: []
10
- ---
11
- You are a helpful AI assistant.
12
-
13
- Respond clearly and concisely to user requests.
14
- `;
15
- const getGlobalDir = () => join(homedir(), '.agentage');
16
- export const initCommand = async (name, options) => {
17
- const agentName = name || 'my-agent';
18
- const isGlobal = options?.global ?? false;
19
- const baseDir = isGlobal ? getGlobalDir() : '.';
20
- const agentsDir = join(baseDir, 'agents');
21
- const agentFilePath = join(agentsDir, `${agentName}.agent.md`);
22
- const configFilePath = join(baseDir, 'agent.json');
23
- const agentContent = sampleAgentTemplate.replace(/{{name}}/g, agentName);
24
- const agentConfig = {
25
- paths: ['agents/'],
26
- };
27
- try {
28
- await mkdir(agentsDir, { recursive: true });
29
- await writeFile(agentFilePath, agentContent, 'utf-8');
30
- console.log(`✅ Created ${agentFilePath}`);
31
- await writeFile(configFilePath, JSON.stringify(agentConfig, null, 2), 'utf-8');
32
- console.log(`✅ Created ${configFilePath}`);
33
- }
34
- catch (error) {
35
- console.error(`❌ Failed: ${error.message}`);
36
- process.exit(1);
37
- }
38
- };
39
- //# sourceMappingURL=init.js.map
@@ -1 +0,0 @@
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,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,mBAAmB,GAAG;;;;;;;;;;CAU3B,CAAC;AAaF,MAAM,YAAY,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,IAAa,EACb,OAAqB,EACN,EAAE;IACjB,MAAM,SAAS,GAAG,IAAI,IAAI,UAAU,CAAC;IACrC,MAAM,QAAQ,GAAG,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC;IAG1C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,WAAW,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEnD,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEzE,MAAM,WAAW,GAAgB;QAC/B,KAAK,EAAE,CAAC,SAAS,CAAC;KACnB,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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=init.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.test.d.ts","sourceRoot":"","sources":["../../src/commands/init.test.ts"],"names":[],"mappings":""}
@@ -1,79 +0,0 @@
1
- import { existsSync, mkdirSync, readFileSync, rmSync } from 'fs';
2
- import { homedir } from 'os';
3
- import { join } from 'path';
4
- import { initCommand } from './init.js';
5
- describe('initCommand', () => {
6
- const testDir = 'test-init-workspace';
7
- const globalDir = join(homedir(), '.agentage');
8
- beforeEach(() => {
9
- if (existsSync(testDir)) {
10
- rmSync(testDir, { recursive: true });
11
- }
12
- mkdirSync(testDir);
13
- process.chdir(testDir);
14
- });
15
- afterEach(() => {
16
- process.chdir('..');
17
- if (existsSync(testDir)) {
18
- rmSync(testDir, { recursive: true });
19
- }
20
- });
21
- test('creates agent.json in current directory and agents folder with default name', async () => {
22
- await initCommand();
23
- const agentFilePath = join('agents', 'my-agent.agent.md');
24
- const configFilePath = 'agent.json';
25
- expect(existsSync('agents')).toBe(true);
26
- expect(existsSync(agentFilePath)).toBe(true);
27
- expect(existsSync(configFilePath)).toBe(true);
28
- const agentContent = readFileSync(agentFilePath, 'utf-8');
29
- expect(agentContent).toContain('name: my-agent');
30
- expect(agentContent).toContain('You are a helpful AI assistant');
31
- const configContent = JSON.parse(readFileSync(configFilePath, 'utf-8'));
32
- expect(configContent.paths).toEqual(['agents/']);
33
- });
34
- test('creates agent file with custom name', async () => {
35
- await initCommand('custom-agent');
36
- const agentFilePath = join('agents', 'custom-agent.agent.md');
37
- expect(existsSync('agents')).toBe(true);
38
- expect(existsSync(agentFilePath)).toBe(true);
39
- const agentContent = readFileSync(agentFilePath, 'utf-8');
40
- expect(agentContent).toContain('name: custom-agent');
41
- });
42
- test('creates agent.json config with path property', async () => {
43
- await initCommand('test-agent');
44
- const configFilePath = 'agent.json';
45
- expect(existsSync(configFilePath)).toBe(true);
46
- const configContent = JSON.parse(readFileSync(configFilePath, 'utf-8'));
47
- expect(configContent).toEqual({ paths: ['agents/'] });
48
- });
49
- test('handles errors gracefully', async () => {
50
- const mockExit = jest.spyOn(process, 'exit').mockImplementation(() => {
51
- throw new Error('process.exit called');
52
- });
53
- const consoleError = jest.spyOn(console, 'error').mockImplementation();
54
- const originalWriteFile = require('fs/promises').writeFile;
55
- jest
56
- .spyOn(require('fs/promises'), 'writeFile')
57
- .mockRejectedValue(new Error('Write failed'));
58
- await expect(initCommand('test')).rejects.toThrow('process.exit called');
59
- expect(consoleError).toHaveBeenCalledWith(expect.stringContaining('❌ Failed: Write failed'));
60
- expect(mockExit).toHaveBeenCalledWith(1);
61
- require('fs/promises').writeFile = originalWriteFile;
62
- mockExit.mockRestore();
63
- consoleError.mockRestore();
64
- });
65
- test('creates agent in global directory with --global flag', async () => {
66
- await initCommand('global-agent', { global: true });
67
- const globalAgentFilePath = join(globalDir, 'agents', 'global-agent.agent.md');
68
- const globalConfigFilePath = join(globalDir, 'agent.json');
69
- expect(existsSync(join(globalDir, 'agents'))).toBe(true);
70
- expect(existsSync(globalAgentFilePath)).toBe(true);
71
- expect(existsSync(globalConfigFilePath)).toBe(true);
72
- const agentContent = readFileSync(globalAgentFilePath, 'utf-8');
73
- expect(agentContent).toContain('name: global-agent');
74
- const configContent = JSON.parse(readFileSync(globalConfigFilePath, 'utf-8'));
75
- expect(configContent.paths).toEqual(['agents/']);
76
- rmSync(globalAgentFilePath);
77
- });
78
- });
79
- //# sourceMappingURL=init.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/commands/init.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- interface InstallOptions {
2
- global?: boolean;
3
- local?: boolean;
4
- force?: boolean;
5
- }
6
- export declare const installCommand: (identifier: string, options?: InstallOptions) => Promise<void>;
7
- export {};
8
- //# sourceMappingURL=install.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAYA,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAyBD,eAAO,MAAM,cAAc,GACzB,YAAY,MAAM,EAClB,UAAS,cAAmB,KAC3B,OAAO,CAAC,IAAI,CAwFd,CAAC"}
@@ -1,90 +0,0 @@
1
- import chalk from 'chalk';
2
- import { existsSync } from 'fs';
3
- import { access, mkdir, writeFile } from 'fs/promises';
4
- import { homedir } from 'os';
5
- import { join } from 'path';
6
- import { getAgent, getAgentVersion, RegistryApiError, } from '../services/registry.service.js';
7
- import { parseAgentIdentifier } from '../utils/agent-parser.js';
8
- const getInstallDir = async (options) => {
9
- if (options.global) {
10
- return join(homedir(), '.agentage', 'agents');
11
- }
12
- if (options.local) {
13
- return 'agents';
14
- }
15
- if (existsSync('agent.json')) {
16
- return 'agents';
17
- }
18
- return join(homedir(), '.agentage', 'agents');
19
- };
20
- export const installCommand = async (identifier, options = {}) => {
21
- try {
22
- const { owner, name, version } = parseAgentIdentifier(identifier);
23
- if (!owner || !name) {
24
- console.error(chalk.red('❌ Invalid format.'));
25
- console.log('Use:', chalk.cyan('agent install owner/name'), 'or', chalk.cyan('agent install owner/name@version'));
26
- process.exit(1);
27
- }
28
- const versionLabel = version ? `@${version}` : '';
29
- console.log(chalk.cyan(`📥 Installing ${owner}/${name}${versionLabel}...`));
30
- let content;
31
- let installedVersion;
32
- if (version) {
33
- const versionData = await getAgentVersion(owner, name, version);
34
- if (!versionData.content) {
35
- console.error(chalk.red('❌ Version content not available.'));
36
- process.exit(1);
37
- }
38
- content = versionData.content;
39
- installedVersion = version;
40
- }
41
- else {
42
- const agent = await getAgent(owner, name);
43
- content = agent.latestContent;
44
- installedVersion = agent.latestVersion;
45
- }
46
- const installDir = await getInstallDir(options);
47
- const fileName = `${name}.agent.md`;
48
- const filePath = join(installDir, fileName);
49
- if (!options.force) {
50
- let fileExists = false;
51
- try {
52
- await access(filePath);
53
- fileExists = true;
54
- }
55
- catch {
56
- }
57
- if (fileExists) {
58
- console.error(chalk.red(`❌ Agent already exists at ${filePath}`));
59
- console.log(chalk.gray(' Use --force to overwrite.'));
60
- process.exit(1);
61
- }
62
- }
63
- await mkdir(installDir, { recursive: true });
64
- await writeFile(filePath, content, 'utf-8');
65
- console.log();
66
- console.log(chalk.green(`✅ Installed ${owner}/${name}@${installedVersion}`));
67
- console.log(chalk.gray(` Location: ${filePath}`));
68
- console.log(chalk.gray(` Run with: agent run ${name}`));
69
- console.log();
70
- }
71
- catch (error) {
72
- if (error instanceof RegistryApiError) {
73
- if (error.statusCode === 404) {
74
- console.error(chalk.red(`❌ Agent not found: ${identifier}`));
75
- }
76
- else if (error.statusCode === 403) {
77
- console.error(chalk.red('❌ Access denied. This agent may be private.'));
78
- console.log('Run', chalk.cyan('agent login'), 'to authenticate.');
79
- }
80
- else {
81
- console.error(chalk.red(`❌ ${error.message}`));
82
- }
83
- }
84
- else {
85
- console.error(chalk.red(`❌ Failed: ${error.message}`));
86
- }
87
- process.exit(1);
88
- }
89
- };
90
- //# sourceMappingURL=install.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EACL,QAAQ,EACR,eAAe,EACf,gBAAgB,GACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAWhE,MAAM,aAAa,GAAG,KAAK,EAAE,OAAuB,EAAmB,EAAE;IACvE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAGD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AAChD,CAAC,CAAC;AAKF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,UAAkB,EAClB,UAA0B,EAAE,EACb,EAAE;IACjB,IAAI,CAAC;QAEH,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CACT,MAAM,EACN,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,EACtC,IAAI,EACJ,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAC/C,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,KAAK,IAAI,IAAI,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC;QAG5E,IAAI,OAAe,CAAC;QACpB,IAAI,gBAAwB,CAAC;QAE7B,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;YAC9B,gBAAgB,GAAG,OAAO,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1C,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC;YAC9B,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAC;QACzC,CAAC;QAGD,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,GAAG,IAAI,WAAW,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAG5C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACvB,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;YAET,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC,CAAC;gBAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAGD,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAG5C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,eAAe,KAAK,IAAI,IAAI,IAAI,gBAAgB,EAAE,CAAC,CAChE,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC,CAAC;YAC/D,CAAC;iBAAM,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBACpC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CACzD,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAc,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=install.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.test.d.ts","sourceRoot":"","sources":["../../src/commands/install.test.ts"],"names":[],"mappings":""}