pi-ca-leash 0.10.0 → 0.11.1

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 (42) hide show
  1. package/README.md +33 -17
  2. package/extensions/index.ts +78 -8
  3. package/extensions/peer-relay.ts +7 -9
  4. package/extensions/peer-ux.ts +4 -0
  5. package/node_modules/@pi-claude-code-agent/intercom-bridge/dist/bridge.d.ts +6 -1
  6. package/node_modules/@pi-claude-code-agent/intercom-bridge/dist/bridge.js +81 -17
  7. package/node_modules/@pi-claude-code-agent/intercom-bridge/dist/bridge.js.map +1 -1
  8. package/node_modules/@pi-claude-code-agent/intercom-bridge/dist/index.d.ts +3 -1
  9. package/node_modules/@pi-claude-code-agent/intercom-bridge/dist/index.js +1 -0
  10. package/node_modules/@pi-claude-code-agent/intercom-bridge/dist/index.js.map +1 -1
  11. package/node_modules/@pi-claude-code-agent/intercom-bridge/dist/managed-peers.d.ts +30 -0
  12. package/node_modules/@pi-claude-code-agent/intercom-bridge/dist/managed-peers.js +74 -0
  13. package/node_modules/@pi-claude-code-agent/intercom-bridge/dist/managed-peers.js.map +1 -0
  14. package/node_modules/@pi-claude-code-agent/intercom-bridge/dist/persistence.d.ts +3 -0
  15. package/node_modules/@pi-claude-code-agent/intercom-bridge/dist/persistence.js +17 -1
  16. package/node_modules/@pi-claude-code-agent/intercom-bridge/dist/persistence.js.map +1 -1
  17. package/node_modules/@pi-claude-code-agent/intercom-bridge/dist/types.d.ts +7 -0
  18. package/node_modules/@pi-claude-code-agent/intercom-bridge/package.json +2 -2
  19. package/node_modules/@pi-claude-code-agent/runtime/package.json +1 -1
  20. package/node_modules/@pi-claude-code-agent/subagents-backend/package.json +2 -2
  21. package/node_modules/@pi-claude-code-agent/teams-backend/package.json +3 -3
  22. package/package.json +25 -15
  23. package/AGENTS.md +0 -77
  24. package/ARCHITECTURE.md +0 -290
  25. package/CHANGELOG.md +0 -158
  26. package/DEVELOPMENT.md +0 -197
  27. package/KNOWN_LIMITS.md +0 -80
  28. package/extensions/backend-tool-actions.test.ts +0 -59
  29. package/extensions/command-drivers.test.ts +0 -37
  30. package/extensions/command-parity.test.ts +0 -560
  31. package/extensions/command-visibility.test.ts +0 -21
  32. package/extensions/llm-tools.test.ts +0 -537
  33. package/extensions/model-catalog.test.ts +0 -34
  34. package/extensions/peer-history.test.ts +0 -141
  35. package/extensions/peer-naming.test.ts +0 -25
  36. package/extensions/peer-relay.test.ts +0 -122
  37. package/extensions/peer-ux.test.ts +0 -239
  38. package/extensions/persistence.test.ts +0 -68
  39. package/extensions/runtime-driver.test.ts +0 -38
  40. package/extensions/runtime-safety.test.ts +0 -21
  41. package/extensions/support.test.ts +0 -144
  42. package/extensions/tool-inputs.test.ts +0 -45
package/README.md CHANGED
@@ -14,6 +14,7 @@ After installation, pi gets:
14
14
  - named long-lived peers with `/peer start`, `/peer ask`, `/peer send`, `/peer history`, and `/peer stop`
15
15
  - a peer dashboard plus local attention state
16
16
  - LLM-callable peer tools such as `peer_start`, `peer_ask`, `peer_send`, `peer_history`, and `runtime_models`
17
+ - a supported programmatic managed-peer API for downstream orchestrators via `@pi-claude-code-agent/intercom-bridge`
17
18
  - optional local subagent-style runs and local persistent teammates behind advanced commands/tools
18
19
  - optional live intercom transport when the broker is reachable
19
20
 
@@ -58,17 +59,7 @@ Once peer mode is active, you can often ask for this in natural language instead
58
59
 
59
60
  ## Install
60
61
 
61
- For most users, if pi already works on your machine and `pi install` works, you do not need to think about Node directly. `pi install npm:pi-ca-leash` is usually enough.
62
-
63
- Requirements for normal use:
64
- - a working pi installation
65
- - at least one configured runtime:
66
- - Claude Code configured for Claude-backed execution, or
67
- - `codex` on `PATH` for experimental Codex-backed runtime checks
68
-
69
- Requirements for local development or source installs:
70
- - Node.js 18 or newer
71
- - npm
62
+ This npm package is available again, but it comes with a large caveat: the Claude-backed runtime path actively sends messages through Anthropic's Agent SDK. Read the Agent SDK auth notice below before using it.
72
63
 
73
64
  Install from npm:
74
65
 
@@ -79,14 +70,20 @@ pi install npm:pi-ca-leash
79
70
  Pin an explicit version when needed:
80
71
 
81
72
  ```bash
82
- pi install npm:pi-ca-leash@0.10.0
73
+ pi install npm:pi-ca-leash@0.11.1
83
74
  ```
84
75
 
85
- Install from a pinned git release:
76
+ Local checkout install:
86
77
 
87
- ```bash
88
- pi install git:github.com/durandom/pi-ca-leash@v0.10.0
89
- ```
78
+ Requirements for normal use:
79
+ - a working pi installation
80
+ - at least one configured runtime:
81
+ - Claude Code configured for Claude-backed execution, or
82
+ - `codex` on `PATH` for experimental Codex-backed runtime checks
83
+
84
+ Requirements for local development or source installs:
85
+ - Node.js 18 or newer
86
+ - npm
90
87
 
91
88
  Try this checkout locally:
92
89
 
@@ -99,6 +96,12 @@ pi install /absolute/path/to/pi-ca-leash
99
96
 
100
97
  `npm install` runs the workspace build through `prepare`, so local development and git-based installs have package `dist/` files available.
101
98
 
99
+ ### Agent SDK Auth Notice
100
+
101
+ The `claude-sdk` runtime path actively sends prompts and follow-up messages through `@anthropic-ai/claude-agent-sdk`, including resumed peer sessions. Anthropic's current Claude Code legal/authentication docs say OAuth subscription credentials are intended for ordinary Claude Code and native Anthropic app use, while developers building products or services with the Agent SDK should use API key authentication through Claude Console or a supported cloud provider. Do not use this extension to route Free, Pro, or Max subscription credentials on behalf of other users.
102
+
103
+ Read-only/local features such as dashboard state, peer history browsing, local persistence, Git operations, and the experimental `codex-cli` runtime path are separate from Claude Agent SDK message sending.
104
+
102
105
  Use Codex as the default runtime driver for newly started peers:
103
106
 
104
107
  ```bash
@@ -212,6 +215,19 @@ The extension keeps peer output quiet by default:
212
215
  - peer completion is relayed back as one wrapped follow-up turn with the latest visible peer message
213
216
  - detailed backend diagnostics live in `/peer dashboard advanced`
214
217
 
218
+ ## Managed peers for downstream orchestrators
219
+
220
+ If another extension wants workers that behave like normal `pi-ca-leash` peers, use the supported managed-peer surface from `@pi-claude-code-agent/intercom-bridge`:
221
+
222
+ - `PiCaLeashManagedPeerApi`
223
+ - `piCaLeashStateDir(...)`
224
+ - `piCaLeashRuntimeStorageDir(...)`
225
+ - `piCaLeashBridgeStorageDir(...)`
226
+
227
+ That API gives downstream orchestrators the normal peer lifecycle (`launch`, `attach`, `list`, `status`, `send`, `ask`, `interrupt`, `stop`, `reconcile`) while writing to the same `.pi-ca-leash/{runtime,bridge}` state used by the extension.
228
+
229
+ Result: managed peers created by another extension can show up in the live `/peer dashboard` and `peer_list` without requiring a pi restart. The normal dashboard shows a compact `managed:owner` badge, and the advanced dashboard expands full managed-peer metadata.
230
+
215
231
  Runtime driver notes:
216
232
  - `claude-sdk` is the default and most complete path
217
233
  - `codex-cli` is supported, but still experimental and not parity-complete
@@ -255,7 +271,7 @@ npm run smoke:last
255
271
  npm run smoke:manual
256
272
  ```
257
273
 
258
- For the full developer workflow, smoke-command reference, artifact/debugging guide, and manual release checklist, see [`DEVELOPMENT.md`](./DEVELOPMENT.md).
274
+ For the full developer workflow, smoke-command reference, artifact/debugging guide, and manual release checklist, see [`DEVELOPMENT.md`](https://github.com/durandom/pi-ca-leash/blob/main/DEVELOPMENT.md).
259
275
 
260
276
  ## Persistence
261
277
 
@@ -12,6 +12,7 @@ import { ADVANCED_COMMANDS_ENV, LEGACY_COMMANDS_ENV, advancedCommandsEnabled, le
12
12
  import { derivePeerName } from "./peer-naming.js";
13
13
  import {
14
14
  createPeerRelaySnapshot,
15
+ formatPeerAuthoredMessage,
15
16
  formatPeerCompletionTurn,
16
17
  formatQuotedTextBlock,
17
18
  shouldForceRelayPeerCompletion,
@@ -701,7 +702,7 @@ export default async function piCaLeashExtension(pi: ExtensionAPI) {
701
702
  promptSizeNote,
702
703
  `cwd ${peer.cwd}`,
703
704
  `session ${peer.sessionId}`,
704
- message ? `latest peer message\n${formatQuotedTextBlock(message)}` : undefined,
705
+ message ? formatPeerAuthoredMessage(message, "Latest peer-authored message:") : undefined,
705
706
  ].filter(Boolean).join("\n\n"),
706
707
  }],
707
708
  details: { peerName: peer.name, state: row.state, sessionId: peer.sessionId, driver: peer.driver, model: peer.model, requestedModel: model, modelNote, promptSizeNote, cwd: peer.cwd, guidance: PEER_NO_BABYSITTING_GUIDANCE },
@@ -741,6 +742,8 @@ export default async function piCaLeashExtension(pi: ExtensionAPI) {
741
742
  driver: peer?.driver,
742
743
  model: peer?.model,
743
744
  cwd: peer?.cwd,
745
+ kind: peer?.kind,
746
+ metadata: peer?.metadata,
744
747
  };
745
748
  }),
746
749
  },
@@ -879,16 +882,17 @@ export default async function piCaLeashExtension(pi: ExtensionAPI) {
879
882
  content: [{
880
883
  type: "text",
881
884
  text: [
882
- deliveredAndRunning ? `Peer message delivered: ${name}` : `Peer reply: ${name}`,
883
- "sent prompt shown in an operator notification",
884
- deliveredAndRunning ? "delivery delivered_and_running" : undefined,
885
- deliveredAndRunning ? "do not poll; wait for automated peer update" : undefined,
885
+ deliveredAndRunning ? `Peer message delivered: ${name}` : `Peer reply received from ${name}`,
886
+ deliveredAndRunning ? "No immediate peer-authored reply yet. Wait for automated peer update." : undefined,
887
+ formatPeerAuthoredMessage(visibleReply),
888
+ "Outgoing prompt shown only in operator notification.",
889
+ "Tool metadata:",
886
890
  `state ${row.state}`,
887
891
  `driver ${result.peer.driver ?? "claude-sdk"}`,
888
892
  `model ${result.peer.model ?? "-"}`,
893
+ deliveredAndRunning ? "delivery delivered_and_running" : undefined,
889
894
  modelNote,
890
895
  promptSizeNote,
891
- `quoted peer message\n${formatQuotedTextBlock(visibleReply)}`,
892
896
  ].filter(Boolean).join("\n\n"),
893
897
  }],
894
898
  details: { peerName: name, state: row.state, sessionId: result.peer.sessionId, driver: result.peer.driver, model: result.peer.model, requestedModel: model, modelNote, promptSizeNote, cwd: result.peer.cwd, message, reply: result.reply, deliveryState: result.deliveryState },
@@ -2738,7 +2742,7 @@ function joinLeftRight(left: string, right: string, width: number): string {
2738
2742
  return truncateToWidth(`${left}${" ".repeat(gap)}${right}`, width, "");
2739
2743
  }
2740
2744
 
2741
- function formatPeerList(rows: PeerActivityRow[]): string {
2745
+ function formatPeerList(rows: PeerActivityRow[], options: { detailedManagedMetadata?: boolean } = {}): string {
2742
2746
  if (rows.length === 0) {
2743
2747
  return [
2744
2748
  "No peers yet.",
@@ -2746,6 +2750,10 @@ function formatPeerList(rows: PeerActivityRow[]): string {
2746
2750
  ].join("\n");
2747
2751
  }
2748
2752
 
2753
+ if (options.detailedManagedMetadata) {
2754
+ return formatAdvancedPeerList(rows);
2755
+ }
2756
+
2749
2757
  const hasDriver = rows.some((row) => row.driver);
2750
2758
  const hasModel = rows.some((row) => row.model);
2751
2759
  const hasContext = rows.some(hasPeerContextUsage);
@@ -2759,11 +2767,54 @@ function formatPeerList(rows: PeerActivityRow[]): string {
2759
2767
  "last update",
2760
2768
  ];
2761
2769
 
2770
+ return formatTable(
2771
+ headers,
2772
+ rows.map((row) => [
2773
+ formatPeerListName(row),
2774
+ row.state,
2775
+ ...(hasDriver ? [row.driver ?? "-"] : []),
2776
+ ...(hasModel ? [row.model ?? "-"] : []),
2777
+ ...(hasContext ? [formatPeerContextUsage(row)] : []),
2778
+ row.activity,
2779
+ formatIsoTime(row.lastUpdateAt),
2780
+ ]),
2781
+ );
2782
+ }
2783
+
2784
+ function formatAdvancedPeerList(rows: PeerActivityRow[]): string {
2785
+ const hasDriver = rows.some((row) => row.driver);
2786
+ const hasModel = rows.some((row) => row.model);
2787
+ const hasContext = rows.some(hasPeerContextUsage);
2788
+ const hasKind = rows.some((row) => row.kind);
2789
+ const hasOwner = rows.some((row) => peerMetadataValue(row, "owner"));
2790
+ const hasPersona = rows.some((row) => peerMetadataValue(row, "persona"));
2791
+ const hasCycleId = rows.some((row) => peerMetadataValue(row, "cycleId"));
2792
+ const hasExtraMetadata = rows.some((row) => formatExtraPeerMetadata(row));
2793
+ const headers = [
2794
+ "name",
2795
+ "state",
2796
+ ...(hasKind ? ["kind"] : []),
2797
+ ...(hasOwner ? ["owner"] : []),
2798
+ ...(hasPersona ? ["persona"] : []),
2799
+ ...(hasCycleId ? ["cycle"] : []),
2800
+ ...(hasExtraMetadata ? ["tags"] : []),
2801
+ ...(hasDriver ? ["driver"] : []),
2802
+ ...(hasModel ? ["model"] : []),
2803
+ ...(hasContext ? ["ctx"] : []),
2804
+ "activity",
2805
+ "last update",
2806
+ ];
2807
+
2762
2808
  return formatTable(
2763
2809
  headers,
2764
2810
  rows.map((row) => [
2765
2811
  row.name,
2766
2812
  row.state,
2813
+ ...(hasKind ? [row.kind ?? "ad-hoc"] : []),
2814
+ ...(hasOwner ? [peerMetadataValue(row, "owner") ?? "-"] : []),
2815
+ ...(hasPersona ? [peerMetadataValue(row, "persona") ?? "-"] : []),
2816
+ ...(hasCycleId ? [peerMetadataValue(row, "cycleId") ?? "-"] : []),
2817
+ ...(hasExtraMetadata ? [formatExtraPeerMetadata(row) || "-"] : []),
2767
2818
  ...(hasDriver ? [row.driver ?? "-"] : []),
2768
2819
  ...(hasModel ? [row.model ?? "-"] : []),
2769
2820
  ...(hasContext ? [formatPeerContextUsage(row)] : []),
@@ -2773,6 +2824,25 @@ function formatPeerList(rows: PeerActivityRow[]): string {
2773
2824
  );
2774
2825
  }
2775
2826
 
2827
+ function formatPeerListName(row: PeerActivityRow): string {
2828
+ if (row.kind !== "managed") {
2829
+ return row.name;
2830
+ }
2831
+ const owner = peerMetadataValue(row, "owner");
2832
+ return owner ? `${row.name} [managed:${owner}]` : `${row.name} [managed]`;
2833
+ }
2834
+
2835
+ function peerMetadataValue(row: PeerActivityRow, key: string): string | undefined {
2836
+ return row.metadata?.[key];
2837
+ }
2838
+
2839
+ function formatExtraPeerMetadata(row: PeerActivityRow): string {
2840
+ const entries = Object.entries(row.metadata ?? {})
2841
+ .filter(([key]) => !["owner", "persona", "cycleId"].includes(key))
2842
+ .sort(([left], [right]) => left.localeCompare(right));
2843
+ return entries.map(([key, value]) => `${key}=${value}`).join(", ");
2844
+ }
2845
+
2776
2846
  function formatPeerFirstDashboardReport(data: DashboardData): string {
2777
2847
  const { snapshot } = data;
2778
2848
  const health = getPeerFirstHealth(snapshot.peerRows, snapshot.transportDegraded);
@@ -2817,7 +2887,7 @@ function formatAdvancedDashboardReport(data: DashboardData): string {
2817
2887
  sections.push(
2818
2888
  "",
2819
2889
  "Peers",
2820
- formatPeerList(snapshot.peerRows),
2890
+ formatPeerList(snapshot.peerRows, { detailedManagedMetadata: true }),
2821
2891
  "",
2822
2892
  "Advanced diagnostics",
2823
2893
  `runtime sessions ${snapshot.sessions} retained`,
@@ -44,6 +44,10 @@ export function formatQuotedTextBlock(text: string, language = "text"): string {
44
44
  return [`${fence}${language}`, text, fence].join("\n");
45
45
  }
46
46
 
47
+ export function formatPeerAuthoredMessage(text: string, label = "Peer-authored message:"): string {
48
+ return [label, formatQuotedTextBlock(text)].join("\n");
49
+ }
50
+
47
51
  export function formatPeerCompletionTurn(input: PeerRelayMessageInput): string {
48
52
  const headline = input.state === "waiting"
49
53
  ? `Peer ${input.peerName} needs input.`
@@ -53,19 +57,13 @@ export function formatPeerCompletionTurn(input: PeerRelayMessageInput): string {
53
57
 
54
58
  return [
55
59
  `[peer_update name=${input.peerName} state=${input.state} session=${shortId(input.sessionId, 12)}]`,
56
- "Automated peer update.",
57
- "",
58
- `Peer: ${input.peerName}`,
59
- `State: ${input.state}`,
60
- `Session: ${shortId(input.sessionId, 12)}`,
61
60
  headline,
62
61
  "",
63
- "Latest peer message:",
64
- formatQuotedTextBlock(input.message),
62
+ formatPeerAuthoredMessage(input.message),
65
63
  "",
66
- "Use this as internal orchestration context.",
64
+ "Use quoted block as peer-authored orchestration context.",
67
65
  "Choose next step: continue orchestration, ask follow-up, or ignore if already handled.",
68
- "Do not quote this wrapper verbatim to the user.",
66
+ "Do not quote wrapper metadata verbatim to the user.",
69
67
  ].join("\n");
70
68
  }
71
69
 
@@ -10,6 +10,8 @@ export interface PeerActivityRow {
10
10
  sessionId: string;
11
11
  driver?: string;
12
12
  model?: string;
13
+ kind?: string;
14
+ metadata?: Record<string, string>;
13
15
  contextTokens?: number;
14
16
  contextWindow?: number;
15
17
  contextPercentage?: number;
@@ -30,6 +32,8 @@ export function buildPeerActivityRow(peer: BridgePeer, events: RuntimeEvent[]):
30
32
  sessionId: peer.sessionId,
31
33
  driver: peer.driver,
32
34
  model: peer.model,
35
+ kind: peer.kind,
36
+ metadata: peer.metadata,
33
37
  contextTokens: usage?.contextTokens,
34
38
  contextWindow: usage?.contextWindow,
35
39
  contextPercentage: usage?.contextPercentage,
@@ -13,6 +13,7 @@ export declare class ClaudeRuntimeIntercomBridge {
13
13
  attachPeer(input: AttachPeerInput): Promise<BridgePeer>;
14
14
  listPeers(): Promise<BridgePeer[]>;
15
15
  status(name: string): Promise<BridgePeer | undefined>;
16
+ reconcilePeers(): Promise<BridgePeer[]>;
16
17
  send(name: string, message: Omit<IntercomInboundMessage, "kind">, options?: {
17
18
  waitForIdle?: boolean;
18
19
  }): Promise<BridgePeer>;
@@ -37,8 +38,12 @@ export declare class ClaudeRuntimeIntercomBridge {
37
38
  private handleTransportMessage;
38
39
  private rememberPeer;
39
40
  private forgetPeer;
41
+ private listPeersWithoutRestore;
42
+ private mergePersistedPeerRecord;
43
+ private recordFromPeer;
40
44
  private requirePeer;
41
- private assertPeerNameAvailable;
45
+ private assertLaunchPeerNameAvailable;
46
+ private assertAttachPeerNameAvailable;
42
47
  }
43
48
  declare function formatInboundMessage(message: IntercomInboundMessage): string;
44
49
  declare function extractReplyText(events: RuntimeEvent[]): string;
@@ -24,7 +24,7 @@ export class ClaudeRuntimeIntercomBridge {
24
24
  this.askTimeoutMs = options.askTimeoutMs ?? DEFAULT_ASK_TIMEOUT_MS;
25
25
  }
26
26
  async launchPeer(input) {
27
- this.assertPeerNameAvailable(input.name);
27
+ await this.assertLaunchPeerNameAvailable(input.name);
28
28
  const status = await this.runtime.start({
29
29
  prompt: input.prompt,
30
30
  driver: input.driver,
@@ -37,9 +37,12 @@ export class ClaudeRuntimeIntercomBridge {
37
37
  additionalDirectories: input.additionalDirectories,
38
38
  env: input.env,
39
39
  });
40
- const peer = this.peerFromStatus(input.name, status, "starting");
40
+ const peer = this.peerFromStatus(input.name, status, "starting", {
41
+ kind: input.kind ?? "ad-hoc",
42
+ metadata: input.metadata,
43
+ });
41
44
  this.peers.set(peer.name, peer);
42
- await this.rememberPeer(peer.name, peer.sessionId);
45
+ await this.rememberPeer(peer);
43
46
  await this.registerTransportPeer(peer.name);
44
47
  if (input.waitForIdle !== false) {
45
48
  await this.waitForTerminalState(peer.sessionId);
@@ -47,27 +50,38 @@ export class ClaudeRuntimeIntercomBridge {
47
50
  return this.syncPeerFromRuntime(peer.name);
48
51
  }
49
52
  async attachPeer(input) {
50
- this.assertPeerNameAvailable(input.name);
53
+ await this.assertAttachPeerNameAvailable(input);
51
54
  const status = await this.runtime.status(input.sessionId);
52
55
  if (!status) {
53
56
  throw new Error(`Unknown runtime session ${input.sessionId}`);
54
57
  }
55
- const peer = this.peerFromStatus(input.name, status, mapRuntimeState(status.state, true));
58
+ const peer = this.peerFromStatus(input.name, status, mapRuntimeState(status.state, true), {
59
+ kind: input.kind ?? "ad-hoc",
60
+ metadata: input.metadata,
61
+ });
56
62
  this.peers.set(peer.name, peer);
57
- await this.rememberPeer(peer.name, peer.sessionId);
63
+ await this.rememberPeer(peer);
58
64
  await this.registerTransportPeer(peer.name);
59
65
  return peer;
60
66
  }
61
67
  async listPeers() {
68
+ await this.restorePeers();
62
69
  const peers = await Promise.all([...this.peers.values()].map((peer) => this.syncPeerFromRuntime(peer.name)));
63
70
  return peers.sort((a, b) => a.name.localeCompare(b.name));
64
71
  }
65
72
  async status(name) {
73
+ if (!this.peers.has(name)) {
74
+ await this.restorePeers();
75
+ }
66
76
  if (!this.peers.has(name)) {
67
77
  return undefined;
68
78
  }
69
79
  return this.syncPeerFromRuntime(name);
70
80
  }
81
+ async reconcilePeers() {
82
+ await this.restorePeers();
83
+ return this.listPeersWithoutRestore();
84
+ }
71
85
  async send(name, message, options = {}) {
72
86
  const result = await this.deliver(name, { ...message, kind: "send" }, { waitForIdle: options.waitForIdle ?? true });
73
87
  return result.peer;
@@ -93,7 +107,7 @@ export class ClaudeRuntimeIntercomBridge {
93
107
  async stop(name) {
94
108
  const peer = this.requirePeer(name);
95
109
  const status = await this.runtime.stop(peer.sessionId);
96
- const stopped = this.peerFromStatus(name, status, mapRuntimeState(status.state, true));
110
+ const stopped = this.peerFromStatus(name, status, mapRuntimeState(status.state, true), peer);
97
111
  await this.forgetPeer(name);
98
112
  await this.unregisterTransportPeer(name);
99
113
  this.peers.delete(name);
@@ -133,13 +147,21 @@ export class ClaudeRuntimeIntercomBridge {
133
147
  const survivors = [];
134
148
  for (const record of registry.peers) {
135
149
  if (this.peers.has(record.name)) {
136
- survivors.push(record);
137
- restored.push(this.peers.get(record.name));
150
+ const current = this.mergePersistedPeerRecord(this.peers.get(record.name), record);
151
+ this.peers.set(current.name, current);
152
+ survivors.push(this.recordFromPeer(current));
153
+ restored.push(current);
138
154
  continue;
139
155
  }
140
156
  try {
141
- const peer = await this.attachPeer(record);
142
- survivors.push({ name: peer.name, sessionId: peer.sessionId });
157
+ const status = await this.runtime.status(record.sessionId);
158
+ if (!status) {
159
+ throw new Error(`Unknown runtime session ${record.sessionId}`);
160
+ }
161
+ const peer = this.peerFromStatus(record.name, status, mapRuntimeState(status.state, true), record);
162
+ this.peers.set(peer.name, peer);
163
+ await this.registerTransportPeer(peer.name);
164
+ survivors.push(this.recordFromPeer(peer));
143
165
  restored.push(peer);
144
166
  }
145
167
  catch {
@@ -242,12 +264,12 @@ export class ClaudeRuntimeIntercomBridge {
242
264
  this.peers.set(name, next);
243
265
  return next;
244
266
  }
245
- const next = this.peerFromStatus(name, status, mapRuntimeState(status.state, true));
267
+ const next = this.peerFromStatus(name, status, mapRuntimeState(status.state, true), peer);
246
268
  this.peers.set(name, next);
247
269
  await this.transport?.updatePeer(next);
248
270
  return next;
249
271
  }
250
- peerFromStatus(name, status, state) {
272
+ peerFromStatus(name, status, state, preserved = {}) {
251
273
  return {
252
274
  name,
253
275
  sessionId: status.sessionId,
@@ -258,6 +280,8 @@ export class ClaudeRuntimeIntercomBridge {
258
280
  createdAt: status.createdAt,
259
281
  updatedAt: status.updatedAt,
260
282
  lastActivityAt: status.lastActivityAt,
283
+ kind: preserved.kind,
284
+ metadata: cloneMetadata(preserved.metadata),
261
285
  };
262
286
  }
263
287
  async registerTransportPeer(name) {
@@ -297,10 +321,10 @@ export class ClaudeRuntimeIntercomBridge {
297
321
  }
298
322
  await this.deliver(name, inbound, { waitForIdle: false });
299
323
  }
300
- async rememberPeer(name, sessionId) {
324
+ async rememberPeer(peer) {
301
325
  const registry = await readBridgeRegistry(this.storageDir);
302
- const peers = registry.peers.filter((peer) => peer.name !== name);
303
- peers.push({ name, sessionId });
326
+ const peers = registry.peers.filter((entry) => entry.name !== peer.name);
327
+ peers.push(this.recordFromPeer(peer));
304
328
  await writeBridgeRegistry(this.storageDir, { peers: peers.sort((a, b) => a.name.localeCompare(b.name)) });
305
329
  }
306
330
  async forgetPeer(name) {
@@ -309,6 +333,25 @@ export class ClaudeRuntimeIntercomBridge {
309
333
  peers: registry.peers.filter((peer) => peer.name !== name),
310
334
  });
311
335
  }
336
+ async listPeersWithoutRestore() {
337
+ const peers = await Promise.all([...this.peers.values()].map((peer) => this.syncPeerFromRuntime(peer.name)));
338
+ return peers.sort((a, b) => a.name.localeCompare(b.name));
339
+ }
340
+ mergePersistedPeerRecord(peer, record) {
341
+ return {
342
+ ...peer,
343
+ kind: record.kind ?? peer.kind,
344
+ metadata: cloneMetadata(record.metadata ?? peer.metadata),
345
+ };
346
+ }
347
+ recordFromPeer(peer) {
348
+ return {
349
+ name: peer.name,
350
+ sessionId: peer.sessionId,
351
+ kind: peer.kind,
352
+ metadata: cloneMetadata(peer.metadata),
353
+ };
354
+ }
312
355
  requirePeer(name) {
313
356
  const peer = this.peers.get(name);
314
357
  if (!peer) {
@@ -316,10 +359,25 @@ export class ClaudeRuntimeIntercomBridge {
316
359
  }
317
360
  return peer;
318
361
  }
319
- assertPeerNameAvailable(name) {
362
+ async assertLaunchPeerNameAvailable(name) {
320
363
  if (this.peers.has(name)) {
321
364
  throw new Error(`Peer name ${name} already registered`);
322
365
  }
366
+ const registry = await readBridgeRegistry(this.storageDir);
367
+ if (registry.peers.some((peer) => peer.name === name)) {
368
+ throw new Error(`Peer name ${name} already registered`);
369
+ }
370
+ }
371
+ async assertAttachPeerNameAvailable(input) {
372
+ const existing = this.peers.get(input.name);
373
+ if (existing) {
374
+ throw new Error(`Peer name ${input.name} already registered`);
375
+ }
376
+ const registry = await readBridgeRegistry(this.storageDir);
377
+ const persisted = registry.peers.find((peer) => peer.name === input.name);
378
+ if (persisted && persisted.sessionId !== input.sessionId) {
379
+ throw new Error(`Peer name ${input.name} already registered`);
380
+ }
323
381
  }
324
382
  }
325
383
  function mergeSystemPrompt(appendSystemPrompt) {
@@ -393,6 +451,12 @@ function mapRuntimeState(state, registered) {
393
451
  async function delay(ms) {
394
452
  await new Promise((resolve) => setTimeout(resolve, ms));
395
453
  }
454
+ function cloneMetadata(metadata) {
455
+ if (!metadata || Object.keys(metadata).length === 0) {
456
+ return undefined;
457
+ }
458
+ return Object.fromEntries(Object.entries(metadata).sort(([a], [b]) => a.localeCompare(b)));
459
+ }
396
460
  function formatTransportInboundText(message) {
397
461
  const attachmentText = (message.attachments ?? []).map((attachment) => {
398
462
  if (attachment.language) {
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  export { ClaudeRuntimeIntercomBridge } from "./bridge.js";
2
+ export { PI_CA_LEASH_STATE_DIR_NAME, PiCaLeashManagedPeerApi, piCaLeashBridgeStorageDir, piCaLeashRuntimeStorageDir, piCaLeashStateDir, } from "./managed-peers.js";
2
3
  export { PiIntercomTransport } from "./pi-intercom-transport.js";
3
4
  export { BRIDGE_SYSTEM_PROMPT, extractLatestReplyText, extractReplyText, formatInboundMessage, formatTransportInboundText, mapRuntimeState, } from "./bridge.js";
4
5
  export { defaultBridgeStorageDir, bridgeRegistryPath, readBridgeRegistry, writeBridgeRegistry, } from "./persistence.js";
5
- export type { AskResult, AttachPeerInput, BridgeOptions, BridgePeer, BridgeState, BridgeTransport, BridgeTransportAttachment, BridgeTransportIncomingMessage, BridgeTransportOutgoingMessage, BridgeTransportSessionInfo, BridgeTransportStatus, DeliveryState, IntercomInboundMessage, IntercomMessageKind, InterruptPeerResult, LaunchPeerInput, } from "./types.js";
6
+ export type { AskResult, AttachPeerInput, BridgeOptions, BridgePeer, BridgePeerKind, BridgeState, BridgeTransport, BridgeTransportAttachment, BridgeTransportIncomingMessage, BridgeTransportOutgoingMessage, BridgeTransportSessionInfo, BridgeTransportStatus, DeliveryState, IntercomInboundMessage, IntercomMessageKind, InterruptPeerResult, LaunchPeerInput, } from "./types.js";
7
+ export type { ManagedPeerApiOptions } from "./managed-peers.js";
@@ -1,4 +1,5 @@
1
1
  export { ClaudeRuntimeIntercomBridge } from "./bridge.js";
2
+ export { PI_CA_LEASH_STATE_DIR_NAME, PiCaLeashManagedPeerApi, piCaLeashBridgeStorageDir, piCaLeashRuntimeStorageDir, piCaLeashStateDir, } from "./managed-peers.js";
2
3
  export { PiIntercomTransport } from "./pi-intercom-transport.js";
3
4
  export { BRIDGE_SYSTEM_PROMPT, extractLatestReplyText, extractReplyText, formatInboundMessage, formatTransportInboundText, mapRuntimeState, } from "./bridge.js";
4
5
  export { defaultBridgeStorageDir, bridgeRegistryPath, readBridgeRegistry, writeBridgeRegistry, } from "./persistence.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}