@chozzz/vargos 3.1.5 → 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 (295) hide show
  1. package/CONTRIBUTING.md +2 -3
  2. package/README.md +25 -34
  3. package/dist/.templates/workspace/AGENTS.md +2 -2
  4. package/dist/boot.d.ts +5 -0
  5. package/dist/boot.d.ts.map +1 -1
  6. package/dist/boot.js +62 -87
  7. package/dist/boot.js.map +1 -1
  8. package/dist/cli/channels.d.ts +6 -23
  9. package/dist/cli/channels.d.ts.map +1 -1
  10. package/dist/cli/channels.js +15 -124
  11. package/dist/cli/channels.js.map +1 -1
  12. package/dist/cli/chat.d.ts +6 -0
  13. package/dist/cli/chat.d.ts.map +1 -0
  14. package/dist/cli/chat.js +49 -0
  15. package/dist/cli/chat.js.map +1 -0
  16. package/dist/cli/onboard.d.ts.map +1 -1
  17. package/dist/cli/onboard.js +2 -8
  18. package/dist/cli/onboard.js.map +1 -1
  19. package/dist/cli.d.ts +9 -7
  20. package/dist/cli.d.ts.map +1 -1
  21. package/dist/cli.js +207 -290
  22. package/dist/cli.js.map +1 -1
  23. package/dist/core/bus.d.ts +32 -0
  24. package/dist/core/bus.d.ts.map +1 -0
  25. package/dist/core/bus.js +133 -0
  26. package/dist/core/bus.js.map +1 -0
  27. package/dist/core/cli.d.ts +38 -0
  28. package/dist/core/cli.d.ts.map +1 -0
  29. package/dist/core/cli.js +199 -0
  30. package/dist/core/cli.js.map +1 -0
  31. package/dist/core/errors.d.ts +21 -0
  32. package/dist/core/errors.d.ts.map +1 -0
  33. package/dist/core/errors.js +30 -0
  34. package/dist/core/errors.js.map +1 -0
  35. package/dist/core/loader.d.ts +31 -0
  36. package/dist/core/loader.d.ts.map +1 -0
  37. package/dist/core/loader.js +73 -0
  38. package/dist/core/loader.js.map +1 -0
  39. package/dist/core/local.d.ts +12 -0
  40. package/dist/core/local.d.ts.map +1 -0
  41. package/dist/core/local.js +23 -0
  42. package/dist/core/local.js.map +1 -0
  43. package/dist/core/rpc-server.d.ts +11 -0
  44. package/dist/core/rpc-server.d.ts.map +1 -0
  45. package/dist/core/rpc-server.js +69 -0
  46. package/dist/core/rpc-server.js.map +1 -0
  47. package/dist/core/services.d.ts +8 -0
  48. package/dist/core/services.d.ts.map +1 -0
  49. package/dist/core/services.js +33 -0
  50. package/dist/core/services.js.map +1 -0
  51. package/dist/core/types.d.ts +63 -0
  52. package/dist/core/types.d.ts.map +1 -0
  53. package/dist/core/types.js +2 -0
  54. package/dist/core/types.js.map +1 -0
  55. package/dist/edge/mcp/index.d.ts +11 -11
  56. package/dist/edge/mcp/index.d.ts.map +1 -1
  57. package/dist/edge/mcp/index.js +24 -28
  58. package/dist/edge/mcp/index.js.map +1 -1
  59. package/dist/edge/webhooks/index.d.ts +8 -14
  60. package/dist/edge/webhooks/index.d.ts.map +1 -1
  61. package/dist/edge/webhooks/index.js +140 -194
  62. package/dist/edge/webhooks/index.js.map +1 -1
  63. package/dist/lib/logger.d.ts +2 -3
  64. package/dist/lib/logger.d.ts.map +1 -1
  65. package/dist/lib/logger.js +1 -1
  66. package/dist/lib/logger.js.map +1 -1
  67. package/dist/lib/paginate.d.ts +5 -1
  68. package/dist/lib/paginate.d.ts.map +1 -1
  69. package/dist/lib/retry.js +1 -1
  70. package/dist/lib/retry.js.map +1 -1
  71. package/dist/lib/util.d.ts +16 -0
  72. package/dist/lib/util.d.ts.map +1 -0
  73. package/dist/lib/util.js +63 -0
  74. package/dist/lib/util.js.map +1 -0
  75. package/dist/scripts/verify-core.d.ts +8 -0
  76. package/dist/scripts/verify-core.d.ts.map +1 -0
  77. package/dist/scripts/verify-core.js +191 -0
  78. package/dist/scripts/verify-core.js.map +1 -0
  79. package/dist/services/agent/index.d.ts +14 -18
  80. package/dist/services/agent/index.d.ts.map +1 -1
  81. package/dist/services/agent/index.js +469 -530
  82. package/dist/services/agent/index.js.map +1 -1
  83. package/dist/services/agent/tools.d.ts +3 -3
  84. package/dist/services/agent/tools.d.ts.map +1 -1
  85. package/dist/services/agent/tools.js +11 -19
  86. package/dist/services/agent/tools.js.map +1 -1
  87. package/dist/services/agent/types.d.ts +1 -1
  88. package/dist/services/agent/types.d.ts.map +1 -1
  89. package/dist/services/{channels → channel}/base-adapter.d.ts +5 -6
  90. package/dist/services/channel/base-adapter.d.ts.map +1 -0
  91. package/dist/services/channel/base-adapter.js.map +1 -0
  92. package/dist/services/channel/debounce.d.ts.map +1 -0
  93. package/dist/services/channel/debounce.js.map +1 -0
  94. package/dist/services/channel/dedupe.d.ts.map +1 -0
  95. package/dist/services/channel/dedupe.js.map +1 -0
  96. package/dist/services/channel/delivery.d.ts.map +1 -0
  97. package/dist/services/{channels → channel}/delivery.js +1 -1
  98. package/dist/services/channel/delivery.js.map +1 -0
  99. package/dist/services/{channels → channel}/index.d.ts +14 -17
  100. package/dist/services/channel/index.d.ts.map +1 -0
  101. package/dist/services/channel/index.js +354 -0
  102. package/dist/services/channel/index.js.map +1 -0
  103. package/dist/services/channel/link-expand.d.ts.map +1 -0
  104. package/dist/services/channel/link-expand.js.map +1 -0
  105. package/dist/services/channel/media-paths.d.ts.map +1 -0
  106. package/dist/services/channel/media-paths.js.map +1 -0
  107. package/dist/services/{channels → channel}/pipeline.d.ts +1 -1
  108. package/dist/services/channel/pipeline.d.ts.map +1 -0
  109. package/dist/services/channel/pipeline.js.map +1 -0
  110. package/dist/services/channel/provider-loader.d.ts.map +1 -0
  111. package/dist/services/channel/provider-loader.js.map +1 -0
  112. package/dist/services/channel/providers/telegram/adapter.d.ts.map +1 -0
  113. package/dist/services/{channels → channel}/providers/telegram/adapter.js +1 -1
  114. package/dist/services/channel/providers/telegram/adapter.js.map +1 -0
  115. package/dist/services/channel/providers/telegram/index.d.ts.map +1 -0
  116. package/dist/services/channel/providers/telegram/index.js.map +1 -0
  117. package/dist/services/channel/providers/telegram/normalizer.d.ts.map +1 -0
  118. package/dist/services/channel/providers/telegram/normalizer.js.map +1 -0
  119. package/dist/services/channel/providers/telegram/types.d.ts.map +1 -0
  120. package/dist/services/channel/providers/telegram/types.js.map +1 -0
  121. package/dist/services/channel/providers/whatsapp/adapter.d.ts.map +1 -0
  122. package/dist/services/channel/providers/whatsapp/adapter.js.map +1 -0
  123. package/dist/services/channel/providers/whatsapp/index.d.ts.map +1 -0
  124. package/dist/services/channel/providers/whatsapp/index.js.map +1 -0
  125. package/dist/services/channel/providers/whatsapp/normalizer.d.ts.map +1 -0
  126. package/dist/services/channel/providers/whatsapp/normalizer.js.map +1 -0
  127. package/dist/services/channel/providers/whatsapp/session.d.ts.map +1 -0
  128. package/dist/services/channel/providers/whatsapp/session.js.map +1 -0
  129. package/dist/services/channel/providers/whatsapp/types.d.ts.map +1 -0
  130. package/dist/services/channel/providers/whatsapp/types.js.map +1 -0
  131. package/dist/services/channel/reconnect.d.ts.map +1 -0
  132. package/dist/services/channel/reconnect.js.map +1 -0
  133. package/dist/services/channel/status-reactions.d.ts.map +1 -0
  134. package/dist/services/channel/status-reactions.js.map +1 -0
  135. package/dist/services/{channels → channel}/types.d.ts +1 -1
  136. package/dist/services/channel/types.d.ts.map +1 -0
  137. package/dist/services/channel/types.js.map +1 -0
  138. package/dist/services/channel/typing-state.d.ts.map +1 -0
  139. package/dist/services/channel/typing-state.js.map +1 -0
  140. package/dist/services/config/index.d.ts +45 -46
  141. package/dist/services/config/index.d.ts.map +1 -1
  142. package/dist/services/config/index.js +89 -182
  143. package/dist/services/config/index.js.map +1 -1
  144. package/dist/services/config/schemas/cron.d.ts +3 -3
  145. package/dist/services/config/schemas/providers.d.ts +12 -12
  146. package/dist/services/config/schemas/webhooks.d.ts +2 -2
  147. package/dist/services/cron/index.d.ts +16 -19
  148. package/dist/services/cron/index.d.ts.map +1 -1
  149. package/dist/services/cron/index.js +340 -396
  150. package/dist/services/cron/index.js.map +1 -1
  151. package/dist/services/log/index.d.ts +9 -8
  152. package/dist/services/log/index.d.ts.map +1 -1
  153. package/dist/services/log/index.js +71 -123
  154. package/dist/services/log/index.js.map +1 -1
  155. package/dist/services/{mcp-client → mcp}/index.d.ts +9 -11
  156. package/dist/services/mcp/index.d.ts.map +1 -0
  157. package/dist/services/{mcp-client → mcp}/index.js +19 -35
  158. package/dist/services/mcp/index.js.map +1 -0
  159. package/dist/services/media/index.d.ts +9 -13
  160. package/dist/services/media/index.d.ts.map +1 -1
  161. package/dist/services/media/index.js +53 -105
  162. package/dist/services/media/index.js.map +1 -1
  163. package/dist/services/memory/index.d.ts +12 -18
  164. package/dist/services/memory/index.d.ts.map +1 -1
  165. package/dist/services/memory/index.js +70 -132
  166. package/dist/services/memory/index.js.map +1 -1
  167. package/dist/services/web/index.d.ts +7 -7
  168. package/dist/services/web/index.d.ts.map +1 -1
  169. package/dist/services/web/index.js +41 -86
  170. package/dist/services/web/index.js.map +1 -1
  171. package/package.json +3 -2
  172. package/dist/gateway/bus.d.ts +0 -50
  173. package/dist/gateway/bus.d.ts.map +0 -1
  174. package/dist/gateway/bus.js +0 -2
  175. package/dist/gateway/bus.js.map +0 -1
  176. package/dist/gateway/decorators.d.ts +0 -40
  177. package/dist/gateway/decorators.d.ts.map +0 -1
  178. package/dist/gateway/decorators.js +0 -43
  179. package/dist/gateway/decorators.js.map +0 -1
  180. package/dist/gateway/emitter.d.ts +0 -52
  181. package/dist/gateway/emitter.d.ts.map +0 -1
  182. package/dist/gateway/emitter.js +0 -304
  183. package/dist/gateway/emitter.js.map +0 -1
  184. package/dist/gateway/events.d.ts +0 -329
  185. package/dist/gateway/events.d.ts.map +0 -1
  186. package/dist/gateway/events.js +0 -7
  187. package/dist/gateway/events.js.map +0 -1
  188. package/dist/gateway/tcp-server.d.ts +0 -7
  189. package/dist/gateway/tcp-server.d.ts.map +0 -1
  190. package/dist/gateway/tcp-server.js +0 -118
  191. package/dist/gateway/tcp-server.js.map +0 -1
  192. package/dist/lib/id.d.ts +0 -3
  193. package/dist/lib/id.d.ts.map +0 -1
  194. package/dist/lib/id.js +0 -5
  195. package/dist/lib/id.js.map +0 -1
  196. package/dist/lib/sleep.d.ts +0 -6
  197. package/dist/lib/sleep.d.ts.map +0 -1
  198. package/dist/lib/sleep.js +0 -22
  199. package/dist/lib/sleep.js.map +0 -1
  200. package/dist/lib/strip-markdown.d.ts +0 -7
  201. package/dist/lib/strip-markdown.d.ts.map +0 -1
  202. package/dist/lib/strip-markdown.js +0 -32
  203. package/dist/lib/strip-markdown.js.map +0 -1
  204. package/dist/lib/timeout.d.ts +0 -6
  205. package/dist/lib/timeout.d.ts.map +0 -1
  206. package/dist/lib/timeout.js +0 -11
  207. package/dist/lib/timeout.js.map +0 -1
  208. package/dist/lib/truncate.d.ts +0 -11
  209. package/dist/lib/truncate.d.ts.map +0 -1
  210. package/dist/lib/truncate.js +0 -17
  211. package/dist/lib/truncate.js.map +0 -1
  212. package/dist/services/channels/base-adapter.d.ts.map +0 -1
  213. package/dist/services/channels/base-adapter.js.map +0 -1
  214. package/dist/services/channels/debounce.d.ts.map +0 -1
  215. package/dist/services/channels/debounce.js.map +0 -1
  216. package/dist/services/channels/dedupe.d.ts.map +0 -1
  217. package/dist/services/channels/dedupe.js.map +0 -1
  218. package/dist/services/channels/delivery.d.ts.map +0 -1
  219. package/dist/services/channels/delivery.js.map +0 -1
  220. package/dist/services/channels/index.d.ts.map +0 -1
  221. package/dist/services/channels/index.js +0 -413
  222. package/dist/services/channels/index.js.map +0 -1
  223. package/dist/services/channels/link-expand.d.ts.map +0 -1
  224. package/dist/services/channels/link-expand.js.map +0 -1
  225. package/dist/services/channels/media-paths.d.ts.map +0 -1
  226. package/dist/services/channels/media-paths.js.map +0 -1
  227. package/dist/services/channels/pipeline.d.ts.map +0 -1
  228. package/dist/services/channels/pipeline.js.map +0 -1
  229. package/dist/services/channels/provider-loader.d.ts.map +0 -1
  230. package/dist/services/channels/provider-loader.js.map +0 -1
  231. package/dist/services/channels/providers/telegram/adapter.d.ts.map +0 -1
  232. package/dist/services/channels/providers/telegram/adapter.js.map +0 -1
  233. package/dist/services/channels/providers/telegram/index.d.ts.map +0 -1
  234. package/dist/services/channels/providers/telegram/index.js.map +0 -1
  235. package/dist/services/channels/providers/telegram/normalizer.d.ts.map +0 -1
  236. package/dist/services/channels/providers/telegram/normalizer.js.map +0 -1
  237. package/dist/services/channels/providers/telegram/types.d.ts.map +0 -1
  238. package/dist/services/channels/providers/telegram/types.js.map +0 -1
  239. package/dist/services/channels/providers/whatsapp/adapter.d.ts.map +0 -1
  240. package/dist/services/channels/providers/whatsapp/adapter.js.map +0 -1
  241. package/dist/services/channels/providers/whatsapp/index.d.ts.map +0 -1
  242. package/dist/services/channels/providers/whatsapp/index.js.map +0 -1
  243. package/dist/services/channels/providers/whatsapp/normalizer.d.ts.map +0 -1
  244. package/dist/services/channels/providers/whatsapp/normalizer.js.map +0 -1
  245. package/dist/services/channels/providers/whatsapp/session.d.ts.map +0 -1
  246. package/dist/services/channels/providers/whatsapp/session.js.map +0 -1
  247. package/dist/services/channels/providers/whatsapp/types.d.ts.map +0 -1
  248. package/dist/services/channels/providers/whatsapp/types.js.map +0 -1
  249. package/dist/services/channels/reconnect.d.ts.map +0 -1
  250. package/dist/services/channels/reconnect.js.map +0 -1
  251. package/dist/services/channels/status-reactions.d.ts.map +0 -1
  252. package/dist/services/channels/status-reactions.js.map +0 -1
  253. package/dist/services/channels/types.d.ts.map +0 -1
  254. package/dist/services/channels/types.js.map +0 -1
  255. package/dist/services/channels/typing-state.d.ts.map +0 -1
  256. package/dist/services/channels/typing-state.js.map +0 -1
  257. package/dist/services/mcp-client/index.d.ts.map +0 -1
  258. package/dist/services/mcp-client/index.js.map +0 -1
  259. /package/dist/services/{channels → channel}/base-adapter.js +0 -0
  260. /package/dist/services/{channels → channel}/debounce.d.ts +0 -0
  261. /package/dist/services/{channels → channel}/debounce.js +0 -0
  262. /package/dist/services/{channels → channel}/dedupe.d.ts +0 -0
  263. /package/dist/services/{channels → channel}/dedupe.js +0 -0
  264. /package/dist/services/{channels → channel}/delivery.d.ts +0 -0
  265. /package/dist/services/{channels → channel}/link-expand.d.ts +0 -0
  266. /package/dist/services/{channels → channel}/link-expand.js +0 -0
  267. /package/dist/services/{channels → channel}/media-paths.d.ts +0 -0
  268. /package/dist/services/{channels → channel}/media-paths.js +0 -0
  269. /package/dist/services/{channels → channel}/pipeline.js +0 -0
  270. /package/dist/services/{channels → channel}/provider-loader.d.ts +0 -0
  271. /package/dist/services/{channels → channel}/provider-loader.js +0 -0
  272. /package/dist/services/{channels → channel}/providers/telegram/adapter.d.ts +0 -0
  273. /package/dist/services/{channels → channel}/providers/telegram/index.d.ts +0 -0
  274. /package/dist/services/{channels → channel}/providers/telegram/index.js +0 -0
  275. /package/dist/services/{channels → channel}/providers/telegram/normalizer.d.ts +0 -0
  276. /package/dist/services/{channels → channel}/providers/telegram/normalizer.js +0 -0
  277. /package/dist/services/{channels → channel}/providers/telegram/types.d.ts +0 -0
  278. /package/dist/services/{channels → channel}/providers/telegram/types.js +0 -0
  279. /package/dist/services/{channels → channel}/providers/whatsapp/adapter.d.ts +0 -0
  280. /package/dist/services/{channels → channel}/providers/whatsapp/adapter.js +0 -0
  281. /package/dist/services/{channels → channel}/providers/whatsapp/index.d.ts +0 -0
  282. /package/dist/services/{channels → channel}/providers/whatsapp/index.js +0 -0
  283. /package/dist/services/{channels → channel}/providers/whatsapp/normalizer.d.ts +0 -0
  284. /package/dist/services/{channels → channel}/providers/whatsapp/normalizer.js +0 -0
  285. /package/dist/services/{channels → channel}/providers/whatsapp/session.d.ts +0 -0
  286. /package/dist/services/{channels → channel}/providers/whatsapp/session.js +0 -0
  287. /package/dist/services/{channels → channel}/providers/whatsapp/types.d.ts +0 -0
  288. /package/dist/services/{channels → channel}/providers/whatsapp/types.js +0 -0
  289. /package/dist/services/{channels → channel}/reconnect.d.ts +0 -0
  290. /package/dist/services/{channels → channel}/reconnect.js +0 -0
  291. /package/dist/services/{channels → channel}/status-reactions.d.ts +0 -0
  292. /package/dist/services/{channels → channel}/status-reactions.js +0 -0
  293. /package/dist/services/{channels → channel}/types.js +0 -0
  294. /package/dist/services/{channels → channel}/typing-state.d.ts +0 -0
  295. /package/dist/services/{channels → channel}/typing-state.js +0 -0
package/dist/cli.js CHANGED
@@ -1,334 +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
- console.log(`
35
- ⚡ Vargos — Self-hosted agent OS
36
-
37
- 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, send)
43
- vargos chat Start an interactive chat session with the agent
44
-
45
- Options:
46
- --version, -v Show version
47
- --help, -h Show this help
48
- `);
49
- }
50
- function channelsUsage() {
34
+ async function usage() {
51
35
  console.log(`
52
- Manage messaging channels.
36
+ Vargos — Self-hosted agent OS (v${VERSION})
53
37
 
54
38
  Usage:
55
- vargos channels List channels (default)
56
- vargos channels list List channels
57
- vargos channels register telegram <id> --bot-token <token>
58
- Add a Telegram channel
59
- vargos channels register whatsapp <id> Add a WhatsApp channel, then pair via QR
60
- (re-run to re-pair an existing channel)
61
- vargos channels deregister <id> Remove a channel
62
- vargos channels send <sessionKey> <text...> Send a message via the running gateway
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>")
63
43
 
64
- Examples:
65
- vargos channels register telegram my-bot --bot-token 123:ABC
66
- vargos channels register whatsapp my-wa
67
- vargos channels send telegram-my-bot:-5004637094 "Deploy finished ✅"
68
- `);
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();
69
53
  }
70
- function showConfig() {
71
- const { configFile, dataDir } = getDataPaths();
72
- const agentDir = `${dataDir}/agent`;
73
- console.log(`Configuration directory: ${dataDir}\n`);
74
- const files = [
75
- { label: 'App config', path: configFile },
76
- { label: 'Agent models', path: `${agentDir}/models.json` },
77
- { label: 'Agent auth', path: `${agentDir}/auth.json` },
78
- { label: 'Agent settings', path: `${agentDir}/settings.json` },
79
- ];
80
- for (const { label, path: fp } of files) {
81
- const exists = existsSync(fp);
82
- console.log(` ${exists ? '✓' : '✗'} ${label}: ${fp}`);
83
- if (exists) {
84
- try {
85
- const content = readFileSync(fp, 'utf8');
86
- const truncated = content.length > 500
87
- ? content.slice(0, 500).replace(/"key":\s*"[^"]{4,}"/g, '"key": "***"') + '\n … (truncated)'
88
- : content.replace(/"key":\s*"[^"]{4,}"/g, '"key": "***"');
89
- 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'}`);
90
86
  }
91
- catch {
92
- console.log(' (unable to read)');
87
+ else if (methods.length > OVERVIEW_METHOD_CAP) {
88
+ lines.push(` ${svc.padEnd(pad)}${methods.length} methods — run "vargos ${svc}"`);
89
+ }
90
+ else {
91
+ lines.push(` ${svc.padEnd(pad)}${methods.join(', ')}`);
93
92
  }
94
93
  }
95
- console.log();
94
+ return `\n Services (live — run "vargos <service> --help" for arg shapes):\n${lines.join('\n')}`;
96
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.`;
97
98
  }
98
- function isFirstRun() {
99
- const { configFile } = getDataPaths();
100
- return !existsSync(configFile);
101
- }
102
- // ── Arg dispatch ─────────────────────────────────────────────────────────────
103
- const cmd = process.argv[2];
104
- // --version / -v
105
- if (cmd === '--version' || cmd === '-v') {
106
- console.log(VERSION);
107
- process.exit(0);
108
- }
109
- // --help / -h
110
- if (cmd === '--help' || cmd === '-h') {
111
- usage();
112
- process.exit(0);
113
- }
114
- // config subcommand
115
- if (cmd === 'config') {
116
- showConfig();
117
- process.exit(0);
118
- }
119
- // onboard subcommand
120
- if (cmd === 'onboard') {
121
- const { onboard } = await import('./cli/onboard.js');
122
- await onboard();
123
- process.exit(0);
124
- }
125
- // start subcommand
126
- if (cmd === 'start') {
99
+ /** Gateway address from config.json, mirroring boot defaults. */
100
+ function gatewayAddress() {
101
+ let gw = {};
127
102
  try {
128
- // Run the supervisor (index.js), which spawns boot.js as a child.
129
- // The supervisor keeps the event loop alive while the child runs.
130
- await import('./index.js');
131
- // Once services are booted, wait forever (TCP server keeps event loop alive)
132
- await new Promise(() => { });
133
- }
134
- catch (err) {
135
- console.error('Failed to start Vargos:', err);
136
- process.exit(1);
137
- }
138
- }
139
- // migrate subcommand — run pending data migrations (also runs automatically on boot)
140
- if (cmd === 'migrate') {
141
- const { runMigrations } = await import('./lib/migrate.js');
142
- await runMigrations(console, { dryRun: process.argv.includes('--dry-run') });
143
- process.exit(0);
144
- }
145
- // sync subcommand — interactively update overridable templates (AGENTS.md) from the bundle
146
- if (cmd === 'sync') {
147
- const p = await import('@clack/prompts');
148
- const { collectTemplateConflicts, overrideTemplates } = await import('./lib/templates.js');
149
- const conflicts = await collectTemplateConflicts();
150
- if (conflicts.length === 0) {
151
- p.log.success('Templates are up to date — nothing to override.');
152
- process.exit(0);
153
- }
154
- const selected = await p.multiselect({
155
- message: 'These bundled templates have changed. Select which to overwrite (your local copy will be replaced):',
156
- options: conflicts.map(c => ({ value: c.rel, label: c.rel })),
157
- required: false,
158
- });
159
- if (p.isCancel(selected)) {
160
- p.cancel('Cancelled — nothing changed.');
161
- process.exit(0);
103
+ const cfg = JSON.parse(readFileSync(getDataPaths().configFile, 'utf8'));
104
+ gw = cfg.gateway ?? {};
162
105
  }
163
- const chosen = conflicts.filter(c => selected.includes(c.rel));
164
- await overrideTemplates(chosen);
165
- p.log.success(chosen.length ? `Updated ${chosen.length} file(s).` : 'Nothing selected.');
166
- process.exit(0);
167
- }
168
- // chat subcommand
169
- if (cmd === 'chat') {
170
- // Seed data dir first (replaces tsx scripts/seed.ts)
171
- const paths = getDataPaths();
172
- const { createLogger } = await import('./lib/logger.js');
173
- const log = createLogger('seed');
174
- await (await import('./lib/templates.js')).seedDataDir(log);
175
- // Then run pi CLI with environment variables
176
- const { execSync } = await import('node:child_process');
177
- const dataDir = paths.dataDir;
178
- const agentDir = `${dataDir}/agent`;
179
- // Find pi CLI via node_modules (required for global npm installs)
180
- let piCliPath = 'pi';
181
- try {
182
- // Search for pi package in node_modules up the tree
183
- let searchDir = __dirname;
184
- while (searchDir !== '/') {
185
- const piPath = path.join(searchDir, 'node_modules', '@earendil-works', 'pi-coding-agent', 'dist', 'cli.js');
186
- if (existsSync(piPath)) {
187
- piCliPath = piPath;
188
- break;
189
- }
190
- searchDir = path.dirname(searchDir);
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
+ };
111
+ }
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));
119
+ }
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;
191
139
  }
192
- }
193
- catch {
194
- // fallback to 'pi' command
195
- }
196
- // Ensure pi-mcp-adapter is installed to the Vargos agent directory
197
- try {
198
- const settingsPath = path.join(agentDir, 'settings.json');
199
- const settingsContent = existsSync(settingsPath)
200
- ? JSON.parse(readFileSync(settingsPath, 'utf8'))
201
- : {};
202
- const packages = settingsContent.packages ?? [];
203
- if (!packages.includes('npm:pi-mcp-adapter')) {
204
- // Auto-install pi-mcp-adapter silently
205
- try {
206
- execSync(`node "${piCliPath}" install npm:pi-mcp-adapter`, {
207
- stdio: 'pipe',
208
- env: {
209
- ...process.env,
210
- PI_CODING_AGENT_DIR: agentDir,
211
- },
212
- });
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;
213
152
  }
214
- catch {
215
- // 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;
216
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;
217
166
  }
167
+ case 'chat': {
168
+ await import('./cli/chat.js').then(m => m.chat());
169
+ return true;
170
+ }
171
+ default:
172
+ return false;
218
173
  }
219
- catch {
220
- // Skip MCP setup if there's any issue
221
- }
222
- execSync(`node "${piCliPath}" --session-dir "${dataDir}/sessions/cli"`, {
223
- stdio: 'inherit',
224
- env: {
225
- ...process.env,
226
- PI_CODING_AGENT_DIR: agentDir,
227
- VARGOS_DATA_DIR: dataDir,
228
- },
229
- });
230
174
  }
231
- // channels subcommand (`channel` accepted as a singular alias)
232
- if (cmd === 'channels' || cmd === 'channel') {
233
- const sub = process.argv[3];
234
- const { listChannels, registerChannel, deregisterChannel, pairWhatsApp, sendChannelMessage } = await import('./cli/channels.js');
235
- if (sub === '--help' || sub === '-h') {
236
- channelsUsage();
237
- 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);
238
187
  }
239
- if (sub === 'list' || !sub) {
240
- const channels = listChannels();
241
- if (channels.length === 0) {
242
- console.log('No channels configured.\n');
243
- console.log(' vargos channels register whatsapp <id>');
244
- console.log(' vargos channels register telegram <id> --bot-token <token>');
245
- }
246
- else {
247
- console.log('Channels:\n');
248
- for (const ch of channels) {
249
- const status = ch.type === 'whatsapp'
250
- ? (ch.registered ? '✅ paired' : '⚠ not paired')
251
- : '✅ configured';
252
- const tokenHint = ch.botToken ? ` (key: ${ch.botToken.slice(0, 8)}…)` : '';
253
- console.log(` ${ch.id} [${ch.type}] ${status}${tokenHint}`);
254
- }
255
- console.log('');
256
- }
257
- 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;
258
193
  }
259
- if (sub === 'register') {
260
- const type = process.argv[4];
261
- const id = process.argv[5];
262
- if (!type || !id || !CHANNEL_TYPES.includes(type)) {
263
- console.log(`Usage: vargos channels register <${CHANNEL_TYPES.join('|')}> <id> [--bot-token <token>]`);
264
- process.exit(1);
265
- }
266
- try {
267
- const tokenIdx = process.argv.indexOf('--bot-token');
268
- const tgBotKey = type === 'telegram' && tokenIdx !== -1 ? process.argv[tokenIdx + 1] : undefined;
269
- if (type === 'telegram' && !tgBotKey) {
270
- console.log('Telegram requires --bot-token <token>');
271
- process.exit(1);
272
- }
273
- const { created } = registerChannel({ id, type, botToken: tgBotKey });
274
- console.log(created ? `✅ Channel "${id}" registered.` : `ℹ Channel "${id}" already registered.`);
275
- // WhatsApp registration is pairing: write config, then run the QR flow.
276
- if (type === 'whatsapp') {
277
- console.log(' Scan the QR code with WhatsApp → Linked Devices\n');
278
- await pairWhatsApp(id);
279
- }
280
- }
281
- catch (err) {
282
- console.error(`❌ ${err instanceof Error ? err.message : err}`);
283
- process.exit(1);
194
+ try {
195
+ if (infos.length === 0) {
196
+ console.error(`Unknown service "${service}". Run "vargos --help".`);
197
+ return 1;
284
198
  }
285
- process.exit(0);
286
- }
287
- if (sub === 'deregister') {
288
- const id = process.argv[4];
289
- if (!id) {
290
- console.log('Usage: vargos channels deregister <id>');
291
- 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;
292
204
  }
293
- try {
294
- deregisterChannel(id);
295
- console.log(`✅ Channel "${id}" removed.`);
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;
296
210
  }
297
- catch (err) {
298
- console.error(`❌ ${err instanceof Error ? err.message : err}`);
299
- process.exit(1);
211
+ if (parsed.help) {
212
+ console.log(renderHelp(service, [info]));
213
+ return 0;
300
214
  }
301
- process.exit(0);
215
+ const params = buildParams(info, parsed.args);
216
+ print(await invoke(fullName, params));
217
+ return 0;
302
218
  }
303
- if (sub === 'send') {
304
- const sessionKey = process.argv[4];
305
- const text = process.argv.slice(5).join(' ').trim();
306
- if (!sessionKey || !text) {
307
- console.log('Usage: vargos channels send <sessionKey> <text...>');
308
- process.exit(1);
309
- }
310
- try {
311
- const sent = await sendChannelMessage(sessionKey, text);
312
- console.log(sent ? `✅ Sent to ${sessionKey}` : `⚠ Not delivered — no active channel for "${sessionKey}".`);
313
- process.exit(sent ? 0 : 1);
314
- }
315
- catch (err) {
316
- console.error(`❌ ${err instanceof Error ? err.message : err}`);
317
- process.exit(1);
318
- }
219
+ catch (err) {
220
+ console.error(`❌ ${err instanceof Error ? err.message : String(err)}`);
221
+ return 1;
222
+ }
223
+ finally {
224
+ await cleanup();
319
225
  }
320
- channelsUsage();
321
- process.exit(1);
322
226
  }
323
- // No command — first-run or help
324
- if (isFirstRun()) {
325
- console.log(' ⚡ Vargos v' + VERSION + ' — First run detected.\n');
326
- const { onboard } = await import('./cli/onboard.js');
327
- await onboard();
328
- 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);
329
245
  }
330
- else {
331
- usage();
246
+ if (parsed.reserved) {
247
+ const handled = await runBuiltin(parsed.service);
248
+ process.exit(handled ? 0 : 1);
332
249
  }
333
- process.exit(0);
250
+ process.exit(await dispatch(parsed));
334
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":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAkB,MAAM,eAAe,CAAC;AACzG,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,oFAAoF;AAEpF,MAAM,QAAQ,GAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACvD,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC;IACtH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACzD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;IACjC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AAElE,KAAK,UAAU,KAAK;IAClB,OAAO,CAAC,GAAG,CAAC;uCACyB,OAAO;;;;;;;;;;;;;;gDAcE,CAAC,CAAC;IAEhD,OAAO,CAAC,GAAG,CAAC,MAAM,cAAc,EAAE,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,CAAC,CAAC,CAAC,kEAAkE;AAEjG,KAAK,UAAU,cAAc;IAC3B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAEzC,IAAI,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAe,UAAU,EAAE,EAAE,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC9C,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,CAAC,QAAQ;gBAAE,SAAS,CAAC,oDAAoD;YAC9E,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpF,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACzE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC;YACvC,wFAAwF;YACxF,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;gBACtC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;oBACxB,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9C,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;gBACnE,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;gBACzB,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,GAAG;oBAAE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9G,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;gBAChD,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC,CAAC;YACtF,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,OAAO,wEAAwE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACpG,CAAC;IAED,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,OAAO,gDAAgD,KAAK,8HAA8H,CAAC;AAC7L,CAAC;AAED,iEAAiE;AACjE,SAAS,cAAc;IACrB,IAAI,EAAE,GAAqC,EAAE,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACxE,EAAE,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC/B,OAAO;QACL,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,WAAW;QACpD,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KACpF,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,MAAe;IAC5B,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;SACnE,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;;QACpD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,oFAAoF;AAEpF,KAAK,UAAU,UAAU,CAAC,GAAW;IACnC,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,WAAW,CAAC;QAAC,KAAK,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAC/D,KAAK,QAAQ,CAAC;QAAC,KAAK,IAAI;YAAE,KAAK,EAAE,CAAC;YAAC,OAAO,IAAI,CAAC;QAC/C,KAAK,OAAO;YACV,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;YAC3B,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,kCAAkC;YAC/D,OAAO,IAAI,CAAC;QACd,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YACrD,MAAM,OAAO,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC3D,MAAM,aAAa,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC7E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACzC,MAAM,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAC3F,MAAM,SAAS,GAAG,MAAM,wBAAwB,EAAE,CAAC;YACnD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAC;YAAC,CAAC;YACxF,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC;gBACnC,OAAO,EAAE,6DAA6D;gBACtE,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC7D,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;YACH,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gBAAC,OAAO,IAAI,CAAC;YAAC,CAAC;YAClE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAE,QAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7E,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;YACzF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;QACD;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,qFAAqF;AAErF,KAAK,UAAU,QAAQ,CAAC,MAAiB;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAQ,CAAC,CAAC,iBAAiB;IAC9F,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;IAErC,IAAI,KAAmB,CAAC;IACxB,IAAI,MAA6D,CAAC;IAClE,IAAI,OAAO,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;IAE7B,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAe,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACjE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACpD,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,CAAC;QACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,yBAAyB,CAAC,CAAC;YACpE,OAAO,CAAC,CAAC;QACX,CAAC;QACD,mFAAmF;QACnF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACvF,OAAO,CAAC,CAAC;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,MAAM,SAAS,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YACvF,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAExE,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,KAAK,CAAC,MAAM,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,CAAC;IACX,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,CAAC;IACX,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED,qFAAqF;AAErF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE9B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACpB,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAAC,MAAM,KAAK,EAAE,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IACtG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,iBAAiB,CAAC,CAAC;QACrD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACrD,MAAM,OAAO,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,EAAE,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;IACpB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,OAAO,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC"}
@@ -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"}