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.
Files changed (175) hide show
  1. package/bin/bluelamp-base +4 -7
  2. package/lib/mcp-server/dist/InteractiveLogin.js +27 -0
  3. package/lib/mcp-server/dist/PortalAuthClient.js +1 -0
  4. package/lib/mcp-server/dist/TokenManager.js +20 -0
  5. package/lib/mcp-server/dist/plugins/plugin-manager.d.ts.map +1 -1
  6. package/lib/mcp-server/dist/plugins/plugin-manager.js +1 -1
  7. package/lib/mcp-server/dist/plugins/plugin-manager.js.map +1 -1
  8. package/lib/mcp-server/dist/secure-mcp-server.d.ts.map +1 -1
  9. package/lib/mcp-server/dist/secure-mcp-server.js +18 -16
  10. package/lib/mcp-server/dist/secure-mcp-server.js.map +1 -1
  11. package/lib/mcp-server/dist/security/ApiKeyManager.d.ts.map +1 -1
  12. package/lib/mcp-server/dist/security/ApiKeyManager.js.map +1 -1
  13. package/lib/mcp-server/dist/security/PortalAuthClient.d.ts.map +1 -1
  14. package/lib/mcp-server/dist/security/PortalAuthClient.js +1 -205
  15. package/lib/mcp-server/dist/security/PortalAuthClient.js.map +1 -1
  16. package/lib/mcp-server/dist/security/SimpleAuthManager.js +1 -1
  17. package/lib/mcp-server/dist/security/SlotAuthClient.d.ts +47 -0
  18. package/lib/mcp-server/dist/security/SlotAuthClient.d.ts.map +1 -0
  19. package/lib/mcp-server/dist/security/SlotAuthClient.js +9 -0
  20. package/lib/mcp-server/dist/security/SlotAuthClient.js.map +1 -0
  21. package/lib/mcp-server/dist/security/TokenManager.d.ts.map +1 -1
  22. package/lib/mcp-server/dist/security/TokenManager.js.map +1 -1
  23. package/lib/mcp-server/node_modules/.package-lock.json +26 -0
  24. package/lib/mcp-server/node_modules/dotenv/CHANGELOG.md +592 -0
  25. package/lib/mcp-server/node_modules/dotenv/LICENSE +23 -0
  26. package/lib/mcp-server/node_modules/dotenv/README-es.md +405 -0
  27. package/lib/mcp-server/node_modules/dotenv/README.md +692 -0
  28. package/lib/mcp-server/node_modules/dotenv/SECURITY.md +1 -0
  29. package/lib/mcp-server/node_modules/dotenv/config.d.ts +1 -0
  30. package/lib/mcp-server/node_modules/dotenv/config.js +9 -0
  31. package/lib/mcp-server/node_modules/dotenv/lib/cli-options.js +17 -0
  32. package/lib/mcp-server/node_modules/dotenv/lib/env-options.js +28 -0
  33. package/lib/mcp-server/node_modules/dotenv/lib/main.d.ts +170 -0
  34. package/lib/mcp-server/node_modules/dotenv/lib/main.js +431 -0
  35. package/lib/mcp-server/node_modules/dotenv/package.json +62 -0
  36. package/lib/mcp-server/node_modules/typescript/LICENSE.txt +55 -0
  37. package/lib/mcp-server/node_modules/typescript/README.md +50 -0
  38. package/lib/mcp-server/node_modules/typescript/SECURITY.md +41 -0
  39. package/lib/mcp-server/node_modules/typescript/ThirdPartyNoticeText.txt +193 -0
  40. package/lib/mcp-server/node_modules/typescript/bin/tsc +2 -0
  41. package/lib/mcp-server/node_modules/typescript/bin/tsserver +2 -0
  42. package/lib/mcp-server/node_modules/typescript/lib/_tsc.js +133792 -0
  43. package/lib/mcp-server/node_modules/typescript/lib/_tsserver.js +659 -0
  44. package/lib/mcp-server/node_modules/typescript/lib/_typingsInstaller.js +222 -0
  45. package/lib/mcp-server/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
  46. package/lib/mcp-server/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
  47. package/lib/mcp-server/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
  48. package/lib/mcp-server/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
  49. package/lib/mcp-server/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
  50. package/lib/mcp-server/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
  51. package/lib/mcp-server/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
  52. package/lib/mcp-server/node_modules/typescript/lib/lib.d.ts +22 -0
  53. package/lib/mcp-server/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
  54. package/lib/mcp-server/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
  55. package/lib/mcp-server/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
  56. package/lib/mcp-server/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
  57. package/lib/mcp-server/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
  58. package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
  59. package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
  60. package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
  61. package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
  62. package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
  63. package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
  64. package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
  65. package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
  66. package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
  67. package/lib/mcp-server/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
  68. package/lib/mcp-server/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
  69. package/lib/mcp-server/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
  70. package/lib/mcp-server/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
  71. package/lib/mcp-server/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
  72. package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
  73. package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
  74. package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
  75. package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
  76. package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
  77. package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
  78. package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
  79. package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
  80. package/lib/mcp-server/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
  81. package/lib/mcp-server/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
  82. package/lib/mcp-server/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
  83. package/lib/mcp-server/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
  84. package/lib/mcp-server/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
  85. package/lib/mcp-server/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
  86. package/lib/mcp-server/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
  87. package/lib/mcp-server/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
  88. package/lib/mcp-server/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
  89. package/lib/mcp-server/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
  90. package/lib/mcp-server/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
  91. package/lib/mcp-server/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
  92. package/lib/mcp-server/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
  93. package/lib/mcp-server/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
  94. package/lib/mcp-server/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
  95. package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
  96. package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
  97. package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
  98. package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
  99. package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
  100. package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
  101. package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
  102. package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
  103. package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
  104. package/lib/mcp-server/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
  105. package/lib/mcp-server/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
  106. package/lib/mcp-server/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
  107. package/lib/mcp-server/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
  108. package/lib/mcp-server/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
  109. package/lib/mcp-server/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
  110. package/lib/mcp-server/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
  111. package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
  112. package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
  113. package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
  114. package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
  115. package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
  116. package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
  117. package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
  118. package/lib/mcp-server/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
  119. package/lib/mcp-server/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
  120. package/lib/mcp-server/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
  121. package/lib/mcp-server/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
  122. package/lib/mcp-server/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
  123. package/lib/mcp-server/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
  124. package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
  125. package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
  126. package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
  127. package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
  128. package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
  129. package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
  130. package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
  131. package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
  132. package/lib/mcp-server/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
  133. package/lib/mcp-server/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
  134. package/lib/mcp-server/node_modules/typescript/lib/lib.es6.d.ts +23 -0
  135. package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
  136. package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
  137. package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
  138. package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
  139. package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
  140. package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
  141. package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.float16.d.ts +443 -0
  142. package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
  143. package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
  144. package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
  145. package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
  146. package/lib/mcp-server/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
  147. package/lib/mcp-server/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
  148. package/lib/mcp-server/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
  149. package/lib/mcp-server/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
  150. package/lib/mcp-server/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
  151. package/lib/mcp-server/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
  152. package/lib/mcp-server/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
  153. package/lib/mcp-server/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
  154. package/lib/mcp-server/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
  155. package/lib/mcp-server/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
  156. package/lib/mcp-server/node_modules/typescript/lib/tsc.js +8 -0
  157. package/lib/mcp-server/node_modules/typescript/lib/tsserver.js +8 -0
  158. package/lib/mcp-server/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
  159. package/lib/mcp-server/node_modules/typescript/lib/tsserverlibrary.js +21 -0
  160. package/lib/mcp-server/node_modules/typescript/lib/typesMap.json +497 -0
  161. package/lib/mcp-server/node_modules/typescript/lib/typescript.d.ts +11438 -0
  162. package/lib/mcp-server/node_modules/typescript/lib/typescript.js +200253 -0
  163. package/lib/mcp-server/node_modules/typescript/lib/typingsInstaller.js +8 -0
  164. package/lib/mcp-server/node_modules/typescript/lib/watchGuard.js +53 -0
  165. package/lib/mcp-server/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +2122 -0
  166. package/lib/mcp-server/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +2122 -0
  167. package/lib/mcp-server/node_modules/typescript/package.json +120 -0
  168. package/lib/mcp-server/package-lock.json +13 -0
  169. package/lib/mcp-server/package.json +1 -0
  170. package/lib/mcp-server/src/plugins/plugin-manager.ts +0 -146
  171. package/lib/mcp-server/src/secure-mcp-server.ts +21 -10
  172. package/lib/mcp-server/src/security/ApiKeyManager.ts +1 -1
  173. package/lib/mcp-server/src/security/SlotAuthClient.ts +225 -0
  174. package/lib/mcp-server/src/security/TokenManager.ts +1 -1
  175. 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",
@@ -6,6 +6,7 @@
6
6
  "@modelcontextprotocol/sdk": "^1.0.0",
7
7
  "@types/glob": "^8.1.0",
8
8
  "ajv": "^8.17.1",
9
+ "dotenv": "^17.2.2",
9
10
  "glob": "^11.0.3",
10
11
  "jsonwebtoken": "^9.0.2",
11
12
  "node-fetch": "^3.3.2",
@@ -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 = await import(`file://${securityPath}/SimpleAuthManager.js`);
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 = await import(`file://${securityPath}/SimpleAuthManager.js`);
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-235426778039.asia-northeast1.run.app/api/cli/prompts/knowledge-injection';
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
- // レスポンスをテキストとして取得(JSONパースしない)
431
- const responseText = await response.text();
432
- this.debugLog(`Portal API raw response:`, responseText.substring(0, 200) + '...');
441
+ // レスポンスをJSONとして取得
442
+ const responseData = await response.json();
443
+ this.debugLog(`Portal API JSON response:`, responseData);
433
444
 
434
- // 空でなければそのまま返す
435
- if (responseText && responseText.trim()) {
436
- return responseText.trim();
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-235426778039.asia-northeast1.run.app';
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-235426778039.asia-northeast1.run.app/api/cli/verify';
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.7",
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",