bluelamp 2.0.10 → 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.
Files changed (170) hide show
  1. package/README.md +12 -25
  2. package/bin/bluelamp +368 -0
  3. package/bin/bluelamp-base +368 -0
  4. package/bin/bluelamp10 +368 -0
  5. package/bin/bluelamp100 +368 -0
  6. package/bin/bluelamp11 +368 -0
  7. package/bin/bluelamp12 +368 -0
  8. package/bin/bluelamp13 +368 -0
  9. package/bin/bluelamp14 +368 -0
  10. package/bin/bluelamp15 +368 -0
  11. package/bin/bluelamp16 +368 -0
  12. package/bin/bluelamp17 +368 -0
  13. package/bin/bluelamp18 +368 -0
  14. package/bin/bluelamp19 +368 -0
  15. package/bin/bluelamp2 +368 -0
  16. package/bin/bluelamp20 +368 -0
  17. package/bin/bluelamp21 +368 -0
  18. package/bin/bluelamp22 +368 -0
  19. package/bin/bluelamp23 +368 -0
  20. package/bin/bluelamp24 +368 -0
  21. package/bin/bluelamp25 +368 -0
  22. package/bin/bluelamp26 +368 -0
  23. package/bin/bluelamp27 +368 -0
  24. package/bin/bluelamp28 +368 -0
  25. package/bin/bluelamp29 +368 -0
  26. package/bin/bluelamp3 +368 -0
  27. package/bin/bluelamp30 +368 -0
  28. package/bin/bluelamp31 +368 -0
  29. package/bin/bluelamp32 +368 -0
  30. package/bin/bluelamp33 +368 -0
  31. package/bin/bluelamp34 +368 -0
  32. package/bin/bluelamp35 +368 -0
  33. package/bin/bluelamp36 +368 -0
  34. package/bin/bluelamp37 +368 -0
  35. package/bin/bluelamp38 +368 -0
  36. package/bin/bluelamp39 +368 -0
  37. package/bin/bluelamp4 +368 -0
  38. package/bin/bluelamp40 +368 -0
  39. package/bin/bluelamp41 +368 -0
  40. package/bin/bluelamp42 +368 -0
  41. package/bin/bluelamp43 +368 -0
  42. package/bin/bluelamp44 +368 -0
  43. package/bin/bluelamp45 +368 -0
  44. package/bin/bluelamp46 +368 -0
  45. package/bin/bluelamp47 +368 -0
  46. package/bin/bluelamp48 +368 -0
  47. package/bin/bluelamp49 +368 -0
  48. package/bin/bluelamp5 +368 -0
  49. package/bin/bluelamp50 +368 -0
  50. package/bin/bluelamp51 +368 -0
  51. package/bin/bluelamp52 +368 -0
  52. package/bin/bluelamp53 +368 -0
  53. package/bin/bluelamp54 +368 -0
  54. package/bin/bluelamp55 +368 -0
  55. package/bin/bluelamp56 +368 -0
  56. package/bin/bluelamp57 +368 -0
  57. package/bin/bluelamp58 +368 -0
  58. package/bin/bluelamp59 +368 -0
  59. package/bin/bluelamp6 +368 -0
  60. package/bin/bluelamp60 +368 -0
  61. package/bin/bluelamp61 +368 -0
  62. package/bin/bluelamp62 +368 -0
  63. package/bin/bluelamp63 +368 -0
  64. package/bin/bluelamp64 +368 -0
  65. package/bin/bluelamp65 +368 -0
  66. package/bin/bluelamp66 +368 -0
  67. package/bin/bluelamp67 +368 -0
  68. package/bin/bluelamp68 +368 -0
  69. package/bin/bluelamp69 +368 -0
  70. package/bin/bluelamp7 +368 -0
  71. package/bin/bluelamp70 +368 -0
  72. package/bin/bluelamp71 +368 -0
  73. package/bin/bluelamp72 +368 -0
  74. package/bin/bluelamp73 +368 -0
  75. package/bin/bluelamp74 +368 -0
  76. package/bin/bluelamp75 +368 -0
  77. package/bin/bluelamp76 +368 -0
  78. package/bin/bluelamp77 +368 -0
  79. package/bin/bluelamp78 +368 -0
  80. package/bin/bluelamp79 +368 -0
  81. package/bin/bluelamp8 +368 -0
  82. package/bin/bluelamp80 +368 -0
  83. package/bin/bluelamp81 +368 -0
  84. package/bin/bluelamp82 +368 -0
  85. package/bin/bluelamp83 +368 -0
  86. package/bin/bluelamp84 +368 -0
  87. package/bin/bluelamp85 +368 -0
  88. package/bin/bluelamp86 +368 -0
  89. package/bin/bluelamp87 +368 -0
  90. package/bin/bluelamp88 +368 -0
  91. package/bin/bluelamp89 +368 -0
  92. package/bin/bluelamp9 +368 -0
  93. package/bin/bluelamp90 +368 -0
  94. package/bin/bluelamp91 +368 -0
  95. package/bin/bluelamp92 +368 -0
  96. package/bin/bluelamp93 +368 -0
  97. package/bin/bluelamp94 +368 -0
  98. package/bin/bluelamp95 +368 -0
  99. package/bin/bluelamp96 +368 -0
  100. package/bin/bluelamp97 +368 -0
  101. package/bin/bluelamp98 +368 -0
  102. package/bin/bluelamp99 +368 -0
  103. package/lib/mcp-server/dist/bluelamp-system.js +32 -0
  104. package/lib/mcp-server/dist/crypto-utils.js +27 -0
  105. package/lib/mcp-server/dist/database-version.js +33 -0
  106. package/lib/mcp-server/dist/index.js +62 -0
  107. package/lib/mcp-server/dist/plugins/base-plugin.js +24 -0
  108. package/lib/mcp-server/dist/plugins/plugin-manager.js +31 -0
  109. package/lib/mcp-server/dist/plugins/services/leonardo-plugin.js +95 -0
  110. package/lib/mcp-server/dist/plugins/services/leonardo-prompt-parser.js +36 -0
  111. package/lib/mcp-server/dist/plugins/services/portal-api-client.js +22 -0
  112. package/lib/mcp-server/dist/plugins/services/portal-plugin.js +52 -0
  113. package/lib/mcp-server/dist/secure-mcp-server.js +76 -0
  114. package/lib/mcp-server/dist/security/ApiKeyManager.js +24 -0
  115. package/lib/mcp-server/dist/security/InteractiveLogin.js +32 -0
  116. package/lib/mcp-server/dist/security/PortalAuthClient.js +1 -0
  117. package/lib/mcp-server/dist/security/SimpleAuthManager.js +1 -0
  118. package/lib/mcp-server/dist/security/TokenManager.js +25 -0
  119. package/lib/mcp-server/package.json +21 -0
  120. package/package.json +119 -35
  121. package/INSTALLATION_GUIDE.md +0 -109
  122. package/bin/blcf +0 -2
  123. package/bin/blcf2 +0 -28
  124. package/bin/blcf3 +0 -2
  125. package/bin/blcf4 +0 -2
  126. package/knowledge-injection/hooks/inject-encrypted.sh +0 -321
  127. 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
  128. package/lib/mcp-server/dist_optimized/bluelamp-system.d.ts +0 -29
  129. package/lib/mcp-server/dist_optimized/bluelamp-system.d.ts.map +0 -1
  130. package/lib/mcp-server/dist_optimized/bluelamp-system.js +0 -1
  131. package/lib/mcp-server/dist_optimized/bluelamp-system.js.bak +0 -340
  132. package/lib/mcp-server/dist_optimized/bluelamp-system.js.map +0 -1
  133. package/lib/mcp-server/dist_optimized/crypto-utils.d.ts +0 -33
  134. package/lib/mcp-server/dist_optimized/crypto-utils.d.ts.map +0 -1
  135. package/lib/mcp-server/dist_optimized/crypto-utils.js +0 -1
  136. package/lib/mcp-server/dist_optimized/crypto-utils.js.map +0 -1
  137. package/lib/mcp-server/dist_optimized/database-version.d.ts +0 -72
  138. package/lib/mcp-server/dist_optimized/database-version.d.ts.map +0 -1
  139. package/lib/mcp-server/dist_optimized/database-version.js +0 -2
  140. package/lib/mcp-server/dist_optimized/database-version.js.bak +0 -374
  141. package/lib/mcp-server/dist_optimized/database-version.js.map +0 -1
  142. package/lib/mcp-server/dist_optimized/index.d.ts +0 -3
  143. package/lib/mcp-server/dist_optimized/index.d.ts.map +0 -1
  144. package/lib/mcp-server/dist_optimized/index.js +0 -2
  145. package/lib/mcp-server/dist_optimized/index.js.map +0 -1
  146. package/lib/mcp-server/dist_optimized/secure-mcp-server.d.ts +0 -64
  147. package/lib/mcp-server/dist_optimized/secure-mcp-server.d.ts.map +0 -1
  148. package/lib/mcp-server/dist_optimized/secure-mcp-server.js +0 -1
  149. package/lib/mcp-server/dist_optimized/secure-mcp-server.js.bak +0 -1
  150. package/lib/mcp-server/dist_optimized/secure-mcp-server.js.bak2 +0 -1
  151. package/lib/mcp-server/dist_optimized/secure-mcp-server.js.map +0 -1
  152. package/lib/mcp-server/dist_optimized/security/InteractiveLogin.d.ts +0 -47
  153. package/lib/mcp-server/dist_optimized/security/InteractiveLogin.d.ts.map +0 -1
  154. package/lib/mcp-server/dist_optimized/security/InteractiveLogin.js +0 -1
  155. package/lib/mcp-server/dist_optimized/security/InteractiveLogin.js.map +0 -1
  156. package/lib/mcp-server/dist_optimized/security/PortalAuthClient.d.ts +0 -65
  157. package/lib/mcp-server/dist_optimized/security/PortalAuthClient.d.ts.map +0 -1
  158. package/lib/mcp-server/dist_optimized/security/PortalAuthClient.js +0 -1
  159. package/lib/mcp-server/dist_optimized/security/PortalAuthClient.js.map +0 -1
  160. package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.backup +0 -294
  161. package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.d.ts +0 -71
  162. package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.d.ts.map +0 -1
  163. package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.js +0 -1
  164. package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.js.backup +0 -25
  165. package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.js.map +0 -1
  166. package/lib/mcp-server/dist_optimized/security/TokenManager.d.ts +0 -61
  167. package/lib/mcp-server/dist_optimized/security/TokenManager.d.ts.map +0 -1
  168. package/lib/mcp-server/dist_optimized/security/TokenManager.js +0 -1
  169. package/lib/mcp-server/dist_optimized/security/TokenManager.js.map +0 -1
  170. 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":"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"}
@@ -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)})}