@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
@@ -0,0 +1,69 @@
1
+ /**
2
+ * JSON-RPC 2.0 over TCP (surface 3). Newline-delimited requests, localhost-bound.
3
+ * Dispatch is a thin projection of the registry: every request becomes bus.call().
4
+ *
5
+ * echo '{"jsonrpc":"2.0","method":"memory.search","params":{"query":"..."}}' | nc localhost 9000
6
+ *
7
+ * Auth hook: see `authorize()` — a no-op today, the single seam for a future API key.
8
+ */
9
+ import { createServer } from 'node:net';
10
+ import { BusError } from './errors.js';
11
+ import { createLogger } from '../lib/logger.js';
12
+ const log = createLogger('rpc');
13
+ /** Future API-key seam. Returns null to allow; a string to reject with that reason. */
14
+ function authorize(_req, _socket) {
15
+ return null; // localhost-only today (out of scope: token auth, non-local binding)
16
+ }
17
+ export function startRpcServer(bus, host, port, socketTimeoutMs = 35 * 60 * 1000) {
18
+ return new Promise((resolve, reject) => {
19
+ const server = createServer((socket) => {
20
+ let buffer = '';
21
+ socket.setTimeout(socketTimeoutMs, () => socket.destroy());
22
+ socket.on('error', (err) => log.debug(`socket error: ${err.message}`));
23
+ socket.on('data', (chunk) => {
24
+ buffer += chunk.toString();
25
+ let nl;
26
+ while ((nl = buffer.indexOf('\n')) !== -1) {
27
+ const line = buffer.slice(0, nl).trim();
28
+ buffer = buffer.slice(nl + 1);
29
+ if (line)
30
+ void handleLine(bus, socket, line);
31
+ }
32
+ });
33
+ });
34
+ server.on('error', reject);
35
+ server.listen(port, host, () => {
36
+ log.info(`JSON-RPC listening on ${host}:${port}`);
37
+ resolve(() => new Promise((res) => server.close(() => res())));
38
+ });
39
+ });
40
+ }
41
+ async function handleLine(bus, socket, line) {
42
+ let req;
43
+ try {
44
+ req = JSON.parse(line);
45
+ }
46
+ catch {
47
+ return reply(socket, null, undefined, { code: -32700, message: 'Parse error' });
48
+ }
49
+ const id = req.id ?? null;
50
+ const denied = authorize(req, socket);
51
+ if (denied)
52
+ return reply(socket, id, undefined, { code: -32001, message: denied });
53
+ try {
54
+ const result = await bus.call(req.method, req.params);
55
+ reply(socket, id, result ?? null);
56
+ }
57
+ catch (err) {
58
+ const code = err instanceof BusError ? err.code : -32603;
59
+ reply(socket, id, undefined, { code, message: err instanceof Error ? err.message : String(err) });
60
+ }
61
+ }
62
+ function reply(socket, id, result, error) {
63
+ const body = error
64
+ ? { jsonrpc: '2.0', error, id }
65
+ : { jsonrpc: '2.0', result, id };
66
+ socket.write(JSON.stringify(body) + '\n');
67
+ socket.end();
68
+ }
69
+ //# sourceMappingURL=rpc-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc-server.js","sourceRoot":"","sources":["../../core/rpc-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ServiceSpec } from './loader.js';
2
+ /** Names of all services present on disk (directory basenames), ordered for loading. */
3
+ export declare function discoverServiceNames(rootDir: string, ext: 'ts' | 'js'): string[];
4
+ /** Resolve a service name to its on-disk module, or null if absent. */
5
+ export declare function resolveService(name: string, rootDir: string, ext: 'ts' | 'js'): ServiceSpec | null;
6
+ /** Every discovered service as a load spec, in load order. */
7
+ export declare function discoverServices(rootDir: string, ext: 'ts' | 'js'): ServiceSpec[];
8
+ //# sourceMappingURL=services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../core/services.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW/C,wFAAwF;AACxF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,EAAE,CAYhF;AAED,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,WAAW,GAAG,IAAI,CAGlG;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,WAAW,EAAE,CAEjF"}
@@ -0,0 +1,33 @@
1
+ import { readdirSync, existsSync } from 'node:fs';
2
+ import path from 'node:path';
3
+ // Convention: a service is any `services/<name>/index.<ext>`. The directory name IS
4
+ // the service name and method namespace (e.g. services/channel → channel.send). No
5
+ // manifest — drop a folder in and it loads. `edge/*` is intentionally NOT auto-loaded.
6
+ /** Services loaded before the rest, in this order — the only dependency the set has
7
+ * (others read config during init; logging wires early). Everything else follows,
8
+ * discovered and sorted. Adding a service requires no edit here. */
9
+ const LOAD_FIRST = ['config', 'log'];
10
+ /** Names of all services present on disk (directory basenames), ordered for loading. */
11
+ export function discoverServiceNames(rootDir, ext) {
12
+ const servicesDir = path.join(rootDir, 'services');
13
+ let names = [];
14
+ try {
15
+ names = readdirSync(servicesDir, { withFileTypes: true })
16
+ .filter(e => e.isDirectory() && existsSync(path.join(servicesDir, e.name, `index.${ext}`)))
17
+ .map(e => e.name);
18
+ }
19
+ catch { /* no services dir */ }
20
+ const rest = names.filter(n => !LOAD_FIRST.includes(n)).sort();
21
+ const first = LOAD_FIRST.filter(n => names.includes(n));
22
+ return [...first, ...rest];
23
+ }
24
+ /** Resolve a service name to its on-disk module, or null if absent. */
25
+ export function resolveService(name, rootDir, ext) {
26
+ const modulePath = path.join(rootDir, 'services', name, `index.${ext}`);
27
+ return existsSync(modulePath) ? { name, modulePath } : null;
28
+ }
29
+ /** Every discovered service as a load spec, in load order. */
30
+ export function discoverServices(rootDir, ext) {
31
+ return discoverServiceNames(rootDir, ext).map(name => resolveService(name, rootDir, ext));
32
+ }
33
+ //# sourceMappingURL=services.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../core/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,oFAAoF;AACpF,mFAAmF;AACnF,uFAAuF;AAEvF;;qEAEqE;AACrE,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAErC,wFAAwF;AACxF,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,GAAgB;IACpE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnD,IAAI,KAAK,GAAa,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;aACtD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;aAC1F,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC;IAEjC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,OAAe,EAAE,GAAgB;IAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC;IACxE,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,GAAgB;IAChE,OAAO,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAE,CAAC,CAAC;AAC7F,CAAC"}
@@ -0,0 +1,63 @@
1
+ import type { z } from 'zod';
2
+ /** JSON-serialisable value — used for log payloads and tool args/results. */
3
+ export type Json = string | number | boolean | null | undefined | Json[] | {
4
+ [key: string]: Json;
5
+ };
6
+ export interface CliShape {
7
+ /** Schema keys mapped to positional CLI args, in order. Absent → all args are named flags. */
8
+ positional?: string[];
9
+ }
10
+ export interface MethodOptions {
11
+ /** zod schema — authoritative validation on every surface. */
12
+ schema: z.ZodTypeAny;
13
+ /** Reused verbatim as CLI --help text AND agent tool description. */
14
+ description: string;
15
+ cli?: CliShape;
16
+ /** Hide from the agent tool surface (still callable via CLI/RPC). Default false. */
17
+ internal?: boolean;
18
+ }
19
+ export type Handler = (params: any) => unknown | Promise<unknown>;
20
+ export interface RegistryEntry extends MethodOptions {
21
+ name: string;
22
+ service: string;
23
+ handler: Handler;
24
+ }
25
+ /** JSON-safe registry projection — the shape the three surfaces consume. */
26
+ export interface MethodInfo {
27
+ name: string;
28
+ service: string;
29
+ description: string;
30
+ cli?: CliShape;
31
+ internal: boolean;
32
+ /** JSON Schema derived from the zod schema. */
33
+ schema: unknown;
34
+ }
35
+ export interface Service {
36
+ name: string;
37
+ /** Register methods/handlers and open resources. */
38
+ init(bus: Bus): Promise<void> | void;
39
+ /** Close sockets, clear timers, flush — MUST fully release everything init opened. */
40
+ dispose(): Promise<void> | void;
41
+ }
42
+ /** Every service module exports this; called fresh on each (re)load. */
43
+ export type ServiceFactory = () => Service;
44
+ export interface ServiceModule {
45
+ createService: ServiceFactory;
46
+ }
47
+ export interface Bus {
48
+ /** Register a callable method. Returns an unregister function. */
49
+ register(name: string, opts: MethodOptions, handler: Handler): () => void;
50
+ /** Remove a method from the registry. Returns true if it existed. */
51
+ unregister(name: string): boolean;
52
+ /** Invoke a registered method (validates params, awaits handler). Throws if unregistered. */
53
+ call<T = unknown>(name: string, params?: unknown): Promise<T>;
54
+ /** Fire a pub/sub event. No listeners → silent no-op. */
55
+ emit(event: string, payload?: unknown): void;
56
+ /** Subscribe to a pub/sub event. Returns an unsubscribe function. */
57
+ on<T = unknown>(event: string, handler: (payload: T) => void): () => void;
58
+ /** Is this method registered? */
59
+ has(name: string): boolean;
60
+ /** Registry projection, optionally scoped to one service. */
61
+ list(service?: string): MethodInfo[];
62
+ }
63
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,6EAA6E;AAC7E,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAMnG,MAAM,WAAW,QAAQ;IACvB,8FAA8F;IAC9F,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,8DAA8D;IAC9D,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;IACrB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,oFAAoF;IACpF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAGD,MAAM,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAElE,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,4EAA4E;AAC5E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,MAAM,EAAE,OAAO,CAAC;CACjB;AAID,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACrC,sFAAsF;IACtF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACjC;AAED,wEAAwE;AACxE,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC;AAC3C,MAAM,WAAW,aAAa;IAAG,aAAa,EAAE,cAAc,CAAA;CAAE;AAIhE,MAAM,WAAW,GAAG;IAClB,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,IAAI,CAAC;IAC1E,qEAAqE;IACrE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,6FAA6F;IAC7F,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9D,yDAAyD;IACzD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7C,qEAAqE;IACrE,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1E,iCAAiC;IACjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,6DAA6D;IAC7D,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;CACtC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../core/types.ts"],"names":[],"mappings":""}
@@ -1,20 +1,22 @@
1
1
  /**
2
2
  * MCP edge service — translates MCP protocol to bus event calls.
3
3
  *
4
- * ListToolsRequest → bus.search()
5
- * CallToolRequest → bus.call(eventName, args)
4
+ * ListToolsRequest → bus.list()
5
+ * CallToolRequest → bus.call(method, args)
6
6
  *
7
7
  * Supports HTTP (StreamableHTTP) transport on port 9001.
8
8
  * Bearer token auth from config.mcp.bearerToken.
9
9
  */
10
- import type { Bus } from '../../gateway/bus.js';
11
- import type { AppConfig } from '../../services/config/index.js';
12
- export declare class McpEdge {
13
- private readonly bus;
14
- private readonly config;
10
+ import type { Bus, Service } from '../../core/types.js';
11
+ export declare class McpEdge implements Service {
12
+ readonly name = "mcp-edge";
15
13
  private mcpServer;
16
14
  private httpServer;
17
- constructor(bus: Bus, config: AppConfig);
15
+ private bus;
16
+ private config;
17
+ constructor();
18
+ init(bus: Bus): Promise<void>;
19
+ dispose(): Promise<void>;
18
20
  private httpHost;
19
21
  private httpPort;
20
22
  /** Path prefix for Streamable HTTP, always starts with / */
@@ -27,7 +29,5 @@ export declare class McpEdge {
27
29
  private setupHandlers;
28
30
  private buildOpenApiSpec;
29
31
  }
30
- export declare function boot(bus: Bus): Promise<{
31
- stop(): Promise<void>;
32
- }>;
32
+ export declare function createService(): Service;
33
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../edge/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAWhE,qBAAa,OAAO;IAKhB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAA4B;gBAG3B,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,SAAS;IASpC,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,QAAQ;IAIhB,4DAA4D;IAC5D,OAAO,CAAC,gBAAgB;IAKlB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAOnB,SAAS;IAiEvB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,aAAa;YAwCP,gBAAgB;CAgD/B;AAID,wBAAsB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAKvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../edge/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAWxD,qBAAa,OAAQ,YAAW,OAAO;IACrC,QAAQ,CAAC,IAAI,cAAc;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,GAAG,CAAO;IAClB,OAAO,CAAC,MAAM,CAAa;;IASrB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAO7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,QAAQ;IAIhB,4DAA4D;IAC5D,OAAO,CAAC,gBAAgB;IAKlB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAOnB,SAAS;IAiEvB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,aAAa;YAmCP,gBAAgB;CA+C/B;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC"}
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * MCP edge service — translates MCP protocol to bus event calls.
3
3
  *
4
- * ListToolsRequest → bus.search()
5
- * CallToolRequest → bus.call(eventName, args)
4
+ * ListToolsRequest → bus.list()
5
+ * CallToolRequest → bus.call(method, args)
6
6
  *
7
7
  * Supports HTTP (StreamableHTTP) transport on port 9001.
8
8
  * Bearer token auth from config.mcp.bearerToken.
@@ -13,22 +13,28 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
13
13
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
14
14
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
15
15
  import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
16
- import { isToolEvent } from '../../gateway/emitter.js';
17
16
  import { createLogger } from '../../lib/logger.js';
18
17
  import { toMessage } from '../../lib/error.js';
19
18
  const log = createLogger('mcp');
20
19
  const VERSION = '0.0.1';
21
20
  // ── McpEdge ────────────────────────────────────────────────────────────────────
22
21
  export class McpEdge {
23
- bus;
24
- config;
22
+ name = 'mcp-edge';
25
23
  mcpServer;
26
24
  httpServer = null;
27
- constructor(bus, config) {
28
- this.bus = bus;
29
- this.config = config;
25
+ bus;
26
+ config;
27
+ constructor() {
30
28
  this.mcpServer = new Server({ name: 'vargos', version: VERSION }, { capabilities: { tools: {} } });
29
+ }
30
+ async init(bus) {
31
+ this.bus = bus;
32
+ this.config = await bus.call('config.get', {});
31
33
  this.setupHandlers();
34
+ await this.start();
35
+ }
36
+ async dispose() {
37
+ await this.stop();
32
38
  }
33
39
  httpHost() {
34
40
  return this.config.mcp.host ?? '127.0.0.1';
@@ -125,22 +131,17 @@ export class McpEdge {
125
131
  // ── MCP handlers ───────────────────────────────────────────────────────────
126
132
  setupHandlers() {
127
133
  this.mcpServer.setRequestHandler(ListToolsRequestSchema, async () => {
128
- const metadata = await this.bus.call('bus.search', {});
129
- const tools = metadata.filter(isToolEvent);
130
134
  return {
131
- tools: tools.map(m => ({
132
- name: m.event,
135
+ tools: this.bus.list().filter(m => !m.internal).map(m => ({
136
+ name: m.name,
133
137
  description: m.description,
134
- inputSchema: (m.schema?.params ?? {}),
138
+ inputSchema: (m.schema ?? {}),
135
139
  })),
136
140
  };
137
141
  });
138
142
  this.mcpServer.setRequestHandler(CallToolRequestSchema, async (request) => {
139
143
  const { name, arguments: args } = request.params;
140
- const sessionKey = args?.sessionKey || 'mcp:default';
141
- // Check if event exists in bus and is a tool
142
- const metadata = await this.bus.call('bus.inspect', { event: name });
143
- if (!metadata || metadata.type !== 'tool') {
144
+ if (!this.bus.has(name)) {
144
145
  return {
145
146
  content: [{ type: 'text', text: `Unknown tool: ${name}` }],
146
147
  isError: true,
@@ -161,17 +162,16 @@ export class McpEdge {
161
162
  });
162
163
  }
163
164
  async buildOpenApiSpec() {
164
- const metadata = await this.bus.call('bus.search', {});
165
- const tools = metadata.filter(isToolEvent);
165
+ const tools = this.bus.list().filter(m => !m.internal);
166
166
  const paths = {};
167
167
  for (const m of tools) {
168
- paths[`/tools/${m.event}`] = {
168
+ paths[`/tools/${m.name}`] = {
169
169
  post: {
170
- operationId: m.event,
170
+ operationId: m.name,
171
171
  summary: m.description,
172
172
  requestBody: {
173
173
  required: true,
174
- content: { 'application/json': { schema: m.schema?.params ?? {} } },
174
+ content: { 'application/json': { schema: m.schema ?? {} } },
175
175
  },
176
176
  responses: {
177
177
  '200': {
@@ -207,11 +207,7 @@ export class McpEdge {
207
207
  };
208
208
  }
209
209
  }
210
- // ── Boot ───────────────────────────────────────────────────────────────────────
211
- export async function boot(bus) {
212
- const config = await bus.call('config.get', {});
213
- const svc = new McpEdge(bus, config);
214
- await svc.start();
215
- return { stop: () => svc.stop() };
210
+ export function createService() {
211
+ return new McpEdge();
216
212
  }
217
213
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../edge/mcp/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../edge/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAEL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAEhC,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,kFAAkF;AAElF,MAAM,OAAO,OAAO;IACT,IAAI,GAAG,UAAU,CAAC;IACnB,SAAS,CAAS;IAClB,UAAU,GAAuB,IAAI,CAAC;IACtC,GAAG,CAAO;IACV,MAAM,CAAa;IAE3B;QACE,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,CACzB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EACpC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAQ;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAY,YAAY,EAAE,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAEO,QAAQ;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC;IAC7C,CAAC;IAEO,QAAQ;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;IACtC,CAAC;IAED,4DAA4D;IACpD,gBAAgB;QACtB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC;QAC9C,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QAClE,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,8EAA8E;IAEtE,KAAK,CAAC,SAAS,CAAC,WAAmB;QACzC,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;YAClD,kBAAkB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE;SAC9C,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAExC,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QAEnF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YACrD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC;YACpE,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,6CAA6C,CAAC,CAAC;YAE7F,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC7B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YAED,qEAAqE;YACrE,MAAM,IAAI,GAAO,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;gBACnD,OAAO;YACT,CAAC;YAED,IAAI,GAAG,CAAC,GAAG,KAAK,eAAe,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBACxD,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAClC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;oBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACzC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACb,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;oBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC;gBAClD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBACrB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;oBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;gBAC9D,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,UAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;gBACvC,GAAG,CAAC,IAAI,CAAC,qBAAqB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACxE,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,QAAQ;QACd,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO,OAAO,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAEtE,aAAa;QACnB,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YAClE,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACxD,IAAI,EAAS,CAAC,CAAC,IAAI;oBACnB,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAA4B;iBACzD,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAA2B,EAAE;YACjG,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAEjD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;oBAC1D,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC/C,+BAA+B;gBAC/B,MAAM,UAAU,GAAG,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAClG,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAC3E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,CAAC;QAE1C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG;gBAC1B,IAAI,EAAE;oBACJ,WAAW,EAAE,CAAC,CAAC,IAAI;oBACnB,OAAO,EAAM,CAAC,CAAC,WAAW;oBAC1B,WAAW,EAAE;wBACX,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,EAAE;qBAC5D;oBACD,SAAS,EAAE;wBACT,KAAK,EAAE;4BACL,WAAW,EAAE,aAAa;4BAC1B,OAAO,EAAE;gCACP,kBAAkB,EAAE;oCAClB,MAAM,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE;iCACpD;6BACF;yBACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,IAAI,EAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE;YACvF,KAAK;YACL,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,SAAS,CAAC;wBACrB,UAAU,EAAE;4BACV,OAAO,EAAE;gCACP,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;6BAC1B;yBACF;qBACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,OAAO,EAAE,CAAC;AACvB,CAAC"}
@@ -7,27 +7,21 @@
7
7
  * Inbound flow: POST /hooks/:id → validate token → transform payload
8
8
  * → session create/addMessage → agent.execute → deliver to notify targets
9
9
  */
10
- import type { Bus } from '../../gateway/bus.js';
11
- import type { EventMap } from '../../gateway/events.js';
12
- import type { AppConfig } from '../../services/config/index.js';
13
- export declare class WebhooksEdge {
14
- private readonly bus;
15
- private readonly config;
10
+ import type { Bus, Service } from '../../core/types.js';
11
+ export declare class WebhooksEdge implements Service {
12
+ readonly name = "webhook";
16
13
  private hooks;
17
14
  private activeHooks;
18
15
  private server;
19
- private unsubscribeCompleted?;
20
- constructor(bus: Bus, config: AppConfig);
21
- start(): Promise<void>;
22
- stop(): Promise<void>;
23
- search(params: EventMap['webhook.search']['params']): Promise<EventMap['webhook.search']['result']>;
16
+ private bus;
17
+ init(bus: Bus): Promise<void>;
18
+ dispose(): Promise<void>;
19
+ private search;
24
20
  private onAgentCompleted;
25
21
  private startHttp;
26
22
  private stopHttp;
27
23
  private handleRequest;
28
24
  private fireHook;
29
25
  }
30
- export declare function boot(bus: Bus): Promise<{
31
- stop(): Promise<void>;
32
- }>;
26
+ export declare function createService(): Service;
33
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../edge/webhooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,gCAAgC,CAAC;AAiB9E,qBAAa,YAAY;IAOrB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,oBAAoB,CAAC,CAAa;gBAGvB,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,SAAS;IAK9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAerB,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,CAAC;IAazG,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,aAAa;YA4EP,QAAQ;CA0BvB;AAID,wBAAsB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAKvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../edge/webhooks/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAoBxD,qBAAa,YAAa,YAAW,OAAO;IAC1C,QAAQ,CAAC,IAAI,aAAa;IAC1B,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,GAAG,CAAO;IAEZ,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAMhB,MAAM;IAapB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,aAAa;YA4EP,QAAQ;CA0BvB;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC"}