@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
@@ -0,0 +1,50 @@
1
+ import { existsSync, readdirSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { logDebug, logInfo, logWarn } from '../daemon/logger.js';
4
+ const getAllFiles = (dir) => {
5
+ const results = [];
6
+ if (!existsSync(dir)) {
7
+ logWarn(`Discovery dir does not exist: ${dir}`);
8
+ return results;
9
+ }
10
+ const entries = readdirSync(dir, { withFileTypes: true });
11
+ for (const entry of entries) {
12
+ const fullPath = join(dir, entry.name);
13
+ if (entry.isDirectory()) {
14
+ results.push(...getAllFiles(fullPath));
15
+ }
16
+ else {
17
+ results.push(fullPath);
18
+ }
19
+ }
20
+ return results;
21
+ };
22
+ export const scanAgents = async (dirs, factories) => {
23
+ const agents = [];
24
+ const seen = new Set();
25
+ for (const dir of dirs) {
26
+ const expandedDir = dir.replace(/^~/, process.env['HOME'] || '~');
27
+ logDebug(`Scanning directory: ${expandedDir}`);
28
+ const files = getAllFiles(expandedDir);
29
+ for (const file of files) {
30
+ for (const factory of factories) {
31
+ try {
32
+ const agent = await factory(file);
33
+ if (agent && !seen.has(agent.manifest.name)) {
34
+ agents.push(agent);
35
+ seen.add(agent.manifest.name);
36
+ logDebug(`Discovered agent: ${agent.manifest.name} from ${file}`);
37
+ break;
38
+ }
39
+ }
40
+ catch (err) {
41
+ const message = err instanceof Error ? err.message : String(err);
42
+ logWarn(`Factory error on ${file}: ${message}`);
43
+ }
44
+ }
45
+ }
46
+ }
47
+ logInfo(`Scan complete: ${agents.length} agent(s) found`);
48
+ return agents;
49
+ };
50
+ //# sourceMappingURL=scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../src/discovery/scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEjE,MAAM,WAAW,GAAG,CAAC,GAAW,EAAY,EAAE;IAC5C,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,IAAc,EAAE,SAAyB,EAAoB,EAAE;IAC9F,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;QAClE,QAAQ,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,MAAM,OAAO,IAAI,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;oBAClC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC5C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACnB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBAC9B,QAAQ,CAAC,qBAAqB,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,IAAI,EAAE,CAAC,CAAC;wBAClE,MAAM;oBACR,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAY,EAAE,CAAC;oBACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACjE,OAAO,CAAC,oBAAoB,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,kBAAkB,MAAM,CAAC,MAAM,iBAAiB,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export declare const version: string;
2
- export declare const greet: () => string;
1
+ export { loadConfig, saveConfig, getConfigDir } from './daemon/config.js';
2
+ export type { DaemonConfig, SyncEvents } from './daemon/config.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,OAAO,EAAE,MAA4B,CAAC;AAEnD,eAAO,MAAM,KAAK,QAAO,MAAoC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC1E,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -1,9 +1,2 @@
1
- import { readFileSync } from 'fs';
2
- import { dirname, join } from 'path';
3
- import { fileURLToPath } from 'url';
4
- const __dirname = dirname(fileURLToPath(import.meta.url));
5
- const packageJsonPath = join(__dirname, '..', 'package.json');
6
- const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
7
- export const version = packageJson.version;
8
- export const greet = () => 'Hello from AgentKit CLI!';
1
+ export { loadConfig, saveConfig, getConfigDir } from './daemon/config.js';
9
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAEpE,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAW,WAAW,CAAC,OAAO,CAAC;AAEnD,MAAM,CAAC,MAAM,KAAK,GAAG,GAAW,EAAE,CAAC,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { WebSocket } from 'ws';
2
+ export declare const get: <T>(path: string) => Promise<T>;
3
+ export declare const post: <T>(path: string, body?: unknown) => Promise<T>;
4
+ export declare const connectWs: (onMessage: (data: unknown) => void) => WebSocket;
5
+ //# sourceMappingURL=daemon-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-client.d.ts","sourceRoot":"","sources":["../../src/utils/daemon-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAa/B,eAAO,MAAM,GAAG,GAAU,CAAC,EAAE,MAAM,MAAM,KAAG,OAAO,CAAC,CAAC,CAOpD,CAAC;AAEF,eAAO,MAAM,IAAI,GAAU,CAAC,EAAE,MAAM,MAAM,EAAE,OAAO,OAAO,KAAG,OAAO,CAAC,CAAC,CAWrE,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,WAAW,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,KAAG,SAW9D,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { WebSocket } from 'ws';
2
+ import { loadConfig } from '../daemon/config.js';
3
+ const getBaseUrl = () => {
4
+ const config = loadConfig();
5
+ return `http://localhost:${config.daemon.port}`;
6
+ };
7
+ const getWsUrl = () => {
8
+ const config = loadConfig();
9
+ return `ws://localhost:${config.daemon.port}/ws`;
10
+ };
11
+ export const get = async (path) => {
12
+ const response = await fetch(`${getBaseUrl()}${path}`);
13
+ if (!response.ok) {
14
+ const body = (await response.json().catch(() => ({})));
15
+ throw new Error(body.error || `Request failed: ${response.status}`);
16
+ }
17
+ return response.json();
18
+ };
19
+ export const post = async (path, body) => {
20
+ const response = await fetch(`${getBaseUrl()}${path}`, {
21
+ method: 'POST',
22
+ headers: { 'Content-Type': 'application/json' },
23
+ body: body ? JSON.stringify(body) : undefined,
24
+ });
25
+ if (!response.ok) {
26
+ const data = (await response.json().catch(() => ({})));
27
+ throw new Error(data.error || `Request failed: ${response.status}`);
28
+ }
29
+ return response.json();
30
+ };
31
+ export const connectWs = (onMessage) => {
32
+ const ws = new WebSocket(getWsUrl());
33
+ ws.on('message', (raw) => {
34
+ try {
35
+ const data = JSON.parse(String(raw));
36
+ onMessage(data);
37
+ }
38
+ catch {
39
+ // Ignore malformed messages
40
+ }
41
+ });
42
+ return ws;
43
+ };
44
+ //# sourceMappingURL=daemon-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-client.js","sourceRoot":"","sources":["../../src/utils/daemon-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,UAAU,GAAG,GAAW,EAAE;IAC9B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,oBAAoB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,GAAW,EAAE;IAC5B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,kBAAkB,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EAAK,IAAY,EAAc,EAAE;IACvD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAuB,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,mBAAmB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EAAK,IAAY,EAAE,IAAc,EAAc,EAAE;IACxE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,EAAE,GAAG,IAAI,EAAE,EAAE;QACrD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAuB,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,mBAAmB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;AACvC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,SAAkC,EAAa,EAAE;IACzE,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,IAAI,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,SAAS,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const ensureDaemon: () => Promise<void>;
2
+ //# sourceMappingURL=ensure-daemon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-daemon.d.ts","sourceRoot":"","sources":["../../src/utils/ensure-daemon.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,IAAI,CAGjD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { isDaemonRunning, startDaemon } from '../daemon/daemon.js';
2
+ export const ensureDaemon = async () => {
3
+ if (isDaemonRunning())
4
+ return;
5
+ await startDaemon();
6
+ };
7
+ //# sourceMappingURL=ensure-daemon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-daemon.js","sourceRoot":"","sources":["../../src/utils/ensure-daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEnE,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;IACpD,IAAI,eAAe,EAAE;QAAE,OAAO;IAC9B,MAAM,WAAW,EAAE,CAAC;AACtB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type RunEvent } from '@agentage/core';
2
+ export declare const renderEvent: (event: RunEvent) => void;
3
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/utils/render.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,eAAO,MAAM,WAAW,GAAI,OAAO,QAAQ,KAAG,IAqC7C,CAAC"}
@@ -0,0 +1,84 @@
1
+ import chalk from 'chalk';
2
+ export const renderEvent = (event) => {
3
+ const { data } = event;
4
+ if (data.type === 'output') {
5
+ renderOutput(data.content, data.format);
6
+ return;
7
+ }
8
+ if (data.type === 'state') {
9
+ if (data.state === 'completed') {
10
+ console.log(chalk.green('\nDone.'));
11
+ }
12
+ else if (data.state === 'failed') {
13
+ console.log(chalk.red(`\nFailed: ${data.message || 'Unknown error'}`));
14
+ }
15
+ else if (data.state === 'input_required') {
16
+ console.log(chalk.yellow('\nInput required.'));
17
+ }
18
+ return;
19
+ }
20
+ if (data.type === 'error') {
21
+ console.error(chalk.red(`Error [${data.code}]: ${data.message}`));
22
+ return;
23
+ }
24
+ if (data.type === 'input_required') {
25
+ console.log(chalk.yellow(`\n${data.prompt}`));
26
+ return;
27
+ }
28
+ if (data.type === 'result') {
29
+ if (data.output) {
30
+ console.log(typeof data.output === 'string' ? data.output : JSON.stringify(data.output, null, 2));
31
+ }
32
+ return;
33
+ }
34
+ };
35
+ const renderOutput = (content, format) => {
36
+ if (!format || format === 'text' || format === 'markdown') {
37
+ console.log(typeof content === 'string' ? content : JSON.stringify(content));
38
+ return;
39
+ }
40
+ if (format === 'llm.delta') {
41
+ const delta = content;
42
+ if (delta.text) {
43
+ process.stdout.write(delta.text);
44
+ }
45
+ return;
46
+ }
47
+ if (format === 'llm.thinking') {
48
+ const thinking = content;
49
+ if (thinking.text) {
50
+ process.stdout.write(chalk.dim(thinking.text));
51
+ }
52
+ return;
53
+ }
54
+ if (format === 'llm.tool_call') {
55
+ const call = content;
56
+ console.log(chalk.cyan(`> tool: ${call.name}(${JSON.stringify(call.input)})`));
57
+ return;
58
+ }
59
+ if (format === 'llm.tool_result') {
60
+ const result = content;
61
+ const text = typeof result.output === 'string' ? result.output : JSON.stringify(result.output);
62
+ const truncated = text.length > 200 ? text.slice(0, 200) + '...' : text;
63
+ console.log(chalk.gray(`< result: ${truncated}`));
64
+ return;
65
+ }
66
+ if (format === 'llm.usage') {
67
+ const usage = content;
68
+ console.log(chalk.gray(`Tokens: ${(usage.input ?? 0).toLocaleString()} in / ${(usage.output ?? 0).toLocaleString()} out`));
69
+ return;
70
+ }
71
+ if (format === 'progress') {
72
+ const progress = content;
73
+ const pct = progress.percent !== undefined ? `[${progress.percent}%] ` : '';
74
+ console.log(`${pct}${progress.message || ''}`);
75
+ return;
76
+ }
77
+ if (format === 'json') {
78
+ console.log(JSON.stringify(content, null, 2));
79
+ return;
80
+ }
81
+ // Unknown format
82
+ console.log(JSON.stringify(content));
83
+ };
84
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/utils/render.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,69 +1,59 @@
1
1
  {
2
2
  "name": "@agentage/cli",
3
- "version": "0.1.19",
4
- "description": "CLI tool for creating and running AI agents locally",
3
+ "version": "0.2.0",
4
+ "description": "Agentage CLI and daemon control plane for AI agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "bin": {
8
- "agent": "./dist/cli.js",
9
- "agentkit": "./dist/cli.js"
8
+ "agentage": "./dist/cli.js"
9
+ },
10
+ "files": ["dist"],
11
+ "engines": {
12
+ "node": ">=22.0.0",
13
+ "npm": ">=10.0.0"
10
14
  },
11
15
  "scripts": {
12
- "dev": "tsx src/cli.ts",
13
- "build": "tsc",
16
+ "build": "tsc -p tsconfig.build.json",
14
17
  "type-check": "tsc --noEmit",
15
- "lint": "eslint src --ext .ts",
16
- "lint:fix": "eslint src --ext .ts --fix",
17
- "test": "jest",
18
- "test:watch": "jest --watch",
19
- "test:coverage": "jest --coverage",
20
- "verify": "npm run type-check && npm run lint && npm run build && npm run test",
21
- "clean": "rm -rf dist coverage",
18
+ "lint": "eslint src",
19
+ "lint:fix": "eslint src --fix",
20
+ "format": "prettier --write \"src/**/*.ts\"",
21
+ "format:check": "prettier --check \"src/**/*.ts\"",
22
+ "test": "vitest run",
23
+ "test:watch": "vitest",
24
+ "test:coverage": "vitest run --coverage",
25
+ "clean": "rm -rf dist *.tsbuildinfo coverage",
26
+ "verify": "npm run type-check && npm run lint && npm run format:check && npm run test && npm run build",
22
27
  "prepublishOnly": "npm run verify"
23
28
  },
24
- "keywords": [
25
- "cli",
26
- "ai",
27
- "agent",
28
- "agentkit",
29
- "typescript"
30
- ],
31
- "author": "Agentage",
32
- "license": "MIT",
29
+ "dependencies": {
30
+ "@agentage/core": "^0.2.0",
31
+ "@agentage/platform": "^0.2.0",
32
+ "chalk": "latest",
33
+ "commander": "latest",
34
+ "express": "latest",
35
+ "gray-matter": "latest",
36
+ "jiti": "latest",
37
+ "open": "latest",
38
+ "ws": "latest"
39
+ },
40
+ "devDependencies": {
41
+ "@types/express": "latest",
42
+ "@types/node": "latest",
43
+ "@types/ws": "latest",
44
+ "@typescript-eslint/eslint-plugin": "latest",
45
+ "@typescript-eslint/parser": "latest",
46
+ "eslint": "latest",
47
+ "eslint-config-prettier": "latest",
48
+ "eslint-plugin-prettier": "latest",
49
+ "prettier": "latest",
50
+ "typescript": "latest",
51
+ "vitest": "latest",
52
+ "@vitest/coverage-v8": "latest"
53
+ },
33
54
  "repository": {
34
55
  "type": "git",
35
56
  "url": "https://github.com/agentage/cli.git"
36
57
  },
37
- "bugs": {
38
- "url": "https://github.com/agentage/cli/issues"
39
- },
40
- "homepage": "https://github.com/agentage/cli#readme",
41
- "engines": {
42
- "node": ">=20.0.0",
43
- "npm": ">=10.0.0"
44
- },
45
- "dependencies": {
46
- "chalk": "^5.6.2",
47
- "commander": "^14.0.2",
48
- "gray-matter": "^4.0.3",
49
- "inquirer": "^13.0.1",
50
- "js-yaml": "^4.1.0",
51
- "node-machine-id": "1.1.12",
52
- "open": "^11.0.0",
53
- "yaml": "^2.8.1",
54
- "zod": "3.25.76"
55
- },
56
- "devDependencies": {
57
- "@types/inquirer": "^9.0.9",
58
- "@types/jest": "^30.0.0",
59
- "@types/js-yaml": "^4.0.9",
60
- "@types/node": "^22.8.6",
61
- "@typescript-eslint/eslint-plugin": "^8.46.3",
62
- "@typescript-eslint/parser": "^8.46.3",
63
- "eslint": "^9.39.1",
64
- "jest": "^30.2.0",
65
- "ts-jest": "^29.4.5",
66
- "tsx": "^4.20.6",
67
- "typescript": "^5.9.3"
68
- }
58
+ "license": "MIT"
69
59
  }
@@ -1,126 +0,0 @@
1
- # AgentKit CLI - Development Instructions
2
-
3
- ## **Project Overview**
4
-
5
- - CLI tool for creating and running AI agents locally
6
- - TypeScript-based command-line interface
7
- - Commands: init, install, list, login, logout, publish, run, search, update, whoami
8
- - Published as `@agentage/cli` package
9
-
10
- ## **Project Agreements**
11
-
12
- - Default branch: `master`
13
- - Repository: `agentage/cli`
14
- - Branch names: `feature/*`, `bugfix/*`, `hotfix/*`, `setup-*`
15
- - Commits: `feat:`, `fix:`, `chore:` (max 72 chars)
16
- - Verifications: `npm run verify` (type-check + lint + build + test)
17
-
18
- ## **Publishing**
19
-
20
- - Published to npm as `@agentage/cli`
21
- - Auto-publish on push to `master` when `package.json` version is bumped.
22
-
23
- ## **Release Strategy**
24
-
25
- - 🎯 **MINIMAL FIRST**: Keep commands simple and focused
26
- - 🚫 **No Over-Engineering**: Single responsibility per command
27
- - ⚡ **Essential Only**: Core CLI functionality
28
-
29
- ## **Rules**
30
-
31
- - 📊 Use icons/tables for structured output
32
- - 📁 NO extra docs unless explicitly asked
33
- - 🐙 GitHub: owner `agentage`, repo `cli`
34
- - ⚡ Prefer function calls over terminal commands
35
- - 📂 Source code in `src/` directory
36
-
37
- ## **Coding Standards**
38
-
39
- ### TypeScript
40
-
41
- - 🚫 No `any` type - explicit types always
42
- - 📤 Named exports only (no default exports)
43
- - 📏 Files <300 lines, commands <200 lines
44
- - 🔄 Functional: arrow functions, async/await, destructuring
45
- - 🏗️ Interfaces over classes
46
- - ✅ ESM modules (`type: "module"`)
47
-
48
- ### Naming
49
-
50
- - **Interfaces**: `AgentConfig`, `RegistryAgent`, `LockfileEntry`
51
- - **Types**: `CommandOptions`, `ServiceConfig`
52
- - **Files**: `command.ts`, `service.ts`, `*.types.ts`, `*.test.ts`
53
-
54
- ## **Tech Stack**
55
-
56
- - **Language**: TypeScript 5.3+ (strict mode)
57
- - **Module**: ESNext with ESM
58
- - **Testing**: Jest 30+ with ts-jest
59
- - **Linting**: ESLint 9+ (flat config)
60
- - **Formatting**: Prettier
61
- - **Package Manager**: npm (workspaces)
62
-
63
- ## **Node Requirements**
64
-
65
- - Node.js >= 20.0.0
66
- - npm >= 10.0.0
67
-
68
- ## **CLI Patterns**
69
-
70
- **Command Structure**:
71
-
72
- ```typescript
73
- import { Command } from "commander";
74
-
75
- export const myCommand = new Command("name")
76
- .description("Command description")
77
- .option("-o, --option <value>", "Option description")
78
- .action(async (options) => {
79
- // Implementation
80
- });
81
- ```
82
-
83
- **Service Pattern**:
84
-
85
- ```typescript
86
- export const myService = {
87
- async doSomething(): Promise<Result> {
88
- // Implementation
89
- },
90
- };
91
- ```
92
-
93
- ## **Workspace Structure**
94
-
95
- ```
96
- src/
97
- cli.ts # Main CLI entry point
98
- index.ts # Package exports
99
- commands/ # CLI commands (init, run, install, etc.)
100
- services/ # Business logic (auth, registry)
101
- schemas/ # Zod validation schemas
102
- types/ # TypeScript type definitions
103
- utils/ # Utility functions
104
- ```
105
-
106
- ## **Scripts**
107
-
108
- All packages support:
109
-
110
- - `npm run build` - Build TypeScript
111
- - `npm run type-check` - TypeScript validation
112
- - `npm run lint` - ESLint check
113
- - `npm run lint:fix` - Auto-fix linting
114
- - `npm run test` - Run Jest tests
115
- - `npm run test:watch` - Watch mode
116
- - `npm run test:coverage` - Coverage report
117
- - `npm run verify` - All checks
118
- - `npm run clean` - Clean build artifacts
119
-
120
- ## **Quality Gates**
121
-
122
- - ✅ Type check must pass
123
- - ✅ Linting must pass (no warnings)
124
- - ✅ All tests must pass
125
- - ✅ Coverage >= 70% (branches, functions, lines, statements)
126
- - ✅ Build must succeed
@@ -1,41 +0,0 @@
1
- version: 2
2
- updates:
3
- # Enable version updates for npm
4
- - package-ecosystem: "npm"
5
- directory: "/"
6
- schedule:
7
- interval: "weekly"
8
- day: "monday"
9
- open-pull-requests-limit: 10
10
- groups:
11
- typescript:
12
- patterns:
13
- - "typescript"
14
- - "@typescript-eslint/*"
15
- - "ts-jest"
16
- - "tsx"
17
- testing:
18
- patterns:
19
- - "jest"
20
- - "@jest/*"
21
- - "@types/jest"
22
- linting:
23
- patterns:
24
- - "eslint"
25
- - "eslint-*"
26
- all-patch:
27
- update-types:
28
- - "patch"
29
- labels:
30
- - "dependencies"
31
- - "automated"
32
-
33
- # GitHub Actions
34
- - package-ecosystem: "github-actions"
35
- directory: "/"
36
- schedule:
37
- interval: "weekly"
38
- day: "monday"
39
- labels:
40
- - "dependencies"
41
- - "github-actions"
@@ -1,50 +0,0 @@
1
- name: CI
2
-
3
- on:
4
- push:
5
- branches: [main, master]
6
- pull_request:
7
- branches: [main, master]
8
-
9
- jobs:
10
- build-and-test:
11
- runs-on: ubuntu-latest
12
-
13
- strategy:
14
- matrix:
15
- node-version: [20.x, 22.x]
16
-
17
- steps:
18
- - uses: actions/checkout@v6
19
-
20
- - name: Use Node.js ${{ matrix.node-version }}
21
- uses: actions/setup-node@v4
22
- with:
23
- node-version: ${{ matrix.node-version }}
24
- cache: 'npm'
25
-
26
- - name: Install dependencies
27
- run: npm ci
28
-
29
- - name: Type check
30
- run: npm run type-check
31
-
32
- - name: Lint
33
- run: npm run lint
34
-
35
- - name: Build
36
- run: npm run build
37
-
38
- - name: Test
39
- run: npm test
40
-
41
- - name: Test coverage
42
- run: npm run test:coverage
43
-
44
- - name: Upload coverage reports
45
- uses: codecov/codecov-action@v5
46
- if: matrix.node-version == '20.x'
47
- with:
48
- token: ${{ secrets.CODECOV_TOKEN }}
49
- file: ./coverage/lcov.info
50
- fail_ci_if_error: false