aegis-mcp-server 0.1.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/LICENSE +21 -0
- package/README.md +95 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +144 -0
- package/dist/index.js.map +1 -0
- package/dist/services/enforcement-engine.d.ts +64 -0
- package/dist/services/enforcement-engine.d.ts.map +1 -0
- package/dist/services/enforcement-engine.js +271 -0
- package/dist/services/enforcement-engine.js.map +1 -0
- package/dist/services/policy-loader.d.ts +56 -0
- package/dist/services/policy-loader.d.ts.map +1 -0
- package/dist/services/policy-loader.js +202 -0
- package/dist/services/policy-loader.js.map +1 -0
- package/dist/tools/file-tools.d.ts +21 -0
- package/dist/tools/file-tools.d.ts.map +1 -0
- package/dist/tools/file-tools.js +369 -0
- package/dist/tools/file-tools.js.map +1 -0
- package/dist/types.d.ts +286 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -0
- package/package.json +41 -0
- package/src/index.ts +171 -0
- package/src/services/enforcement-engine.ts +322 -0
- package/src/services/policy-loader.ts +255 -0
- package/src/tools/file-tools.ts +453 -0
- package/src/types.ts +305 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-tools.js","sourceRoot":"","sources":["../../src/tools/file-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aegis MCP Server — Core Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Aligned to the aegis-spec v0.2.0 schema contract and the aegis-cli v0.2.4
|
|
5
|
+
* extraction prompt. Skeleton fields (required by the spec) are typed precisely.
|
|
6
|
+
* Extension fields (domain-specific additions the LLM may generate) are typed
|
|
7
|
+
* as optional with their known shapes.
|
|
8
|
+
*
|
|
9
|
+
* The enforcement engine reads skeleton fields with confidence and leverages
|
|
10
|
+
* extension fields when present for deeper enforcement.
|
|
11
|
+
*/
|
|
12
|
+
export interface Constitution {
|
|
13
|
+
$schema?: string;
|
|
14
|
+
version: string;
|
|
15
|
+
project: {
|
|
16
|
+
name: string;
|
|
17
|
+
purpose: string;
|
|
18
|
+
architecture: string;
|
|
19
|
+
module_map?: ModuleMapEntry[];
|
|
20
|
+
required_artifacts?: RequiredArtifact[];
|
|
21
|
+
/** Extension: domain list with paths and descriptions */
|
|
22
|
+
domains?: DomainEntry[];
|
|
23
|
+
/** Extension: catch-all for other project fields */
|
|
24
|
+
[key: string]: unknown;
|
|
25
|
+
};
|
|
26
|
+
tech_stack: {
|
|
27
|
+
languages: string[];
|
|
28
|
+
frameworks?: string[];
|
|
29
|
+
infrastructure?: string[];
|
|
30
|
+
package_managers?: string[];
|
|
31
|
+
key_libraries?: Array<{
|
|
32
|
+
name: string;
|
|
33
|
+
purpose: string;
|
|
34
|
+
scope?: string;
|
|
35
|
+
}>;
|
|
36
|
+
[key: string]: unknown;
|
|
37
|
+
};
|
|
38
|
+
principles: Principle[];
|
|
39
|
+
build_commands?: BuildCommands;
|
|
40
|
+
/** Extension: sensitivity tier definitions */
|
|
41
|
+
sensitivity_tiers?: SensitivityTier[];
|
|
42
|
+
[key: string]: unknown;
|
|
43
|
+
}
|
|
44
|
+
export interface ModuleMapEntry {
|
|
45
|
+
path: string;
|
|
46
|
+
purpose: string;
|
|
47
|
+
owner?: string;
|
|
48
|
+
internal_dependencies?: string[];
|
|
49
|
+
}
|
|
50
|
+
export interface RequiredArtifact {
|
|
51
|
+
path: string;
|
|
52
|
+
purpose: string;
|
|
53
|
+
source?: string;
|
|
54
|
+
}
|
|
55
|
+
export interface DomainEntry {
|
|
56
|
+
name: string;
|
|
57
|
+
path: string;
|
|
58
|
+
description: string;
|
|
59
|
+
}
|
|
60
|
+
export interface Principle {
|
|
61
|
+
name: string;
|
|
62
|
+
statement: string;
|
|
63
|
+
priority?: number;
|
|
64
|
+
/** Extension: enforcement level */
|
|
65
|
+
id?: string;
|
|
66
|
+
enforcement?: string;
|
|
67
|
+
text?: string;
|
|
68
|
+
[key: string]: unknown;
|
|
69
|
+
}
|
|
70
|
+
export interface BuildCommands {
|
|
71
|
+
install?: string;
|
|
72
|
+
build?: string;
|
|
73
|
+
test?: string;
|
|
74
|
+
lint?: string;
|
|
75
|
+
typecheck?: string;
|
|
76
|
+
dev?: string;
|
|
77
|
+
custom?: Array<{
|
|
78
|
+
name: string;
|
|
79
|
+
command: string;
|
|
80
|
+
purpose: string;
|
|
81
|
+
}>;
|
|
82
|
+
[key: string]: unknown;
|
|
83
|
+
}
|
|
84
|
+
export interface SensitivityTier {
|
|
85
|
+
tier: string;
|
|
86
|
+
description: string;
|
|
87
|
+
examples: string[];
|
|
88
|
+
handling: Record<string, string>;
|
|
89
|
+
}
|
|
90
|
+
export interface Governance {
|
|
91
|
+
$schema?: string;
|
|
92
|
+
version: string;
|
|
93
|
+
autonomy: {
|
|
94
|
+
default_level: AutonomyLevel;
|
|
95
|
+
domains?: Record<string, AutonomyLevel>;
|
|
96
|
+
/** Extension: detailed level descriptions */
|
|
97
|
+
levels?: Record<string, {
|
|
98
|
+
description: string;
|
|
99
|
+
}>;
|
|
100
|
+
/** Extension: per-domain overrides (alternate key) */
|
|
101
|
+
domain_overrides?: Record<string, AutonomyLevel | string>;
|
|
102
|
+
[key: string]: unknown;
|
|
103
|
+
};
|
|
104
|
+
permissions: {
|
|
105
|
+
boundaries: PermissionBoundaries;
|
|
106
|
+
sensitive_patterns?: SensitivePattern[];
|
|
107
|
+
[key: string]: unknown;
|
|
108
|
+
};
|
|
109
|
+
quality_gate: {
|
|
110
|
+
pre_commit: PreCommitGates;
|
|
111
|
+
/** Extension: richer gate array */
|
|
112
|
+
gates?: QualityGateEntry[];
|
|
113
|
+
/** Extension: override authority */
|
|
114
|
+
override_authority?: string;
|
|
115
|
+
[key: string]: unknown;
|
|
116
|
+
};
|
|
117
|
+
conventions?: Convention[];
|
|
118
|
+
escalation?: EscalationConfig;
|
|
119
|
+
override_protocol?: OverrideProtocol;
|
|
120
|
+
/** Extension: cross-domain enforcement rules */
|
|
121
|
+
cross_domain_rules?: CrossDomainRules;
|
|
122
|
+
/** Extension: data directory policy */
|
|
123
|
+
data_directory_policy?: Record<string, unknown>;
|
|
124
|
+
/** Extension: build commands (may appear here or in constitution) */
|
|
125
|
+
build_commands?: BuildCommands;
|
|
126
|
+
[key: string]: unknown;
|
|
127
|
+
}
|
|
128
|
+
export type AutonomyLevel = 'conservative' | 'advisory' | 'delegated';
|
|
129
|
+
export interface PermissionBoundaries {
|
|
130
|
+
writable?: string[];
|
|
131
|
+
read_only?: string[];
|
|
132
|
+
forbidden?: string[];
|
|
133
|
+
}
|
|
134
|
+
export interface SensitivePattern {
|
|
135
|
+
pattern: string;
|
|
136
|
+
reason: string;
|
|
137
|
+
}
|
|
138
|
+
export interface PreCommitGates {
|
|
139
|
+
must_pass_tests?: boolean;
|
|
140
|
+
must_pass_lint?: boolean;
|
|
141
|
+
must_pass_typecheck?: boolean;
|
|
142
|
+
must_add_tests?: boolean;
|
|
143
|
+
must_update_docs?: boolean;
|
|
144
|
+
max_files_changed?: number;
|
|
145
|
+
custom_checks?: Array<{
|
|
146
|
+
name: string;
|
|
147
|
+
command: string;
|
|
148
|
+
description?: string;
|
|
149
|
+
}>;
|
|
150
|
+
}
|
|
151
|
+
export interface QualityGateEntry {
|
|
152
|
+
name: string;
|
|
153
|
+
scope: string | string[];
|
|
154
|
+
required: boolean;
|
|
155
|
+
description: string;
|
|
156
|
+
}
|
|
157
|
+
export interface Convention {
|
|
158
|
+
id: string;
|
|
159
|
+
scope: string;
|
|
160
|
+
rule: string;
|
|
161
|
+
value?: string;
|
|
162
|
+
allowed?: string[];
|
|
163
|
+
forbidden?: string[];
|
|
164
|
+
enforcement: 'strict' | 'preferred' | 'suggestion';
|
|
165
|
+
rationale?: string;
|
|
166
|
+
}
|
|
167
|
+
export interface EscalationConfig {
|
|
168
|
+
on_ambiguity?: 'stop_and_ask' | 'best_judgment_and_flag' | 'best_judgment_silent';
|
|
169
|
+
on_conflict?: 'stop_and_ask' | 'principles_win' | 'convention_wins';
|
|
170
|
+
on_scope_boundary?: 'stop_and_ask' | 'flag_and_suggest' | 'stay_in_lane';
|
|
171
|
+
/** Extension: trigger list */
|
|
172
|
+
triggers?: string[];
|
|
173
|
+
/** Extension: escalation target */
|
|
174
|
+
target?: string;
|
|
175
|
+
/** Extension: escalation behavior description */
|
|
176
|
+
behavior?: string;
|
|
177
|
+
[key: string]: unknown;
|
|
178
|
+
}
|
|
179
|
+
export interface OverrideProtocol {
|
|
180
|
+
behavior?: 'block_and_log' | 'warn_confirm_and_log' | 'log_only';
|
|
181
|
+
log_path?: string;
|
|
182
|
+
log_entry_schema?: Record<string, unknown>;
|
|
183
|
+
immutable_policies?: string[];
|
|
184
|
+
}
|
|
185
|
+
export interface CrossDomainRules {
|
|
186
|
+
communication_method?: string;
|
|
187
|
+
shared_interfaces_path?: string;
|
|
188
|
+
violations?: Record<string, string>;
|
|
189
|
+
description?: string;
|
|
190
|
+
[key: string]: unknown;
|
|
191
|
+
}
|
|
192
|
+
export interface RoleFile {
|
|
193
|
+
$schema?: string;
|
|
194
|
+
version: string;
|
|
195
|
+
/** Skeleton: nested role object */
|
|
196
|
+
role: {
|
|
197
|
+
name: string;
|
|
198
|
+
purpose: string;
|
|
199
|
+
specialization?: string[];
|
|
200
|
+
};
|
|
201
|
+
/** Skeleton: scoped paths */
|
|
202
|
+
scope: {
|
|
203
|
+
primary_paths: string[];
|
|
204
|
+
secondary_paths?: string[];
|
|
205
|
+
excluded_paths?: string[];
|
|
206
|
+
};
|
|
207
|
+
autonomy_overrides?: Record<string, AutonomyLevel>;
|
|
208
|
+
/** Extension: flat autonomy level for the role */
|
|
209
|
+
autonomy?: AutonomyLevel | string;
|
|
210
|
+
/** Extension: read/write path model */
|
|
211
|
+
paths?: {
|
|
212
|
+
read?: string[];
|
|
213
|
+
write?: string[];
|
|
214
|
+
};
|
|
215
|
+
/** Extension: prose list of forbidden actions */
|
|
216
|
+
forbidden_actions?: string[];
|
|
217
|
+
/** Extension: convention overrides or key-value conventions */
|
|
218
|
+
conventions?: unknown;
|
|
219
|
+
/** Extension: escalation triggers */
|
|
220
|
+
escalation_triggers?: string[];
|
|
221
|
+
/** Extension: QA validation responsibilities */
|
|
222
|
+
validation_responsibilities?: string[];
|
|
223
|
+
/** Extension: write mode (e.g. append-only) */
|
|
224
|
+
write_mode?: string;
|
|
225
|
+
/** Extension: report format config */
|
|
226
|
+
report_format?: Record<string, unknown>;
|
|
227
|
+
/** Extension: collaboration protocols */
|
|
228
|
+
collaboration?: Record<string, unknown>;
|
|
229
|
+
/** Extension: description (flat, alongside role.purpose) */
|
|
230
|
+
description?: string;
|
|
231
|
+
[key: string]: unknown;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Resolved role for enforcement — flattened from the RoleFile structure
|
|
235
|
+
* with skeleton and extension fields merged for fast lookups.
|
|
236
|
+
*/
|
|
237
|
+
export interface ResolvedRole {
|
|
238
|
+
/** Filename without .json */
|
|
239
|
+
id: string;
|
|
240
|
+
/** role.name from skeleton */
|
|
241
|
+
name: string;
|
|
242
|
+
/** role.purpose from skeleton */
|
|
243
|
+
purpose: string;
|
|
244
|
+
/** Merged: scope.primary_paths + paths.write */
|
|
245
|
+
writable_paths: string[];
|
|
246
|
+
/** Merged: scope.secondary_paths */
|
|
247
|
+
secondary_paths: string[];
|
|
248
|
+
/** Merged: scope.excluded_paths */
|
|
249
|
+
excluded_paths: string[];
|
|
250
|
+
/** Merged: paths.read (when present) */
|
|
251
|
+
readable_paths: string[];
|
|
252
|
+
/** Autonomy level for this role */
|
|
253
|
+
autonomy: string;
|
|
254
|
+
/** Forbidden actions (prose, for informational responses) */
|
|
255
|
+
forbidden_actions: string[];
|
|
256
|
+
}
|
|
257
|
+
export type EnforcementVerdict = {
|
|
258
|
+
allowed: true;
|
|
259
|
+
} | {
|
|
260
|
+
allowed: false;
|
|
261
|
+
reason: string;
|
|
262
|
+
policy_ref: string;
|
|
263
|
+
immutable: boolean;
|
|
264
|
+
};
|
|
265
|
+
export interface OverrideLogEntry {
|
|
266
|
+
timestamp: string;
|
|
267
|
+
policy_violated: string;
|
|
268
|
+
policy_text: string;
|
|
269
|
+
action_requested: string;
|
|
270
|
+
human_confirmed: boolean;
|
|
271
|
+
agent_role: string;
|
|
272
|
+
rationale: string;
|
|
273
|
+
}
|
|
274
|
+
export interface PolicyState {
|
|
275
|
+
constitution: Constitution;
|
|
276
|
+
governance: Governance;
|
|
277
|
+
roles: Map<string, ResolvedRole>;
|
|
278
|
+
projectRoot: string;
|
|
279
|
+
policyDir: string;
|
|
280
|
+
}
|
|
281
|
+
export interface AegisMcpConfig {
|
|
282
|
+
role: string;
|
|
283
|
+
projectRoot: string;
|
|
284
|
+
policyDir?: string;
|
|
285
|
+
}
|
|
286
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;QAC9B,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,CAAC;QACxC,yDAAyD;QACzD,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;QACxB,oDAAoD;QACpD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,UAAU,EAAE;QACV,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;QAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,aAAa,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACzE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAID,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QACR,aAAa,EAAE,aAAa,CAAC;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACxC,6CAA6C;QAC7C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjD,sDAAsD;QACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC,CAAC;QAC1D,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,WAAW,EAAE;QACX,UAAU,EAAE,oBAAoB,CAAC;QACjC,kBAAkB,CAAC,EAAE,gBAAgB,EAAE,CAAC;QACxC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,YAAY,EAAE;QACZ,UAAU,EAAE,cAAc,CAAC;QAC3B,mCAAmC;QACnC,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;QAC3B,oCAAoC;QACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;IACtC,uCAAuC;IACvC,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,qEAAqE;IACrE,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;AAEtE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,KAAK,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,cAAc,GAAG,wBAAwB,GAAG,sBAAsB,CAAC;IAClF,WAAW,CAAC,EAAE,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,CAAC;IACpE,iBAAiB,CAAC,EAAE,cAAc,GAAG,kBAAkB,GAAG,cAAc,CAAC;IACzE,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,eAAe,GAAG,sBAAsB,GAAG,UAAU,CAAC;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;IACF,6BAA6B;IAC7B,KAAK,EAAE;QACL,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;IACF,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACnD,kDAAkD;IAClD,QAAQ,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;IAClC,uCAAuC;IACvC,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,+DAA+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qCAAqC;IACrC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,gDAAgD;IAChD,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAC;IACvC,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,yCAAyC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,oCAAoC;IACpC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,mCAAmC;IACnC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,wCAAwC;IACxC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAID,MAAM,MAAM,kBAAkB,GAC1B;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/E,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aegis MCP Server — Core Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Aligned to the aegis-spec v0.2.0 schema contract and the aegis-cli v0.2.4
|
|
5
|
+
* extraction prompt. Skeleton fields (required by the spec) are typed precisely.
|
|
6
|
+
* Extension fields (domain-specific additions the LLM may generate) are typed
|
|
7
|
+
* as optional with their known shapes.
|
|
8
|
+
*
|
|
9
|
+
* The enforcement engine reads skeleton fields with confidence and leverages
|
|
10
|
+
* extension fields when present for deeper enforcement.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "aegis-mcp-server",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "MCP enforcement layer for the Aegis agent governance specification",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"aegis-mcp": "./dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"start": "node dist/index.js",
|
|
13
|
+
"dev": "tsc --watch"
|
|
14
|
+
},
|
|
15
|
+
"keywords": [
|
|
16
|
+
"mcp",
|
|
17
|
+
"ai-governance",
|
|
18
|
+
"agent-governance",
|
|
19
|
+
"aegis",
|
|
20
|
+
"model-context-protocol"
|
|
21
|
+
],
|
|
22
|
+
"author": "Cleburn",
|
|
23
|
+
"license": "MIT",
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "https://github.com/cleburn/aegis-mcp.git"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
30
|
+
"chokidar": "^4.0.0",
|
|
31
|
+
"minimatch": "^10.0.0",
|
|
32
|
+
"zod": "^3.24.0"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@types/node": "^22.0.0",
|
|
36
|
+
"typescript": "^5.7.0"
|
|
37
|
+
},
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=18.0.0"
|
|
40
|
+
}
|
|
41
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Aegis MCP Server — Entry Point
|
|
5
|
+
*
|
|
6
|
+
* Starts the MCP enforcement server. Loads .agentpolicy/ into process memory,
|
|
7
|
+
* registers governed tools, and connects via stdio transport.
|
|
8
|
+
*
|
|
9
|
+
* The agent connects to this server and calls governed tools (aegis_write_file,
|
|
10
|
+
* aegis_read_file, etc.) instead of raw file system operations. All validation
|
|
11
|
+
* happens in this process at zero token cost to the agent.
|
|
12
|
+
*
|
|
13
|
+
* Usage:
|
|
14
|
+
* aegis-mcp --project /path/to/project --role backend
|
|
15
|
+
*
|
|
16
|
+
* Claude Code MCP config:
|
|
17
|
+
* {
|
|
18
|
+
* "mcpServers": {
|
|
19
|
+
* "aegis": {
|
|
20
|
+
* "command": "npx",
|
|
21
|
+
* "args": ["aegis-mcp-server", "--project", ".", "--role", "default"]
|
|
22
|
+
* }
|
|
23
|
+
* }
|
|
24
|
+
* }
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
28
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
29
|
+
import { resolve } from 'node:path';
|
|
30
|
+
import { PolicyLoader } from './services/policy-loader.js';
|
|
31
|
+
import { EnforcementEngine } from './services/enforcement-engine.js';
|
|
32
|
+
import { registerTools } from './tools/file-tools.js';
|
|
33
|
+
import type { AegisMcpConfig } from './types.js';
|
|
34
|
+
|
|
35
|
+
// ─── Parse CLI Args ─────────────────────────────────────────────────────────
|
|
36
|
+
|
|
37
|
+
function parseArgs(): AegisMcpConfig {
|
|
38
|
+
const args = process.argv.slice(2);
|
|
39
|
+
let projectRoot = process.cwd();
|
|
40
|
+
let role = 'default';
|
|
41
|
+
let policyDir: string | undefined;
|
|
42
|
+
|
|
43
|
+
for (let i = 0; i < args.length; i++) {
|
|
44
|
+
switch (args[i]) {
|
|
45
|
+
case '--project':
|
|
46
|
+
case '-p':
|
|
47
|
+
projectRoot = resolve(args[++i] ?? '.');
|
|
48
|
+
break;
|
|
49
|
+
case '--role':
|
|
50
|
+
case '-r':
|
|
51
|
+
role = args[++i] ?? 'default';
|
|
52
|
+
break;
|
|
53
|
+
case '--policy-dir':
|
|
54
|
+
policyDir = args[++i];
|
|
55
|
+
break;
|
|
56
|
+
case '--help':
|
|
57
|
+
case '-h':
|
|
58
|
+
printHelp();
|
|
59
|
+
process.exit(0);
|
|
60
|
+
break;
|
|
61
|
+
case '--version':
|
|
62
|
+
case '-v':
|
|
63
|
+
log('aegis-mcp-server v0.1.0');
|
|
64
|
+
process.exit(0);
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return { projectRoot, role, policyDir };
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
function printHelp(): void {
|
|
73
|
+
log(`
|
|
74
|
+
aegis-mcp-server — MCP enforcement layer for Aegis agent governance
|
|
75
|
+
|
|
76
|
+
USAGE:
|
|
77
|
+
aegis-mcp-server [OPTIONS]
|
|
78
|
+
|
|
79
|
+
OPTIONS:
|
|
80
|
+
-p, --project <path> Project root directory (default: cwd)
|
|
81
|
+
-r, --role <role-id> Agent role to enforce (default: "default")
|
|
82
|
+
--policy-dir <dir> Policy directory name (default: ".agentpolicy")
|
|
83
|
+
-h, --help Show this help
|
|
84
|
+
-v, --version Show version
|
|
85
|
+
|
|
86
|
+
CLAUDE CODE CONFIG:
|
|
87
|
+
{
|
|
88
|
+
"mcpServers": {
|
|
89
|
+
"aegis": {
|
|
90
|
+
"command": "npx",
|
|
91
|
+
"args": ["aegis-mcp-server", "--project", ".", "--role", "default"]
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
TOOLS PROVIDED:
|
|
97
|
+
aegis_check_permissions Pre-check if an operation is allowed
|
|
98
|
+
aegis_write_file Governed file write with content scanning
|
|
99
|
+
aegis_read_file Governed file read
|
|
100
|
+
aegis_delete_file Governed file delete
|
|
101
|
+
aegis_execute Governed command execution
|
|
102
|
+
aegis_complete_task Task completion with quality gate validation
|
|
103
|
+
aegis_policy_summary Minimal summary of current role and permissions
|
|
104
|
+
`);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// ─── Main ───────────────────────────────────────────────────────────────────
|
|
108
|
+
|
|
109
|
+
async function main(): Promise<void> {
|
|
110
|
+
const config = parseArgs();
|
|
111
|
+
|
|
112
|
+
log('Starting aegis-mcp-server');
|
|
113
|
+
log(` Project: ${config.projectRoot}`);
|
|
114
|
+
log(` Role: ${config.role}`);
|
|
115
|
+
log(` Policy dir: ${config.policyDir ?? '.agentpolicy'}`);
|
|
116
|
+
|
|
117
|
+
// 1. Load policy into process memory
|
|
118
|
+
const loader = new PolicyLoader(config);
|
|
119
|
+
let state = await loader.load();
|
|
120
|
+
let activeRole = loader.getActiveRole();
|
|
121
|
+
let engine = new EnforcementEngine(state, activeRole);
|
|
122
|
+
|
|
123
|
+
// 2. Watch for policy changes and auto-reload
|
|
124
|
+
loader.startWatching(() => {
|
|
125
|
+
state = loader.getState();
|
|
126
|
+
activeRole = loader.getActiveRole();
|
|
127
|
+
engine.updateState(state, activeRole);
|
|
128
|
+
log('Policy reloaded');
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
// 3. Create MCP server
|
|
132
|
+
const server = new McpServer({
|
|
133
|
+
name: 'aegis-mcp-server',
|
|
134
|
+
version: '0.1.0',
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
// 4. Register governed tools
|
|
138
|
+
registerTools(
|
|
139
|
+
server,
|
|
140
|
+
() => engine,
|
|
141
|
+
() => state,
|
|
142
|
+
() => activeRole
|
|
143
|
+
);
|
|
144
|
+
|
|
145
|
+
// 5. Connect via stdio transport
|
|
146
|
+
const transport = new StdioServerTransport();
|
|
147
|
+
await server.connect(transport);
|
|
148
|
+
|
|
149
|
+
log('Connected via stdio — enforcement active');
|
|
150
|
+
|
|
151
|
+
// Graceful shutdown
|
|
152
|
+
const shutdown = async (): Promise<void> => {
|
|
153
|
+
log('Shutting down...');
|
|
154
|
+
await loader.stopWatching();
|
|
155
|
+
process.exit(0);
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
process.on('SIGINT', shutdown);
|
|
159
|
+
process.on('SIGTERM', shutdown);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
function log(message: string): void {
|
|
163
|
+
process.stderr.write(`[aegis-mcp] ${message}\n`);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
main().catch((err) => {
|
|
167
|
+
process.stderr.write(
|
|
168
|
+
`[aegis-mcp] Fatal: ${err instanceof Error ? err.message : String(err)}\n`
|
|
169
|
+
);
|
|
170
|
+
process.exit(1);
|
|
171
|
+
});
|