remote-access-mcp 2.3.1 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.fa.md +34 -0
- package/README.md +56 -2
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +282 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/core/config.d.ts +10 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +5 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/fleet.d.ts +71 -0
- package/dist/core/fleet.d.ts.map +1 -0
- package/dist/core/fleet.js +148 -0
- package/dist/core/fleet.js.map +1 -0
- package/dist/core/policy.d.ts.map +1 -1
- package/dist/core/policy.js +1 -0
- package/dist/core/policy.js.map +1 -1
- package/dist/core/tunnel.d.ts.map +1 -1
- package/dist/core/tunnel.js +4 -0
- package/dist/core/tunnel.js.map +1 -1
- package/dist/core/webhooks.d.ts +18 -0
- package/dist/core/webhooks.d.ts.map +1 -0
- package/dist/core/webhooks.js +81 -0
- package/dist/core/webhooks.js.map +1 -0
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +7 -0
- package/dist/server/app.js.map +1 -1
- package/dist/server/run.d.ts.map +1 -1
- package/dist/server/run.js +40 -8
- package/dist/server/run.js.map +1 -1
- package/dist/tools/filesystem.d.ts.map +1 -1
- package/dist/tools/filesystem.js +59 -12
- package/dist/tools/filesystem.js.map +1 -1
- package/dist/tools/fleet.d.ts +4 -0
- package/dist/tools/fleet.d.ts.map +1 -0
- package/dist/tools/fleet.js +39 -0
- package/dist/tools/fleet.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/logs.d.ts.map +1 -1
- package/dist/tools/logs.js +24 -3
- package/dist/tools/logs.js.map +1 -1
- package/dist/tools/packages.d.ts.map +1 -1
- package/dist/tools/packages.js +11 -1
- package/dist/tools/packages.js.map +1 -1
- package/dist/tools/services.d.ts.map +1 -1
- package/dist/tools/services.js +21 -4
- package/dist/tools/services.js.map +1 -1
- package/dist/tools/shell.d.ts +4 -0
- package/dist/tools/shell.d.ts.map +1 -1
- package/dist/tools/shell.js +34 -6
- package/dist/tools/shell.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { RamcpConfig } from './config.js';
|
|
2
|
+
import type { AuditEntry } from './audit.js';
|
|
3
|
+
export interface WebhookEvent {
|
|
4
|
+
type: string;
|
|
5
|
+
tool?: string;
|
|
6
|
+
token_fingerprint?: string;
|
|
7
|
+
detail?: Record<string, unknown>;
|
|
8
|
+
ts: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function webhookStats(): {
|
|
11
|
+
sent: number;
|
|
12
|
+
failed: number;
|
|
13
|
+
};
|
|
14
|
+
/** Test hook: clear dedupe window and counters so suites stay independent. */
|
|
15
|
+
export declare function __resetWebhooksForTests(): void;
|
|
16
|
+
/** Notify all enabled webhooks subscribed to this event type. Non-blocking. */
|
|
17
|
+
export declare function notifyWebhooks(cfg: RamcpConfig, entry: Omit<AuditEntry, 'prev_hash' | 'hash'>): void;
|
|
18
|
+
//# sourceMappingURL=webhooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/core/webhooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAc7C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,EAAE,EAAE,MAAM,CAAC;CACZ;AAMD,wBAAgB,YAAY,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAE/D;AAED,8EAA8E;AAC9E,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C;AAcD,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,MAAM,CAAC,GAAG,IAAI,CA0CpG"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Outbound webhook notifications for audit events.
|
|
3
|
+
*
|
|
4
|
+
* Fire-and-forget by design: a slow or dead webhook endpoint must never
|
|
5
|
+
* stall a tool call. POSTs are bounded (5s timeout), deduplicated per event
|
|
6
|
+
* type within a short window (a chat client firing 50 tool calls in one turn
|
|
7
|
+
* should not hammer the webhook 50 times), and failures are swallowed into
|
|
8
|
+
* a counter the CLI can read.
|
|
9
|
+
*/
|
|
10
|
+
const DEDUPE_WINDOW_MS = 10_000;
|
|
11
|
+
const recentFingerprints = new Map();
|
|
12
|
+
let sentCount = 0;
|
|
13
|
+
let failedCount = 0;
|
|
14
|
+
export function webhookStats() {
|
|
15
|
+
return { sent: sentCount, failed: failedCount };
|
|
16
|
+
}
|
|
17
|
+
/** Test hook: clear dedupe window and counters so suites stay independent. */
|
|
18
|
+
export function __resetWebhooksForTests() {
|
|
19
|
+
recentFingerprints.clear();
|
|
20
|
+
sentCount = 0;
|
|
21
|
+
failedCount = 0;
|
|
22
|
+
}
|
|
23
|
+
/** Classify an audit row into event types worth notifying about. */
|
|
24
|
+
function classify(entry) {
|
|
25
|
+
if (entry.is_error === 1)
|
|
26
|
+
return 'tool.error';
|
|
27
|
+
// auth failures never reach the audit log (401 happens before tools), so
|
|
28
|
+
// errors + successes are the two streamable events.
|
|
29
|
+
return 'tool.success';
|
|
30
|
+
}
|
|
31
|
+
function dedupeKey(ev) {
|
|
32
|
+
return `${ev.type}:${ev.tool || '-'}:${ev.token_fingerprint || '-'}`;
|
|
33
|
+
}
|
|
34
|
+
/** Notify all enabled webhooks subscribed to this event type. Non-blocking. */
|
|
35
|
+
export function notifyWebhooks(cfg, entry) {
|
|
36
|
+
const hooks = (cfg.webhooks || []).filter(w => w.enabled && w.url);
|
|
37
|
+
if (!hooks.length)
|
|
38
|
+
return;
|
|
39
|
+
const type = classify(entry);
|
|
40
|
+
if (!type)
|
|
41
|
+
return;
|
|
42
|
+
// Skip if no hook actually subscribes to this type ('*' = all).
|
|
43
|
+
const matching = hooks.filter(w => w.events.includes('*') || w.events.includes(type));
|
|
44
|
+
if (!matching.length)
|
|
45
|
+
return;
|
|
46
|
+
const ev = {
|
|
47
|
+
type,
|
|
48
|
+
tool: entry.tool,
|
|
49
|
+
token_fingerprint: entry.token_fingerprint,
|
|
50
|
+
detail: { is_error: entry.is_error, duration_ms: entry.duration_ms },
|
|
51
|
+
ts: entry.ts,
|
|
52
|
+
};
|
|
53
|
+
// Dedupe identical events inside the window: a retry loop of the same
|
|
54
|
+
// failing tool is one notification, not twenty.
|
|
55
|
+
const key = dedupeKey(ev);
|
|
56
|
+
const now = Date.now();
|
|
57
|
+
const last = recentFingerprints.get(key) || 0;
|
|
58
|
+
if (now - last < DEDUPE_WINDOW_MS)
|
|
59
|
+
return;
|
|
60
|
+
recentFingerprints.set(key, now);
|
|
61
|
+
if (recentFingerprints.size > 500) {
|
|
62
|
+
// prune map so long-running gateways don't grow it forever
|
|
63
|
+
for (const [k, t] of recentFingerprints) {
|
|
64
|
+
if (now - t > DEDUPE_WINDOW_MS)
|
|
65
|
+
recentFingerprints.delete(k);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
for (const hook of matching) {
|
|
69
|
+
void fetch(hook.url, {
|
|
70
|
+
method: 'POST',
|
|
71
|
+
headers: { 'Content-Type': 'application/json', 'User-Agent': 'remote-access-mcp-webhook' },
|
|
72
|
+
body: JSON.stringify(ev),
|
|
73
|
+
signal: AbortSignal.timeout(5000),
|
|
74
|
+
}).then(r => { if (r.ok)
|
|
75
|
+
sentCount++;
|
|
76
|
+
else
|
|
77
|
+
failedCount++; })
|
|
78
|
+
.catch(() => { failedCount++; });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=webhooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/core/webhooks.ts"],"names":[],"mappings":"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"}
|
package/dist/server/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"AAAA,OAAO,OAA2D,MAAM,SAAS,CAAC;AAQlF,OAAO,EAA4C,KAAK,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AACjH,OAAO,EAAE,aAAa,EAAoB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAc,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"AAAA,OAAO,OAA2D,MAAM,SAAS,CAAC;AAQlF,OAAO,EAA4C,KAAK,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AACjH,OAAO,EAAE,aAAa,EAAoB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAc,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAKjD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,cAAc,CAAC;IAC1B,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAkBjD;AAED,wBAAgB,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG;IAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;IAAC,GAAG,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,CAuY9G;AAGD,wBAAgB,kBAAkB;SA1YqB,OAAO,CAAC,OAAO;SAAO,WAAW;WAAS,YAAY;EA4Y5G"}
|
package/dist/server/app.js
CHANGED
|
@@ -11,6 +11,7 @@ import { AuditLog, redactArgs } from '../core/audit.js';
|
|
|
11
11
|
import { RateLimiter } from '../core/rate-limit.js';
|
|
12
12
|
import { tokensMatch } from '../core/crypto.js';
|
|
13
13
|
import { registerAllTools } from '../tools/index.js';
|
|
14
|
+
import { notifyWebhooks } from '../core/webhooks.js';
|
|
14
15
|
import { SessionStore } from './sessions.js';
|
|
15
16
|
import { LegacySseStore } from './legacy-sse.js';
|
|
16
17
|
const PKG_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..');
|
|
@@ -194,6 +195,12 @@ export function buildApp(state) {
|
|
|
194
195
|
result = { content: [{ type: 'text', text: e?.message || 'tool error' }], isError: true };
|
|
195
196
|
}
|
|
196
197
|
ctx.audit(name, args || {}, !isError, isError, Date.now() - started);
|
|
198
|
+
// Webhook notifications ride along with audit — fire-and-forget,
|
|
199
|
+
// never part of the request path.
|
|
200
|
+
try {
|
|
201
|
+
notifyWebhooks(gw.cfg, { ts: Date.now(), token_fingerprint: AuditLog.fingerprint(token.token), tool: name, args_json: '', ok: !isError ? 1 : 0, is_error: isError ? 1 : 0, duration_ms: Date.now() - started });
|
|
202
|
+
}
|
|
203
|
+
catch { /* advisory */ }
|
|
197
204
|
return result;
|
|
198
205
|
};
|
|
199
206
|
return origRegister(name, config, wrapped);
|
package/dist/server/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"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"}
|
package/dist/server/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/server/run.ts"],"names":[],"mappings":"AAgBA,wBAAsB,SAAS,CAAC,IAAI,GAAE;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACb,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/server/run.ts"],"names":[],"mappings":"AAgBA,wBAAsB,SAAS,CAAC,IAAI,GAAE;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CACb,GAAG,OAAO,CAAC,IAAI,CAAC,CAkGrB"}
|
package/dist/server/run.js
CHANGED
|
@@ -4,10 +4,10 @@ import { promisify } from 'node:util';
|
|
|
4
4
|
import fs from 'node:fs';
|
|
5
5
|
import path from 'node:path';
|
|
6
6
|
import { fileURLToPath } from 'node:url';
|
|
7
|
-
import { loadLiveConfig
|
|
7
|
+
import { loadLiveConfig } from '../core/config.js';
|
|
8
8
|
import { buildApp } from './app.js';
|
|
9
9
|
import { startScheduler } from '../tools/schedule.js';
|
|
10
|
-
import { shellCommand, childEnv, platformLabel } from '../core/platform.js';
|
|
10
|
+
import { shellCommand, childEnv, platformLabel, writeRuntimeState, clearRuntimeState } from '../core/platform.js';
|
|
11
11
|
import { startQuickTunnel } from '../core/tunnel.js';
|
|
12
12
|
const exec = promisify(execFile);
|
|
13
13
|
const PKG_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..');
|
|
@@ -38,6 +38,12 @@ export async function runServer(opts = {}) {
|
|
|
38
38
|
const httpServer = createServer(app);
|
|
39
39
|
let tunnel = null;
|
|
40
40
|
await new Promise((resolve) => httpServer.listen(port, host, () => resolve()));
|
|
41
|
+
// Live state for `ramcp url` / `ramcp doctor` in other terminals.
|
|
42
|
+
// The tunnel URL is only valid while THIS process runs, so it goes to
|
|
43
|
+
// runtime.json (ephemeral, pid-checked) — never into config.json, where
|
|
44
|
+
// it would clobber a server's real public_host the moment someone ran
|
|
45
|
+
// `ramcp tunnel` on it.
|
|
46
|
+
writeRuntimeState({ pid: process.pid, host, port, started: new Date().toISOString() });
|
|
41
47
|
console.log(`remote-access-mcp v${PKG.version} on ${platformLabel()}`);
|
|
42
48
|
console.log(`listening: ${host}:${port}`);
|
|
43
49
|
console.log(`tokens: ${cfg.tokens.length} | audit: ${cfg.audit.enabled ? 'on' : 'off'} | read_only: ${cfg.read_only ? 'on' : 'off'}`);
|
|
@@ -45,13 +51,36 @@ export async function runServer(opts = {}) {
|
|
|
45
51
|
if (wantTunnel) {
|
|
46
52
|
try {
|
|
47
53
|
tunnel = await startQuickTunnel({ port, host, log: (m) => console.log(`[tunnel] ${m}`) });
|
|
48
|
-
|
|
49
|
-
// Persist so `ramcp url` prints the live public URL from any terminal.
|
|
50
|
-
const stored = loadConfig();
|
|
51
|
-
stored.public_host = publicHost;
|
|
52
|
-
saveConfig(stored);
|
|
54
|
+
writeRuntimeState({ pid: process.pid, tunnel_url: tunnel.url, host, port, started: new Date().toISOString() });
|
|
53
55
|
console.log(`\npublic URL: ${tunnel.url}${cfg.mcp_path}`);
|
|
54
56
|
console.log(`connector: ${tunnel.url}/${cfg.tokens[0].token}${cfg.mcp_path}`);
|
|
57
|
+
// Verify the public URL actually answers. Quick tunnels are best-effort:
|
|
58
|
+
// on a few networks (some datacenters, filtered ISPs) the edge accepts
|
|
59
|
+
// the connection but never proxies traffic. Telling the user now beats
|
|
60
|
+
// them pasting a dead URL into a chatbot later.
|
|
61
|
+
try {
|
|
62
|
+
const deadline = Date.now() + 20_000;
|
|
63
|
+
let healthy = false;
|
|
64
|
+
while (Date.now() < deadline && !healthy) {
|
|
65
|
+
try {
|
|
66
|
+
const r = await fetch(`${tunnel.url}/health`, { signal: AbortSignal.timeout(5000) });
|
|
67
|
+
healthy = r.ok;
|
|
68
|
+
}
|
|
69
|
+
catch { /* DNS/edge propagation — retry */ }
|
|
70
|
+
if (!healthy)
|
|
71
|
+
await new Promise((r) => setTimeout(r, 3000));
|
|
72
|
+
}
|
|
73
|
+
if (healthy) {
|
|
74
|
+
console.log(`[tunnel] verified: the public URL answers from the internet.`);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
console.log(`[tunnel] WARNING: could not reach ${tunnel.url} from here.`);
|
|
78
|
+
console.log(`[tunnel] Some networks (filtered ISPs, certain datacenters) block the`);
|
|
79
|
+
console.log(`[tunnel] tunnel data path. Try a different network, or host the gateway`);
|
|
80
|
+
console.log(`[tunnel] on a server with a real domain instead.`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch { /* verification is advisory only */ }
|
|
55
84
|
console.log(`\n(keep this process running — the URL dies when it exits)`);
|
|
56
85
|
}
|
|
57
86
|
catch (e) {
|
|
@@ -64,7 +93,7 @@ export async function runServer(opts = {}) {
|
|
|
64
93
|
}
|
|
65
94
|
else {
|
|
66
95
|
console.log(`endpoint: http://${host}:${port}${cfg.mcp_path}`);
|
|
67
|
-
console.log(`tip: no public IP? run \`ramcp
|
|
96
|
+
console.log(`tip: no public IP? run \`ramcp tunnel\` for an instant https URL.`);
|
|
68
97
|
}
|
|
69
98
|
let shuttingDown = false;
|
|
70
99
|
const shutdown = () => {
|
|
@@ -73,11 +102,14 @@ export async function runServer(opts = {}) {
|
|
|
73
102
|
shuttingDown = true;
|
|
74
103
|
console.log('\nshutting down...');
|
|
75
104
|
tunnel?.stop();
|
|
105
|
+
clearRuntimeState();
|
|
76
106
|
httpServer.close(() => process.exit(0));
|
|
77
107
|
setTimeout(() => process.exit(0), 3000).unref();
|
|
78
108
|
};
|
|
79
109
|
process.on('SIGINT', shutdown);
|
|
80
110
|
process.on('SIGTERM', shutdown);
|
|
111
|
+
// Windows services (schtasks) stop without POSIX signals.
|
|
112
|
+
process.on('exit', () => clearRuntimeState());
|
|
81
113
|
}
|
|
82
114
|
// Direct execution: `node dist/server/run.js`
|
|
83
115
|
if (import.meta.url === `file://${process.argv[1]}`) {
|
package/dist/server/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/server/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/server/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/tools/filesystem.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAsC,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/tools/filesystem.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAsC,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CA4MjF;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/tools/filesystem.js
CHANGED
|
@@ -3,6 +3,10 @@ import fsp from 'node:fs/promises';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { assertToolPermitted, PolicyError } from '../core/policy.js';
|
|
6
|
+
import { sshRun, assertCapability, buildReadCommand, buildWriteCommand, buildDeleteCommand, buildListCommand, buildFileInfoCommand, buildSearchCommand } from '../core/fleet.js';
|
|
7
|
+
import { hostParam } from './shell.js';
|
|
8
|
+
const B64_DECODE = (s) => Buffer.from(s.replace(/\n/g, ''), 'base64').toString('utf8');
|
|
9
|
+
function fleetHostsOf(ctx) { return ctx.cfg.fleet?.hosts || []; }
|
|
6
10
|
export function registerFilesystemTools(server, ctx) {
|
|
7
11
|
const perm = (tool, target) => assertToolPermitted({ tool, scopes: ctx.token.scopes, readOnly: ctx.readOnly, policy: policy(), target });
|
|
8
12
|
const policy = () => ({
|
|
@@ -12,9 +16,14 @@ export function registerFilesystemTools(server, ctx) {
|
|
|
12
16
|
});
|
|
13
17
|
// ---- list_directory ---------------------------------------------------
|
|
14
18
|
server.registerTool('list_directory', {
|
|
15
|
-
description: 'List a directory. Policy-checked.',
|
|
16
|
-
inputSchema: { path: z.string().describe('Directory path') },
|
|
17
|
-
}, async ({ path: dir }) => {
|
|
19
|
+
description: 'List a directory. Policy-checked locally; on fleet hosts needs the fs group.',
|
|
20
|
+
inputSchema: { path: z.string().describe('Directory path'), ...hostParam(ctx) },
|
|
21
|
+
}, async ({ path: dir, host }) => {
|
|
22
|
+
if (host) {
|
|
23
|
+
const h = assertCapability(fleetHostsOf(ctx), host, 'fs');
|
|
24
|
+
const { stdout } = await sshRun(h.host, h.port, buildListCommand(dir));
|
|
25
|
+
return { content: [{ type: 'text', text: stdout || '(empty)' }] };
|
|
26
|
+
}
|
|
18
27
|
perm('list_directory', dir);
|
|
19
28
|
const entries = await fsp.readdir(dir, { withFileTypes: true });
|
|
20
29
|
const lines = entries.map(e => {
|
|
@@ -30,8 +39,22 @@ export function registerFilesystemTools(server, ctx) {
|
|
|
30
39
|
path: z.string().describe('File path'),
|
|
31
40
|
offset: z.number().optional().describe('Start line (1-based)'),
|
|
32
41
|
limit: z.number().optional().describe('Max lines to return'),
|
|
42
|
+
...hostParam(ctx),
|
|
33
43
|
},
|
|
34
|
-
}, async ({ path: file, offset, limit }) => {
|
|
44
|
+
}, async ({ path: file, offset, limit, host }) => {
|
|
45
|
+
if (host) {
|
|
46
|
+
const h = assertCapability(fleetHostsOf(ctx), host, 'fs');
|
|
47
|
+
const { stdout } = await sshRun(h.host, h.port, buildReadCommand(file));
|
|
48
|
+
if (!stdout.trim())
|
|
49
|
+
return { content: [{ type: 'text', text: `No such file or unreadable: ${file}` }], isError: true };
|
|
50
|
+
let data = B64_DECODE(stdout.trim());
|
|
51
|
+
if (offset || limit) {
|
|
52
|
+
const lines = data.split('\n');
|
|
53
|
+
const start = Math.max((offset || 1) - 1, 0);
|
|
54
|
+
data = lines.slice(start, start + (limit || lines.length)).join('\n');
|
|
55
|
+
}
|
|
56
|
+
return { content: [{ type: 'text', text: data }] };
|
|
57
|
+
}
|
|
35
58
|
perm('read_file', file);
|
|
36
59
|
let data = await fsp.readFile(file, 'utf8');
|
|
37
60
|
if (offset || limit) {
|
|
@@ -48,8 +71,15 @@ export function registerFilesystemTools(server, ctx) {
|
|
|
48
71
|
path: z.string().describe('File path'),
|
|
49
72
|
content: z.string().describe('Full file content'),
|
|
50
73
|
mkdir: z.boolean().optional().default(true).describe('Create parent directories'),
|
|
74
|
+
...hostParam(ctx),
|
|
51
75
|
},
|
|
52
|
-
}, async ({ path: file, content, mkdir }) => {
|
|
76
|
+
}, async ({ path: file, content, mkdir, host }) => {
|
|
77
|
+
if (host) {
|
|
78
|
+
const h = assertCapability(fleetHostsOf(ctx), host, 'fs');
|
|
79
|
+
const b64 = Buffer.from(content, 'utf8').toString('base64');
|
|
80
|
+
await sshRun(h.host, h.port, buildWriteCommand(file, content, mkdir), { stdin: b64 });
|
|
81
|
+
return { content: [{ type: 'text', text: `Wrote ${Buffer.byteLength(content)} bytes to ${file} on ${host}` }] };
|
|
82
|
+
}
|
|
53
83
|
perm('write_file', file);
|
|
54
84
|
if (mkdir)
|
|
55
85
|
await fsp.mkdir(path.dirname(file), { recursive: true });
|
|
@@ -77,9 +107,14 @@ export function registerFilesystemTools(server, ctx) {
|
|
|
77
107
|
});
|
|
78
108
|
// ---- delete_path -------------------------------------------------------
|
|
79
109
|
server.registerTool('delete_path', {
|
|
80
|
-
description: 'Delete a file or a directory tree. Policy-checked. Destructive.',
|
|
81
|
-
inputSchema: { path: z.string().describe('Path to delete') },
|
|
82
|
-
}, async ({ path: target }) => {
|
|
110
|
+
description: 'Delete a file or a directory tree. Policy-checked locally. Destructive.',
|
|
111
|
+
inputSchema: { path: z.string().describe('Path to delete'), ...hostParam(ctx) },
|
|
112
|
+
}, async ({ path: target, host }) => {
|
|
113
|
+
if (host) {
|
|
114
|
+
const h = assertCapability(fleetHostsOf(ctx), host, 'fs');
|
|
115
|
+
await sshRun(h.host, h.port, buildDeleteCommand(target));
|
|
116
|
+
return { content: [{ type: 'text', text: `Deleted ${target} on ${host}` }] };
|
|
117
|
+
}
|
|
83
118
|
perm('delete_path', target);
|
|
84
119
|
const st = fs.lstatSync(target);
|
|
85
120
|
if (st.isDirectory()) {
|
|
@@ -98,8 +133,15 @@ export function registerFilesystemTools(server, ctx) {
|
|
|
98
133
|
pattern: z.string().describe('JavaScript regex, e.g. "TODO|FIXME"'),
|
|
99
134
|
include: z.string().optional().describe('Substring filter for file names, e.g. ".ts"'),
|
|
100
135
|
max_results: z.number().optional().default(100).describe('Cap on matches'),
|
|
136
|
+
...hostParam(ctx),
|
|
101
137
|
},
|
|
102
|
-
}, async ({ path: dir, pattern, include, max_results }) => {
|
|
138
|
+
}, async ({ path: dir, pattern, include, max_results, host }) => {
|
|
139
|
+
if (host) {
|
|
140
|
+
const h = assertCapability(fleetHostsOf(ctx), host, 'fs');
|
|
141
|
+
const cmd = buildSearchCommand(dir, pattern, max_results) + (include ? ` | grep ${include}` : '');
|
|
142
|
+
const { stdout } = await sshRun(h.host, h.port, cmd, { timeoutMs: 180_000 });
|
|
143
|
+
return { content: [{ type: 'text', text: stdout || 'No matches' }] };
|
|
144
|
+
}
|
|
103
145
|
perm('search_code', dir);
|
|
104
146
|
const re = new RegExp(pattern);
|
|
105
147
|
const results = [];
|
|
@@ -146,9 +188,14 @@ export function registerFilesystemTools(server, ctx) {
|
|
|
146
188
|
});
|
|
147
189
|
// ---- file_info -----------------------------------------------------------
|
|
148
190
|
server.registerTool('file_info', {
|
|
149
|
-
description: 'Stat a file or directory: size, timestamps, permissions, owner. Policy-checked.',
|
|
150
|
-
inputSchema: { path: z.string().describe('Path') },
|
|
151
|
-
}, async ({ path: target }) => {
|
|
191
|
+
description: 'Stat a file or directory: size, timestamps, permissions, owner. Policy-checked locally.',
|
|
192
|
+
inputSchema: { path: z.string().describe('Path'), ...hostParam(ctx) },
|
|
193
|
+
}, async ({ path: target, host }) => {
|
|
194
|
+
if (host) {
|
|
195
|
+
const h = assertCapability(fleetHostsOf(ctx), host, 'fs');
|
|
196
|
+
const { stdout } = await sshRun(h.host, h.port, buildFileInfoCommand(target));
|
|
197
|
+
return { content: [{ type: 'text', text: stdout }] };
|
|
198
|
+
}
|
|
152
199
|
perm('file_info', target);
|
|
153
200
|
const st = await fsp.stat(target);
|
|
154
201
|
const out = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/tools/filesystem.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/tools/filesystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet.d.ts","sourceRoot":"","sources":["../../src/tools/fleet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAetD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CA+B5E"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { fleetProbe } from '../core/fleet.js';
|
|
2
|
+
/**
|
|
3
|
+
* Fleet meta-tools: listing and probing the machines this gateway can drive.
|
|
4
|
+
* The actual remote operations (run_command, read_file, …) live in their own
|
|
5
|
+
* suites — each gained an optional `host` parameter that routes over SSH
|
|
6
|
+
* when provided. This split keeps one tool per verb (the AI does not have
|
|
7
|
+
* to learn "remote_run_command") while the per-host allowlist gates access.
|
|
8
|
+
*/
|
|
9
|
+
function hostList(ctx) {
|
|
10
|
+
return ctx.cfg.fleet?.hosts || [];
|
|
11
|
+
}
|
|
12
|
+
export function registerFleetTools(server, ctx) {
|
|
13
|
+
// ---- fleet_list ---------------------------------------------------------
|
|
14
|
+
server.registerTool('fleet_list', {
|
|
15
|
+
description: 'List fleet machines this gateway can reach over SSH, with their granted tool groups.',
|
|
16
|
+
inputSchema: {},
|
|
17
|
+
}, async () => {
|
|
18
|
+
const hosts = hostList(ctx);
|
|
19
|
+
if (!hosts.length)
|
|
20
|
+
return { content: [{ type: 'text', text: '(no fleet hosts — add with `ramcp fleet add`)' }] };
|
|
21
|
+
const out = hosts.map(h => `${h.name.padEnd(14)} ${h.host}${h.port ? ':' + h.port : ''} tools: ${h.tools.join(',') || '(none)'}${h.note ? ' — ' + h.note : ''}`);
|
|
22
|
+
return { content: [{ type: 'text', text: out.join('\n') }] };
|
|
23
|
+
});
|
|
24
|
+
// ---- fleet_status ----------------------------------------------------------
|
|
25
|
+
server.registerTool('fleet_status', {
|
|
26
|
+
description: 'Probe every fleet machine over SSH. Reports reachable/unreachable per host.',
|
|
27
|
+
inputSchema: {},
|
|
28
|
+
}, async () => {
|
|
29
|
+
const hosts = hostList(ctx);
|
|
30
|
+
if (!hosts.length)
|
|
31
|
+
return { content: [{ type: 'text', text: '(no fleet hosts)' }] };
|
|
32
|
+
const results = await Promise.all(hosts.map(async (h) => {
|
|
33
|
+
const r = await fleetProbe(h);
|
|
34
|
+
return `${r.ok ? '✔' : '✖'} ${h.name.padEnd(14)} ${h.host}${h.port ? ':' + h.port : ''} ${r.ok ? 'reachable' : 'unreachable — ' + r.detail}`;
|
|
35
|
+
}));
|
|
36
|
+
return { content: [{ type: 'text', text: results.join('\n') }] };
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=fleet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../src/tools/fleet.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAE9D;;;;;;GAMG;AAEH,SAAS,QAAQ,CAAC,GAAgB;IAChC,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,GAAgB;IACpE,4EAA4E;IAC5E,MAAM,CAAC,YAAY,CAAC,YAAY,EAC9B;QACE,WAAW,EAAE,sFAAsF;QACnG,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE;QACT,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+CAA+C,EAAE,CAAC,EAAE,CAAC;QACjH,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACxB,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACvI,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEL,+EAA+E;IAC/E,MAAM,CAAC,YAAY,CAAC,cAAc,EAChC;QACE,WAAW,EAAE,6EAA6E;QAC1F,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE;QACT,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;QACpF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,CAAC,EAAC,EAAE;YACpD,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;YAC9B,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QAC/I,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAoBtD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBzF"}
|
package/dist/tools/index.js
CHANGED
|
@@ -14,6 +14,7 @@ import { registerProjectTools } from './project.js';
|
|
|
14
14
|
import { registerWebTools } from './web.js';
|
|
15
15
|
import { registerPlanningTools } from './planning.js';
|
|
16
16
|
import { registerOpsTools } from './ops.js';
|
|
17
|
+
import { registerFleetTools } from './fleet.js';
|
|
17
18
|
import { registerIntegrationTools } from './integrations.js';
|
|
18
19
|
/**
|
|
19
20
|
* Register every tool suite for this request's token context.
|
|
@@ -36,6 +37,7 @@ export async function registerAllTools(server, ctx) {
|
|
|
36
37
|
registerWebTools(server, ctx);
|
|
37
38
|
registerPlanningTools(server, ctx);
|
|
38
39
|
registerOpsTools(server, ctx);
|
|
40
|
+
registerFleetTools(server, ctx);
|
|
39
41
|
// Integration subprocesses are disabled in the unit-test environment so
|
|
40
42
|
// core transport/auth tests stay deterministic. Production loads them
|
|
41
43
|
// before the MCP transport connects, so the initial tools/list is complete.
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAiB,EAAE,GAAgB;IACxE,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAiB,EAAE,GAAgB;IACxE,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAClC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEhC,wEAAwE;IACxE,sEAAsE;IACtE,4EAA4E;IAC5E,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAC3D,MAAM,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC"}
|
package/dist/tools/logs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/tools/logs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/tools/logs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQtD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAiH1E"}
|