@blink-authority-com/claude-code-plugin 1.0.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 +146 -0
- package/dist/bsec-client.d.ts +35 -0
- package/dist/bsec-client.d.ts.map +1 -0
- package/dist/bsec-client.js +122 -0
- package/dist/bsec-client.js.map +1 -0
- package/dist/docs/cache.d.ts +19 -0
- package/dist/docs/cache.d.ts.map +1 -0
- package/dist/docs/cache.js +92 -0
- package/dist/docs/cache.js.map +1 -0
- package/dist/docs/fetcher.d.ts +19 -0
- package/dist/docs/fetcher.d.ts.map +1 -0
- package/dist/docs/fetcher.js +81 -0
- package/dist/docs/fetcher.js.map +1 -0
- package/dist/docs/parser.d.ts +33 -0
- package/dist/docs/parser.d.ts.map +1 -0
- package/dist/docs/parser.js +145 -0
- package/dist/docs/parser.js.map +1 -0
- package/dist/docs/search.d.ts +38 -0
- package/dist/docs/search.d.ts.map +1 -0
- package/dist/docs/search.js +180 -0
- package/dist/docs/search.js.map +1 -0
- package/dist/docs/tools/api.d.ts +12 -0
- package/dist/docs/tools/api.d.ts.map +1 -0
- package/dist/docs/tools/api.js +58 -0
- package/dist/docs/tools/api.js.map +1 -0
- package/dist/docs/tools/cli.d.ts +12 -0
- package/dist/docs/tools/cli.d.ts.map +1 -0
- package/dist/docs/tools/cli.js +56 -0
- package/dist/docs/tools/cli.js.map +1 -0
- package/dist/docs/tools/concepts.d.ts +18 -0
- package/dist/docs/tools/concepts.d.ts.map +1 -0
- package/dist/docs/tools/concepts.js +136 -0
- package/dist/docs/tools/concepts.js.map +1 -0
- package/dist/docs/tools/sdk.d.ts +12 -0
- package/dist/docs/tools/sdk.d.ts.map +1 -0
- package/dist/docs/tools/sdk.js +72 -0
- package/dist/docs/tools/sdk.js.map +1 -0
- package/dist/docs/tools/search.d.ts +11 -0
- package/dist/docs/tools/search.d.ts.map +1 -0
- package/dist/docs/tools/search.js +36 -0
- package/dist/docs/tools/search.js.map +1 -0
- package/dist/docs/types.d.ts +70 -0
- package/dist/docs/types.d.ts.map +1 -0
- package/dist/docs/types.js +8 -0
- package/dist/docs/types.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +622 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/debug.d.ts +16 -0
- package/dist/prompts/debug.d.ts.map +1 -0
- package/dist/prompts/debug.js +34 -0
- package/dist/prompts/debug.js.map +1 -0
- package/dist/prompts/integrate.d.ts +16 -0
- package/dist/prompts/integrate.d.ts.map +1 -0
- package/dist/prompts/integrate.js +30 -0
- package/dist/prompts/integrate.js.map +1 -0
- package/dist/prompts/review.d.ts +16 -0
- package/dist/prompts/review.d.ts.map +1 -0
- package/dist/prompts/review.js +28 -0
- package/dist/prompts/review.js.map +1 -0
- package/dist/resources/changelog.d.ts +22 -0
- package/dist/resources/changelog.d.ts.map +1 -0
- package/dist/resources/changelog.js +55 -0
- package/dist/resources/changelog.js.map +1 -0
- package/dist/resources/errors.d.ts +16 -0
- package/dist/resources/errors.d.ts.map +1 -0
- package/dist/resources/errors.js +103 -0
- package/dist/resources/errors.js.map +1 -0
- package/dist/resources/patterns.d.ts +16 -0
- package/dist/resources/patterns.d.ts.map +1 -0
- package/dist/resources/patterns.js +151 -0
- package/dist/resources/patterns.js.map +1 -0
- package/dist/templates/approval-workflow.d.ts +6 -0
- package/dist/templates/approval-workflow.d.ts.map +1 -0
- package/dist/templates/approval-workflow.js +467 -0
- package/dist/templates/approval-workflow.js.map +1 -0
- package/dist/templates/audit-trail.d.ts +6 -0
- package/dist/templates/audit-trail.d.ts.map +1 -0
- package/dist/templates/audit-trail.js +396 -0
- package/dist/templates/audit-trail.js.map +1 -0
- package/dist/templates/cli-tool.d.ts +6 -0
- package/dist/templates/cli-tool.d.ts.map +1 -0
- package/dist/templates/cli-tool.js +346 -0
- package/dist/templates/cli-tool.js.map +1 -0
- package/dist/templates/express-api.d.ts +6 -0
- package/dist/templates/express-api.d.ts.map +1 -0
- package/dist/templates/express-api.js +314 -0
- package/dist/templates/express-api.js.map +1 -0
- package/dist/templates/notary.d.ts +6 -0
- package/dist/templates/notary.d.ts.map +1 -0
- package/dist/templates/notary.js +360 -0
- package/dist/templates/notary.js.map +1 -0
- package/dist/test.d.ts +8 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +140 -0
- package/dist/test.js.map +1 -0
- package/dist/tools/add-signing.d.ts +19 -0
- package/dist/tools/add-signing.d.ts.map +1 -0
- package/dist/tools/add-signing.js +317 -0
- package/dist/tools/add-signing.js.map +1 -0
- package/dist/tools/decode.d.ts +13 -0
- package/dist/tools/decode.d.ts.map +1 -0
- package/dist/tools/decode.js +262 -0
- package/dist/tools/decode.js.map +1 -0
- package/dist/tools/hierarchy.d.ts +13 -0
- package/dist/tools/hierarchy.d.ts.map +1 -0
- package/dist/tools/hierarchy.js +319 -0
- package/dist/tools/hierarchy.js.map +1 -0
- package/dist/tools/lint.d.ts +13 -0
- package/dist/tools/lint.d.ts.map +1 -0
- package/dist/tools/lint.js +323 -0
- package/dist/tools/lint.js.map +1 -0
- package/dist/tools/scaffold.d.ts +11 -0
- package/dist/tools/scaffold.d.ts.map +1 -0
- package/dist/tools/scaffold.js +84 -0
- package/dist/tools/scaffold.js.map +1 -0
- package/dist/tools/sign-test.d.ts +17 -0
- package/dist/tools/sign-test.d.ts.map +1 -0
- package/dist/tools/sign-test.js +126 -0
- package/dist/tools/sign-test.js.map +1 -0
- package/dist/tools/test-vectors.d.ts +13 -0
- package/dist/tools/test-vectors.d.ts.map +1 -0
- package/dist/tools/test-vectors.js +169 -0
- package/dist/tools/test-vectors.js.map +1 -0
- package/dist/tools/verify-local.d.ts +17 -0
- package/dist/tools/verify-local.d.ts.map +1 -0
- package/dist/tools/verify-local.js +233 -0
- package/dist/tools/verify-local.js.map +1 -0
- package/dist/tools/verify-test.d.ts +17 -0
- package/dist/tools/verify-test.d.ts.map +1 -0
- package/dist/tools/verify-test.js +107 -0
- package/dist/tools/verify-test.js.map +1 -0
- package/package.json +54 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,622 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* BLINK Authority Claude Code Plugin
|
|
4
|
+
* MCP server providing BLINK integration tools for Claude.
|
|
5
|
+
*
|
|
6
|
+
* @package @blink-authority-com/claude-code-plugin
|
|
7
|
+
*/
|
|
8
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
9
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
10
|
+
import { ListToolsRequestSchema, CallToolRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
11
|
+
// Docs MCP (inherited)
|
|
12
|
+
import { CacheManager } from './docs/cache.js';
|
|
13
|
+
import { fetchAllDocs } from './docs/fetcher.js';
|
|
14
|
+
import { parseDocument } from './docs/parser.js';
|
|
15
|
+
import { SearchIndex } from './docs/search.js';
|
|
16
|
+
import { DEFAULT_CONFIG } from './docs/types.js';
|
|
17
|
+
// Docs tool handlers
|
|
18
|
+
import { handleSearch } from './docs/tools/search.js';
|
|
19
|
+
import { handleGetApiEndpoint } from './docs/tools/api.js';
|
|
20
|
+
import { handleGetCliCommand } from './docs/tools/cli.js';
|
|
21
|
+
import { handleGetSdkGuide } from './docs/tools/sdk.js';
|
|
22
|
+
import { handleGetConcept, handleListAvailableDocs } from './docs/tools/concepts.js';
|
|
23
|
+
// Plugin tool handlers
|
|
24
|
+
import { handleScaffold } from './tools/scaffold.js';
|
|
25
|
+
import { handleAddSigning } from './tools/add-signing.js';
|
|
26
|
+
import { handleDecodeEnvelope } from './tools/decode.js';
|
|
27
|
+
import { handleGenerateTestVectors } from './tools/test-vectors.js';
|
|
28
|
+
import { handleVerifyLocal } from './tools/verify-local.js';
|
|
29
|
+
import { handleLint } from './tools/lint.js';
|
|
30
|
+
import { handleHierarchyDesign } from './tools/hierarchy.js';
|
|
31
|
+
import { handleSignTest } from './tools/sign-test.js';
|
|
32
|
+
import { handleVerifyTest } from './tools/verify-test.js';
|
|
33
|
+
// BSEC client for connected mode
|
|
34
|
+
import { createPluginBsecClient } from './bsec-client.js';
|
|
35
|
+
// Resources
|
|
36
|
+
import { getPatternsResource } from './resources/patterns.js';
|
|
37
|
+
import { getErrorsResource } from './resources/errors.js';
|
|
38
|
+
import { getChangelogResource } from './resources/changelog.js';
|
|
39
|
+
// Prompts
|
|
40
|
+
import { getReviewPrompt } from './prompts/review.js';
|
|
41
|
+
import { getIntegratePrompt } from './prompts/integrate.js';
|
|
42
|
+
import { getDebugPrompt } from './prompts/debug.js';
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
// CLI argument parsing
|
|
45
|
+
// ---------------------------------------------------------------------------
|
|
46
|
+
function parseArgs() {
|
|
47
|
+
const args = process.argv.slice(2);
|
|
48
|
+
const config = { ...DEFAULT_CONFIG };
|
|
49
|
+
for (let i = 0; i < args.length; i++) {
|
|
50
|
+
switch (args[i]) {
|
|
51
|
+
case '--bsec-url':
|
|
52
|
+
config.bsecUrl = args[++i];
|
|
53
|
+
break;
|
|
54
|
+
case '--bsec-token':
|
|
55
|
+
config.bsecToken = args[++i];
|
|
56
|
+
break;
|
|
57
|
+
case '--cache-ttl':
|
|
58
|
+
config.cacheTtlMs = parseInt(args[++i], 10) * 1000;
|
|
59
|
+
break;
|
|
60
|
+
case '--docs-url':
|
|
61
|
+
config.docsUrl = args[++i].replace(/\/$/, '');
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return config;
|
|
66
|
+
}
|
|
67
|
+
// ---------------------------------------------------------------------------
|
|
68
|
+
// Tool definitions
|
|
69
|
+
// ---------------------------------------------------------------------------
|
|
70
|
+
const DOCS_TOOLS = [
|
|
71
|
+
{
|
|
72
|
+
name: 'search_blink_docs',
|
|
73
|
+
description: 'Search BLINK Authority documentation. Returns relevant sections with code examples. ' +
|
|
74
|
+
'Use this when the user asks about BLINK APIs, SDK usage, CLI commands, or concepts. ' +
|
|
75
|
+
'Summarise content, do not reproduce verbatim.',
|
|
76
|
+
inputSchema: {
|
|
77
|
+
type: 'object',
|
|
78
|
+
properties: {
|
|
79
|
+
query: {
|
|
80
|
+
type: 'string',
|
|
81
|
+
description: 'Natural language search query (e.g., "how to verify a signature")',
|
|
82
|
+
},
|
|
83
|
+
limit: {
|
|
84
|
+
type: 'number',
|
|
85
|
+
description: 'Maximum number of results to return (default 5, max 10)',
|
|
86
|
+
default: 5,
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
required: ['query'],
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: 'get_api_endpoint',
|
|
94
|
+
description: 'Get detailed specification for a BLINK API endpoint including request/response format ' +
|
|
95
|
+
'and code examples. Provide a concise summary, do not reproduce the full document.',
|
|
96
|
+
inputSchema: {
|
|
97
|
+
type: 'object',
|
|
98
|
+
properties: {
|
|
99
|
+
endpoint: {
|
|
100
|
+
type: 'string',
|
|
101
|
+
description: "Endpoint name: 'signing', 'verification', 'sessions', 'identity', 'hash', 'health'",
|
|
102
|
+
enum: ['signing', 'verification', 'sessions', 'identity', 'hash', 'health'],
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
required: ['endpoint'],
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
name: 'get_cli_command',
|
|
110
|
+
description: 'Get usage, flags, and examples for a BLINK CLI command. Returns a structured summary.',
|
|
111
|
+
inputSchema: {
|
|
112
|
+
type: 'object',
|
|
113
|
+
properties: {
|
|
114
|
+
command: {
|
|
115
|
+
type: 'string',
|
|
116
|
+
description: "CLI command name: 'sign', 'verify', 'hash', 'keygen', 'inspect', 'config'",
|
|
117
|
+
enum: ['sign', 'verify', 'hash', 'keygen', 'inspect', 'config'],
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
required: ['command'],
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
name: 'get_sdk_guide',
|
|
125
|
+
description: 'Get the BLINK SDK integration guide for a specific language. Optionally filter by topic. ' +
|
|
126
|
+
'Returns relevant code examples and integration steps. Summarise, do not reproduce verbatim.',
|
|
127
|
+
inputSchema: {
|
|
128
|
+
type: 'object',
|
|
129
|
+
properties: {
|
|
130
|
+
language: {
|
|
131
|
+
type: 'string',
|
|
132
|
+
description: 'Programming language',
|
|
133
|
+
enum: ['typescript', 'rust', 'go', 'python'],
|
|
134
|
+
},
|
|
135
|
+
topic: {
|
|
136
|
+
type: 'string',
|
|
137
|
+
description: "Optional topic filter: 'getting-started', 'signing', 'verification', 'advanced', 'key-management'",
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
required: ['language'],
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
name: 'get_concept',
|
|
145
|
+
description: 'Explain a BLINK concept such as VRF, ephemeral keys, BSEC, identity hierarchy, etc. ' +
|
|
146
|
+
'Returns a clear explanation with related concepts.',
|
|
147
|
+
inputSchema: {
|
|
148
|
+
type: 'object',
|
|
149
|
+
properties: {
|
|
150
|
+
concept: {
|
|
151
|
+
type: 'string',
|
|
152
|
+
description: "Concept identifier: 'vrf', 'ephemeral-keys', 'bsec', 'identity', 'hierarchy', 'signing-flow', 'verification-flow', 'key-derivation'",
|
|
153
|
+
enum: [
|
|
154
|
+
'vrf', 'ephemeral-keys', 'bsec', 'identity', 'hierarchy',
|
|
155
|
+
'signing-flow', 'verification-flow', 'key-derivation',
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
required: ['concept'],
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
name: 'list_available_docs',
|
|
164
|
+
description: 'List all available BLINK documentation sections. Use this to discover what documentation ' +
|
|
165
|
+
'is available before making specific queries.',
|
|
166
|
+
inputSchema: {
|
|
167
|
+
type: 'object',
|
|
168
|
+
properties: {},
|
|
169
|
+
required: [],
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
];
|
|
173
|
+
const PLUGIN_TOOLS = [
|
|
174
|
+
{
|
|
175
|
+
name: 'blink_scaffold',
|
|
176
|
+
description: 'Generate a complete BLINK-integrated project. Returns a file tree with content — ' +
|
|
177
|
+
'write these files to the user\'s workspace. Supports templates: express-api, cli-tool, ' +
|
|
178
|
+
'notary, audit-trail, approval-workflow.',
|
|
179
|
+
inputSchema: {
|
|
180
|
+
type: 'object',
|
|
181
|
+
properties: {
|
|
182
|
+
template: {
|
|
183
|
+
type: 'string',
|
|
184
|
+
description: 'Project template to use',
|
|
185
|
+
enum: ['express-api', 'cli-tool', 'notary', 'audit-trail', 'approval-workflow'],
|
|
186
|
+
},
|
|
187
|
+
name: {
|
|
188
|
+
type: 'string',
|
|
189
|
+
description: 'Project name (used for package.json name and directory)',
|
|
190
|
+
},
|
|
191
|
+
language: {
|
|
192
|
+
type: 'string',
|
|
193
|
+
description: 'Target language',
|
|
194
|
+
enum: ['typescript', 'javascript'],
|
|
195
|
+
default: 'typescript',
|
|
196
|
+
},
|
|
197
|
+
features: {
|
|
198
|
+
type: 'array',
|
|
199
|
+
description: 'Optional features to include',
|
|
200
|
+
items: {
|
|
201
|
+
type: 'string',
|
|
202
|
+
enum: ['graceful-shutdown', 'health-check', 'multi-algorithm', 'post-quantum'],
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
required: ['template', 'name'],
|
|
207
|
+
},
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
name: 'blink_add_signing',
|
|
211
|
+
description: 'Add BLINK signing to existing code. Provide the code and a signing pattern — ' +
|
|
212
|
+
'returns enhanced code with BLINK integration and explanatory comments. ' +
|
|
213
|
+
'Patterns: sign-response (Express middleware), sign-document (hash + sign), ' +
|
|
214
|
+
'sign-audit-entry (hash-chained), verify-incoming (signature verification).',
|
|
215
|
+
inputSchema: {
|
|
216
|
+
type: 'object',
|
|
217
|
+
properties: {
|
|
218
|
+
code: {
|
|
219
|
+
type: 'string',
|
|
220
|
+
description: 'The existing source code to enhance with BLINK signing',
|
|
221
|
+
},
|
|
222
|
+
pattern: {
|
|
223
|
+
type: 'string',
|
|
224
|
+
description: 'The signing pattern to apply',
|
|
225
|
+
enum: ['sign-response', 'sign-document', 'sign-audit-entry', 'verify-incoming'],
|
|
226
|
+
},
|
|
227
|
+
},
|
|
228
|
+
required: ['code', 'pattern'],
|
|
229
|
+
},
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
name: 'blink_decode_envelope',
|
|
233
|
+
description: 'Decode a BLINK signature envelope and explain each field. Useful for debugging ' +
|
|
234
|
+
'signing/verification issues. Pass a base64-encoded envelope.',
|
|
235
|
+
inputSchema: {
|
|
236
|
+
type: 'object',
|
|
237
|
+
properties: {
|
|
238
|
+
envelope: {
|
|
239
|
+
type: 'string',
|
|
240
|
+
description: 'Base64-encoded BLINK signature envelope',
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
|
+
required: ['envelope'],
|
|
244
|
+
},
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
name: 'blink_generate_test_vectors',
|
|
248
|
+
description: 'Generate mock BLINK signature envelopes and test vectors for unit testing. ' +
|
|
249
|
+
'These are deterministic mocks — not real BSEC signatures — but they follow ' +
|
|
250
|
+
'the correct format for testing parsers and validators.',
|
|
251
|
+
inputSchema: {
|
|
252
|
+
type: 'object',
|
|
253
|
+
properties: {
|
|
254
|
+
count: {
|
|
255
|
+
type: 'number',
|
|
256
|
+
description: 'Number of test vectors to generate (default 3, max 20)',
|
|
257
|
+
default: 3,
|
|
258
|
+
minimum: 1,
|
|
259
|
+
maximum: 20,
|
|
260
|
+
},
|
|
261
|
+
algorithm: {
|
|
262
|
+
type: 'string',
|
|
263
|
+
description: 'Algorithm suite for the test vectors',
|
|
264
|
+
enum: ['ed25519', 'ml-dsa-44'],
|
|
265
|
+
default: 'ed25519',
|
|
266
|
+
},
|
|
267
|
+
scenario: {
|
|
268
|
+
type: 'string',
|
|
269
|
+
description: 'Test scenario — determines expected verification outcome',
|
|
270
|
+
enum: ['valid', 'expired', 'tampered', 'wrong-key'],
|
|
271
|
+
default: 'valid',
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
required: [],
|
|
275
|
+
},
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
name: 'blink_verify_local',
|
|
279
|
+
description: 'Verify a BLINK signature envelope offline without a BSEC connection. ' +
|
|
280
|
+
'Checks VRF proof validity, key derivation chain, signature correctness, ' +
|
|
281
|
+
'and timestamp freshness.',
|
|
282
|
+
inputSchema: {
|
|
283
|
+
type: 'object',
|
|
284
|
+
properties: {
|
|
285
|
+
envelope: {
|
|
286
|
+
type: 'string',
|
|
287
|
+
description: 'Base64-encoded BLINK signature envelope',
|
|
288
|
+
},
|
|
289
|
+
p_derive: {
|
|
290
|
+
type: 'string',
|
|
291
|
+
description: 'Base64-encoded P_derive public key',
|
|
292
|
+
},
|
|
293
|
+
},
|
|
294
|
+
required: ['envelope', 'p_derive'],
|
|
295
|
+
},
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
name: 'blink_lint',
|
|
299
|
+
description: 'Lint code for BLINK integration best practices. Checks for common mistakes ' +
|
|
300
|
+
'like unclosed BSEC connections, missing error handling, and suboptimal patterns.',
|
|
301
|
+
inputSchema: {
|
|
302
|
+
type: 'object',
|
|
303
|
+
properties: {
|
|
304
|
+
code: {
|
|
305
|
+
type: 'string',
|
|
306
|
+
description: 'Source code to analyse',
|
|
307
|
+
},
|
|
308
|
+
language: {
|
|
309
|
+
type: 'string',
|
|
310
|
+
description: 'Programming language of the source code',
|
|
311
|
+
enum: ['typescript', 'javascript', 'rust', 'go', 'python'],
|
|
312
|
+
default: 'typescript',
|
|
313
|
+
},
|
|
314
|
+
},
|
|
315
|
+
required: ['code'],
|
|
316
|
+
},
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
name: 'blink_hierarchy_design',
|
|
320
|
+
description: 'Design a BLINK key hierarchy for an organization. Describe your org structure ' +
|
|
321
|
+
'and requirements — returns a suggested hierarchy tree with rationale.',
|
|
322
|
+
inputSchema: {
|
|
323
|
+
type: 'object',
|
|
324
|
+
properties: {
|
|
325
|
+
description: {
|
|
326
|
+
type: 'string',
|
|
327
|
+
description: 'Natural language description of the organization: departments, services, agents, geographic distribution',
|
|
328
|
+
},
|
|
329
|
+
requirements: {
|
|
330
|
+
type: 'array',
|
|
331
|
+
description: 'Special requirements for the hierarchy',
|
|
332
|
+
items: {
|
|
333
|
+
type: 'string',
|
|
334
|
+
enum: ['post-quantum', 'agent-delegation', 'geographic-isolation', 'regulatory-compliance'],
|
|
335
|
+
},
|
|
336
|
+
},
|
|
337
|
+
},
|
|
338
|
+
required: ['description'],
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
name: 'blink_sign_test',
|
|
343
|
+
description: 'Sign a test payload using a live BSEC instance. Requires --bsec-url and --bsec-token ' +
|
|
344
|
+
'configuration. Returns the signed envelope with full VRF proof chain details.',
|
|
345
|
+
inputSchema: {
|
|
346
|
+
type: 'object',
|
|
347
|
+
properties: {
|
|
348
|
+
payload: {
|
|
349
|
+
type: 'string',
|
|
350
|
+
description: 'Data to sign (will be hashed before signing)',
|
|
351
|
+
},
|
|
352
|
+
algorithm: {
|
|
353
|
+
type: 'string',
|
|
354
|
+
description: 'Signing algorithm',
|
|
355
|
+
enum: ['ed25519', 'ml-dsa-44'],
|
|
356
|
+
default: 'ed25519',
|
|
357
|
+
},
|
|
358
|
+
slot: {
|
|
359
|
+
type: 'string',
|
|
360
|
+
description: 'BSEC slot name (uses default slot if not specified)',
|
|
361
|
+
},
|
|
362
|
+
},
|
|
363
|
+
required: ['payload'],
|
|
364
|
+
},
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
name: 'blink_verify_test',
|
|
368
|
+
description: 'Verify a BLINK signature envelope using a live BSEC instance. Requires --bsec-url ' +
|
|
369
|
+
'and --bsec-token. Returns step-by-step proof chain validation.',
|
|
370
|
+
inputSchema: {
|
|
371
|
+
type: 'object',
|
|
372
|
+
properties: {
|
|
373
|
+
envelope: {
|
|
374
|
+
type: 'string',
|
|
375
|
+
description: 'Base64-encoded BLINK signature envelope',
|
|
376
|
+
},
|
|
377
|
+
p_derive: {
|
|
378
|
+
type: 'string',
|
|
379
|
+
description: 'Base64-encoded P_derive public key',
|
|
380
|
+
},
|
|
381
|
+
},
|
|
382
|
+
required: ['envelope', 'p_derive'],
|
|
383
|
+
},
|
|
384
|
+
},
|
|
385
|
+
];
|
|
386
|
+
// ---------------------------------------------------------------------------
|
|
387
|
+
// Main
|
|
388
|
+
// ---------------------------------------------------------------------------
|
|
389
|
+
async function main() {
|
|
390
|
+
const config = parseArgs();
|
|
391
|
+
const cache = new CacheManager();
|
|
392
|
+
const searchIndex = new SearchIndex();
|
|
393
|
+
// ---------------------------------------------------------------------------
|
|
394
|
+
// BSEC client for connected mode (optional)
|
|
395
|
+
// ---------------------------------------------------------------------------
|
|
396
|
+
let bsecClient = null;
|
|
397
|
+
if (config.bsecUrl && config.bsecToken) {
|
|
398
|
+
bsecClient = createPluginBsecClient(config.bsecUrl, config.bsecToken);
|
|
399
|
+
process.stderr.write(`[blink-plugin] Connected mode enabled (BSEC: ${config.bsecUrl})\n`);
|
|
400
|
+
}
|
|
401
|
+
else {
|
|
402
|
+
process.stderr.write('[blink-plugin] Running in offline mode (no BSEC configured)\n');
|
|
403
|
+
}
|
|
404
|
+
// ---------------------------------------------------------------------------
|
|
405
|
+
// Populate docs cache + search index (best effort)
|
|
406
|
+
// ---------------------------------------------------------------------------
|
|
407
|
+
async function buildIndex() {
|
|
408
|
+
const cachedDocs = cache.getAllCachedContent();
|
|
409
|
+
let docs;
|
|
410
|
+
if (cachedDocs.size > 0 && !cache.isStale('_manifest', config.cacheTtlMs)) {
|
|
411
|
+
docs = cachedDocs;
|
|
412
|
+
process.stderr.write(`[blink-plugin] Loaded ${docs.size} docs from cache\n`);
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
try {
|
|
416
|
+
docs = await fetchAllDocs(config.docsUrl);
|
|
417
|
+
for (const [path, content] of docs) {
|
|
418
|
+
cache.set(path, content);
|
|
419
|
+
}
|
|
420
|
+
process.stderr.write(`[blink-plugin] Fetched and cached ${docs.size} docs\n`);
|
|
421
|
+
}
|
|
422
|
+
catch (err) {
|
|
423
|
+
if (cachedDocs.size > 0) {
|
|
424
|
+
docs = cachedDocs;
|
|
425
|
+
process.stderr.write(`[blink-plugin] Network unavailable, using stale cache (${docs.size} docs): ${err}\n`);
|
|
426
|
+
}
|
|
427
|
+
else {
|
|
428
|
+
docs = new Map();
|
|
429
|
+
process.stderr.write(`[blink-plugin] Warning: no docs available (no cache, no network): ${err}\n`);
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
for (const [path, content] of docs) {
|
|
434
|
+
const sections = parseDocument(content, path);
|
|
435
|
+
for (const section of sections) {
|
|
436
|
+
searchIndex.addDocument(`${path}#${section.title}`, section.title, section.content);
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
process.stderr.write(`[blink-plugin] Search index built: ${searchIndex.size} sections\n`);
|
|
440
|
+
}
|
|
441
|
+
// ---------------------------------------------------------------------------
|
|
442
|
+
// MCP Server setup
|
|
443
|
+
// ---------------------------------------------------------------------------
|
|
444
|
+
const server = new Server({
|
|
445
|
+
name: 'blink-claude-plugin',
|
|
446
|
+
version: '1.0.0',
|
|
447
|
+
}, {
|
|
448
|
+
capabilities: {
|
|
449
|
+
tools: {},
|
|
450
|
+
resources: {},
|
|
451
|
+
prompts: {},
|
|
452
|
+
},
|
|
453
|
+
});
|
|
454
|
+
// ---------------------------------------------------------------------------
|
|
455
|
+
// Tool listing
|
|
456
|
+
// ---------------------------------------------------------------------------
|
|
457
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
458
|
+
tools: [...DOCS_TOOLS, ...PLUGIN_TOOLS],
|
|
459
|
+
}));
|
|
460
|
+
// ---------------------------------------------------------------------------
|
|
461
|
+
// Tool call dispatch
|
|
462
|
+
// ---------------------------------------------------------------------------
|
|
463
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
464
|
+
const { name, arguments: args } = request.params;
|
|
465
|
+
const toolArgs = (args ?? {});
|
|
466
|
+
switch (name) {
|
|
467
|
+
// --- Docs tools (inherited) ---
|
|
468
|
+
case 'search_blink_docs':
|
|
469
|
+
return handleSearch(searchIndex, toolArgs);
|
|
470
|
+
case 'get_api_endpoint':
|
|
471
|
+
return handleGetApiEndpoint(cache, config, toolArgs);
|
|
472
|
+
case 'get_cli_command':
|
|
473
|
+
return handleGetCliCommand(cache, config, toolArgs);
|
|
474
|
+
case 'get_sdk_guide':
|
|
475
|
+
return handleGetSdkGuide(cache, config, toolArgs);
|
|
476
|
+
case 'get_concept':
|
|
477
|
+
return handleGetConcept(cache, config, toolArgs);
|
|
478
|
+
case 'list_available_docs':
|
|
479
|
+
return handleListAvailableDocs(cache, config);
|
|
480
|
+
// --- Scaffolding tools ---
|
|
481
|
+
case 'blink_scaffold':
|
|
482
|
+
return handleScaffold(toolArgs);
|
|
483
|
+
case 'blink_add_signing':
|
|
484
|
+
return handleAddSigning(toolArgs);
|
|
485
|
+
// --- Sprint 44 tools ---
|
|
486
|
+
case 'blink_decode_envelope':
|
|
487
|
+
return handleDecodeEnvelope(toolArgs);
|
|
488
|
+
case 'blink_generate_test_vectors':
|
|
489
|
+
return handleGenerateTestVectors(toolArgs);
|
|
490
|
+
case 'blink_verify_local':
|
|
491
|
+
return handleVerifyLocal(toolArgs);
|
|
492
|
+
case 'blink_lint':
|
|
493
|
+
return handleLint(toolArgs);
|
|
494
|
+
case 'blink_hierarchy_design':
|
|
495
|
+
return handleHierarchyDesign(toolArgs);
|
|
496
|
+
case 'blink_sign_test':
|
|
497
|
+
return handleSignTest(toolArgs, bsecClient);
|
|
498
|
+
case 'blink_verify_test':
|
|
499
|
+
return handleVerifyTest(toolArgs, bsecClient);
|
|
500
|
+
default:
|
|
501
|
+
return {
|
|
502
|
+
content: [{ type: 'text', text: JSON.stringify({ error: `Unknown tool: ${name}` }) }],
|
|
503
|
+
isError: true,
|
|
504
|
+
};
|
|
505
|
+
}
|
|
506
|
+
});
|
|
507
|
+
// ---------------------------------------------------------------------------
|
|
508
|
+
// Resources (stubs — Sprint 44+)
|
|
509
|
+
// ---------------------------------------------------------------------------
|
|
510
|
+
server.setRequestHandler(ListResourcesRequestSchema, async () => ({
|
|
511
|
+
resources: [
|
|
512
|
+
{
|
|
513
|
+
uri: 'blink://patterns',
|
|
514
|
+
name: 'BLINK Integration Patterns',
|
|
515
|
+
description: 'Common BLINK integration patterns for reference when writing code',
|
|
516
|
+
mimeType: 'application/json',
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
uri: 'blink://errors',
|
|
520
|
+
name: 'BLINK Error Reference',
|
|
521
|
+
description: 'Common BLINK/BSEC error codes with causes and fixes',
|
|
522
|
+
mimeType: 'application/json',
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
uri: 'blink://changelog',
|
|
526
|
+
name: 'BLINK Changelog',
|
|
527
|
+
description: 'Recent changes to BLINK SDK, CLI, and BSEC',
|
|
528
|
+
mimeType: 'application/json',
|
|
529
|
+
},
|
|
530
|
+
],
|
|
531
|
+
}));
|
|
532
|
+
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
|
|
533
|
+
const uri = request.params.uri;
|
|
534
|
+
let text;
|
|
535
|
+
switch (uri) {
|
|
536
|
+
case 'blink://patterns':
|
|
537
|
+
text = getPatternsResource();
|
|
538
|
+
break;
|
|
539
|
+
case 'blink://errors':
|
|
540
|
+
text = getErrorsResource();
|
|
541
|
+
break;
|
|
542
|
+
case 'blink://changelog':
|
|
543
|
+
text = getChangelogResource();
|
|
544
|
+
break;
|
|
545
|
+
default:
|
|
546
|
+
text = JSON.stringify({ error: `Unknown resource: ${uri}` });
|
|
547
|
+
break;
|
|
548
|
+
}
|
|
549
|
+
return {
|
|
550
|
+
contents: [{
|
|
551
|
+
uri,
|
|
552
|
+
mimeType: 'application/json',
|
|
553
|
+
text,
|
|
554
|
+
}],
|
|
555
|
+
};
|
|
556
|
+
});
|
|
557
|
+
// ---------------------------------------------------------------------------
|
|
558
|
+
// Prompts (stubs — Sprint 44+)
|
|
559
|
+
// ---------------------------------------------------------------------------
|
|
560
|
+
server.setRequestHandler(ListPromptsRequestSchema, async () => ({
|
|
561
|
+
prompts: [
|
|
562
|
+
{
|
|
563
|
+
name: 'blink-review',
|
|
564
|
+
description: 'Review code for BLINK integration best practices',
|
|
565
|
+
arguments: [
|
|
566
|
+
{ name: 'code', description: 'Source code to review', required: true },
|
|
567
|
+
],
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
name: 'blink-integrate',
|
|
571
|
+
description: 'Guide integration of BLINK into an existing project',
|
|
572
|
+
arguments: [
|
|
573
|
+
{ name: 'project_type', description: 'Type of project (api, cli, library)', required: true },
|
|
574
|
+
{ name: 'language', description: 'Programming language', required: false },
|
|
575
|
+
],
|
|
576
|
+
},
|
|
577
|
+
{
|
|
578
|
+
name: 'blink-debug',
|
|
579
|
+
description: 'Debug a BLINK signing or verification issue',
|
|
580
|
+
arguments: [
|
|
581
|
+
{ name: 'error', description: 'Error message or description of the issue', required: true },
|
|
582
|
+
{ name: 'code', description: 'Relevant code snippet', required: false },
|
|
583
|
+
],
|
|
584
|
+
},
|
|
585
|
+
],
|
|
586
|
+
}));
|
|
587
|
+
server.setRequestHandler(GetPromptRequestSchema, async (request) => {
|
|
588
|
+
const { name, arguments: promptArgs } = request.params;
|
|
589
|
+
const args = (promptArgs ?? {});
|
|
590
|
+
switch (name) {
|
|
591
|
+
case 'blink-review':
|
|
592
|
+
return getReviewPrompt(args);
|
|
593
|
+
case 'blink-integrate':
|
|
594
|
+
return getIntegratePrompt(args);
|
|
595
|
+
case 'blink-debug':
|
|
596
|
+
return getDebugPrompt(args);
|
|
597
|
+
default:
|
|
598
|
+
return {
|
|
599
|
+
description: `Unknown prompt: ${name}`,
|
|
600
|
+
messages: [{
|
|
601
|
+
role: 'user',
|
|
602
|
+
content: {
|
|
603
|
+
type: 'text',
|
|
604
|
+
text: `Unknown prompt: "${name}". Available prompts: blink-review, blink-integrate, blink-debug.`,
|
|
605
|
+
},
|
|
606
|
+
}],
|
|
607
|
+
};
|
|
608
|
+
}
|
|
609
|
+
});
|
|
610
|
+
// ---------------------------------------------------------------------------
|
|
611
|
+
// Build index, then start transport
|
|
612
|
+
// ---------------------------------------------------------------------------
|
|
613
|
+
await buildIndex();
|
|
614
|
+
const transport = new StdioServerTransport();
|
|
615
|
+
await server.connect(transport);
|
|
616
|
+
process.stderr.write('[blink-plugin] BLINK Authority Claude Code Plugin running on stdio\n');
|
|
617
|
+
}
|
|
618
|
+
main().catch((err) => {
|
|
619
|
+
process.stderr.write(`[blink-plugin] Fatal error: ${err}\n`);
|
|
620
|
+
process.exit(1);
|
|
621
|
+
});
|
|
622
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* blink-debug MCP prompt.
|
|
3
|
+
*
|
|
4
|
+
* Debug a BLINK signing or verification issue.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getDebugPrompt(args: Record<string, string>): {
|
|
7
|
+
description: string;
|
|
8
|
+
messages: Array<{
|
|
9
|
+
role: string;
|
|
10
|
+
content: {
|
|
11
|
+
type: string;
|
|
12
|
+
text: string;
|
|
13
|
+
};
|
|
14
|
+
}>;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=debug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/prompts/debug.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CAC5E,CAgCA"}
|