@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.
- package/CONTRIBUTING.md +2 -3
- package/README.md +25 -34
- package/dist/.templates/agent/skills/skill-creator/SKILL.md +204 -32
- package/dist/.templates/workspace/AGENTS.md +32 -0
- package/dist/boot.d.ts +5 -0
- package/dist/boot.d.ts.map +1 -1
- package/dist/boot.js +62 -87
- package/dist/boot.js.map +1 -1
- package/dist/cli/channels.d.ts +11 -17
- package/dist/cli/channels.d.ts.map +1 -1
- package/dist/cli/channels.js +25 -76
- package/dist/cli/channels.js.map +1 -1
- package/dist/cli/chat.d.ts +6 -0
- package/dist/cli/chat.d.ts.map +1 -0
- package/dist/cli/chat.js +49 -0
- package/dist/cli/chat.js.map +1 -0
- package/dist/cli/onboard.d.ts.map +1 -1
- package/dist/cli/onboard.js +2 -8
- package/dist/cli/onboard.js.map +1 -1
- package/dist/cli.d.ts +9 -7
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +206 -264
- package/dist/cli.js.map +1 -1
- package/dist/core/bus.d.ts +32 -0
- package/dist/core/bus.d.ts.map +1 -0
- package/dist/core/bus.js +133 -0
- package/dist/core/bus.js.map +1 -0
- package/dist/core/cli.d.ts +38 -0
- package/dist/core/cli.d.ts.map +1 -0
- package/dist/core/cli.js +199 -0
- package/dist/core/cli.js.map +1 -0
- package/dist/core/errors.d.ts +21 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +30 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/loader.d.ts +31 -0
- package/dist/core/loader.d.ts.map +1 -0
- package/dist/core/loader.js +73 -0
- package/dist/core/loader.js.map +1 -0
- package/dist/core/local.d.ts +12 -0
- package/dist/core/local.d.ts.map +1 -0
- package/dist/core/local.js +23 -0
- package/dist/core/local.js.map +1 -0
- package/dist/core/rpc-server.d.ts +11 -0
- package/dist/core/rpc-server.d.ts.map +1 -0
- package/dist/core/rpc-server.js +69 -0
- package/dist/core/rpc-server.js.map +1 -0
- package/dist/core/services.d.ts +8 -0
- package/dist/core/services.d.ts.map +1 -0
- package/dist/core/services.js +33 -0
- package/dist/core/services.js.map +1 -0
- package/dist/core/types.d.ts +63 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/edge/mcp/index.d.ts +11 -11
- package/dist/edge/mcp/index.d.ts.map +1 -1
- package/dist/edge/mcp/index.js +24 -28
- package/dist/edge/mcp/index.js.map +1 -1
- package/dist/edge/webhooks/index.d.ts +8 -14
- package/dist/edge/webhooks/index.d.ts.map +1 -1
- package/dist/edge/webhooks/index.js +140 -194
- package/dist/edge/webhooks/index.js.map +1 -1
- package/dist/lib/logger.d.ts +2 -3
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +1 -1
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/paginate.d.ts +5 -1
- package/dist/lib/paginate.d.ts.map +1 -1
- package/dist/lib/retry.js +1 -1
- package/dist/lib/retry.js.map +1 -1
- package/dist/lib/util.d.ts +16 -0
- package/dist/lib/util.d.ts.map +1 -0
- package/dist/lib/util.js +63 -0
- package/dist/lib/util.js.map +1 -0
- package/dist/scripts/verify-core.d.ts +8 -0
- package/dist/scripts/verify-core.d.ts.map +1 -0
- package/dist/scripts/verify-core.js +191 -0
- package/dist/scripts/verify-core.js.map +1 -0
- package/dist/services/agent/directives.d.ts +2 -0
- package/dist/services/agent/directives.d.ts.map +1 -1
- package/dist/services/agent/directives.js +16 -1
- package/dist/services/agent/directives.js.map +1 -1
- package/dist/services/agent/index.d.ts +34 -21
- package/dist/services/agent/index.d.ts.map +1 -1
- package/dist/services/agent/index.js +470 -468
- package/dist/services/agent/index.js.map +1 -1
- package/dist/services/agent/tools.d.ts +3 -3
- package/dist/services/agent/tools.d.ts.map +1 -1
- package/dist/services/agent/tools.js +11 -19
- package/dist/services/agent/tools.js.map +1 -1
- package/dist/services/agent/types.d.ts +1 -1
- package/dist/services/agent/types.d.ts.map +1 -1
- package/dist/services/{channels → channel}/base-adapter.d.ts +5 -6
- package/dist/services/channel/base-adapter.d.ts.map +1 -0
- package/dist/services/channel/base-adapter.js.map +1 -0
- package/dist/services/channel/debounce.d.ts.map +1 -0
- package/dist/services/channel/debounce.js.map +1 -0
- package/dist/services/channel/dedupe.d.ts.map +1 -0
- package/dist/services/channel/dedupe.js.map +1 -0
- package/dist/services/channel/delivery.d.ts.map +1 -0
- package/dist/services/{channels → channel}/delivery.js +1 -1
- package/dist/services/channel/delivery.js.map +1 -0
- package/dist/services/{channels → channel}/index.d.ts +14 -17
- package/dist/services/channel/index.d.ts.map +1 -0
- package/dist/services/channel/index.js +354 -0
- package/dist/services/channel/index.js.map +1 -0
- package/dist/services/channel/link-expand.d.ts.map +1 -0
- package/dist/services/channel/link-expand.js.map +1 -0
- package/dist/services/channel/media-paths.d.ts.map +1 -0
- package/dist/services/channel/media-paths.js.map +1 -0
- package/dist/services/{channels → channel}/pipeline.d.ts +1 -1
- package/dist/services/channel/pipeline.d.ts.map +1 -0
- package/dist/services/channel/pipeline.js.map +1 -0
- package/dist/services/channel/provider-loader.d.ts.map +1 -0
- package/dist/services/channel/provider-loader.js.map +1 -0
- package/dist/services/channel/providers/telegram/adapter.d.ts.map +1 -0
- package/dist/services/{channels → channel}/providers/telegram/adapter.js +1 -1
- package/dist/services/channel/providers/telegram/adapter.js.map +1 -0
- package/dist/services/channel/providers/telegram/index.d.ts.map +1 -0
- package/dist/services/channel/providers/telegram/index.js.map +1 -0
- package/dist/services/channel/providers/telegram/normalizer.d.ts.map +1 -0
- package/dist/services/channel/providers/telegram/normalizer.js.map +1 -0
- package/dist/services/channel/providers/telegram/types.d.ts.map +1 -0
- package/dist/services/channel/providers/telegram/types.js.map +1 -0
- package/dist/services/channel/providers/whatsapp/adapter.d.ts.map +1 -0
- package/dist/services/channel/providers/whatsapp/adapter.js.map +1 -0
- package/dist/services/channel/providers/whatsapp/index.d.ts.map +1 -0
- package/dist/services/channel/providers/whatsapp/index.js.map +1 -0
- package/dist/services/channel/providers/whatsapp/normalizer.d.ts.map +1 -0
- package/dist/services/channel/providers/whatsapp/normalizer.js.map +1 -0
- package/dist/services/channel/providers/whatsapp/session.d.ts.map +1 -0
- package/dist/services/channel/providers/whatsapp/session.js.map +1 -0
- package/dist/services/channel/providers/whatsapp/types.d.ts.map +1 -0
- package/dist/services/channel/providers/whatsapp/types.js.map +1 -0
- package/dist/services/channel/reconnect.d.ts.map +1 -0
- package/dist/services/channel/reconnect.js.map +1 -0
- package/dist/services/channel/status-reactions.d.ts.map +1 -0
- package/dist/services/channel/status-reactions.js.map +1 -0
- package/dist/services/{channels → channel}/types.d.ts +1 -1
- package/dist/services/channel/types.d.ts.map +1 -0
- package/dist/services/channel/types.js.map +1 -0
- package/dist/services/channel/typing-state.d.ts.map +1 -0
- package/dist/services/channel/typing-state.js.map +1 -0
- package/dist/services/config/index.d.ts +45 -46
- package/dist/services/config/index.d.ts.map +1 -1
- package/dist/services/config/index.js +89 -182
- package/dist/services/config/index.js.map +1 -1
- package/dist/services/config/schemas/cron.d.ts +3 -3
- package/dist/services/config/schemas/providers.d.ts +12 -12
- package/dist/services/config/schemas/webhooks.d.ts +2 -2
- package/dist/services/cron/index.d.ts +16 -19
- package/dist/services/cron/index.d.ts.map +1 -1
- package/dist/services/cron/index.js +340 -396
- package/dist/services/cron/index.js.map +1 -1
- package/dist/services/log/index.d.ts +9 -8
- package/dist/services/log/index.d.ts.map +1 -1
- package/dist/services/log/index.js +71 -123
- package/dist/services/log/index.js.map +1 -1
- package/dist/services/{mcp-client → mcp}/index.d.ts +9 -11
- package/dist/services/mcp/index.d.ts.map +1 -0
- package/dist/services/{mcp-client → mcp}/index.js +19 -35
- package/dist/services/mcp/index.js.map +1 -0
- package/dist/services/media/index.d.ts +9 -13
- package/dist/services/media/index.d.ts.map +1 -1
- package/dist/services/media/index.js +53 -105
- package/dist/services/media/index.js.map +1 -1
- package/dist/services/memory/index.d.ts +12 -18
- package/dist/services/memory/index.d.ts.map +1 -1
- package/dist/services/memory/index.js +70 -132
- package/dist/services/memory/index.js.map +1 -1
- package/dist/services/web/index.d.ts +7 -7
- package/dist/services/web/index.d.ts.map +1 -1
- package/dist/services/web/index.js +41 -86
- package/dist/services/web/index.js.map +1 -1
- package/package.json +3 -2
- package/dist/gateway/bus.d.ts +0 -50
- package/dist/gateway/bus.d.ts.map +0 -1
- package/dist/gateway/bus.js +0 -2
- package/dist/gateway/bus.js.map +0 -1
- package/dist/gateway/decorators.d.ts +0 -40
- package/dist/gateway/decorators.d.ts.map +0 -1
- package/dist/gateway/decorators.js +0 -43
- package/dist/gateway/decorators.js.map +0 -1
- package/dist/gateway/emitter.d.ts +0 -52
- package/dist/gateway/emitter.d.ts.map +0 -1
- package/dist/gateway/emitter.js +0 -304
- package/dist/gateway/emitter.js.map +0 -1
- package/dist/gateway/events.d.ts +0 -314
- package/dist/gateway/events.d.ts.map +0 -1
- package/dist/gateway/events.js +0 -7
- package/dist/gateway/events.js.map +0 -1
- package/dist/gateway/tcp-server.d.ts +0 -7
- package/dist/gateway/tcp-server.d.ts.map +0 -1
- package/dist/gateway/tcp-server.js +0 -118
- package/dist/gateway/tcp-server.js.map +0 -1
- package/dist/lib/id.d.ts +0 -3
- package/dist/lib/id.d.ts.map +0 -1
- package/dist/lib/id.js +0 -5
- package/dist/lib/id.js.map +0 -1
- package/dist/lib/sleep.d.ts +0 -6
- package/dist/lib/sleep.d.ts.map +0 -1
- package/dist/lib/sleep.js +0 -22
- package/dist/lib/sleep.js.map +0 -1
- package/dist/lib/strip-markdown.d.ts +0 -7
- package/dist/lib/strip-markdown.d.ts.map +0 -1
- package/dist/lib/strip-markdown.js +0 -32
- package/dist/lib/strip-markdown.js.map +0 -1
- package/dist/lib/timeout.d.ts +0 -6
- package/dist/lib/timeout.d.ts.map +0 -1
- package/dist/lib/timeout.js +0 -11
- package/dist/lib/timeout.js.map +0 -1
- package/dist/lib/truncate.d.ts +0 -11
- package/dist/lib/truncate.d.ts.map +0 -1
- package/dist/lib/truncate.js +0 -17
- package/dist/lib/truncate.js.map +0 -1
- package/dist/services/channels/base-adapter.d.ts.map +0 -1
- package/dist/services/channels/base-adapter.js.map +0 -1
- package/dist/services/channels/debounce.d.ts.map +0 -1
- package/dist/services/channels/debounce.js.map +0 -1
- package/dist/services/channels/dedupe.d.ts.map +0 -1
- package/dist/services/channels/dedupe.js.map +0 -1
- package/dist/services/channels/delivery.d.ts.map +0 -1
- package/dist/services/channels/delivery.js.map +0 -1
- package/dist/services/channels/index.d.ts.map +0 -1
- package/dist/services/channels/index.js +0 -413
- package/dist/services/channels/index.js.map +0 -1
- package/dist/services/channels/link-expand.d.ts.map +0 -1
- package/dist/services/channels/link-expand.js.map +0 -1
- package/dist/services/channels/media-paths.d.ts.map +0 -1
- package/dist/services/channels/media-paths.js.map +0 -1
- package/dist/services/channels/pipeline.d.ts.map +0 -1
- package/dist/services/channels/pipeline.js.map +0 -1
- package/dist/services/channels/provider-loader.d.ts.map +0 -1
- package/dist/services/channels/provider-loader.js.map +0 -1
- package/dist/services/channels/providers/telegram/adapter.d.ts.map +0 -1
- package/dist/services/channels/providers/telegram/adapter.js.map +0 -1
- package/dist/services/channels/providers/telegram/index.d.ts.map +0 -1
- package/dist/services/channels/providers/telegram/index.js.map +0 -1
- package/dist/services/channels/providers/telegram/normalizer.d.ts.map +0 -1
- package/dist/services/channels/providers/telegram/normalizer.js.map +0 -1
- package/dist/services/channels/providers/telegram/types.d.ts.map +0 -1
- package/dist/services/channels/providers/telegram/types.js.map +0 -1
- package/dist/services/channels/providers/whatsapp/adapter.d.ts.map +0 -1
- package/dist/services/channels/providers/whatsapp/adapter.js.map +0 -1
- package/dist/services/channels/providers/whatsapp/index.d.ts.map +0 -1
- package/dist/services/channels/providers/whatsapp/index.js.map +0 -1
- package/dist/services/channels/providers/whatsapp/normalizer.d.ts.map +0 -1
- package/dist/services/channels/providers/whatsapp/normalizer.js.map +0 -1
- package/dist/services/channels/providers/whatsapp/session.d.ts.map +0 -1
- package/dist/services/channels/providers/whatsapp/session.js.map +0 -1
- package/dist/services/channels/providers/whatsapp/types.d.ts.map +0 -1
- package/dist/services/channels/providers/whatsapp/types.js.map +0 -1
- package/dist/services/channels/reconnect.d.ts.map +0 -1
- package/dist/services/channels/reconnect.js.map +0 -1
- package/dist/services/channels/status-reactions.d.ts.map +0 -1
- package/dist/services/channels/status-reactions.js.map +0 -1
- package/dist/services/channels/types.d.ts.map +0 -1
- package/dist/services/channels/types.js.map +0 -1
- package/dist/services/channels/typing-state.d.ts.map +0 -1
- package/dist/services/channels/typing-state.js.map +0 -1
- package/dist/services/mcp-client/index.d.ts.map +0 -1
- package/dist/services/mcp-client/index.js.map +0 -1
- /package/dist/services/{channels → channel}/base-adapter.js +0 -0
- /package/dist/services/{channels → channel}/debounce.d.ts +0 -0
- /package/dist/services/{channels → channel}/debounce.js +0 -0
- /package/dist/services/{channels → channel}/dedupe.d.ts +0 -0
- /package/dist/services/{channels → channel}/dedupe.js +0 -0
- /package/dist/services/{channels → channel}/delivery.d.ts +0 -0
- /package/dist/services/{channels → channel}/link-expand.d.ts +0 -0
- /package/dist/services/{channels → channel}/link-expand.js +0 -0
- /package/dist/services/{channels → channel}/media-paths.d.ts +0 -0
- /package/dist/services/{channels → channel}/media-paths.js +0 -0
- /package/dist/services/{channels → channel}/pipeline.js +0 -0
- /package/dist/services/{channels → channel}/provider-loader.d.ts +0 -0
- /package/dist/services/{channels → channel}/provider-loader.js +0 -0
- /package/dist/services/{channels → channel}/providers/telegram/adapter.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/telegram/index.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/telegram/index.js +0 -0
- /package/dist/services/{channels → channel}/providers/telegram/normalizer.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/telegram/normalizer.js +0 -0
- /package/dist/services/{channels → channel}/providers/telegram/types.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/telegram/types.js +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/adapter.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/adapter.js +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/index.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/index.js +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/normalizer.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/normalizer.js +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/session.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/session.js +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/types.d.ts +0 -0
- /package/dist/services/{channels → channel}/providers/whatsapp/types.js +0 -0
- /package/dist/services/{channels → channel}/reconnect.d.ts +0 -0
- /package/dist/services/{channels → channel}/reconnect.js +0 -0
- /package/dist/services/{channels → channel}/status-reactions.d.ts +0 -0
- /package/dist/services/{channels → channel}/status-reactions.js +0 -0
- /package/dist/services/{channels → channel}/types.js +0 -0
- /package/dist/services/{channels → channel}/typing-state.d.ts +0 -0
- /package/dist/services/{channels → channel}/typing-state.js +0 -0
|
@@ -1,90 +1,47 @@
|
|
|
1
|
-
var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
|
|
2
|
-
var useValue = arguments.length > 2;
|
|
3
|
-
for (var i = 0; i < initializers.length; i++) {
|
|
4
|
-
value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
|
|
5
|
-
}
|
|
6
|
-
return useValue ? value : void 0;
|
|
7
|
-
};
|
|
8
|
-
var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
|
|
9
|
-
function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
|
|
10
|
-
var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
|
|
11
|
-
var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
|
|
12
|
-
var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
|
|
13
|
-
var _, done = false;
|
|
14
|
-
for (var i = decorators.length - 1; i >= 0; i--) {
|
|
15
|
-
var context = {};
|
|
16
|
-
for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
|
|
17
|
-
for (var p in contextIn.access) context.access[p] = contextIn.access[p];
|
|
18
|
-
context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
|
|
19
|
-
var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
|
|
20
|
-
if (kind === "accessor") {
|
|
21
|
-
if (result === void 0) continue;
|
|
22
|
-
if (result === null || typeof result !== "object") throw new TypeError("Object expected");
|
|
23
|
-
if (_ = accept(result.get)) descriptor.get = _;
|
|
24
|
-
if (_ = accept(result.set)) descriptor.set = _;
|
|
25
|
-
if (_ = accept(result.init)) initializers.unshift(_);
|
|
26
|
-
}
|
|
27
|
-
else if (_ = accept(result)) {
|
|
28
|
-
if (kind === "field") initializers.unshift(_);
|
|
29
|
-
else descriptor[key] = _;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
if (target) Object.defineProperty(target, contextIn.name, descriptor);
|
|
33
|
-
done = true;
|
|
34
|
-
};
|
|
35
1
|
import { z } from 'zod';
|
|
36
|
-
import { register } from '../../gateway/decorators.js';
|
|
37
2
|
import { htmlToMarkdown } from '../../lib/html.js';
|
|
38
3
|
import { validateHttpResponse } from '../../lib/http-validate.js';
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
try {
|
|
59
|
-
url = new URL(params.url);
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
throw new Error('Invalid URL');
|
|
63
|
-
}
|
|
64
|
-
if (!['http:', 'https:'].includes(url.protocol))
|
|
65
|
-
throw new Error('Only http/https URLs are supported');
|
|
66
|
-
const resp = await fetch(params.url, {
|
|
67
|
-
headers: { 'User-Agent': 'Mozilla/5.0 (compatible; Vargos/2.0)' },
|
|
68
|
-
redirect: 'follow',
|
|
69
|
-
});
|
|
70
|
-
validateHttpResponse(resp, 'Web fetch');
|
|
71
|
-
const contentType = resp.headers.get('content-type') ?? '';
|
|
72
|
-
const html = await resp.text();
|
|
73
|
-
const maxChars = params.maxChars ?? 50_000;
|
|
74
|
-
let text = contentType.includes('text/html') ? htmlToMarkdown(html) : html;
|
|
75
|
-
if (params.extractMode === 'text')
|
|
76
|
-
text = stripMarkdownLinks(text);
|
|
77
|
-
const truncated = text.length > maxChars;
|
|
78
|
-
if (truncated)
|
|
79
|
-
text = text.slice(0, maxChars) + '\n… (truncated)';
|
|
80
|
-
return { text };
|
|
4
|
+
const FetchSchema = z.object({
|
|
5
|
+
url: z.string().describe('HTTP or HTTPS URL'),
|
|
6
|
+
extractMode: z.enum(['markdown', 'text']).optional().describe('Output format (default: markdown)'),
|
|
7
|
+
maxChars: z.number().optional().describe('Max characters to return (default: 50000)'),
|
|
8
|
+
});
|
|
9
|
+
export class WebService {
|
|
10
|
+
name = 'web';
|
|
11
|
+
init(bus) {
|
|
12
|
+
bus.register('web.fetch', {
|
|
13
|
+
description: 'Fetch a URL and return readable content (HTML → markdown).',
|
|
14
|
+
schema: FetchSchema,
|
|
15
|
+
cli: { positional: ['url'] },
|
|
16
|
+
}, (p) => this.fetch(p));
|
|
17
|
+
}
|
|
18
|
+
dispose() { }
|
|
19
|
+
async fetch(params) {
|
|
20
|
+
let url;
|
|
21
|
+
try {
|
|
22
|
+
url = new URL(params.url);
|
|
81
23
|
}
|
|
82
|
-
|
|
83
|
-
|
|
24
|
+
catch {
|
|
25
|
+
throw new Error('Invalid URL');
|
|
84
26
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
27
|
+
if (!['http:', 'https:'].includes(url.protocol))
|
|
28
|
+
throw new Error('Only http/https URLs are supported');
|
|
29
|
+
const resp = await fetch(params.url, {
|
|
30
|
+
headers: { 'User-Agent': 'Mozilla/5.0 (compatible; Vargos/2.0)' },
|
|
31
|
+
redirect: 'follow',
|
|
32
|
+
});
|
|
33
|
+
validateHttpResponse(resp, 'Web fetch');
|
|
34
|
+
const contentType = resp.headers.get('content-type') ?? '';
|
|
35
|
+
const html = await resp.text();
|
|
36
|
+
const maxChars = params.maxChars ?? 50_000;
|
|
37
|
+
let text = contentType.includes('text/html') ? htmlToMarkdown(html) : html;
|
|
38
|
+
if (params.extractMode === 'text')
|
|
39
|
+
text = stripMarkdownLinks(text);
|
|
40
|
+
if (text.length > maxChars)
|
|
41
|
+
text = text.slice(0, maxChars) + '\n… (truncated)';
|
|
42
|
+
return { text };
|
|
43
|
+
}
|
|
44
|
+
}
|
|
88
45
|
function stripMarkdownLinks(md) {
|
|
89
46
|
return md
|
|
90
47
|
.replace(/!\[[^\]]*]\([^)]+\)/g, '')
|
|
@@ -93,9 +50,7 @@ function stripMarkdownLinks(md) {
|
|
|
93
50
|
.replace(/^\s*[-*+]\s+/gm, '')
|
|
94
51
|
.replace(/\n{3,}/g, '\n\n').trim();
|
|
95
52
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
bus.bootstrap(new WebService());
|
|
99
|
-
return {};
|
|
53
|
+
export function createService() {
|
|
54
|
+
return new WebService();
|
|
100
55
|
}
|
|
101
56
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../services/web/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../services/web/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chozzz/vargos",
|
|
3
|
-
"version": "3.1
|
|
3
|
+
"version": "3.2.1",
|
|
4
4
|
"description": "Self-hosted agent OS with persistent memory, multi-channel presence, tools, scheduling, and sub-agent orchestration",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Vadi Taslim",
|
|
@@ -86,11 +86,12 @@
|
|
|
86
86
|
"seed": "tsx scripts/seed.ts",
|
|
87
87
|
"migrate": "tsx scripts/migrate.ts",
|
|
88
88
|
"cli": "tsx cli.ts",
|
|
89
|
+
"verify": "tsx scripts/verify-core.ts",
|
|
89
90
|
"chat": "tsx scripts/seed.ts && PI_CODING_AGENT_DIR=\"${VARGOS_DATA_DIR:-$HOME/.vargos}/agent\" pi --session-dir \"${VARGOS_DATA_DIR:-$HOME/.vargos}/sessions/cli\"",
|
|
90
91
|
"build": "rm -rf dist && tsc && cp -r .templates dist/.templates",
|
|
91
92
|
"test": "vitest",
|
|
92
93
|
"test:run": "vitest run",
|
|
93
|
-
"lint": "eslint --no-error-on-unmatched-pattern '
|
|
94
|
+
"lint": "eslint --no-error-on-unmatched-pattern 'core/**/*.ts' 'services/**/*.ts' 'edge/**/*.ts' 'lib/**/*.ts' '.migrations/**/*.ts' 'scripts/**/*.ts' 'index.ts' 'boot.ts' 'cli.ts' 'cli/**/*.ts' 'vitest.config.ts' && tsc --noEmit",
|
|
94
95
|
"typecheck": "tsc --noEmit",
|
|
95
96
|
"precommit": "pnpm exec lint-staged && pnpm run typecheck && pnpm run test:run",
|
|
96
97
|
"postinstall": "pnpm rebuild better-sqlite3"
|
package/dist/gateway/bus.d.ts
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import type { EventMap } from './events.js';
|
|
2
|
-
/** Keys whose EventMap entry is callable ({ params, result }) */
|
|
3
|
-
export type CallableEventKey = {
|
|
4
|
-
[E in keyof EventMap]: EventMap[E] extends {
|
|
5
|
-
params: unknown;
|
|
6
|
-
result: unknown;
|
|
7
|
-
} ? E : never;
|
|
8
|
-
}[keyof EventMap];
|
|
9
|
-
/** Keys whose EventMap entry is a plain payload */
|
|
10
|
-
export type PureEventKey = Exclude<keyof EventMap, CallableEventKey>;
|
|
11
|
-
/** Extract params type from a callable event */
|
|
12
|
-
export type EventParams<E extends CallableEventKey> = EventMap[E] extends {
|
|
13
|
-
params: infer P;
|
|
14
|
-
} ? P : never;
|
|
15
|
-
/** Extract result type from a callable event */
|
|
16
|
-
export type EventResult<E extends CallableEventKey> = EventMap[E] extends {
|
|
17
|
-
result: infer R;
|
|
18
|
-
} ? R : never;
|
|
19
|
-
/**
|
|
20
|
-
* Expected method signature for a handler of event E.
|
|
21
|
-
* Pure event → receives the payload, returns void
|
|
22
|
-
* Callable event → receives params, returns Promise<result>
|
|
23
|
-
*/
|
|
24
|
-
export type HandlerOf<E extends keyof EventMap> = E extends CallableEventKey ? (params: EventParams<E>) => Promise<EventResult<E>> : (payload: EventMap[E]) => void | Promise<void>;
|
|
25
|
-
export interface Bus {
|
|
26
|
-
/** Fire a pure event. Callable events cannot be emitted — use call(). */
|
|
27
|
-
emit<E extends PureEventKey>(event: E, payload: EventMap[E]): void;
|
|
28
|
-
/**
|
|
29
|
-
* Subscribe to a pure event (listener only).
|
|
30
|
-
* Handler receives the payload and returns void.
|
|
31
|
-
* Returns an unsubscribe function.
|
|
32
|
-
*
|
|
33
|
-
* Note: Callable events are wired exclusively via @register decorators
|
|
34
|
-
* and registerService(). Direct on() calls for callable events are not supported.
|
|
35
|
-
*/
|
|
36
|
-
on<E extends PureEventKey>(event: E, handler: HandlerOf<E>): () => void;
|
|
37
|
-
/** Invoke a callable event and await the result. */
|
|
38
|
-
call<E extends CallableEventKey>(event: E, params: EventParams<E>): Promise<EventResult<E>>;
|
|
39
|
-
/** Check if an event is callable (only @register decorated events). */
|
|
40
|
-
isCallable(eventName: string): boolean;
|
|
41
|
-
/** Bootstrap a service (or the bus itself if no service provided) by wiring all @on and @register decorated methods to this bus. */
|
|
42
|
-
bootstrap(service?: object): void;
|
|
43
|
-
/** Register a new callable tool at runtime (used by services like MCP). Returns unsubscribe function. */
|
|
44
|
-
registerTool(event: string, handler: (params: unknown) => Promise<unknown>, schema: import('./decorators.js').ToolSchema): () => void;
|
|
45
|
-
/** Unregister a callable tool that was previously registered at runtime. */
|
|
46
|
-
unregisterTool(event: string): boolean;
|
|
47
|
-
/** Register a restart factory for a named service (called by boot.ts at boot). Internal — not exposed via JSON-RPC. */
|
|
48
|
-
onRestart(serviceName: string, factory: () => Promise<void>): void;
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=bus.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bus.d.ts","sourceRoot":"","sources":["../../gateway/bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,iEAAiE;AACjE,MAAM,MAAM,gBAAgB,GAAG;KAC5B,CAAC,IAAI,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,CAAC,GAAG,KAAK;CAC5F,CAAC,MAAM,QAAQ,CAAC,CAAC;AAElB,mDAAmD;AACnD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AAErE,gDAAgD;AAChD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,gBAAgB,IAChD,QAAQ,CAAC,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAEtD,gDAAgD;AAChD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,gBAAgB,IAChD,QAAQ,CAAC,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAEtD;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,QAAQ,IAC5C,CAAC,SAAS,gBAAgB,GACtB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACnD,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAIrD,MAAM,WAAW,GAAG;IAClB,yEAAyE;IACzE,IAAI,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAEnE;;;;;;;OAOG;IACH,EAAE,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;IAExE,oDAAoD;IACpD,IAAI,CAAC,CAAC,SAAS,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5F,uEAAuE;IACvE,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvC,oIAAoI;IACpI,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC,yGAAyG;IACzG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,iBAAiB,EAAE,UAAU,GAAG,MAAM,IAAI,CAAC;IAEtI,4EAA4E;IAC5E,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvC,uHAAuH;IACvH,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACpE"}
|
package/dist/gateway/bus.js
DELETED
package/dist/gateway/bus.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bus.js","sourceRoot":"","sources":["../../gateway/bus.ts"],"names":[],"mappings":""}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import type { EventMap } from './events.js';
|
|
3
|
-
import type { HandlerOf } from './bus.js';
|
|
4
|
-
export interface ToolSchema {
|
|
5
|
-
description: string;
|
|
6
|
-
schema: z.ZodTypeAny;
|
|
7
|
-
format?: (result: unknown) => string;
|
|
8
|
-
}
|
|
9
|
-
export declare const HANDLERS: unique symbol;
|
|
10
|
-
export declare const TOOLS: unique symbol;
|
|
11
|
-
export interface HandlerEntry {
|
|
12
|
-
event: keyof EventMap;
|
|
13
|
-
method: string;
|
|
14
|
-
}
|
|
15
|
-
export interface RegisteredEntry extends HandlerEntry {
|
|
16
|
-
schema?: ToolSchema;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Marks a method as a listener for a bus event.
|
|
20
|
-
* Pure event → (payload: EventMap[E]) => void | Promise<void>
|
|
21
|
-
* Callable event (rare) → (params: EventMap[E]['params']) => Promise<EventMap[E]['result']>
|
|
22
|
-
*
|
|
23
|
-
* Use @register instead for callable events that should be agent-accessible.
|
|
24
|
-
* Handlers are wired by bus.bootstrap() at boot.
|
|
25
|
-
*/
|
|
26
|
-
export declare function on<E extends keyof EventMap>(event: E): (method: HandlerOf<E>, context: ClassMethodDecoratorContext) => HandlerOf<E>;
|
|
27
|
-
/**
|
|
28
|
-
* Marks a method as a callable event provider.
|
|
29
|
-
*
|
|
30
|
-
* Params:
|
|
31
|
-
* - event: the callable event name (e.g., 'agent.execute')
|
|
32
|
-
* - tool: optional ToolSchema with description and zod schema
|
|
33
|
-
* If omitted, the callable is internal (not exposed as an agent tool)
|
|
34
|
-
*
|
|
35
|
-
* Signature: (params: EventMap[E]['params']) => Promise<EventMap[E]['result']>
|
|
36
|
-
*
|
|
37
|
-
* Handlers are wired by bus.bootstrap() at boot.
|
|
38
|
-
*/
|
|
39
|
-
export declare function register<E extends keyof EventMap>(event: E, tool?: ToolSchema): (method: HandlerOf<E>, context: ClassMethodDecoratorContext) => HandlerOf<E>;
|
|
40
|
-
//# sourceMappingURL=decorators.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../gateway/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK1C,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAO,CAAC,CAAC,UAAU,CAAC;IAC1B,MAAM,CAAC,EAAM,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC;CAC1C;AAID,eAAO,MAAM,QAAQ,eAA4B,CAAC;AAClD,eAAO,MAAM,KAAK,eAA4B,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAG,MAAM,QAAQ,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AASD;;;;;;;GAOG;AACH,wBAAgB,EAAE,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,KAAK,EAAE,CAAC,IAEjD,QAAQ,SAAS,CAAC,CAAC,CAAC,EACpB,SAAS,2BAA2B,KACnC,SAAS,CAAC,CAAC,CAAC,CAOhB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,IAE1E,QAAQ,SAAS,CAAC,CAAC,CAAC,EACpB,SAAS,2BAA2B,KACnC,SAAS,CAAC,CAAC,CAAC,CAOhB"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
// ─── Internal metadata storage ────────────────────────────────────────────────
|
|
2
|
-
export const HANDLERS = Symbol('vargos.handlers'); // @on decorated methods
|
|
3
|
-
export const TOOLS = Symbol('vargos.tools'); // @register decorated methods
|
|
4
|
-
// ─── Decorator ────────────────────────────────────────────────────────────────
|
|
5
|
-
/**
|
|
6
|
-
* Marks a method as a listener for a bus event.
|
|
7
|
-
* Pure event → (payload: EventMap[E]) => void | Promise<void>
|
|
8
|
-
* Callable event (rare) → (params: EventMap[E]['params']) => Promise<EventMap[E]['result']>
|
|
9
|
-
*
|
|
10
|
-
* Use @register instead for callable events that should be agent-accessible.
|
|
11
|
-
* Handlers are wired by bus.bootstrap() at boot.
|
|
12
|
-
*/
|
|
13
|
-
export function on(event) {
|
|
14
|
-
return function (method, context) {
|
|
15
|
-
context.addInitializer(function () {
|
|
16
|
-
const self = this;
|
|
17
|
-
(self[HANDLERS] ??= []).push({ event, method: String(context.name) });
|
|
18
|
-
});
|
|
19
|
-
return method;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Marks a method as a callable event provider.
|
|
24
|
-
*
|
|
25
|
-
* Params:
|
|
26
|
-
* - event: the callable event name (e.g., 'agent.execute')
|
|
27
|
-
* - tool: optional ToolSchema with description and zod schema
|
|
28
|
-
* If omitted, the callable is internal (not exposed as an agent tool)
|
|
29
|
-
*
|
|
30
|
-
* Signature: (params: EventMap[E]['params']) => Promise<EventMap[E]['result']>
|
|
31
|
-
*
|
|
32
|
-
* Handlers are wired by bus.bootstrap() at boot.
|
|
33
|
-
*/
|
|
34
|
-
export function register(event, tool) {
|
|
35
|
-
return function (method, context) {
|
|
36
|
-
context.addInitializer(function () {
|
|
37
|
-
const self = this;
|
|
38
|
-
(self[TOOLS] ??= []).push({ event, method: String(context.name), schema: tool });
|
|
39
|
-
});
|
|
40
|
-
return method;
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=decorators.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../gateway/decorators.ts"],"names":[],"mappings":"AAaA,iFAAiF;AAEjF,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAK,wBAAwB;AAC/E,MAAM,CAAC,MAAM,KAAK,GAAM,MAAM,CAAC,cAAc,CAAC,CAAC,CAAS,8BAA8B;AAgBtF,iFAAiF;AAEjF;;;;;;;GAOG;AACH,MAAM,UAAU,EAAE,CAA2B,KAAQ;IACnD,OAAO,UACL,MAAoB,EACpB,OAAoC;QAEpC,OAAO,CAAC,cAAc,CAAC;YACrB,MAAM,IAAI,GAAG,IAAmB,CAAC;YACjC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,QAAQ,CAA2B,KAAQ,EAAE,IAAiB;IAC5E,OAAO,UACL,MAAoB,EACpB,OAAoC;QAEpC,OAAO,CAAC,cAAc,CAAC;YACrB,MAAM,IAAI,GAAG,IAAmB,CAAC;YACjC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACnF,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import type { EventMap, EventMetadata } from './events.js';
|
|
2
|
-
import type { Bus, HandlerOf, CallableEventKey, PureEventKey } from './bus.js';
|
|
3
|
-
import { type ToolSchema } from './decorators.js';
|
|
4
|
-
import type { EventParams, EventResult } from './bus.js';
|
|
5
|
-
/**
|
|
6
|
-
* Predicate: is this event metadata a usable tool?
|
|
7
|
-
* (type === 'tool', has a description, and has a schema)
|
|
8
|
-
*/
|
|
9
|
-
export declare function isToolEvent(metadata: EventMetadata): boolean;
|
|
10
|
-
export declare class EventEmitterBus implements Bus {
|
|
11
|
-
private readonly ee;
|
|
12
|
-
private readonly timeoutMs;
|
|
13
|
-
private readonly callableRegistry;
|
|
14
|
-
private readonly handlersRegistry;
|
|
15
|
-
private readonly restartFactories;
|
|
16
|
-
private readonly teardowns;
|
|
17
|
-
constructor(timeoutMs?: number);
|
|
18
|
-
emit<E extends PureEventKey>(event: E, payload: EventMap[E]): void;
|
|
19
|
-
on<E extends PureEventKey>(event: E, handler: HandlerOf<E>): () => void;
|
|
20
|
-
/** Check if an event is callable (only events registered via @register). */
|
|
21
|
-
isCallable(eventName: string): boolean;
|
|
22
|
-
call<E extends CallableEventKey>(event: E, params: EventParams<E>): Promise<EventResult<E>>;
|
|
23
|
-
/**
|
|
24
|
-
* Reads @on and @register decorator metadata from a service instance (or the bus itself
|
|
25
|
-
* if no service provided) and wires all declared handlers to this bus.
|
|
26
|
-
*/
|
|
27
|
-
bootstrap(service?: object): void;
|
|
28
|
-
/**
|
|
29
|
-
* Register a new callable tool at runtime.
|
|
30
|
-
* Used by services (like MCP) to dynamically register tools after boot.
|
|
31
|
-
* Returns an unsubscribe function to remove the tool.
|
|
32
|
-
*/
|
|
33
|
-
registerTool(event: string, handler: (params: unknown) => Promise<unknown>, schema: ToolSchema): () => void;
|
|
34
|
-
/**
|
|
35
|
-
* Unregister a callable tool that was previously registered at runtime.
|
|
36
|
-
* Returns true if the tool existed and was removed, false otherwise.
|
|
37
|
-
*/
|
|
38
|
-
unregisterTool(event: string): boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Register a restart factory for a named service.
|
|
41
|
-
* Called by boot.ts at boot — internal, not exposed via JSON-RPC.
|
|
42
|
-
* Overwrites any existing factory for the same name (supports restart).
|
|
43
|
-
*/
|
|
44
|
-
onRestart(serviceName: string, factory: () => Promise<void>): void;
|
|
45
|
-
restart(params: EventMap['bus.restart']['params']): Promise<EventMap['bus.restart']['result']>;
|
|
46
|
-
status(_params?: EventMap['bus.status']['params']): Promise<EventMap['bus.status']['result']>;
|
|
47
|
-
search(params?: EventMap['bus.search']['params']): Promise<EventMetadata[]>;
|
|
48
|
-
inspect(params: EventMap['bus.inspect']['params']): Promise<EventMetadata | null>;
|
|
49
|
-
private registerHandlers;
|
|
50
|
-
private registerTools;
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=emitter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../gateway/emitter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC/E,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAiBzD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAE5D;AAED,qBAAa,eAAgB,YAAW,GAAG;IACzC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAsB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiC;IAClE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA0C;IAC3E,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;gBAE/C,SAAS,SAA0B;IAO/C,IAAI,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;IAIlE,EAAE,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAKvE,4EAA4E;IAC5E,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAItC,IAAI,CAAC,CAAC,SAAS,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IA0B3F;;;OAGG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAwCjC;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,IAAI;IAQ3G;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAQtC;;;;OAIG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAU5D,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC;IAW9F,MAAM,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC;IAgB7F,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IA2C3E,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAkCvF,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,aAAa;CAiBtB"}
|