bizboost 6.4.13 → 6.6.8

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 (181) hide show
  1. package/README.md +97 -11
  2. package/dist/auth/InteractiveLogin.js +1 -1
  3. package/dist/auth/PortalAuthClient.d.ts +1 -1
  4. package/dist/auth/PortalAuthClient.js +1 -1
  5. package/dist/auth/TokenManager.d.ts +5 -14
  6. package/dist/auth/TokenManager.d.ts.map +1 -1
  7. package/dist/auth/TokenManager.js +1 -1
  8. package/dist/auth/TokenManager.js.map +1 -1
  9. package/dist/auth/portalTokenStore.d.ts +19 -0
  10. package/dist/auth/portalTokenStore.d.ts.map +1 -0
  11. package/dist/auth/portalTokenStore.js +1 -0
  12. package/dist/auth/portalTokenStore.js.map +1 -0
  13. package/dist/bin/bizboost201.mjs +2 -0
  14. package/dist/bin/bizboost202.mjs +2 -0
  15. package/dist/bin/bizboost203.mjs +2 -0
  16. package/dist/bin/bizboost204.mjs +2 -0
  17. package/dist/bin/bizboost205.mjs +2 -0
  18. package/dist/bin/bizboost206.mjs +2 -0
  19. package/dist/bin/bizboost207.mjs +2 -0
  20. package/dist/bin/bizboost208.mjs +2 -0
  21. package/dist/bin/bizboost209.mjs +2 -0
  22. package/dist/bin/bizboost210.mjs +2 -0
  23. package/dist/bin/bizboost211.mjs +2 -0
  24. package/dist/bin/bizboost212.mjs +2 -0
  25. package/dist/bin/bizboost213.mjs +2 -0
  26. package/dist/bin/bizboost214.mjs +2 -0
  27. package/dist/bin/bizboost215.mjs +2 -0
  28. package/dist/bin/bizboost216.mjs +2 -0
  29. package/dist/bin/bizboost217.mjs +2 -0
  30. package/dist/bin/bizboost218.mjs +2 -0
  31. package/dist/bin/bizboost219.mjs +2 -0
  32. package/dist/bin/bizboost220.mjs +2 -0
  33. package/dist/bin/bizboost221.mjs +2 -0
  34. package/dist/bin/bizboost222.mjs +2 -0
  35. package/dist/bin/bizboost223.mjs +2 -0
  36. package/dist/bin/bizboost224.mjs +2 -0
  37. package/dist/bin/bizboost225.mjs +2 -0
  38. package/dist/bin/bizboost226.mjs +2 -0
  39. package/dist/bin/bizboost227.mjs +2 -0
  40. package/dist/bin/bizboost228.mjs +2 -0
  41. package/dist/bin/bizboost229.mjs +2 -0
  42. package/dist/bin/bizboost230.mjs +2 -0
  43. package/dist/bin/bizboost231.mjs +2 -0
  44. package/dist/bin/bizboost232.mjs +2 -0
  45. package/dist/bin/bizboost233.mjs +2 -0
  46. package/dist/bin/bizboost234.mjs +2 -0
  47. package/dist/bin/bizboost235.mjs +2 -0
  48. package/dist/bin/bizboost236.mjs +2 -0
  49. package/dist/bin/bizboost237.mjs +2 -0
  50. package/dist/bin/bizboost238.mjs +2 -0
  51. package/dist/bin/bizboost239.mjs +2 -0
  52. package/dist/bin/bizboost240.mjs +2 -0
  53. package/dist/bin/bizboost241.mjs +2 -0
  54. package/dist/bin/bizboost242.mjs +2 -0
  55. package/dist/bin/bizboost243.mjs +2 -0
  56. package/dist/bin/bizboost244.mjs +2 -0
  57. package/dist/bin/bizboost245.mjs +2 -0
  58. package/dist/bin/bizboost246.mjs +2 -0
  59. package/dist/bin/bizboost247.mjs +2 -0
  60. package/dist/bin/bizboost248.mjs +2 -0
  61. package/dist/bin/bizboost249.mjs +2 -0
  62. package/dist/bin/bizboost250.mjs +2 -0
  63. package/dist/bin/bizboost251.mjs +2 -0
  64. package/dist/bin/bizboost252.mjs +2 -0
  65. package/dist/bin/bizboost253.mjs +2 -0
  66. package/dist/bin/bizboost254.mjs +2 -0
  67. package/dist/bin/bizboost255.mjs +2 -0
  68. package/dist/bin/bizboost256.mjs +2 -0
  69. package/dist/bin/bizboost257.mjs +2 -0
  70. package/dist/bin/bizboost258.mjs +2 -0
  71. package/dist/bin/bizboost259.mjs +2 -0
  72. package/dist/bin/bizboost260.mjs +2 -0
  73. package/dist/bin/bizboost261.mjs +2 -0
  74. package/dist/bin/bizboost262.mjs +2 -0
  75. package/dist/bin/bizboost263.mjs +2 -0
  76. package/dist/bin/bizboost264.mjs +2 -0
  77. package/dist/bin/bizboost265.mjs +2 -0
  78. package/dist/bin/bizboost266.mjs +2 -0
  79. package/dist/bin/bizboost267.mjs +2 -0
  80. package/dist/bin/bizboost268.mjs +2 -0
  81. package/dist/bin/bizboost269.mjs +2 -0
  82. package/dist/bin/bizboost270.mjs +2 -0
  83. package/dist/bin/bizboost271.mjs +2 -0
  84. package/dist/bin/bizboost272.mjs +2 -0
  85. package/dist/bin/bizboost273.mjs +2 -0
  86. package/dist/bin/bizboost274.mjs +2 -0
  87. package/dist/bin/bizboost275.mjs +2 -0
  88. package/dist/bin/bizboost276.mjs +2 -0
  89. package/dist/bin/bizboost277.mjs +2 -0
  90. package/dist/bin/bizboost278.mjs +2 -0
  91. package/dist/bin/bizboost279.mjs +2 -0
  92. package/dist/bin/bizboost280.mjs +2 -0
  93. package/dist/bin/bizboost281.mjs +2 -0
  94. package/dist/bin/bizboost282.mjs +2 -0
  95. package/dist/bin/bizboost283.mjs +2 -0
  96. package/dist/bin/bizboost284.mjs +2 -0
  97. package/dist/bin/bizboost285.mjs +2 -0
  98. package/dist/bin/bizboost286.mjs +2 -0
  99. package/dist/bin/bizboost287.mjs +2 -0
  100. package/dist/bin/bizboost288.mjs +2 -0
  101. package/dist/bin/bizboost289.mjs +2 -0
  102. package/dist/bin/bizboost290.mjs +2 -0
  103. package/dist/bin/bizboost291.mjs +2 -0
  104. package/dist/bin/bizboost292.mjs +2 -0
  105. package/dist/bin/bizboost293.mjs +2 -0
  106. package/dist/bin/bizboost294.mjs +2 -0
  107. package/dist/bin/bizboost295.mjs +2 -0
  108. package/dist/bin/bizboost296.mjs +2 -0
  109. package/dist/bin/bizboost297.mjs +2 -0
  110. package/dist/bin/bizboost298.mjs +2 -0
  111. package/dist/bin/bizboost299.mjs +2 -0
  112. package/dist/bin/bizboost300.mjs +2 -0
  113. package/dist/bin/bluelamp-vscode-base.mjs +1 -1
  114. package/dist/i18n/en.d.ts +6 -1
  115. package/dist/i18n/en.d.ts.map +1 -1
  116. package/dist/i18n/en.js +1 -1
  117. package/dist/i18n/en.js.map +1 -1
  118. package/dist/i18n/index.d.ts +1 -1
  119. package/dist/i18n/ja.d.ts +6 -1
  120. package/dist/i18n/ja.d.ts.map +1 -1
  121. package/dist/i18n/ja.js +1 -1
  122. package/dist/i18n/ja.js.map +1 -1
  123. package/dist/index.d.ts +2 -1
  124. package/dist/index.d.ts.map +1 -1
  125. package/dist/index.js +1 -1
  126. package/dist/index.js.map +1 -1
  127. package/dist/lib/account-mcp/index.cjs +1 -1
  128. package/dist/lib/accountAssurance.d.ts +41 -0
  129. package/dist/lib/accountAssurance.d.ts.map +1 -0
  130. package/dist/lib/accountAssurance.js +1 -0
  131. package/dist/lib/accountAssurance.js.map +1 -0
  132. package/dist/lib/claudeAccount.d.ts +45 -0
  133. package/dist/lib/claudeAccount.d.ts.map +1 -0
  134. package/dist/lib/claudeAccount.js +1 -0
  135. package/dist/lib/claudeAccount.js.map +1 -0
  136. package/dist/lib/claudeOnboardingSeed.d.ts +131 -0
  137. package/dist/lib/claudeOnboardingSeed.d.ts.map +1 -0
  138. package/dist/lib/claudeOnboardingSeed.js +1 -0
  139. package/dist/lib/claudeOnboardingSeed.js.map +1 -0
  140. package/dist/lib/debugRedaction.d.ts +42 -0
  141. package/dist/lib/debugRedaction.d.ts.map +1 -0
  142. package/dist/lib/debugRedaction.js +1 -0
  143. package/dist/lib/debugRedaction.js.map +1 -0
  144. package/dist/lib/headlessLaunch.d.ts +63 -0
  145. package/dist/lib/headlessLaunch.d.ts.map +1 -0
  146. package/dist/lib/headlessLaunch.js +1 -0
  147. package/dist/lib/headlessLaunch.js.map +1 -0
  148. package/dist/lib/inheritedTenant.d.ts +44 -0
  149. package/dist/lib/inheritedTenant.d.ts.map +1 -0
  150. package/dist/lib/inheritedTenant.js +1 -0
  151. package/dist/lib/inheritedTenant.js.map +1 -0
  152. package/dist/lib/mcp-server/index.cjs +1 -1
  153. package/dist/lib/mcp-server/install-package.cjs +1 -0
  154. package/dist/lib/mcp-server/mcp-version-advisor.cjs +1 -0
  155. package/dist/lib/mcp-server/portal-api-client.cjs +1 -1
  156. package/dist/lib/mcpJsonSelfHeal.d.ts +77 -0
  157. package/dist/lib/mcpJsonSelfHeal.d.ts.map +1 -0
  158. package/dist/lib/mcpJsonSelfHeal.js +1 -0
  159. package/dist/lib/mcpJsonSelfHeal.js.map +1 -0
  160. package/dist/lib/promptFailureGuidance.d.ts +30 -0
  161. package/dist/lib/promptFailureGuidance.d.ts.map +1 -0
  162. package/dist/lib/promptFailureGuidance.js +1 -0
  163. package/dist/lib/promptFailureGuidance.js.map +1 -0
  164. package/dist/lib/requireFromPackage.cjs +1 -0
  165. package/dist/lib/slotKeywordResolve.d.ts +69 -0
  166. package/dist/lib/slotKeywordResolve.d.ts.map +1 -0
  167. package/dist/lib/slotKeywordResolve.js +1 -0
  168. package/dist/lib/slotKeywordResolve.js.map +1 -0
  169. package/dist/lib/tempMcpConfig.d.ts +79 -0
  170. package/dist/lib/tempMcpConfig.d.ts.map +1 -0
  171. package/dist/lib/tempMcpConfig.js +1 -0
  172. package/dist/lib/tempMcpConfig.js.map +1 -0
  173. package/dist/lib/whoami.d.ts +34 -0
  174. package/dist/lib/whoami.d.ts.map +1 -0
  175. package/dist/lib/whoami.js +1 -0
  176. package/dist/lib/whoami.js.map +1 -0
  177. package/dist/scripts/generate-commands.js +1 -1
  178. package/dist/shared/claude-bin.js +1 -0
  179. package/dist/utils/logger.d.ts +1 -1
  180. package/package.json +114 -11
  181. package/verify-release.sh +154 -0
package/README.md CHANGED
@@ -1,11 +1,11 @@
1
- # bluelamp-neo
1
+ # bluelamp
2
2
 
3
- BlueLamp Neo CLI — Claude Code 用 MCP セットアップ + 200 個の `bluelamp1` 〜 `bluelamp200` コマンドを提供する npm パッケージ。
3
+ BlueLamp CLI — Claude Code 用 MCP セットアップ + 200 個の `bluelamp1` 〜 `bluelamp200` コマンドを提供する npm パッケージ。
4
4
 
5
5
  ## インストール (受講生向け)
6
6
 
7
7
  ```bash
8
- npm install -g bluelamp-neo
8
+ npm install -g bluelamp
9
9
  ```
10
10
 
11
11
  インストール後、 `bluelamp1` 〜 `bluelamp200` のいずれかを実行すると Claude Code が起動し、 対応する slot の MCP 設定がロードされます。
@@ -16,6 +16,68 @@ bluelamp42 # slot #42
16
16
  # ...
17
17
  ```
18
18
 
19
+ ## 配布物が難読化されていることについて
20
+
21
+ npm で配布している `bluelamp` の `dist/` は、**意図的に難読化してあります**。中身がそのまま読めないのはビルドの設計であって、隠しごとではありません。以下にその理由と、正規のビルドであることの確かめ方を記します。
22
+
23
+ ### なぜ難読化しているのか
24
+
25
+ - **認証とトークンの取り扱いを守るため。** この CLI は利用者の資格情報とアクセストークンを端末上で扱います。その取り回しを読める形のまま配ると、なりすましやトークンの窃取を試みる側に手順を渡すことになります。
26
+ - **当社の知的資産を守るため。** BlueLamp の価値は積み上げてきた設計そのものにあり、配布物はその一部を含みます。
27
+
28
+ 難読化が掛かるのは配布物 (`dist/`) だけです。**ソースは非公開です。** そのうえで、配布物が当社の CI が出した正規ビルドであることは、第三者の立場で検証できます (下の「正規のビルドであることの確かめ方」)。ビルドの段取りそのものは下の「ビルド出力」の節のとおりです。
29
+
30
+ ### 利用者にとって何が変わらないのか
31
+
32
+ - **機能・挙動は変わりません。** 難読化は publish 用ビルドの最終工程で、実行される処理は tsc が出したものと同じです。
33
+ - **通信先は増えません。** CLI が接続するのは当社ポータルの API と、起動する Claude Code だけです。送信先はコードに固定されており、設定で任意の URL に向け替えることはできません。
34
+ - **第三者の解析サービスへの送信はありません。** テレメトリ / 解析 SDK を同梱していません。当社ポータルとの通信は認証と機能提供のためのものです。
35
+ - **認証トークンは利用者の端末内 (`~/.musuhi/portal-token.enc`) にのみ保存されます。**
36
+
37
+ ### 正規のビルドであることの確かめ方
38
+
39
+ 公開されている tarball が当社の CI が出した正規ビルドであることは、**第三者の立場で検証できます**。署名は cosign の keyless 署名で行い、その記録は公開の透明性ログ (Rekor) に載ります。
40
+
41
+ 🔑 **下の手順 1・2 で参照するのは npm registry と公開 Rekor だけで、当社のサーバーは一切登場しません。** 当社を信用しなくても確かめられる、というのがこの手順の要点です。必要なのは `curl` / `openssl` / `node` だけで、**cosign のインストールは要りません**。
42
+
43
+ **1. registry が配っている tarball を取得し、ハッシュを出す**
44
+
45
+ ```bash
46
+ V=<インストールした版> # npm ls -g bluelamp で確認できます
47
+ curl -sSL "https://registry.npmjs.org/bluelamp/-/bluelamp-$V.tgz" -o "bluelamp-$V.tgz"
48
+ shasum -a 256 "bluelamp-$V.tgz"
49
+ ```
50
+
51
+ **2. そのハッシュで公開透明性ログ (Rekor) を引く**
52
+
53
+ ```bash
54
+ SHA=<手順 1 で出た 64 桁>
55
+ curl -s -X POST -H 'Content-Type: application/json' \
56
+ -d "{\"hash\":\"sha256:$SHA\"}" \
57
+ https://rekor.sigstore.dev/api/v1/index/retrieve
58
+ ```
59
+
60
+ エントリが返れば、その tarball が当社の GitHub Actions によって署名され、公開ログに記録されていることを意味します。
61
+
62
+ **3. さらに厳密に確かめる場合** — 証明書チェーンと署名者の固定まで検証するスクリプトをパッケージに同梱しています。グローバルインストールなら次の 1 行で実行できます (依存は上と同じ `curl` / `openssl` / `node` だけです)。
63
+
64
+ ```bash
65
+ "$(npm root -g)/bluelamp/verify-release.sh" "$V"
66
+ ```
67
+
68
+ ⚠️ **信頼の起点は手順 1・2** — ご自身の手で公開ログを引き、目で読む記録 — の側にあります。検証を代行するスクリプトを配布物に同梱しても、それは信頼の起点にはなりません (改ざんされた tarball は、改ざんされた検証器を同梱することもできるためです)。
69
+
70
+ 📌 署名が付くのは、この README を同梱した版以降のリリースです。それより前の版では手順 2 でエントリが返りませんが、改ざんを意味するものではありません。
71
+
72
+ ### ウイルス対策ソフトが反応した場合
73
+
74
+ 難読化されたコードは、その形からヒューリスティックに検知されることがあります (誤検知)。お使いのウイルス対策製品が `bluelamp` を検知した場合は、下記の窓口から誤検知として報告できます。
75
+
76
+ - **各ウイルス対策ベンダーの窓口一覧**: https://docs.virustotal.com/docs/false-positive-contacts
77
+ VirusTotal 自身は判定を出さず、誤検知は各エンジンのベンダーへ直接報告する形になっています。上記ページに 150 社以上の窓口がまとまっているので、検知した製品の窓口から報告してください。
78
+ - **Microsoft Defender (Windows)**: https://www.microsoft.com/en-us/wdsi/filesubmission
79
+ サインイン不要でファイルを送信でき、誤検知として申告できます。
80
+
19
81
  ## 構成
20
82
 
21
83
  - `src/auth/` — Portal API auth client + token manager + interactive login
@@ -69,7 +131,9 @@ cloud_proxy(portal 転送)では触れない **ローカル操作**(token
69
131
 
70
132
  別 npm パッケージも、ユーザーの設定編集も不要。これが「`npm install -g bluelamp` だけで MCP が増える」の実体。
71
133
 
72
- > **実装済み(Phase 151)**: 第1号が `lib/account-mcp/index.cjs`(MCP 名 `bluelamp-account`)。tool = `logout`(`~/.musuhi/portal-token.enc` を削除=別アカウント切替の起点)/ `update_cli`(`npm i -g bluelamp@latest`)。`createMCPConfig()` に登録済み。効果はどちらも **次回 `bluelampN` 起動から**(起動中の gateway は起動時 token を保持するため in-session では切り替わらない)。
134
+ > **実装済み(Phase 151)**: 第1号が `lib/account-mcp/index.cjs`(MCP 名 `bluelamp-account`)。tool = `logout`(`~/.musuhi/portal-token.enc` を削除=別アカウント切替の起点)/ `update_cli`(`npm i -g bluelamp@latest`)。`createMCPConfig()` に登録済み。
135
+ > `update_cli` の効果は **次回 `bluelampN` 起動から**(実行中のプロセスは差し替わらない)。`logout`/トークン差し替えが効くタイミングは**版で異なる**——6.6.0 までは次回起動から、板#341 N1 以降は gateway がトークンを毎回読み直すため**次の tool 呼び出しから**。
136
+ > 📌 利用者向けの手順・失効時の復旧・罹患判定は `docs/support-knowledge/account-operations.md` が正本(ここには書き写さない)。
73
137
 
74
138
  ### `@bluelamp/mcp-shim` との違い
75
139
 
@@ -83,11 +147,11 @@ cloud_proxy(portal 転送)では触れない **ローカル操作**(token
83
147
 
84
148
  ```bash
85
149
  pnpm install # workspace root で 1 回
86
- pnpm --filter bluelamp-neo run build:tsc # tsc emit のみ
87
- pnpm --filter bluelamp-neo run build # tsc emit → 難読化 (publish 用)
88
- pnpm --filter bluelamp-neo run tsc # 型チェックのみ
89
- pnpm --filter bluelamp-neo run test # node --test (auth + bin)
90
- pnpm --filter bluelamp-neo run generate:bins # bin/bluelamp1-200.mjs 再生成
150
+ pnpm --filter bluelamp run build:tsc # tsc emit のみ
151
+ pnpm --filter bluelamp run build # tsc emit → 難読化 (publish 用)
152
+ pnpm --filter bluelamp run tsc # 型チェックのみ
153
+ pnpm --filter bluelamp run test # node --test (auth + bin)
154
+ pnpm --filter bluelamp run generate:bins # bin/bluelamp1-200.mjs 再生成
91
155
  ```
92
156
 
93
157
  ## ビルド出力
@@ -113,10 +177,32 @@ publish 対象は `dist/` + `README.md` のみ (`package.json files` で制限)
113
177
  | `bin/bluelamp-vscode-base` (CommonJS) | `bin/bluelamp-vscode-base.mjs` (ESM) |
114
178
  | `bin/bluelamp1`〜200 (CommonJS) | `bin/bluelamp1.mjs`〜200 (ESM trampoline) |
115
179
  | `scripts/generate-commands.js` | `scripts/generate-commands.ts` (`dist/scripts/...js`) |
116
- | `scripts/setup-mcps.js` (postinstall) | `scripts/setup-mcps.ts` (**postinstall hook 無し**) |
180
+ | `scripts/setup-mcps.js` (postinstall) | **廃止** (#358 で削除。理由は下記「`~/.mcp.json` を書かない」) |
117
181
  | `scripts/build.js` (354 行、 CJS) | `scripts/build-obfuscate.mjs` (ESM、 同等難読化) |
118
182
 
119
183
  ## 既知の制約
120
184
 
121
185
  - `bin/bluelamp-vscode-base.mjs` は内部で旧 `lib/mcp-server/portal-api-client.cjs` を `require` するが、 monorepo にはまだ移植されていないため **slot 設定の動的取得は無効**。 `DEFAULT_PROMPT_MAPPING` (18 個のデフォルト) にフォールバックする。
122
- - `setup-mcps.ts` は `~/.bluelamp/` / `~/.mcp.json` をユーザーホームに書き込むが、 `pnpm install` で自動実行されないよう **postinstall hook は意図的に外している**。 グローバル install で必要な場合は `node dist/scripts/setup-mcps.js` を手動実行する。
186
+ ## `~/.mcp.json` を書かない (postinstall 廃止の理由)
187
+
188
+ **このパッケージは `~/.mcp.json` に定義を追加しない。** MCP は起動のたび launcher が一時 config を作って `--mcp-config` で渡す (上記「MCP 配布の仕組み」)。
189
+
190
+ 過去 (公開版 4.3.4〜6.4.1) は postinstall (`scripts/setup-mcps.js`) が `~/.mcp.json` を書き換えていたが、次の 2 つの実害を出したので廃止した (監査: 2026-07-30):
191
+
192
+ 1. 6.0.2〜6.4.1 が `bluelamp: {command: "bluelamp1"}` を書いていた。`bluelamp1` は MCP サーバーではなく launcher なので、素の `claude` から MCP として起動されると接続不能になる (`--mcp-config` が勝つ launcher 経由では症状が出ないため切り分けが極端に難しい)。→ 現在は launcher 起動時に **この 1 キーだけ** 自己修復で削除する (`src/lib/mcpJsonSelfHeal.ts`)。
193
+ 2. 4.3.4〜6.4.1 が `playwright` / `gmail` 等をキー名だけで無条件 delete していた。利用者が自分で登録した同名 MCP を黙って消しうる。
194
+
195
+ **ルール: 今後 `~/.mcp.json` に触る処理を足す場合は、我々が書いた entry だと確認できるものだけを対象にする** (キー名一致だけで削除しない。他人の設定を消さない)。
196
+
197
+ ## 開発時の注意: ソースツリーから直接動かさない
198
+
199
+ `lib/mcp-server/` は **`dist/` レイアウト前提**です(`require('../../utils/logger')` は
200
+ `dist/lib/mcp-server/` に置かれたときにだけ解決します)。ソースツリーの `lib/` を直接
201
+ 起動すると `MODULE_NOT_FOUND` になり、スロット設定の取得が既定へ degrade します。
202
+
203
+ ```bash
204
+ pnpm run build # dist/ を作ってから
205
+ ```
206
+
207
+ ⛔ require パスの二重化はしません(板 #442 ④)。ソースから動かしたときは、
208
+ エラーメッセージが真因(=ソースツリー直実行)を指します。