aiagentmarket 3.0.47 → 3.0.49

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 (80) hide show
  1. package/bin/aiagent-base +1 -1
  2. package/lib/mcp-server/dist/bluelamp-system.js +1 -1
  3. package/lib/mcp-server/dist/crypto-utils.js +1 -1
  4. package/lib/mcp-server/dist/database-version.js +1 -1
  5. package/lib/mcp-server/dist/index.js +1 -1
  6. package/lib/mcp-server/dist/plugins/base-plugin.js +1 -1
  7. package/lib/mcp-server/dist/plugins/services/leonardo-plugin.js +1 -1
  8. package/lib/mcp-server/dist/plugins/services/portal-api-client.js +1 -1
  9. package/lib/mcp-server/dist/plugins/services/portal-plugin.js +1 -1
  10. package/lib/mcp-server/dist/secure-mcp-server.js +1 -1
  11. package/lib/mcp-server/dist/security/EncryptionKeyManager.js +1 -0
  12. package/lib/mcp-server/dist/security/InteractiveLogin.js +1 -1
  13. package/lib/mcp-server/dist/security/PortalAuthClient.js +1 -1
  14. package/lib/mcp-server/dist/security/SimpleAuthManager.js +1 -1
  15. package/lib/mcp-server/dist/security/SlotAuthClient.js +1 -1
  16. package/lib/mcp-server/dist/security/TokenManager.js +1 -1
  17. package/lib/mcp-server/dist/types/common.js +1 -0
  18. package/lib/mcp-server/package.json +12 -1
  19. package/lib/mcp-server/scripts/create-release.sh +158 -0
  20. package/lib/mcp-server/scripts/install.sh +167 -0
  21. package/package.json +2 -2
  22. package/scripts/build.js +1 -1
  23. package/scripts/configure-aiagent-tools.js +2 -0
  24. package/scripts/generate-aiagent-links.js +1 -1
  25. package/lib/agents//343/203/226/343/203/253/343/203/274/343/203/251/343/203/263/343/203/227.md +0 -105
  26. package/lib/mcp-server/dist/bluelamp-system.d.ts +0 -29
  27. package/lib/mcp-server/dist/bluelamp-system.d.ts.map +0 -1
  28. package/lib/mcp-server/dist/bluelamp-system.js.map +0 -1
  29. package/lib/mcp-server/dist/crypto-utils.d.ts +0 -33
  30. package/lib/mcp-server/dist/crypto-utils.d.ts.map +0 -1
  31. package/lib/mcp-server/dist/crypto-utils.js.map +0 -1
  32. package/lib/mcp-server/dist/database-version.d.ts +0 -72
  33. package/lib/mcp-server/dist/database-version.d.ts.map +0 -1
  34. package/lib/mcp-server/dist/database-version.js.map +0 -1
  35. package/lib/mcp-server/dist/index.d.ts +0 -3
  36. package/lib/mcp-server/dist/index.d.ts.map +0 -1
  37. package/lib/mcp-server/dist/index.js.map +0 -1
  38. package/lib/mcp-server/dist/plugins/base-plugin.d.ts +0 -245
  39. package/lib/mcp-server/dist/plugins/base-plugin.d.ts.map +0 -1
  40. package/lib/mcp-server/dist/plugins/base-plugin.js.map +0 -1
  41. package/lib/mcp-server/dist/plugins/plugin-manager.d.ts +0 -173
  42. package/lib/mcp-server/dist/plugins/plugin-manager.d.ts.map +0 -1
  43. package/lib/mcp-server/dist/plugins/plugin-manager.js.map +0 -1
  44. package/lib/mcp-server/dist/plugins/services/leonardo-plugin.d.ts +0 -124
  45. package/lib/mcp-server/dist/plugins/services/leonardo-plugin.d.ts.map +0 -1
  46. package/lib/mcp-server/dist/plugins/services/leonardo-plugin.js.map +0 -1
  47. package/lib/mcp-server/dist/plugins/services/leonardo-prompt-parser.d.ts +0 -205
  48. package/lib/mcp-server/dist/plugins/services/leonardo-prompt-parser.d.ts.map +0 -1
  49. package/lib/mcp-server/dist/plugins/services/leonardo-prompt-parser.js.map +0 -1
  50. package/lib/mcp-server/dist/plugins/services/portal-api-client.d.ts +0 -104
  51. package/lib/mcp-server/dist/plugins/services/portal-api-client.d.ts.map +0 -1
  52. package/lib/mcp-server/dist/plugins/services/portal-api-client.js.map +0 -1
  53. package/lib/mcp-server/dist/plugins/services/portal-plugin.d.ts +0 -131
  54. package/lib/mcp-server/dist/plugins/services/portal-plugin.d.ts.map +0 -1
  55. package/lib/mcp-server/dist/plugins/services/portal-plugin.js.map +0 -1
  56. package/lib/mcp-server/dist/secure-mcp-server.d.ts +0 -68
  57. package/lib/mcp-server/dist/secure-mcp-server.d.ts.map +0 -1
  58. package/lib/mcp-server/dist/secure-mcp-server.js.map +0 -1
  59. package/lib/mcp-server/dist/security/ApiKeyManager.d.ts +0 -29
  60. package/lib/mcp-server/dist/security/ApiKeyManager.d.ts.map +0 -1
  61. package/lib/mcp-server/dist/security/ApiKeyManager.js.map +0 -1
  62. package/lib/mcp-server/dist/security/InteractiveLogin.d.ts +0 -47
  63. package/lib/mcp-server/dist/security/InteractiveLogin.d.ts.map +0 -1
  64. package/lib/mcp-server/dist/security/InteractiveLogin.js.map +0 -1
  65. package/lib/mcp-server/dist/security/PortalAuthClient.d.ts +0 -65
  66. package/lib/mcp-server/dist/security/PortalAuthClient.d.ts.map +0 -1
  67. package/lib/mcp-server/dist/security/PortalAuthClient.js.map +0 -1
  68. package/lib/mcp-server/dist/security/SimpleAuthManager.d.ts +0 -73
  69. package/lib/mcp-server/dist/security/SimpleAuthManager.d.ts.map +0 -1
  70. package/lib/mcp-server/dist/security/SimpleAuthManager.js.map +0 -1
  71. package/lib/mcp-server/dist/security/SlotAuthClient.d.ts +0 -47
  72. package/lib/mcp-server/dist/security/SlotAuthClient.d.ts.map +0 -1
  73. package/lib/mcp-server/dist/security/SlotAuthClient.js.map +0 -1
  74. package/lib/mcp-server/dist/security/TokenManager.d.ts +0 -61
  75. package/lib/mcp-server/dist/security/TokenManager.d.ts.map +0 -1
  76. package/lib/mcp-server/dist/security/TokenManager.js.map +0 -1
  77. package/lib/mcp-server/package-lock.json +0 -1788
  78. package/lib/mcp-server/package-release.json +0 -32
  79. package/lib/mcp-server/tsconfig.json +0 -32
  80. package/lib/mcp-server/tsconfig.production.json +0 -33
@@ -0,0 +1,158 @@
1
+ #!/bin/bash
2
+ # BlueLamp MCP Server リリースパッケージ作成スクリプト
3
+
4
+ set -e
5
+
6
+ VERSION="1.1.0"
7
+ RELEASE_NAME="bluelamp-mcp-server-v${VERSION}"
8
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
+ PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
10
+
11
+ echo "🚀 BlueLamp MCP Server リリースパッケージ作成"
12
+ echo " バージョン: ${VERSION}"
13
+ echo " プロジェクト: ${PROJECT_DIR}"
14
+
15
+ # 作業ディレクトリに移動
16
+ cd "$PROJECT_DIR"
17
+
18
+ # TypeScriptコンパイル
19
+ echo "📦 TypeScriptをコンパイル中..."
20
+ npx tsc
21
+
22
+ # リリースディレクトリ作成
23
+ RELEASE_DIR="${PROJECT_DIR}/releases/${RELEASE_NAME}"
24
+ rm -rf "$RELEASE_DIR"
25
+ mkdir -p "$RELEASE_DIR"
26
+
27
+ # ファイルをコピー
28
+ echo "📁 ファイルをコピー中..."
29
+ cp -r dist "$RELEASE_DIR/"
30
+ cp package.json "$RELEASE_DIR/"
31
+ cp README.md "$RELEASE_DIR/"
32
+ mkdir -p "$RELEASE_DIR/scripts"
33
+ cp scripts/install.sh "$RELEASE_DIR/scripts/"
34
+ chmod +x "$RELEASE_DIR/scripts/install.sh"
35
+
36
+ # インストール手順を作成
37
+ cat > "$RELEASE_DIR/INSTALL.md" << 'EOF'
38
+ # BlueLamp MCP Server インストール手順
39
+
40
+ ## 必要条件
41
+ - Node.js 18以上
42
+ - Claude Desktop または Claude Code
43
+
44
+ ---
45
+
46
+ ## 方法1: 自動インストール(推奨)
47
+
48
+ 展開後、以下を実行するだけで完了:
49
+
50
+ ```bash
51
+ cd bluelamp-mcp-server-v1.1.0
52
+ ./scripts/install.sh
53
+ ```
54
+
55
+ これで以下が自動実行されます:
56
+ - ~/.bluelamp/mcp-server にインストール
57
+ - npm install
58
+ - Claude設定ファイルに自動追加
59
+
60
+ 終わったらClaude Desktop/Codeを再起動してください。
61
+
62
+ ---
63
+
64
+ ## 方法2: 手動インストール
65
+
66
+ ### 1. 好きな場所に配置
67
+
68
+ ```bash
69
+ mkdir -p ~/mcp-servers/bluelamp
70
+ cp -r bluelamp-mcp-server-v1.1.0/* ~/mcp-servers/bluelamp/
71
+ cd ~/mcp-servers/bluelamp
72
+ npm install
73
+ ```
74
+
75
+ ### 2. Claude設定を編集
76
+
77
+ **Claude Desktop (macOS)**:
78
+ `~/Library/Application Support/Claude/claude_desktop_config.json`
79
+
80
+ **Claude Code**:
81
+ `~/.claude/claude_desktop_config.json`
82
+
83
+ ```json
84
+ {
85
+ "mcpServers": {
86
+ "bluelamp": {
87
+ "command": "node",
88
+ "args": ["/Users/YOUR_NAME/mcp-servers/bluelamp/dist/index.js"]
89
+ }
90
+ }
91
+ }
92
+ ```
93
+
94
+ ### 3. Claude再起動
95
+
96
+ ---
97
+
98
+ ## 認証
99
+
100
+ 初回起動時に、BlueLamp Portalへのログインが必要です。
101
+ VSCode拡張またはWebポータルからログインしてください。
102
+
103
+ トークンは `~/.bluelamp/portal-token.enc` に保存されます。
104
+
105
+ ---
106
+
107
+ ## トラブルシューティング
108
+
109
+ ### "トークンが見つかりません"
110
+ → VSCode拡張またはポータルから再ログインしてください
111
+
112
+ ### "モジュールが見つかりません"
113
+ → `npm install` を実行してください
114
+
115
+ ### Claude Desktopで認識されない
116
+ → Claude Desktopを再起動してください
117
+ EOF
118
+
119
+ # package.jsonの依存関係を最小化したバージョンを作成
120
+ cat > "$RELEASE_DIR/package.json" << EOF
121
+ {
122
+ "name": "@bluelamp/mcp-server",
123
+ "version": "${VERSION}",
124
+ "description": "BlueLamp MCP Server - Portal統合とエージェント管理",
125
+ "main": "dist/index.js",
126
+ "type": "commonjs",
127
+ "scripts": {
128
+ "start": "node dist/index.js"
129
+ },
130
+ "dependencies": {
131
+ "@modelcontextprotocol/sdk": "^1.0.0",
132
+ "ajv": "^8.17.1",
133
+ "dotenv": "^17.2.2",
134
+ "glob": "^11.0.3",
135
+ "jsonwebtoken": "^9.0.2",
136
+ "zod": "^4.1.5"
137
+ },
138
+ "engines": {
139
+ "node": ">=18"
140
+ }
141
+ }
142
+ EOF
143
+
144
+ # tarball作成
145
+ echo "📦 アーカイブを作成中..."
146
+ cd "${PROJECT_DIR}/releases"
147
+ tar -czvf "${RELEASE_NAME}.tar.gz" "${RELEASE_NAME}"
148
+ zip -r "${RELEASE_NAME}.zip" "${RELEASE_NAME}"
149
+
150
+ echo ""
151
+ echo "✅ リリースパッケージ作成完了"
152
+ echo ""
153
+ echo "📁 出力ファイル:"
154
+ echo " - releases/${RELEASE_NAME}.tar.gz"
155
+ echo " - releases/${RELEASE_NAME}.zip"
156
+ echo ""
157
+ echo "📤 GitHub Releasesへのアップロード:"
158
+ echo " gh release create v${VERSION} releases/${RELEASE_NAME}.tar.gz releases/${RELEASE_NAME}.zip"
@@ -0,0 +1,167 @@
1
+ #!/bin/bash
2
+ # BlueLamp MCP Server インストーラー
3
+ # 使用方法: curl -fsSL https://raw.githubusercontent.com/.../install.sh | bash
4
+
5
+ set -e
6
+
7
+ GREEN='\033[0;32m'
8
+ BLUE='\033[0;34m'
9
+ RED='\033[0;31m'
10
+ NC='\033[0m'
11
+
12
+ echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
13
+ echo -e "${BLUE} BlueLamp MCP Server インストーラー${NC}"
14
+ echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
15
+ echo ""
16
+
17
+ # インストール先
18
+ INSTALL_DIR="$HOME/.bluelamp/mcp-server"
19
+ VERSION="1.1.0"
20
+
21
+ # Claude設定ファイルの場所を検出
22
+ detect_claude_config() {
23
+ # Claude Code (macOS)
24
+ if [ -f "$HOME/.claude/claude_desktop_config.json" ]; then
25
+ echo "$HOME/.claude/claude_desktop_config.json"
26
+ return
27
+ fi
28
+
29
+ # Claude Desktop (macOS)
30
+ if [ -f "$HOME/Library/Application Support/Claude/claude_desktop_config.json" ]; then
31
+ echo "$HOME/Library/Application Support/Claude/claude_desktop_config.json"
32
+ return
33
+ fi
34
+
35
+ # Linux
36
+ if [ -f "$HOME/.config/claude/claude_desktop_config.json" ]; then
37
+ echo "$HOME/.config/claude/claude_desktop_config.json"
38
+ return
39
+ fi
40
+
41
+ # 見つからない場合はデフォルト作成
42
+ mkdir -p "$HOME/.claude"
43
+ echo "$HOME/.claude/claude_desktop_config.json"
44
+ }
45
+
46
+ # Node.js確認
47
+ echo -e "${BLUE}[1/5]${NC} Node.js確認中..."
48
+ if ! command -v node &> /dev/null; then
49
+ echo -e "${RED}エラー: Node.js 18以上が必要です${NC}"
50
+ echo "https://nodejs.org からインストールしてください"
51
+ exit 1
52
+ fi
53
+
54
+ NODE_VERSION=$(node -v | cut -d'v' -f2 | cut -d'.' -f1)
55
+ if [ "$NODE_VERSION" -lt 18 ]; then
56
+ echo -e "${RED}エラー: Node.js 18以上が必要です (現在: v$NODE_VERSION)${NC}"
57
+ exit 1
58
+ fi
59
+ echo -e " ✓ Node.js v$(node -v | cut -d'v' -f2)"
60
+
61
+ # インストールディレクトリ作成
62
+ echo -e "${BLUE}[2/5]${NC} インストールディレクトリ作成..."
63
+ mkdir -p "$INSTALL_DIR"
64
+ echo -e " ✓ $INSTALL_DIR"
65
+
66
+ # ファイルコピー(このスクリプトと同じディレクトリから)
67
+ echo -e "${BLUE}[3/5]${NC} ファイルをコピー中..."
68
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
69
+ PACKAGE_DIR="$(dirname "$SCRIPT_DIR")"
70
+
71
+ if [ -d "$PACKAGE_DIR/dist" ]; then
72
+ cp -r "$PACKAGE_DIR/dist" "$INSTALL_DIR/"
73
+ cp "$PACKAGE_DIR/package.json" "$INSTALL_DIR/"
74
+ cp "$PACKAGE_DIR/README.md" "$INSTALL_DIR/" 2>/dev/null || true
75
+ echo -e " ✓ ファイルコピー完了"
76
+ else
77
+ echo -e "${RED}エラー: distディレクトリが見つかりません${NC}"
78
+ exit 1
79
+ fi
80
+
81
+ # 依存パッケージインストール
82
+ echo -e "${BLUE}[4/5]${NC} 依存パッケージをインストール中..."
83
+ cd "$INSTALL_DIR"
84
+ npm install --production --silent
85
+ echo -e " ✓ npm install完了"
86
+
87
+ # Claude設定を更新
88
+ echo -e "${BLUE}[5/5]${NC} Claude設定を更新中..."
89
+ CONFIG_FILE=$(detect_claude_config)
90
+ CONFIG_DIR=$(dirname "$CONFIG_FILE")
91
+ mkdir -p "$CONFIG_DIR"
92
+
93
+ # 設定ファイルが存在しない場合は作成
94
+ if [ ! -f "$CONFIG_FILE" ]; then
95
+ echo '{"mcpServers":{}}' > "$CONFIG_FILE"
96
+ fi
97
+
98
+ # jqがあれば使用、なければPythonで処理
99
+ if command -v jq &> /dev/null; then
100
+ # jqで設定追加
101
+ TMP_FILE=$(mktemp)
102
+ jq --arg path "$INSTALL_DIR/dist/index.js" \
103
+ '.mcpServers.bluelamp = {"command": "node", "args": [$path]}' \
104
+ "$CONFIG_FILE" > "$TMP_FILE"
105
+ mv "$TMP_FILE" "$CONFIG_FILE"
106
+ elif command -v python3 &> /dev/null; then
107
+ # Pythonで設定追加
108
+ python3 << EOF
109
+ import json
110
+ import os
111
+
112
+ config_file = "$CONFIG_FILE"
113
+ install_dir = "$INSTALL_DIR"
114
+
115
+ try:
116
+ with open(config_file, 'r') as f:
117
+ config = json.load(f)
118
+ except:
119
+ config = {"mcpServers": {}}
120
+
121
+ if "mcpServers" not in config:
122
+ config["mcpServers"] = {}
123
+
124
+ config["mcpServers"]["bluelamp"] = {
125
+ "command": "node",
126
+ "args": [f"{install_dir}/dist/index.js"]
127
+ }
128
+
129
+ with open(config_file, 'w') as f:
130
+ json.dump(config, f, indent=2)
131
+
132
+ print(" ✓ 設定ファイル更新完了")
133
+ EOF
134
+ else
135
+ echo -e "${RED}警告: jqまたはpython3が必要です${NC}"
136
+ echo "手動で設定してください:"
137
+ echo ""
138
+ echo "設定ファイル: $CONFIG_FILE"
139
+ echo ""
140
+ cat << EOF
141
+ {
142
+ "mcpServers": {
143
+ "bluelamp": {
144
+ "command": "node",
145
+ "args": ["$INSTALL_DIR/dist/index.js"]
146
+ }
147
+ }
148
+ }
149
+ EOF
150
+ exit 0
151
+ fi
152
+
153
+ echo -e " ✓ $CONFIG_FILE"
154
+
155
+ echo ""
156
+ echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
157
+ echo -e "${GREEN} インストール完了!${NC}"
158
+ echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
159
+ echo ""
160
+ echo "次のステップ:"
161
+ echo " 1. Claude Desktop/Codeを再起動"
162
+ echo " 2. BlueLamp Portalにログイン (初回のみ)"
163
+ echo ""
164
+ echo "確認方法:"
165
+ echo " Claude Codeで以下を実行:"
166
+ echo " > MCPツールの list_orchestrators を使って"
167
+ echo ""
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aiagentmarket",
3
- "version": "3.0.47",
3
+ "version": "3.0.49",
4
4
  "description": "AI Agent Market - 100 Slot AI Agent Orchestration System with Portal Integration",
5
5
  "main": "./lib/mcp-server/dist/index.js",
6
6
  "bin": {
@@ -144,6 +144,6 @@
144
144
  "url": "https://github.com/aiagentmarket/aiagentmarket.git"
145
145
  },
146
146
  "scripts": {
147
- "postinstall": "node scripts/setup-agents.js && node scripts/generate-aiagent-links.js"
147
+ "postinstall": "node scripts/setup-agents.js && node scripts/generate-aiagent-links.js && node scripts/configure-aiagent-tools.js"
148
148
  }
149
149
  }
package/scripts/build.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const fs=require("fs").promises,fsSync=require("fs"),path=require("path"),{execSync:execSync}=require("child_process"),PROJECT_ROOT=path.dirname(__dirname),SRC_DIR=PROJECT_ROOT,DIST_DIR=path.join(PROJECT_ROOT,"dist"),LIB_MCP_SERVER_DIST=path.join(PROJECT_ROOT,"lib","mcp-server","dist"),SENSITIVE_FILES=["lib/mcp-server/dist/security/PortalAuthClient.js","lib/mcp-server/dist/security/SimpleAuthManager.js","lib/mcp-server/dist/security/TokenManager.js","lib/mcp-server/dist/security/SlotAuthClient.js","lib/mcp-server/dist/security/InteractiveLogin.js","lib/mcp-server/dist/plugins/services/portal-api-client.js","bin/aiagent-base"],COPY_ONLY_FILES=["lib/agents/ブルーランプ.md"],HIGH_OBFUSCATION_OPTIONS={compact:!0,controlFlowFlattening:!0,controlFlowFlatteningThreshold:.75,deadCodeInjection:!0,deadCodeInjectionThreshold:.4,debugProtection:!0,debugProtectionInterval:4e3,disableConsoleOutput:!1,identifierNamesGenerator:"hexadecimal",log:!1,numbersToExpressions:!0,renameGlobals:!0,selfDefending:!0,simplify:!0,splitStrings:!0,splitStringsChunkLength:5,stringArray:!0,stringArrayCallsTransform:!0,stringArrayCallsTransformThreshold:.8,stringArrayEncoding:["base64"],stringArrayIndexShift:!0,stringArrayRotate:!0,stringArrayShuffle:!0,stringArrayWrappersCount:2,stringArrayWrappersChainedCalls:!0,stringArrayWrappersParametersMaxCount:4,stringArrayWrappersType:"function",stringArrayThreshold:.8,transformObjectKeys:!0,unicodeEscapeSequence:!1},TERSER_OPTIONS={compress:{dead_code:!0,drop_console:!1,drop_debugger:!0,passes:2},mangle:{reserved:["require","module","exports","process","__dirname","__filename"]},format:{comments:!1}};class Logger{static info(e){console.log(`[INFO] ${e}`)}static success(e){console.log(`[OK] ${e}`)}static warn(e){console.log(`[WARN] ${e}`)}static error(e){console.log(`[ERROR] ${e}`)}}async function ensureDir(e){try{await fs.mkdir(e,{recursive:!0})}catch(e){if("EEXIST"!==e.code)throw e}}async function cleanDir(e){try{await fs.rm(e,{recursive:!0,force:!0})}catch(e){}await ensureDir(e)}function isSensitiveFile(e){return SENSITIVE_FILES.some(r=>e.endsWith(r)||e===r)}function isCopyOnlyFile(e){return COPY_ONLY_FILES.some(r=>e.endsWith(r)||e===r)}function isJavaScriptFile(e){return!(!e.endsWith(".js")&&!e.endsWith(".cjs")&&!e.includes("bin/aiagent-base"))}async function processWithTerser(e,r){try{const{minify:r}=require("terser"),s=await r(e,TERSER_OPTIONS);if(s.error)throw s.error;return s.code}catch(s){return Logger.warn(`Terser failed for ${r}, using original: ${s.message}`),e}}function processWithObfuscator(e){return require("javascript-obfuscator").obfuscate(e,HIGH_OBFUSCATION_OPTIONS).getObfuscatedCode()}async function processFile(e,r,s){const t=await fs.readFile(e,"utf8");if(!isJavaScriptFile(e)||isCopyOnlyFile(s))return await ensureDir(path.dirname(r)),await fs.writeFile(r,t,"utf8"),Logger.info(`Copy: ${s}`),"copy";let i,n,o="",a=t;if(t.startsWith("#!")){const e=t.indexOf("\n");o=t.substring(0,e+1),a=t.substring(e+1)}isSensitiveFile(s)?(i=processWithObfuscator(a),n="HIGH",Logger.success(`HIGH obfuscate: ${s}`)):(i=await processWithTerser(a,s),n="Terser",Logger.info(`Terser minify: ${s}`));const c=o+i;return await ensureDir(path.dirname(r)),await fs.writeFile(r,c,"utf8"),s.startsWith("bin/")&&await fs.chmod(r,493),n}async function collectFiles(e,r=e){const s=[];let t;try{t=await fs.readdir(e,{withFileTypes:!0})}catch(e){return s}for(const i of t){const t=path.join(e,i.name),n=path.relative(r,t);if(!(i.name.startsWith(".")||"node_modules"===i.name||"dist"===i.name&&!n.includes("mcp-server/dist")||"release"===i.name||"src"===i.name||"__tests__"===i.name||"coverage"===i.name||"docs"===i.name||i.name.startsWith("test-")||i.name.endsWith(".test.js")||i.name.endsWith(".spec.js")||i.name.endsWith(".md")&&!COPY_ONLY_FILES.some(e=>n.endsWith(e))))if(i.isDirectory()){const e=await collectFiles(t,r);s.push(...e)}else s.push({fullPath:t,relativePath:n})}return s}async function generateBinWrappers(){Logger.info("Generating bin wrapper files...");const e=path.join(DIST_DIR,"bin");await ensureDir(e);let r=0;const s=["aiagent"];for(let e=1;e<=100;e++)s.push(`aiagent${e}`);for(const t of s){const s=path.join(e,t);try{await fs.writeFile(s,"#!/usr/bin/env node\nrequire('./aiagent-base');\n",{mode:493}),r++}catch(e){Logger.error(`Failed to create ${t}: ${e.message}`)}}return Logger.success(`Bin wrappers generated: ${r} files`),r}async function main(){const e=Date.now();console.log(""),console.log("╔═══════════════════════════════════════════════════════════╗"),console.log("║ AI Agent Market - Production Build ║"),console.log("║ 2-Stage Obfuscation: Terser + HIGH ║"),console.log("╚═══════════════════════════════════════════════════════════╝"),console.log("");const r=path.join(SRC_DIR,"package.json"),s=JSON.parse(fsSync.readFileSync(r,"utf8"));Logger.info(`Building version: ${s.version}`);try{require("terser"),require("javascript-obfuscator")}catch(e){Logger.error("Missing dependencies. Run: npm install"),process.exit(1)}Logger.info("Cleaning dist/..."),await cleanDir(DIST_DIR),Logger.info("Collecting files...");const t=["bin","lib","config","scripts","knowledge-injection"],i=[];for(const e of t){const r=path.join(SRC_DIR,e);try{const e=await collectFiles(r,SRC_DIR);i.push(...e)}catch(r){Logger.warn(`Directory not found: ${e}`)}}Logger.info(`Found ${i.length} files to process`),console.log("");const n={terser:0,high:0,copy:0,error:0};for(const e of i){const r=path.join(DIST_DIR,e.relativePath);try{const s=await processFile(e.fullPath,r,e.relativePath);"Terser"===s?n.terser++:"HIGH"===s?n.high++:n.copy++}catch(r){Logger.error(`Failed: ${e.relativePath} - ${r.message}`),n.error++}}await generateBinWrappers(),Logger.info("Generating dist/package.json...");const o={name:s.name,version:s.version,description:s.description,main:s.main.replace("lib/","./lib/"),bin:{},keywords:s.keywords,author:s.author,license:s.license,dependencies:s.dependencies,engines:s.engines,files:["bin/","lib/","config/","scripts/","knowledge-injection/"],preferGlobal:s.preferGlobal,repository:s.repository,scripts:{postinstall:s.scripts.postinstall}};for(const[e,r]of Object.entries(s.bin))o.bin[e]=r.replace("./bin/","./bin/");await fs.writeFile(path.join(DIST_DIR,"package.json"),JSON.stringify(o,null,2),"utf8");try{const e=path.join(SRC_DIR,"README.md");await fs.copyFile(e,path.join(DIST_DIR,"README.md")),Logger.success("Copied README.md")}catch(e){Logger.warn("README.md not found")}const a=((Date.now()-e)/1e3).toFixed(2);console.log(""),console.log("╔═══════════════════════════════════════════════════════════╗"),console.log("║ Build Complete ║"),console.log("╠═══════════════════════════════════════════════════════════╣"),console.log(`║ Terser (general): ${String(n.terser).padStart(3)} files ║`),console.log(`║ HIGH (sensitive): ${String(n.high).padStart(3)} files ║`),console.log(`║ Copy only: ${String(n.copy).padStart(3)} files ║`),console.log(`║ Errors: ${String(n.error).padStart(3)} files ║`),console.log(`║ Time: ${a.padStart(5)}s ║`),console.log("╠═══════════════════════════════════════════════════════════╣"),console.log("║ Output: dist/ ║"),console.log("║ ║"),console.log("║ To publish: ║"),console.log("║ cd dist && npm publish ║"),console.log("╚═══════════════════════════════════════════════════════════╝"),console.log(""),n.error>0&&process.exit(1)}main().catch(e=>{Logger.error(e.message),process.exit(1)});
2
+ const fs=require("fs").promises,fsSync=require("fs"),path=require("path"),{execSync:execSync}=require("child_process"),PROJECT_ROOT=path.dirname(__dirname),SRC_DIR=PROJECT_ROOT,DIST_DIR=path.join(PROJECT_ROOT,"dist"),LIB_MCP_SERVER_DIST=path.join(PROJECT_ROOT,"lib","mcp-server","dist"),SENSITIVE_FILES=["lib/mcp-server/dist/security/PortalAuthClient.js","lib/mcp-server/dist/security/SimpleAuthManager.js","lib/mcp-server/dist/security/TokenManager.js","lib/mcp-server/dist/security/SlotAuthClient.js","lib/mcp-server/dist/security/InteractiveLogin.js","lib/mcp-server/dist/plugins/services/portal-api-client.js","bin/aiagent-base"],COPY_ONLY_FILES=["lib/agents/ブルーランプ.md"],HIGH_OBFUSCATION_OPTIONS={compact:!0,controlFlowFlattening:!0,controlFlowFlatteningThreshold:.75,deadCodeInjection:!0,deadCodeInjectionThreshold:.4,debugProtection:!0,debugProtectionInterval:4e3,disableConsoleOutput:!1,identifierNamesGenerator:"hexadecimal",log:!1,numbersToExpressions:!0,renameGlobals:!0,selfDefending:!0,simplify:!0,splitStrings:!0,splitStringsChunkLength:5,stringArray:!0,stringArrayCallsTransform:!0,stringArrayCallsTransformThreshold:.8,stringArrayEncoding:["base64"],stringArrayIndexShift:!0,stringArrayRotate:!0,stringArrayShuffle:!0,stringArrayWrappersCount:2,stringArrayWrappersChainedCalls:!0,stringArrayWrappersParametersMaxCount:4,stringArrayWrappersType:"function",stringArrayThreshold:.8,transformObjectKeys:!0,unicodeEscapeSequence:!1},TERSER_OPTIONS={compress:{dead_code:!0,drop_console:!1,drop_debugger:!0,passes:2},mangle:{reserved:["require","module","exports","process","__dirname","__filename"]},format:{comments:!1}};class Logger{static info(e){console.log(`[INFO] ${e}`)}static success(e){console.log(`[OK] ${e}`)}static warn(e){console.log(`[WARN] ${e}`)}static error(e){console.log(`[ERROR] ${e}`)}}async function ensureDir(e){try{await fs.mkdir(e,{recursive:!0})}catch(e){if("EEXIST"!==e.code)throw e}}async function cleanDir(e){try{await fs.rm(e,{recursive:!0,force:!0})}catch(e){}await ensureDir(e)}function isSensitiveFile(e){return SENSITIVE_FILES.some(s=>e.endsWith(s)||e===s)}function isCopyOnlyFile(e){return COPY_ONLY_FILES.some(s=>e.endsWith(s)||e===s)}function isJavaScriptFile(e){return!(!e.endsWith(".js")&&!e.endsWith(".cjs")&&!e.includes("bin/aiagent-base"))}async function processWithTerser(e,s){try{const{minify:s}=require("terser"),r=await s(e,TERSER_OPTIONS);if(r.error)throw r.error;return r.code}catch(r){return Logger.warn(`Terser failed for ${s}, using original: ${r.message}`),e}}function processWithObfuscator(e){return require("javascript-obfuscator").obfuscate(e,HIGH_OBFUSCATION_OPTIONS).getObfuscatedCode()}async function processFile(e,s,r){const n=await fs.readFile(e,"utf8");if(!isJavaScriptFile(e)||isCopyOnlyFile(r))return await ensureDir(path.dirname(s)),await fs.writeFile(s,n,"utf8"),Logger.info(`Copy: ${r}`),"copy";let t,i,o="",a=n;if(n.startsWith("#!")){const e=n.indexOf("\n");o=n.substring(0,e+1),a=n.substring(e+1)}isSensitiveFile(r)?(t=processWithObfuscator(a),i="HIGH",Logger.success(`HIGH obfuscate: ${r}`)):(t=await processWithTerser(a,r),i="Terser",Logger.info(`Terser minify: ${r}`));const c=o+t;return await ensureDir(path.dirname(s)),await fs.writeFile(s,c,"utf8"),r.startsWith("bin/")&&await fs.chmod(s,493),i}async function collectFiles(e,s=e){const r=[];let n;try{n=await fs.readdir(e,{withFileTypes:!0})}catch(e){return r}for(const t of n){const n=path.join(e,t.name),i=path.relative(s,n);if(!(t.name.startsWith(".")||"node_modules"===t.name||"dist"===t.name&&!i.includes("mcp-server/dist")||"release"===t.name||"releases"===t.name||"src"===t.name||"__tests__"===t.name||"coverage"===t.name||"docs"===t.name||t.name.startsWith("test-")||t.name.endsWith(".test.js")||t.name.endsWith(".spec.js")||t.name.endsWith(".map")||t.name.endsWith(".d.ts")||t.name.endsWith(".d.ts.map")||"tsconfig.json"===t.name||"tsconfig.production.json"===t.name||"package-lock.json"===t.name||"package-release.json"===t.name||"jest.config.js"===t.name||t.name.endsWith(".md")&&!COPY_ONLY_FILES.some(e=>i.endsWith(e))))if(t.isDirectory()){const e=await collectFiles(n,s);r.push(...e)}else r.push({fullPath:n,relativePath:i})}return r}async function generateBinWrappers(){Logger.info("Generating bin wrapper files...");const e=path.join(DIST_DIR,"bin");await ensureDir(e);let s=0;const r=["aiagent"];for(let e=1;e<=100;e++)r.push(`aiagent${e}`);for(const n of r){const r=path.join(e,n);try{await fs.writeFile(r,"#!/usr/bin/env node\nrequire('./aiagent-base');\n",{mode:493}),s++}catch(e){Logger.error(`Failed to create ${n}: ${e.message}`)}}return Logger.success(`Bin wrappers generated: ${s} files`),s}async function main(){const e=Date.now();console.log(""),console.log("╔═══════════════════════════════════════════════════════════╗"),console.log("║ AI Agent Market - Production Build ║"),console.log("║ 2-Stage Obfuscation: Terser + HIGH ║"),console.log("╚═══════════════════════════════════════════════════════════╝"),console.log("");const s=path.join(SRC_DIR,"package.json"),r=JSON.parse(fsSync.readFileSync(s,"utf8"));Logger.info(`Building version: ${r.version}`);try{require("terser"),require("javascript-obfuscator")}catch(e){Logger.error("Missing dependencies. Run: npm install"),process.exit(1)}Logger.info("Cleaning dist/..."),await cleanDir(DIST_DIR),Logger.info("Collecting files...");const n=["bin","lib","config","scripts","knowledge-injection"],t=[];for(const e of n){const s=path.join(SRC_DIR,e);try{const e=await collectFiles(s,SRC_DIR);t.push(...e)}catch(s){Logger.warn(`Directory not found: ${e}`)}}Logger.info(`Found ${t.length} files to process`),console.log("");const i={terser:0,high:0,copy:0,error:0};for(const e of t){const s=path.join(DIST_DIR,e.relativePath);try{const r=await processFile(e.fullPath,s,e.relativePath);"Terser"===r?i.terser++:"HIGH"===r?i.high++:i.copy++}catch(s){Logger.error(`Failed: ${e.relativePath} - ${s.message}`),i.error++}}await generateBinWrappers(),Logger.info("Generating dist/package.json...");const o={name:r.name,version:r.version,description:r.description,main:r.main.replace("lib/","./lib/"),bin:{},keywords:r.keywords,author:r.author,license:r.license,dependencies:r.dependencies,engines:r.engines,files:["bin/","lib/","config/","scripts/","knowledge-injection/"],preferGlobal:r.preferGlobal,repository:r.repository,scripts:{postinstall:r.scripts.postinstall}};for(const[e,s]of Object.entries(r.bin))o.bin[e]=s.replace("./bin/","./bin/");await fs.writeFile(path.join(DIST_DIR,"package.json"),JSON.stringify(o,null,2),"utf8");try{const e=path.join(SRC_DIR,"README.md");await fs.copyFile(e,path.join(DIST_DIR,"README.md")),Logger.success("Copied README.md")}catch(e){Logger.warn("README.md not found")}const a=((Date.now()-e)/1e3).toFixed(2);console.log(""),console.log("╔═══════════════════════════════════════════════════════════╗"),console.log("║ Build Complete ║"),console.log("╠═══════════════════════════════════════════════════════════╣"),console.log(`║ Terser (general): ${String(i.terser).padStart(3)} files ║`),console.log(`║ HIGH (sensitive): ${String(i.high).padStart(3)} files ║`),console.log(`║ Copy only: ${String(i.copy).padStart(3)} files ║`),console.log(`║ Errors: ${String(i.error).padStart(3)} files ║`),console.log(`║ Time: ${a.padStart(5)}s ║`),console.log("╠═══════════════════════════════════════════════════════════╣"),console.log("║ Output: dist/ ║"),console.log("║ ║"),console.log("║ To publish: ║"),console.log("║ cd dist && npm publish ║"),console.log("╚═══════════════════════════════════════════════════════════╝"),console.log(""),i.error>0&&process.exit(1)}main().catch(e=>{Logger.error(e.message),process.exit(1)});
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ const fs=require("fs"),path=require("path"),os=require("os"),crypto=require("crypto"),CLAUDE_CONFIG_PATH=path.join(os.homedir(),".claude.json"),BLUELAMP_DIR=path.join(os.homedir(),".bluelamp"),TOKEN_FILE_PATH=path.join(BLUELAMP_DIR,"portal-token.enc"),KEY_FILE_PATH=path.join(BLUELAMP_DIR,".encryption-key"),AIAGENT_TOOLS_URL="https://aiagent-tools.shiraishi-tatsuya.workers.dev/sse",AIAGENT_TOOLS_MCP_URL="https://aiagent-tools.shiraishi-tatsuya.workers.dev/mcp";function getEncryptionKey(){if(process.env.BLUELAMP_ENCRYPTION_KEY)return process.env.BLUELAMP_ENCRYPTION_KEY;if(fs.existsSync(KEY_FILE_PATH))try{const e=fs.readFileSync(KEY_FILE_PATH,"utf8").trim();if(/^[a-f0-9]{64}$/i.test(e))return e}catch(e){}return null}function loadCliToken(){try{if(!fs.existsSync(TOKEN_FILE_PATH))return null;const e=getEncryptionKey();if(!e)return console.warn("⚠️ 暗号化キーが見つかりません"),null;const o=fs.readFileSync(TOKEN_FILE_PATH,"utf8"),n="aes-256-cbc",t=crypto.scryptSync(e,"salt",32),s=o.split(":"),r=Buffer.from(s[0],"hex"),l=s[1],i=crypto.createDecipheriv(n,t,r);let a=i.update(l,"hex","utf8");return a+=i.final("utf8"),JSON.parse(a).token||null}catch(e){return console.warn("⚠️ CLIトークンの読み込みに失敗しました:",e.message),null}}function loadClaudeConfig(){try{if(!fs.existsSync(CLAUDE_CONFIG_PATH))return{mcpServers:{}};const e=fs.readFileSync(CLAUDE_CONFIG_PATH,"utf8");return JSON.parse(e)}catch(e){return console.warn("⚠️ claude.json読み込みエラー:",e.message),{mcpServers:{}}}}function saveClaudeConfig(e){try{return fs.writeFileSync(CLAUDE_CONFIG_PATH,JSON.stringify(e,null,2)),!0}catch(e){return console.error("❌ claude.json保存エラー:",e.message),!1}}function configureAiagentTools(e=null){console.log("🔧 aiagent-tools SSE設定を構成中...");const o=loadClaudeConfig();o.mcpServers||(o.mcpServers={});const n=e||loadCliToken();if(!n)return console.log("ℹ️ CLIトークンが見つかりません"),console.log(" aiagentコマンドでログイン後、設定が自動更新されます"),!0;o.mcpServers["aiagent-tools"]={type:"stdio",command:"npx",args:["-y","mcp-remote",AIAGENT_TOOLS_MCP_URL,"--header",`X-CLI-Token:${n}`]},console.log("✅ aiagent-tools設定を追加しました(認証済み)"),o.mcpServers["mikoto-hub"]&&(delete o.mcpServers["mikoto-hub"],console.log("🔄 mikoto-hub設定をaiagent-toolsに移行しました"));const t=saveClaudeConfig(o);return t&&(console.log(`📁 設定ファイル: ${CLAUDE_CONFIG_PATH}`),console.log(""),console.log("🚀 aiagent-toolsが利用可能になりました:"),console.log(" - Gmail、Google Calendar"),console.log(" - Slack、Backlog"),console.log(" - YouTube、PDF Reader"),console.log(" - その他多数のMCPツール")),t}function removeAiagentTools(){const e=loadClaudeConfig();return e.mcpServers&&e.mcpServers["aiagent-tools"]?(delete e.mcpServers["aiagent-tools"],saveClaudeConfig(e),console.log("✅ aiagent-tools設定を削除しました"),!0):(console.log("ℹ️ aiagent-tools設定は存在しません"),!1)}if(require.main===module){const e=process.argv.slice(2);if(e.includes("--remove"))removeAiagentTools();else if(e.includes("--token")){const o=e.indexOf("--token"),n=e[o+1];n?configureAiagentTools(n):(console.error("❌ --token オプションにはトークン値が必要です"),process.exit(1))}else configureAiagentTools()}module.exports={configureAiagentTools:configureAiagentTools,removeAiagentTools:removeAiagentTools,loadCliToken:loadCliToken};
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const fs=require("fs"),path=require("path"),binDir=path.join(__dirname,"..","bin"),baseScript=path.join(binDir,"aiagent-base");console.log("🔧 AI Agent シンボリックリンク生成開始..."),console.log(`Base script: ${baseScript}`),console.log(`Target directory: ${binDir}`),console.log(""),fs.existsSync(baseScript)||(console.error("❌ aiagent-base スクリプトが見つかりません:",baseScript),process.exit(1));let successCount=0,errorCount=0;const errors=[],aiagentLink=path.join(binDir,"aiagent");try{fs.existsSync(aiagentLink)&&fs.unlinkSync(aiagentLink),fs.symlinkSync("aiagent-base",aiagentLink),console.log("✅ aiagent → aiagent-base (スロット1)"),successCount++}catch(o){console.error(`❌ aiagent: ${o.message}`),errors.push(`aiagent: ${o.message}`),errorCount++}for(let o=2;o<=100;o++){const e=`aiagent${o}`,n=path.join(binDir,e);try{fs.existsSync(n)&&fs.unlinkSync(n),fs.symlinkSync("aiagent-base",n),o%10==0&&console.log(`✅ aiagent2〜aiagent${o} 完了 (スロット2-${o})`),successCount++}catch(o){console.error(`❌ ${e}: ${o.message}`),errors.push(`${e}: ${o.message}`),errorCount++}}console.log(""),console.log("🎯 シンボリックリンク生成結果:"),console.log(`✅ 成功: ${successCount} 個`),console.log(`❌ 失敗: ${errorCount} 個`),errorCount>0?(console.log(""),console.log("❌ エラー詳細:"),errors.forEach(o=>console.log(` ${o}`)),process.exit(1)):(console.log(""),console.log("🎉 すべてのシンボリックリンクが正常に作成されました!"),console.log(""),console.log("利用可能なコマンド:"),console.log(" aiagent → スロット1"),console.log(" aiagent2 → スロット2"),console.log(" aiagent3 → スロット3"),console.log(" ... ..."),console.log(" aiagent100 → スロット100"));
2
+ const fs=require("fs"),path=require("path"),binDir=path.join(__dirname,"..","bin"),baseScript=path.join(binDir,"aiagent-base"),WRAPPER_CONTENT="#!/usr/bin/env node\nrequire('./aiagent-base');\n";console.log("🔧 AI Agent ラッパーファイル生成開始..."),console.log(`Base script: ${baseScript}`),console.log(`Target directory: ${binDir}`),console.log(""),fs.existsSync(baseScript)||(console.error("❌ aiagent-base スクリプトが見つかりません:",baseScript),process.exit(1));let successCount=0,errorCount=0;const errors=[];function createWrapper(o){const e=path.join(binDir,o);try{return fs.existsSync(e)&&fs.unlinkSync(e),fs.writeFileSync(e,WRAPPER_CONTENT,{mode:493}),!0}catch(e){return errors.push(`${o}: ${e.message}`),!1}}createWrapper("aiagent")?(console.log("✅ aiagent (スロット1)"),successCount++):(console.error("❌ aiagent: 作成失敗"),errorCount++);for(let o=2;o<=100;o++){const e=`aiagent${o}`;createWrapper(e)?(o%10==0&&console.log(`✅ aiagent2〜aiagent${o} 完了 (スロット2-${o})`),successCount++):(console.error(`❌ ${e}: 作成失敗`),errorCount++)}console.log(""),console.log("🎯 ラッパーファイル生成結果:"),console.log(`✅ 成功: ${successCount} 個`),console.log(`❌ 失敗: ${errorCount} 個`),errorCount>0?(console.log(""),console.log("❌ エラー詳細:"),errors.forEach(o=>console.log(` ${o}`)),process.exit(1)):(console.log(""),console.log("🎉 すべてのラッパーファイルが正常に作成されました!"),console.log(""),console.log("利用可能なコマンド:"),console.log(" aiagent → スロット1"),console.log(" aiagent2 → スロット2"),console.log(" aiagent3 → スロット3"),console.log(" ... ..."),console.log(" aiagent100 → スロット100"));
@@ -1,105 +0,0 @@
1
- ---
2
- name: ブルーランプ
3
- description: パフォーマーエージェント - オーケストレーターの指示に応じて適切な役割・ツールを選択・実行
4
- model: sonnet
5
- color: blue
6
- ---
7
-
8
- # ブルーランプエージェント
9
-
10
- 1. **初期化**:オーケストレーターから指示があった場合は、inject_knowledge(keyword: "キーワード")こちらで指示通りの知識を注入する(指示がなければ不要)
11
- 2. **オーケストレーター指示の確認**: タスク指示を解析し、実行内容を特定
12
- 3. **タスク実行**: 注入された専門知識に基づいて適切な処理を実行
13
-
14
- ## 🌟 基本理念
15
- 「シンプルさは究極の洗練である」- レオナルド・ダ・ヴィンチ
16
- 「プロジェクトでいまここに不要なコードは一文字も残さない」
17
- 「最高の仕様書はドキュメントではなく美しく整ったアーキテクチャのコードそのものである」
18
- 「秩序を保つことに責任を持つ。整理整頓された綺麗な部屋のようにコードやドキュメントの片付け整理を忘れない」
19
- 「ジョブスのように誰もみてない細部のコードの美しさにも職人のようにこだわる」
20
- ## 🎯 5つの核心原則
21
-
22
- ### 1. 最小性の原則(Principle of Minimalism)
23
- **「必要最小限を超えない」**
24
- - 新規作成より既存活用を優先する
25
- - 解決策は常に最もシンプルなものを選ぶ
26
- - あったらいいなはないほうがいい
27
-
28
- ### 2. 単一性の原則(Principle of Singularity)
29
- **「真実の源は常に一つ」**
30
- - SQLAlchemyモデルはbackend/app/models/__init__.pyに集約(DB定義の単一源)
31
- - 実装計画はSCOPE_PROGRESS.mdに集約させる
32
- - 仕様書やロジックなどはrequirements.mdに集約させる
33
-
34
- ### 3. 刹那性の原則(Principle of Ephemerality)
35
- **「今、ここで必要なものだけを残す」**
36
- - 役目を終えたものは即座に削除する
37
- - 修正や変更により使わなくなったコードは即リファクタリング
38
- - 後方互換の原則禁止(ただし修正時は安全を確保するよう慎重に)
39
- - 未来の「もしかして」のために保持しない
40
- - 生きているコードとドキュメントのみを維持する
41
-
42
- ### 4. 実証性の原則(Principle of Evidence)
43
- **「事実こそが真実への唯一の道」**
44
- - 環境変数やデータベースを積極的に確認する。
45
- - 開発環境でもバックエンドは全て本番のAPIを使って検証テスト作成する。バックエンドのモック絶対禁止。
46
- - デバッグで明確に原因がわからない場合はログを設置する。推測しない。
47
- - 外部APIや比較的新しい技術はweb検索を積極的に活用する。仕様を推測しない。
48
- - **Web検索前に必ず`date`コマンドで現在日時を確認し、現在の最新情報を検索する**
49
-
50
- ### 5. 潔癖性の原則(Principle of Fail-Fast)
51
- **「失敗は隠すな、早く明確に、透明に失敗せよ」**
52
- - エラーは即座に表面化させる
53
- - フォールバックによる問題の隠蔽を禁止する
54
- - そもそもフォールバック不要のシンプルで堅牢性の高い構造を作る
55
-
56
- ## ドキュメント管理の原則
57
-
58
- 単一の真実源の原則を守らせ、勝手なドキュメントを無作為に作らせないように制御してください。
59
- - **docs/SCOPE_PROGRESS.md**: 今これからやるべき実装の計画
60
- - **docs/requirements.md**: 今これからやるべき実装の詳細
61
- - **docs/DEPLOYMENT.md**: デプロイ情報
62
- - **docs/designsystem.md**: デザインシステム
63
- - **docs/api-specs/[ページ名]-api.md**: API仕様書
64
-
65
- 例えばリサーチして何か知見があり、その結果としてドキュメント化したいのであれば
66
- requirements.md(要件やロジック)
67
- SCOPE_PROGRESS.md(実装計画)
68
-
69
- こちらにのみ記載可能であり、こちらに記載する価値がなければ回答のみで報告してください。
70
- これ以外のドキュメントはユーザーへの確認と明確な許諾や指示がない限り作成してはいけません。
71
-
72
- requirements.md(要件やロジック)
73
- SCOPE_PROGRESS.md(実装計画)
74
-
75
- こちらは実装が完了しコードに落とし込まれている記載は積極的に削除し不要な記載はなくす。
76
-
77
- ## 🔧 FastAPI + SQLAlchemy開発の絶対原則
78
-
79
- ### 6. 環境変数の絶対原則
80
- - **開発中は全ての場面で.env.localのみ使用**
81
- - テストスクリプトは必ず.env.localを読み込ませる
82
- - .env.test、.env.developmentなど作らない
83
- - DATABASE_URLは.env.localの1箇所のみ
84
-
85
- ### 7. SQLAlchemy/DBの絶対原則
86
- - **SQLAlchemyエラーが出たら`alembic upgrade head`を実行**
87
- - スキーマ変更は`alembic revision --autogenerate`後に`alembic upgrade head`
88
- - SQLAlchemyモデルはbackend/app/models/__init__.pyに集約
89
- - **DBURLエラー時は環境変数エラーとして即報告**
90
-
91
- ### 8. テストも.env.localを使用
92
- - テスト専用DBは作らない
93
- - 同じDBで問題なし(開発段階)
94
- - process.env.DATABASE_URLをそのまま使用
95
-
96
- ### 9. サーバー起動の絶対原則
97
- - サーバーは1つ維持
98
- - 再起動禁止(ホットリロードを使う)
99
- - 既存サーバーがある場合はそれを使う
100
- (理由:複数エージェントで同プロジェクトを扱うため、既存サーバーのほとんどは同じプロジェクト。失敗時のみ調査し、違う場合のみ新規起動)
101
-
102
- ### 10. エラー時の絶対原則
103
- - **環境変数エラー** → 全タスク強制終了し即座に報告(試行錯誤禁止)
104
- - **SQLAlchemy接続エラー** → `alembic upgrade head`後、1回だけ再試行
105
- - **3回同じエラー** → Web検索を許可
@@ -1,29 +0,0 @@
1
- /**
2
- * BlueLamp プロンプト保護システム
3
- * サブエージェントのプロンプト保護とアクセス制御を実装
4
- */
5
- declare class BlueLampProtectionSystem {
6
- private server;
7
- private validTokens;
8
- private accessLogs;
9
- constructor();
10
- private initializeTokens;
11
- private setupHandlers;
12
- private validateToken;
13
- private logAccess;
14
- /**
15
- * エージェント認証ハンドラー
16
- */
17
- private handleAuthenticateAgent;
18
- /**
19
- * 保護されたプロンプト取得ハンドラー
20
- */
21
- private handleGetProtectedPrompt;
22
- /**
23
- * 保護されたエージェント一覧ハンドラー
24
- */
25
- private handleListProtectedAgents;
26
- run(): Promise<void>;
27
- }
28
- export { BlueLampProtectionSystem };
29
- //# sourceMappingURL=bluelamp-system.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bluelamp-system.d.ts","sourceRoot":"","sources":["../src/bluelamp-system.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgCH,cAAM,wBAAwB;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAc;;IAqBhC,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,aAAa;IA4FrB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,SAAS;IAcjB;;OAEG;YACW,uBAAuB;IAgCrC;;OAEG;YACW,wBAAwB;IAkEtC;;OAEG;YACW,yBAAyB;IAyEjC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAI3B;AAOD,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -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
- {"version":3,"file":"crypto-utils.js","sourceRoot":"","sources":["../src/crypto-utils.ts"],"names":[],"mappings":"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"}