bluelamp 2.0.9 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/README.md +12 -25
  2. package/bin/bluelamp +368 -0
  3. package/bin/bluelamp-base +368 -0
  4. package/bin/bluelamp10 +368 -0
  5. package/bin/bluelamp100 +368 -0
  6. package/bin/bluelamp11 +368 -0
  7. package/bin/bluelamp12 +368 -0
  8. package/bin/bluelamp13 +368 -0
  9. package/bin/bluelamp14 +368 -0
  10. package/bin/bluelamp15 +368 -0
  11. package/bin/bluelamp16 +368 -0
  12. package/bin/bluelamp17 +368 -0
  13. package/bin/bluelamp18 +368 -0
  14. package/bin/bluelamp19 +368 -0
  15. package/bin/bluelamp2 +368 -0
  16. package/bin/bluelamp20 +368 -0
  17. package/bin/bluelamp21 +368 -0
  18. package/bin/bluelamp22 +368 -0
  19. package/bin/bluelamp23 +368 -0
  20. package/bin/bluelamp24 +368 -0
  21. package/bin/bluelamp25 +368 -0
  22. package/bin/bluelamp26 +368 -0
  23. package/bin/bluelamp27 +368 -0
  24. package/bin/bluelamp28 +368 -0
  25. package/bin/bluelamp29 +368 -0
  26. package/bin/bluelamp3 +368 -0
  27. package/bin/bluelamp30 +368 -0
  28. package/bin/bluelamp31 +368 -0
  29. package/bin/bluelamp32 +368 -0
  30. package/bin/bluelamp33 +368 -0
  31. package/bin/bluelamp34 +368 -0
  32. package/bin/bluelamp35 +368 -0
  33. package/bin/bluelamp36 +368 -0
  34. package/bin/bluelamp37 +368 -0
  35. package/bin/bluelamp38 +368 -0
  36. package/bin/bluelamp39 +368 -0
  37. package/bin/bluelamp4 +368 -0
  38. package/bin/bluelamp40 +368 -0
  39. package/bin/bluelamp41 +368 -0
  40. package/bin/bluelamp42 +368 -0
  41. package/bin/bluelamp43 +368 -0
  42. package/bin/bluelamp44 +368 -0
  43. package/bin/bluelamp45 +368 -0
  44. package/bin/bluelamp46 +368 -0
  45. package/bin/bluelamp47 +368 -0
  46. package/bin/bluelamp48 +368 -0
  47. package/bin/bluelamp49 +368 -0
  48. package/bin/bluelamp5 +368 -0
  49. package/bin/bluelamp50 +368 -0
  50. package/bin/bluelamp51 +368 -0
  51. package/bin/bluelamp52 +368 -0
  52. package/bin/bluelamp53 +368 -0
  53. package/bin/bluelamp54 +368 -0
  54. package/bin/bluelamp55 +368 -0
  55. package/bin/bluelamp56 +368 -0
  56. package/bin/bluelamp57 +368 -0
  57. package/bin/bluelamp58 +368 -0
  58. package/bin/bluelamp59 +368 -0
  59. package/bin/bluelamp6 +368 -0
  60. package/bin/bluelamp60 +368 -0
  61. package/bin/bluelamp61 +368 -0
  62. package/bin/bluelamp62 +368 -0
  63. package/bin/bluelamp63 +368 -0
  64. package/bin/bluelamp64 +368 -0
  65. package/bin/bluelamp65 +368 -0
  66. package/bin/bluelamp66 +368 -0
  67. package/bin/bluelamp67 +368 -0
  68. package/bin/bluelamp68 +368 -0
  69. package/bin/bluelamp69 +368 -0
  70. package/bin/bluelamp7 +368 -0
  71. package/bin/bluelamp70 +368 -0
  72. package/bin/bluelamp71 +368 -0
  73. package/bin/bluelamp72 +368 -0
  74. package/bin/bluelamp73 +368 -0
  75. package/bin/bluelamp74 +368 -0
  76. package/bin/bluelamp75 +368 -0
  77. package/bin/bluelamp76 +368 -0
  78. package/bin/bluelamp77 +368 -0
  79. package/bin/bluelamp78 +368 -0
  80. package/bin/bluelamp79 +368 -0
  81. package/bin/bluelamp8 +368 -0
  82. package/bin/bluelamp80 +368 -0
  83. package/bin/bluelamp81 +368 -0
  84. package/bin/bluelamp82 +368 -0
  85. package/bin/bluelamp83 +368 -0
  86. package/bin/bluelamp84 +368 -0
  87. package/bin/bluelamp85 +368 -0
  88. package/bin/bluelamp86 +368 -0
  89. package/bin/bluelamp87 +368 -0
  90. package/bin/bluelamp88 +368 -0
  91. package/bin/bluelamp89 +368 -0
  92. package/bin/bluelamp9 +368 -0
  93. package/bin/bluelamp90 +368 -0
  94. package/bin/bluelamp91 +368 -0
  95. package/bin/bluelamp92 +368 -0
  96. package/bin/bluelamp93 +368 -0
  97. package/bin/bluelamp94 +368 -0
  98. package/bin/bluelamp95 +368 -0
  99. package/bin/bluelamp96 +368 -0
  100. package/bin/bluelamp97 +368 -0
  101. package/bin/bluelamp98 +368 -0
  102. package/bin/bluelamp99 +368 -0
  103. package/lib/mcp-server/dist/bluelamp-system.js +32 -0
  104. package/lib/mcp-server/dist/crypto-utils.js +27 -0
  105. package/lib/mcp-server/dist/database-version.js +33 -0
  106. package/lib/mcp-server/dist/index.js +62 -0
  107. package/lib/mcp-server/dist/plugins/base-plugin.js +24 -0
  108. package/lib/mcp-server/dist/plugins/plugin-manager.js +31 -0
  109. package/lib/mcp-server/dist/plugins/services/leonardo-plugin.js +95 -0
  110. package/lib/mcp-server/dist/plugins/services/leonardo-prompt-parser.js +36 -0
  111. package/lib/mcp-server/dist/plugins/services/portal-api-client.js +22 -0
  112. package/lib/mcp-server/dist/plugins/services/portal-plugin.js +52 -0
  113. package/lib/mcp-server/dist/secure-mcp-server.js +76 -0
  114. package/lib/mcp-server/dist/security/ApiKeyManager.js +24 -0
  115. package/lib/mcp-server/dist/security/InteractiveLogin.js +32 -0
  116. package/lib/mcp-server/dist/security/PortalAuthClient.js +1 -0
  117. package/lib/mcp-server/dist/security/SimpleAuthManager.js +1 -0
  118. package/lib/mcp-server/dist/security/TokenManager.js +25 -0
  119. package/lib/mcp-server/package.json +21 -0
  120. package/package.json +119 -35
  121. package/INSTALLATION_GUIDE.md +0 -109
  122. package/bin/blcf +0 -2
  123. package/bin/blcf2 +0 -28
  124. package/bin/blcf3 +0 -2
  125. package/bin/blcf4 +0 -2
  126. package/knowledge-injection/hooks/inject-encrypted.sh +0 -321
  127. package/lib/agents//343/203/225/343/202/231/343/203/253/343/203/274/343/203/251/343/203/263/343/203/225/343/202/232.md +0 -106
  128. package/lib/mcp-server/dist_optimized/bluelamp-system.d.ts +0 -29
  129. package/lib/mcp-server/dist_optimized/bluelamp-system.d.ts.map +0 -1
  130. package/lib/mcp-server/dist_optimized/bluelamp-system.js +0 -1
  131. package/lib/mcp-server/dist_optimized/bluelamp-system.js.bak +0 -340
  132. package/lib/mcp-server/dist_optimized/bluelamp-system.js.map +0 -1
  133. package/lib/mcp-server/dist_optimized/crypto-utils.d.ts +0 -33
  134. package/lib/mcp-server/dist_optimized/crypto-utils.d.ts.map +0 -1
  135. package/lib/mcp-server/dist_optimized/crypto-utils.js +0 -1
  136. package/lib/mcp-server/dist_optimized/crypto-utils.js.map +0 -1
  137. package/lib/mcp-server/dist_optimized/database-version.d.ts +0 -72
  138. package/lib/mcp-server/dist_optimized/database-version.d.ts.map +0 -1
  139. package/lib/mcp-server/dist_optimized/database-version.js +0 -2
  140. package/lib/mcp-server/dist_optimized/database-version.js.bak +0 -374
  141. package/lib/mcp-server/dist_optimized/database-version.js.map +0 -1
  142. package/lib/mcp-server/dist_optimized/index.d.ts +0 -3
  143. package/lib/mcp-server/dist_optimized/index.d.ts.map +0 -1
  144. package/lib/mcp-server/dist_optimized/index.js +0 -2
  145. package/lib/mcp-server/dist_optimized/index.js.map +0 -1
  146. package/lib/mcp-server/dist_optimized/secure-mcp-server.d.ts +0 -64
  147. package/lib/mcp-server/dist_optimized/secure-mcp-server.d.ts.map +0 -1
  148. package/lib/mcp-server/dist_optimized/secure-mcp-server.js +0 -1
  149. package/lib/mcp-server/dist_optimized/secure-mcp-server.js.bak +0 -1
  150. package/lib/mcp-server/dist_optimized/secure-mcp-server.js.bak2 +0 -1
  151. package/lib/mcp-server/dist_optimized/secure-mcp-server.js.map +0 -1
  152. package/lib/mcp-server/dist_optimized/security/InteractiveLogin.d.ts +0 -47
  153. package/lib/mcp-server/dist_optimized/security/InteractiveLogin.d.ts.map +0 -1
  154. package/lib/mcp-server/dist_optimized/security/InteractiveLogin.js +0 -1
  155. package/lib/mcp-server/dist_optimized/security/InteractiveLogin.js.map +0 -1
  156. package/lib/mcp-server/dist_optimized/security/PortalAuthClient.d.ts +0 -65
  157. package/lib/mcp-server/dist_optimized/security/PortalAuthClient.d.ts.map +0 -1
  158. package/lib/mcp-server/dist_optimized/security/PortalAuthClient.js +0 -1
  159. package/lib/mcp-server/dist_optimized/security/PortalAuthClient.js.map +0 -1
  160. package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.backup +0 -294
  161. package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.d.ts +0 -71
  162. package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.d.ts.map +0 -1
  163. package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.js +0 -1
  164. package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.js.backup +0 -25
  165. package/lib/mcp-server/dist_optimized/security/SimpleAuthManager.js.map +0 -1
  166. package/lib/mcp-server/dist_optimized/security/TokenManager.d.ts +0 -61
  167. package/lib/mcp-server/dist_optimized/security/TokenManager.d.ts.map +0 -1
  168. package/lib/mcp-server/dist_optimized/security/TokenManager.js +0 -1
  169. package/lib/mcp-server/dist_optimized/security/TokenManager.js.map +0 -1
  170. package/scripts/setup-agents.js +0 -9
@@ -1 +0,0 @@
1
- {"version":3,"file":"secure-mcp-server.js","sourceRoot":"","sources":["../src/secure-mcp-server.ts"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- /**
2
- * InteractiveLogin - 対話的ログイン機能
3
- *
4
- * 機能:
5
- * - readline使用の標準入力処理
6
- * - パスワード画面表示(マスキングなし)
7
- * - 認証成功時の情報表示
8
- * - ユーザーフレンドリーなメッセージ
9
- */
10
- export declare class InteractiveLogin {
11
- static getLoginInfoPath(): string;
12
- static exists(): boolean;
13
- static loadLoginInfo(): Promise<any>;
14
- static deleteLoginInfo(): Promise<boolean>;
15
- /**
16
- * 対話的ログインのメインフロー(トークンベース認証)
17
- */
18
- static performLogin(): Promise<any>;
19
- /**
20
- * ログイン情報の対話的入力
21
- */
22
- static promptCredentials(): Promise<{
23
- email: string;
24
- password: string;
25
- }>;
26
- /**
27
- * readline.question のPromise版
28
- */
29
- static question(rl: any, prompt: string): Promise<unknown>;
30
- /**
31
- * メールアドレスの簡易バリデーション
32
- */
33
- static validateEmail(email: string): boolean;
34
- /**
35
- * ログイン成功時の情報表示
36
- */
37
- static displayLoginSuccess(result: any): void;
38
- /**
39
- * ログアウト機能
40
- */
41
- static logout(): Promise<void>;
42
- /**
43
- * ログイン状態の確認
44
- */
45
- static checkLoginStatus(): Promise<boolean>;
46
- }
47
- //# sourceMappingURL=InteractiveLogin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InteractiveLogin.d.ts","sourceRoot":"","sources":["../../src/security/InteractiveLogin.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,qBAAa,gBAAgB;IAGzB,MAAM,CAAC,gBAAgB;IAKvB,MAAM,CAAC,MAAM;WAIA,aAAa;WAgBb,eAAe;IAS5B;;OAEG;WACU,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC;IA6IzC;;OAEG;WACU,iBAAiB;;;;IAoC9B;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM;IAQvC;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM;IAKlC;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG;IAatC;;OAEG;WACU,MAAM;IAgCnB;;OAEG;WACU,gBAAgB;CAoBhC"}
@@ -1 +0,0 @@
1
- "use strict";var e,t=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),n=this&&this.__importStar||(e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},e(t)},function(n){if(n&&n.__esModule)return n;var i={};if(null!=n)for(var s=e(n),a=0;a<s.length;a++)"default"!==s[a]&&t(i,n,s[a]);return r(i,n),i});Object.defineProperty(exports,"__esModule",{value:!0}),exports.InteractiveLogin=void 0;const i=n(require("readline")),s=n(require("fs")),a=n(require("path")),o=n(require("os")),c=n(require("crypto")),u=require("./PortalAuthClient.js"),l=require("./TokenManager.js");class f{static getLoginInfoPath(){const e=o.homedir();return a.join(e,".bluelamp_login_info.enc")}static exists(){return s.existsSync(this.getLoginInfoPath())}static async loadLoginInfo(){const e=this.getLoginInfoPath();if(!s.existsSync(e))return null;try{const t=s.readFileSync(e,"utf8"),r=c.createHash("sha256").update(o.userInfo().username+o.hostname()).digest(),n=c.createDecipher("aes-256-cbc",r);let i=n.update(t,"hex","utf8");return i+=n.final("utf8"),JSON.parse(i)}catch(e){return null}}static async deleteLoginInfo(){const e=this.getLoginInfoPath();return!!s.existsSync(e)&&(s.unlinkSync(e),!0)}static async performLogin(){try{const e=await l.TokenManager.loadToken();if(e&&e.token){const t=await l.TokenManager.validateToken(e.token);if(t.valid)return{token:e.token,user:t.userInfo,isFromCache:!0};await l.TokenManager.deleteToken()}let t=await this.loadLoginInfo();if(t){const e=await u.PortalAuthClient.authenticate(t.email,t.passwordHash);if(!e.success){if(!e.error||!e.error.includes("ナレッジインジェクション使用回数上限"))return await f.deleteLoginInfo(),await this.performLogin();process.exit(1)}return await l.TokenManager.saveToken(e.token,e.user)&&await f.deleteLoginInfo(),{token:e.token,user:e.user,isFirstTime:!1,isFromCache:!1,migrated:!0}}{const e=await this.promptCredentials(),t=await u.PortalAuthClient.authenticate(e.email,e.password);t.success||(t.error&&t.error.includes("ナレッジインジェクション使用回数上限"),process.exit(1));await l.TokenManager.saveToken(t.token,t.user);return await f.deleteLoginInfo(),{token:t.token,user:t.user,isFirstTime:!0,isFromCache:!1}}}catch(e){process.exit(1)}}static async promptCredentials(){const e=i.createInterface({input:process.stdin,output:process.stdout});try{const t=await this.question(e,"Email: ");this.validateEmail(t)||(e.close(),process.exit(1));const r=await this.question(e,"Password: ");return r&&0!==r.trim().length||(e.close(),process.exit(1)),e.close(),{email:t.trim(),password:r.trim()}}catch(t){throw e.close(),t}}static question(e,t){return new Promise(r=>{e.question(t,e=>{r(e)})})}static validateEmail(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}static displayLoginSuccess(e){e.isFirstTime}static async logout(){const e=i.createInterface({input:process.stdin,output:process.stdout});try{const t=await this.question(e,"ログイン情報を削除しますか? (y/N): ");if("y"===t.toLowerCase()||"yes"===t.toLowerCase()){await f.deleteLoginInfo()}}finally{e.close()}}static async checkLoginStatus(){if(f.exists()){return!!await f.loadLoginInfo()}return!1}}exports.InteractiveLogin=f;
@@ -1 +0,0 @@
1
- {"version":3,"file":"InteractiveLogin.js","sourceRoot":"","sources":["../../src/security/InteractiveLogin.ts"],"names":[],"mappings":"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"}
@@ -1,65 +0,0 @@
1
- /**
2
- * PortalAuthClient - Portal API連携クライアント
3
- *
4
- * 機能:
5
- * - Portal API(https://geniemon.vercel.app/api/cli/login)への認証
6
- * - deviceInfo自動生成(hostname, platform, arch)
7
- * - エラーハンドリング・リトライ機能
8
- * - CLIトークン取得・検証
9
- */
10
- export declare class PortalAuthClient {
11
- static PORTAL_API_URL: string;
12
- static MAX_RETRIES: number;
13
- static RETRY_DELAY: number;
14
- static REQUEST_TIMEOUT: number;
15
- /**
16
- * Portal API認証・CLIトークン取得
17
- */
18
- static authenticate(email: string, password: string): Promise<{
19
- success: boolean;
20
- token: any;
21
- user: {
22
- name: any;
23
- role: any;
24
- email: string;
25
- };
26
- error?: undefined;
27
- } | {
28
- success: boolean;
29
- error: any;
30
- token?: undefined;
31
- user?: undefined;
32
- }>;
33
- /**
34
- * デバイス情報の自動生成
35
- */
36
- static generateDeviceInfo(): {
37
- deviceName: string;
38
- platform: NodeJS.Platform;
39
- arch: string;
40
- userAgent: string;
41
- nodeVersion: string;
42
- timestamp: number;
43
- };
44
- /**
45
- * HTTP/HTTPS リクエストの実行
46
- */
47
- static makeRequest(authRequest: any): Promise<unknown>;
48
- /**
49
- * CLIトークンの検証
50
- */
51
- static validateToken(token: string): boolean;
52
- /**
53
- * トークンの有効期限チェック
54
- */
55
- static isTokenExpired(token: string): boolean;
56
- /**
57
- * スリープ関数
58
- */
59
- static sleep(ms: number): Promise<unknown>;
60
- /**
61
- * Portal APIの接続テスト
62
- */
63
- static testConnection(): Promise<boolean>;
64
- }
65
- //# sourceMappingURL=PortalAuthClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PortalAuthClient.d.ts","sourceRoot":"","sources":["../../src/security/PortalAuthClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,qBAAa,gBAAgB;IACzB,MAAM,CAAC,cAAc,SAA+C;IACpE,MAAM,CAAC,WAAW,SAAK;IACvB,MAAM,CAAC,WAAW,SAAQ;IAC1B,MAAM,CAAC,eAAe,SAAS;IAE/B;;OAEG;WACU,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;;IAsDzD;;OAEG;IACH,MAAM,CAAC,kBAAkB;;;;;;;;IAWzB;;OAEG;WACU,WAAW,CAAC,WAAW,EAAE,GAAG;IAkFzC;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM;IAUlC;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM;IAgBnC;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM;IAIvB;;OAEG;WACU,cAAc;CAwB9B"}
@@ -1 +0,0 @@
1
- "use strict";var e,t=this&&this.__createBinding||(Object.create?function(e,t,r,s){void 0===s&&(s=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,s,n)}:function(e,t,r,s){void 0===s&&(s=r),e[s]=t[r]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||(e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},e(t)},function(s){if(s&&s.__esModule)return s;var n={};if(null!=s)for(var a=e(s),o=0;o<a.length;o++)"default"!==a[o]&&t(n,s,a[o]);return r(n,s),n});Object.defineProperty(exports,"__esModule",{value:!0}),exports.PortalAuthClient=void 0;const n=s(require("os")),a=s(require("https")),o=s(require("http")),i=require("url");class c{static async authenticate(e,t){const r={email:e,password:t,deviceInfo:this.generateDeviceInfo()};let s=null;for(let t=1;t<=this.MAX_RETRIES;t++)try{const t=await this.makeRequest(r);if(t.success)return{success:!0,token:t.data.token,user:{name:t.data.userName,role:t.data.userRole,email:e}};throw new Error(t.message||"Portal認証に失敗しました")}catch(e){s=e,t<this.MAX_RETRIES&&await this.sleep(this.RETRY_DELAY)}return{success:!1,error:s?.message||"Portal認証に失敗しました"}}static generateDeviceInfo(){return{deviceName:n.hostname(),platform:n.platform(),arch:n.arch(),userAgent:"BlueLamp MCP Server",nodeVersion:process.version,timestamp:Date.now()}}static async makeRequest(e){return new Promise((t,r)=>{const s=new i.URL(this.PORTAL_API_URL),n=JSON.stringify(e),c={hostname:s.hostname,port:s.port||("https:"===s.protocol?443:80),path:s.pathname,method:"POST",headers:{"Content-Type":"application/json","Content-Length":Buffer.byteLength(n),"User-Agent":"BlueLamp MCP Server",Accept:"application/json"},timeout:this.REQUEST_TIMEOUT},u=("https:"===s.protocol?a:o).request(c,e=>{let s="";e.on("data",e=>{s+=e}),e.on("end",()=>{try{let n;try{n=JSON.parse(s)}catch(t){return void(200!==e.statusCode?r(new Error(`HTTP ${e.statusCode}: ${e.statusMessage}`)):r(new Error(`レスポンス解析エラー: ${t.message}`)))}if(200!==e.statusCode)return void(n&&n.message?"KNOWLEDGE_INJECTION_LIMIT_EXCEEDED"===n.error?r(new Error(n.message)):r(new Error(`${n.message}`)):r(new Error(`HTTP ${e.statusCode}: ${e.statusMessage}`)));t(n)}catch(e){r(new Error(`レスポンス解析エラー: ${e.message}`))}})});u.on("error",e=>{r(new Error(`ネットワークエラー: ${e.message}`))}),u.on("timeout",()=>{u.destroy(),r(new Error("リクエストタイムアウト"))}),u.write(n),u.end()})}static validateToken(e){if(!e||"string"!=typeof e)return!1;return/^cli_\d+_[a-zA-Z0-9]+$/.test(e)}static isTokenExpired(e){try{const t=e.split("_");if(t.length<2)return!0;const r=parseInt(t[1]),s=Date.now();return s-r>6048e5}catch(e){return!0}}static sleep(e){return new Promise(t=>setTimeout(t,e))}static async testConnection(){try{const e={email:"test@example.com",password:"test",deviceInfo:this.generateDeviceInfo()};return await this.makeRequest(e),!0}catch(e){return!(!e.message.includes("HTTP 401")&&!e.message.includes("HTTP 400"))}}}exports.PortalAuthClient=c,c.PORTAL_API_URL="https://geniemon.vercel.app/api/cli/login",c.MAX_RETRIES=3,c.RETRY_DELAY=1e3,c.REQUEST_TIMEOUT=1e4;
@@ -1 +0,0 @@
1
- {"version":3,"file":"PortalAuthClient.js","sourceRoot":"","sources":["../../src/security/PortalAuthClient.ts"],"names":[],"mappings":"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"}
@@ -1,294 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.SimpleAuthManager = void 0;
37
- const fs = __importStar(require("fs"));
38
- const path = __importStar(require("path"));
39
- const crypto = __importStar(require("crypto"));
40
- const os = __importStar(require("os"));
41
- const https = __importStar(require("https"));
42
- /**
43
- * シンプルなAPIキー管理システム
44
- * 分散保存の複雑性を排除し、単一ファイルで安全に保存
45
- */
46
- class SimpleAuthManager {
47
- constructor() {
48
- this.apiKey = null;
49
- this.hiddenFilePath = null;
50
- }
51
- /**
52
- * APIキーを暗号化して隠蔽保存
53
- * @param apiKey - 保存するAPIキー
54
- * @returns 保存成功可否
55
- */
56
- static saveApiKey(apiKey) {
57
- try {
58
- // わかりづらい保存場所を選択
59
- const hiddenPath = this.getHiddenPath();
60
- // APIキーを暗号化
61
- const encryptedData = this.encryptApiKey(apiKey);
62
- // ディレクトリが存在しない場合は作成
63
- const dir = path.dirname(hiddenPath);
64
- if (!fs.existsSync(dir)) {
65
- fs.mkdirSync(dir, { recursive: true });
66
- }
67
- // 隠蔽ファイルとして保存
68
- fs.writeFileSync(hiddenPath, encryptedData);
69
- return true;
70
- }
71
- catch (error) {
72
- return false;
73
- }
74
- }
75
- /**
76
- * APIキーを復元
77
- * @returns 復元されたAPIキー
78
- */
79
- static loadApiKey() {
80
- try {
81
- const hiddenPath = this.getHiddenPath();
82
- if (!fs.existsSync(hiddenPath)) {
83
- return null;
84
- }
85
- // 暗号化されたデータを読み込み
86
- const encryptedData = fs.readFileSync(hiddenPath, 'utf8');
87
- // 復号化
88
- const apiKey = this.decryptApiKey(encryptedData);
89
- return apiKey;
90
- }
91
- catch (error) {
92
- return null;
93
- }
94
- }
95
- /**
96
- * わかりづらい隠蔽パスを生成
97
- * @returns 隠蔽ファイルパス
98
- */
99
- static getHiddenPath() {
100
- const homeDir = os.homedir();
101
- // 複数の候補からランダムに選択
102
- const candidates = [
103
- path.join(homeDir, '.npm', '_logs', 'cache_metadata.log'),
104
- path.join(homeDir, '.vscode', 'logs', 'session_backup.dat'),
105
- path.join(homeDir, '.cache', 'fontconfig', 'config_state.tmp'),
106
- path.join(homeDir, '.local', 'share', 'recently-used.xbel.bak'),
107
- path.join(homeDir, '.config', 'pulse', 'client.conf.tmp')
108
- ];
109
- // 日付ベースでインデックスを決定(一貫性を保つため)
110
- const today = new Date().toISOString().split('T')[0];
111
- const hash = crypto.createHash('md5').update(today).digest('hex');
112
- const index = parseInt(hash.substring(0, 2), 16) % candidates.length;
113
- return candidates[index];
114
- }
115
- /**
116
- * APIキーを暗号化
117
- * @param apiKey - 暗号化するAPIキー
118
- * @returns 暗号化されたデータ
119
- */
120
- static encryptApiKey(apiKey) {
121
- // システム固有の暗号化キーを生成
122
- const machineId = this.getMachineId();
123
- const key = crypto.createHash('sha256').update(machineId).digest();
124
- // AES-256-CBC で暗号化
125
- const iv = crypto.randomBytes(16);
126
- const cipher = crypto.createCipheriv('aes-256-cbc', key, iv);
127
- let encrypted = cipher.update(apiKey, 'utf8', 'hex');
128
- encrypted += cipher.final('hex');
129
- // 偽装データとして保存
130
- const fakeData = {
131
- timestamp: Date.now(),
132
- session_id: crypto.randomBytes(16).toString('hex'),
133
- cache_version: '2.1.4',
134
- data_: encrypted,
135
- iv_: iv.toString('hex'),
136
- checksum: crypto.randomBytes(8).toString('hex')
137
- };
138
- return `# Generated on ${new Date().toISOString()}\n` +
139
- `# Cache configuration file\n` +
140
- JSON.stringify(fakeData, null, 2);
141
- }
142
- /**
143
- * APIキーを復号化
144
- * @param encryptedData - 暗号化されたデータ
145
- * @returns 復号化されたAPIキー
146
- */
147
- static decryptApiKey(encryptedData) {
148
- // JSONデータを抽出
149
- const lines = encryptedData.split('\n');
150
- const jsonData = lines.slice(2).join('\n');
151
- const data = JSON.parse(jsonData);
152
- // システム固有の暗号化キーを生成
153
- const machineId = this.getMachineId();
154
- const key = crypto.createHash('sha256').update(machineId).digest();
155
- // 復号化
156
- const iv = Buffer.from(data.iv_, 'hex');
157
- const decipher = crypto.createDecipheriv('aes-256-cbc', key, iv);
158
- let decrypted = decipher.update(data.data_, 'hex', 'utf8');
159
- decrypted += decipher.final('utf8');
160
- return decrypted;
161
- }
162
- /**
163
- * マシン固有IDを生成
164
- * @returns マシンID
165
- */
166
- static getMachineId() {
167
- // システム情報を組み合わせてユニークIDを生成
168
- const systemInfo = [
169
- os.hostname(),
170
- os.platform(),
171
- os.arch(),
172
- os.userInfo().username
173
- ].join('|');
174
- return crypto.createHash('sha256').update(systemInfo).digest('hex');
175
- }
176
- /**
177
- * APIキーファイルを削除
178
- * @returns 削除成功可否
179
- */
180
- static deleteApiKey() {
181
- try {
182
- const hiddenPath = this.getHiddenPath();
183
- if (fs.existsSync(hiddenPath)) {
184
- fs.unlinkSync(hiddenPath);
185
- return true;
186
- }
187
- return false;
188
- }
189
- catch (error) {
190
- return false;
191
- }
192
- }
193
- /**
194
- * APIキーの存在確認
195
- * @returns APIキーファイルの存在
196
- */
197
- static hasApiKey() {
198
- const hiddenPath = this.getHiddenPath();
199
- return fs.existsSync(hiddenPath);
200
- }
201
- /**
202
- * トークンを取得(Knowledge Injection用)
203
- * @returns APIキー/トークン
204
- */
205
- static async getToken() {
206
- return this.loadApiKey();
207
- }
208
- /**
209
- * APIエンドポイントを取得
210
- */
211
- static getApiEndpoint() {
212
- try {
213
- return Buffer.from(this.ENCODED_API_ENDPOINT, 'base64').toString('utf8');
214
- }
215
- catch {
216
- // フォールバック
217
- return 'https://geniemon.vercel.app/api/cli/prompts/knowledge-injection';
218
- }
219
- }
220
- /**
221
- * Knowledge Injectionをfetch
222
- * @param keyword - 取得するキーワード
223
- * @returns APIレスポンス
224
- */
225
- static async fetchKnowledgeInjection(keyword) {
226
- return new Promise((resolve, reject) => {
227
- const token = this.loadApiKey();
228
- if (!token) {
229
- reject(new Error('No token available'));
230
- return;
231
- }
232
- const apiEndpoint = this.getApiEndpoint();
233
- const encodedKeyword = encodeURIComponent(keyword);
234
- const url = `${apiEndpoint}/${encodedKeyword}`;
235
- const urlObj = new URL(url);
236
- const options = {
237
- hostname: urlObj.hostname,
238
- port: urlObj.port || 443,
239
- path: urlObj.pathname + urlObj.search,
240
- method: 'GET',
241
- headers: {
242
- 'X-CLI-Token': token,
243
- 'User-Agent': 'BlueLamp-MCP/1.0.0',
244
- 'Content-Type': 'application/json'
245
- },
246
- timeout: 30000
247
- };
248
- const req = https.request(options, (res) => {
249
- let data = '';
250
- res.on('data', (chunk) => {
251
- data += chunk;
252
- });
253
- res.on('end', () => {
254
- try {
255
- const jsonData = JSON.parse(data);
256
- // HTTPステータスコードチェック
257
- if (res.statusCode === 200) {
258
- resolve({
259
- success: true,
260
- data: jsonData,
261
- statusCode: res.statusCode
262
- });
263
- }
264
- else {
265
- resolve({
266
- success: false,
267
- error: jsonData.error || 'Unknown error',
268
- statusCode: res.statusCode,
269
- data: jsonData
270
- });
271
- }
272
- }
273
- catch (error) {
274
- reject(new Error('Invalid JSON response'));
275
- }
276
- });
277
- });
278
- req.on('error', (error) => {
279
- reject(error);
280
- });
281
- req.on('timeout', () => {
282
- req.destroy();
283
- reject(new Error('Request timeout'));
284
- });
285
- req.end();
286
- });
287
- }
288
- }
289
- exports.SimpleAuthManager = SimpleAuthManager;
290
- /**
291
- * Portal APIエンドポイント(Base64エンコード)
292
- */
293
- SimpleAuthManager.ENCODED_API_ENDPOINT = 'aHR0cHM6Ly9nZW5pZW1vbi52ZXJjZWwuYXBwL2FwaS9jbGkvcHJvbXB0cy9rbm93bGVkZ2UtaW5qZWN0aW9u';
294
- //# sourceMappingURL=SimpleAuthManager.js.map
@@ -1,71 +0,0 @@
1
- /**
2
- * シンプルなAPIキー管理システム
3
- * 分散保存の複雑性を排除し、単一ファイルで安全に保存
4
- */
5
- export declare class SimpleAuthManager {
6
- private apiKey;
7
- private hiddenFilePath;
8
- /**
9
- * APIキーを暗号化して隠蔽保存
10
- * @param apiKey - 保存するAPIキー
11
- * @returns 保存成功可否
12
- */
13
- static saveApiKey(apiKey: string): boolean;
14
- /**
15
- * APIキーを復元
16
- * @returns 復元されたAPIキー
17
- */
18
- static loadApiKey(): string | null;
19
- /**
20
- * わかりづらい隠蔽パスを生成
21
- * @returns 隠蔽ファイルパス
22
- */
23
- static getHiddenPath(): string;
24
- /**
25
- * APIキーを暗号化
26
- * @param apiKey - 暗号化するAPIキー
27
- * @returns 暗号化されたデータ
28
- */
29
- static encryptApiKey(apiKey: string): string;
30
- /**
31
- * APIキーを復号化
32
- * @param encryptedData - 暗号化されたデータ
33
- * @returns 復号化されたAPIキー
34
- */
35
- static decryptApiKey(encryptedData: string): string;
36
- /**
37
- * マシン固有IDを生成
38
- * @returns マシンID
39
- */
40
- static getMachineId(): string;
41
- /**
42
- * APIキーファイルを削除
43
- * @returns 削除成功可否
44
- */
45
- static deleteApiKey(): boolean;
46
- /**
47
- * APIキーの存在確認
48
- * @returns APIキーファイルの存在
49
- */
50
- static hasApiKey(): boolean;
51
- /**
52
- * トークンを取得(Knowledge Injection用)
53
- * @returns APIキー/トークン
54
- */
55
- static getToken(): Promise<string | null>;
56
- /**
57
- * Portal APIエンドポイント(Base64エンコード)
58
- */
59
- private static readonly ENCODED_API_ENDPOINT;
60
- /**
61
- * APIエンドポイントを取得
62
- */
63
- private static getApiEndpoint;
64
- /**
65
- * Knowledge Injectionをfetch
66
- * @param keyword - 取得するキーワード
67
- * @returns APIレスポンス
68
- */
69
- static fetchKnowledgeInjection(keyword: string): Promise<any>;
70
- }
71
- //# sourceMappingURL=SimpleAuthManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SimpleAuthManager.d.ts","sourceRoot":"","sources":["../../src/security/SimpleAuthManager.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,cAAc,CAAuB;IAE7C;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAwB1C;;;OAGG;IACH,MAAM,CAAC,UAAU,IAAI,MAAM,GAAG,IAAI;IAqBlC;;;OAGG;IACH,MAAM,CAAC,aAAa,IAAI,MAAM;IAoB9B;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IA2B5C;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAoBnD;;;OAGG;IACH,MAAM,CAAC,YAAY,IAAI,MAAM;IAY7B;;;OAGG;IACH,MAAM,CAAC,YAAY,IAAI,OAAO;IAgB9B;;;OAGG;IACH,MAAM,CAAC,SAAS,IAAI,OAAO;IAK3B;;;OAGG;WACU,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI/C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAA0F;IAEtI;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAS7B;;;;OAIG;WACU,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAsEtE"}
@@ -1 +0,0 @@
1
- "use strict";var e,t=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||(e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},e(t)},function(r){if(r&&r.__esModule)return r;var i={};if(null!=r)for(var a=e(r),s=0;s<a.length;s++)"default"!==a[s]&&t(i,r,a[s]);return n(i,r),i});Object.defineProperty(exports,"__esModule",{value:!0}),exports.SimpleAuthManager=void 0;const i=r(require("fs")),a=r(require("path")),s=r(require("crypto")),o=r(require("os")),c=r(require("https"));class u{constructor(){this.apiKey=null,this.hiddenFilePath=null}static saveApiKey(e){try{const t=this.getHiddenPath(),n=this.encryptApiKey(e),r=a.dirname(t);return i.existsSync(r)||i.mkdirSync(r,{recursive:!0}),i.writeFileSync(t,n),!0}catch(e){return!1}}static loadApiKey(){try{const e=this.getHiddenPath();if(!i.existsSync(e))return null;const t=i.readFileSync(e,"utf8");return this.decryptApiKey(t)}catch(e){return null}}static getHiddenPath(){const e=o.homedir(),t=[a.join(e,".npm","_logs","cache_metadata.log"),a.join(e,".vscode","logs","session_backup.dat"),a.join(e,".cache","fontconfig","config_state.tmp"),a.join(e,".local","share","recently-used.xbel.bak"),a.join(e,".config","pulse","client.conf.tmp")],n=(new Date).toISOString().split("T")[0],r=s.createHash("md5").update(n).digest("hex");return t[parseInt(r.substring(0,2),16)%t.length]}static encryptApiKey(e){const t=this.getMachineId(),n=s.createHash("sha256").update(t).digest(),r=s.randomBytes(16),i=s.createCipheriv("aes-256-cbc",n,r);let a=i.update(e,"utf8","hex");a+=i.final("hex");const o={timestamp:Date.now(),session_id:s.randomBytes(16).toString("hex"),cache_version:"2.1.4",data_:a,iv_:r.toString("hex"),checksum:s.randomBytes(8).toString("hex")};return`# Generated on ${(new Date).toISOString()}\n# Cache configuration file\n`+JSON.stringify(o,null,2)}static decryptApiKey(e){const t=e.split("\n").slice(2).join("\n"),n=JSON.parse(t),r=this.getMachineId(),i=s.createHash("sha256").update(r).digest(),a=Buffer.from(n.iv_,"hex"),o=s.createDecipheriv("aes-256-cbc",i,a);let c=o.update(n.data_,"hex","utf8");return c+=o.final("utf8"),c}static getMachineId(){const e=[o.hostname(),o.platform(),o.arch(),o.userInfo().username].join("|");return s.createHash("sha256").update(e).digest("hex")}static deleteApiKey(){try{const e=this.getHiddenPath();return!!i.existsSync(e)&&(i.unlinkSync(e),!0)}catch(e){return!1}}static hasApiKey(){const e=this.getHiddenPath();return i.existsSync(e)}static async getToken(){return this.loadApiKey()}static getApiEndpoint(){try{return Buffer.from(this.ENCODED_API_ENDPOINT,"base64").toString("utf8")}catch{return"https://geniemon.vercel.app/api/cli/prompts/knowledge-injection"}}static async fetchKnowledgeInjection(e){return new Promise((t,n)=>{const r=this.loadApiKey();if(!r)return void n(new Error("No token available"));const i=this.getApiEndpoint(),a=encodeURIComponent(e),s=new URL(`${i}/${a}`),o={hostname:s.hostname,port:s.port||443,path:s.pathname+s.search,method:"GET",headers:{"X-CLI-Token":r,"User-Agent":"BlueLamp-MCP/1.0.0","Content-Type":"application/json"},timeout:3e4},u=c.request(o,e=>{let r="";e.on("data",e=>{r+=e}),e.on("end",()=>{try{const n=JSON.parse(r);200===e.statusCode?t({success:!0,data:n,statusCode:e.statusCode}):t({success:!1,error:n.error||"Unknown error",statusCode:e.statusCode,data:n})}catch(e){n(new Error("Invalid JSON response"))}})});u.on("error",e=>{n(e)}),u.on("timeout",()=>{u.destroy(),n(new Error("Request timeout"))}),u.end()})}}exports.SimpleAuthManager=u,u.ENCODED_API_ENDPOINT="aHR0cHM6Ly9nZW5pZW1vbi52ZXJjZWwuYXBwL2FwaS9jbGkvcHJvbXB0cy9rbm93bGVkZ2UtaW5qZWN0aW9u";
@@ -1,25 +0,0 @@
1
- import*as fs from"fs"
2
- import*as path from"path"
3
- import*as crypto from"crypto"
4
- import*as os from"os"
5
- import*as https from"https"
6
- export class SimpleAuthManager{constructor(){this.apiKey=null,this.hiddenFilePath=null}static saveApiKey(t){try{const e=this.getHiddenPath(),s=this.encryptApiKey(t),n=path.dirname(e)
7
- return fs.existsSync(n)||fs.mkdirSync(n,{recursive:!0}),fs.writeFileSync(e,s),!0}catch(t){return!1}}static loadApiKey(){try{const t=this.getHiddenPath()
8
- if(!fs.existsSync(t))return null
9
- const e=fs.readFileSync(t,"utf8")
10
- return this.decryptApiKey(e)}catch(t){return null}}static getHiddenPath(){const t=os.homedir(),e=[path.join(t,".npm","_logs","cache_metadata.log"),path.join(t,".vscode","logs","session_backup.dat"),path.join(t,".cache","fontconfig","config_state.tmp"),path.join(t,".local","share","recently-used.xbel.bak"),path.join(t,".config","pulse","client.conf.tmp")],s=(new Date).toISOString().split("T")[0],n=crypto.createHash("md5").update(s).digest("hex")
11
- return e[parseInt(n.substring(0,2),16)%e.length]}static encryptApiKey(t){const e=this.getMachineId(),s=crypto.createHash("sha256").update(e).digest(),n=crypto.randomBytes(16),r=crypto.createCipheriv("aes-256-cbc",s,n)
12
- let a=r.update(t,"utf8","hex")
13
- a+=r.final("hex")
14
- const o={timestamp:Date.now(),session_id:crypto.randomBytes(16).toString("hex"),cache_version:"2.1.4",data_:a,iv_:n.toString("hex"),checksum:crypto.randomBytes(8).toString("hex")}
15
- return`# Generated on ${(new Date).toISOString()}\n# Cache configuration file\n`+JSON.stringify(o,null,2)}static decryptApiKey(t){const e=t.split("\n").slice(2).join("\n"),s=JSON.parse(e),n=this.getMachineId(),r=crypto.createHash("sha256").update(n).digest(),a=Buffer.from(s.iv_,"hex"),o=crypto.createDecipheriv("aes-256-cbc",r,a)
16
- let i=o.update(s.data_,"hex","utf8")
17
- return i+=o.final("utf8"),i}static getMachineId(){const t=[os.hostname(),os.platform(),os.arch(),os.userInfo().username].join("|")
18
- return crypto.createHash("sha256").update(t).digest("hex")}static deleteApiKey(){try{const t=this.getHiddenPath()
19
- return!!fs.existsSync(t)&&(fs.unlinkSync(t),!0)}catch(t){return!1}}static hasApiKey(){const t=this.getHiddenPath()
20
- return fs.existsSync(t)}static async getToken(){return this.loadApiKey()}static getApiEndpoint(){try{return Buffer.from(this.ENCODED_API_ENDPOINT,"base64").toString("utf8")}catch{return"https://geniemon.vercel.app/api/cli/prompts/knowledge-injection"}}static async fetchKnowledgeInjection(keyword){return new Promise((t,e)=>{const token=this.loadApiKey()
21
- if(!token)return void e(Error("No token available"))
22
- const s=this.getApiEndpoint(),n=new URL(`${s}/${encodeURIComponent(keyword)}`),r={hostname:n.hostname,port:n.port||443,path:n.pathname+n.search,method:"GET",headers:{"X-CLI-Token":token,"User-Agent":"BlueLamp-MCP/1.0.0","Content-Type":"application/json"},timeout:3e4},a=https.request(r,s=>{let n=""
23
- s.on("data",t=>{n+=t}),s.on("end",()=>{try{const e=JSON.parse(n)
24
- 200===s.statusCode?t({success:!0,data:e,statusCode:s.statusCode}):t({success:!1,error:e.error||"Unknown error",statusCode:s.statusCode,data:e})}catch(t){e(Error("Invalid JSON response"))}})})
25
- a.on("error",t=>{e(t)}),a.on("timeout",()=>{a.destroy(),e(Error("Request timeout"))}),a.end()})}}SimpleAuthManager.ENCODED_API_ENDPOINT="aHR0cHM6Ly9nZW5pZW1vbi52ZXJjZWwuYXBwL2FwaS9jbGkvcHJvbXB0cy9rbm93bGVkZ2UtaW5qZWN0aW9u"
@@ -1 +0,0 @@
1
- {"version":3,"file":"SimpleAuthManager.js","sourceRoot":"","sources":["../../src/security/SimpleAuthManager.ts"],"names":[],"mappings":"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"}