@guardiojs/guardio 0.0.5 → 0.0.6
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/bin/guardio.mjs +5 -0
- package/dist/cli.js +18 -27
- package/dist/cli.js.map +1 -1
- package/dist/config/types.d.ts +8 -7
- package/dist/config/types.d.ts.map +1 -1
- package/dist/core/transports/create-client-transport.js +1 -1
- package/dist/core/transports/create-client-transport.js.map +1 -1
- package/package.json +1 -1
package/bin/guardio.mjs
ADDED
package/dist/cli.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CLI – load config
|
|
2
|
+
* CLI – load config and start Guardio as an HTTP server only.
|
|
3
|
+
* Requires server.type "url" (upstream MCP via HTTP/SSE). Clients connect to Guardio via HTTP.
|
|
3
4
|
*/
|
|
4
5
|
import { resolve, dirname } from "node:path";
|
|
5
|
-
import { GuardioCore } from "./core/index.js";
|
|
6
6
|
import { GuardioHttpServer } from "./server/index.js";
|
|
7
7
|
import { loadConfigFromPath, getConfigPath } from "./config/index.js";
|
|
8
8
|
import { logger } from "./logger.js";
|
|
@@ -10,6 +10,8 @@ const configIdx = process.argv.indexOf("--config");
|
|
|
10
10
|
const configPathArg = configIdx >= 0 && process.argv[configIdx + 1]
|
|
11
11
|
? process.argv[configIdx + 1]
|
|
12
12
|
: null;
|
|
13
|
+
const DEFAULT_PORT = 3939;
|
|
14
|
+
const DEFAULT_HOST = "127.0.0.1";
|
|
13
15
|
async function main() {
|
|
14
16
|
logger.debug({ argv: process.argv }, "CLI starting");
|
|
15
17
|
const resolved = configPathArg
|
|
@@ -33,36 +35,25 @@ async function main() {
|
|
|
33
35
|
headers: config.server.headers,
|
|
34
36
|
timeoutMs: config.server.timeoutMs,
|
|
35
37
|
};
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
logger.info({ port, host }, "Starting HTTP server mode");
|
|
48
|
-
const httpServer = new GuardioHttpServer({
|
|
49
|
-
server,
|
|
50
|
-
listen: { port, host },
|
|
51
|
-
cwd,
|
|
52
|
-
configPath,
|
|
53
|
-
});
|
|
54
|
-
await httpServer.run();
|
|
55
|
-
return;
|
|
38
|
+
const portEnv = process.env.GUARDIO_HTTP_PORT ?? process.env.GUARDIO_CLIENT_PORT;
|
|
39
|
+
const port = portEnv != null && portEnv !== ""
|
|
40
|
+
? parseInt(portEnv, 10)
|
|
41
|
+
: (config.client?.port ?? DEFAULT_PORT);
|
|
42
|
+
const host = process.env.GUARDIO_HTTP_HOST ?? config.client?.host ?? DEFAULT_HOST;
|
|
43
|
+
if (port == null || Number.isNaN(port)) {
|
|
44
|
+
logger.error("Set client.port in config or GUARDIO_HTTP_PORT (default " +
|
|
45
|
+
DEFAULT_PORT +
|
|
46
|
+
").");
|
|
47
|
+
process.exit(1);
|
|
56
48
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const core = new GuardioCore({
|
|
49
|
+
logger.info({ port, host }, "Starting HTTP server");
|
|
50
|
+
const httpServer = new GuardioHttpServer({
|
|
60
51
|
server,
|
|
61
|
-
|
|
52
|
+
listen: { port, host },
|
|
62
53
|
cwd,
|
|
63
54
|
configPath,
|
|
64
55
|
});
|
|
65
|
-
await
|
|
56
|
+
await httpServer.run();
|
|
66
57
|
}
|
|
67
58
|
main().catch((err) => {
|
|
68
59
|
logger.error({ err }, "Guardio failed to start");
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -38,16 +38,17 @@ export interface GuardioServerConfigUrl {
|
|
|
38
38
|
/** Server config: only HTTP/SSE URL is supported. */
|
|
39
39
|
export type GuardioServerConfig = GuardioServerConfigUrl;
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
42
|
-
* When mode is "http", port and host are the address the proxy listens on.
|
|
41
|
+
* Listen address for the Guardio HTTP server. Clients (e.g. AI Agents) connect to this URL.
|
|
43
42
|
*/
|
|
44
43
|
export interface GuardioClientConfig {
|
|
45
|
-
/**
|
|
46
|
-
mode: "stdio" | "http";
|
|
47
|
-
/** When mode is "http". Port the proxy listens on. Default 3939. */
|
|
44
|
+
/** Port the HTTP server listens on. Default 3939. */
|
|
48
45
|
port?: number;
|
|
49
|
-
/**
|
|
46
|
+
/** Host to bind. Default "127.0.0.1". Use "0.0.0.0" for external connections. */
|
|
50
47
|
host?: string;
|
|
48
|
+
/**
|
|
49
|
+
* @deprecated Guardio is HTTP-only; mode is ignored. Use port/host to configure the server.
|
|
50
|
+
*/
|
|
51
|
+
mode?: "http";
|
|
51
52
|
}
|
|
52
53
|
/**
|
|
53
54
|
* Guardio config file shape (default export of guardio.config.ts / .json).
|
|
@@ -55,7 +56,7 @@ export interface GuardioClientConfig {
|
|
|
55
56
|
export interface GuardioConfig {
|
|
56
57
|
/** MCP server to proxy to (HTTP/SSE URL). Required. */
|
|
57
58
|
server: GuardioServerConfig;
|
|
58
|
-
/**
|
|
59
|
+
/** Where Guardio HTTP server listens (port, host). Optional; defaults port 3939, host 127.0.0.1. */
|
|
59
60
|
client?: GuardioClientConfig;
|
|
60
61
|
plugins: PluginConfigEntry[];
|
|
61
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,kJAAkJ;IAClJ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,wJAAwJ;IACxJ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,uBAAuB,GACvB,6BAA6B,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qDAAqD;AACrD,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,kJAAkJ;IAClJ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,wJAAwJ;IACxJ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,uBAAuB,GACvB,6BAA6B,CAAC;AAElC;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qDAAqD;AACrD,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,oGAAoG;IACpG,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { StdioClientTransport } from "./stdio-client.js";
|
|
2
2
|
import { HttpClientTransport } from "./http-client.js";
|
|
3
3
|
import { logger } from "../../logger.js";
|
|
4
|
-
const DEFAULT_CLIENT = { mode: "
|
|
4
|
+
const DEFAULT_CLIENT = { mode: "http" };
|
|
5
5
|
/**
|
|
6
6
|
* Creates a ClientTransport from config. Default is stdio when client is omitted.
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-client-transport.js","sourceRoot":"","sources":["../../../src/core/transports/create-client-transport.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,cAAc,GAAwB,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"create-client-transport.js","sourceRoot":"","sources":["../../../src/core/transports/create-client-transport.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,cAAc,GAAwB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAS7D;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,YAAyC,EACzC,OAAsC;IAEtC,MAAM,MAAM,GAAG,YAAY,IAAI,cAAc,CAAC;IAC9C,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,gCAAgC,CAAC,CAAC;QAC/D,OAAO,IAAI,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAChD,OAAO,IAAI,oBAAoB,EAAE,CAAC;AACpC,CAAC"}
|