bluelamp 6.6.1 → 6.6.2
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/dist/auth/InteractiveLogin.js +1 -1
- package/dist/auth/PortalAuthClient.js +1 -1
- package/dist/auth/TokenManager.js +1 -1
- package/dist/auth/portalTokenStore.d.ts +14 -31
- package/dist/auth/portalTokenStore.d.ts.map +1 -1
- package/dist/auth/portalTokenStore.js +1 -1
- package/dist/auth/portalTokenStore.js.map +1 -1
- package/dist/bin/bluelamp-vscode-base.mjs +1 -1
- package/dist/lib/tempMcpConfig.d.ts +79 -0
- package/dist/lib/tempMcpConfig.d.ts.map +1 -0
- package/dist/lib/tempMcpConfig.js +1 -0
- package/dist/lib/tempMcpConfig.js.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* launcher が起動のたびに `os.tmpdir()` へ書く一時 MCP config の、命名・掃除・在使用判定。
|
|
3
|
+
*
|
|
4
|
+
* 背景(2026-08-22 CTO 実測 / 2026-08-23 実装席 実測):
|
|
5
|
+
* `createMCPConfig()` が書く `bluelamp-mcp-*.json` には **CLI トークンが平文で入る**。
|
|
6
|
+
* 旧版は `writeFileSync` に mode を渡しておらず **0644**(他ユーザが読める)で、しかも
|
|
7
|
+
* 終了経路によっては消えずに残っていた。実測で ami の `$TMPDIR` に 5 件、機体全体
|
|
8
|
+
* (`/var/folders` 横断)で 253 件が **全件 0644** のまま数日分積もっていた。
|
|
9
|
+
*
|
|
10
|
+
* 🚨 安全要件(この便の設計判断・CTO 承認 2026-08-23):
|
|
11
|
+
* 掃除は「古いから消す」では**絶対にやらない**。実測で、3 日前に作られた
|
|
12
|
+
* `bluelamp-mcp-1787195847391.json` が **走行中の CTO セッションに参照され続けていた**
|
|
13
|
+
* (tmux `cto25` の作成時刻と一致・pid 98912 が保持)。年齢だけで消す実装は、
|
|
14
|
+
* その席の MCP 構成を丸ごと奪う。
|
|
15
|
+
* ⇒ 消してよいのは次の **すべて** を満たすものだけ:
|
|
16
|
+
* 1. 自分の uid が所有している(他人のものに触らない)
|
|
17
|
+
* 2. **どの走行中プロセスも `--mcp-config` で参照していない**
|
|
18
|
+
* 3. 一定時間より古い(`ps` に現れる前の生まれたてを巻き込まない保険)
|
|
19
|
+
* 4. 名前に埋めた作成元 pid が死んでいる(新形式のみ。判らなければ判定しない)
|
|
20
|
+
* ⇒ そして **参照状況が測れなかったら 1 件も消さない**(deny by default)。
|
|
21
|
+
* 「0 件だった」は「走査が届いていない」と区別がつかないため、`ps` の結果は
|
|
22
|
+
* **自分自身の pid が見えるか**という陽性対照で妥当性を確かめてから使う。
|
|
23
|
+
*/
|
|
24
|
+
/** 一時 config の名前の頭。掃除の対象を見分ける唯一の手掛かりなので固定する */
|
|
25
|
+
export declare const TEMP_CONFIG_PREFIX = "bluelamp-mcp-";
|
|
26
|
+
/** `ps` に現れる猶予。在使用判定が主で、これはその取りこぼしを埋める保険 */
|
|
27
|
+
export declare const DEFAULT_MIN_AGE_MS: number;
|
|
28
|
+
export interface SweepCandidate {
|
|
29
|
+
/** 絶対パス。`--mcp-config` に渡る形と一致させる */
|
|
30
|
+
path: string;
|
|
31
|
+
/** ファイル名のみ */
|
|
32
|
+
name: string;
|
|
33
|
+
/** 所有者 uid */
|
|
34
|
+
uid: number;
|
|
35
|
+
/** 最終更新時刻(ms) */
|
|
36
|
+
mtimeMs: number;
|
|
37
|
+
/** 通常ファイルか(symlink 等は対象外) */
|
|
38
|
+
isFile: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface SweepPlanInput {
|
|
41
|
+
candidates: SweepCandidate[];
|
|
42
|
+
/** 走行中プロセスが握っているパス。**null は「測れなかった」** を意味する */
|
|
43
|
+
inUsePaths: ReadonlySet<string> | null;
|
|
44
|
+
nowMs: number;
|
|
45
|
+
/** 自分の uid。判らない環境(Windows 等)では null にして uid 判定を省く */
|
|
46
|
+
ownUid: number | null;
|
|
47
|
+
minAgeMs: number;
|
|
48
|
+
isProcessAlive: (pid: number) => boolean;
|
|
49
|
+
}
|
|
50
|
+
/** 名前から作成元 pid を取る。旧形式・対象外はそれぞれ null / undefined を返す */
|
|
51
|
+
export declare function parseTempConfigName(name: string): {
|
|
52
|
+
ownerPid: number | null;
|
|
53
|
+
} | null;
|
|
54
|
+
/** この起動が使う一時 config のファイル名。pid を埋めて「誰が作ったか」を後から辿れるようにする */
|
|
55
|
+
export declare function tempConfigFileName(pid: number, randomHex: string): string;
|
|
56
|
+
/**
|
|
57
|
+
* 消してよいパスだけを返す純粋関数。I/O を持たないので、危険な条件分岐を全部テストできる。
|
|
58
|
+
* `inUsePaths` が null(測定不能)なら **空配列**を返す=1 件も消さない。
|
|
59
|
+
*/
|
|
60
|
+
export declare function planTempMcpConfigSweep(input: SweepPlanInput): string[];
|
|
61
|
+
/** pid が生きているか。他ユーザ所有(EPERM)は「生きている」に倒す=消さない側へ */
|
|
62
|
+
export declare function isProcessAlive(pid: number): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* 走行中プロセスが `--mcp-config` で握っているパスの集合。
|
|
65
|
+
* **測れなかったら null**(呼び出し側は掃除を中止する)。
|
|
66
|
+
* 妥当性は「自分自身の pid が一覧に見えるか」という陽性対照で確かめる——
|
|
67
|
+
* これが取れないときの空集合は「誰も使っていない」ではなく「計器が効いていない」。
|
|
68
|
+
*/
|
|
69
|
+
export declare function readInUseMcpConfigPaths(): Set<string> | null;
|
|
70
|
+
/** `ps` 出力から `--mcp-config <path>` / `--mcp-config=<path>` を拾う(純粋) */
|
|
71
|
+
export declare function collectMcpConfigPaths(psOutput: string): Set<string>;
|
|
72
|
+
/** 掃除対象の候補を tmpdir から集める(I/O シェル)。読めないものは黙って飛ばす */
|
|
73
|
+
export declare function collectSweepCandidates(dir: string): SweepCandidate[];
|
|
74
|
+
/**
|
|
75
|
+
* 起動時の掃除本体。best-effort で、失敗しても launcher の起動は止めない。
|
|
76
|
+
* 消した件数を返す(呼び出し側でのログ・テスト用)。
|
|
77
|
+
*/
|
|
78
|
+
export declare function sweepStaleTempMcpConfigs(dir?: string, minAgeMs?: number): number;
|
|
79
|
+
//# sourceMappingURL=tempMcpConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tempMcpConfig.d.ts","sourceRoot":"","sources":["../../src/lib/tempMcpConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,+CAA+C;AAC/C,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAQlD,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,QAAiB,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc;IACd,IAAI,EAAE,MAAM,CAAC;IACb,cAAc;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,+CAA+C;IAC/C,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CAC1C;AAED,wDAAwD;AACxD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAIpF;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,EAAE,CAgBtE;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQnD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAmB5D;AAED,sEAAsE;AACtE,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAQnE;AAED,mDAAmD;AACnD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CAyBpE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,GAAE,MAAoB,EACzB,QAAQ,GAAE,MAA2B,GACpC,MAAM,CAuBR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(){var 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)};return function(t){if(t&&t.__esModule)return t;var n={};if(null!=t)for(var o=e(t),r=0;r<o.length;r++)"default"!==o[r]&&__createBinding(n,t,o[r]);return __setModuleDefault(n,t),n}}();Object.defineProperty(exports,"__esModule",{value:!0}),exports.DEFAULT_MIN_AGE_MS=exports.TEMP_CONFIG_PREFIX=void 0,exports.parseTempConfigName=parseTempConfigName,exports.tempConfigFileName=tempConfigFileName,exports.planTempMcpConfigSweep=planTempMcpConfigSweep,exports.isProcessAlive=isProcessAlive,exports.readInUseMcpConfigPaths=readInUseMcpConfigPaths,exports.collectMcpConfigPaths=collectMcpConfigPaths,exports.collectSweepCandidates=collectSweepCandidates,exports.sweepStaleTempMcpConfigs=sweepStaleTempMcpConfigs;const node_child_process_1=require("node:child_process"),fs=__importStar(require("node:fs")),os=__importStar(require("node:os")),path=__importStar(require("node:path"));exports.TEMP_CONFIG_PREFIX="bluelamp-mcp-";const TEMP_CONFIG_NAME=/^bluelamp-mcp-(?:(\d+)-[0-9a-f]+|\d+)\.json$/;function parseTempConfigName(e){const t=TEMP_CONFIG_NAME.exec(e);return t?{ownerPid:t[1]?Number(t[1]):null}:null}function tempConfigFileName(e,t){return`${exports.TEMP_CONFIG_PREFIX}${e}-${t}.json`}function planTempMcpConfigSweep(e){const{candidates:t,inUsePaths:n,nowMs:o,ownUid:r,minAgeMs:s,isProcessAlive:i}=e;if(null===n)return[];const c=[];for(const e of t){const t=parseTempConfigName(e.name);t&&e.isFile&&(n.has(e.path)||null!==r&&e.uid!==r||o-e.mtimeMs<s||null!==t.ownerPid&&i(t.ownerPid)||c.push(e.path))}return c}function isProcessAlive(e){if(!Number.isInteger(e)||e<=0)return!0;try{return process.kill(e,0),!0}catch(e){return"EPERM"===e?.code}}function readInUseMcpConfigPaths(){let e;try{const t=(0,node_child_process_1.spawnSync)("ps",["-Awwo","pid=,command="],{encoding:"utf8",maxBuffer:67108864});if(t.error||"string"!=typeof t.stdout)return null;e=t.stdout}catch{return null}const t=e.split("\n"),n=String(process.pid);return t.some(e=>e.trim().split(/\s+/)[0]===n)?collectMcpConfigPaths(e):null}function collectMcpConfigPaths(e){const t=new Set,n=/--mcp-config[=\s]+(\S+)/g;let o;for(;null!==(o=n.exec(e));)t.add(o[1]);return t}function collectSweepCandidates(e){let t;try{t=fs.readdirSync(e)}catch{return[]}const n=[];for(const o of t){if(!parseTempConfigName(o))continue;const t=path.join(e,o);try{const e=fs.lstatSync(t);n.push({path:t,name:o,uid:e.uid,mtimeMs:e.mtimeMs,isFile:e.isFile()})}catch{}}return n}function sweepStaleTempMcpConfigs(e=os.tmpdir(),t=exports.DEFAULT_MIN_AGE_MS){try{const n=planTempMcpConfigSweep({candidates:collectSweepCandidates(e),inUsePaths:readInUseMcpConfigPaths(),nowMs:Date.now(),ownUid:"function"==typeof process.getuid?process.getuid():null,minAgeMs:t,isProcessAlive:isProcessAlive});let o=0;for(const e of n)try{fs.unlinkSync(e),o+=1}catch{}return o}catch{return 0}}exports.DEFAULT_MIN_AGE_MS=36e5;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tempMcpConfig.js","sourceRoot":"","sources":["../../src/lib/tempMcpConfig.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bluelamp",
|
|
3
|
-
"version": "6.6.
|
|
3
|
+
"version": "6.6.2",
|
|
4
4
|
"description": "BlueLamp CLI: 旧 bluelampportal/mcp の auth / 200+ bluelamp1-N binary / postinstall scripts を TypeScript 化して monorepo に統合したパッケージ。",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bluelamp",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"prepublishOnly": "pnpm run build"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
+
"@bluelamp/cli-token": "1.0.1",
|
|
43
44
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
44
45
|
"cross-spawn": "^7.0.6",
|
|
45
46
|
"dotenv": "^16.6.1",
|