capgate 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +167 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +102 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/policy/adapters/bwrap.d.ts +29 -0
- package/dist/policy/adapters/bwrap.d.ts.map +1 -0
- package/dist/policy/adapters/bwrap.js +144 -0
- package/dist/policy/adapters/bwrap.js.map +1 -0
- package/dist/policy/compiler.d.ts +22 -0
- package/dist/policy/compiler.d.ts.map +1 -0
- package/dist/policy/compiler.js +235 -0
- package/dist/policy/compiler.js.map +1 -0
- package/dist/policy/grammar.d.ts +15 -0
- package/dist/policy/grammar.d.ts.map +1 -0
- package/dist/policy/grammar.js +201 -0
- package/dist/policy/grammar.js.map +1 -0
- package/dist/policy/index.d.ts +9 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/index.js +7 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/ir.d.ts +147 -0
- package/dist/policy/ir.d.ts.map +1 -0
- package/dist/policy/ir.js +28 -0
- package/dist/policy/ir.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir.d.ts","sourceRoot":"","sources":["../../src/policy/ir.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// MCP → Sandbox Policy Compiler — Intermediate Representation
|
|
2
|
+
//
|
|
3
|
+
// Design notes (see README.md for rationale):
|
|
4
|
+
// - Capabilities are the unit of authorization. A ToolManifest declares zero or
|
|
5
|
+
// more Capability values; the compiler lowers them into an adapter-specific
|
|
6
|
+
// Policy (bwrap argv, egress-proxy rules, Worker resourceLimits, etc).
|
|
7
|
+
// - Capabilities are split into ENFORCEABLE and DECLARED. Enforceable ones are
|
|
8
|
+
// enforced by some adapter (fs/net/exec/env/ipc). Declared ones are surfaced
|
|
9
|
+
// as assertions the host or MCP server must honor (e.g. "read-only SQL").
|
|
10
|
+
// - Fail-closed: unknown kinds, malformed scopes, and missing required fields
|
|
11
|
+
// MUST cause CompilationError. No best-effort. No silent drops.
|
|
12
|
+
export function isEnforceable(cap) {
|
|
13
|
+
return cap.kind !== 'assert';
|
|
14
|
+
}
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
// Errors
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
export class CompilationError extends Error {
|
|
19
|
+
code;
|
|
20
|
+
context;
|
|
21
|
+
constructor(code, message, context) {
|
|
22
|
+
super(`[${code}] ${message}`);
|
|
23
|
+
this.code = code;
|
|
24
|
+
this.context = context;
|
|
25
|
+
this.name = 'CompilationError';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=ir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/policy/ir.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,8CAA8C;AAC9C,gFAAgF;AAChF,8EAA8E;AAC9E,yEAAyE;AACzE,+EAA+E;AAC/E,+EAA+E;AAC/E,4EAA4E;AAC5E,8EAA8E;AAC9E,kEAAkE;AAwFlE,MAAM,UAAU,aAAa,CAAC,GAAe;IAC3C,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC/B,CAAC;AAqDD,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAEhC;IAEA;IAHT,YACS,IAAY,EACnB,OAAe,EACR,OAAiC;QAExC,KAAK,CAAC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QAJvB,SAAI,GAAJ,IAAI,CAAQ;QAEZ,YAAO,GAAP,OAAO,CAA0B;QAGxC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF"}
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "capgate",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Compile MCP tool manifests into sandbox policies (bwrap, egress rules, and more).",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"bin": {
|
|
9
|
+
"capgate": "dist/cli.js"
|
|
10
|
+
},
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.js",
|
|
15
|
+
"default": "./dist/index.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist/",
|
|
20
|
+
"LICENSE",
|
|
21
|
+
"README.md"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsc",
|
|
25
|
+
"clean": "node -e \"import('node:fs').then(fs => fs.rmSync('dist', { recursive: true, force: true }))\"",
|
|
26
|
+
"prebuild": "npm run clean",
|
|
27
|
+
"test": "vitest run",
|
|
28
|
+
"test:watch": "vitest",
|
|
29
|
+
"test:update-goldens": "cross-env UPDATE_GOLDEN=1 vitest run",
|
|
30
|
+
"prepublishOnly": "npm run build && npm test"
|
|
31
|
+
},
|
|
32
|
+
"keywords": [
|
|
33
|
+
"mcp",
|
|
34
|
+
"model-context-protocol",
|
|
35
|
+
"policy",
|
|
36
|
+
"sandbox",
|
|
37
|
+
"capability",
|
|
38
|
+
"bwrap",
|
|
39
|
+
"bubblewrap",
|
|
40
|
+
"typescript"
|
|
41
|
+
],
|
|
42
|
+
"author": {
|
|
43
|
+
"name": "Raju KC",
|
|
44
|
+
"email": "kc.razu@gmail.com"
|
|
45
|
+
},
|
|
46
|
+
"repository": {
|
|
47
|
+
"type": "git",
|
|
48
|
+
"url": "git+https://github.com/razukc/capgate.git"
|
|
49
|
+
},
|
|
50
|
+
"homepage": "https://github.com/razukc/capgate#readme",
|
|
51
|
+
"bugs": {
|
|
52
|
+
"url": "https://github.com/razukc/capgate/issues"
|
|
53
|
+
},
|
|
54
|
+
"license": "MIT",
|
|
55
|
+
"engines": {
|
|
56
|
+
"node": ">=18.0.0"
|
|
57
|
+
},
|
|
58
|
+
"devDependencies": {
|
|
59
|
+
"@types/node": "^20.10.0",
|
|
60
|
+
"cross-env": "^10.1.0",
|
|
61
|
+
"typescript": "^5.3.3",
|
|
62
|
+
"vitest": "^3.2.4"
|
|
63
|
+
}
|
|
64
|
+
}
|