@comput/pi-intercom 0.8.1 → 0.9.0

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 +48 -2
  2. package/dist/config.d.ts +7 -0
  3. package/dist/config.js +10 -0
  4. package/dist/config.js.map +1 -1
  5. package/dist/core-monitor.d.ts +30 -0
  6. package/dist/core-monitor.js +528 -0
  7. package/dist/core-monitor.js.map +1 -0
  8. package/dist/core-pane-close.d.ts +34 -0
  9. package/dist/core-pane-close.js +335 -0
  10. package/dist/core-pane-close.js.map +1 -0
  11. package/dist/core-worker-layout.d.ts +50 -0
  12. package/dist/core-worker-layout.js +236 -0
  13. package/dist/core-worker-layout.js.map +1 -0
  14. package/dist/herdr-core.d.ts +53 -0
  15. package/dist/herdr-core.js +380 -0
  16. package/dist/herdr-core.js.map +1 -0
  17. package/dist/index.js +42 -10
  18. package/dist/index.js.map +1 -1
  19. package/dist/launcher.d.ts +2 -0
  20. package/dist/launcher.js +48 -2
  21. package/dist/launcher.js.map +1 -1
  22. package/dist/monitor-launcher.d.ts +8 -0
  23. package/dist/monitor-launcher.js +111 -25
  24. package/dist/monitor-launcher.js.map +1 -1
  25. package/dist/pane-close.js +3 -0
  26. package/dist/pane-close.js.map +1 -1
  27. package/dist/runtime.d.ts +17 -1
  28. package/dist/runtime.js +51 -1
  29. package/dist/runtime.js.map +1 -1
  30. package/package.json +5 -3
  31. package/references/herdr-core-migration.md +44 -0
  32. package/references/v1-specification.md +7 -4
  33. package/src/config.ts +10 -1
  34. package/src/core-monitor.ts +410 -0
  35. package/src/core-pane-close.ts +328 -0
  36. package/src/core-worker-layout.ts +240 -0
  37. package/src/herdr-core.ts +287 -0
  38. package/src/index.ts +38 -11
  39. package/src/launcher.ts +46 -2
  40. package/src/monitor-launcher.ts +95 -21
  41. package/src/pane-close.ts +2 -0
  42. package/src/runtime.ts +47 -1
package/dist/launcher.js CHANGED
@@ -2,6 +2,8 @@ import { execFile } from 'node:child_process';
2
2
  import { promisify } from 'node:util';
3
3
  import path from 'node:path';
4
4
  import { fail } from './config.js';
5
+ import { renameCoreTab, withCoreSession } from './herdr-core.js';
6
+ import { preflightCoreWorkerLayout, attachCoreWorkerLayout } from './core-worker-layout.js';
5
7
  export const run = async (file, args) => {
6
8
  const { stdout } = await promisify(execFile)(file, args, { windowsHide: true, timeout: 40000, maxBuffer: 1024 * 1024 });
7
9
  return stdout;
@@ -30,8 +32,48 @@ export function launchers(options) {
30
32
  // Explicit per-child CLI scope cannot widen cwd or leak from a parent shell environment.
31
33
  const args = ['-e', options.extension, '--intercom-root', request.workspaceRoot, ...(request.sessionId ? ['--session', request.sessionId] : [])];
32
34
  if (request.multiplexer === 'herdr') {
35
+ // HC identity takes precedence even when stale legacy variables survive.
36
+ // Never reinterpret an HC failure as permission to create a legacy tab.
37
+ if (env.HC_TERMINAL_ID !== undefined) {
38
+ const caller = env.HC_TERMINAL_ID;
39
+ if (!/^t[0-9a-z]+$/.test(caller) || caller.trim() !== caller)
40
+ fail('HC launcher requires a local HC_TERMINAL_ID address; names and remote addresses are not accepted; no fallback');
41
+ // No template/task/message/provider override. Use an explicit shell and
42
+ // preserve the user's Pi defaults and literal root/session arguments.
43
+ const argv = platform === 'win32'
44
+ ? ['powershell.exe', '-NoProfile', '-ExecutionPolicy', 'Bypass', '-EncodedCommand', encoded(`$ErrorActionPreference='Stop'; Set-Location -LiteralPath ${psQuote(request.cwd)}; & (Get-Command pi.ps1 -ErrorAction Stop).Source ${args.map(psQuote).join(' ')}; exit $LASTEXITCODE`)]
45
+ : ['/bin/sh', '-c', `exec pi ${args.map(shQuote).join(' ')}`];
46
+ let attempted = false;
47
+ const operation = async (call) => {
48
+ // Refuse missing/unsupported app layout BEFORE creating a terminal.
49
+ // All reads, spawn, CAS placement and readback share this connection.
50
+ const ticket = await preflightCoreWorkerLayout({ caller, cwd: request.cwd, workspaceRoot: request.workspaceRoot, platform }, call);
51
+ attempted = true;
52
+ const created = await call('terminal.run', {
53
+ argv, cwd: request.cwd, caller, parent: caller,
54
+ outlive_parent: true, no_notify: true, wait: false, keep: false,
55
+ });
56
+ const placement = await attachCoreWorkerLayout(ticket, created, call);
57
+ return { commandSubmitted: true, ...placement, terminalState: created.state,
58
+ ui: 'render-unverified',
59
+ uiReason: 'Dedicated tab confirmed in shared app layout; remote UI rendering is not observed.',
60
+ piReadiness: 'not observed; terminal creation and layout confirmation are not Pi readiness', registrationAwaited: false };
61
+ };
62
+ try {
63
+ // Injection is a trusted test seam; production verifies hello/status
64
+ // for core 0.1.18 once, without reconnecting between launch steps.
65
+ return await (options.coreCall ? operation(options.coreCall) : withCoreSession(operation, { endpoint: env.HC_SOCKET }));
66
+ }
67
+ catch (e) {
68
+ if (attempted)
69
+ throw Object.assign(new Error('HC worker launch or placement failed; outcome unknown, terminal/process and app tab may remain; no automatic cleanup/retry/replacement or legacy fallback'), { outcomeUncertain: true });
70
+ fail(`HC launch preflight failed: ${String(e)}; no fallback or launch attempted`);
71
+ }
72
+ }
73
+ // Compatibility is selected only by explicit legacy identity, never by an
74
+ // HC error or by discovering an arbitrary running Herdr window.
33
75
  if (env.HERDR_ENV !== '1' || !env.HERDR_WORKSPACE_ID)
34
- fail('Herdr launcher requires this Pi to run inside a Herdr-managed workspace; no fallback');
76
+ fail('Herdr launcher requires HC_TERMINAL_ID or explicit legacy HERDR_ENV=1 and HERDR_WORKSPACE_ID; no fallback');
35
77
  let created;
36
78
  try {
37
79
  created = JSON.parse(await exec('herdr', ['tab', 'create', '--workspace', env.HERDR_WORKSPACE_ID, '--cwd', request.cwd, '--label', 'Intercom (anonymous)', '--no-focus']));
@@ -62,7 +104,7 @@ export function launchers(options) {
62
104
  fail('unsupported multiplexer');
63
105
  // Use encoded PowerShell rather than constructing cmd.exe command strings.
64
106
  // The outer process reports only successful visible terminal creation, not Pi readiness.
65
- const child = `$ErrorActionPreference='Stop'; Get-ChildItem Env: | Where-Object { $_.Name -like 'HERDR_*' -or $_.Name -like 'PI_SESSION_*' } | ForEach-Object { Remove-Item ('Env:' + $_.Name) }; Set-Location -LiteralPath ${psQuote(request.cwd)}; & (Get-Command pi.cmd -ErrorAction Stop).Source ${args.map(psQuote).join(' ')}; if ($LASTEXITCODE -ne 0) { Write-Error ('Pi exited with code ' + $LASTEXITCODE) }`;
107
+ const child = `$ErrorActionPreference='Stop'; Get-ChildItem Env: | Where-Object { $_.Name -like 'HERDR_*' -or $_.Name -like 'HC_*' -or $_.Name -like 'PI_SESSION_*' } | ForEach-Object { Remove-Item ('Env:' + $_.Name) }; Set-Location -LiteralPath ${psQuote(request.cwd)}; & (Get-Command pi.cmd -ErrorAction Stop).Source ${args.map(psQuote).join(' ')}; if ($LASTEXITCODE -ne 0) { Write-Error ('Pi exited with code ' + $LASTEXITCODE) }`;
66
108
  const outer = `$ErrorActionPreference='Stop'; $null=Get-Command pi.cmd -ErrorAction Stop; $p=Start-Process -FilePath (Join-Path $PSHOME 'powershell.exe') -WorkingDirectory ${psQuote(request.cwd)} -ArgumentList @('-NoProfile','-NoExit','-EncodedCommand',${psQuote(encoded(child))}) -WindowStyle Normal -PassThru; $p.Id`;
67
109
  const result = await exec('powershell.exe', ['-NoProfile', '-NonInteractive', '-EncodedCommand', encoded(outer)]);
68
110
  const pid = Number(result.trim());
@@ -71,6 +113,10 @@ export function launchers(options) {
71
113
  return { terminalLaunched: true, pid, piReadiness: 'not observed; inspect visible terminal for startup failures', registrationAwaited: false };
72
114
  }
73
115
  async function syncName(name) {
116
+ if (env.HC_TERMINAL_ID !== undefined) {
117
+ await renameCoreTab(env.HC_TERMINAL_ID, name, options.coreCall);
118
+ return;
119
+ }
74
120
  if (env.HERDR_ENV !== '1')
75
121
  return;
76
122
  // Resolve inherited pane context, including panes moved since launch.
@@ -1 +1 @@
1
- {"version":3,"file":"launcher.js","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launcher.js","sourceRoot":"","sources":["../src/launcher.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import { type Run } from './launcher.js';
2
+ import { type CoreCall } from './herdr-core.js';
3
+ export type MonitorPlacement = 'coordinator-tab' | 'new-tab';
2
4
  export interface MonitorLaunchOptions {
3
5
  root: string;
4
6
  sessionId: string;
@@ -7,6 +9,8 @@ export interface MonitorLaunchOptions {
7
9
  platform?: string;
8
10
  env?: NodeJS.ProcessEnv;
9
11
  run?: Run;
12
+ placement?: MonitorPlacement;
13
+ coreCall?: CoreCall;
10
14
  assertCurrent?(): void;
11
15
  }
12
16
  /** Pane ownership is separate from agent config. Pending records fence uncertain
@@ -15,3 +19,7 @@ export declare function ensureMonitorPane(options: MonitorLaunchOptions): Promis
15
19
  outcome: string;
16
20
  pane?: string;
17
21
  }>;
22
+ export declare function closeMonitorPane(options: MonitorLaunchOptions): Promise<{
23
+ outcome: string;
24
+ pane?: string;
25
+ }>;
@@ -2,9 +2,28 @@ import path from 'node:path';
2
2
  import { createHash, randomUUID } from 'node:crypto';
3
3
  import { access, mkdir, readFile, rename, unlink, writeFile } from 'node:fs/promises';
4
4
  import { run, shQuote, psQuote, encoded } from './launcher.js';
5
+ import { ensureCoreMonitorPane, closeCoreMonitorPane } from './core-monitor.js';
6
+ import { withCoreSession } from './herdr-core.js';
5
7
  /** Pane ownership is separate from agent config. Pending records fence uncertain
6
8
  * mutations across reloads; neither errors nor absence of readiness cause retries. */
7
9
  export async function ensureMonitorPane(options) {
10
+ if ((options.env ?? process.env).HC_TERMINAL_ID !== undefined) {
11
+ const open = (call) => ensureCoreMonitorPane({ ...options, placement: options.placement ?? 'coordinator-tab', call });
12
+ return options.coreCall ? open(options.coreCall) : withCoreSession(open);
13
+ }
14
+ return monitorPane(options, false);
15
+ }
16
+ export async function closeMonitorPane(options) {
17
+ if ((options.env ?? process.env).HC_TERMINAL_ID !== undefined) {
18
+ const close = (call) => closeCoreMonitorPane({ ...options, call });
19
+ return options.coreCall ? close(options.coreCall) : withCoreSession(close);
20
+ }
21
+ return monitorPane(options, true);
22
+ }
23
+ async function monitorPane(options, closing) {
24
+ const placement = options.placement ?? 'coordinator-tab';
25
+ if (!['coordinator-tab', 'new-tab'].includes(placement))
26
+ throw new Error('Invalid monitor placement');
8
27
  const env = options.env ?? process.env;
9
28
  if (env.HERDR_ENV !== '1')
10
29
  return { outcome: 'unavailable: coordinator is not inside Herdr' };
@@ -20,18 +39,24 @@ export async function ensureMonitorPane(options) {
20
39
  const output = await exec('herdr', args);
21
40
  check();
22
41
  // pane run acknowledges command submission with an empty stdout on current Herdr.
23
- if (!output.trim() && args[1] === 'run')
42
+ if (!output.trim() && ['run', 'close'].includes(args[1]))
24
43
  return {};
25
44
  return JSON.parse(output).result;
26
45
  };
27
46
  const caller = (await call(['pane', 'current', '--current']))?.pane;
28
47
  if (!caller?.pane_id || !caller.tab_id || !caller.workspace_id)
29
- throw new Error('Missing current Herdr pane identity');
48
+ throw new Error('Missing current Herdr caller pane identity');
49
+ // Herdr documents inherited moved-pane aliases for --current. Preserve that
50
+ // resolution for opening; destructive close conservatively requires exact ID.
51
+ if (closing && caller.pane_id !== env.HERDR_PANE_ID)
52
+ throw new Error('Mismatched current Herdr caller pane identity; refusing close');
30
53
  const label = 'Intercom monitor';
31
54
  const legacyMarker = `Intercom monitor [${options.sessionId}]`;
32
55
  const key = createHash('sha256').update(options.sessionId).digest('hex').slice(0, 24);
33
56
  const directory = path.join(options.root, '.pi-intercom');
57
+ check();
34
58
  await mkdir(directory, { recursive: true });
59
+ check();
35
60
  const file = path.join(directory, `monitor-${key}.json`), lock = `${file}.lock`;
36
61
  check();
37
62
  try {
@@ -42,9 +67,11 @@ export async function ensureMonitorPane(options) {
42
67
  }
43
68
  let state;
44
69
  const save = async () => {
70
+ check();
45
71
  const temporary = `${file}.${randomUUID()}.tmp`;
46
72
  try {
47
73
  await writeFile(temporary, JSON.stringify(state), { flag: 'wx', mode: 0o600 });
74
+ check();
48
75
  await rename(temporary, file);
49
76
  }
50
77
  finally {
@@ -52,9 +79,16 @@ export async function ensureMonitorPane(options) {
52
79
  }
53
80
  };
54
81
  try {
82
+ check();
55
83
  try {
56
84
  state = JSON.parse(await readFile(file, 'utf8'));
57
- if (state?.version !== 1 || state.sessionId !== options.sessionId || typeof state.stage !== 'string')
85
+ check();
86
+ if (state?.version !== 1 || state.sessionId !== options.sessionId || typeof state.stage !== 'string' ||
87
+ typeof state.workspace !== 'string' || typeof state.caller !== 'string' ||
88
+ (state.placement !== undefined && !['coordinator-tab', 'new-tab'].includes(state.placement)) ||
89
+ (state.tab !== undefined && typeof state.tab !== 'string') ||
90
+ (state.pane !== undefined && typeof state.pane !== 'string') ||
91
+ (state.placement === 'new-tab' && ['submitted', 'observed'].includes(state.stage) && !state.tab))
58
92
  throw new Error('Invalid monitor ownership record');
59
93
  }
60
94
  catch (e) {
@@ -62,7 +96,7 @@ export async function ensureMonitorPane(options) {
62
96
  throw e;
63
97
  }
64
98
  const panes = (await call(['pane', 'list', '--workspace', caller.workspace_id]))?.panes;
65
- if (!Array.isArray(panes) || panes.some(p => !p?.pane_id || !p.tab_id))
99
+ if (!Array.isArray(panes) || panes.some(p => !p?.pane_id || !p.tab_id || p.workspace_id && p.workspace_id !== caller.workspace_id) || new Set(panes.map(p => p.pane_id)).size !== panes.length || !panes.some(p => p.pane_id === caller.pane_id && p.tab_id === caller.tab_id))
66
100
  throw new Error('Invalid Herdr pane inventory');
67
101
  const matches = panes.filter(p => p.label === legacyMarker ||
68
102
  (state && state.workspace === caller.workspace_id && state.pane === p.pane_id));
@@ -70,8 +104,14 @@ export async function ensureMonitorPane(options) {
70
104
  throw new Error('Multiple monitor markers; inspect panes. No automatic changes.');
71
105
  if (matches.length === 1) {
72
106
  const pane = matches[0];
73
- if (pane.pane_id === caller.pane_id || pane.tab_id !== caller.tab_id)
74
- throw new Error('Monitor marker is on caller or moved to another tab; no duplicate created');
107
+ if (panes.some(other => other.pane_id !== pane.pane_id && other.label === label))
108
+ throw new Error('Multiple monitor labels in workspace; inspect panes. No automatic changes.');
109
+ const savedPlacement = state?.placement ?? 'coordinator-tab';
110
+ if (pane.pane_id === caller.pane_id || pane.tab_id !== (state?.tab ?? caller.tab_id) ||
111
+ (savedPlacement === 'coordinator-tab' ? pane.tab_id !== caller.tab_id : pane.tab_id === caller.tab_id))
112
+ throw new Error('Monitor marker is on caller or moved to another tab; no automatic changes');
113
+ if (!closing && savedPlacement !== placement)
114
+ throw new Error('Monitor already exists in a different placement; close it first before opening elsewhere');
75
115
  if (state && (state.workspace !== caller.workspace_id || state.caller !== caller.pane_id || (state.pane && state.pane !== pane.pane_id))) {
76
116
  throw new Error('Monitor ownership differs from current caller; no automatic changes');
77
117
  }
@@ -79,42 +119,88 @@ export async function ensureMonitorPane(options) {
79
119
  throw new Error(`Monitor partial launch needs inspection (${state.stage}); no retry or duplicate`);
80
120
  }
81
121
  if (!state) {
82
- state = { version: 1, sessionId: options.sessionId, workspace: caller.workspace_id, caller: caller.pane_id, pane: pane.pane_id, stage: 'observed' };
122
+ if (closing)
123
+ throw new Error('Legacy monitor marker has no saved ownership; manual inspection required, no automatic close');
124
+ state = { version: 1, sessionId: options.sessionId, workspace: caller.workspace_id, caller: caller.pane_id, pane: pane.pane_id, tab: pane.tab_id, placement: 'coordinator-tab', stage: 'observed' };
83
125
  await save();
84
126
  }
127
+ if (closing) {
128
+ if (state.stage !== 'submitted')
129
+ throw new Error('Legacy observed monitor lacks launcher-created ownership proof; refusing close');
130
+ if (pane.label !== label && pane.label !== legacyMarker)
131
+ throw new Error('Owned monitor label changed; refusing to close a potentially reused pane');
132
+ state.stage = 'close_pending';
133
+ await save();
134
+ const finalCaller = (await call(['pane', 'current', '--current']))?.pane;
135
+ const finalPanes = (await call(['pane', 'list', '--workspace', caller.workspace_id]))?.panes;
136
+ if (finalCaller?.pane_id !== caller.pane_id || finalCaller.tab_id !== caller.tab_id || finalCaller.workspace_id !== caller.workspace_id ||
137
+ !Array.isArray(finalPanes) || finalPanes.some(p => !p?.pane_id || !p.tab_id || p.workspace_id && p.workspace_id !== caller.workspace_id) ||
138
+ new Set(finalPanes.map(p => p.pane_id)).size !== finalPanes.length ||
139
+ !finalPanes.some(p => p.pane_id === caller.pane_id && p.tab_id === caller.tab_id) ||
140
+ finalPanes.filter(p => p.pane_id === pane.pane_id && p.tab_id === pane.tab_id && p.label === pane.label).length !== 1 ||
141
+ finalPanes.some(p => p.pane_id !== pane.pane_id && [label, legacyMarker].includes(p.label ?? '')))
142
+ throw new Error('Monitor ownership changed before close; pending outcome fenced, inspect manually');
143
+ // Herdr has no compare-and-close primitive: this minimizes but cannot
144
+ // eliminate an external topology race between inventory and pane close.
145
+ await call(['pane', 'close', pane.pane_id]);
146
+ const remaining = (await call(['pane', 'list', '--workspace', caller.workspace_id]))?.panes;
147
+ if (!Array.isArray(remaining) || remaining.some(p => !p?.pane_id || !p.tab_id || p.workspace_id && p.workspace_id !== caller.workspace_id) || new Set(remaining.map(p => p.pane_id)).size !== remaining.length || remaining.some(p => p.pane_id === pane.pane_id) || !remaining.some(p => p.pane_id === caller.pane_id && p.tab_id === caller.tab_id))
148
+ throw new Error('Monitor pane absence not confirmed; close outcome uncertain, do not retry');
149
+ state.stage = 'closed';
150
+ await save();
151
+ return { outcome: 'monitor pane absence observed; no claim about child processes', pane: pane.pane_id };
152
+ }
85
153
  if (pane.label !== label)
86
154
  await call(['pane', 'rename', pane.pane_id, label]);
87
155
  return { outcome: 'existing pane preserved; process readiness not checked', pane: pane.pane_id };
88
156
  }
89
- if (panes.some(p => p.tab_id === caller.tab_id && p.label === label)) {
90
- throw new Error('Unowned monitor label in coordinator tab; inspect before creating another pane');
157
+ if (panes.some(p => p.label === label)) {
158
+ throw new Error('Unowned monitor label in workspace; inspect before creating or closing a pane');
91
159
  }
92
- if (state && (!['submitted', 'observed'].includes(state.stage) || state.workspace !== caller.workspace_id || panes.some(p => p.pane_id === state.pane))) {
160
+ if (state && (!['submitted', 'observed', 'closed'].includes(state.stage) || state.workspace !== caller.workspace_id || state.caller !== caller.pane_id || panes.some(p => p.pane_id === state.pane))) {
93
161
  throw new Error(`Monitor ownership/partial launch needs inspection (${state.stage}, pane ${state.pane ?? 'unknown'}); no retry or duplicate`);
94
162
  }
163
+ if (closing)
164
+ return { outcome: 'no owned monitor pane present; no close submitted' };
95
165
  await access(options.script); // Missing build must not leave a new empty pane.
96
166
  check();
97
- state = { version: 1, sessionId: options.sessionId, workspace: caller.workspace_id, caller: caller.pane_id, stage: 'split_pending' };
167
+ state = { version: 1, sessionId: options.sessionId, workspace: caller.workspace_id, caller: caller.pane_id, placement, tab: placement === 'coordinator-tab' ? caller.tab_id : undefined, stage: placement === 'new-tab' ? 'tab_pending' : 'split_pending' };
98
168
  await save();
99
169
  // Small top quarter after swapping pane identities. Verify actual geometry below.
100
- const split = await call(['pane', 'split', '--pane', caller.pane_id, '--direction', 'down', '--ratio', '0.25', '--cwd', options.root, '--no-focus']);
101
- const pane = split?.pane?.pane_id;
102
- if (typeof pane !== 'string' || pane === caller.pane_id)
103
- throw new Error('Split returned no distinct pane ID');
170
+ const created = placement === 'new-tab'
171
+ ? await call(['tab', 'create', '--workspace', caller.workspace_id, '--cwd', options.root, '--label', label, '--no-focus'])
172
+ : await call(['pane', 'split', '--pane', caller.pane_id, '--direction', 'down', '--ratio', '0.25', '--cwd', options.root, '--no-focus']);
173
+ const pane = placement === 'new-tab' ? created?.root_pane?.pane_id : created?.pane?.pane_id;
174
+ if (typeof pane !== 'string' || pane === caller.pane_id || panes.some(p => p.pane_id === pane))
175
+ throw new Error('Creation returned no distinct new pane ID');
176
+ if (placement === 'new-tab') {
177
+ const tab = created?.tab?.tab_id;
178
+ if (typeof tab !== 'string' || tab === caller.tab_id || panes.some(p => p.tab_id === tab))
179
+ throw new Error('Creation returned no distinct new tab ID');
180
+ state.tab = tab;
181
+ }
104
182
  state.pane = pane;
105
183
  state.stage = 'rename_pending';
106
184
  await save();
107
185
  await call(['pane', 'rename', pane, label]);
108
- state.stage = 'swap_pending';
109
- await save();
110
- const swapped = await call(['pane', 'swap', '--source-pane', caller.pane_id, '--target-pane', pane]);
111
- if (swapped?.swap?.changed !== true)
112
- throw new Error('Herdr did not confirm pane swap');
113
- const layout = (await call(['pane', 'layout', '--pane', caller.pane_id]))?.layout;
114
- const top = layout?.panes?.find((p) => p.pane_id === pane)?.rect;
115
- const bottom = layout?.panes?.find((p) => p.pane_id === caller.pane_id)?.rect;
116
- if (!top || !bottom || top.y >= bottom.y || layout.focused_pane_id !== caller.pane_id)
117
- throw new Error('Monitor geometry/focus not confirmed; inspect panes before recovery');
186
+ if (placement === 'coordinator-tab') {
187
+ state.stage = 'swap_pending';
188
+ await save();
189
+ const swapped = await call(['pane', 'swap', '--source-pane', caller.pane_id, '--target-pane', pane]);
190
+ if (swapped?.swap?.changed !== true)
191
+ throw new Error('Herdr did not confirm pane swap');
192
+ const layout = (await call(['pane', 'layout', '--pane', caller.pane_id]))?.layout;
193
+ const top = layout?.panes?.find((p) => p.pane_id === pane)?.rect;
194
+ const bottom = layout?.panes?.find((p) => p.pane_id === caller.pane_id)?.rect;
195
+ if (!top || !bottom || top.y >= bottom.y || layout.focused_pane_id !== caller.pane_id)
196
+ throw new Error('Monitor geometry/focus not confirmed; inspect panes before recovery');
197
+ }
198
+ else {
199
+ const inventory = (await call(['pane', 'list', '--workspace', caller.workspace_id]))?.panes;
200
+ const current = (await call(['pane', 'current', '--current']))?.pane;
201
+ if (!Array.isArray(inventory) || inventory.some(p => !p?.pane_id || !p.tab_id || p.workspace_id && p.workspace_id !== caller.workspace_id) || new Set(inventory.map(p => p.pane_id)).size !== inventory.length || inventory.filter(p => p?.pane_id === pane && p.tab_id === state.tab).length !== 1 || !inventory.some(p => p.pane_id === caller.pane_id && p.tab_id === caller.tab_id) || current?.pane_id !== caller.pane_id || current.tab_id !== caller.tab_id || current.workspace_id !== caller.workspace_id)
202
+ throw new Error('New monitor tab/caller identity not confirmed; inspect before recovery');
203
+ }
118
204
  state.stage = 'run_pending';
119
205
  await save();
120
206
  const args = [options.script, '--root', options.root];
@@ -1 +1 @@
1
- {"version":3,"file":"monitor-launcher.js","sourceRoot":"","sources":["../src/monitor-launcher.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAY,MAAM,eAAe,CAAC;AASzE;sFACsF;AACtF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAA6B;IACnE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,IAAI,GAAG,CAAC,SAAS,KAAK,GAAG;QAAE,OAAO,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC;IAC9F,IAAI,CAAC,GAAG,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IAC3G,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACtD,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC5G,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC;IAChC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;IAC9C,MAAM,IAAI,GAAG,KAAK,EAAE,IAAc,EAAE,EAAE;QACpC,KAAK,EAAE,CAAC;QACR,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACzC,KAAK,EAAE,CAAC;QACR,kFAAkF;QAClF,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;YAAE,OAAO,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACnC,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,IAAY,CAAC;IAC5E,IAAI,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACvH,MAAM,KAAK,GAAG,kBAAkB,CAAC;IACjC,MAAM,YAAY,GAAG,qBAAqB,OAAO,CAAC,SAAS,GAAG,CAAC;IAC/D,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC1D,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC;IAChF,KAAK,EAAE,CAAC;IACR,IAAI,CAAC;QAAC,MAAM,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAAC,CAAC;IAC/D,MAAM,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,oCAAoC,CAAC,CAAC;IAAC,CAAC;IACtG,IAAI,KAA8B,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,MAAM,SAAS,GAAG,GAAG,IAAI,IAAI,UAAU,EAAE,MAAM,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/E,MAAM,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;gBAAS,CAAC;YAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAAC,CAAC;IACxD,CAAC,CAAC;IACF,IAAI,CAAC;QACH,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACjD,IAAI,KAAK,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC5J,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YAAC,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,CAAC,CAAC;QAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,KAAe,CAAC;QAClG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACxH,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY;YACxD,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAClF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAC1G,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;YACnK,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBACzI,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;YACzF,CAAC;YACD,IAAI,KAAK,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CAAC,4CAA4C,KAAK,CAAC,KAAK,0BAA0B,CAAC,CAAC;YACrG,CAAC;YACD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;gBACpJ,MAAM,IAAI,EAAE,CAAC;YACf,CAAC;YACD,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;gBAAE,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC9E,OAAO,EAAE,OAAO,EAAE,wDAAwD,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QACnG,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACzJ,MAAM,IAAI,KAAK,CAAC,sDAAsD,KAAK,CAAC,KAAK,UAAU,KAAK,CAAC,IAAI,IAAI,SAAS,0BAA0B,CAAC,CAAC;QAChJ,CAAC;QACD,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,iDAAiD;QAC/E,KAAK,EAAE,CAAC;QACR,KAAK,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;QACrI,MAAM,IAAI,EAAE,CAAC;QACb,kFAAkF;QAClF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;QACrJ,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC;QAClC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC/G,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC;QAAC,MAAM,IAAI,EAAE,CAAC;QAChE,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAC5C,KAAK,CAAC,KAAK,GAAG,cAAc,CAAC;QAAC,MAAM,IAAI,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;QACrG,IAAI,OAAO,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAClF,MAAM,GAAG,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC;QACtF,MAAM,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;QACnG,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,eAAe,KAAK,MAAM,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QAC9K,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC;QAAC,MAAM,IAAI,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,QAAQ,KAAK,OAAO;YAClC,CAAC,CAAC,qEAAqE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACjK,CAAC,CAAC,SAAS,OAAO,CAAC,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3G,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAC3C,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC;QAAC,MAAM,IAAI,EAAE,CAAC;QACxC,OAAO,EAAE,OAAO,EAAE,kDAAkD,EAAE,IAAI,EAAE,CAAC;IAC/E,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,SAAS,oCAAoC,CAAC,CAAC;IACxH,CAAC;YAAS,CAAC;QAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"monitor-launcher.js","sourceRoot":"","sources":["../src/monitor-launcher.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { promisify } from 'node:util';
3
3
  import { constants } from 'node:fs';
4
4
  import { open, readFile, realpath } from 'node:fs/promises';
5
5
  import path from 'node:path';
6
+ import { createCoreCloseProvider } from './core-pane-close.js';
6
7
  const rejected = () => new Error('PiIntercom: worker pane identity could not be verified; no close submitted.');
7
8
  const exec = async (file, args) => (await promisify(execFile)(file, args, {
8
9
  windowsHide: true, timeout: 4000, maxBuffer: 1024 * 1024,
@@ -50,6 +51,8 @@ const alive = (identity, start) => !!identity && identity.start === start && !['
50
51
  /** Linux Herdr only. Identity-checked best effort; Herdr has no atomic compare-and-close API. */
51
52
  export function createCloseProvider(options) {
52
53
  const env = options.env ?? process.env;
54
+ if (env.HC_TERMINAL_ID !== undefined)
55
+ return createCoreCloseProvider(options);
53
56
  if ((options.platform ?? process.platform) !== 'linux' || env.HERDR_ENV !== '1' || !env.HERDR_PANE_ID)
54
57
  return;
55
58
  const run = options.run ?? exec;
@@ -1 +1 @@
1
- {"version":3,"file":"pane-close.js","sourceRoot":"","sources":["../src/pane-close.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pane-close.js","sourceRoot":"","sources":["../src/pane-close.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type Observer, type EventType, type EventMetadata } from './observability.js';
2
- import { ConfigStore, type Agent, type Config } from './config.js';
2
+ import { ConfigStore, type MonitorSettings, type Agent, type Config } from './config.js';
3
3
  import { listen, send, type Endpoint, type Envelope, type Kind } from './transport.js';
4
4
  import { probeWorker } from './connections.js';
5
5
  import { type CloseProvider } from './handoff.js';
@@ -19,6 +19,17 @@ export interface LaunchRequest {
19
19
  workspaceRoot: string;
20
20
  sessionId?: string;
21
21
  }
22
+ export interface MonitorRequest {
23
+ root: string;
24
+ sessionId: string;
25
+ assertCurrent(): void;
26
+ }
27
+ export interface MonitorOperations {
28
+ open(request: MonitorRequest & {
29
+ placement: MonitorSettings['placement'];
30
+ }): Promise<unknown>;
31
+ close(request: MonitorRequest): Promise<unknown>;
32
+ }
22
33
  export interface RuntimeOptions {
23
34
  launch(request: LaunchRequest): Promise<unknown>;
24
35
  listen?: typeof listen;
@@ -30,6 +41,7 @@ export interface RuntimeOptions {
30
41
  /** Test seam; production defaults to 120 seconds, values above that are capped. */
31
42
  closeTimeoutMs?: number;
32
43
  reminderClock?: ReminderClock;
44
+ monitor?: MonitorOperations;
33
45
  /** Explicit launcher-provided root must equal canonical cwd; no parent-root exception. */
34
46
  workspaceRoot?: string;
35
47
  }
@@ -68,6 +80,10 @@ export declare class Intercom {
68
80
  config: Config;
69
81
  me?: Agent;
70
82
  }>;
83
+ getMonitorSettings(): Promise<MonitorSettings>;
84
+ /** Automatic admission is internal: explicit open remains allowed with disabled auto-open or no workers. */
85
+ autoOpenMonitor(assertAdmission?: () => void): Promise<unknown>;
86
+ private operateMonitor;
71
87
  /** Accept old configs, but retire the removed browser dashboard's discovery metadata. */
72
88
  retireDashboardMetadata(): Promise<void>;
73
89
  reload(): Promise<void>;
package/dist/runtime.js CHANGED
@@ -2,7 +2,7 @@ import path from 'node:path';
2
2
  import { randomUUID } from 'node:crypto';
3
3
  import { realpath } from 'node:fs/promises';
4
4
  import { LocalObserver, LOG_LIMITS, observationError } from './observability.js';
5
- import { ConfigStore, coordinator, directory, fail, named, requireCoordinator, text, validateConfig } from './config.js';
5
+ import { ConfigStore, coordinator, directory, fail, named, requireCoordinator, text, validateConfig, monitorSettings, validateMonitorSettings } from './config.js';
6
6
  import { listen, send, reportPayload } from './transport.js';
7
7
  import { saveWorkerReport } from './reports.js';
8
8
  import { readObservationSnapshot } from './snapshot.js';
@@ -254,6 +254,41 @@ export class Intercom {
254
254
  assertValid();
255
255
  return { id, config, me: config.agents.find(a => a.sessionId === id) };
256
256
  }
257
+ async getMonitorSettings() {
258
+ const assertValid = this.validity();
259
+ const { id, config } = await this.state();
260
+ assertValid();
261
+ requireCoordinator(config, id);
262
+ return monitorSettings(config);
263
+ }
264
+ /** Automatic admission is internal: explicit open remains allowed with disabled auto-open or no workers. */
265
+ async autoOpenMonitor(assertAdmission = () => { }) { return this.operateMonitor('open_monitor', {}, true, assertAdmission); }
266
+ async operateMonitor(operation, args, automatic = false, assertAdmission = () => { }) {
267
+ const lifecycle = this.validity();
268
+ const assertValid = () => { lifecycle(); assertAdmission(); };
269
+ assertValid();
270
+ if (Object.keys(args).some(key => operation === 'close_monitor' || key !== 'placement'))
271
+ fail('invalid monitor operation arguments');
272
+ if (operation === 'open_monitor' && !automatic && !['coordinator-tab', 'new-tab'].includes(args.placement))
273
+ fail('explicit monitor placement is required; ask the user if unknown');
274
+ const fresh = await this.state();
275
+ assertValid();
276
+ requireCoordinator(fresh.config, fresh.id);
277
+ const settings = monitorSettings(fresh.config);
278
+ if (automatic && (!settings.autoOpen || !fresh.config.agents.some(agent => !agent.coordinator)))
279
+ return { outcome: 'automatic monitor skipped' };
280
+ if (!this.options.monitor)
281
+ fail('monitor adapter unavailable; no pane action attempted');
282
+ const request = { root: this.store.root, sessionId: fresh.id, assertCurrent: assertValid };
283
+ const result = operation === 'open_monitor'
284
+ ? await this.options.monitor.open({ ...request, placement: (automatic ? settings.placement : args.placement) })
285
+ : await this.options.monitor.close(request);
286
+ assertValid();
287
+ const after = await this.state();
288
+ assertValid();
289
+ requireCoordinator(after.config, fresh.id);
290
+ return result;
291
+ }
257
292
  /** Accept old configs, but retire the removed browser dashboard's discovery metadata. */
258
293
  async retireDashboardMetadata() {
259
294
  const record = this.captureObserver(), assertValid = this.validity();
@@ -519,6 +554,21 @@ export class Intercom {
519
554
  return { accepted: true, completion: 'not awaited' };
520
555
  }
521
556
  requireCoordinator(config, id);
557
+ if (operation === 'configure_monitor') {
558
+ const keys = Object.keys(args);
559
+ if (!keys.length || keys.some(key => !['autoOpen', 'placement'].includes(key)))
560
+ fail('configure_monitor requires autoOpen and/or placement only');
561
+ validateMonitorSettings({ ...monitorSettings(config), ...args });
562
+ const updated = await this.store.update(id, current => {
563
+ current.monitor = { ...monitorSettings(current), ...args };
564
+ validateMonitorSettings(current.monitor);
565
+ }, assertValid);
566
+ assertValid();
567
+ return { written: true, monitor: monitorSettings(updated), paneEffects: false };
568
+ }
569
+ if (operation === 'open_monitor' || operation === 'close_monitor') {
570
+ return this.operateMonitor(operation, args);
571
+ }
522
572
  if (operation === 'stop_reminders') {
523
573
  const current = invocation >= this.reminderRevision;
524
574
  if (current) {