@geohar/un-bien 0.20.2 → 0.20.4

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.
@@ -27,7 +27,14 @@ export declare class PlainPeerChannel implements PeerChannel {
27
27
  /** Supplies the SENDING session's pi sessionId, stamped on every outbound
28
28
  * envelope so the app keys per-session state by the pi id (not the room). */
29
29
  private readonly sessionIdProvider?;
30
+ /** Re-enable the forward-compat room stamp: outbound outer envelopes
31
+ * carry `room: myRoomId`. Required for hosts whose reply routing needs
32
+ * the (peer, room) pair to match a registered connection — e.g. the
33
+ * launcher daemon, whose control room is NOT the relay default. The
34
+ * session-extension path stays on the legacy roomless form. */
35
+ private readonly includeRoomInOuter?;
30
36
  private readonly _unsubscribe;
37
+ private readonly _myRoomId;
31
38
  constructor(relay: RelayClient, remotePeerId: string,
32
39
  /**
33
40
  * This Pi's room id. Currently NOT injected in the outer envelope
@@ -42,7 +49,13 @@ export declare class PlainPeerChannel implements PeerChannel {
42
49
  onRpc?: ((env: EnvelopeMessage, sender: PlainPeerChannel) => void) | undefined,
43
50
  /** Supplies the SENDING session's pi sessionId, stamped on every outbound
44
51
  * envelope so the app keys per-session state by the pi id (not the room). */
45
- sessionIdProvider?: (() => string | undefined) | undefined);
52
+ sessionIdProvider?: (() => string | undefined) | undefined,
53
+ /** Re-enable the forward-compat room stamp: outbound outer envelopes
54
+ * carry `room: myRoomId`. Required for hosts whose reply routing needs
55
+ * the (peer, room) pair to match a registered connection — e.g. the
56
+ * launcher daemon, whose control room is NOT the relay default. The
57
+ * session-extension path stays on the legacy roomless form. */
58
+ includeRoomInOuter?: boolean | undefined);
46
59
  send(msg: ServerMessage): void;
47
60
  /**
48
61
  * Send an rpc-envelope message (`{ rpc | evt }`, docs/rpc-envelope.md) to the
@@ -18,7 +18,9 @@ export class PlainPeerChannel {
18
18
  onMessage;
19
19
  onRpc;
20
20
  sessionIdProvider;
21
+ includeRoomInOuter;
21
22
  _unsubscribe;
23
+ _myRoomId;
22
24
  constructor(relay, remotePeerId,
23
25
  /**
24
26
  * This Pi's room id. Currently NOT injected in the outer envelope
@@ -33,12 +35,20 @@ export class PlainPeerChannel {
33
35
  onRpc,
34
36
  /** Supplies the SENDING session's pi sessionId, stamped on every outbound
35
37
  * envelope so the app keys per-session state by the pi id (not the room). */
36
- sessionIdProvider) {
38
+ sessionIdProvider,
39
+ /** Re-enable the forward-compat room stamp: outbound outer envelopes
40
+ * carry `room: myRoomId`. Required for hosts whose reply routing needs
41
+ * the (peer, room) pair to match a registered connection — e.g. the
42
+ * launcher daemon, whose control room is NOT the relay default. The
43
+ * session-extension path stays on the legacy roomless form. */
44
+ includeRoomInOuter) {
37
45
  this.relay = relay;
38
46
  this.remotePeerId = remotePeerId;
39
47
  this.onMessage = onMessage;
40
48
  this.onRpc = onRpc;
41
49
  this.sessionIdProvider = sessionIdProvider;
50
+ this.includeRoomInOuter = includeRoomInOuter;
51
+ this._myRoomId = myRoomId;
42
52
  const listener = (line) => this._onLine(line);
43
53
  relay.on("message", listener);
44
54
  this._unsubscribe = () => relay.off("message", listener);
@@ -52,7 +62,11 @@ export class PlainPeerChannel {
52
62
  // (W1.C) accept the field. Multi-Pi multiplexing already works via
53
63
  // `room_id`/`room_meta` in the WS-level `hello` — outer routing stays by
54
64
  // `peer` alone. Re-add the field once downstream is ready.
55
- const outer = { peer: this.remotePeerId, ct };
65
+ const outer = {
66
+ peer: this.remotePeerId,
67
+ ...(this.includeRoomInOuter ? { room: this._myRoomId } : {}),
68
+ ct,
69
+ };
56
70
  // Best-effort delivery. The relay WS can be mid-reconnect (idle/NAT drop, or
57
71
  // a session_new/session-replacement teardown) when we push a server→app frame
58
72
  // — notably the action_ok/action_error ack a handler emits right after
@@ -121,7 +135,11 @@ export class PlainPeerChannel {
121
135
  sessionId: env.sessionId ?? this.sessionIdProvider?.(),
122
136
  };
123
137
  const ct = Buffer.from(JSON.stringify(wire)).toString("base64");
124
- const outer = { peer: this.remotePeerId, ct };
138
+ const outer = {
139
+ peer: this.remotePeerId,
140
+ ...(this.includeRoomInOuter ? { room: this._myRoomId } : {}),
141
+ ct,
142
+ };
125
143
  return JSON.stringify(outer);
126
144
  }
127
145
  /** Detaches from relay (does not close the relay itself). */
@@ -1 +1 @@
1
- {"version":3,"file":"peer_channel.js","sourceRoot":"","sources":["../../src/transport/peer_channel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peer_channel.js","sourceRoot":"","sources":["../../src/transport/peer_channel.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geohar/un-bien",
3
- "version": "0.20.2",
3
+ "version": "0.20.4",
4
4
  "description": "Mobile remote control and local agent mesh for the Pi coding agent. Pair your phone via QR over a relay, watch tool calls in real time, run multi-Pi sessions over a local Unix Domain Socket broker, and let agents talk to each other through structured request/reply. Derived from remote-pi by Jacob Moura (https://github.com/jacobaraujo7/remote_pi), MIT.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -33,6 +33,8 @@
33
33
  <string>{HOME}</string>
34
34
  <key>PI_CODING_AGENT_DIR</key>
35
35
  <string>{PI_AGENT_DIR}</string>
36
+ <key>PI_CODING_AGENT_SESSION_DIR</key>
37
+ <string>{SESSION_DIR}</string>
36
38
  {UNBIEN_ENV_PLIST}
37
39
  </dict>
38
40
  </dict>
@@ -29,6 +29,8 @@
29
29
  <string>{HOME}</string>
30
30
  <key>PI_CODING_AGENT_DIR</key>
31
31
  <string>{PI_AGENT_DIR}</string>
32
+ <key>PI_CODING_AGENT_SESSION_DIR</key>
33
+ <string>{SESSION_DIR}</string>
32
34
  {UNBIEN_ENV_PLIST}
33
35
  </dict>
34
36
  </dict>
@@ -13,6 +13,7 @@ StandardError=journal
13
13
  Environment="UNBIEN_RELAY_PORT={PORT}"
14
14
  Environment="HOME={HOME}"
15
15
  Environment="PI_CODING_AGENT_DIR={PI_AGENT_DIR}"
16
+ Environment="PI_CODING_AGENT_SESSION_DIR={SESSION_DIR}"
16
17
  {UNBIEN_ENV_SYSTEMD}
17
18
 
18
19
  [Install]
@@ -16,6 +16,7 @@ StandardError=journal
16
16
  Environment="PATH={PATH}"
17
17
  Environment="HOME={HOME}"
18
18
  Environment="PI_CODING_AGENT_DIR={PI_AGENT_DIR}"
19
+ Environment="PI_CODING_AGENT_SESSION_DIR={SESSION_DIR}"
19
20
  {UNBIEN_ENV_SYSTEMD}
20
21
 
21
22
  [Install]