@inkog-io/mcp 1.0.0 → 1.0.2

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.
@@ -12,7 +12,7 @@
12
12
  * This is Inkog's unique differentiator - no other tool does this.
13
13
  */
14
14
  import { z } from 'zod';
15
- import { getClient, InkogAuthError, InkogNetworkError } from '../api/client.js';
15
+ import { getClient, InkogApiError, InkogAuthError, InkogNetworkError, InkogRateLimitError, } from '../api/client.js';
16
16
  import { findAgentsMd, getRelativePaths, readDirectory } from '../utils/file-reader.js';
17
17
  // =============================================================================
18
18
  // Schema
@@ -23,30 +23,77 @@ const GovernanceArgsSchema = z.object({
23
23
  // =============================================================================
24
24
  // Helpers
25
25
  // =============================================================================
26
+ function formatSeverityIcon(severity) {
27
+ const upper = severity.toUpperCase();
28
+ switch (upper) {
29
+ case 'CRITICAL':
30
+ return 'šŸ”“';
31
+ case 'HIGH':
32
+ return '🟠';
33
+ case 'MEDIUM':
34
+ return '🟔';
35
+ case 'LOW':
36
+ return '🟢';
37
+ default:
38
+ return '⚪';
39
+ }
40
+ }
26
41
  function formatMismatch(mismatch) {
27
- const icon = mismatch.severity === 'CRITICAL'
28
- ? 'šŸ”“'
29
- : mismatch.severity === 'HIGH'
30
- ? '🟠'
31
- : mismatch.severity === 'MEDIUM'
32
- ? '🟔'
33
- : '🟢';
34
- let output = `${icon} GOVERNANCE MISMATCH\n`;
42
+ const icon = formatSeverityIcon(mismatch.severity);
43
+ let output = `${icon} GOVERNANCE MISMATCH [${mismatch.severity.toUpperCase()}]\n`;
35
44
  output += ` šŸ“ ${mismatch.file}:${mismatch.line}\n`;
36
- output += ` šŸ“œ Declared: "${mismatch.declared}"\n`;
45
+ output += ` šŸŽÆ Capability: ${mismatch.capability}\n`;
46
+ output += ` šŸ“œ Expected: "${mismatch.expected}"\n`;
37
47
  output += ` āš ļø Actual: "${mismatch.actual}"\n`;
38
- output += ` šŸ’¬ ${mismatch.description}`;
48
+ if (mismatch.evidence) {
49
+ output += ` šŸ“ Evidence: ${mismatch.evidence}\n`;
50
+ }
51
+ return output;
52
+ }
53
+ function formatCapability(cap) {
54
+ const statusIcon = cap.status === 'valid' ? 'āœ…' :
55
+ cap.status === 'violated' ? 'āŒ' : '⚪';
56
+ let output = `${statusIcon} ${cap.name}`;
57
+ if (cap.constraint_type) {
58
+ output += ` [${cap.constraint_type}]`;
59
+ }
60
+ output += '\n';
61
+ if (cap.description) {
62
+ output += ` ${cap.description}\n`;
63
+ }
64
+ if (cap.line) {
65
+ output += ` Line: ${cap.line}\n`;
66
+ }
39
67
  return output;
40
68
  }
41
- function formatCapabilityList(items, title, icon) {
42
- if (items.length === 0) {
43
- return '';
69
+ function formatScore(score) {
70
+ if (score >= 90) {
71
+ return `āœ… ${score}/100 (Excellent)`;
72
+ }
73
+ else if (score >= 70) {
74
+ return `🟢 ${score}/100 (Good)`;
75
+ }
76
+ else if (score >= 50) {
77
+ return `🟔 ${score}/100 (Fair)`;
78
+ }
79
+ else if (score >= 30) {
80
+ return `🟠 ${score}/100 (Poor)`;
44
81
  }
45
- let output = `${icon} ${title}:\n`;
46
- for (const item of items) {
47
- output += ` • ${item}\n`;
82
+ else {
83
+ return `šŸ”“ ${score}/100 (Critical)`;
84
+ }
85
+ }
86
+ function formatOverallStatus(status) {
87
+ switch (status.toLowerCase()) {
88
+ case 'valid':
89
+ return 'āœ… Valid';
90
+ case 'invalid':
91
+ return 'āŒ Invalid';
92
+ case 'partial':
93
+ return 'āš ļø Partial';
94
+ default:
95
+ return status;
48
96
  }
49
- return output + '\n';
50
97
  }
51
98
  // =============================================================================
52
99
  // Handler
@@ -84,16 +131,31 @@ async function governanceHandler(rawArgs) {
84
131
  }
85
132
  // Get relative paths for cleaner output
86
133
  const files = getRelativePaths(readResult.files, args.path);
87
- // Call Inkog API
134
+ // Call Inkog API - first scan, then verify governance
88
135
  const client = getClient();
89
- const response = await client.verifyGovernance(files);
136
+ // Step 1: Run a scan to get a scan_id
137
+ const scanResponse = await client.scan(files, { policy: 'governance' });
138
+ if (!scanResponse.success || !scanResponse.scan_id) {
139
+ return {
140
+ content: [
141
+ {
142
+ type: 'text',
143
+ text: 'Scan failed: Unable to analyze files',
144
+ },
145
+ ],
146
+ isError: true,
147
+ };
148
+ }
149
+ // Step 2: Use scan_id to verify governance
150
+ const response = await client.verifyGovernance({ scanId: scanResponse.scan_id });
90
151
  // Build output
91
152
  let output = '╔══════════════════════════════════════════════════════╗\n';
92
153
  output += 'ā•‘ šŸ›ļø AGENTS.md Governance Verification ā•‘\n';
93
154
  output += 'ā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•\n\n';
94
155
  // AGENTS.md status
95
- if (response.hasAgentsMd) {
96
- output += `āœ… AGENTS.md found: ${response.agentsMdPath ?? agentsMdPath ?? 'AGENTS.md'}\n\n`;
156
+ const hasAgentsMd = response.hasAgentsMd ?? (agentsMdPath !== null);
157
+ if (hasAgentsMd) {
158
+ output += `āœ… AGENTS.md found: ${agentsMdPath ?? 'AGENTS.md'}\n\n`;
97
159
  }
98
160
  else {
99
161
  output += 'āš ļø No AGENTS.md file found\n\n';
@@ -108,35 +170,77 @@ async function governanceHandler(rawArgs) {
108
170
  output +=
109
171
  'Learn more: https://docs.inkog.io/governance/agents-md\n\n';
110
172
  }
111
- // Compliance score
112
- output += `šŸ“Š Governance Score: ${response.complianceScore}/100\n\n`;
113
- // Declared capabilities, limitations, tools
114
- if (response.hasAgentsMd) {
173
+ // Overall status and score
174
+ output += `šŸ“Š Status: ${formatOverallStatus(response.overall_status)}\n`;
175
+ output += `šŸ“ˆ Governance Score: ${formatScore(response.score)}\n\n`;
176
+ // Summary if available
177
+ if (response.summary) {
178
+ output += '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n';
179
+ output += 'šŸ“Š SUMMARY\n\n';
180
+ output += ` Total declarations: ${response.summary.total_declarations}\n`;
181
+ output += ` āœ… Valid: ${response.summary.valid_declarations}\n`;
182
+ output += ` āŒ Violated: ${response.summary.violated_constraints}\n`;
183
+ output += ` ⚪ Unverified: ${response.summary.unverified_items}\n`;
184
+ output += ` šŸ“ Files analyzed: ${response.summary.files_analyzed}\n\n`;
185
+ }
186
+ // Declared capabilities
187
+ const declaredCaps = response.declared_capabilities ?? [];
188
+ if (declaredCaps.length > 0) {
115
189
  output += '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n';
116
- output += 'šŸ“œ DECLARED GOVERNANCE\n\n';
117
- output += formatCapabilityList(response.declaredCapabilities, 'Capabilities', 'āœ…');
118
- output += formatCapabilityList(response.declaredLimitations, 'Limitations', '🚫');
119
- output += formatCapabilityList(response.declaredTools, 'Tools', 'šŸ”§');
190
+ output += 'šŸ“œ DECLARED CAPABILITIES\n\n';
191
+ // Group by status
192
+ const valid = declaredCaps.filter((c) => c.status === 'valid');
193
+ const violated = declaredCaps.filter((c) => c.status === 'violated');
194
+ const unverified = declaredCaps.filter((c) => c.status === 'unverified');
195
+ if (violated.length > 0) {
196
+ output += 'āŒ VIOLATED:\n\n';
197
+ for (const cap of violated) {
198
+ output += formatCapability(cap);
199
+ }
200
+ output += '\n';
201
+ }
202
+ if (unverified.length > 0) {
203
+ output += '⚪ UNVERIFIED:\n\n';
204
+ for (const cap of unverified) {
205
+ output += formatCapability(cap);
206
+ }
207
+ output += '\n';
208
+ }
209
+ if (valid.length > 0) {
210
+ output += 'āœ… VALID:\n\n';
211
+ for (const cap of valid) {
212
+ output += ` ${cap.name}`;
213
+ if (cap.constraint_type) {
214
+ output += ` [${cap.constraint_type}]`;
215
+ }
216
+ output += '\n';
217
+ }
218
+ output += '\n';
219
+ }
120
220
  }
121
221
  // Mismatches
122
- if (response.mismatches.length > 0) {
222
+ const mismatches = response.mismatches ?? [];
223
+ if (mismatches.length > 0) {
123
224
  output += '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n';
124
- output += `āš ļø GOVERNANCE MISMATCHES (${response.mismatches.length})\n\n`;
225
+ output += `āš ļø GOVERNANCE MISMATCHES (${mismatches.length})\n\n`;
125
226
  output += 'The following code behaviors do not match AGENTS.md declarations:\n\n';
126
- for (const mismatch of response.mismatches) {
127
- output += formatMismatch(mismatch) + '\n\n';
227
+ for (const mismatch of mismatches) {
228
+ output += formatMismatch(mismatch) + '\n';
128
229
  }
129
230
  }
130
- else if (response.hasAgentsMd) {
231
+ else if (hasAgentsMd) {
131
232
  output += '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n';
132
233
  output += 'āœ… No governance mismatches detected!\n\n';
133
234
  output += 'Your agent code aligns with its AGENTS.md declarations.\n\n';
134
235
  }
135
236
  // Recommendations
136
- if (response.recommendation !== undefined) {
237
+ const recommendations = response.recommendations ?? [];
238
+ if (recommendations.length > 0) {
137
239
  output += '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n';
138
- output += 'šŸ’” RECOMMENDATION\n\n';
139
- output += response.recommendation + '\n';
240
+ output += 'šŸ’” RECOMMENDATIONS\n\n';
241
+ for (let i = 0; i < recommendations.length; i++) {
242
+ output += `${i + 1}. ${recommendations[i]}\n`;
243
+ }
140
244
  }
141
245
  // Footer
142
246
  output += '\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n';
@@ -163,6 +267,17 @@ async function governanceHandler(rawArgs) {
163
267
  isError: true,
164
268
  };
165
269
  }
270
+ if (error instanceof InkogRateLimitError) {
271
+ return {
272
+ content: [
273
+ {
274
+ type: 'text',
275
+ text: `ā±ļø Rate Limited\n\nToo many requests. Please retry after ${error.retryAfter} seconds.`,
276
+ },
277
+ ],
278
+ isError: true,
279
+ };
280
+ }
166
281
  if (error instanceof InkogNetworkError) {
167
282
  return {
168
283
  content: [
@@ -174,7 +289,27 @@ async function governanceHandler(rawArgs) {
174
289
  isError: true,
175
290
  };
176
291
  }
177
- throw error;
292
+ if (error instanceof InkogApiError) {
293
+ return {
294
+ content: [
295
+ {
296
+ type: 'text',
297
+ text: `API error: ${error.message}${error.details ? `\n\nDetails: ${JSON.stringify(error.details)}` : ''}`,
298
+ },
299
+ ],
300
+ isError: true,
301
+ };
302
+ }
303
+ const message = error instanceof Error ? error.message : 'Unknown error occurred';
304
+ return {
305
+ content: [
306
+ {
307
+ type: 'text',
308
+ text: `Error: ${message}`,
309
+ },
310
+ ],
311
+ isError: true,
312
+ };
178
313
  }
179
314
  }
180
315
  // =============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"governance.js","sourceRoot":"","sources":["../../src/tools/governance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"governance.js","sourceRoot":"","sources":["../../src/tools/governance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mlbom.d.ts","sourceRoot":"","sources":["../../src/tools/mlbom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAyV7D,eAAO,MAAM,SAAS,EAAE,cA4BvB,CAAC"}
1
+ {"version":3,"file":"mlbom.d.ts","sourceRoot":"","sources":["../../src/tools/mlbom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAkBH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAgX7D,eAAO,MAAM,SAAS,EAAE,cA4BvB,CAAC"}