@guardiojs/guardio 0.0.2 → 0.0.3

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.md CHANGED
@@ -98,17 +98,16 @@ Each **plugins** entry has:
98
98
 
99
99
  When using **`--config /path/to/guardio.config.json`**, the **server** block above is used automatically; you don’t pass the MCP server command on the command line.
100
100
 
101
- ### Local plugins (plugins directory)
101
+ ### Custom plugins (path in config)
102
102
 
103
- If a **`plugins`** directory exists in the **same directory as the config file**, Guardio loads local plugins from it. No extra config key is required.
103
+ Use a **`path`** on a plugin entry to load a custom plugin from a directory (relative to the config file or absolute). That directory must contain **`index.js`** or **`index.mjs`** (compile from `index.ts` with your build script). The module's **default export must be the plugin instance** (no descriptor).
104
104
 
105
- - **Layout**: Each plugin is a **subdirectory** of `plugins/` (e.g. `plugins/example/`).
106
- - **Discovery**: In each subdirectory Guardio looks for **`index.ts`** only.
107
- - **Descriptor**: The entry file must **default-export a descriptor** `{ type, name, create }`:
105
+ - **Policy**: `{ "type": "policy", "name": "my-policy", "path": "./plugins/my-policy" }` — default export must implement **`PolicyPluginInterface`** (name, evaluate).
106
+ - **Intervention** (path): In each subdirectory Guardio looks for **`index.js`** or **`index.mjs`** (compiled output). Write your plugin in TypeScript (`index.ts`) and **compile** it with the project’s build script (e.g. `npm run build`).
107
+ - **Descriptor**: The entry module must **default-export a descriptor** `{ type, name, create }`:
108
108
  - **Policy**: `type: "policy"`, `name: string`, `create: (config) => instance` where the instance implements **`PolicyPluginInterface`** (readonly `name`, method `evaluate(context) => "allowed" | "blocked" | "require_approval"`).
109
109
  - **Intervention**: `type: "intervention"`, `name: string`, `create: (config) => instance` where the instance implements **`InterventionPluginInterface`** (readonly `name`, method `act(context) => void | boolean | Promise<...>`).
110
- - **Interfaces**: Import types from `@guardiojs/guardio` (e.g. `PolicyPluginInterface`, `PolicyRequestContext`, `PolicyResult`, `PolicyPluginDescriptor`). Add the plugin’s **`name`** to the config **`plugins`** array to enable it.
111
- - **TypeScript**: Guardio loads `index.ts` via **ts-node** (optional dependency; install it for local plugins to work).
110
+ Import types from `@guardiojs/guardio`.’s Run your build so the directory has `index.js` or `index.mjs` before Guardio.
112
111
 
113
112
  ## Running Guardio (CLI)
114
113
 
package/dist/cli.js CHANGED
@@ -32,7 +32,7 @@ async function main() {
32
32
  ? process.env.GUARDIO_ARGS.split(",").map((s) => s.trim())
33
33
  : process.env.MCP_REAL_TOOL_ARGS
34
34
  ? process.env.MCP_REAL_TOOL_ARGS.split(",").map((s) => s.trim())
35
- : ["/path/to/your/actual-mcp-server/index.js"];
35
+ : ["/path/to/your/actual-mcp-server/index.ts"];
36
36
  }
37
37
  }
38
38
  else {
@@ -58,7 +58,7 @@ async function main() {
58
58
  ? process.env.GUARDIO_ARGS.split(",").map((s) => s.trim())
59
59
  : process.env.MCP_REAL_TOOL_ARGS
60
60
  ? process.env.MCP_REAL_TOOL_ARGS.split(",").map((s) => s.trim())
61
- : ["/path/to/your/actual-mcp-server/index.js"];
61
+ : ["/path/to/your/actual-mcp-server/index.ts"];
62
62
  }
63
63
  const core = new GuardioCore({
64
64
  command,
@@ -1 +1 @@
1
- {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/config/PluginManager.ts"],"names":[],"mappings":"AAIA,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;AAiGjC;;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;IAkBzB;;OAEG;IACG,gBAAgB,CACpB,GAAG,GAAE,MAAsB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAyBnC;;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;CAwB1C"}
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,7 +1,6 @@
1
- import { readFileSync, existsSync, readdirSync, statSync } from "node:fs";
2
- import { join, dirname } from "node:path";
1
+ import { readFileSync, existsSync } from "node:fs";
2
+ import { join, dirname, resolve } from "node:path";
3
3
  import { pathToFileURL } from "node:url";
4
- import { createRequire } from "node:module";
5
4
  import { DefaultPolicyPlugin, RegexPolicyPlugin, } from "../plugins/policy/index.js";
6
5
  import { DefaultInterventionPlugin, HttpInterventionPlugin, } from "../plugins/intervention/index.js";
7
6
  const policyRegistry = {
@@ -12,60 +11,31 @@ const interventionRegistry = {
12
11
  default: (config) => new DefaultInterventionPlugin(config),
13
12
  http: (config) => new HttpInterventionPlugin(config),
14
13
  };
15
- /** Entry filename to discover under each plugin directory. */
16
- const PLUGIN_ENTRY_NAME = "index.ts";
14
+ /** Entry filenames to load from a plugin directory (first found wins). */
15
+ const PLUGIN_ENTRY_NAMES = ["index.js", "index.mjs"];
17
16
  /**
18
- * Loads local plugins from the "plugins" directory next to the config file.
19
- * Each plugin is a subdirectory with index.ts (or index.js/mjs/cjs); default export must be a descriptor.
17
+ * Resolve plugin directory to an entry file (index.js or index.mjs). Path is relative to configDir or absolute.
20
18
  */
21
- async function loadLocalPlugins(pluginManager, configPath) {
22
- const configDir = dirname(configPath);
23
- const pluginsDir = join(configDir, "plugins");
24
- if (!existsSync(pluginsDir))
25
- return;
26
- if (!statSync(pluginsDir).isDirectory())
27
- return;
28
- const entries = readdirSync(pluginsDir, { withFileTypes: true });
29
- for (const dirent of entries) {
30
- if (!dirent.isDirectory())
31
- continue;
32
- const entryPath = join(pluginsDir, dirent.name, PLUGIN_ENTRY_NAME);
33
- if (!existsSync(entryPath))
34
- continue;
35
- const mod = await loadPluginModule(entryPath);
36
- const raw = mod?.default ?? mod;
37
- if (!raw || typeof raw !== "object")
38
- continue;
39
- const descriptor = raw;
40
- if (descriptor.type !== "policy" && descriptor.type !== "intervention")
41
- continue;
42
- if (typeof descriptor.name !== "string" ||
43
- typeof descriptor.create !== "function") {
44
- throw new Error(`Local plugin at ${entryPath}: default export must be { type, name, create } (name string, create function).`);
45
- }
46
- const desc = descriptor;
47
- if (desc.type === "policy") {
48
- pluginManager.registerPolicyPlugin(desc.name, (config) => desc.create(config ?? {}));
49
- }
50
- else {
51
- pluginManager.registerInterventionPlugin(desc.name, (config) => desc.create(config ?? {}));
52
- }
19
+ function resolvePluginEntryPath(pluginPath, configDir) {
20
+ const dir = resolve(configDir, pluginPath);
21
+ for (const name of PLUGIN_ENTRY_NAMES) {
22
+ const p = join(dir, name);
23
+ if (existsSync(p))
24
+ return p;
53
25
  }
26
+ throw new Error(`Plugin at ${pluginPath} must contain index.js or index.mjs (run build to compile index.ts).`);
54
27
  }
55
28
  /**
56
- * Load a plugin module from disk. Only index.ts is supported; uses ts-node when available.
29
+ * Load plugin instance from a directory: import index.js/index.mjs, return default export (the instance).
57
30
  */
58
- async function loadPluginModule(entryPath) {
59
- try {
60
- const require = createRequire(import.meta.url);
61
- require("ts-node/register");
62
- const mod = require(entryPath);
63
- return mod;
64
- }
65
- catch (e) {
66
- const msg = e instanceof Error ? e.message : String(e);
67
- throw new Error(`Failed to load TypeScript plugin ${entryPath}. Install ts-node (e.g. npm install ts-node). ${msg}`);
31
+ async function loadPluginInstance(entryPath) {
32
+ const url = pathToFileURL(entryPath).href;
33
+ const mod = await import(url);
34
+ const instance = mod?.default ?? mod;
35
+ if (!instance || typeof instance !== "object") {
36
+ throw new Error(`Plugin at ${entryPath}: default export must be the plugin instance.`);
68
37
  }
38
+ return instance;
69
39
  }
70
40
  /**
71
41
  * Resolves path to config file: first .js, then .ts, then .json (from cwd).
@@ -132,7 +102,6 @@ export class PluginManager {
132
102
  this.config = await loadConfigFromPath(path);
133
103
  this.policyPlugins = null;
134
104
  this.interventionPlugins = null;
135
- await loadLocalPlugins(this, path);
136
105
  return this.config;
137
106
  }
138
107
  /**
@@ -144,12 +113,24 @@ export class PluginManager {
144
113
  return this.policyPlugins;
145
114
  const plugins = (this.config.plugins ?? []).filter((p) => p.type === "policy");
146
115
  const instances = [];
116
+ const configDir = dirname(this.configPath);
147
117
  for (const entry of plugins) {
148
- const factory = policyRegistry[entry.name];
149
- if (!factory) {
150
- throw new Error(`Unknown policy plugin name: "${entry.name}". Registered: ${Object.keys(policyRegistry).join(", ")}`);
118
+ if (entry.path) {
119
+ const entryPath = resolvePluginEntryPath(entry.path, configDir);
120
+ const instance = await loadPluginInstance(entryPath);
121
+ if (typeof instance.name !== "string" ||
122
+ typeof instance.evaluate !== "function") {
123
+ throw new Error(`Plugin at ${entry.path}: default export must be a policy instance (name, evaluate).`);
124
+ }
125
+ instances.push(instance);
126
+ }
127
+ else {
128
+ const factory = policyRegistry[entry.name];
129
+ if (!factory) {
130
+ throw new Error(`Unknown policy plugin name: "${entry.name}". Registered: ${Object.keys(policyRegistry).join(", ")}`);
131
+ }
132
+ instances.push(factory(entry.config ?? {}));
151
133
  }
152
- instances.push(factory(entry.config ?? {}));
153
134
  }
154
135
  this.policyPlugins = instances;
155
136
  return instances;
@@ -173,12 +154,24 @@ export class PluginManager {
173
154
  return this.interventionPlugins;
174
155
  const plugins = (this.config.plugins ?? []).filter((p) => p.type === "intervention");
175
156
  const instances = [];
157
+ const configDir = dirname(this.configPath);
176
158
  for (const entry of plugins) {
177
- const factory = interventionRegistry[entry.name];
178
- if (!factory) {
179
- throw new Error(`Unknown intervention plugin name: "${entry.name}". Registered: ${Object.keys(interventionRegistry).join(", ")}`);
159
+ if (entry.path) {
160
+ const entryPath = resolvePluginEntryPath(entry.path, configDir);
161
+ const instance = await loadPluginInstance(entryPath);
162
+ if (typeof instance.name !== "string" ||
163
+ typeof instance.act !== "function") {
164
+ throw new Error(`Plugin at ${entry.path}: default export must be an intervention instance (name, act).`);
165
+ }
166
+ instances.push(instance);
167
+ }
168
+ else {
169
+ const factory = interventionRegistry[entry.name];
170
+ if (!factory) {
171
+ throw new Error(`Unknown intervention plugin name: "${entry.name}". Registered: ${Object.keys(interventionRegistry).join(", ")}`);
172
+ }
173
+ instances.push(factory(entry.config ?? {}));
180
174
  }
181
- instances.push(factory(entry.config ?? {}));
182
175
  }
183
176
  this.interventionPlugins = instances;
184
177
  return instances;
@@ -1 +1 @@
1
- {"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/config/PluginManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQ5C,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,kCAAkC,CAAC;AAU1C,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,8DAA8D;AAC9D,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAErC;;;GAGG;AACH,KAAK,UAAU,gBAAgB,CAC7B,aAA4B,EAC5B,UAAkB;IAElB,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO;IACpC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;QAAE,OAAO;IAEhD,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAAE,SAAS;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,SAAS;QAErC,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC;QAChC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,SAAS;QAC9C,MAAM,UAAU,GAAG,GAA8B,CAAC;QAClD,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc;YACpE,SAAS;QACX,IACE,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ;YACnC,OAAO,UAAU,CAAC,MAAM,KAAK,UAAU,EACvC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,mBAAmB,SAAS,iFAAiF,CAC9G,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,UAA8C,CAAC;QAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CACvD,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAC1B,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAC7D,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAC1B,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,SAAiB;IAEjB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,IAAI,KAAK,CACb,oCAAoC,SAAS,iDAAiD,GAAG,EAAE,CACpG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,GAAW;IAChC,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,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,IAAI,KAAK,CACb,0EAA0E,UAAU,GAAG,CACxF,CAAC;IACJ,CAAC;IACD,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,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,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,MAAM,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACnC,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,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAC3B,CAAC;QACF,MAAM,SAAS,GAA4B,EAAE,CAAC;QAE9C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,gCACE,KAAK,CAAC,IACR,kBAAkB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3D,CAAC;YACJ,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,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,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,sCACE,KAAK,CAAC,IACR,kBAAkB,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjE,CAAC;YACJ,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/config/PluginManager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export { PluginManager, loadConfigFromPath } from "./PluginManager.js";
2
2
  export type { PolicyPluginFactory } from "./PluginManager.js";
3
- export type { GuardioConfig, GuardioServerConfig, PolicyPluginConfigEntry, InterventionPluginConfigEntry, PluginConfigEntry, PolicyPluginDescriptor, InterventionPluginDescriptor, LocalPluginDescriptor, } from "./types.js";
3
+ export type { GuardioConfig, GuardioServerConfig, 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,EACjB,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,GACtB,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,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,44 +1,29 @@
1
1
  /**
2
2
  * Policy plugin entry in guardio config.
3
+ * Use "path" for a custom plugin (directory with index.js/index.mjs; default export = instance).
3
4
  */
4
5
  export interface PolicyPluginConfigEntry {
5
6
  type: "policy";
6
7
  name: string;
8
+ /** Directory to custom plugin (relative to config file or absolute). Must contain index.js or index.mjs with default export = policy instance. */
9
+ path?: string;
7
10
  config?: Record<string, unknown>;
8
11
  }
9
12
  /**
10
13
  * Intervention plugin entry in guardio config.
14
+ * Use "path" for a custom plugin (directory with index.js/index.mjs; default export = instance).
11
15
  */
12
16
  export interface InterventionPluginConfigEntry {
13
17
  type: "intervention";
14
18
  name: string;
19
+ /** Directory to custom plugin (relative to config file or absolute). Must contain index.js or index.mjs with default export = intervention instance. */
20
+ path?: string;
15
21
  config?: Record<string, unknown>;
16
22
  }
17
23
  /**
18
24
  * Any plugin entry in guardio config.
19
25
  */
20
26
  export type PluginConfigEntry = PolicyPluginConfigEntry | InterventionPluginConfigEntry;
21
- /**
22
- * Descriptor default export for a local plugin (plugins/<name>/index.ts or index.js).
23
- * create() must return an instance implementing PolicyPluginInterface or InterventionPluginInterface.
24
- */
25
- export interface PolicyPluginDescriptor {
26
- type: "policy";
27
- name: string;
28
- create: (config: Record<string, unknown>) => {
29
- name: string;
30
- evaluate: (context: unknown) => "allowed" | "blocked" | "require_approval";
31
- };
32
- }
33
- export interface InterventionPluginDescriptor {
34
- type: "intervention";
35
- name: string;
36
- create: (config: Record<string, unknown>) => {
37
- name: string;
38
- act: (context: unknown) => void | boolean | Promise<void> | Promise<boolean>;
39
- };
40
- }
41
- export type LocalPluginDescriptor = PolicyPluginDescriptor | InterventionPluginDescriptor;
42
27
  /**
43
28
  * MCP server to proxy to (spawn command).
44
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,uBAAuB,GACvB,6BAA6B,CAAC;AAElC;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK;QAC3C,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,GAAG,SAAS,GAAG,kBAAkB,CAAC;KAC5E,CAAC;CACH;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK;QAC3C,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,CACH,OAAO,EAAE,OAAO,KACb,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACxD,CAAC;CACH;AAED,MAAM,MAAM,qBAAqB,GAC7B,sBAAsB,GACtB,4BAA4B,CAAC;AAEjC;;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,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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { GuardioCore } from "./core/index.js";
2
2
  export type { GuardioCoreConfig, JsonRpcRequest, JsonRpcResponse, } from "./core/index.js";
3
3
  export { PluginManager, loadConfigFromPath } from "./config/index.js";
4
- export type { PolicyPluginFactory, InterventionPluginFactory, GuardioConfig, GuardioServerConfig, PolicyPluginConfigEntry, InterventionPluginConfigEntry, PluginConfigEntry, PolicyPluginDescriptor, InterventionPluginDescriptor, LocalPluginDescriptor, } from "./config/index.js";
4
+ export type { PolicyPluginFactory, InterventionPluginFactory, GuardioConfig, GuardioServerConfig, PolicyPluginConfigEntry, InterventionPluginConfigEntry, PluginConfigEntry, } from "./config/index.js";
5
5
  export type { PolicyPluginInterface, NotificationPluginInterface, InterventionPluginInterface, InterventionResult, PolicyRequestContext, PolicyResult, InterventionRequestContext, } from "./interfaces/index.js";
6
6
  export { DefaultPolicyPlugin, RegexPolicyPlugin, type DefaultPolicyPluginConfig, type RegexPolicyPluginConfig, type RegexPolicyRule, type RegexPolicyRuleResult, } from "./plugins/policy/index.js";
7
7
  export { DefaultNotificationPlugin } from "./plugins/notification/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtE,YAAY,EACV,mBAAmB,EACnB,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,iBAAiB,EACjB,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,4BAA4B,GAClC,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtE,YAAY,EACV,mBAAmB,EACnB,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,2BAA2B,EAC3B,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,4BAA4B,GAClC,MAAM,iCAAiC,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM9C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAsBtE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAKlB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EACL,yBAAyB,EACzB,sBAAsB,GAEvB,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM9C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAmBtE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAKlB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EACL,yBAAyB,EACzB,sBAAsB,GAEvB,MAAM,iCAAiC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@guardiojs/guardio",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "Security layer for MCP servers and AI Agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -33,9 +33,6 @@
33
33
  "pino": "^9.5.0",
34
34
  "pino-pretty": "^13.0.0"
35
35
  },
36
- "optionalDependencies": {
37
- "ts-node": "^10.9.2"
38
- },
39
36
  "devDependencies": {
40
37
  "@types/node": "^22.0.0",
41
38
  "tsx": "^4.19.0",