@chozzz/vargos 3.1.4 → 3.2.1

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 (300) hide show
  1. package/CONTRIBUTING.md +2 -3
  2. package/README.md +25 -34
  3. package/dist/.templates/agent/skills/skill-creator/SKILL.md +204 -32
  4. package/dist/.templates/workspace/AGENTS.md +32 -0
  5. package/dist/boot.d.ts +5 -0
  6. package/dist/boot.d.ts.map +1 -1
  7. package/dist/boot.js +62 -87
  8. package/dist/boot.js.map +1 -1
  9. package/dist/cli/channels.d.ts +11 -17
  10. package/dist/cli/channels.d.ts.map +1 -1
  11. package/dist/cli/channels.js +25 -76
  12. package/dist/cli/channels.js.map +1 -1
  13. package/dist/cli/chat.d.ts +6 -0
  14. package/dist/cli/chat.d.ts.map +1 -0
  15. package/dist/cli/chat.js +49 -0
  16. package/dist/cli/chat.js.map +1 -0
  17. package/dist/cli/onboard.d.ts.map +1 -1
  18. package/dist/cli/onboard.js +2 -8
  19. package/dist/cli/onboard.js.map +1 -1
  20. package/dist/cli.d.ts +9 -7
  21. package/dist/cli.d.ts.map +1 -1
  22. package/dist/cli.js +206 -264
  23. package/dist/cli.js.map +1 -1
  24. package/dist/core/bus.d.ts +32 -0
  25. package/dist/core/bus.d.ts.map +1 -0
  26. package/dist/core/bus.js +133 -0
  27. package/dist/core/bus.js.map +1 -0
  28. package/dist/core/cli.d.ts +38 -0
  29. package/dist/core/cli.d.ts.map +1 -0
  30. package/dist/core/cli.js +199 -0
  31. package/dist/core/cli.js.map +1 -0
  32. package/dist/core/errors.d.ts +21 -0
  33. package/dist/core/errors.d.ts.map +1 -0
  34. package/dist/core/errors.js +30 -0
  35. package/dist/core/errors.js.map +1 -0
  36. package/dist/core/loader.d.ts +31 -0
  37. package/dist/core/loader.d.ts.map +1 -0
  38. package/dist/core/loader.js +73 -0
  39. package/dist/core/loader.js.map +1 -0
  40. package/dist/core/local.d.ts +12 -0
  41. package/dist/core/local.d.ts.map +1 -0
  42. package/dist/core/local.js +23 -0
  43. package/dist/core/local.js.map +1 -0
  44. package/dist/core/rpc-server.d.ts +11 -0
  45. package/dist/core/rpc-server.d.ts.map +1 -0
  46. package/dist/core/rpc-server.js +69 -0
  47. package/dist/core/rpc-server.js.map +1 -0
  48. package/dist/core/services.d.ts +8 -0
  49. package/dist/core/services.d.ts.map +1 -0
  50. package/dist/core/services.js +33 -0
  51. package/dist/core/services.js.map +1 -0
  52. package/dist/core/types.d.ts +63 -0
  53. package/dist/core/types.d.ts.map +1 -0
  54. package/dist/core/types.js +2 -0
  55. package/dist/core/types.js.map +1 -0
  56. package/dist/edge/mcp/index.d.ts +11 -11
  57. package/dist/edge/mcp/index.d.ts.map +1 -1
  58. package/dist/edge/mcp/index.js +24 -28
  59. package/dist/edge/mcp/index.js.map +1 -1
  60. package/dist/edge/webhooks/index.d.ts +8 -14
  61. package/dist/edge/webhooks/index.d.ts.map +1 -1
  62. package/dist/edge/webhooks/index.js +140 -194
  63. package/dist/edge/webhooks/index.js.map +1 -1
  64. package/dist/lib/logger.d.ts +2 -3
  65. package/dist/lib/logger.d.ts.map +1 -1
  66. package/dist/lib/logger.js +1 -1
  67. package/dist/lib/logger.js.map +1 -1
  68. package/dist/lib/paginate.d.ts +5 -1
  69. package/dist/lib/paginate.d.ts.map +1 -1
  70. package/dist/lib/retry.js +1 -1
  71. package/dist/lib/retry.js.map +1 -1
  72. package/dist/lib/util.d.ts +16 -0
  73. package/dist/lib/util.d.ts.map +1 -0
  74. package/dist/lib/util.js +63 -0
  75. package/dist/lib/util.js.map +1 -0
  76. package/dist/scripts/verify-core.d.ts +8 -0
  77. package/dist/scripts/verify-core.d.ts.map +1 -0
  78. package/dist/scripts/verify-core.js +191 -0
  79. package/dist/scripts/verify-core.js.map +1 -0
  80. package/dist/services/agent/directives.d.ts +2 -0
  81. package/dist/services/agent/directives.d.ts.map +1 -1
  82. package/dist/services/agent/directives.js +16 -1
  83. package/dist/services/agent/directives.js.map +1 -1
  84. package/dist/services/agent/index.d.ts +34 -21
  85. package/dist/services/agent/index.d.ts.map +1 -1
  86. package/dist/services/agent/index.js +470 -468
  87. package/dist/services/agent/index.js.map +1 -1
  88. package/dist/services/agent/tools.d.ts +3 -3
  89. package/dist/services/agent/tools.d.ts.map +1 -1
  90. package/dist/services/agent/tools.js +11 -19
  91. package/dist/services/agent/tools.js.map +1 -1
  92. package/dist/services/agent/types.d.ts +1 -1
  93. package/dist/services/agent/types.d.ts.map +1 -1
  94. package/dist/services/{channels → channel}/base-adapter.d.ts +5 -6
  95. package/dist/services/channel/base-adapter.d.ts.map +1 -0
  96. package/dist/services/channel/base-adapter.js.map +1 -0
  97. package/dist/services/channel/debounce.d.ts.map +1 -0
  98. package/dist/services/channel/debounce.js.map +1 -0
  99. package/dist/services/channel/dedupe.d.ts.map +1 -0
  100. package/dist/services/channel/dedupe.js.map +1 -0
  101. package/dist/services/channel/delivery.d.ts.map +1 -0
  102. package/dist/services/{channels → channel}/delivery.js +1 -1
  103. package/dist/services/channel/delivery.js.map +1 -0
  104. package/dist/services/{channels → channel}/index.d.ts +14 -17
  105. package/dist/services/channel/index.d.ts.map +1 -0
  106. package/dist/services/channel/index.js +354 -0
  107. package/dist/services/channel/index.js.map +1 -0
  108. package/dist/services/channel/link-expand.d.ts.map +1 -0
  109. package/dist/services/channel/link-expand.js.map +1 -0
  110. package/dist/services/channel/media-paths.d.ts.map +1 -0
  111. package/dist/services/channel/media-paths.js.map +1 -0
  112. package/dist/services/{channels → channel}/pipeline.d.ts +1 -1
  113. package/dist/services/channel/pipeline.d.ts.map +1 -0
  114. package/dist/services/channel/pipeline.js.map +1 -0
  115. package/dist/services/channel/provider-loader.d.ts.map +1 -0
  116. package/dist/services/channel/provider-loader.js.map +1 -0
  117. package/dist/services/channel/providers/telegram/adapter.d.ts.map +1 -0
  118. package/dist/services/{channels → channel}/providers/telegram/adapter.js +1 -1
  119. package/dist/services/channel/providers/telegram/adapter.js.map +1 -0
  120. package/dist/services/channel/providers/telegram/index.d.ts.map +1 -0
  121. package/dist/services/channel/providers/telegram/index.js.map +1 -0
  122. package/dist/services/channel/providers/telegram/normalizer.d.ts.map +1 -0
  123. package/dist/services/channel/providers/telegram/normalizer.js.map +1 -0
  124. package/dist/services/channel/providers/telegram/types.d.ts.map +1 -0
  125. package/dist/services/channel/providers/telegram/types.js.map +1 -0
  126. package/dist/services/channel/providers/whatsapp/adapter.d.ts.map +1 -0
  127. package/dist/services/channel/providers/whatsapp/adapter.js.map +1 -0
  128. package/dist/services/channel/providers/whatsapp/index.d.ts.map +1 -0
  129. package/dist/services/channel/providers/whatsapp/index.js.map +1 -0
  130. package/dist/services/channel/providers/whatsapp/normalizer.d.ts.map +1 -0
  131. package/dist/services/channel/providers/whatsapp/normalizer.js.map +1 -0
  132. package/dist/services/channel/providers/whatsapp/session.d.ts.map +1 -0
  133. package/dist/services/channel/providers/whatsapp/session.js.map +1 -0
  134. package/dist/services/channel/providers/whatsapp/types.d.ts.map +1 -0
  135. package/dist/services/channel/providers/whatsapp/types.js.map +1 -0
  136. package/dist/services/channel/reconnect.d.ts.map +1 -0
  137. package/dist/services/channel/reconnect.js.map +1 -0
  138. package/dist/services/channel/status-reactions.d.ts.map +1 -0
  139. package/dist/services/channel/status-reactions.js.map +1 -0
  140. package/dist/services/{channels → channel}/types.d.ts +1 -1
  141. package/dist/services/channel/types.d.ts.map +1 -0
  142. package/dist/services/channel/types.js.map +1 -0
  143. package/dist/services/channel/typing-state.d.ts.map +1 -0
  144. package/dist/services/channel/typing-state.js.map +1 -0
  145. package/dist/services/config/index.d.ts +45 -46
  146. package/dist/services/config/index.d.ts.map +1 -1
  147. package/dist/services/config/index.js +89 -182
  148. package/dist/services/config/index.js.map +1 -1
  149. package/dist/services/config/schemas/cron.d.ts +3 -3
  150. package/dist/services/config/schemas/providers.d.ts +12 -12
  151. package/dist/services/config/schemas/webhooks.d.ts +2 -2
  152. package/dist/services/cron/index.d.ts +16 -19
  153. package/dist/services/cron/index.d.ts.map +1 -1
  154. package/dist/services/cron/index.js +340 -396
  155. package/dist/services/cron/index.js.map +1 -1
  156. package/dist/services/log/index.d.ts +9 -8
  157. package/dist/services/log/index.d.ts.map +1 -1
  158. package/dist/services/log/index.js +71 -123
  159. package/dist/services/log/index.js.map +1 -1
  160. package/dist/services/{mcp-client → mcp}/index.d.ts +9 -11
  161. package/dist/services/mcp/index.d.ts.map +1 -0
  162. package/dist/services/{mcp-client → mcp}/index.js +19 -35
  163. package/dist/services/mcp/index.js.map +1 -0
  164. package/dist/services/media/index.d.ts +9 -13
  165. package/dist/services/media/index.d.ts.map +1 -1
  166. package/dist/services/media/index.js +53 -105
  167. package/dist/services/media/index.js.map +1 -1
  168. package/dist/services/memory/index.d.ts +12 -18
  169. package/dist/services/memory/index.d.ts.map +1 -1
  170. package/dist/services/memory/index.js +70 -132
  171. package/dist/services/memory/index.js.map +1 -1
  172. package/dist/services/web/index.d.ts +7 -7
  173. package/dist/services/web/index.d.ts.map +1 -1
  174. package/dist/services/web/index.js +41 -86
  175. package/dist/services/web/index.js.map +1 -1
  176. package/package.json +3 -2
  177. package/dist/gateway/bus.d.ts +0 -50
  178. package/dist/gateway/bus.d.ts.map +0 -1
  179. package/dist/gateway/bus.js +0 -2
  180. package/dist/gateway/bus.js.map +0 -1
  181. package/dist/gateway/decorators.d.ts +0 -40
  182. package/dist/gateway/decorators.d.ts.map +0 -1
  183. package/dist/gateway/decorators.js +0 -43
  184. package/dist/gateway/decorators.js.map +0 -1
  185. package/dist/gateway/emitter.d.ts +0 -52
  186. package/dist/gateway/emitter.d.ts.map +0 -1
  187. package/dist/gateway/emitter.js +0 -304
  188. package/dist/gateway/emitter.js.map +0 -1
  189. package/dist/gateway/events.d.ts +0 -314
  190. package/dist/gateway/events.d.ts.map +0 -1
  191. package/dist/gateway/events.js +0 -7
  192. package/dist/gateway/events.js.map +0 -1
  193. package/dist/gateway/tcp-server.d.ts +0 -7
  194. package/dist/gateway/tcp-server.d.ts.map +0 -1
  195. package/dist/gateway/tcp-server.js +0 -118
  196. package/dist/gateway/tcp-server.js.map +0 -1
  197. package/dist/lib/id.d.ts +0 -3
  198. package/dist/lib/id.d.ts.map +0 -1
  199. package/dist/lib/id.js +0 -5
  200. package/dist/lib/id.js.map +0 -1
  201. package/dist/lib/sleep.d.ts +0 -6
  202. package/dist/lib/sleep.d.ts.map +0 -1
  203. package/dist/lib/sleep.js +0 -22
  204. package/dist/lib/sleep.js.map +0 -1
  205. package/dist/lib/strip-markdown.d.ts +0 -7
  206. package/dist/lib/strip-markdown.d.ts.map +0 -1
  207. package/dist/lib/strip-markdown.js +0 -32
  208. package/dist/lib/strip-markdown.js.map +0 -1
  209. package/dist/lib/timeout.d.ts +0 -6
  210. package/dist/lib/timeout.d.ts.map +0 -1
  211. package/dist/lib/timeout.js +0 -11
  212. package/dist/lib/timeout.js.map +0 -1
  213. package/dist/lib/truncate.d.ts +0 -11
  214. package/dist/lib/truncate.d.ts.map +0 -1
  215. package/dist/lib/truncate.js +0 -17
  216. package/dist/lib/truncate.js.map +0 -1
  217. package/dist/services/channels/base-adapter.d.ts.map +0 -1
  218. package/dist/services/channels/base-adapter.js.map +0 -1
  219. package/dist/services/channels/debounce.d.ts.map +0 -1
  220. package/dist/services/channels/debounce.js.map +0 -1
  221. package/dist/services/channels/dedupe.d.ts.map +0 -1
  222. package/dist/services/channels/dedupe.js.map +0 -1
  223. package/dist/services/channels/delivery.d.ts.map +0 -1
  224. package/dist/services/channels/delivery.js.map +0 -1
  225. package/dist/services/channels/index.d.ts.map +0 -1
  226. package/dist/services/channels/index.js +0 -413
  227. package/dist/services/channels/index.js.map +0 -1
  228. package/dist/services/channels/link-expand.d.ts.map +0 -1
  229. package/dist/services/channels/link-expand.js.map +0 -1
  230. package/dist/services/channels/media-paths.d.ts.map +0 -1
  231. package/dist/services/channels/media-paths.js.map +0 -1
  232. package/dist/services/channels/pipeline.d.ts.map +0 -1
  233. package/dist/services/channels/pipeline.js.map +0 -1
  234. package/dist/services/channels/provider-loader.d.ts.map +0 -1
  235. package/dist/services/channels/provider-loader.js.map +0 -1
  236. package/dist/services/channels/providers/telegram/adapter.d.ts.map +0 -1
  237. package/dist/services/channels/providers/telegram/adapter.js.map +0 -1
  238. package/dist/services/channels/providers/telegram/index.d.ts.map +0 -1
  239. package/dist/services/channels/providers/telegram/index.js.map +0 -1
  240. package/dist/services/channels/providers/telegram/normalizer.d.ts.map +0 -1
  241. package/dist/services/channels/providers/telegram/normalizer.js.map +0 -1
  242. package/dist/services/channels/providers/telegram/types.d.ts.map +0 -1
  243. package/dist/services/channels/providers/telegram/types.js.map +0 -1
  244. package/dist/services/channels/providers/whatsapp/adapter.d.ts.map +0 -1
  245. package/dist/services/channels/providers/whatsapp/adapter.js.map +0 -1
  246. package/dist/services/channels/providers/whatsapp/index.d.ts.map +0 -1
  247. package/dist/services/channels/providers/whatsapp/index.js.map +0 -1
  248. package/dist/services/channels/providers/whatsapp/normalizer.d.ts.map +0 -1
  249. package/dist/services/channels/providers/whatsapp/normalizer.js.map +0 -1
  250. package/dist/services/channels/providers/whatsapp/session.d.ts.map +0 -1
  251. package/dist/services/channels/providers/whatsapp/session.js.map +0 -1
  252. package/dist/services/channels/providers/whatsapp/types.d.ts.map +0 -1
  253. package/dist/services/channels/providers/whatsapp/types.js.map +0 -1
  254. package/dist/services/channels/reconnect.d.ts.map +0 -1
  255. package/dist/services/channels/reconnect.js.map +0 -1
  256. package/dist/services/channels/status-reactions.d.ts.map +0 -1
  257. package/dist/services/channels/status-reactions.js.map +0 -1
  258. package/dist/services/channels/types.d.ts.map +0 -1
  259. package/dist/services/channels/types.js.map +0 -1
  260. package/dist/services/channels/typing-state.d.ts.map +0 -1
  261. package/dist/services/channels/typing-state.js.map +0 -1
  262. package/dist/services/mcp-client/index.d.ts.map +0 -1
  263. package/dist/services/mcp-client/index.js.map +0 -1
  264. /package/dist/services/{channels → channel}/base-adapter.js +0 -0
  265. /package/dist/services/{channels → channel}/debounce.d.ts +0 -0
  266. /package/dist/services/{channels → channel}/debounce.js +0 -0
  267. /package/dist/services/{channels → channel}/dedupe.d.ts +0 -0
  268. /package/dist/services/{channels → channel}/dedupe.js +0 -0
  269. /package/dist/services/{channels → channel}/delivery.d.ts +0 -0
  270. /package/dist/services/{channels → channel}/link-expand.d.ts +0 -0
  271. /package/dist/services/{channels → channel}/link-expand.js +0 -0
  272. /package/dist/services/{channels → channel}/media-paths.d.ts +0 -0
  273. /package/dist/services/{channels → channel}/media-paths.js +0 -0
  274. /package/dist/services/{channels → channel}/pipeline.js +0 -0
  275. /package/dist/services/{channels → channel}/provider-loader.d.ts +0 -0
  276. /package/dist/services/{channels → channel}/provider-loader.js +0 -0
  277. /package/dist/services/{channels → channel}/providers/telegram/adapter.d.ts +0 -0
  278. /package/dist/services/{channels → channel}/providers/telegram/index.d.ts +0 -0
  279. /package/dist/services/{channels → channel}/providers/telegram/index.js +0 -0
  280. /package/dist/services/{channels → channel}/providers/telegram/normalizer.d.ts +0 -0
  281. /package/dist/services/{channels → channel}/providers/telegram/normalizer.js +0 -0
  282. /package/dist/services/{channels → channel}/providers/telegram/types.d.ts +0 -0
  283. /package/dist/services/{channels → channel}/providers/telegram/types.js +0 -0
  284. /package/dist/services/{channels → channel}/providers/whatsapp/adapter.d.ts +0 -0
  285. /package/dist/services/{channels → channel}/providers/whatsapp/adapter.js +0 -0
  286. /package/dist/services/{channels → channel}/providers/whatsapp/index.d.ts +0 -0
  287. /package/dist/services/{channels → channel}/providers/whatsapp/index.js +0 -0
  288. /package/dist/services/{channels → channel}/providers/whatsapp/normalizer.d.ts +0 -0
  289. /package/dist/services/{channels → channel}/providers/whatsapp/normalizer.js +0 -0
  290. /package/dist/services/{channels → channel}/providers/whatsapp/session.d.ts +0 -0
  291. /package/dist/services/{channels → channel}/providers/whatsapp/session.js +0 -0
  292. /package/dist/services/{channels → channel}/providers/whatsapp/types.d.ts +0 -0
  293. /package/dist/services/{channels → channel}/providers/whatsapp/types.js +0 -0
  294. /package/dist/services/{channels → channel}/reconnect.d.ts +0 -0
  295. /package/dist/services/{channels → channel}/reconnect.js +0 -0
  296. /package/dist/services/{channels → channel}/status-reactions.d.ts +0 -0
  297. /package/dist/services/{channels → channel}/status-reactions.js +0 -0
  298. /package/dist/services/{channels → channel}/types.js +0 -0
  299. /package/dist/services/{channels → channel}/typing-state.d.ts +0 -0
  300. /package/dist/services/{channels → channel}/typing-state.js +0 -0
package/dist/cli.js CHANGED
@@ -1,309 +1,251 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Vargos CLI — single entrypoint for npx @chozzz/vargos
3
+ * Vargos CLI — surface 1, a thin projection of the bus registry.
4
4
  *
5
- * vargos first-run onboard wizard, else → help
6
- * vargos start boot the gateway + all services
7
- * vargos onboard interactive setup (provider, model, API key, channels)
8
- * vargos config print current configuration
9
- * vargos --version print version
10
- * vargos --help print usage
5
+ * vargos <service> list that service's methods
6
+ * vargos <service> --help descriptions + arg shapes (from the registry)
7
+ * vargos <service> <method> [args] invoke service.method
8
+ *
9
+ * Connects to a running daemon on :9000 first and proxies over JSON-RPC; if the port
10
+ * is refused, boots a local stack with only the needed service(s), runs, and disposes.
11
+ *
12
+ * Built-in commands (not registry methods): start, onboard, chat, sync, migrate.
11
13
  */
12
14
  import { existsSync, readFileSync } from 'node:fs';
13
15
  import path from 'node:path';
14
16
  import { fileURLToPath } from 'node:url';
15
- import { CHANNEL_TYPES } from './services/config/schemas/channels.js';
16
17
  import { getDataPaths } from './lib/paths.js';
17
- // ── Runtime guard ────────────────────────────────────────────────────────────
18
- // Node >= 22.19.0 required by @earendil-works/pi-coding-agent (undici 8.x uses
19
- // worker_threads.markAsUncloneable, absent before Node 22).
20
- const MIN_NODE = [22, 19, 0];
18
+ import { parseCli, buildParams, renderList, renderHelp, RpcClient } from './core/cli.js';
19
+ import { bootLocal } from './core/local.js';
20
+ import { discoverServiceNames } from './core/services.js';
21
+ // ── Runtime guard (undici 8.x needs Node >= 22.19) ───────────────────────────────
22
+ const MIN_NODE = [22, 19];
21
23
  const v = process.versions.node.split('.').map(Number);
22
24
  if (v[0] < MIN_NODE[0] || (v[0] === MIN_NODE[0] && v[1] < MIN_NODE[1])) {
23
25
  process.stderr.write(`Vargos requires Node.js >= ${MIN_NODE.join('.')}. You are running ${process.versions.node}.\n`);
24
26
  process.exit(1);
25
27
  }
26
- // ── Helpers ──────────────────────────────────────────────────────────────────
27
- const __filename = fileURLToPath(import.meta.url);
28
- const __dirname = path.dirname(__filename);
29
- const pkgPath = existsSync(path.join(__dirname, 'package.json'))
30
- ? path.join(__dirname, 'package.json')
31
- : path.join(__dirname, '..', 'package.json');
28
+ const here = path.dirname(fileURLToPath(import.meta.url));
29
+ const ext = import.meta.url.endsWith('.ts') ? 'ts' : 'js';
30
+ const pkgPath = existsSync(path.join(here, 'package.json'))
31
+ ? path.join(here, 'package.json')
32
+ : path.join(here, '..', 'package.json');
32
33
  const VERSION = JSON.parse(readFileSync(pkgPath, 'utf8')).version;
33
- function usage() {
34
+ async function usage() {
34
35
  console.log(`
35
- ⚡ Vargos — Self-hosted agent OS
36
+ ⚡ Vargos — Self-hosted agent OS (v${VERSION})
36
37
 
37
38
  Usage:
38
- vargos First-run setup or show this help
39
- vargos start Boot the agent server (gateway + all services)
40
- vargos onboard Interactive setup wizard (provider, model, API key, channels)
41
- vargos config Show current configuration
42
- vargos channels Manage messaging channels (list, register, deregister, pair)
43
- vargos chat Start an interactive chat session with the agent
39
+ vargos start Boot the daemon (bus + all services + JSON-RPC :9000)
40
+ vargos <service> List a service's methods
41
+ vargos <service> --help Show methods, descriptions, and arg shapes
42
+ vargos <service> <method> … Invoke a method (e.g. vargos channel send <to> "<msg>")
44
43
 
45
- Options:
46
- --version, -v Show version
47
- --help, -h Show this help
48
- `);
44
+ Built-ins:
45
+ onboard Interactive setup wizard
46
+ chat Interactive chat session with the agent
47
+ sync Update bundled templates
48
+ migrate Run pending data migrations
49
+ --version, -v Show version
50
+ --help, -h Show this help`);
51
+ console.log(await renderServices());
52
+ console.log();
49
53
  }
50
- function showConfig() {
51
- const { configFile, dataDir } = getDataPaths();
52
- const agentDir = `${dataDir}/agent`;
53
- console.log(`Configuration directory: ${dataDir}\n`);
54
- const files = [
55
- { label: 'App config', path: configFile },
56
- { label: 'Agent models', path: `${agentDir}/models.json` },
57
- { label: 'Agent auth', path: `${agentDir}/auth.json` },
58
- { label: 'Agent settings', path: `${agentDir}/settings.json` },
59
- ];
60
- for (const { label, path: fp } of files) {
61
- const exists = existsSync(fp);
62
- console.log(` ${exists ? '✓' : '✗'} ${label}: ${fp}`);
63
- if (exists) {
64
- try {
65
- const content = readFileSync(fp, 'utf8');
66
- const truncated = content.length > 500
67
- ? content.slice(0, 500).replace(/"key":\s*"[^"]{4,}"/g, '"key": "***"') + '\n … (truncated)'
68
- : content.replace(/"key":\s*"[^"]{4,}"/g, '"key": "***"');
69
- console.log(` ${truncated.split('\n').join('\n ')}`);
54
+ /**
55
+ * Services section, derived from what's registered. With a daemon up, lists every
56
+ * service and its method names live from the registry; otherwise lists the known
57
+ * services from the static map (booting them all just to print help is too costly).
58
+ */
59
+ const OVERVIEW_METHOD_CAP = 6; // above this, summarize as a count to keep the overview scannable
60
+ async function renderServices() {
61
+ const { host, port } = gatewayAddress();
62
+ const client = new RpcClient(host, port);
63
+ if (await client.isUp()) {
64
+ const all = await client.call('bus.list', {});
65
+ const byService = new Map();
66
+ for (const m of all) {
67
+ if (m.internal)
68
+ continue; // hide plumbing (bus.list/has, agent.appendMessage)
69
+ const short = m.name.includes('.') ? m.name.slice(m.name.indexOf('.') + 1) : m.name;
70
+ (byService.get(m.service) ?? byService.set(m.service, []).get(m.service)).push(short);
71
+ }
72
+ const pad = Math.max(7, ...[...byService.keys()].map(s => s.length)) + 1;
73
+ const lines = [];
74
+ for (const [svc, methods] of byService) {
75
+ // Sub-namespaced methods (e.g. mcp.<server>.<tool>) → break down by server with counts.
76
+ if (methods.some(m => m.includes('.'))) {
77
+ const sub = new Map();
78
+ for (const m of methods) {
79
+ const server = m.includes('.') ? m.slice(0, m.indexOf('.')) : m;
80
+ sub.set(server, (sub.get(server) ?? 0) + 1);
81
+ }
82
+ const subpad = Math.max(...[...sub.keys()].map(s => s.length)) + 2;
83
+ lines.push(` ${svc}`);
84
+ for (const [server, n] of sub)
85
+ lines.push(` ${server.padEnd(subpad)}${n} tool${n === 1 ? '' : 's'}`);
86
+ }
87
+ else if (methods.length > OVERVIEW_METHOD_CAP) {
88
+ lines.push(` ${svc.padEnd(pad)}${methods.length} methods — run "vargos ${svc}"`);
70
89
  }
71
- catch {
72
- console.log(' (unable to read)');
90
+ else {
91
+ lines.push(` ${svc.padEnd(pad)}${methods.join(', ')}`);
73
92
  }
74
93
  }
75
- console.log();
94
+ return `\n Services (live — run "vargos <service> --help" for arg shapes):\n${lines.join('\n')}`;
76
95
  }
96
+ const names = discoverServiceNames(here, ext).join(', ');
97
+ return `\n Services (discovered in services/):\n ${names}\n\n Daemon not running — "vargos <service>" lists a service's methods; "vargos start" then "vargos --help" shows them all.`;
77
98
  }
78
- function isFirstRun() {
79
- const { configFile } = getDataPaths();
80
- return !existsSync(configFile);
81
- }
82
- // ── Arg dispatch ─────────────────────────────────────────────────────────────
83
- const cmd = process.argv[2];
84
- // --version / -v
85
- if (cmd === '--version' || cmd === '-v') {
86
- console.log(VERSION);
87
- process.exit(0);
88
- }
89
- // --help / -h
90
- if (cmd === '--help' || cmd === '-h') {
91
- usage();
92
- process.exit(0);
93
- }
94
- // config subcommand
95
- if (cmd === 'config') {
96
- showConfig();
97
- process.exit(0);
98
- }
99
- // onboard subcommand
100
- if (cmd === 'onboard') {
101
- const { onboard } = await import('./cli/onboard.js');
102
- await onboard();
103
- process.exit(0);
104
- }
105
- // start subcommand
106
- if (cmd === 'start') {
99
+ /** Gateway address from config.json, mirroring boot defaults. */
100
+ function gatewayAddress() {
101
+ let gw = {};
107
102
  try {
108
- // Run the supervisor (index.js), which spawns boot.js as a child.
109
- // The supervisor keeps the event loop alive while the child runs.
110
- await import('./index.js');
111
- // Once services are booted, wait forever (TCP server keeps event loop alive)
112
- await new Promise(() => { });
103
+ const cfg = JSON.parse(readFileSync(getDataPaths().configFile, 'utf8'));
104
+ gw = cfg.gateway ?? {};
113
105
  }
114
- catch (err) {
115
- console.error('Failed to start Vargos:', err);
116
- process.exit(1);
117
- }
118
- }
119
- // migrate subcommand — run pending data migrations (also runs automatically on boot)
120
- if (cmd === 'migrate') {
121
- const { runMigrations } = await import('./lib/migrate.js');
122
- await runMigrations(console, { dryRun: process.argv.includes('--dry-run') });
123
- process.exit(0);
106
+ catch { /* no config yet */ }
107
+ return {
108
+ host: gw.host ?? process.env.BUS_HOST ?? '127.0.0.1',
109
+ port: gw.port ?? (process.env.BUS_PORT ? parseInt(process.env.BUS_PORT, 10) : 9000),
110
+ };
124
111
  }
125
- // sync subcommand — interactively update overridable templates (AGENTS.md) from the bundle
126
- if (cmd === 'sync') {
127
- const p = await import('@clack/prompts');
128
- const { collectTemplateConflicts, overrideTemplates } = await import('./lib/templates.js');
129
- const conflicts = await collectTemplateConflicts();
130
- if (conflicts.length === 0) {
131
- p.log.success('Templates are up to date — nothing to override.');
132
- process.exit(0);
133
- }
134
- const selected = await p.multiselect({
135
- message: 'These bundled templates have changed. Select which to overwrite (your local copy will be replaced):',
136
- options: conflicts.map(c => ({ value: c.rel, label: c.rel })),
137
- required: false,
138
- });
139
- if (p.isCancel(selected)) {
140
- p.cancel('Cancelled — nothing changed.');
141
- process.exit(0);
142
- }
143
- const chosen = conflicts.filter(c => selected.includes(c.rel));
144
- await overrideTemplates(chosen);
145
- p.log.success(chosen.length ? `Updated ${chosen.length} file(s).` : 'Nothing selected.');
146
- process.exit(0);
112
+ function print(result) {
113
+ if (result === null || result === undefined)
114
+ console.log('(no result)');
115
+ else if (typeof result === 'string')
116
+ console.log(result);
117
+ else
118
+ console.log(JSON.stringify(result, null, 2));
147
119
  }
148
- // chat subcommand
149
- if (cmd === 'chat') {
150
- // Seed data dir first (replaces tsx scripts/seed.ts)
151
- const paths = getDataPaths();
152
- const { createLogger } = await import('./lib/logger.js');
153
- const log = createLogger('seed');
154
- await (await import('./lib/templates.js')).seedDataDir(log);
155
- // Then run pi CLI with environment variables
156
- const { execSync } = await import('node:child_process');
157
- const dataDir = paths.dataDir;
158
- const agentDir = `${dataDir}/agent`;
159
- // Find pi CLI via node_modules (required for global npm installs)
160
- let piCliPath = 'pi';
161
- try {
162
- // Search for pi package in node_modules up the tree
163
- let searchDir = __dirname;
164
- while (searchDir !== '/') {
165
- const piPath = path.join(searchDir, 'node_modules', '@earendil-works', 'pi-coding-agent', 'dist', 'cli.js');
166
- if (existsSync(piPath)) {
167
- piCliPath = piPath;
168
- break;
169
- }
170
- searchDir = path.dirname(searchDir);
120
+ // ── Built-in commands ────────────────────────────────────────────────────────────
121
+ async function runBuiltin(cmd) {
122
+ switch (cmd) {
123
+ case '--version':
124
+ case '-v':
125
+ console.log(VERSION);
126
+ return true;
127
+ case '--help':
128
+ case '-h':
129
+ usage();
130
+ return true;
131
+ case 'start':
132
+ await import('./index.js');
133
+ await new Promise(() => { }); // TCP server keeps the loop alive
134
+ return true;
135
+ case 'onboard': {
136
+ const { onboard } = await import('./cli/onboard.js');
137
+ await onboard();
138
+ return true;
171
139
  }
172
- }
173
- catch {
174
- // fallback to 'pi' command
175
- }
176
- // Ensure pi-mcp-adapter is installed to the Vargos agent directory
177
- try {
178
- const settingsPath = path.join(agentDir, 'settings.json');
179
- const settingsContent = existsSync(settingsPath)
180
- ? JSON.parse(readFileSync(settingsPath, 'utf8'))
181
- : {};
182
- const packages = settingsContent.packages ?? [];
183
- if (!packages.includes('npm:pi-mcp-adapter')) {
184
- // Auto-install pi-mcp-adapter silently
185
- try {
186
- execSync(`node "${piCliPath}" install npm:pi-mcp-adapter`, {
187
- stdio: 'pipe',
188
- env: {
189
- ...process.env,
190
- PI_CODING_AGENT_DIR: agentDir,
191
- },
192
- });
140
+ case 'migrate': {
141
+ const { runMigrations } = await import('./lib/migrate.js');
142
+ await runMigrations(console, { dryRun: process.argv.includes('--dry-run') });
143
+ return true;
144
+ }
145
+ case 'sync': {
146
+ const p = await import('@clack/prompts');
147
+ const { collectTemplateConflicts, overrideTemplates } = await import('./lib/templates.js');
148
+ const conflicts = await collectTemplateConflicts();
149
+ if (conflicts.length === 0) {
150
+ p.log.success('Templates are up to date.');
151
+ return true;
193
152
  }
194
- catch {
195
- // Silently ignore MCP setup failure chat still works without it
153
+ const selected = await p.multiselect({
154
+ message: 'These bundled templates changed. Select which to overwrite:',
155
+ options: conflicts.map(c => ({ value: c.rel, label: c.rel })),
156
+ required: false,
157
+ });
158
+ if (p.isCancel(selected)) {
159
+ p.cancel('Cancelled.');
160
+ return true;
196
161
  }
162
+ const chosen = conflicts.filter(c => selected.includes(c.rel));
163
+ await overrideTemplates(chosen);
164
+ p.log.success(chosen.length ? `Updated ${chosen.length} file(s).` : 'Nothing selected.');
165
+ return true;
197
166
  }
167
+ case 'chat': {
168
+ await import('./cli/chat.js').then(m => m.chat());
169
+ return true;
170
+ }
171
+ default:
172
+ return false;
198
173
  }
199
- catch {
200
- // Skip MCP setup if there's any issue
201
- }
202
- execSync(`node "${piCliPath}" --session-dir "${dataDir}/sessions/cli"`, {
203
- stdio: 'inherit',
204
- env: {
205
- ...process.env,
206
- PI_CODING_AGENT_DIR: agentDir,
207
- VARGOS_DATA_DIR: dataDir,
208
- },
209
- });
210
174
  }
211
- // channels subcommand
212
- if (cmd === 'channels') {
213
- const sub = process.argv[3];
214
- const { listChannels, registerChannel, deregisterChannel, pairWhatsApp } = await import('./cli/channels.js');
215
- if (sub === 'list' || !sub) {
216
- const channels = listChannels();
217
- if (channels.length === 0) {
218
- console.log('No channels configured.\n');
219
- console.log(' vargos channels register whatsapp <id>');
220
- console.log(' vargos channels register telegram <id> --bot-token <token>');
221
- }
222
- else {
223
- console.log('Channels:\n');
224
- for (const ch of channels) {
225
- const status = ch.type === 'whatsapp'
226
- ? (ch.registered ? '✅ paired' : '⚠ not paired')
227
- : '✅ configured';
228
- const tokenHint = ch.botToken ? ` (key: ${ch.botToken.slice(0, 8)}…)` : '';
229
- console.log(` ${ch.id} [${ch.type}] ${status}${tokenHint}`);
230
- }
231
- console.log('');
232
- }
233
- process.exit(0);
175
+ // ── Registry-driven dispatch (the three-surface projection) ───────────────────────
176
+ async function dispatch(parsed) {
177
+ const service = parsed.service === 'channels' ? 'channel' : parsed.service; // friendly alias
178
+ const { host, port } = gatewayAddress();
179
+ const client = new RpcClient(host, port);
180
+ const daemonUp = await client.isUp();
181
+ let infos;
182
+ let invoke;
183
+ let cleanup = async () => { };
184
+ if (daemonUp) {
185
+ infos = await client.call('bus.list', { service });
186
+ invoke = (m, p) => client.call(m, p);
234
187
  }
235
- if (sub === 'register') {
236
- const type = process.argv[4];
237
- const id = process.argv[5];
238
- if (!type || !id || !CHANNEL_TYPES.includes(type)) {
239
- console.log(`Usage: vargos channels register <${CHANNEL_TYPES.join('|')}> <id> [--bot-token <token>]`);
240
- process.exit(1);
241
- }
242
- try {
243
- const tgBotKey = type === 'telegram'
244
- ? process.argv[process.argv.indexOf('--bot-token') + 1]
245
- : undefined;
246
- if (type === 'telegram' && !tgBotKey) {
247
- console.log('Telegram requires --bot-token <token>');
248
- process.exit(1);
249
- }
250
- registerChannel({ id, type, botToken: tgBotKey });
251
- console.log(`✅ Channel "${id}" registered.`);
252
- if (type === 'whatsapp') {
253
- console.log(` Run "vargos channels pair whatsapp ${id}" to scan the QR code.`);
254
- }
255
- }
256
- catch (err) {
257
- console.error(`❌ ${err instanceof Error ? err.message : err}`);
258
- process.exit(1);
259
- }
260
- process.exit(0);
188
+ else {
189
+ const stack = await bootLocal([service], here, ext);
190
+ infos = stack.bus.list(service);
191
+ invoke = (m, p) => stack.bus.call(m, p);
192
+ cleanup = stack.dispose;
261
193
  }
262
- if (sub === 'deregister') {
263
- const id = process.argv[4];
264
- if (!id) {
265
- console.log('Usage: vargos channels deregister <id>');
266
- process.exit(1);
267
- }
268
- try {
269
- deregisterChannel(id);
270
- console.log(`✅ Channel "${id}" removed.`);
271
- }
272
- catch (err) {
273
- console.error(`❌ ${err instanceof Error ? err.message : err}`);
274
- process.exit(1);
194
+ try {
195
+ if (infos.length === 0) {
196
+ console.error(`Unknown service "${service}". Run "vargos --help".`);
197
+ return 1;
275
198
  }
276
- process.exit(0);
277
- }
278
- if (sub === 'pair') {
279
- const type = process.argv[4];
280
- const id = process.argv[5];
281
- if (type !== 'whatsapp' || !id) {
282
- console.log('Usage: vargos channels pair whatsapp <id>');
283
- process.exit(1);
199
+ // Listings hide internal plumbing; an explicitly-named internal method still runs.
200
+ const visible = infos.filter(i => !i.internal);
201
+ if (!parsed.method) {
202
+ console.log(parsed.help ? renderHelp(service, visible) : renderList(service, visible));
203
+ return 0;
284
204
  }
285
- console.log('Scan the QR code with WhatsApp → Linked Devices\n');
286
- try {
287
- await pairWhatsApp(id);
205
+ const fullName = `${service}.${parsed.method}`;
206
+ const info = infos.find(i => i.name === fullName);
207
+ if (!info) {
208
+ console.error(`Unknown method "${parsed.method}".\n\n${renderList(service, visible)}`);
209
+ return 1;
288
210
  }
289
- catch (err) {
290
- console.error(`❌ ${err instanceof Error ? err.message : err}`);
291
- process.exit(1);
211
+ if (parsed.help) {
212
+ console.log(renderHelp(service, [info]));
213
+ return 0;
292
214
  }
293
- process.exit(0);
215
+ const params = buildParams(info, parsed.args);
216
+ print(await invoke(fullName, params));
217
+ return 0;
218
+ }
219
+ catch (err) {
220
+ console.error(`❌ ${err instanceof Error ? err.message : String(err)}`);
221
+ return 1;
222
+ }
223
+ finally {
224
+ await cleanup();
294
225
  }
295
- console.log('Usage: vargos channels [list|register|deregister|pair]');
296
- process.exit(1);
297
226
  }
298
- // No command — first-run or help
299
- if (isFirstRun()) {
300
- console.log(' ⚡ Vargos v' + VERSION + ' — First run detected.\n');
301
- const { onboard } = await import('./cli/onboard.js');
302
- await onboard();
303
- console.log('\n Next: run vargos start to boot the server.\n');
227
+ // ── Entry ─────────────────────────────────────────────────────────────────────────
228
+ const argv = process.argv.slice(2);
229
+ const parsed = parseCli(argv);
230
+ if (!parsed.service) {
231
+ if (parsed.help || argv.includes('--help') || argv.includes('-h')) {
232
+ await usage();
233
+ process.exit(0);
234
+ }
235
+ if (!existsSync(getDataPaths().configFile)) {
236
+ console.log(` ⚡ Vargos v${VERSION} — first run.\n`);
237
+ const { onboard } = await import('./cli/onboard.js');
238
+ await onboard();
239
+ console.log('\n Next: run "vargos start" to boot the daemon.\n');
240
+ }
241
+ else {
242
+ await usage();
243
+ }
244
+ process.exit(0);
304
245
  }
305
- else {
306
- usage();
246
+ if (parsed.reserved) {
247
+ const handled = await runBuiltin(parsed.service);
248
+ process.exit(handled ? 0 : 1);
307
249
  }
308
- process.exit(0);
250
+ process.exit(await dispatch(parsed));
309
251
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The Bus — the single owner of the method registry and the only wrapper for all
3
+ * services. `register`/`unregister`/`call`/`emit`/`on` and the registry projection
4
+ * consumed by all three surfaces (CLI, agent tools, JSON-RPC) live here.
5
+ *
6
+ * Two distinct concepts, deliberately not conflated:
7
+ * - Methods (registry): register / call. Validated by zod. Surfaced everywhere.
8
+ * - Events (pub/sub): emit / on. Unvalidated broadcast. emit with no listeners
9
+ * is a silent no-op.
10
+ */
11
+ import type { Bus, Handler, MethodInfo, MethodOptions } from './types.js';
12
+ export declare class EmitterBus implements Bus {
13
+ private readonly registry;
14
+ private readonly ee;
15
+ private readonly wiring;
16
+ /** Set by the loader around a service's init() so register/on attribute correctly. */
17
+ private loadingService;
18
+ constructor();
19
+ beginLoading(service: string): void;
20
+ endLoading(): void;
21
+ /** Release everything the bus wired for a service (methods + event listeners). */
22
+ releaseService(service: string): void;
23
+ register(name: string, opts: MethodOptions, handler: Handler): () => void;
24
+ unregister(name: string): boolean;
25
+ has(name: string): boolean;
26
+ call<T = unknown>(name: string, params?: unknown): Promise<T>;
27
+ list(service?: string): MethodInfo[];
28
+ emit(event: string, payload?: unknown): void;
29
+ on<T = unknown>(event: string, handler: (payload: T) => void): () => void;
30
+ private registerIntrospection;
31
+ }
32
+ //# sourceMappingURL=bus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bus.d.ts","sourceRoot":"","sources":["../../core/bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AASzF,qBAAa,UAAW,YAAW,GAAG;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAsB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,sFAAsF;IACtF,OAAO,CAAC,cAAc,CAAuB;;IAY7C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKnC,UAAU,IAAI,IAAI;IAIlB,kFAAkF;IAClF,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAUrC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,IAAI;IAUzE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIpB,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAQnE,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE;IAkBpC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAI5C,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAUzE,OAAO,CAAC,qBAAqB;CAiB9B"}