@yefengr/remote-pi 0.7.3 → 0.7.5

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 (171) hide show
  1. package/README.md +81 -586
  2. package/dist/actions/handlers.d.ts +1 -1
  3. package/dist/actions/handlers.js +2 -1
  4. package/dist/actions/handlers.js.map +1 -1
  5. package/dist/bin/supervisord.js +4 -5
  6. package/dist/bin/supervisord.js.map +1 -1
  7. package/dist/config.d.ts +1 -1
  8. package/dist/config.js +2 -2
  9. package/dist/daemon/cli-links.d.ts +30 -0
  10. package/dist/daemon/cli-links.js +134 -0
  11. package/dist/daemon/cli-links.js.map +1 -0
  12. package/dist/daemon/commands.d.ts +27 -0
  13. package/dist/daemon/commands.js +295 -0
  14. package/dist/daemon/commands.js.map +1 -0
  15. package/dist/daemon/control_protocol.d.ts +53 -31
  16. package/dist/daemon/control_protocol.js +8 -31
  17. package/dist/daemon/control_protocol.js.map +1 -1
  18. package/dist/daemon/cron_log.d.ts +2 -23
  19. package/dist/daemon/cron_log.js +10 -25
  20. package/dist/daemon/cron_log.js.map +1 -1
  21. package/dist/daemon/cron_registry.d.ts +3 -40
  22. package/dist/daemon/cron_registry.js +58 -103
  23. package/dist/daemon/cron_registry.js.map +1 -1
  24. package/dist/daemon/install-runtime.d.ts +10 -0
  25. package/dist/daemon/install-runtime.js +81 -0
  26. package/dist/daemon/install-runtime.js.map +1 -0
  27. package/dist/daemon/install.d.ts +3 -63
  28. package/dist/daemon/install.js +5 -289
  29. package/dist/daemon/install.js.map +1 -1
  30. package/dist/daemon/preflight.d.ts +51 -0
  31. package/dist/daemon/preflight.js +136 -0
  32. package/dist/daemon/preflight.js.map +1 -0
  33. package/dist/daemon/registry.d.ts +33 -45
  34. package/dist/daemon/registry.js +171 -117
  35. package/dist/daemon/registry.js.map +1 -1
  36. package/dist/daemon/rpc_child.d.ts +92 -146
  37. package/dist/daemon/rpc_child.js +336 -263
  38. package/dist/daemon/rpc_child.js.map +1 -1
  39. package/dist/daemon/status.d.ts +45 -0
  40. package/dist/daemon/status.js +87 -0
  41. package/dist/daemon/status.js.map +1 -0
  42. package/dist/daemon/supervisor-ipc.d.ts +2 -0
  43. package/dist/daemon/supervisor-ipc.js +20 -0
  44. package/dist/daemon/supervisor-ipc.js.map +1 -0
  45. package/dist/daemon/supervisor.d.ts +48 -71
  46. package/dist/daemon/supervisor.js +430 -420
  47. package/dist/daemon/supervisor.js.map +1 -1
  48. package/dist/extension_ui_bridge.d.ts +4 -3
  49. package/dist/extension_ui_bridge.js +10 -0
  50. package/dist/extension_ui_bridge.js.map +1 -1
  51. package/dist/index.d.ts +25 -217
  52. package/dist/index.js +527 -5504
  53. package/dist/index.js.map +1 -1
  54. package/dist/pairing/crypto.d.ts +8 -1
  55. package/dist/pairing/crypto.js +56 -6
  56. package/dist/pairing/crypto.js.map +1 -1
  57. package/dist/pairing/owner_storage.d.ts +42 -0
  58. package/dist/pairing/owner_storage.js +207 -0
  59. package/dist/pairing/owner_storage.js.map +1 -0
  60. package/dist/pairing/qr.d.ts +3 -42
  61. package/dist/pairing/qr.js +9 -59
  62. package/dist/pairing/qr.js.map +1 -1
  63. package/dist/pairing/storage.d.ts +3 -45
  64. package/dist/pairing/storage.js +10 -223
  65. package/dist/pairing/storage.js.map +1 -1
  66. package/dist/protocol/types.d.ts +1 -1
  67. package/dist/protocol/v2/schemas.d.ts +1 -1
  68. package/dist/protocol/v2/schemas.js +1 -1
  69. package/dist/protocol/v2/schemas.js.map +1 -1
  70. package/dist/runtime/owner_router.d.ts +16 -0
  71. package/dist/runtime/owner_router.js +37 -0
  72. package/dist/runtime/owner_router.js.map +1 -0
  73. package/dist/session/ipc.d.ts +1 -22
  74. package/dist/session/ipc.js +4 -11
  75. package/dist/session/ipc.js.map +1 -1
  76. package/dist/session/local_config.d.ts +4 -47
  77. package/dist/session/local_config.js +19 -101
  78. package/dist/session/local_config.js.map +1 -1
  79. package/dist/timeline/v2_service.d.ts +6 -0
  80. package/dist/timeline/v2_service.js +20 -2
  81. package/dist/timeline/v2_service.js.map +1 -1
  82. package/dist/transport/peer_channel.d.ts +25 -39
  83. package/dist/transport/peer_channel.js +74 -131
  84. package/dist/transport/peer_channel.js.map +1 -1
  85. package/dist/transport/relay_client.d.ts +26 -70
  86. package/dist/transport/relay_client.js +37 -106
  87. package/dist/transport/relay_client.js.map +1 -1
  88. package/docs/daemon.md +91 -207
  89. package/package.json +21 -17
  90. package/dist/daemon/id.d.ts +0 -24
  91. package/dist/daemon/id.js +0 -36
  92. package/dist/daemon/id.js.map +0 -1
  93. package/dist/mcp/mesh_result.d.ts +0 -10
  94. package/dist/mcp/mesh_result.js +0 -42
  95. package/dist/mcp/mesh_result.js.map +0 -1
  96. package/dist/mcp/mesh_server.d.ts +0 -16
  97. package/dist/mcp/mesh_server.js +0 -327
  98. package/dist/mcp/mesh_server.js.map +0 -1
  99. package/dist/mesh/canonical.d.ts +0 -30
  100. package/dist/mesh/canonical.js +0 -61
  101. package/dist/mesh/canonical.js.map +0 -1
  102. package/dist/mesh/client.d.ts +0 -18
  103. package/dist/mesh/client.js +0 -125
  104. package/dist/mesh/client.js.map +0 -1
  105. package/dist/mesh/encoding.d.ts +0 -38
  106. package/dist/mesh/encoding.js +0 -216
  107. package/dist/mesh/encoding.js.map +0 -1
  108. package/dist/mesh/self_revoke.d.ts +0 -73
  109. package/dist/mesh/self_revoke.js +0 -401
  110. package/dist/mesh/self_revoke.js.map +0 -1
  111. package/dist/mesh/siblings.d.ts +0 -49
  112. package/dist/mesh/siblings.js +0 -159
  113. package/dist/mesh/siblings.js.map +0 -1
  114. package/dist/mesh/types.d.ts +0 -34
  115. package/dist/mesh/types.js +0 -11
  116. package/dist/mesh/types.js.map +0 -1
  117. package/dist/mesh/verify.d.ts +0 -17
  118. package/dist/mesh/verify.js +0 -86
  119. package/dist/mesh/verify.js.map +0 -1
  120. package/dist/rooms.d.ts +0 -29
  121. package/dist/rooms.js +0 -57
  122. package/dist/rooms.js.map +0 -1
  123. package/dist/session/bridge.d.ts +0 -37
  124. package/dist/session/bridge.js +0 -130
  125. package/dist/session/bridge.js.map +0 -1
  126. package/dist/session/broker.d.ts +0 -189
  127. package/dist/session/broker.js +0 -507
  128. package/dist/session/broker.js.map +0 -1
  129. package/dist/session/broker_remote.d.ts +0 -74
  130. package/dist/session/broker_remote.js +0 -583
  131. package/dist/session/broker_remote.js.map +0 -1
  132. package/dist/session/cwd_lock.d.ts +0 -33
  133. package/dist/session/cwd_lock.js +0 -126
  134. package/dist/session/cwd_lock.js.map +0 -1
  135. package/dist/session/envelope.d.ts +0 -33
  136. package/dist/session/envelope.js +0 -117
  137. package/dist/session/envelope.js.map +0 -1
  138. package/dist/session/global_config.d.ts +0 -33
  139. package/dist/session/global_config.js +0 -73
  140. package/dist/session/global_config.js.map +0 -1
  141. package/dist/session/leader_election.d.ts +0 -32
  142. package/dist/session/leader_election.js +0 -106
  143. package/dist/session/leader_election.js.map +0 -1
  144. package/dist/session/mesh_node.d.ts +0 -116
  145. package/dist/session/mesh_node.js +0 -573
  146. package/dist/session/mesh_node.js.map +0 -1
  147. package/dist/session/peer.d.ts +0 -139
  148. package/dist/session/peer.js +0 -451
  149. package/dist/session/peer.js.map +0 -1
  150. package/dist/session/peer_inventory.d.ts +0 -13
  151. package/dist/session/peer_inventory.js +0 -48
  152. package/dist/session/peer_inventory.js.map +0 -1
  153. package/dist/session/peer_limits.d.ts +0 -9
  154. package/dist/session/peer_limits.js +0 -21
  155. package/dist/session/peer_limits.js.map +0 -1
  156. package/dist/session/setup_wizard.d.ts +0 -39
  157. package/dist/session/setup_wizard.js +0 -63
  158. package/dist/session/setup_wizard.js.map +0 -1
  159. package/dist/session/tools.d.ts +0 -24
  160. package/dist/session/tools.js +0 -252
  161. package/dist/session/tools.js.map +0 -1
  162. package/dist/session/wizard.d.ts +0 -13
  163. package/dist/session/wizard.js +0 -20
  164. package/dist/session/wizard.js.map +0 -1
  165. package/dist/transport/pi_forward_client.d.ts +0 -29
  166. package/dist/transport/pi_forward_client.js +0 -62
  167. package/dist/transport/pi_forward_client.js.map +0 -1
  168. package/dist/ui/footer.d.ts +0 -32
  169. package/dist/ui/footer.js +0 -34
  170. package/dist/ui/footer.js.map +0 -1
  171. package/skills/agent-network/SKILL.md +0 -310
@@ -1,55 +1,12 @@
1
1
  export interface LocalConfig {
2
2
  agent_name?: string;
3
- /**
4
- * If true (default), `/remote-pi` with no args auto-joins the local UDS
5
- * mesh and starts the relay on a fresh terminal. The field name is
6
- * historical (plano 21); the UX wording was reworked to "use the relay
7
- * on this terminal to connect to the remote mesh (PWA + PCs)". Legacy
8
- * configs without this field are treated as `true` for backward compat.
9
- */
3
+ /** Whether an interactive Pi starts its Relay endpoint automatically. */
10
4
  auto_start_relay?: boolean;
11
5
  }
12
- /**
13
- * Normalize a name segment to a mesh-safe token: trim, replace the addressing
14
- * separators (`/ : @ #`) and whitespace runs with `-`, collapse repeats, strip
15
- * edges. The `@` is included so a sanitized name can never contain the address
16
- * separator — `<cwd>@<name>` stays unambiguous on the wire. Returns undefined
17
- * when the input isn't a usable non-empty string, sanitizes to empty, or is a
18
- * reserved addressing keyword (`broadcast` / `broker`). Used by the broker's
19
- * `sanitizeMeshName` to keep the `<nome>` half of a peer address safe to
20
- * compose (plan/38).
21
- */
22
- export declare function sanitizeSegment(v: unknown): string | undefined;
23
- /**
24
- * Migrate a persisted `agent_name` to the plan/38 leaf-name model (decision E).
25
- * Two legacy shapes get rewritten on read so a pre-fix config never fossilizes a
26
- * runtime accident as if it were an explicit choice:
27
- *
28
- * - **`#N` collision suffix** — could only have come from a broker/lock
29
- * assignment (the user can't type `#`: `sanitizeSegment` maps it to `-`), so
30
- * a trailing `#<digits>` is stripped and the clean base re-derived.
31
- * - **legacy `parent/folder`** — the old `defaultAgentName` shape; the `/`
32
- * means it predates the leaf-only model, so we keep only the leaf segment.
33
- *
34
- * Returns the cleaned name, or undefined when nothing usable remains (so the
35
- * caller falls back to `defaultAgentName(cwd)`).
36
- */
37
- export declare function migrateAgentName(raw: string): string | undefined;
38
- /**
39
- * True when a local config is available for this cwd — either inline via
40
- * `REMOTE_PI_DIRECT_CONFIG` or as `<cwd>/.pi/remote-pi/config.json` on disk.
41
- */
42
6
  export declare function localConfigExists(cwd: string): boolean;
43
7
  export declare function loadLocalConfig(cwd: string): LocalConfig;
44
8
  export declare function saveLocalConfig(cwd: string, patch: Partial<LocalConfig>): void;
45
- /**
46
- * Default agent name when none is configured (plan/38 decision D): the **leaf**
47
- * of the cwd, `basename(cwd)`. The cwd now travels as its own address axis
48
- * (`<cwd>@<nome>`), so the name no longer needs the `parent/folder` prefix that
49
- * used to disambiguate folders — the broker keys peers by `(cwd, nome)`, and a
50
- * clean leaf means `#N` almost never fires. Falls back to `"agent"` for a
51
- * path with no usable basename (root / empty).
52
- */
9
+ /** Default display name when none is configured. */
53
10
  export declare function defaultAgentName(cwd: string): string;
54
- /** Resolves auto_start_relay with backward-compat (undefined → true). */
55
- export declare function effectiveAutoStartRelay(cfg: LocalConfig): boolean;
11
+ /** Resolves the default for omitted config values. */
12
+ export declare function effectiveAutoStartRelay(config: LocalConfig): boolean;
@@ -2,64 +2,10 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import { basename, dirname, join } from "node:path";
3
3
  const LOCAL_DIR = ".pi/remote-pi";
4
4
  const LOCAL_FILE = "config.json";
5
- /**
6
- * Escape hatch: when set, carries the WHOLE local config as inline JSON,
7
- * bypassing the on-disk `config.json`. For CI/ops/daemons that inject config
8
- * via env instead of writing a file — mirrors `REMOTE_PI_RELAY` for the relay
9
- * URL. Takes precedence over the file; an unset/empty/unparseable value falls
10
- * back to the file (never fatal).
11
- */
12
5
  const DIRECT_CONFIG_ENV = "REMOTE_PI_DIRECT_CONFIG";
13
6
  function pathFor(cwd) {
14
7
  return join(cwd, LOCAL_DIR, LOCAL_FILE);
15
8
  }
16
- /**
17
- * Normalize a name segment to a mesh-safe token: trim, replace the addressing
18
- * separators (`/ : @ #`) and whitespace runs with `-`, collapse repeats, strip
19
- * edges. The `@` is included so a sanitized name can never contain the address
20
- * separator — `<cwd>@<name>` stays unambiguous on the wire. Returns undefined
21
- * when the input isn't a usable non-empty string, sanitizes to empty, or is a
22
- * reserved addressing keyword (`broadcast` / `broker`). Used by the broker's
23
- * `sanitizeMeshName` to keep the `<nome>` half of a peer address safe to
24
- * compose (plan/38).
25
- */
26
- export function sanitizeSegment(v) {
27
- if (typeof v !== "string")
28
- return undefined;
29
- const token = v.trim().replace(/[/:@#\s]+/g, "-").replace(/-{2,}/g, "-").replace(/^-+|-+$/g, "");
30
- if (!token)
31
- return undefined;
32
- if (token.toLowerCase() === "broadcast" || token.toLowerCase() === "broker")
33
- return undefined;
34
- return token;
35
- }
36
- /**
37
- * Migrate a persisted `agent_name` to the plan/38 leaf-name model (decision E).
38
- * Two legacy shapes get rewritten on read so a pre-fix config never fossilizes a
39
- * runtime accident as if it were an explicit choice:
40
- *
41
- * - **`#N` collision suffix** — could only have come from a broker/lock
42
- * assignment (the user can't type `#`: `sanitizeSegment` maps it to `-`), so
43
- * a trailing `#<digits>` is stripped and the clean base re-derived.
44
- * - **legacy `parent/folder`** — the old `defaultAgentName` shape; the `/`
45
- * means it predates the leaf-only model, so we keep only the leaf segment.
46
- *
47
- * Returns the cleaned name, or undefined when nothing usable remains (so the
48
- * caller falls back to `defaultAgentName(cwd)`).
49
- */
50
- export function migrateAgentName(raw) {
51
- // Legacy `parent/folder` (or any path-ish value) → keep the trailing segment.
52
- const leaf = raw.includes("/") ? raw.slice(raw.lastIndexOf("/") + 1) : raw;
53
- // Drop a runtime collision suffix a pre-fix build may have frozen into config.
54
- const clean = leaf.replace(/#\d+$/, "").trim();
55
- return clean.length > 0 ? clean : undefined;
56
- }
57
- /**
58
- * Parse a raw JSON string into a LocalConfig, surfacing only known fields.
59
- * Returns null when the input isn't a usable JSON object. Legacy `session_name`
60
- * from pre-refactor configs is silently dropped — the local UDS mesh is now
61
- * always a single fixed session, so the field has no meaning.
62
- */
63
9
  function parseLocalConfig(raw) {
64
10
  let parsed;
65
11
  try {
@@ -70,88 +16,60 @@ function parseLocalConfig(raw) {
70
16
  }
71
17
  if (!parsed || typeof parsed !== "object" || Array.isArray(parsed))
72
18
  return null;
73
- const src = parsed;
74
- const cfg = {};
75
- if (typeof src["agent_name"] === "string") {
76
- // Migrate on read (plan/38 decision E): strip a frozen `#N` and the legacy
77
- // `parent/folder` shape so neither fossilizes as an explicit name.
78
- const migrated = migrateAgentName(src["agent_name"]);
79
- if (migrated)
80
- cfg.agent_name = migrated;
19
+ const source = parsed;
20
+ const config = {};
21
+ if (typeof source["agent_name"] === "string" && source["agent_name"].trim()) {
22
+ config.agent_name = source["agent_name"].trim();
23
+ }
24
+ if (typeof source["auto_start_relay"] === "boolean") {
25
+ config.auto_start_relay = source["auto_start_relay"];
81
26
  }
82
- if (typeof src["auto_start_relay"] === "boolean")
83
- cfg.auto_start_relay = src["auto_start_relay"];
84
- return cfg;
27
+ return config;
85
28
  }
86
- /** Inline config from `REMOTE_PI_DIRECT_CONFIG`, when set + parseable; else null. */
87
29
  function directConfig() {
88
30
  const raw = process.env[DIRECT_CONFIG_ENV];
89
31
  if (!raw || raw.trim().length === 0)
90
32
  return null;
91
33
  return parseLocalConfig(raw);
92
34
  }
93
- /**
94
- * True when a local config is available for this cwd — either inline via
95
- * `REMOTE_PI_DIRECT_CONFIG` or as `<cwd>/.pi/remote-pi/config.json` on disk.
96
- */
97
35
  export function localConfigExists(cwd) {
98
36
  return directConfig() !== null || existsSync(pathFor(cwd));
99
37
  }
100
38
  export function loadLocalConfig(cwd) {
101
- // Precedence: inline `REMOTE_PI_DIRECT_CONFIG` env wins over the file. An
102
- // unset/empty/malformed env falls through to the on-disk config.json.
103
39
  const direct = directConfig();
104
40
  if (direct)
105
41
  return direct;
106
- const p = pathFor(cwd);
107
- if (!existsSync(p))
42
+ const path = pathFor(cwd);
43
+ if (!existsSync(path))
108
44
  return {};
109
45
  try {
110
- return parseLocalConfig(readFileSync(p, "utf8")) ?? {};
46
+ return parseLocalConfig(readFileSync(path, "utf8")) ?? {};
111
47
  }
112
48
  catch {
113
49
  return {};
114
50
  }
115
51
  }
116
52
  export function saveLocalConfig(cwd, patch) {
117
- const p = pathFor(cwd);
53
+ const path = pathFor(cwd);
118
54
  const current = loadLocalConfig(cwd);
119
55
  const next = { ...current, ...patch };
120
- // Always persist auto_start_relay explicitly (default true) so future reads
121
- // never need to guess. Backward-compat: legacy files without the field
122
- // are treated as true on read; we lock that intent in on first save.
123
56
  if (typeof next.auto_start_relay !== "boolean")
124
57
  next.auto_start_relay = true;
125
- // Best-effort persistence: a read-only config.json is a legitimate deployment
126
- // (NixOS/Home Manager symlink into the immutable Nix store, read-only root,
127
- // EPERM). The name/config sync is cosmetic — it must NEVER crash the pi
128
- // process with an uncaughtException. `saveLocalConfig` is reached via
129
- // fire-and-forget async paths (`void _syncNameFromPi()` from `turn_start` /
130
- // `session_start`), so a sync throw from `mkdirSync`/`writeFileSync` sails
131
- // past the runner's per-handler try/catch and takes down pi. Guard both fs
132
- // calls together so a partial attempt can't throw past the caller.
133
58
  try {
134
- mkdirSync(dirname(p), { recursive: true });
135
- writeFileSync(p, JSON.stringify(next, null, 2));
59
+ mkdirSync(dirname(path), { recursive: true });
60
+ writeFileSync(path, JSON.stringify(next, null, 2));
136
61
  }
137
62
  catch (error) {
138
63
  const message = error instanceof Error ? error.message : String(error);
139
- console.warn(`[remote-pi] could not persist local config ${p}: ${message}`);
64
+ console.warn(`[remote-pi] could not persist local config ${path}: ${message}`);
140
65
  }
141
66
  }
142
- /**
143
- * Default agent name when none is configured (plan/38 decision D): the **leaf**
144
- * of the cwd, `basename(cwd)`. The cwd now travels as its own address axis
145
- * (`<cwd>@<nome>`), so the name no longer needs the `parent/folder` prefix that
146
- * used to disambiguate folders — the broker keys peers by `(cwd, nome)`, and a
147
- * clean leaf means `#N` almost never fires. Falls back to `"agent"` for a
148
- * path with no usable basename (root / empty).
149
- */
67
+ /** Default display name when none is configured. */
150
68
  export function defaultAgentName(cwd) {
151
69
  return basename(cwd) || "agent";
152
70
  }
153
- /** Resolves auto_start_relay with backward-compat (undefined → true). */
154
- export function effectiveAutoStartRelay(cfg) {
155
- return cfg.auto_start_relay !== false;
71
+ /** Resolves the default for omitted config values. */
72
+ export function effectiveAutoStartRelay(config) {
73
+ return config.auto_start_relay !== false;
156
74
  }
157
75
  //# sourceMappingURL=local_config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"local_config.js","sourceRoot":"","sources":["../../src/session/local_config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local_config.js","sourceRoot":"","sources":["../../src/session/local_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEpD,MAAM,SAAS,GAAG,eAAe,CAAC;AAClC,MAAM,UAAU,GAAG,aAAa,CAAC;AACjC,MAAM,iBAAiB,GAAG,yBAAyB,CAAC;AAQpD,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAChF,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,IAAI,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5E,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,kBAAkB,CAAC,KAAK,SAAS,EAAE,CAAC;QACpD,MAAM,CAAC,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY;IACnB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,OAAO,YAAY,EAAE,KAAK,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,OAAO,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,KAA2B;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,IAAI,GAAgB,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;IACnD,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,SAAS;QAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC7E,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,8CAA8C,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;IACjF,CAAC;AACH,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC;AAClC,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,uBAAuB,CAAC,MAAmB;IACzD,OAAO,MAAM,CAAC,gBAAgB,KAAK,KAAK,CAAC;AAC3C,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import type { SessionManager } from "@earendil-works/pi-coding-agent";
2
2
  import { type ClientFrame, type ServerFrame, type TimelineEvent, type TimelinePartial } from "../protocol/v2/index.js";
3
3
  import type { Correlation, TimelineRuntime, TimelineStarted } from "./runtime.js";
4
+ export type V2ActionFrame = Extract<ClientFrame, {
5
+ type: "session_new" | "session_compact" | "model_set" | "thinking_set";
6
+ }>;
4
7
  export type V2ServiceOptions = {
5
8
  sessionManager: SessionManager;
6
9
  senderRef: string;
@@ -10,6 +13,7 @@ export type V2ServiceOptions = {
10
13
  type: "user_message";
11
14
  }>, correlation: Correlation) => boolean | "queued" | "rejected";
12
15
  onCancel?: () => boolean;
16
+ onAction?: (frame: V2ActionFrame) => void;
13
17
  onQueuedMessageClear?: (targetId?: string) => void;
14
18
  onListModels?: () => Pick<Extract<ServerFrame, {
15
19
  type: "models_list";
@@ -26,6 +30,7 @@ export declare class TimelineV2Service {
26
30
  private readonly runtime;
27
31
  private readonly onUserMessage;
28
32
  private readonly onCancel?;
33
+ private readonly onAction?;
29
34
  private readonly onQueuedMessageClear?;
30
35
  private readonly onListModels?;
31
36
  private readonly requestChannels;
@@ -52,6 +57,7 @@ export declare class TimelineV2Service {
52
57
  private replay;
53
58
  private status;
54
59
  private handleListModels;
60
+ private handleAction;
55
61
  private requireReady;
56
62
  private ensureReady;
57
63
  private direct;
@@ -8,6 +8,7 @@ export class TimelineV2Service {
8
8
  runtime;
9
9
  onUserMessage;
10
10
  onCancel;
11
+ onAction;
11
12
  onQueuedMessageClear;
12
13
  onListModels;
13
14
  requestChannels = new Map();
@@ -20,6 +21,7 @@ export class TimelineV2Service {
20
21
  this.runtime = options.runtime;
21
22
  this.onUserMessage = options.onUserMessage;
22
23
  this.onCancel = options.onCancel;
24
+ this.onAction = options.onAction;
23
25
  this.onQueuedMessageClear = options.onQueuedMessageClear;
24
26
  this.onListModels = options.onListModels;
25
27
  this.pager = new TimelineHistoryPager(this.sessionManager, (manager) => this.runtime.recover(manager), () => this.generationValue);
@@ -61,12 +63,13 @@ export class TimelineV2Service {
61
63
  return this.handleUserMessage(frame);
62
64
  case "user_message_observed":
63
65
  return this.handleObserved(frame);
64
- case "queued_message_set":
65
- case "approve_tool":
66
66
  case "session_new":
67
67
  case "session_compact":
68
68
  case "model_set":
69
69
  case "thinking_set":
70
+ return this.handleAction(frame);
71
+ case "queued_message_set":
72
+ case "approve_tool":
70
73
  case "extension_ui_response":
71
74
  return this.requireReady(frame);
72
75
  case "list_models":
@@ -333,6 +336,21 @@ export class TimelineV2Service {
333
336
  return [this.error(frame.id, "internal_error", "Could not list available models.", frame.channel_id)];
334
337
  }
335
338
  }
339
+ handleAction(frame) {
340
+ const error = this.ensureReady(frame);
341
+ if (error)
342
+ return [error];
343
+ if (!this.onAction) {
344
+ return [this.error(frame.id, "unsupported_type", "session action is unavailable", frame.channel_id)];
345
+ }
346
+ try {
347
+ this.onAction(frame);
348
+ return [];
349
+ }
350
+ catch {
351
+ return [this.error(frame.id, "internal_error", "Could not execute session action.", frame.channel_id)];
352
+ }
353
+ }
336
354
  requireReady(frame) {
337
355
  const error = this.ensureReady(frame);
338
356
  return [error ?? this.error("id" in frame ? frame.id : "v2", "unsupported_type", "frame is not implemented", "channel_id" in frame ? frame.channel_id : undefined)];
@@ -1 +1 @@
1
- {"version":3,"file":"v2_service.js","sourceRoot":"","sources":["../../src/timeline/v2_service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v2_service.js","sourceRoot":"","sources":["../../src/timeline/v2_service.ts"],"names":[],"mappings":"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"}
@@ -1,57 +1,43 @@
1
- import type { ClientMessage, ServerMessage } from "../protocol/types.js";
2
1
  import { type ClientFrame, type ServerFrame } from "../protocol/v2/index.js";
3
2
  import type { RelayClient } from "./relay_client.js";
4
- /** Sink for ServerMessage outbound to the remote app. */
5
- export interface PeerChannel {
6
- send(msg: ServerMessage): void;
7
- }
3
+ export type RoutePurpose = "pairing" | "session";
4
+ export type RouteFrame = {
5
+ type: "route";
6
+ purpose: RoutePurpose;
7
+ device_id: string;
8
+ endpoint_id: string;
9
+ runtime_instance_id: string;
10
+ target_owner_id?: string;
11
+ source_owner_id?: string;
12
+ ct: string;
13
+ };
14
+ export type HostRouteIdentity = {
15
+ deviceId: string;
16
+ endpointId: string;
17
+ runtimeInstanceId: string;
18
+ };
8
19
  export interface V2Channel {
9
20
  getPeerId(): string;
10
21
  sendV2(msg: ServerFrame): void;
11
22
  detach(): void;
12
23
  }
13
24
  /**
14
- * Plaintext PeerChannel backed by a RelayClient WebSocket.
15
- *
16
- * Usage (after pair_request handshake completes):
17
- * const channel = new PlainPeerChannel(relay, appPeerId, myRoomId, onMsg)
18
- * channel.send(serverMessage) // base64-encodes JSON, routes via relay
19
- * // incoming relay messages destined for appPeerId are auto-decoded
20
- * // and delivered via onMessage callback
21
- *
22
- * `myRoomId` is the *local* Pi's room id — sent on every outbound envelope
23
- * so the app can correlate which Pi sent it (multi-pi support, plano 17).
25
+ * A Host-side protocol-v2 channel for one authorized Owner. The relay
26
+ * authenticates and injects `source_owner_id` for Owner-to-Host routes; this
27
+ * channel only accepts routes for its immutable endpoint identity and owner.
24
28
  */
25
29
  export declare class V2PeerChannel implements V2Channel {
26
30
  private readonly relay;
27
- private readonly remotePeerId;
31
+ private readonly ownerId;
32
+ private readonly host;
28
33
  private readonly onMessage;
29
34
  private readonly unsubscribe;
30
- constructor(relay: RelayClient, remotePeerId: string, onMessage: (msg: ClientFrame) => void);
35
+ constructor(relay: RelayClient, ownerId: string, host: HostRouteIdentity, onMessage: (msg: ClientFrame) => void);
31
36
  getPeerId(): string;
32
37
  sendV2(msg: ServerFrame): void;
33
38
  detach(): void;
34
39
  private onLine;
40
+ private sendUpgradeRequired;
35
41
  }
36
- /** @deprecated Protocol v1 test helper. Production uses V2PeerChannel. */
37
- export declare class PlainPeerChannel implements PeerChannel {
38
- private readonly relay;
39
- private readonly remotePeerId;
40
- private readonly onMessage;
41
- private readonly _unsubscribe;
42
- constructor(relay: RelayClient, remotePeerId: string,
43
- /**
44
- * This Pi's room id. Currently NOT injected in the outer envelope
45
- * (defensive — relay/app not yet ready). Kept in the constructor for
46
- * forward-compat so callers don't need to change again when we re-enable.
47
- */
48
- myRoomId: string | undefined, onMessage: (msg: ClientMessage) => void,
49
- /** Called when this specific peer connection is considered lost. */
50
- _onDisconnect?: () => void);
51
- /** Authenticated Owner peer id used as a server-derived sender reference. */
52
- getPeerId(): string;
53
- send(msg: ServerMessage): void;
54
- /** Detaches from relay (does not close the relay itself). */
55
- detach(): void;
56
- private _onLine;
57
- }
42
+ export declare function parseIncomingRoute(line: string, host: HostRouteIdentity, ownerId?: string): RouteFrame | null;
43
+ export declare function sendRoute(relay: RelayClient, host: HostRouteIdentity, ownerId: string, purpose: RoutePurpose, ct: string): void;