bluelamp 6.6.12 → 6.6.13

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.
@@ -0,0 +1,86 @@
1
+ /**
2
+ * `bluelamp-secret exec` — 金庫の値を**子プロセスの環境変数にだけ**入れてコマンドを走らせる(箱 n=2018 設計④)。
3
+ *
4
+ * 🕳 塞いでいる穴: MCP の `get_secret` は値を返り値にしていたため、値が会話の転写に残った。
5
+ * その口を閉じると、値を Bash で使っていた手順(21 日で 235 回)が壊れる。⇒ 値を「見せずに使う」口をここに置く。
6
+ *
7
+ * 🔑 値の通り道は「金庫の HTTP 応答 → 子の env」の 1 本だけ。
8
+ * ⛔ argv・標準出力・標準エラー・ログ・ファイル・エラーの文言に値を出さない。
9
+ * ⛔ HTTP の本文・fetch の例外をそのまま出さない(本文は値を、例外は要求を引用しうる)。
10
+ * 失敗は「どの ENV 名・どの金庫の名前が・なぜ」だけを返す。
11
+ * 🔑 使用の記録: `GET /vault/:service` は backend 側で監査 `get`(誰が・どの秘密を)を 1 行書く。
12
+ *
13
+ * 判定と組み立ては純粋関数(unit で直接撃つ)、網と子プロセスは `runSecretExec` の deps に寄せる。
14
+ */
15
+ /** ENV 名として受ける形。⛔ これ以外(小文字・記号・先頭数字)は受けない */
16
+ export declare const ENV_NAME_PATTERN: RegExp;
17
+ /** 既定のポータル API(lib/mcp-server/portal-api-client.cjs・TokenManager と同じ値) */
18
+ export declare const DEFAULT_PORTAL_API_BASE_URL = "https://api.motohi.jp/api/bluelamp";
19
+ export declare const USAGE: string;
20
+ export interface SecretBinding {
21
+ env: string;
22
+ name: string;
23
+ }
24
+ export type ParseResult = {
25
+ ok: true;
26
+ bindings: SecretBinding[];
27
+ command: string;
28
+ args: string[];
29
+ } | {
30
+ ok: false;
31
+ help: boolean;
32
+ error: string;
33
+ };
34
+ /** 引数を解析する(`process.argv.slice(2)` を受ける)。値はここに来ない=金庫の名前だけ */
35
+ export declare function parseExecArgs(argv: readonly string[]): ParseResult;
36
+ /** 基底 URL(BLUELAMP_PORTAL_API_BASE_URL > PORTAL_URL > 既定。portal-api-client.cjs と同じ順) */
37
+ export declare function resolvePortalApiBaseUrl(env: Readonly<Record<string, string | undefined>>): string;
38
+ /**
39
+ * 金庫の 1 件を引く URL。
40
+ * 🔑 vault の sub-app は内部で `/api/vault/...` に経路を切るが、bluelamp module ごと `/api/bluelamp` に
41
+ * 載っているので外から見える経路は `<base>/vault/...`(base は /api/bluelamp まで含む)。
42
+ * 🔬 実測(無認証): `/api/bluelamp/api/vault/x` → 404/`/api/bluelamp/vault/x` → 401。
43
+ * mcp-list/bluelamp/playwright/src/fillSecret.ts の VAULT_FILL_PATH と同じ結論。
44
+ */
45
+ export declare function buildVaultUrl(baseUrl: string, name: string): string;
46
+ /** 子の env を合成する(親を書き換えない) */
47
+ export declare function composeChildEnv(parentEnv: Readonly<Record<string, string | undefined>>, values: Readonly<Record<string, string>>): Record<string, string>;
48
+ /** 金庫の応答本文から値を取り出す。形が違えば null(⛔ 本文を呼び手へ返さない) */
49
+ export declare function extractSecretValue(body: unknown): string | null;
50
+ /** HTTP の状態を理由の文言にする(⛔ 本文は使わない) */
51
+ export declare function describeVaultStatus(status: number): string;
52
+ /** 子の終わり方を終了コードにする(シグナルは 128+番号=シェルと同じ) */
53
+ export declare function exitCodeOf(code: number | null, signal: string | null, signalNumbers: Readonly<Record<string, number>>): number;
54
+ interface FetchResponseLike {
55
+ ok: boolean;
56
+ status: number;
57
+ json(): Promise<unknown>;
58
+ }
59
+ interface ChildLike {
60
+ on(event: 'exit', cb: (code: number | null, signal: string | null) => void): unknown;
61
+ on(event: 'error', cb: (err: {
62
+ code?: string;
63
+ }) => void): unknown;
64
+ kill(signal?: string): unknown;
65
+ }
66
+ export interface SecretExecDeps {
67
+ env: Readonly<Record<string, string | undefined>>;
68
+ loadToken: () => string | null;
69
+ fetch: (url: string, init: {
70
+ method: string;
71
+ headers: Record<string, string>;
72
+ }) => Promise<FetchResponseLike>;
73
+ spawn: (command: string, args: string[], options: {
74
+ stdio: 'inherit';
75
+ shell: false;
76
+ env: Record<string, string>;
77
+ }) => ChildLike;
78
+ stderr: (text: string) => void;
79
+ signalNumbers: Readonly<Record<string, number>>;
80
+ /** 親が受けたシグナルを子へ回す口(無ければ回さない)。戻り値は解除関数 */
81
+ onParentSignal?: (forward: (signal: string) => void) => () => void;
82
+ }
83
+ /** 実行する。戻り値は終了コード */
84
+ export declare function runSecretExec(argv: readonly string[], deps: SecretExecDeps): Promise<number>;
85
+ export {};
86
+ //# sourceMappingURL=secretExec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secretExec.d.ts","sourceRoot":"","sources":["../../src/lib/secretExec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ "use strict";function parseExecArgs(e){if(0===e.length||"-h"===e[0]||"--help"===e[0]||"help"===e[0])return{ok:!1,help:!0,error:""};if("exec"!==e[0])return{ok:!1,help:!1,error:"不明な操作です(受けるのは exec だけ)"};const r=e.indexOf("--");if(-1===r)return{ok:!1,help:!1,error:"`--` の後に実行するコマンドを書いてください"};const t=e.slice(1,r),o=e[r+1];if(void 0===o||""===o)return{ok:!1,help:!1,error:"`--` の後に実行するコマンドがありません"};if(0===t.length)return{ok:!1,help:!1,error:"<ENV名>=<金庫の名前> を 1 つ以上書いてください"};const n=[],s=new Set;for(const e of t){const r=e.indexOf("=");if(r<=0)return{ok:!1,help:!1,error:`<ENV名>=<金庫の名前> の形ではない引数があります(${n.length+1} 番目)`};const t=e.slice(0,r),o=e.slice(r+1);if(!exports.ENV_NAME_PATTERN.test(t))return{ok:!1,help:!1,error:`ENV 名は ^[A-Z_][A-Z0-9_]*$ の形だけ受けます(${n.length+1} 番目)`};if(""===o)return{ok:!1,help:!1,error:`${t}: 金庫の名前が空です`};if("."===o||".."===o)return{ok:!1,help:!1,error:`${t}: 金庫の名前に . / .. は使えません`};if(s.has(t))return{ok:!1,help:!1,error:`${t}: 同じ ENV 名が 2 回あります`};s.add(t),n.push({env:t,name:o})}return{ok:!0,bindings:n,command:o,args:e.slice(r+2)}}function resolvePortalApiBaseUrl(e){return(e.BLUELAMP_PORTAL_API_BASE_URL||e.PORTAL_URL||exports.DEFAULT_PORTAL_API_BASE_URL).replace(/\/+$/,"")}function buildVaultUrl(e,r){return`${e}/vault/${encodeURIComponent(r)}`}function composeChildEnv(e,r){const t={};for(const[r,o]of Object.entries(e))"string"==typeof o&&(t[r]=o);for(const[e,o]of Object.entries(r))t[e]=o;return t}function extractSecretValue(e){if(!e||"object"!=typeof e)return null;const r=e;return!0===r.success&&r.data&&"object"==typeof r.data&&"string"==typeof r.data.secret?r.data.secret:null}function describeVaultStatus(e){return 401===e?"未ログインかトークンが無効です(bluelamp1 などでログインし直してください)":403===e?"この秘密へのアクセス権がありません":404===e?"金庫に見つかりません":`金庫が HTTP ${e} を返しました`}function exitCodeOf(e,r,t){return"number"==typeof e?e:r&&"number"==typeof t[r]?128+t[r]:1}Object.defineProperty(exports,"__esModule",{value:!0}),exports.USAGE=exports.DEFAULT_PORTAL_API_BASE_URL=exports.ENV_NAME_PATTERN=void 0,exports.parseExecArgs=parseExecArgs,exports.resolvePortalApiBaseUrl=resolvePortalApiBaseUrl,exports.buildVaultUrl=buildVaultUrl,exports.composeChildEnv=composeChildEnv,exports.extractSecretValue=extractSecretValue,exports.describeVaultStatus=describeVaultStatus,exports.exitCodeOf=exitCodeOf,exports.runSecretExec=runSecretExec,exports.ENV_NAME_PATTERN=/^[A-Z_][A-Z0-9_]*$/,exports.DEFAULT_PORTAL_API_BASE_URL="https://api.motohi.jp/api/bluelamp",exports.USAGE='使い方: bluelamp-secret exec <ENV名>=<金庫の名前> [<ENV名>=<金庫の名前> …] -- <コマンド> [引数…]\n 金庫の値を子プロセスの環境変数にだけ入れて <コマンド> を実行し、その終了コードで終わります。\n 値は画面・引数・ログに出ません。シェルの展開が要るときは -- sh -c \'psql "$PGURL" -c "select 1"\' のように渡します。\n';const PREFIX="bluelamp-secret: ";async function runSecretExec(e,r){const t=parseExecArgs(e);if(!t.ok)return t.help?(r.stderr(exports.USAGE),0===e.length?2:0):(r.stderr(`${PREFIX}${t.error}\n${exports.USAGE}`),2);const o=r.loadToken();if(!o)return r.stderr(`${PREFIX}未ログインです(bluelamp1 などでログインしてから撃ってください)\n`),1;const n=resolvePortalApiBaseUrl(r.env),s={};for(const{env:e,name:c}of t.bindings){let t,l;try{t=await r.fetch(buildVaultUrl(n,c),{method:"GET",headers:{"X-CLI-Token":o,Accept:"application/json","User-Agent":"bluelamp-secret/1"}})}catch{return r.stderr(`${PREFIX}${e}=${c}: ポータルに届きませんでした\n`),1}if(!t.ok)return r.stderr(`${PREFIX}${e}=${c}: ${describeVaultStatus(t.status)}\n`),1;try{l=await t.json()}catch{return r.stderr(`${PREFIX}${e}=${c}: 金庫の応答を読めませんでした\n`),1}const a=extractSecretValue(l);if(null===a)return r.stderr(`${PREFIX}${e}=${c}: 金庫の応答に値がありませんでした\n`),1;s[e]=a}const c=composeChildEnv(r.env,s);return new Promise(e=>{let o=!1,n=()=>{};const s=r=>{o||(o=!0,n(),e(r))};let l;try{l=r.spawn(t.command,t.args,{stdio:"inherit",shell:!1,env:c})}catch(e){const o=e?.code;return r.stderr(`${PREFIX}コマンドを起動できませんでした: ${t.command}${o?`(${o})`:""}\n`),void s(127)}r.onParentSignal&&(n=r.onParentSignal(e=>{try{l.kill(e)}catch{}})),l.on("error",e=>{r.stderr(`${PREFIX}コマンドを起動できませんでした: ${t.command}${e?.code?`(${e.code})`:""}\n`),s(127)}),l.on("exit",(e,t)=>s(exitCodeOf(e,t,r.signalNumbers)))})}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secretExec.js","sourceRoot":"","sources":["../../src/lib/secretExec.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAuBH,sCA8CC;AAGD,0DAGC;AASD,sCAEC;AAGD,0CAQC;AAGD,gDAKC;AAGD,kDAKC;AAGD,gCAIC;AAkCD,sCAqFC;AA7OD,4CAA4C;AAC/B,QAAA,gBAAgB,GAAG,oBAAoB,CAAC;AAErD,0EAA0E;AAC7D,QAAA,2BAA2B,GAAG,oCAAoC,CAAC;AAEnE,QAAA,KAAK,GAChB,+EAA+E;IAC/E,sDAAsD;IACtD,qFAAqF,CAAC;AAWxF,6DAA6D;AAC7D,SAAgB,aAAa,CAAC,IAAuB;IACnD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QACxF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC9C,CAAC;IACD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;IACrE,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;IACvE,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC9B,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QAC5C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;IAC5E,CAAC;IACD,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,+DAA+D;QAC/D,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACZ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,gCAAgC,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QACtG,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,wBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,sCAAsC,QAAQ,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QAC5G,CAAC;QACD,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,aAAa,EAAE,CAAC;QAChE,CAAC;QACD,gEAAgE;QAChE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,wBAAwB,EAAE,CAAC;QAC3E,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAG,qBAAqB,EAAE,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,wFAAwF;AACxF,SAAgB,uBAAuB,CAAC,GAAiD;IACvF,MAAM,IAAI,GAAG,GAAG,CAAC,4BAA4B,IAAI,GAAG,CAAC,UAAU,IAAI,mCAA2B,CAAC;IAC/F,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,OAAe,EAAE,IAAY;IACzD,OAAO,GAAG,OAAO,UAAU,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;AACxD,CAAC;AAED,6BAA6B;AAC7B,SAAgB,eAAe,CAC7B,SAAuD,EACvD,MAAwC;IAExC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gDAAgD;AAChD,SAAgB,kBAAkB,CAAC,IAAa;IAC9C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,CAAC,GAAG,IAA0D,CAAC;IACrE,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7E,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAClE,CAAC;AAED,mCAAmC;AACnC,SAAgB,mBAAmB,CAAC,MAAc;IAChD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,4CAA4C,CAAC;IACxE,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,mBAAmB,CAAC;IAC/C,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,YAAY,CAAC;IACxC,OAAO,YAAY,MAAM,SAAS,CAAC;AACrC,CAAC;AAED,2CAA2C;AAC3C,SAAgB,UAAU,CAAC,IAAmB,EAAE,MAAqB,EAAE,aAA+C;IACpH,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,MAAM,IAAI,OAAO,aAAa,CAAC,MAAM,CAAC,KAAK,QAAQ;QAAE,OAAO,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC5F,OAAO,CAAC,CAAC;AACX,CAAC;AA+BD,MAAM,MAAM,GAAG,mBAAmB,CAAC;AAEnC,qBAAqB;AACd,KAAK,UAAU,aAAa,CAAC,IAAuB,EAAE,IAAoB;IAC/E,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,aAAK,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,KAAK,aAAK,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,yCAAyC,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,uCAAuC;IACvC,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC5C,IAAI,GAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;gBACnD,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,mBAAmB,EAAE;aACjG,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;YACrC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,GAAG,IAAI,IAAI,mBAAmB,CAAC,CAAC;YACxD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,GAAG,IAAI,IAAI,KAAK,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7E,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,IAAa,CAAC;QAClB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,GAAG,IAAI,IAAI,oBAAoB,CAAC,CAAC;YACzD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,GAAG,IAAI,IAAI,sBAAsB,CAAC,CAAC;YAC3D,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACnD,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACrC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,MAAM,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;YAC9B,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,MAAM,EAAE,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QACF,IAAI,KAAgB,CAAC;QACrB,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrG,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,GAAI,CAA8B,EAAE,IAAI,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,oBAAoB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACvF,MAAM,CAAC,GAAG,CAAC,CAAC;YACZ,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtC,IAAI,CAAC;oBACH,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW;gBACb,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACxB,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM,oBAAoB,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAChG,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bluelamp",
3
- "version": "6.6.12",
3
+ "version": "6.6.13",
4
4
  "description": "BlueLamp CLI: 旧 bluelampportal/mcp の auth / 200+ bluelamp1-N binary / postinstall scripts を TypeScript 化して monorepo に統合したパッケージ。",
5
5
  "keywords": [
6
6
  "bluelamp",
@@ -359,6 +359,7 @@
359
359
  "bluelamp297": "./dist/bin/bluelamp297.mjs",
360
360
  "bluelamp298": "./dist/bin/bluelamp298.mjs",
361
361
  "bluelamp299": "./dist/bin/bluelamp299.mjs",
362
- "bluelamp300": "./dist/bin/bluelamp300.mjs"
362
+ "bluelamp300": "./dist/bin/bluelamp300.mjs",
363
+ "bluelamp-secret": "./dist/bin/bluelamp-secret.mjs"
363
364
  }
364
365
  }