@guardiojs/guardio 0.0.3 → 0.0.5

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 (80) hide show
  1. package/dist/cli.js +50 -54
  2. package/dist/cli.js.map +1 -1
  3. package/dist/config/PluginManager.d.ts +4 -0
  4. package/dist/config/PluginManager.d.ts.map +1 -1
  5. package/dist/config/PluginManager.js +17 -1
  6. package/dist/config/PluginManager.js.map +1 -1
  7. package/dist/config/index.d.ts +2 -2
  8. package/dist/config/index.d.ts.map +1 -1
  9. package/dist/config/index.js +1 -1
  10. package/dist/config/index.js.map +1 -1
  11. package/dist/config/types.d.ts +26 -7
  12. package/dist/config/types.d.ts.map +1 -1
  13. package/dist/core/GuardioActions.d.ts +12 -0
  14. package/dist/core/GuardioActions.d.ts.map +1 -0
  15. package/dist/core/GuardioActions.js +12 -0
  16. package/dist/core/GuardioActions.js.map +1 -0
  17. package/dist/core/GuardioCore.d.ts +22 -9
  18. package/dist/core/GuardioCore.d.ts.map +1 -1
  19. package/dist/core/GuardioCore.js +175 -74
  20. package/dist/core/GuardioCore.js.map +1 -1
  21. package/dist/core/GuardioErrorCodes.d.ts +42 -0
  22. package/dist/core/GuardioErrorCodes.d.ts.map +1 -0
  23. package/dist/core/GuardioErrorCodes.js +71 -0
  24. package/dist/core/GuardioErrorCodes.js.map +1 -0
  25. package/dist/core/transports/create-client-transport.d.ts +14 -0
  26. package/dist/core/transports/create-client-transport.d.ts.map +1 -0
  27. package/dist/core/transports/create-client-transport.js +19 -0
  28. package/dist/core/transports/create-client-transport.js.map +1 -0
  29. package/dist/core/transports/http-client.d.ts +27 -0
  30. package/dist/core/transports/http-client.d.ts.map +1 -0
  31. package/dist/core/transports/http-client.js +86 -0
  32. package/dist/core/transports/http-client.js.map +1 -0
  33. package/dist/core/transports/index.d.ts +13 -0
  34. package/dist/core/transports/index.d.ts.map +1 -0
  35. package/dist/core/transports/index.js +11 -0
  36. package/dist/core/transports/index.js.map +1 -0
  37. package/dist/core/transports/sse-url-transport.d.ts +26 -0
  38. package/dist/core/transports/sse-url-transport.d.ts.map +1 -0
  39. package/dist/core/transports/sse-url-transport.js +111 -0
  40. package/dist/core/transports/sse-url-transport.js.map +1 -0
  41. package/dist/core/transports/stdio-client.d.ts +12 -0
  42. package/dist/core/transports/stdio-client.d.ts.map +1 -0
  43. package/dist/core/transports/stdio-client.js +25 -0
  44. package/dist/core/transports/stdio-client.js.map +1 -0
  45. package/dist/core/transports/types.d.ts +21 -0
  46. package/dist/core/transports/types.d.ts.map +1 -0
  47. package/dist/core/transports/types.js +2 -0
  48. package/dist/core/transports/types.js.map +1 -0
  49. package/dist/core/types.d.ts +40 -4
  50. package/dist/core/types.d.ts.map +1 -1
  51. package/dist/core/types.js +11 -1
  52. package/dist/core/types.js.map +1 -1
  53. package/dist/index.d.ts +6 -2
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +4 -2
  56. package/dist/index.js.map +1 -1
  57. package/dist/logger.d.ts +4 -0
  58. package/dist/logger.d.ts.map +1 -0
  59. package/dist/logger.js +16 -0
  60. package/dist/logger.js.map +1 -0
  61. package/dist/plugins/intervention/HttpInterventionPlugin.d.ts.map +1 -1
  62. package/dist/plugins/intervention/HttpInterventionPlugin.js +4 -7
  63. package/dist/plugins/intervention/HttpInterventionPlugin.js.map +1 -1
  64. package/dist/plugins/notification/DefaultNotificationPlugin.d.ts +1 -1
  65. package/dist/plugins/notification/DefaultNotificationPlugin.d.ts.map +1 -1
  66. package/dist/plugins/notification/DefaultNotificationPlugin.js +3 -2
  67. package/dist/plugins/notification/DefaultNotificationPlugin.js.map +1 -1
  68. package/dist/plugins/policy/DefaultPolicyPlugin.d.ts.map +1 -1
  69. package/dist/plugins/policy/DefaultPolicyPlugin.js +4 -1
  70. package/dist/plugins/policy/DefaultPolicyPlugin.js.map +1 -1
  71. package/dist/plugins/policy/RegexPolicyPlugin.d.ts.map +1 -1
  72. package/dist/plugins/policy/RegexPolicyPlugin.js +2 -1
  73. package/dist/plugins/policy/RegexPolicyPlugin.js.map +1 -1
  74. package/dist/server/index.d.ts +20 -0
  75. package/dist/server/index.d.ts.map +1 -0
  76. package/dist/server/index.js +27 -0
  77. package/dist/server/index.js.map +1 -0
  78. package/package.json +4 -3
  79. package/README.md +0 -224
  80. package/bin/guardio.mjs +0 -2
package/dist/cli.js CHANGED
@@ -1,75 +1,71 @@
1
1
  /**
2
- * CLI – parse argv (including --config), build config, run GuardioCore.
2
+ * CLI – load config, require server type "url" (HTTP/SSE only). Client can be stdio or http.
3
3
  */
4
4
  import { resolve, dirname } from "node:path";
5
5
  import { GuardioCore } from "./core/index.js";
6
- import { loadConfigFromPath } from "./config/index.js";
6
+ import { GuardioHttpServer } from "./server/index.js";
7
+ import { loadConfigFromPath, getConfigPath } from "./config/index.js";
8
+ import { logger } from "./logger.js";
7
9
  const configIdx = process.argv.indexOf("--config");
8
10
  const configPathArg = configIdx >= 0 && process.argv[configIdx + 1]
9
11
  ? process.argv[configIdx + 1]
10
12
  : null;
11
13
  async function main() {
12
- let command;
13
- let args;
14
- let cwd;
15
- let configPath;
16
- if (configPathArg) {
17
- const resolved = resolve(configPathArg);
18
- const config = await loadConfigFromPath(resolved);
19
- configPath = resolved;
20
- cwd = dirname(resolved);
21
- if (config.server?.type === "command") {
22
- command = config.server.command;
23
- const configDir = dirname(resolved);
24
- args = (config.server.args ?? []).map((arg) => resolve(configDir, arg));
25
- }
26
- else {
27
- command =
28
- process.env.GUARDIO_COMMAND ??
29
- process.env.MCP_REAL_TOOL_COMMAND ??
30
- "node";
31
- args = process.env.GUARDIO_ARGS
32
- ? process.env.GUARDIO_ARGS.split(",").map((s) => s.trim())
33
- : process.env.MCP_REAL_TOOL_ARGS
34
- ? process.env.MCP_REAL_TOOL_ARGS.split(",").map((s) => s.trim())
35
- : ["/path/to/your/actual-mcp-server/index.ts"];
36
- }
14
+ logger.debug({ argv: process.argv }, "CLI starting");
15
+ const resolved = configPathArg
16
+ ? resolve(configPathArg)
17
+ : getConfigPath(process.cwd());
18
+ if (!resolved) {
19
+ logger.error("No guardio config found. Use --config guardio.config.json or add guardio.config.js/ts/json in cwd.");
20
+ process.exit(1);
37
21
  }
38
- else {
39
- const dashDashIdx = process.argv.indexOf("--");
40
- const argvAfterDash = dashDashIdx >= 0 ? process.argv.slice(dashDashIdx + 1) : [];
41
- const directArgs = dashDashIdx === -1 && process.argv.length >= 3
42
- ? process.argv.slice(2)
43
- : [];
44
- command =
45
- argvAfterDash.length > 0
46
- ? argvAfterDash[0]
47
- : directArgs.length > 0
48
- ? directArgs[0]
49
- : process.env.GUARDIO_COMMAND ??
50
- process.env.MCP_REAL_TOOL_COMMAND ??
51
- "node";
52
- args =
53
- argvAfterDash.length > 1
54
- ? argvAfterDash.slice(1)
55
- : directArgs.length > 1
56
- ? directArgs.slice(1)
57
- : process.env.GUARDIO_ARGS
58
- ? process.env.GUARDIO_ARGS.split(",").map((s) => s.trim())
59
- : process.env.MCP_REAL_TOOL_ARGS
60
- ? process.env.MCP_REAL_TOOL_ARGS.split(",").map((s) => s.trim())
61
- : ["/path/to/your/actual-mcp-server/index.ts"];
22
+ logger.info({ configPath: resolved }, "Loading config");
23
+ const config = await loadConfigFromPath(resolved);
24
+ const configPath = resolved;
25
+ const cwd = dirname(resolved);
26
+ if (!config.server || config.server.type !== "url") {
27
+ logger.error('Guardio requires server: { type: "url", url: "<MCP_SSE_BASE_URL>" } in config.');
28
+ process.exit(1);
29
+ }
30
+ const server = {
31
+ type: "url",
32
+ url: config.server.url,
33
+ headers: config.server.headers,
34
+ timeoutMs: config.server.timeoutMs,
35
+ };
36
+ const clientConfig = config.client ?? { mode: "stdio" };
37
+ if (clientConfig.mode === "http") {
38
+ const portEnv = process.env.GUARDIO_HTTP_PORT ?? process.env.GUARDIO_CLIENT_PORT;
39
+ const port = portEnv != null && portEnv !== ""
40
+ ? parseInt(portEnv, 10)
41
+ : (clientConfig.port ?? 3939);
42
+ const host = process.env.GUARDIO_HTTP_HOST ?? clientConfig.host;
43
+ if (port == null || Number.isNaN(port)) {
44
+ logger.error("When client mode is 'http', set client.port or GUARDIO_HTTP_PORT.");
45
+ process.exit(1);
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;
62
56
  }
57
+ const client = clientConfig;
58
+ logger.info("Starting stdio mode");
63
59
  const core = new GuardioCore({
64
- command,
65
- args,
60
+ server,
61
+ client,
66
62
  cwd,
67
63
  configPath,
68
64
  });
69
65
  await core.run();
70
66
  }
71
67
  main().catch((err) => {
72
- console.error("Guardio failed to start:", err);
68
+ logger.error({ err }, "Guardio failed to start");
73
69
  process.exit(1);
74
70
  });
75
71
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,10 @@ import type { PolicyPluginInterface } from "../interfaces/PolicyPluginInterface.
3
3
  import type { InterventionPluginInterface } from "../interfaces/InterventionPluginInterface.js";
4
4
  export type PolicyPluginFactory = (config?: Record<string, unknown>) => PolicyPluginInterface;
5
5
  export type InterventionPluginFactory = (config?: Record<string, unknown>) => InterventionPluginInterface;
6
+ /**
7
+ * Resolves path to config file: first .js, then .ts, then .json (from cwd).
8
+ */
9
+ export declare function getConfigPath(cwd: string): string | null;
6
10
  /**
7
11
  * Loads GuardioConfig from a path. Supports .json (readFile + parse) and .js/.ts (dynamic import).
8
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/config/PluginManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EAGd,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAUhG,MAAM,MAAM,mBAAmB,GAAG,CAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,qBAAqB,CAAC;AAE3B,MAAM,MAAM,yBAAyB,GAAG,CACtC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,2BAA2B,CAAC;AA4DjC;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAcxB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,mBAAmB,CAA8C;IAEzE;;OAEG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAItE;;OAEG;IACH,0BAA0B,CACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,yBAAyB,GACjC,IAAI;IAKP;;OAEG;IACG,UAAU,CACd,GAAG,GAAE,MAAsB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC;IAiBzB;;OAEG;IACG,gBAAgB,CACpB,GAAG,GAAE,MAAsB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,EAAE,CAAC;IA0CnC;;OAEG;IACG,eAAe,CACnB,GAAG,CAAC,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,CAAC;IAUjC;;OAEG;IACG,sBAAsB,CAC1B,GAAG,GAAE,MAAsB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,2BAA2B,EAAE,CAAC;CA0C1C"}
1
+ {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/config/PluginManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EAGd,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAWhG,MAAM,MAAM,mBAAmB,GAAG,CAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,qBAAqB,CAAC;AAE3B,MAAM,MAAM,yBAAyB,GAAG,CACtC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,2BAA2B,CAAC;AA4CjC;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWxD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC,CAuBxB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,mBAAmB,CAA8C;IAEzE;;OAEG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAItE;;OAEG;IACH,0BAA0B,CACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,yBAAyB,GACjC,IAAI;IAKP;;OAEG;IACG,UAAU,CACd,GAAG,GAAE,MAAsB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,CAAC;IAmBzB;;OAEG;IACG,gBAAgB,CACpB,GAAG,GAAE,MAAsB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,EAAE,CAAC;IA6DnC;;OAEG;IACG,eAAe,CACnB,GAAG,CAAC,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,CAAC;IAUjC;;OAEG;IACG,sBAAsB,CAC1B,GAAG,GAAE,MAAsB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,2BAA2B,EAAE,CAAC;CA6D1C"}
@@ -3,6 +3,7 @@ import { join, dirname, resolve } from "node:path";
3
3
  import { pathToFileURL } from "node:url";
4
4
  import { DefaultPolicyPlugin, RegexPolicyPlugin, } from "../plugins/policy/index.js";
5
5
  import { DefaultInterventionPlugin, HttpInterventionPlugin, } from "../plugins/intervention/index.js";
6
+ import { logger } from "../logger.js";
6
7
  const policyRegistry = {
7
8
  default: (config) => new DefaultPolicyPlugin(config ?? {}),
8
9
  regex: (config) => new RegexPolicyPlugin(config ?? {}),
@@ -40,7 +41,7 @@ async function loadPluginInstance(entryPath) {
40
41
  /**
41
42
  * Resolves path to config file: first .js, then .ts, then .json (from cwd).
42
43
  */
43
- function getConfigPath(cwd) {
44
+ export function getConfigPath(cwd) {
44
45
  const names = [
45
46
  "guardio.config.js",
46
47
  "guardio.config.ts",
@@ -57,6 +58,7 @@ function getConfigPath(cwd) {
57
58
  * Loads GuardioConfig from a path. Supports .json (readFile + parse) and .js/.ts (dynamic import).
58
59
  */
59
60
  export async function loadConfigFromPath(configPath) {
61
+ logger.debug({ configPath }, "Loading config from path");
60
62
  if (configPath.endsWith(".json")) {
61
63
  const raw = readFileSync(configPath, "utf-8");
62
64
  return JSON.parse(raw);
@@ -65,8 +67,10 @@ export async function loadConfigFromPath(configPath) {
65
67
  const mod = await import(url);
66
68
  const config = mod.default ?? mod;
67
69
  if (!config || typeof config !== "object" || !Array.isArray(config.plugins)) {
70
+ logger.error({ configPath }, "Invalid guardio config: expected default export with plugins array");
68
71
  throw new Error(`Invalid guardio config: expected default export with plugins array (at ${configPath})`);
69
72
  }
73
+ logger.debug({ configPath, pluginCount: config.plugins.length }, "Config loaded");
70
74
  return config;
71
75
  }
72
76
  export class PluginManager {
@@ -93,9 +97,11 @@ export class PluginManager {
93
97
  async loadConfig(cwd = process.cwd(), configPath) {
94
98
  const path = configPath ?? getConfigPath(cwd);
95
99
  if (!path) {
100
+ logger.error({ cwd }, "No guardio config found");
96
101
  throw new Error(`No guardio config found in ${cwd}. Add guardio.config.js, guardio.config.ts, or guardio.config.json`);
97
102
  }
98
103
  if (this.configPath === path && this.config !== null) {
104
+ logger.debug("Using cached config");
99
105
  return this.config;
100
106
  }
101
107
  this.configPath = path;
@@ -117,9 +123,11 @@ export class PluginManager {
117
123
  for (const entry of plugins) {
118
124
  if (entry.path) {
119
125
  const entryPath = resolvePluginEntryPath(entry.path, configDir);
126
+ logger.debug({ path: entry.path, entryPath }, "Loading policy plugin from path");
120
127
  const instance = await loadPluginInstance(entryPath);
121
128
  if (typeof instance.name !== "string" ||
122
129
  typeof instance.evaluate !== "function") {
130
+ logger.error({ path: entry.path }, "Plugin default export must be a policy instance (name, evaluate)");
123
131
  throw new Error(`Plugin at ${entry.path}: default export must be a policy instance (name, evaluate).`);
124
132
  }
125
133
  instances.push(instance);
@@ -127,12 +135,15 @@ export class PluginManager {
127
135
  else {
128
136
  const factory = policyRegistry[entry.name];
129
137
  if (!factory) {
138
+ logger.error({ name: entry.name, registered: Object.keys(policyRegistry) }, "Unknown policy plugin name");
130
139
  throw new Error(`Unknown policy plugin name: "${entry.name}". Registered: ${Object.keys(policyRegistry).join(", ")}`);
131
140
  }
141
+ logger.debug({ name: entry.name }, "Instantiating built-in policy plugin");
132
142
  instances.push(factory(entry.config ?? {}));
133
143
  }
134
144
  }
135
145
  this.policyPlugins = instances;
146
+ logger.debug({ count: instances.length, names: instances.map((p) => p.name) }, "Policy plugins resolved");
136
147
  return instances;
137
148
  }
138
149
  /**
@@ -158,9 +169,11 @@ export class PluginManager {
158
169
  for (const entry of plugins) {
159
170
  if (entry.path) {
160
171
  const entryPath = resolvePluginEntryPath(entry.path, configDir);
172
+ logger.debug({ path: entry.path, entryPath }, "Loading intervention plugin from path");
161
173
  const instance = await loadPluginInstance(entryPath);
162
174
  if (typeof instance.name !== "string" ||
163
175
  typeof instance.act !== "function") {
176
+ logger.error({ path: entry.path }, "Plugin default export must be an intervention instance (name, act)");
164
177
  throw new Error(`Plugin at ${entry.path}: default export must be an intervention instance (name, act).`);
165
178
  }
166
179
  instances.push(instance);
@@ -168,12 +181,15 @@ export class PluginManager {
168
181
  else {
169
182
  const factory = interventionRegistry[entry.name];
170
183
  if (!factory) {
184
+ logger.error({ name: entry.name, registered: Object.keys(interventionRegistry) }, "Unknown intervention plugin name");
171
185
  throw new Error(`Unknown intervention plugin name: "${entry.name}". Registered: ${Object.keys(interventionRegistry).join(", ")}`);
172
186
  }
187
+ logger.debug({ name: entry.name }, "Instantiating built-in intervention plugin");
173
188
  instances.push(factory(entry.config ?? {}));
174
189
  }
175
190
  }
176
191
  this.interventionPlugins = instances;
192
+ logger.debug({ count: instances.length, names: instances.map((p) => p.name) }, "Intervention plugins resolved");
177
193
  return instances;
178
194
  }
179
195
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/config/PluginManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/config/PluginManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQzC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAUtC,MAAM,cAAc,GAAwC;IAC1D,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,mBAAmB,CAAC,MAAM,IAAI,EAAE,CAAC;IAC1D,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,MAAM,IAAI,EAAE,CAAC;CACvD,CAAC;AAEF,MAAM,oBAAoB,GAA8C;IACtE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,yBAAyB,CAAC,MAAM,CAAC;IAC1D,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,sBAAsB,CAAC,MAAM,CAAC;CACrD,CAAC;AAEF,0EAA0E;AAC1E,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAErD;;GAEG;AACH,SAAS,sBAAsB,CAAC,UAAkB,EAAE,SAAiB;IACnE,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,KAAK,CACb,aAAa,UAAU,sEAAsE,CAC9F,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAI,SAAiB;IACpD,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC;IACrC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,aAAa,SAAS,+CAA+C,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,QAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,KAAK,GAAG;QACZ,mBAAmB;QACnB,mBAAmB;QACnB,qBAAqB;KACtB,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB;IAElB,MAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,0BAA0B,CAAC,CAAC;IACzD,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB,CAAC;IAC1C,CAAC;IACD,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IAC3C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;IAClC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5E,MAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,EACd,oEAAoE,CACrE,CAAC;QACF,MAAM,IAAI,KAAK,CACb,0EAA0E,UAAU,GAAG,CACxF,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAClD,eAAe,CAChB,CAAC;IACF,OAAO,MAAuB,CAAC;AACjC,CAAC;AAED,MAAM,OAAO,aAAa;IAChB,MAAM,GAAyB,IAAI,CAAC;IACpC,UAAU,GAAkB,IAAI,CAAC;IACjC,aAAa,GAAmC,IAAI,CAAC;IACrD,mBAAmB,GAAyC,IAAI,CAAC;IAEzE;;OAEG;IACH,oBAAoB,CAAC,IAAY,EAAE,OAA4B;QAC5D,cAAsD,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,0BAA0B,CACxB,IAAY,EACZ,OAAkC;QAEjC,oBAAkE,CAAC,IAAI,CAAC;YACvE,OAAO,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,MAAc,OAAO,CAAC,GAAG,EAAE,EAC3B,UAAmB;QAEnB,MAAM,IAAI,GAAG,UAAU,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,yBAAyB,CAAC,CAAC;YACjD,MAAM,IAAI,KAAK,CACb,8BAA8B,GAAG,oEAAoE,CACtG,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,MAAc,OAAO,CAAC,GAAG,EAAE,EAC3B,UAAmB;QAEnB,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC;QAE3D,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,MAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,EAAgC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CACzD,CAAC;QACF,MAAM,SAAS,GAA4B,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;QAE5C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAChE,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAC/B,iCAAiC,CAClC,CAAC;gBACF,MAAM,QAAQ,GACZ,MAAM,kBAAkB,CAAwB,SAAS,CAAC,CAAC;gBAC7D,IACE,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;oBACjC,OAAO,QAAQ,CAAC,QAAQ,KAAK,UAAU,EACvC,CAAC;oBACD,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EACpB,kEAAkE,CACnE,CAAC;oBACF,MAAM,IAAI,KAAK,CACb,aAAa,KAAK,CAAC,IAAI,8DAA8D,CACtF,CAAC;gBACJ,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,EAC7D,4BAA4B,CAC7B,CAAC;oBACF,MAAM,IAAI,KAAK,CACb,gCACE,KAAK,CAAC,IACR,kBAAkB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3D,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EACpB,sCAAsC,CACvC,CAAC;gBACF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAChE,yBAAyB,CAC1B,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,GAAY,EACZ,UAAmB;QAEnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAC1B,MAAc,OAAO,CAAC,GAAG,EAAE,EAC3B,UAAmB;QAEnB,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,mBAAmB,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,mBAAmB,CAAC;QAEvE,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,MAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,EAAsC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CACrE,CAAC;QACF,MAAM,SAAS,GAAkC,EAAE,CAAC;QAEpD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;QAE5C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAChE,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,EAC/B,uCAAuC,CACxC,CAAC;gBACF,MAAM,QAAQ,GACZ,MAAM,kBAAkB,CAA8B,SAAS,CAAC,CAAC;gBACnE,IACE,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;oBACjC,OAAO,QAAQ,CAAC,GAAG,KAAK,UAAU,EAClC,CAAC;oBACD,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EACpB,oEAAoE,CACrE,CAAC;oBACF,MAAM,IAAI,KAAK,CACb,aAAa,KAAK,CAAC,IAAI,gEAAgE,CACxF,CAAC;gBACJ,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjD,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,EACnE,kCAAkC,CACnC,CAAC;oBACF,MAAM,IAAI,KAAK,CACb,sCACE,KAAK,CAAC,IACR,kBAAkB,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjE,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EACpB,4CAA4C,CAC7C,CAAC;gBACF,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACrC,MAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAChE,+BAA+B,CAChC,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
- export { PluginManager, loadConfigFromPath } from "./PluginManager.js";
1
+ export { PluginManager, loadConfigFromPath, getConfigPath, } from "./PluginManager.js";
2
2
  export type { PolicyPluginFactory } from "./PluginManager.js";
3
- export type { GuardioConfig, GuardioServerConfig, PolicyPluginConfigEntry, InterventionPluginConfigEntry, PluginConfigEntry, } from "./types.js";
3
+ export type { GuardioConfig, GuardioServerConfig, GuardioServerConfigUrl, GuardioClientConfig, PolicyPluginConfigEntry, InterventionPluginConfigEntry, PluginConfigEntry, } from "./types.js";
4
4
  export type { InterventionPluginFactory } from "./PluginManager.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACvE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,2 +1,2 @@
1
- export { PluginManager, loadConfigFromPath } from "./PluginManager.js";
1
+ export { PluginManager, loadConfigFromPath, getConfigPath, } from "./PluginManager.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,aAAa,GACd,MAAM,oBAAoB,CAAC"}
@@ -25,19 +25,38 @@ export interface InterventionPluginConfigEntry {
25
25
  */
26
26
  export type PluginConfigEntry = PolicyPluginConfigEntry | InterventionPluginConfigEntry;
27
27
  /**
28
- * MCP server to proxy to (spawn command).
28
+ * MCP server to proxy to (HTTP/SSE URL only).
29
29
  */
30
- export interface GuardioServerConfig {
31
- type: "command";
32
- command: string;
33
- args: string[];
30
+ export interface GuardioServerConfigUrl {
31
+ type: "url";
32
+ url: string;
33
+ /** Optional headers (e.g. Authorization). */
34
+ headers?: Record<string, string>;
35
+ /** Request timeout in ms. Defaults to 30000. */
36
+ timeoutMs?: number;
37
+ }
38
+ /** Server config: only HTTP/SSE URL is supported. */
39
+ export type GuardioServerConfig = GuardioServerConfigUrl;
40
+ /**
41
+ * How the AI Agent (client) connects to Guardio: stdio (local pipe) or http (standalone server).
42
+ * When mode is "http", port and host are the address the proxy listens on.
43
+ */
44
+ export interface GuardioClientConfig {
45
+ /** "stdio" = read from stdin, write to stdout (default). "http" = run HTTP server for requests. */
46
+ mode: "stdio" | "http";
47
+ /** When mode is "http". Port the proxy listens on. Default 3939. */
48
+ port?: number;
49
+ /** When mode is "http". Host to bind (default "127.0.0.1"). Use "0.0.0.0" for external. */
50
+ host?: string;
34
51
  }
35
52
  /**
36
53
  * Guardio config file shape (default export of guardio.config.ts / .json).
37
54
  */
38
55
  export interface GuardioConfig {
39
- /** MCP server to proxy to. When present, CLI uses this instead of argv. */
40
- server?: GuardioServerConfig;
56
+ /** MCP server to proxy to (HTTP/SSE URL). Required. */
57
+ server: GuardioServerConfig;
58
+ /** How the AI client connects to Guardio. Default: { mode: "stdio" }. */
59
+ client?: GuardioClientConfig;
41
60
  plugins: PluginConfigEntry[];
42
61
  }
43
62
  //# sourceMappingURL=types.d.ts.map
@@ -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,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B"}
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;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,mGAAmG;IACnG,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uDAAuD;IACvD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,yEAAyE;IACzE,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Action names for result._guardio.action when Guardio blocks or rejects a tool call.
3
+ * We return a successful JSON-RPC result (not an error), so numeric error codes are not used.
4
+ * These strings identify the kind of denial for the AI Agent / client.
5
+ */
6
+ export declare const GuardioAction: {
7
+ /** Tool was blocked by a policy plugin. */
8
+ readonly TOOL_BLOCKED: "TOOL_BLOCKED";
9
+ /** Tool call was rejected by an intervention plugin. */
10
+ readonly POLICY_VIOLATION: "POLICY_VIOLATION";
11
+ };
12
+ //# sourceMappingURL=GuardioActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GuardioActions.d.ts","sourceRoot":"","sources":["../../src/core/GuardioActions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,aAAa;IACxB,2CAA2C;;IAE3C,wDAAwD;;CAEhD,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Action names for result._guardio.action when Guardio blocks or rejects a tool call.
3
+ * We return a successful JSON-RPC result (not an error), so numeric error codes are not used.
4
+ * These strings identify the kind of denial for the AI Agent / client.
5
+ */
6
+ export const GuardioAction = {
7
+ /** Tool was blocked by a policy plugin. */
8
+ TOOL_BLOCKED: "TOOL_BLOCKED",
9
+ /** Tool call was rejected by an intervention plugin. */
10
+ POLICY_VIOLATION: "POLICY_VIOLATION",
11
+ };
12
+ //# sourceMappingURL=GuardioActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GuardioActions.js","sourceRoot":"","sources":["../../src/core/GuardioActions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,2CAA2C;IAC3C,YAAY,EAAE,cAAc;IAC5B,wDAAwD;IACxD,gBAAgB,EAAE,kBAAkB;CAC5B,CAAC"}
@@ -3,17 +3,30 @@ export declare class GuardioCore {
3
3
  private readonly config;
4
4
  private policyPlugins;
5
5
  private interventionPlugins;
6
- private child;
7
- private appInterface;
8
- private toolInterface;
9
- private pendingResponseId;
10
- private readonly appQueue;
6
+ private transport;
7
+ private clientTransport;
11
8
  constructor(config: GuardioCoreConfig);
12
9
  run(): Promise<void>;
13
- private sendErrorResponse;
10
+ private sendToClient;
11
+ /** Resolve Guardio package version from package.json when available. */
12
+ private getGuardioVersion;
13
+ /**
14
+ * Build a successful JSON-RPC response for blocked/rejected tool calls.
15
+ * Returns a result (not error) so AI Agent frameworks don't treat it as a fatal error;
16
+ * the agent can read the content and _guardio metadata.
17
+ */
18
+ private buildGuardioBlockedResponse;
19
+ /**
20
+ * Handle POST /messages (HTTP client): run policy/intervention, then forward to remote.
21
+ */
22
+ handlePostMessage(body: string): Promise<{
23
+ status: number;
24
+ body: string;
25
+ }>;
26
+ private sendBlockedResponse;
27
+ /**
28
+ * Process one line from client (stdio or from queue): run plugins, then forward to MCP.
29
+ */
14
30
  private processAppLine;
15
- private drainAppQueue;
16
- private attachAppHandler;
17
- private attachToolHandler;
18
31
  }
19
32
  //# sourceMappingURL=GuardioCore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GuardioCore.d.ts","sourceRoot":"","sources":["../../src/core/GuardioCore.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAIpD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,mBAAmB,CAAqC;IAEhE,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,aAAa,CAAmC;IAExD,OAAO,CAAC,iBAAiB,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;gBAE7B,MAAM,EAAE,iBAAiB;IAI/B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC1B,OAAO,CAAC,iBAAiB;YAaX,cAAc;IAgD5B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,iBAAiB;CAc1B"}
1
+ {"version":3,"file":"GuardioCore.d.ts","sourceRoot":"","sources":["../../src/core/GuardioCore.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAYpD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,mBAAmB,CAAqC;IAEhE,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,eAAe,CAAgC;gBAE3C,MAAM,EAAE,iBAAiB;IAI/B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA4C1B,OAAO,CAAC,YAAY;IAIpB,wEAAwE;IACxE,OAAO,CAAC,iBAAiB;IAUzB;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAyCnC;;OAEG;IACG,iBAAiB,CACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IA4F5C,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;YACW,cAAc;CA8C7B"}