@cocorograph/hub-agent 0.6.40 → 0.6.41

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocorograph/hub-agent",
3
- "version": "0.6.40",
3
+ "version": "0.6.41",
4
4
  "description": "Hub Hosted Cockpit のローカル常駐 agent。Hub と outbound WSS で接続し、ローカルの tmux/pty を中継する。",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -1364,8 +1364,17 @@ export class ClaudeStreamBridge extends EventEmitter {
1364
1364
  }
1365
1365
  }
1366
1366
 
1367
- /** 接続中 MCP サーバーの状態一覧を返す (McpServerStatus[])。 */
1368
- async mcpStatus() {
1367
+ /** 接続中 MCP サーバーの状態一覧を返す (McpServerStatus[])。
1368
+ *
1369
+ * @param {{ reload?: boolean }} [opts]
1370
+ * reload=true のときは control 専用 query を一度畳んでから作り直す。control プロセスは
1371
+ * 起動時に一度だけ MCP 設定 (ローカル `claude mcp add` / `.claude.json`) を読み込み、
1372
+ * かつ claude.ai のリモートコネクターを取得するため、稼働中プロセスに status を聞き直す
1373
+ * だけでは「後から追加したサーバー」が出てこない。teardown→再生成で新規プロセスに
1374
+ * 設定を読み直させ、ローカル config と claude.ai コネクターの両方を拾えるようにする
1375
+ * (フロントの「再取得」ボタン用)。reload=false は従来どおりの軽量な状態取得。 */
1376
+ async mcpStatus(opts = {}) {
1377
+ if (opts.reload) this._teardownMcpControlQuery()
1369
1378
  const q = await this._ensureMcpControlQuery()
1370
1379
  this._armMcpControlIdle()
1371
1380
  return await q.mcpServerStatus()
package/src/main.mjs CHANGED
@@ -997,7 +997,14 @@ async function dispatch(msg, ctx) {
997
997
  let result
998
998
  switch (msg.type) {
999
999
  case "claude.mcp.status":
1000
- result = { servers: await ctx.claudeBridge.mcpStatus() }
1000
+ // reload=true: control 専用 query を作り直して MCP 設定を読み直す
1001
+ // (後から追加したローカル / claude.ai コネクターを拾うため。フロントの
1002
+ // 「再取得」ボタンがこれを送る)。未指定 / false は従来の軽量取得。
1003
+ result = {
1004
+ servers: await ctx.claudeBridge.mcpStatus({
1005
+ reload: msg.reload === true,
1006
+ }),
1007
+ }
1001
1008
  break
1002
1009
  case "claude.mcp.reconnect": {
1003
1010
  // 動作中の全 resident セッション + control query を再接続 (会話中の MCP に波及)。