bluelamp 3.0.7 → 3.0.9
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/bin/bluelamp-base +4 -7
- package/lib/mcp-server/dist/InteractiveLogin.js +27 -0
- package/lib/mcp-server/dist/PortalAuthClient.js +1 -0
- package/lib/mcp-server/dist/TokenManager.js +20 -0
- package/lib/mcp-server/dist/plugins/plugin-manager.d.ts.map +1 -1
- package/lib/mcp-server/dist/plugins/plugin-manager.js +1 -1
- package/lib/mcp-server/dist/plugins/plugin-manager.js.map +1 -1
- package/lib/mcp-server/dist/secure-mcp-server.d.ts.map +1 -1
- package/lib/mcp-server/dist/secure-mcp-server.js +18 -16
- package/lib/mcp-server/dist/secure-mcp-server.js.map +1 -1
- package/lib/mcp-server/dist/security/ApiKeyManager.d.ts.map +1 -1
- package/lib/mcp-server/dist/security/ApiKeyManager.js.map +1 -1
- package/lib/mcp-server/dist/security/PortalAuthClient.d.ts.map +1 -1
- package/lib/mcp-server/dist/security/PortalAuthClient.js +1 -205
- package/lib/mcp-server/dist/security/PortalAuthClient.js.map +1 -1
- package/lib/mcp-server/dist/security/SimpleAuthManager.js +1 -1
- package/lib/mcp-server/dist/security/SlotAuthClient.d.ts +47 -0
- package/lib/mcp-server/dist/security/SlotAuthClient.d.ts.map +1 -0
- package/lib/mcp-server/dist/security/SlotAuthClient.js +9 -0
- package/lib/mcp-server/dist/security/SlotAuthClient.js.map +1 -0
- package/lib/mcp-server/dist/security/TokenManager.d.ts.map +1 -1
- package/lib/mcp-server/dist/security/TokenManager.js.map +1 -1
- package/lib/mcp-server/node_modules/.package-lock.json +26 -0
- package/lib/mcp-server/node_modules/dotenv/CHANGELOG.md +592 -0
- package/lib/mcp-server/node_modules/dotenv/LICENSE +23 -0
- package/lib/mcp-server/node_modules/dotenv/README-es.md +405 -0
- package/lib/mcp-server/node_modules/dotenv/README.md +692 -0
- package/lib/mcp-server/node_modules/dotenv/SECURITY.md +1 -0
- package/lib/mcp-server/node_modules/dotenv/config.d.ts +1 -0
- package/lib/mcp-server/node_modules/dotenv/config.js +9 -0
- package/lib/mcp-server/node_modules/dotenv/lib/cli-options.js +17 -0
- package/lib/mcp-server/node_modules/dotenv/lib/env-options.js +28 -0
- package/lib/mcp-server/node_modules/dotenv/lib/main.d.ts +170 -0
- package/lib/mcp-server/node_modules/dotenv/lib/main.js +431 -0
- package/lib/mcp-server/node_modules/dotenv/package.json +62 -0
- package/lib/mcp-server/node_modules/typescript/LICENSE.txt +55 -0
- package/lib/mcp-server/node_modules/typescript/README.md +50 -0
- package/lib/mcp-server/node_modules/typescript/SECURITY.md +41 -0
- package/lib/mcp-server/node_modules/typescript/ThirdPartyNoticeText.txt +193 -0
- package/lib/mcp-server/node_modules/typescript/bin/tsc +2 -0
- package/lib/mcp-server/node_modules/typescript/bin/tsserver +2 -0
- package/lib/mcp-server/node_modules/typescript/lib/_tsc.js +133792 -0
- package/lib/mcp-server/node_modules/typescript/lib/_tsserver.js +659 -0
- package/lib/mcp-server/node_modules/typescript/lib/_typingsInstaller.js +222 -0
- package/lib/mcp-server/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
- package/lib/mcp-server/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
- package/lib/mcp-server/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
- package/lib/mcp-server/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
- package/lib/mcp-server/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
- package/lib/mcp-server/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
- package/lib/mcp-server/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.d.ts +22 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.es6.d.ts +23 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.float16.d.ts +443 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
- package/lib/mcp-server/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
- package/lib/mcp-server/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
- package/lib/mcp-server/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
- package/lib/mcp-server/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
- package/lib/mcp-server/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
- package/lib/mcp-server/node_modules/typescript/lib/tsc.js +8 -0
- package/lib/mcp-server/node_modules/typescript/lib/tsserver.js +8 -0
- package/lib/mcp-server/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
- package/lib/mcp-server/node_modules/typescript/lib/tsserverlibrary.js +21 -0
- package/lib/mcp-server/node_modules/typescript/lib/typesMap.json +497 -0
- package/lib/mcp-server/node_modules/typescript/lib/typescript.d.ts +11438 -0
- package/lib/mcp-server/node_modules/typescript/lib/typescript.js +200253 -0
- package/lib/mcp-server/node_modules/typescript/lib/typingsInstaller.js +8 -0
- package/lib/mcp-server/node_modules/typescript/lib/watchGuard.js +53 -0
- package/lib/mcp-server/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +2122 -0
- package/lib/mcp-server/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +2122 -0
- package/lib/mcp-server/node_modules/typescript/package.json +120 -0
- package/lib/mcp-server/package-lock.json +13 -0
- package/lib/mcp-server/package.json +1 -0
- package/lib/mcp-server/src/plugins/plugin-manager.ts +0 -146
- package/lib/mcp-server/src/secure-mcp-server.ts +21 -10
- package/lib/mcp-server/src/security/ApiKeyManager.ts +1 -1
- package/lib/mcp-server/src/security/SlotAuthClient.ts +225 -0
- package/lib/mcp-server/src/security/TokenManager.ts +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "typescript",
|
|
3
|
+
"author": "Microsoft Corp.",
|
|
4
|
+
"homepage": "https://www.typescriptlang.org/",
|
|
5
|
+
"version": "5.9.2",
|
|
6
|
+
"license": "Apache-2.0",
|
|
7
|
+
"description": "TypeScript is a language for application scale JavaScript development",
|
|
8
|
+
"keywords": [
|
|
9
|
+
"TypeScript",
|
|
10
|
+
"Microsoft",
|
|
11
|
+
"compiler",
|
|
12
|
+
"language",
|
|
13
|
+
"javascript"
|
|
14
|
+
],
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/microsoft/TypeScript/issues"
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "https://github.com/microsoft/TypeScript.git"
|
|
21
|
+
},
|
|
22
|
+
"main": "./lib/typescript.js",
|
|
23
|
+
"typings": "./lib/typescript.d.ts",
|
|
24
|
+
"bin": {
|
|
25
|
+
"tsc": "./bin/tsc",
|
|
26
|
+
"tsserver": "./bin/tsserver"
|
|
27
|
+
},
|
|
28
|
+
"engines": {
|
|
29
|
+
"node": ">=14.17"
|
|
30
|
+
},
|
|
31
|
+
"files": [
|
|
32
|
+
"bin",
|
|
33
|
+
"lib",
|
|
34
|
+
"!lib/enu",
|
|
35
|
+
"LICENSE.txt",
|
|
36
|
+
"README.md",
|
|
37
|
+
"SECURITY.md",
|
|
38
|
+
"ThirdPartyNoticeText.txt",
|
|
39
|
+
"!**/.gitattributes"
|
|
40
|
+
],
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@dprint/formatter": "^0.4.1",
|
|
43
|
+
"@dprint/typescript": "0.93.4",
|
|
44
|
+
"@esfx/canceltoken": "^1.0.0",
|
|
45
|
+
"@eslint/js": "^9.20.0",
|
|
46
|
+
"@octokit/rest": "^21.1.1",
|
|
47
|
+
"@types/chai": "^4.3.20",
|
|
48
|
+
"@types/diff": "^7.0.1",
|
|
49
|
+
"@types/minimist": "^1.2.5",
|
|
50
|
+
"@types/mocha": "^10.0.10",
|
|
51
|
+
"@types/ms": "^0.7.34",
|
|
52
|
+
"@types/node": "latest",
|
|
53
|
+
"@types/source-map-support": "^0.5.10",
|
|
54
|
+
"@types/which": "^3.0.4",
|
|
55
|
+
"@typescript-eslint/rule-tester": "^8.24.1",
|
|
56
|
+
"@typescript-eslint/type-utils": "^8.24.1",
|
|
57
|
+
"@typescript-eslint/utils": "^8.24.1",
|
|
58
|
+
"azure-devops-node-api": "^14.1.0",
|
|
59
|
+
"c8": "^10.1.3",
|
|
60
|
+
"chai": "^4.5.0",
|
|
61
|
+
"chokidar": "^4.0.3",
|
|
62
|
+
"diff": "^7.0.0",
|
|
63
|
+
"dprint": "^0.49.0",
|
|
64
|
+
"esbuild": "^0.25.0",
|
|
65
|
+
"eslint": "^9.20.1",
|
|
66
|
+
"eslint-formatter-autolinkable-stylish": "^1.4.0",
|
|
67
|
+
"eslint-plugin-regexp": "^2.7.0",
|
|
68
|
+
"fast-xml-parser": "^4.5.2",
|
|
69
|
+
"glob": "^10.4.5",
|
|
70
|
+
"globals": "^15.15.0",
|
|
71
|
+
"hereby": "^1.10.0",
|
|
72
|
+
"jsonc-parser": "^3.3.1",
|
|
73
|
+
"knip": "^5.44.4",
|
|
74
|
+
"minimist": "^1.2.8",
|
|
75
|
+
"mocha": "^10.8.2",
|
|
76
|
+
"mocha-fivemat-progress-reporter": "^0.1.0",
|
|
77
|
+
"monocart-coverage-reports": "^2.12.1",
|
|
78
|
+
"ms": "^2.1.3",
|
|
79
|
+
"picocolors": "^1.1.1",
|
|
80
|
+
"playwright": "^1.50.1",
|
|
81
|
+
"source-map-support": "^0.5.21",
|
|
82
|
+
"tslib": "^2.8.1",
|
|
83
|
+
"typescript": "^5.7.3",
|
|
84
|
+
"typescript-eslint": "^8.24.1",
|
|
85
|
+
"which": "^3.0.1"
|
|
86
|
+
},
|
|
87
|
+
"overrides": {
|
|
88
|
+
"typescript@*": "$typescript"
|
|
89
|
+
},
|
|
90
|
+
"scripts": {
|
|
91
|
+
"test": "hereby runtests-parallel --light=false",
|
|
92
|
+
"test:eslint-rules": "hereby run-eslint-rules-tests",
|
|
93
|
+
"build": "npm run build:compiler && npm run build:tests",
|
|
94
|
+
"build:compiler": "hereby local",
|
|
95
|
+
"build:tests": "hereby tests",
|
|
96
|
+
"build:tests:notypecheck": "hereby tests --no-typecheck",
|
|
97
|
+
"clean": "hereby clean",
|
|
98
|
+
"gulp": "hereby",
|
|
99
|
+
"lint": "hereby lint",
|
|
100
|
+
"knip": "hereby knip",
|
|
101
|
+
"format": "dprint fmt",
|
|
102
|
+
"setup-hooks": "node scripts/link-hooks.mjs"
|
|
103
|
+
},
|
|
104
|
+
"browser": {
|
|
105
|
+
"fs": false,
|
|
106
|
+
"os": false,
|
|
107
|
+
"path": false,
|
|
108
|
+
"crypto": false,
|
|
109
|
+
"buffer": false,
|
|
110
|
+
"source-map-support": false,
|
|
111
|
+
"inspector": false,
|
|
112
|
+
"perf_hooks": false
|
|
113
|
+
},
|
|
114
|
+
"packageManager": "npm@8.19.4",
|
|
115
|
+
"volta": {
|
|
116
|
+
"node": "20.1.0",
|
|
117
|
+
"npm": "8.19.4"
|
|
118
|
+
},
|
|
119
|
+
"gitHead": "5be33469d551655d878876faa9e30aa3b49f8ee9"
|
|
120
|
+
}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
12
12
|
"@types/glob": "^8.1.0",
|
|
13
13
|
"ajv": "^8.17.1",
|
|
14
|
+
"dotenv": "^17.2.2",
|
|
14
15
|
"glob": "^11.0.3",
|
|
15
16
|
"jsonwebtoken": "^9.0.2",
|
|
16
17
|
"node-fetch": "^3.3.2",
|
|
@@ -377,6 +378,18 @@
|
|
|
377
378
|
"node": ">= 0.8"
|
|
378
379
|
}
|
|
379
380
|
},
|
|
381
|
+
"node_modules/dotenv": {
|
|
382
|
+
"version": "17.2.2",
|
|
383
|
+
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.2.tgz",
|
|
384
|
+
"integrity": "sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==",
|
|
385
|
+
"license": "BSD-2-Clause",
|
|
386
|
+
"engines": {
|
|
387
|
+
"node": ">=12"
|
|
388
|
+
},
|
|
389
|
+
"funding": {
|
|
390
|
+
"url": "https://dotenvx.com"
|
|
391
|
+
}
|
|
392
|
+
},
|
|
380
393
|
"node_modules/dunder-proto": {
|
|
381
394
|
"version": "1.0.1",
|
|
382
395
|
"resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
|
|
@@ -265,152 +265,6 @@ export class PluginManager {
|
|
|
265
265
|
}
|
|
266
266
|
}
|
|
267
267
|
]
|
|
268
|
-
},
|
|
269
|
-
{
|
|
270
|
-
id: 'portal',
|
|
271
|
-
name: 'Portal Integration',
|
|
272
|
-
version: '1.0.0',
|
|
273
|
-
category: 'Integration',
|
|
274
|
-
description: 'Portal APIとの統合機能(エージェント委譲、知識注入、認証管理)',
|
|
275
|
-
authType: 'token',
|
|
276
|
-
loadPriority: 'high',
|
|
277
|
-
tools: [
|
|
278
|
-
{
|
|
279
|
-
name: 'delegate_to_agent',
|
|
280
|
-
description: '専門エージェントにタスクを委譲します。動的スロット解決により適切なオーケストレーターに接続します。',
|
|
281
|
-
inputSchema: {
|
|
282
|
-
type: 'object',
|
|
283
|
-
properties: {
|
|
284
|
-
agentName: {
|
|
285
|
-
type: 'string',
|
|
286
|
-
description: 'エージェント名(orchestrator, orchestrator2など)'
|
|
287
|
-
},
|
|
288
|
-
token: {
|
|
289
|
-
type: 'string',
|
|
290
|
-
description: '認証トークン(オプション、自動取得される)'
|
|
291
|
-
}
|
|
292
|
-
},
|
|
293
|
-
required: ['agentName']
|
|
294
|
-
},
|
|
295
|
-
outputExample: {
|
|
296
|
-
success: true,
|
|
297
|
-
content: [
|
|
298
|
-
{
|
|
299
|
-
type: 'text',
|
|
300
|
-
text: '✅ orchestrator2 にタスクを委譲しました\\n🔗 エンドポイント: https://orchestrator-slot2.example.com'
|
|
301
|
-
}
|
|
302
|
-
]
|
|
303
|
-
}
|
|
304
|
-
},
|
|
305
|
-
{
|
|
306
|
-
name: 'inject_knowledge',
|
|
307
|
-
description: 'Portal APIから専門知識を注入します。キーワードに基づいて関連する知識ベースからコンテンツを取得します。',
|
|
308
|
-
inputSchema: {
|
|
309
|
-
type: 'object',
|
|
310
|
-
properties: {
|
|
311
|
-
keyword: {
|
|
312
|
-
type: 'string',
|
|
313
|
-
description: '検索キーワード'
|
|
314
|
-
},
|
|
315
|
-
context: {
|
|
316
|
-
type: 'string',
|
|
317
|
-
description: '追加コンテキスト(オプション)'
|
|
318
|
-
},
|
|
319
|
-
level: {
|
|
320
|
-
type: 'string',
|
|
321
|
-
description: '知識の詳細レベル',
|
|
322
|
-
default: 'detailed'
|
|
323
|
-
}
|
|
324
|
-
},
|
|
325
|
-
required: ['keyword']
|
|
326
|
-
},
|
|
327
|
-
outputExample: {
|
|
328
|
-
success: true,
|
|
329
|
-
content: [
|
|
330
|
-
{
|
|
331
|
-
type: 'text',
|
|
332
|
-
text: '🧠 専門知識を注入しました\\n🔍 キーワード: React\\n📚 知識内容: Reactは...'
|
|
333
|
-
}
|
|
334
|
-
]
|
|
335
|
-
}
|
|
336
|
-
},
|
|
337
|
-
{
|
|
338
|
-
name: 'save_knowledge',
|
|
339
|
-
description: '暗号化された知識を保存します',
|
|
340
|
-
inputSchema: {
|
|
341
|
-
type: 'object',
|
|
342
|
-
properties: {
|
|
343
|
-
knowledge: {
|
|
344
|
-
type: 'string',
|
|
345
|
-
description: '保存する知識内容'
|
|
346
|
-
},
|
|
347
|
-
identifier: {
|
|
348
|
-
type: 'string',
|
|
349
|
-
description: '知識の識別子'
|
|
350
|
-
},
|
|
351
|
-
token: {
|
|
352
|
-
type: 'string',
|
|
353
|
-
description: '認証トークン'
|
|
354
|
-
}
|
|
355
|
-
},
|
|
356
|
-
required: ['knowledge', 'identifier', 'token']
|
|
357
|
-
},
|
|
358
|
-
outputExample: {
|
|
359
|
-
success: true,
|
|
360
|
-
content: [
|
|
361
|
-
{
|
|
362
|
-
type: 'text',
|
|
363
|
-
text: '💾 知識を暗号化して保存しました'
|
|
364
|
-
}
|
|
365
|
-
]
|
|
366
|
-
}
|
|
367
|
-
},
|
|
368
|
-
{
|
|
369
|
-
name: 'list_prompts',
|
|
370
|
-
description: '利用可能な暗号化プロンプトテンプレートを一覧表示します',
|
|
371
|
-
inputSchema: {
|
|
372
|
-
type: 'object',
|
|
373
|
-
properties: {
|
|
374
|
-
category: {
|
|
375
|
-
type: 'string',
|
|
376
|
-
description: 'カテゴリフィルター(オプション)'
|
|
377
|
-
},
|
|
378
|
-
token: {
|
|
379
|
-
type: 'string',
|
|
380
|
-
description: '認証トークン'
|
|
381
|
-
}
|
|
382
|
-
},
|
|
383
|
-
required: ['token']
|
|
384
|
-
},
|
|
385
|
-
outputExample: {
|
|
386
|
-
success: true,
|
|
387
|
-
content: [
|
|
388
|
-
{
|
|
389
|
-
type: 'text',
|
|
390
|
-
text: '📋 利用可能なプロンプト: システムアーキテクト, UI/UXデザイナー, 実装エージェント'
|
|
391
|
-
}
|
|
392
|
-
]
|
|
393
|
-
}
|
|
394
|
-
},
|
|
395
|
-
{
|
|
396
|
-
name: 'get_debug_log_path',
|
|
397
|
-
description: 'デバッグログファイルのパスを取得します',
|
|
398
|
-
inputSchema: {
|
|
399
|
-
type: 'object',
|
|
400
|
-
properties: {},
|
|
401
|
-
required: []
|
|
402
|
-
},
|
|
403
|
-
outputExample: {
|
|
404
|
-
success: true,
|
|
405
|
-
content: [
|
|
406
|
-
{
|
|
407
|
-
type: 'text',
|
|
408
|
-
text: 'Debug log path: /tmp/portal-debug-123456.log'
|
|
409
|
-
}
|
|
410
|
-
]
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
]
|
|
414
268
|
}
|
|
415
269
|
// 将来的には他のプラグインもここに追加
|
|
416
270
|
// - Notion, Google Calendar, Slack, etc.
|
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
* 暗号化されたプロンプトの管理と配信
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
// Load environment variables from .env.local
|
|
7
|
+
import dotenv from 'dotenv';
|
|
8
|
+
import path from 'path';
|
|
9
|
+
|
|
10
|
+
// Load .env.local from current working directory
|
|
11
|
+
const envPath = path.join(process.cwd(), '.env.local');
|
|
12
|
+
dotenv.config({ path: envPath });
|
|
13
|
+
|
|
6
14
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
7
15
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
8
16
|
import {
|
|
@@ -13,7 +21,6 @@ import {
|
|
|
13
21
|
} from "@modelcontextprotocol/sdk/types.js";
|
|
14
22
|
import { CryptoUtils } from './crypto-utils.js';
|
|
15
23
|
import * as fs from 'fs';
|
|
16
|
-
import * as path from 'path';
|
|
17
24
|
import * as os from 'os';
|
|
18
25
|
import { pluginManager } from './plugins/plugin-manager.js';
|
|
19
26
|
|
|
@@ -139,7 +146,7 @@ export class SecureMCPServer {
|
|
|
139
146
|
const packageRoot = path.dirname(path.dirname(path.dirname(__dirname)));
|
|
140
147
|
const securityPath = path.join(packageRoot, 'lib/mcp-server/dist/security');
|
|
141
148
|
|
|
142
|
-
const module =
|
|
149
|
+
const module = require(`${securityPath}/SimpleAuthManager.js`);
|
|
143
150
|
const token = await module.SimpleAuthManager.getToken();
|
|
144
151
|
|
|
145
152
|
if (token && token.startsWith('cli_')) {
|
|
@@ -171,7 +178,7 @@ export class SecureMCPServer {
|
|
|
171
178
|
const securityPath = path.join(packageRoot, 'lib/mcp-server/dist/security');
|
|
172
179
|
|
|
173
180
|
try {
|
|
174
|
-
const module =
|
|
181
|
+
const module = require(`${securityPath}/SimpleAuthManager.js`);
|
|
175
182
|
const token = await module.SimpleAuthManager.getToken();
|
|
176
183
|
if (token && token.startsWith('cli_')) {
|
|
177
184
|
return token;
|
|
@@ -386,7 +393,7 @@ export class SecureMCPServer {
|
|
|
386
393
|
*/
|
|
387
394
|
private async fetchFromPortalAPI(keyword: string, token: string): Promise<string | null> {
|
|
388
395
|
try {
|
|
389
|
-
const portalApiUrl = process.env.BLUELAMP_PORTAL_API_URL || 'https://bluelamp-portal-
|
|
396
|
+
const portalApiUrl = process.env.BLUELAMP_PORTAL_API_URL || 'https://bluelamp-portal-6clpzmy5pa-an.a.run.app/api/cli/prompts/knowledge-injection';
|
|
390
397
|
const apiEndpoint = `${portalApiUrl}/${encodeURIComponent(keyword)}`;
|
|
391
398
|
|
|
392
399
|
this.debugLog(`Portal API request:`, {
|
|
@@ -400,10 +407,14 @@ export class SecureMCPServer {
|
|
|
400
407
|
const timeoutId = setTimeout(() => controller.abort(), 30000);
|
|
401
408
|
|
|
402
409
|
// Portal APIに直接リクエスト
|
|
410
|
+
// スロット番号を環境変数から取得
|
|
411
|
+
const slotNumber = process.env.BLUELAMP_SLOT_NUMBER || '1';
|
|
412
|
+
|
|
403
413
|
const response = await fetch(apiEndpoint, {
|
|
404
414
|
method: 'GET',
|
|
405
415
|
headers: {
|
|
406
416
|
'X-CLI-Token': token,
|
|
417
|
+
'X-Current-Slot': slotNumber,
|
|
407
418
|
'Content-Type': 'application/json',
|
|
408
419
|
'User-Agent': 'BlueLamp-MCP-Server/1.0'
|
|
409
420
|
},
|
|
@@ -427,13 +438,13 @@ export class SecureMCPServer {
|
|
|
427
438
|
throw new Error(`Portal API error: ${response.status} ${response.statusText}`);
|
|
428
439
|
}
|
|
429
440
|
|
|
430
|
-
//
|
|
431
|
-
const
|
|
432
|
-
this.debugLog(`Portal API
|
|
441
|
+
// レスポンスをJSONとして取得
|
|
442
|
+
const responseData = await response.json();
|
|
443
|
+
this.debugLog(`Portal API JSON response:`, responseData);
|
|
433
444
|
|
|
434
|
-
//
|
|
435
|
-
if (
|
|
436
|
-
return
|
|
445
|
+
// success: trueでdata.contentがあれば返す
|
|
446
|
+
if (responseData && responseData.success && responseData.data && responseData.data.content) {
|
|
447
|
+
return responseData.data.content;
|
|
437
448
|
}
|
|
438
449
|
|
|
439
450
|
this.debugLog(`Empty response from Portal API`);
|
|
@@ -21,7 +21,7 @@ interface ApiKeyCache {
|
|
|
21
21
|
export class ApiKeyManager {
|
|
22
22
|
private static cache: ApiKeyCache = {};
|
|
23
23
|
private static DEFAULT_TTL = 5 * 60 * 1000; // 5分キャッシュ
|
|
24
|
-
private static PORTAL_API_URL = process.env.PORTAL_URL || 'https://bluelamp-portal-
|
|
24
|
+
private static PORTAL_API_URL = process.env.PORTAL_URL || 'https://bluelamp-portal-6clpzmy5pa-an.a.run.app';
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* サービスのAPIキーを動的に取得
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* スロット認証クライアント
|
|
3
|
+
* CLIトークンを使用してスロット利用権限を検証
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import https from 'https';
|
|
7
|
+
import http from 'http';
|
|
8
|
+
|
|
9
|
+
export interface SlotAuthResult {
|
|
10
|
+
success: boolean;
|
|
11
|
+
slotNumber: number;
|
|
12
|
+
status: 'available' | 'authenticated' | 'expired' | 'not_configured';
|
|
13
|
+
message?: string;
|
|
14
|
+
error?: string;
|
|
15
|
+
orchestrator?: {
|
|
16
|
+
id: string;
|
|
17
|
+
name: string;
|
|
18
|
+
};
|
|
19
|
+
license?: {
|
|
20
|
+
id: string;
|
|
21
|
+
pricingPlan: string;
|
|
22
|
+
expiryDate: string | null;
|
|
23
|
+
daysRemaining: number | null;
|
|
24
|
+
freeUsage: {
|
|
25
|
+
total: number;
|
|
26
|
+
remaining: number;
|
|
27
|
+
isFreeTier: boolean;
|
|
28
|
+
};
|
|
29
|
+
usageStats: {
|
|
30
|
+
monthly: number;
|
|
31
|
+
daily: number;
|
|
32
|
+
total: number;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export class SlotAuthClient {
|
|
38
|
+
|
|
39
|
+
private static readonly API_BASE = 'https://bluelamp-portal-6clpzmy5pa-an.a.run.app/api/cli';
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* 指定されたスロットの認証を実行
|
|
43
|
+
*/
|
|
44
|
+
static async authenticateSlot(cliToken: string, slotNumber: number): Promise<SlotAuthResult> {
|
|
45
|
+
return new Promise((resolve, reject) => {
|
|
46
|
+
const url = `${this.API_BASE}/slots/${slotNumber}`;
|
|
47
|
+
const urlObj = new URL(url);
|
|
48
|
+
const options = {
|
|
49
|
+
hostname: urlObj.hostname,
|
|
50
|
+
port: urlObj.port || (urlObj.protocol === 'https:' ? 443 : 80),
|
|
51
|
+
path: urlObj.pathname,
|
|
52
|
+
method: 'GET',
|
|
53
|
+
headers: {
|
|
54
|
+
'Authorization': `Bearer ${cliToken}`,
|
|
55
|
+
'Content-Type': 'application/json',
|
|
56
|
+
'User-Agent': 'BlueLamp-CLI/1.0.0'
|
|
57
|
+
},
|
|
58
|
+
timeout: 15000
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const client = urlObj.protocol === 'https:' ? https : http;
|
|
62
|
+
|
|
63
|
+
const req = client.request(options, (res) => {
|
|
64
|
+
let data = '';
|
|
65
|
+
|
|
66
|
+
res.on('data', (chunk) => {
|
|
67
|
+
data += chunk;
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
res.on('end', () => {
|
|
71
|
+
try {
|
|
72
|
+
if (res.headers['content-type']?.includes('application/json')) {
|
|
73
|
+
const response = JSON.parse(data);
|
|
74
|
+
|
|
75
|
+
if (response.success) {
|
|
76
|
+
resolve({
|
|
77
|
+
success: true,
|
|
78
|
+
slotNumber: response.slotNumber,
|
|
79
|
+
status: response.status,
|
|
80
|
+
message: response.message,
|
|
81
|
+
orchestrator: response.orchestrator,
|
|
82
|
+
license: response.license
|
|
83
|
+
});
|
|
84
|
+
} else {
|
|
85
|
+
resolve({
|
|
86
|
+
success: false,
|
|
87
|
+
slotNumber: slotNumber,
|
|
88
|
+
status: 'expired',
|
|
89
|
+
error: response.error,
|
|
90
|
+
message: response.message
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
} else {
|
|
94
|
+
// HTMLレスポンスの場合(エラー)
|
|
95
|
+
resolve({
|
|
96
|
+
success: false,
|
|
97
|
+
slotNumber: slotNumber,
|
|
98
|
+
status: 'not_configured',
|
|
99
|
+
error: 'ENDPOINT_NOT_FOUND',
|
|
100
|
+
message: 'スロット認証エンドポイントが見つかりません'
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
} catch (parseError) {
|
|
104
|
+
resolve({
|
|
105
|
+
success: false,
|
|
106
|
+
slotNumber: slotNumber,
|
|
107
|
+
status: 'not_configured',
|
|
108
|
+
error: 'PARSE_ERROR',
|
|
109
|
+
message: `レスポンスの解析に失敗しました: ${parseError}`
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
req.on('error', (error) => {
|
|
116
|
+
resolve({
|
|
117
|
+
success: false,
|
|
118
|
+
slotNumber: slotNumber,
|
|
119
|
+
status: 'not_configured',
|
|
120
|
+
error: 'NETWORK_ERROR',
|
|
121
|
+
message: `ネットワークエラー: ${error.message}`
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
req.on('timeout', () => {
|
|
126
|
+
req.destroy();
|
|
127
|
+
resolve({
|
|
128
|
+
success: false,
|
|
129
|
+
slotNumber: slotNumber,
|
|
130
|
+
status: 'not_configured',
|
|
131
|
+
error: 'TIMEOUT',
|
|
132
|
+
message: 'スロット認証がタイムアウトしました'
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
req.end();
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* 複数スロットの一括認証(必要に応じて実装)
|
|
142
|
+
*/
|
|
143
|
+
static async authenticateSlots(cliToken: string, slotNumbers: number[]): Promise<SlotAuthResult[]> {
|
|
144
|
+
const results = await Promise.allSettled(
|
|
145
|
+
slotNumbers.map(slotNumber => this.authenticateSlot(cliToken, slotNumber))
|
|
146
|
+
);
|
|
147
|
+
|
|
148
|
+
return results.map((result, index) => {
|
|
149
|
+
if (result.status === 'fulfilled') {
|
|
150
|
+
return result.value;
|
|
151
|
+
} else {
|
|
152
|
+
return {
|
|
153
|
+
success: false,
|
|
154
|
+
slotNumber: slotNumbers[index],
|
|
155
|
+
status: 'not_configured' as const,
|
|
156
|
+
error: 'PROMISE_REJECTED',
|
|
157
|
+
message: `スロット${slotNumbers[index]}の認証が失敗しました: ${result.reason}`
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* スロット認証結果の表示
|
|
165
|
+
*/
|
|
166
|
+
static displaySlotAuthResult(result: SlotAuthResult): void {
|
|
167
|
+
const slotNum = result.slotNumber;
|
|
168
|
+
|
|
169
|
+
if (result.success) {
|
|
170
|
+
switch (result.status) {
|
|
171
|
+
case 'available':
|
|
172
|
+
console.log(`✅ スロット${slotNum}: 利用可能(未割り当て)`);
|
|
173
|
+
break;
|
|
174
|
+
|
|
175
|
+
case 'authenticated':
|
|
176
|
+
console.log(`✅ スロット${slotNum}: 認証成功`);
|
|
177
|
+
if (result.orchestrator) {
|
|
178
|
+
console.log(` オーケストレーター: ${result.orchestrator.name}`);
|
|
179
|
+
}
|
|
180
|
+
if (result.license) {
|
|
181
|
+
console.log(` プラン: ${result.license.pricingPlan}`);
|
|
182
|
+
if (result.license.freeUsage.isFreeTier) {
|
|
183
|
+
console.log(` 無料使用回数: ${result.license.freeUsage.remaining}/${result.license.freeUsage.total}`);
|
|
184
|
+
}
|
|
185
|
+
if (result.license.expiryDate) {
|
|
186
|
+
console.log(` 有効期限: ${result.license.expiryDate} (残り${result.license.daysRemaining}日)`);
|
|
187
|
+
} else {
|
|
188
|
+
console.log(` 有効期限: 無制限`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
} else {
|
|
194
|
+
switch (result.error) {
|
|
195
|
+
case 'LICENSE_EXPIRED':
|
|
196
|
+
console.log(`❌ スロット${slotNum}: ライセンス期限切れ`);
|
|
197
|
+
break;
|
|
198
|
+
|
|
199
|
+
case 'FREE_USAGE_EXHAUSTED':
|
|
200
|
+
console.log(`❌ スロット${slotNum}: 無料使用回数を超過`);
|
|
201
|
+
break;
|
|
202
|
+
|
|
203
|
+
case 'USAGE_LIMIT_EXCEEDED':
|
|
204
|
+
console.log(`❌ スロット${slotNum}: 使用制限に到達`);
|
|
205
|
+
break;
|
|
206
|
+
|
|
207
|
+
case 'SLOT_NOT_CONFIGURED':
|
|
208
|
+
console.log(`⚠️ スロット${slotNum}: 未設定`);
|
|
209
|
+
break;
|
|
210
|
+
|
|
211
|
+
case 'LICENSE_NOT_FOUND':
|
|
212
|
+
console.log(`⚠️ スロット${slotNum}: ライセンスが見つかりません`);
|
|
213
|
+
break;
|
|
214
|
+
|
|
215
|
+
case 'ENDPOINT_NOT_FOUND':
|
|
216
|
+
console.log(`⚠️ スロット${slotNum}: 認証エンドポイントが利用できません`);
|
|
217
|
+
break;
|
|
218
|
+
|
|
219
|
+
default:
|
|
220
|
+
console.log(`❌ スロット${slotNum}: ${result.message || '認証エラー'}`);
|
|
221
|
+
break;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
@@ -18,7 +18,7 @@ import { URL } from 'url';
|
|
|
18
18
|
|
|
19
19
|
export class TokenManager {
|
|
20
20
|
static TOKEN_FILE_PATH = path.join(os.homedir(), '.bluelamp', 'portal-token.enc');
|
|
21
|
-
static PORTAL_API_URL = 'https://bluelamp-portal-
|
|
21
|
+
static PORTAL_API_URL = 'https://bluelamp-portal-6clpzmy5pa-an.a.run.app/api/cli/verify';
|
|
22
22
|
static ENCRYPTION_KEY = 'bluelamp-portal-token-key-2024'; // Portal統合対応
|
|
23
23
|
static REQUEST_TIMEOUT = 10000; // 10秒
|
|
24
24
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bluelamp",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.9",
|
|
4
4
|
"description": "BlueLamp - AI Agent Orchestration System with Production Portal Integration",
|
|
5
5
|
"main": "lib/mcp-server/dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -126,6 +126,7 @@
|
|
|
126
126
|
"dependencies": {
|
|
127
127
|
"@leonardo-ai/sdk": "^4.20.0",
|
|
128
128
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
129
|
+
"bluelamp": "^3.0.8",
|
|
129
130
|
"jsonwebtoken": "^9.0.2",
|
|
130
131
|
"node-fetch": "^3.3.2",
|
|
131
132
|
"sharp": "^0.33.0",
|