peertable 0.4.18 → 0.4.19
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": "peertable",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.19",
|
|
4
4
|
"description": "A round table of peer agents. No orchestrator at the head. Turn Claude Code, Codex, and Grok sessions into a team of equal, long-lived peers.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
package/room/client.mjs
CHANGED
|
@@ -13,7 +13,7 @@ import { findModelsDoc, resolveSeatIdentity } from '../skill/scripts/resolve-sea
|
|
|
13
13
|
|
|
14
14
|
// client.mjs 側のハードコード版数。package.json の version と一致していることを
|
|
15
15
|
// diagnostics の version_consistency が見る(2 つの版数源の drift 検出。決定45)
|
|
16
|
-
const MCP_VERSION = '0.4.
|
|
16
|
+
const MCP_VERSION = '0.4.19'
|
|
17
17
|
const PKG_ROOT = join(dirname(fileURLToPath(import.meta.url)), '..')
|
|
18
18
|
|
|
19
19
|
const USAGE = `usage:
|
|
@@ -606,28 +606,8 @@ fi
|
|
|
606
606
|
|
|
607
607
|
# 席の素性(roles / settings / mission)を room へ渡す。一覧チップと席の名簿が同じ欄を見る。
|
|
608
608
|
tmux_ns=$(node "$(dirname "$0")/tmux-socket.mjs" --namespace)
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
name, vendor, model, effort, sock, sess, roles_raw, mission, aiterm_session_id, tmux_ns = sys.argv[1:11]
|
|
612
|
-
observe = {'tmux_socket': sock, 'tmux_target': sess}
|
|
613
|
-
if tmux_ns:
|
|
614
|
-
observe['tmux_namespace'] = tmux_ns
|
|
615
|
-
roles = [item for item in roles_raw.split(',') if item]
|
|
616
|
-
settings = {'vendor': vendor, 'model': model}
|
|
617
|
-
if effort:
|
|
618
|
-
settings['effort'] = effort
|
|
619
|
-
body = {
|
|
620
|
-
'name': name, 'vendor': vendor, 'model': model, 'role': roles[0] if roles else '',
|
|
621
|
-
'roles': roles, 'settings': settings, 'aiterm_session_id': aiterm_session_id,
|
|
622
|
-
'observe': observe,
|
|
623
|
-
}
|
|
624
|
-
if effort:
|
|
625
|
-
body['effort'] = effort
|
|
626
|
-
if mission:
|
|
627
|
-
body['mission'] = mission
|
|
628
|
-
print(json.dumps(body, ensure_ascii=False))
|
|
629
|
-
PY
|
|
630
|
-
)
|
|
609
|
+
# python stdout は Windows で cp932 になり 実装 が壊れる。Node が UTF-8 JSON を出す。
|
|
610
|
+
meta=$(node "$(dirname "$0")/seat-metadata.mjs" "$name" "$vendor" "$model" "$effort" "$sock" "$sess" "$role" "$mission" "$aiterm_session_id" "$tmux_ns")
|
|
631
611
|
if env -u PEERTABLE_POST_TOKEN node "$credential_helper" request "$credential_file" POST \
|
|
632
612
|
"$url/api/$room/members" "$meta" >/dev/null; then
|
|
633
613
|
# **200 は保存の証拠にならない**。素性欄を知らない server も 200 {"ok":true} を返して黙って捨てる
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// 着席 metadata を UTF-8 JSON で出す。python stdout の cp932 経由は日本語 roles を壊す。
|
|
3
|
+
const [name, vendor, model, effort, sock, sess, rolesRaw, mission, aitermSessionId, tmuxNs] = process.argv.slice(2)
|
|
4
|
+
const roles = String(rolesRaw || '').split(',').map((item) => item.trim()).filter(Boolean)
|
|
5
|
+
const settings = { vendor, model }
|
|
6
|
+
if (effort) settings.effort = effort
|
|
7
|
+
const observe = { tmux_socket: sock, tmux_target: sess }
|
|
8
|
+
if (tmuxNs) observe.tmux_namespace = tmuxNs
|
|
9
|
+
const body = {
|
|
10
|
+
name,
|
|
11
|
+
vendor,
|
|
12
|
+
model,
|
|
13
|
+
role: roles[0] || '',
|
|
14
|
+
roles,
|
|
15
|
+
settings,
|
|
16
|
+
aiterm_session_id: aitermSessionId,
|
|
17
|
+
observe,
|
|
18
|
+
}
|
|
19
|
+
if (effort) body.effort = effort
|
|
20
|
+
if (mission) body.mission = mission
|
|
21
|
+
process.stdout.write(`${JSON.stringify(body)}\n`)
|