bluelamp 2.0.9 → 3.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/README.md +12 -25
- package/bin/bluelamp +368 -0
- package/bin/bluelamp-base +368 -0
- package/bin/bluelamp10 +368 -0
- package/bin/bluelamp100 +368 -0
- package/bin/bluelamp11 +368 -0
- package/bin/bluelamp12 +368 -0
- package/bin/bluelamp13 +368 -0
- package/bin/bluelamp14 +368 -0
- package/bin/bluelamp15 +368 -0
- package/bin/bluelamp16 +368 -0
- package/bin/bluelamp17 +368 -0
- package/bin/bluelamp18 +368 -0
- package/bin/bluelamp19 +368 -0
- package/bin/bluelamp2 +368 -0
- package/bin/bluelamp20 +368 -0
- package/bin/bluelamp21 +368 -0
- package/bin/bluelamp22 +368 -0
- package/bin/bluelamp23 +368 -0
- package/bin/bluelamp24 +368 -0
- package/bin/bluelamp25 +368 -0
- package/bin/bluelamp26 +368 -0
- package/bin/bluelamp27 +368 -0
- package/bin/bluelamp28 +368 -0
- package/bin/bluelamp29 +368 -0
- package/bin/bluelamp3 +368 -0
- package/bin/bluelamp30 +368 -0
- package/bin/bluelamp31 +368 -0
- package/bin/bluelamp32 +368 -0
- package/bin/bluelamp33 +368 -0
- package/bin/bluelamp34 +368 -0
- package/bin/bluelamp35 +368 -0
- package/bin/bluelamp36 +368 -0
- package/bin/bluelamp37 +368 -0
- package/bin/bluelamp38 +368 -0
- package/bin/bluelamp39 +368 -0
- package/bin/bluelamp4 +368 -0
- package/bin/bluelamp40 +368 -0
- package/bin/bluelamp41 +368 -0
- package/bin/bluelamp42 +368 -0
- package/bin/bluelamp43 +368 -0
- package/bin/bluelamp44 +368 -0
- package/bin/bluelamp45 +368 -0
- package/bin/bluelamp46 +368 -0
- package/bin/bluelamp47 +368 -0
- package/bin/bluelamp48 +368 -0
- package/bin/bluelamp49 +368 -0
- package/bin/bluelamp5 +368 -0
- package/bin/bluelamp50 +368 -0
- package/bin/bluelamp51 +368 -0
- package/bin/bluelamp52 +368 -0
- package/bin/bluelamp53 +368 -0
- package/bin/bluelamp54 +368 -0
- package/bin/bluelamp55 +368 -0
- package/bin/bluelamp56 +368 -0
- package/bin/bluelamp57 +368 -0
- package/bin/bluelamp58 +368 -0
- package/bin/bluelamp59 +368 -0
- package/bin/bluelamp6 +368 -0
- package/bin/bluelamp60 +368 -0
- package/bin/bluelamp61 +368 -0
- package/bin/bluelamp62 +368 -0
- package/bin/bluelamp63 +368 -0
- package/bin/bluelamp64 +368 -0
- package/bin/bluelamp65 +368 -0
- package/bin/bluelamp66 +368 -0
- package/bin/bluelamp67 +368 -0
- package/bin/bluelamp68 +368 -0
- package/bin/bluelamp69 +368 -0
- package/bin/bluelamp7 +368 -0
- package/bin/bluelamp70 +368 -0
- package/bin/bluelamp71 +368 -0
- package/bin/bluelamp72 +368 -0
- package/bin/bluelamp73 +368 -0
- package/bin/bluelamp74 +368 -0
- package/bin/bluelamp75 +368 -0
- package/bin/bluelamp76 +368 -0
- package/bin/bluelamp77 +368 -0
- package/bin/bluelamp78 +368 -0
- package/bin/bluelamp79 +368 -0
- package/bin/bluelamp8 +368 -0
- package/bin/bluelamp80 +368 -0
- package/bin/bluelamp81 +368 -0
- package/bin/bluelamp82 +368 -0
- package/bin/bluelamp83 +368 -0
- package/bin/bluelamp84 +368 -0
- package/bin/bluelamp85 +368 -0
- package/bin/bluelamp86 +368 -0
- package/bin/bluelamp87 +368 -0
- package/bin/bluelamp88 +368 -0
- package/bin/bluelamp89 +368 -0
- package/bin/bluelamp9 +368 -0
- package/bin/bluelamp90 +368 -0
- package/bin/bluelamp91 +368 -0
- package/bin/bluelamp92 +368 -0
- package/bin/bluelamp93 +368 -0
- package/bin/bluelamp94 +368 -0
- package/bin/bluelamp95 +368 -0
- package/bin/bluelamp96 +368 -0
- package/bin/bluelamp97 +368 -0
- package/bin/bluelamp98 +368 -0
- package/bin/bluelamp99 +368 -0
- package/lib/mcp-server/dist/bluelamp-system.js +32 -0
- package/lib/mcp-server/dist/crypto-utils.js +27 -0
- package/lib/mcp-server/dist/database-version.js +33 -0
- package/lib/mcp-server/dist/index.js +62 -0
- package/lib/mcp-server/dist/plugins/base-plugin.js +24 -0
- package/lib/mcp-server/dist/plugins/plugin-manager.js +31 -0
- package/lib/mcp-server/dist/plugins/services/leonardo-plugin.js +95 -0
- package/lib/mcp-server/dist/plugins/services/leonardo-prompt-parser.js +36 -0
- package/lib/mcp-server/dist/plugins/services/portal-api-client.js +22 -0
- package/lib/mcp-server/dist/plugins/services/portal-plugin.js +52 -0
- package/lib/mcp-server/dist/secure-mcp-server.js +76 -0
- package/lib/mcp-server/dist/security/ApiKeyManager.js +24 -0
- package/lib/mcp-server/dist/security/InteractiveLogin.js +32 -0
- package/lib/mcp-server/dist/security/PortalAuthClient.js +1 -0
- package/lib/mcp-server/dist/security/SimpleAuthManager.js +1 -0
- package/lib/mcp-server/dist/security/TokenManager.js +25 -0
- package/lib/mcp-server/package.json +21 -0
- package/package.json +119 -35
- package/INSTALLATION_GUIDE.md +0 -109
- package/bin/blcf +0 -2
- package/bin/blcf2 +0 -28
- package/bin/blcf3 +0 -2
- package/bin/blcf4 +0 -2
- package/knowledge-injection/hooks/inject-encrypted.sh +0 -321
- package/lib/agents//343/203/225/343/202/231/343/203/253/343/203/274/343/203/251/343/203/263/343/203/225/343/202/232.md +0 -106
- package/lib/mcp-server/dist_optimized/bluelamp-system.d.ts +0 -29
- package/lib/mcp-server/dist_optimized/bluelamp-system.d.ts.map +0 -1
- package/lib/mcp-server/dist_optimized/bluelamp-system.js +0 -1
- package/lib/mcp-server/dist_optimized/bluelamp-system.js.bak +0 -340
- package/lib/mcp-server/dist_optimized/bluelamp-system.js.map +0 -1
- package/lib/mcp-server/dist_optimized/crypto-utils.d.ts +0 -33
- package/lib/mcp-server/dist_optimized/crypto-utils.d.ts.map +0 -1
- package/lib/mcp-server/dist_optimized/crypto-utils.js +0 -1
- package/lib/mcp-server/dist_optimized/crypto-utils.js.map +0 -1
- package/lib/mcp-server/dist_optimized/database-version.d.ts +0 -72
- package/lib/mcp-server/dist_optimized/database-version.d.ts.map +0 -1
- package/lib/mcp-server/dist_optimized/database-version.js +0 -2
- package/lib/mcp-server/dist_optimized/database-version.js.bak +0 -374
- package/lib/mcp-server/dist_optimized/database-version.js.map +0 -1
- package/lib/mcp-server/dist_optimized/index.d.ts +0 -3
- package/lib/mcp-server/dist_optimized/index.d.ts.map +0 -1
- package/lib/mcp-server/dist_optimized/index.js +0 -2
- package/lib/mcp-server/dist_optimized/index.js.map +0 -1
- package/lib/mcp-server/dist_optimized/secure-mcp-server.d.ts +0 -64
- package/lib/mcp-server/dist_optimized/secure-mcp-server.d.ts.map +0 -1
- package/lib/mcp-server/dist_optimized/secure-mcp-server.js +0 -1
- package/lib/mcp-server/dist_optimized/secure-mcp-server.js.bak +0 -1
- package/lib/mcp-server/dist_optimized/secure-mcp-server.js.bak2 +0 -1
- package/lib/mcp-server/dist_optimized/secure-mcp-server.js.map +0 -1
- package/lib/mcp-server/dist_optimized/security/InteractiveLogin.d.ts +0 -47
- package/lib/mcp-server/dist_optimized/security/InteractiveLogin.d.ts.map +0 -1
- package/lib/mcp-server/dist_optimized/security/InteractiveLogin.js +0 -1
- package/lib/mcp-server/dist_optimized/security/InteractiveLogin.js.map +0 -1
- package/lib/mcp-server/dist_optimized/security/PortalAuthClient.d.ts +0 -65
- package/lib/mcp-server/dist_optimized/security/PortalAuthClient.d.ts.map +0 -1
- package/lib/mcp-server/dist_optimized/security/PortalAuthClient.js +0 -1
- package/lib/mcp-server/dist_optimized/security/PortalAuthClient.js.map +0 -1
- package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.backup +0 -294
- package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.d.ts +0 -71
- package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.d.ts.map +0 -1
- package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.js +0 -1
- package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.js.backup +0 -25
- package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.js.map +0 -1
- package/lib/mcp-server/dist_optimized/security/TokenManager.d.ts +0 -61
- package/lib/mcp-server/dist_optimized/security/TokenManager.d.ts.map +0 -1
- package/lib/mcp-server/dist_optimized/security/TokenManager.js +0 -1
- package/lib/mcp-server/dist_optimized/security/TokenManager.js.map +0 -1
- package/scripts/setup-agents.js +0 -9
|
@@ -1,340 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* BlueLamp プロンプト保護システム
|
|
4
|
-
* サブエージェントのプロンプト保護とアクセス制御を実装
|
|
5
|
-
*/
|
|
6
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
-
if (k2 === undefined) k2 = k;
|
|
8
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(o, k2, desc);
|
|
13
|
-
}) : (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
o[k2] = m[k];
|
|
16
|
-
}));
|
|
17
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
-
}) : function(o, v) {
|
|
20
|
-
o["default"] = v;
|
|
21
|
-
});
|
|
22
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
-
var ownKeys = function(o) {
|
|
24
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
-
var ar = [];
|
|
26
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
-
return ar;
|
|
28
|
-
};
|
|
29
|
-
return ownKeys(o);
|
|
30
|
-
};
|
|
31
|
-
return function (mod) {
|
|
32
|
-
if (mod && mod.__esModule) return mod;
|
|
33
|
-
var result = {};
|
|
34
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
-
__setModuleDefault(result, mod);
|
|
36
|
-
return result;
|
|
37
|
-
};
|
|
38
|
-
})();
|
|
39
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.BlueLampProtectionSystem = void 0;
|
|
41
|
-
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
42
|
-
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
43
|
-
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
44
|
-
const fs = __importStar(require("fs"));
|
|
45
|
-
const path = __importStar(require("path"));
|
|
46
|
-
class BlueLampProtectionSystem {
|
|
47
|
-
constructor() {
|
|
48
|
-
this.server = new index_js_1.Server({
|
|
49
|
-
name: "bluelamp-protection-system",
|
|
50
|
-
version: "1.0.0",
|
|
51
|
-
}, {
|
|
52
|
-
capabilities: {
|
|
53
|
-
tools: {},
|
|
54
|
-
},
|
|
55
|
-
});
|
|
56
|
-
this.validTokens = new Set();
|
|
57
|
-
this.accessLogs = [];
|
|
58
|
-
this.initializeTokens();
|
|
59
|
-
this.setupHandlers();
|
|
60
|
-
}
|
|
61
|
-
initializeTokens() {
|
|
62
|
-
// 環境変数からトークンを初期化
|
|
63
|
-
const envToken = process.env.BLUELAMP_TOKEN;
|
|
64
|
-
if (envToken) {
|
|
65
|
-
this.validTokens.add(envToken);
|
|
66
|
-
}
|
|
67
|
-
// デフォルトテストトークンを追加(開発用)
|
|
68
|
-
this.validTokens.add("test-token-12345");
|
|
69
|
-
this.validTokens.add("bluelamp-secure-token-67890");
|
|
70
|
-
}
|
|
71
|
-
setupHandlers() {
|
|
72
|
-
this.server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
|
|
73
|
-
tools: [
|
|
74
|
-
{
|
|
75
|
-
name: "authenticate_agent",
|
|
76
|
-
description: "Authenticate access to protected agent",
|
|
77
|
-
inputSchema: {
|
|
78
|
-
type: "object",
|
|
79
|
-
properties: {
|
|
80
|
-
token: {
|
|
81
|
-
type: "string",
|
|
82
|
-
description: "Authentication token",
|
|
83
|
-
},
|
|
84
|
-
agentName: {
|
|
85
|
-
type: "string",
|
|
86
|
-
description: "Name of the agent to access",
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
required: ["token", "agentName"],
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
name: "get_protected_prompt",
|
|
94
|
-
description: "Get protected prompt for authenticated agent",
|
|
95
|
-
inputSchema: {
|
|
96
|
-
type: "object",
|
|
97
|
-
properties: {
|
|
98
|
-
token: {
|
|
99
|
-
type: "string",
|
|
100
|
-
description: "Authentication token",
|
|
101
|
-
},
|
|
102
|
-
agentName: {
|
|
103
|
-
type: "string",
|
|
104
|
-
description: "Name of the agent",
|
|
105
|
-
},
|
|
106
|
-
promptId: {
|
|
107
|
-
type: "string",
|
|
108
|
-
description: "ID of the prompt to retrieve",
|
|
109
|
-
},
|
|
110
|
-
},
|
|
111
|
-
required: ["token", "agentName", "promptId"],
|
|
112
|
-
},
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
name: "list_protected_agents",
|
|
116
|
-
description: "List all protected agents available",
|
|
117
|
-
inputSchema: {
|
|
118
|
-
type: "object",
|
|
119
|
-
properties: {
|
|
120
|
-
token: {
|
|
121
|
-
type: "string",
|
|
122
|
-
description: "Authentication token",
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
required: ["token"],
|
|
126
|
-
},
|
|
127
|
-
},
|
|
128
|
-
],
|
|
129
|
-
}));
|
|
130
|
-
this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
131
|
-
const { name: toolName, arguments: args } = request.params;
|
|
132
|
-
try {
|
|
133
|
-
switch (toolName) {
|
|
134
|
-
case "authenticate_agent":
|
|
135
|
-
return await this.handleAuthenticateAgent(args);
|
|
136
|
-
case "get_protected_prompt":
|
|
137
|
-
return await this.handleGetProtectedPrompt(args);
|
|
138
|
-
case "list_protected_agents":
|
|
139
|
-
return await this.handleListProtectedAgents(args);
|
|
140
|
-
default:
|
|
141
|
-
throw new types_js_1.McpError(types_js_1.ErrorCode.MethodNotFound, `Unknown tool: ${toolName}`);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
catch (error) {
|
|
145
|
-
if (error instanceof types_js_1.McpError) {
|
|
146
|
-
throw error;
|
|
147
|
-
}
|
|
148
|
-
throw new types_js_1.McpError(types_js_1.ErrorCode.InternalError, `Tool execution failed: ${toolName}: ${error}`);
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
validateToken(token) {
|
|
153
|
-
return this.validTokens.has(token);
|
|
154
|
-
}
|
|
155
|
-
logAccess(token, agentName, success) {
|
|
156
|
-
this.accessLogs.push({
|
|
157
|
-
timestamp: new Date(),
|
|
158
|
-
token: token.substring(0, 8) + "...", // セキュリティのため一部のみ記録
|
|
159
|
-
agentName,
|
|
160
|
-
success,
|
|
161
|
-
});
|
|
162
|
-
// ログが100件を超えたら古いものを削除
|
|
163
|
-
if (this.accessLogs.length > 100) {
|
|
164
|
-
this.accessLogs = this.accessLogs.slice(-100);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* エージェント認証ハンドラー
|
|
169
|
-
*/
|
|
170
|
-
async handleAuthenticateAgent(args) {
|
|
171
|
-
const { token, agentName } = args;
|
|
172
|
-
if (!this.validateToken(token)) {
|
|
173
|
-
this.logAccess(token, agentName, false);
|
|
174
|
-
return {
|
|
175
|
-
content: [{
|
|
176
|
-
type: "text",
|
|
177
|
-
text: JSON.stringify({
|
|
178
|
-
success: false,
|
|
179
|
-
error: "Invalid authentication token",
|
|
180
|
-
code: "AUTH_FAILED"
|
|
181
|
-
})
|
|
182
|
-
}]
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
this.logAccess(token, agentName, true);
|
|
186
|
-
return {
|
|
187
|
-
content: [{
|
|
188
|
-
type: "text",
|
|
189
|
-
text: JSON.stringify({
|
|
190
|
-
success: true,
|
|
191
|
-
message: `Authentication successful for agent: ${agentName}`,
|
|
192
|
-
sessionId: `session_${Date.now()}`,
|
|
193
|
-
expiresAt: new Date(Date.now() + 3600000).toISOString() // 1時間後
|
|
194
|
-
})
|
|
195
|
-
}]
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* 保護されたプロンプト取得ハンドラー
|
|
200
|
-
*/
|
|
201
|
-
async handleGetProtectedPrompt(args) {
|
|
202
|
-
const { token, agentName, promptId } = args;
|
|
203
|
-
if (!this.validateToken(token)) {
|
|
204
|
-
this.logAccess(token, agentName, false);
|
|
205
|
-
return {
|
|
206
|
-
content: [{
|
|
207
|
-
type: "text",
|
|
208
|
-
text: JSON.stringify({
|
|
209
|
-
success: false,
|
|
210
|
-
error: "Invalid authentication token",
|
|
211
|
-
code: "AUTH_FAILED"
|
|
212
|
-
})
|
|
213
|
-
}]
|
|
214
|
-
};
|
|
215
|
-
}
|
|
216
|
-
try {
|
|
217
|
-
// 保護されたプロンプトファイルのパスを構築
|
|
218
|
-
const promptsDir = path.join(process.cwd(), 'protected-prompts', agentName);
|
|
219
|
-
const promptFile = path.join(promptsDir, `${promptId}.md`);
|
|
220
|
-
if (!fs.existsSync(promptFile)) {
|
|
221
|
-
return {
|
|
222
|
-
content: [{
|
|
223
|
-
type: "text",
|
|
224
|
-
text: JSON.stringify({
|
|
225
|
-
success: false,
|
|
226
|
-
error: `Prompt not found: ${promptId} for agent: ${agentName}`,
|
|
227
|
-
code: "PROMPT_NOT_FOUND"
|
|
228
|
-
})
|
|
229
|
-
}]
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
const promptContent = fs.readFileSync(promptFile, 'utf-8');
|
|
233
|
-
this.logAccess(token, agentName, true);
|
|
234
|
-
return {
|
|
235
|
-
content: [{
|
|
236
|
-
type: "text",
|
|
237
|
-
text: JSON.stringify({
|
|
238
|
-
success: true,
|
|
239
|
-
agentName,
|
|
240
|
-
promptId,
|
|
241
|
-
content: promptContent,
|
|
242
|
-
retrievedAt: new Date().toISOString()
|
|
243
|
-
})
|
|
244
|
-
}]
|
|
245
|
-
};
|
|
246
|
-
}
|
|
247
|
-
catch (error) {
|
|
248
|
-
this.logAccess(token, agentName, false);
|
|
249
|
-
return {
|
|
250
|
-
content: [{
|
|
251
|
-
type: "text",
|
|
252
|
-
text: JSON.stringify({
|
|
253
|
-
success: false,
|
|
254
|
-
error: `Failed to retrieve prompt: ${error.message}`,
|
|
255
|
-
code: "RETRIEVAL_ERROR"
|
|
256
|
-
})
|
|
257
|
-
}]
|
|
258
|
-
};
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* 保護されたエージェント一覧ハンドラー
|
|
263
|
-
*/
|
|
264
|
-
async handleListProtectedAgents(args) {
|
|
265
|
-
const { token } = args;
|
|
266
|
-
if (!this.validateToken(token)) {
|
|
267
|
-
return {
|
|
268
|
-
content: [{
|
|
269
|
-
type: "text",
|
|
270
|
-
text: JSON.stringify({
|
|
271
|
-
success: false,
|
|
272
|
-
error: "Invalid authentication token",
|
|
273
|
-
code: "AUTH_FAILED"
|
|
274
|
-
})
|
|
275
|
-
}]
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
|
-
try {
|
|
279
|
-
const protectedDir = path.join(process.cwd(), 'protected-prompts');
|
|
280
|
-
if (!fs.existsSync(protectedDir)) {
|
|
281
|
-
return {
|
|
282
|
-
content: [{
|
|
283
|
-
type: "text",
|
|
284
|
-
text: JSON.stringify({
|
|
285
|
-
success: true,
|
|
286
|
-
agents: [],
|
|
287
|
-
message: "No protected agents directory found"
|
|
288
|
-
})
|
|
289
|
-
}]
|
|
290
|
-
};
|
|
291
|
-
}
|
|
292
|
-
const agentDirs = fs.readdirSync(protectedDir, { withFileTypes: true })
|
|
293
|
-
.filter(dirent => dirent.isDirectory())
|
|
294
|
-
.map(dirent => {
|
|
295
|
-
const agentPath = path.join(protectedDir, dirent.name);
|
|
296
|
-
const prompts = fs.readdirSync(agentPath)
|
|
297
|
-
.filter(file => file.endsWith('.md'))
|
|
298
|
-
.map(file => file.replace('.md', ''));
|
|
299
|
-
return {
|
|
300
|
-
name: dirent.name,
|
|
301
|
-
promptCount: prompts.length,
|
|
302
|
-
prompts: prompts
|
|
303
|
-
};
|
|
304
|
-
});
|
|
305
|
-
return {
|
|
306
|
-
content: [{
|
|
307
|
-
type: "text",
|
|
308
|
-
text: JSON.stringify({
|
|
309
|
-
success: true,
|
|
310
|
-
agents: agentDirs,
|
|
311
|
-
totalAgents: agentDirs.length,
|
|
312
|
-
accessLogs: this.accessLogs.slice(-10) // 最新10件のログ
|
|
313
|
-
})
|
|
314
|
-
}]
|
|
315
|
-
};
|
|
316
|
-
}
|
|
317
|
-
catch (error) {
|
|
318
|
-
return {
|
|
319
|
-
content: [{
|
|
320
|
-
type: "text",
|
|
321
|
-
text: JSON.stringify({
|
|
322
|
-
success: false,
|
|
323
|
-
error: `Failed to list agents: ${error.message}`,
|
|
324
|
-
code: "LIST_ERROR"
|
|
325
|
-
})
|
|
326
|
-
}]
|
|
327
|
-
};
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
async run() {
|
|
331
|
-
const transport = new stdio_js_1.StdioServerTransport();
|
|
332
|
-
await this.server.connect(transport);
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
exports.BlueLampProtectionSystem = BlueLampProtectionSystem;
|
|
336
|
-
// サーバーの起動
|
|
337
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
338
|
-
const system = new BlueLampProtectionSystem();
|
|
339
|
-
}
|
|
340
|
-
//# sourceMappingURL=bluelamp-system.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bluelamp-system.js","sourceRoot":"","sources":["../src/bluelamp-system.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,wEAAmE;AACnE,wEAAiF;AACjF,iEAK4C;AAC5C,uCAAyB;AACzB,2CAA6B;AAqB7B,MAAM,wBAAwB;IAK5B;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAM,CACtB;YACE,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,OAAO;SACjB,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE;aACV;SACF,CACF,CAAC;QAEF,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,gBAAgB;QACtB,iBAAiB;QACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC5C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IACtD,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,iCAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YACjE,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,WAAW,EAAE,wCAAwC;oBACrD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,sBAAsB;6BACpC;4BACD,SAAS,EAAE;gCACT,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,6BAA6B;6BAC3C;yBACF;wBACD,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;qBACjC;iBACF;gBACD;oBACE,IAAI,EAAE,sBAAsB;oBAC5B,WAAW,EAAE,8CAA8C;oBAC3D,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,sBAAsB;6BACpC;4BACD,SAAS,EAAE;gCACT,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,mBAAmB;6BACjC;4BACD,QAAQ,EAAE;gCACR,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,8BAA8B;6BAC5C;yBACF;wBACD,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC;qBAC7C;iBACF;gBACD;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,qCAAqC;oBAClD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,sBAAsB;6BACpC;yBACF;wBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;qBACpB;iBACF;aACF;SACF,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,gCAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACrE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAE3D,IAAI,CAAC;gBACH,QAAQ,QAAQ,EAAE,CAAC;oBACjB,KAAK,oBAAoB;wBACvB,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAwC,CAAC,CAAC;oBAEtF,KAAK,sBAAsB;wBACzB,OAAO,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAyC,CAAC,CAAC;oBAExF,KAAK,uBAAuB;wBAC1B,OAAO,MAAM,IAAI,CAAC,yBAAyB,CAAC,IAAoC,CAAC,CAAC;oBAEpF;wBACE,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,cAAc,EACxB,iBAAiB,QAAQ,EAAE,CAC5B,CAAC;gBACN,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,mBAAQ,EAAE,CAAC;oBAC9B,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,aAAa,EACvB,0BAA0B,QAAQ,KAAK,KAAK,EAAE,CAC/C,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAEO,SAAS,CAAC,KAAa,EAAE,SAAiB,EAAE,OAAgB;QAClE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,EAAE,kBAAkB;YACxD,SAAS;YACT,OAAO;SACR,CAAC,CAAC;QAEH,sBAAsB;QACtB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,uBAAuB,CAAC,IAA2B;QAC/D,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAElC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,8BAA8B;4BACrC,IAAI,EAAE,aAAa;yBACpB,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAEvC,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,wCAAwC,SAAS,EAAE;wBAC5D,SAAS,EAAE,WAAW,IAAI,CAAC,GAAG,EAAE,EAAE;wBAClC,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO;qBAChE,CAAC;iBACH,CAAC;SACH,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,wBAAwB,CAAC,IAA4B;QACjE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAE5C,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,8BAA8B;4BACrC,IAAI,EAAE,aAAa;yBACpB,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,uBAAuB;YACvB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;YAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC;YAE3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/B,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,OAAO,EAAE,KAAK;gCACd,KAAK,EAAE,qBAAqB,QAAQ,eAAe,SAAS,EAAE;gCAC9D,IAAI,EAAE,kBAAkB;6BACzB,CAAC;yBACH,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC3D,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAEvC,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,IAAI;4BACb,SAAS;4BACT,QAAQ;4BACR,OAAO,EAAE,aAAa;4BACtB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yBACtC,CAAC;qBACH,CAAC;aACH,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,8BAA8B,KAAK,CAAC,OAAO,EAAE;4BACpD,IAAI,EAAE,iBAAiB;yBACxB,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,yBAAyB,CAAC,IAAuB;QAC7D,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,8BAA8B;4BACrC,IAAI,EAAE,aAAa;yBACpB,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,mBAAmB,CAAC,CAAC;YAEnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACjC,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,OAAO,EAAE,IAAI;gCACb,MAAM,EAAE,EAAE;gCACV,OAAO,EAAE,qCAAqC;6BAC/C,CAAC;yBACH,CAAC;iBACH,CAAC;YACJ,CAAC;YAED,MAAM,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;iBACpE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;iBACtC,GAAG,CAAC,MAAM,CAAC,EAAE;gBACZ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvD,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;qBACtC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;qBACpC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;gBAExC,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,WAAW,EAAE,OAAO,CAAC,MAAM;oBAC3B,OAAO,EAAE,OAAO;iBACjB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEL,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,IAAI;4BACb,MAAM,EAAE,SAAS;4BACjB,WAAW,EAAE,SAAS,CAAC,MAAM;4BAC7B,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW;yBACnD,CAAC;qBACH,CAAC;aACH,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,KAAK;4BACd,KAAK,EAAE,0BAA0B,KAAK,CAAC,OAAO,EAAE;4BAChD,IAAI,EAAE,YAAY;yBACnB,CAAC;qBACH,CAAC;aACH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;CACF;AAOQ,4DAAwB;AALjC,UAAU;AACV,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,MAAM,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 暗号化・復号化ユーティリティ
|
|
3
|
-
* AES-256-GCM を使用した安全な暗号化
|
|
4
|
-
*/
|
|
5
|
-
export declare class CryptoUtils {
|
|
6
|
-
private static readonly algorithm;
|
|
7
|
-
private static readonly saltLength;
|
|
8
|
-
private static readonly tagLength;
|
|
9
|
-
private static readonly ivLength;
|
|
10
|
-
private static readonly iterations;
|
|
11
|
-
private static readonly keyLength;
|
|
12
|
-
/**
|
|
13
|
-
* パスワードから暗号化キーを生成
|
|
14
|
-
*/
|
|
15
|
-
private static deriveKey;
|
|
16
|
-
/**
|
|
17
|
-
* ファイルを暗号化
|
|
18
|
-
*/
|
|
19
|
-
static encryptFile(inputPath: string, outputPath: string, password: string): void;
|
|
20
|
-
/**
|
|
21
|
-
* ファイルを復号化(メモリ内で処理)
|
|
22
|
-
*/
|
|
23
|
-
static decryptFile(encryptedPath: string, password: string): string;
|
|
24
|
-
/**
|
|
25
|
-
* 文字列を暗号化してファイルに保存
|
|
26
|
-
*/
|
|
27
|
-
static encryptString(content: string, outputPath: string, password: string): void;
|
|
28
|
-
/**
|
|
29
|
-
* 暗号化デモ: パフォーマー.mdを暗号化
|
|
30
|
-
*/
|
|
31
|
-
static encryptPerformerDemo(): Promise<void>;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=crypto-utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-utils.d.ts","sourceRoot":"","sources":["../src/crypto-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAM;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAM;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAM;IACtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAU;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAM;IAEvC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAIxB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IA8BjF;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAiCnE;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IA2BjF;;OAEG;WACU,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;CA6BnD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";var t,e=this&&this.__createBinding||(Object.create?function(t,e,r,i){void 0===i&&(i=r);var n=Object.getOwnPropertyDescriptor(e,r);n&&!("get"in n?!e.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,i,n)}:function(t,e,r,i){void 0===i&&(i=r),t[i]=e[r]}),r=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),i=this&&this.__importStar||(t=function(e){return t=Object.getOwnPropertyNames||function(t){var e=[];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[e.length]=r);return e},t(e)},function(i){if(i&&i.__esModule)return i;var n={};if(null!=i)for(var s=t(i),c=0;c<s.length;c++)"default"!==s[c]&&e(n,i,s[c]);return r(n,i),n});Object.defineProperty(exports,"__esModule",{value:!0}),exports.CryptoUtils=void 0;const n=i(require("crypto")),s=i(require("fs")),c=i(require("path"));class a{static deriveKey(t,e){return n.pbkdf2Sync(t,e,this.iterations,this.keyLength,"sha256")}static encryptFile(t,e,r){const i=s.readFileSync(t,"utf-8"),c=n.randomBytes(this.saltLength),a=n.randomBytes(this.ivLength),o=this.deriveKey(r,c),h=n.createCipheriv(this.algorithm,o,a),u=Buffer.concat([h.update(i,"utf8"),h.final()]),l=h.getAuthTag(),f=Buffer.concat([c,a,l,u]);s.writeFileSync(e,f)}static decryptFile(t,e){const r=s.readFileSync(t);let i=0;const c=r.slice(i,i+this.saltLength);i+=this.saltLength;const a=r.slice(i,i+this.ivLength);i+=this.ivLength;const o=r.slice(i,i+this.tagLength);i+=this.tagLength;const h=r.slice(i),u=this.deriveKey(e,c),l=n.createDecipheriv(this.algorithm,u,a);l.setAuthTag(o);return Buffer.concat([l.update(h),l.final()]).toString("utf-8")}static encryptString(t,e,r){const i=n.randomBytes(this.saltLength),c=n.randomBytes(this.ivLength),a=this.deriveKey(r,i),o=n.createCipheriv(this.algorithm,a,c),h=Buffer.concat([o.update(t,"utf8"),o.final()]),u=o.getAuthTag(),l=Buffer.concat([i,c,u,h]);s.writeFileSync(e,l)}static async encryptPerformerDemo(){const t="/Users/tatsuya/Desktop/マルチエージェントウェブ/mcp-sample-server/secure-prompts",e=c.join(t,"performer-protected.enc");s.existsSync(t)||s.mkdirSync(t,{recursive:!0});const r=process.env.BLUELAMP_ENCRYPTION_KEY||"demo-encryption-password-2024";try{this.encryptFile("/Users/tatsuya/Desktop/マルチエージェントウェブ/.claude/agents/core/パフォーマー.md",e,r);s.statSync(e),s.readFileSync(e).slice(0,100),this.decryptFile(e,r)}catch(t){throw t}}}exports.CryptoUtils=a,a.algorithm="aes-256-gcm",a.saltLength=32,a.tagLength=16,a.ivLength=16,a.iterations=1e5,a.keyLength=32;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-utils.js","sourceRoot":"","sources":["../src/crypto-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* データベース管理版MCPサーバー
|
|
4
|
-
* プロンプトをSQLiteデータベースで管理する実装例
|
|
5
|
-
*/
|
|
6
|
-
interface PromptRecord {
|
|
7
|
-
id: number;
|
|
8
|
-
uri: string;
|
|
9
|
-
title: string;
|
|
10
|
-
content: string;
|
|
11
|
-
category: string;
|
|
12
|
-
tags: string;
|
|
13
|
-
created_at: string;
|
|
14
|
-
updated_at: string;
|
|
15
|
-
}
|
|
16
|
-
interface AddPromptArgs {
|
|
17
|
-
uri: string;
|
|
18
|
-
title: string;
|
|
19
|
-
content: string;
|
|
20
|
-
category?: string;
|
|
21
|
-
tags?: string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* データベース管理クラス
|
|
25
|
-
*/
|
|
26
|
-
declare class PromptDatabase {
|
|
27
|
-
constructor();
|
|
28
|
-
/**
|
|
29
|
-
* データベース初期化
|
|
30
|
-
*/
|
|
31
|
-
private initializeDatabase;
|
|
32
|
-
/**
|
|
33
|
-
* プロンプト検索
|
|
34
|
-
*/
|
|
35
|
-
searchPrompts(query?: string, category?: string, limit?: number): Promise<PromptRecord[]>;
|
|
36
|
-
/**
|
|
37
|
-
* URIでプロンプト取得
|
|
38
|
-
*/
|
|
39
|
-
getPromptByUri(uri: string): Promise<PromptRecord | null>;
|
|
40
|
-
/**
|
|
41
|
-
* プロンプト追加
|
|
42
|
-
*/
|
|
43
|
-
addPrompt(data: AddPromptArgs): Promise<PromptRecord>;
|
|
44
|
-
/**
|
|
45
|
-
* カテゴリ一覧取得
|
|
46
|
-
*/
|
|
47
|
-
getCategories(): Promise<string[]>;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* データベース版MCPサーバー
|
|
51
|
-
*/
|
|
52
|
-
declare class DatabaseMCPServer {
|
|
53
|
-
private server;
|
|
54
|
-
private database;
|
|
55
|
-
constructor();
|
|
56
|
-
private setupHandlers;
|
|
57
|
-
/**
|
|
58
|
-
* プロンプト検索ツールの実装
|
|
59
|
-
*/
|
|
60
|
-
private handleSearchPrompts;
|
|
61
|
-
/**
|
|
62
|
-
* プロンプト追加ツールの実装
|
|
63
|
-
*/
|
|
64
|
-
private handleAddPrompt;
|
|
65
|
-
/**
|
|
66
|
-
* カテゴリ一覧ツールの実装
|
|
67
|
-
*/
|
|
68
|
-
private handleGetCategories;
|
|
69
|
-
run(): Promise<void>;
|
|
70
|
-
}
|
|
71
|
-
export { DatabaseMCPServer, PromptDatabase };
|
|
72
|
-
//# sourceMappingURL=database-version.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"database-version.d.ts","sourceRoot":"","sources":["../src/database-version.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAkBH,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAQD,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,cAAM,cAAc;;IASlB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACG,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IA8CnG;;OAEG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAQ/D;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAkB3D;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAMzC;AAED;;GAEG;AACH,cAAM,iBAAiB;IACrB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAiB;;IAiBjC,OAAO,CAAC,aAAa;IAsJrB;;OAEG;YACW,mBAAmB;IA0BjC;;OAEG;YACW,eAAe;IA+B7B;;OAEG;YACW,mBAAmB;IAmB3B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAM3B;AAUD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.PromptDatabase=exports.DatabaseMCPServer=void 0;const e=require("@modelcontextprotocol/sdk/server/index.js"),t=require("@modelcontextprotocol/sdk/server/stdio.js"),r=require("@modelcontextprotocol/sdk/types.js");class a{constructor(){}initializeDatabase(){}async searchPrompts(e,t,r=10){let a=[{id:1,uri:"prompt://sample/greeting",title:"挨拶プロンプト",content:"こんにちは!私はAIアシスタントです。",category:"general",tags:"挨拶,基本",created_at:(new Date).toISOString(),updated_at:(new Date).toISOString()},{id:2,uri:"prompt://sample/analysis",title:"分析プロンプト",content:"データを詳細に分析し、洞察を提供します。",category:"analysis",tags:"分析,データ",created_at:(new Date).toISOString(),updated_at:(new Date).toISOString()}];if(t&&(a=a.filter(e=>e.category===t)),e){const t=e.toLowerCase();a=a.filter(e=>e.title.toLowerCase().includes(t)||e.content.toLowerCase().includes(t)||e.tags.toLowerCase().includes(t))}return a.slice(0,r)}async getPromptByUri(e){return(await this.searchPrompts()).find(t=>t.uri===e)||null}async addPrompt(e){return{id:Date.now(),uri:e.uri,title:e.title,content:e.content,category:e.category||"general",tags:e.tags||"",created_at:(new Date).toISOString(),updated_at:(new Date).toISOString()}}async getCategories(){return["general","analysis","creative","technical"]}}exports.PromptDatabase=a;class s{constructor(){this.server=new e.Server({name:"database-mcp-server",version:"1.0.0"},{capabilities:{resources:{},tools:{}}}),this.database=new a,this.setupHandlers()}setupHandlers(){this.server.setRequestHandler(r.ListResourcesRequestSchema,async()=>{try{const e=(await this.database.searchPrompts()).map(e=>({uri:e.uri,name:e.title,description:`${e.category} - ${e.content.substring(0,100)}...`,mimeType:"text/plain"}));return e.length,{resources:e}}catch(e){return e.message,{resources:[]}}}),this.server.setRequestHandler(r.ReadResourceRequestSchema,async e=>{const{uri:t}=e.params;try{const e=await this.database.getPromptByUri(t);if(!e)throw new r.McpError(r.ErrorCode.InvalidRequest,`プロンプトが見つかりません: ${t}`);return e.title,{contents:[{uri:e.uri,mimeType:"text/plain",text:e.content}]}}catch(e){if(e.message,e instanceof r.McpError)throw e;throw new r.McpError(r.ErrorCode.InternalError,`リソース読み取りエラー: ${e.message}`)}}),this.server.setRequestHandler(r.ListToolsRequestSchema,async()=>({tools:[{name:"search_prompts",description:"データベースからプロンプトを検索します",inputSchema:{type:"object",properties:{query:{type:"string",description:"検索クエリ(タイトル、内容、タグを対象)"},category:{type:"string",description:"カテゴリでフィルタ"},limit:{type:"number",description:"取得件数の上限",default:10}},required:[]}},{name:"add_prompt",description:"データベースに新しいプロンプトを追加します",inputSchema:{type:"object",properties:{uri:{type:"string",description:"プロンプトのURI"},title:{type:"string",description:"プロンプトのタイトル"},content:{type:"string",description:"プロンプトの内容"},category:{type:"string",description:"カテゴリ",default:"general"},tags:{type:"string",description:"タグ(カンマ区切り)"}},required:["uri","title","content"]}},{name:"get_categories",description:"利用可能なカテゴリ一覧を取得します",inputSchema:{type:"object",properties:{},required:[]}}]})),this.server.setRequestHandler(r.CallToolRequestSchema,async e=>{const{name:t,arguments:a}=e.params;try{switch(t){case"search_prompts":return await this.handleSearchPrompts(a||{});case"add_prompt":return await this.handleAddPrompt(a);case"get_categories":return await this.handleGetCategories();default:throw new r.McpError(r.ErrorCode.MethodNotFound,`不明なツール: ${t}`)}}catch(e){if(e.message,e instanceof r.McpError)throw e;throw new r.McpError(r.ErrorCode.InternalError,`ツール実行エラー: ${e.message}`)}})}async handleSearchPrompts(e){const{query:t,category:a,limit:s=10}=e;try{const e=await this.database.searchPrompts(t,a,s),r={type:"text",text:`検索結果: ${e.length}件\n\n`+e.map(e=>`【${e.title}】\nURI: ${e.uri}\nカテゴリ: ${e.category}\n内容: ${e.content.substring(0,100)}...\nタグ: ${e.tags}\n`).join("\n")};return e.length,{content:[r]}}catch(e){throw new r.McpError(r.ErrorCode.InternalError,`検索エラー: ${e.message}`)}}async handleAddPrompt(e){const{uri:t,title:a,content:s,category:n,tags:o}=e;if(!t||!a||!s)throw new r.McpError(r.ErrorCode.InvalidParams,"uri, title, contentは必須です");try{const e=await this.database.addPrompt({uri:t,title:a,content:s,category:n,tags:o}),r={type:"text",text:`プロンプトを追加しました:\n\n【${e.title}】\nURI: ${e.uri}\nカテゴリ: ${e.category}\nID: ${e.id}\n作成日時: ${e.created_at}`};return e.id,e.uri,{content:[r]}}catch(e){throw new r.McpError(r.ErrorCode.InternalError,`追加エラー: ${e.message}`)}}async handleGetCategories(){try{const e=await this.database.getCategories(),t={type:"text",text:"利用可能なカテゴリ:\n\n"+e.map(e=>`- ${e}`).join("\n")};return e.length,{content:[t]}}catch(e){throw new r.McpError(r.ErrorCode.InternalError,`カテゴリ取得エラー: ${e.message}`)}}async run(){const e=new t.StdioServerTransport;await this.server.connect(e)}}if(exports.DatabaseMCPServer=s,require.main===module){(new s).run().catch(e=>{process.exit(1)})}
|