@sentropic/h2a-runtime 0.85.25 → 0.86.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 (68) hide show
  1. package/dist/cli-help-groups.d.ts +124 -0
  2. package/dist/cli-help-groups.d.ts.map +1 -0
  3. package/dist/cli-help-groups.js +297 -0
  4. package/dist/cli-help-groups.js.map +1 -0
  5. package/dist/enroll.d.ts.map +1 -1
  6. package/dist/enroll.js +40 -2
  7. package/dist/enroll.js.map +1 -1
  8. package/dist/index.d.ts +4 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +314 -27
  11. package/dist/index.js.map +1 -1
  12. package/dist/llm-gateway-runtime/accounts.d.ts.map +1 -1
  13. package/dist/llm-gateway-runtime/accounts.js +2 -6
  14. package/dist/llm-gateway-runtime/accounts.js.map +1 -1
  15. package/dist/llm-gateway-runtime/index.d.ts.map +1 -1
  16. package/dist/llm-gateway-runtime/index.js +9 -1
  17. package/dist/llm-gateway-runtime/index.js.map +1 -1
  18. package/dist/llm-gateway-runtime/model-catalog.d.ts +10 -3
  19. package/dist/llm-gateway-runtime/model-catalog.d.ts.map +1 -1
  20. package/dist/llm-gateway-runtime/model-catalog.js +49 -119
  21. package/dist/llm-gateway-runtime/model-catalog.js.map +1 -1
  22. package/dist/llm-gateway-runtime/proxy-anthropic.d.ts.map +1 -1
  23. package/dist/llm-gateway-runtime/proxy-anthropic.js +117 -24
  24. package/dist/llm-gateway-runtime/proxy-anthropic.js.map +1 -1
  25. package/dist/llm-gateway-runtime/proxy-gemini.d.ts.map +1 -1
  26. package/dist/llm-gateway-runtime/proxy-gemini.js +0 -2
  27. package/dist/llm-gateway-runtime/proxy-gemini.js.map +1 -1
  28. package/dist/llm-gateway-runtime/proxy-openai.d.ts +4 -7
  29. package/dist/llm-gateway-runtime/proxy-openai.d.ts.map +1 -1
  30. package/dist/llm-gateway-runtime/proxy-openai.js +18 -13
  31. package/dist/llm-gateway-runtime/proxy-openai.js.map +1 -1
  32. package/dist/llm-gateway-runtime/session-ledger.d.ts +34 -0
  33. package/dist/llm-gateway-runtime/session-ledger.d.ts.map +1 -1
  34. package/dist/llm-gateway-runtime/session-ledger.js +216 -6
  35. package/dist/llm-gateway-runtime/session-ledger.js.map +1 -1
  36. package/dist/llm-mesh.d.ts +3 -0
  37. package/dist/llm-mesh.d.ts.map +1 -1
  38. package/dist/llm-mesh.js +23 -0
  39. package/dist/llm-mesh.js.map +1 -1
  40. package/dist/protocol-local.d.ts +3 -0
  41. package/dist/protocol-local.d.ts.map +1 -1
  42. package/dist/protocol-local.js +7 -0
  43. package/dist/protocol-local.js.map +1 -1
  44. package/dist/registry.d.ts +53 -4
  45. package/dist/registry.d.ts.map +1 -1
  46. package/dist/registry.js +109 -6
  47. package/dist/registry.js.map +1 -1
  48. package/dist/restore.d.ts +75 -4
  49. package/dist/restore.d.ts.map +1 -1
  50. package/dist/restore.js +268 -24
  51. package/dist/restore.js.map +1 -1
  52. package/dist/session-class.d.ts +10 -0
  53. package/dist/session-class.d.ts.map +1 -0
  54. package/dist/session-class.js +11 -0
  55. package/dist/session-class.js.map +1 -0
  56. package/dist/status-projection.d.ts +97 -0
  57. package/dist/status-projection.d.ts.map +1 -0
  58. package/dist/status-projection.js +464 -0
  59. package/dist/status-projection.js.map +1 -0
  60. package/dist/tmux-name-migration.d.ts +52 -0
  61. package/dist/tmux-name-migration.d.ts.map +1 -0
  62. package/dist/tmux-name-migration.js +408 -0
  63. package/dist/tmux-name-migration.js.map +1 -0
  64. package/dist/tmux.d.ts +54 -1
  65. package/dist/tmux.d.ts.map +1 -1
  66. package/dist/tmux.js +232 -16
  67. package/dist/tmux.js.map +1 -1
  68. package/package.json +6 -2
@@ -0,0 +1,408 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { mkdirSync, readFileSync, renameSync, writeFileSync, } from "node:fs";
3
+ import { dirname, join } from "node:path";
4
+ import { withRegistryLock, resolveRegistryPath, } from "./registry.js";
5
+ import { LEGACY_LOCAL_PREFIX, LOCAL_PREFIX, listLocalSessionsWithDiagnostics, parseManagedSessionName, } from "./tmux.js";
6
+ export function tmuxNameMigrationJournalPath() {
7
+ return join(dirname(resolveRegistryPath()), "tmux-name-migration-v1.json");
8
+ }
9
+ export function planTmuxNameMigration(sessions) {
10
+ const names = new Set(sessions.map((session) => session.name));
11
+ return sessions
12
+ .flatMap((session) => {
13
+ const managed = parseManagedSessionName(session.name);
14
+ if (!managed || managed.prefix !== LEGACY_LOCAL_PREFIX)
15
+ return [];
16
+ const newName = `${LOCAL_PREFIX}${managed.slug}`;
17
+ return [{
18
+ tmuxSessionId: session.tmuxId,
19
+ tmuxSessionCreatedAt: session.tmuxCreatedAt,
20
+ tmuxServerPid: session.tmuxServerPid,
21
+ tmuxSocketPath: session.tmuxSocketPath,
22
+ oldName: session.name,
23
+ newName,
24
+ collision: names.has(newName),
25
+ }];
26
+ })
27
+ .sort((a, b) => a.oldName.localeCompare(b.oldName));
28
+ }
29
+ function defaultRenameSession(oldName, newName) {
30
+ const result = spawnSync("tmux", ["rename-session", "-t", `=${oldName}`, newName], { stdio: "ignore" });
31
+ return result.status === 0;
32
+ }
33
+ function defaultUpdateRegistry(oldName, newName) {
34
+ const path = resolveRegistryPath();
35
+ return withRegistryLock(path, (entries) => {
36
+ let changed = 0;
37
+ for (const entry of entries) {
38
+ if (entry.tmuxSession !== oldName)
39
+ continue;
40
+ entry.tmuxSession = newName;
41
+ changed += 1;
42
+ }
43
+ return changed === 0
44
+ ? { entries, result: 0, save: false }
45
+ : { entries, result: changed };
46
+ });
47
+ }
48
+ function defaultReadJournal() {
49
+ let text;
50
+ try {
51
+ text = readFileSync(tmuxNameMigrationJournalPath(), "utf8");
52
+ }
53
+ catch (error) {
54
+ if (error.code === "ENOENT")
55
+ return undefined;
56
+ throw new Error("tmux name migration journal could not be read");
57
+ }
58
+ let value;
59
+ try {
60
+ value = JSON.parse(text);
61
+ }
62
+ catch {
63
+ throw new Error("tmux name migration journal is malformed");
64
+ }
65
+ if (value.version !== 1 ||
66
+ typeof value.createdAt !== "string" ||
67
+ typeof value.updatedAt !== "string" ||
68
+ !Array.isArray(value.entries) ||
69
+ !value.entries.every(validJournalEntry)) {
70
+ throw new Error("tmux name migration journal is invalid");
71
+ }
72
+ return value;
73
+ }
74
+ function validJournalEntry(value) {
75
+ if (!value || typeof value !== "object")
76
+ return false;
77
+ const entry = value;
78
+ if (typeof entry.tmuxSessionId !== "string" ||
79
+ !/^\$\d+$/.test(entry.tmuxSessionId) ||
80
+ typeof entry.tmuxSessionCreatedAt !== "string" ||
81
+ !/^\d+$/.test(entry.tmuxSessionCreatedAt) ||
82
+ typeof entry.tmuxServerPid !== "string" ||
83
+ !/^\d+$/.test(entry.tmuxServerPid) ||
84
+ typeof entry.tmuxSocketPath !== "string" ||
85
+ entry.tmuxSocketPath.length === 0 ||
86
+ typeof entry.oldName !== "string" ||
87
+ typeof entry.newName !== "string" ||
88
+ !["planned", "renamed", "applied", "rolled-back"].includes(entry.state ?? "") ||
89
+ !Number.isInteger(entry.registryEntriesUpdated) ||
90
+ (entry.appliedAt !== undefined && typeof entry.appliedAt !== "string") ||
91
+ (entry.rolledBackAt !== undefined && typeof entry.rolledBackAt !== "string")) {
92
+ return false;
93
+ }
94
+ const managed = parseManagedSessionName(entry.oldName);
95
+ return (managed?.prefix === LEGACY_LOCAL_PREFIX &&
96
+ entry.newName === `${LOCAL_PREFIX}${managed.slug}`);
97
+ }
98
+ function sameTmuxIdentity(session, entry) {
99
+ return !!session &&
100
+ session.tmuxId === entry.tmuxSessionId &&
101
+ session.tmuxCreatedAt === entry.tmuxSessionCreatedAt &&
102
+ session.tmuxServerPid === entry.tmuxServerPid &&
103
+ session.tmuxSocketPath === entry.tmuxSocketPath;
104
+ }
105
+ /** Resolve an old client id only when the live tmux identity proves a journalled rename. */
106
+ export function legacyClientSessionIdFromJournal(session, journal) {
107
+ return journal?.entries.find((entry) => (entry.state === "renamed" || entry.state === "applied") &&
108
+ entry.newName === session.name &&
109
+ sameTmuxIdentity(session, entry))?.oldName;
110
+ }
111
+ export function legacyClientSessionIdForMigratedSession(session) {
112
+ let journal;
113
+ try {
114
+ journal = defaultReadJournal();
115
+ }
116
+ catch {
117
+ return undefined;
118
+ }
119
+ return legacyClientSessionIdFromJournal(session, journal);
120
+ }
121
+ function defaultWriteJournal(journal) {
122
+ const path = tmuxNameMigrationJournalPath();
123
+ mkdirSync(dirname(path), { recursive: true });
124
+ const temporary = `${path}.tmp.${process.pid}`;
125
+ writeFileSync(temporary, `${JSON.stringify(journal, null, 2)}\n`, {
126
+ encoding: "utf8",
127
+ mode: 0o600,
128
+ });
129
+ renameSync(temporary, path);
130
+ }
131
+ function dependencies(overrides) {
132
+ return {
133
+ listSessions: () => {
134
+ const inventory = listLocalSessionsWithDiagnostics();
135
+ if (!inventory.known) {
136
+ throw new Error(inventory.reason ?? "tmux inventory is unavailable");
137
+ }
138
+ return inventory.sessions;
139
+ },
140
+ renameSession: defaultRenameSession,
141
+ updateRegistry: defaultUpdateRegistry,
142
+ readJournal: defaultReadJournal,
143
+ writeJournal: defaultWriteJournal,
144
+ now: () => new Date().toISOString(),
145
+ ...overrides,
146
+ };
147
+ }
148
+ export function migrateTmuxNames(mode, overrides = {}) {
149
+ const deps = dependencies(overrides);
150
+ const warnings = [];
151
+ let sessions;
152
+ try {
153
+ sessions = deps.listSessions();
154
+ }
155
+ catch (error) {
156
+ return {
157
+ mode,
158
+ changed: 0,
159
+ entries: [],
160
+ collisions: [],
161
+ warnings: [
162
+ `tmux sessions could not be enumerated: ${error instanceof Error ? error.message : String(error)}`,
163
+ ],
164
+ };
165
+ }
166
+ if (mode === "dry-run") {
167
+ const plan = planTmuxNameMigration(sessions);
168
+ return {
169
+ mode,
170
+ changed: 0,
171
+ entries: plan.map((entry) => ({
172
+ tmuxSessionId: entry.tmuxSessionId,
173
+ tmuxSessionCreatedAt: entry.tmuxSessionCreatedAt,
174
+ tmuxServerPid: entry.tmuxServerPid,
175
+ tmuxSocketPath: entry.tmuxSocketPath,
176
+ oldName: entry.oldName,
177
+ newName: entry.newName,
178
+ state: "planned",
179
+ registryEntriesUpdated: 0,
180
+ })),
181
+ collisions: plan.filter((entry) => entry.collision),
182
+ warnings,
183
+ };
184
+ }
185
+ if (mode === "apply") {
186
+ const plan = planTmuxNameMigration(sessions);
187
+ let previous;
188
+ try {
189
+ previous = deps.readJournal();
190
+ }
191
+ catch (error) {
192
+ return {
193
+ mode,
194
+ changed: 0,
195
+ entries: [],
196
+ collisions: [],
197
+ warnings: [
198
+ error instanceof Error
199
+ ? error.message
200
+ : "tmux name migration journal could not be read",
201
+ ],
202
+ };
203
+ }
204
+ const sessionsByName = new Map(sessions.map((session) => [session.name, session]));
205
+ const priorEntries = previous?.entries.map((entry) => ({ ...entry })) ?? [];
206
+ const byOldName = new Map(priorEntries.map((entry) => [entry.oldName, entry]));
207
+ let journalChanged = false;
208
+ for (const item of plan) {
209
+ const existing = byOldName.get(item.oldName);
210
+ if (!existing) {
211
+ const entry = {
212
+ tmuxSessionId: item.tmuxSessionId,
213
+ tmuxSessionCreatedAt: item.tmuxSessionCreatedAt,
214
+ tmuxServerPid: item.tmuxServerPid,
215
+ tmuxSocketPath: item.tmuxSocketPath,
216
+ oldName: item.oldName,
217
+ newName: item.newName,
218
+ state: "planned",
219
+ registryEntriesUpdated: 0,
220
+ };
221
+ priorEntries.push(entry);
222
+ byOldName.set(entry.oldName, entry);
223
+ journalChanged = true;
224
+ }
225
+ else if (!sessionsByName.has(existing.newName)) {
226
+ existing.tmuxSessionId = item.tmuxSessionId;
227
+ existing.tmuxSessionCreatedAt = item.tmuxSessionCreatedAt;
228
+ existing.tmuxServerPid = item.tmuxServerPid;
229
+ existing.tmuxSocketPath = item.tmuxSocketPath;
230
+ existing.state = "planned";
231
+ existing.registryEntriesUpdated = 0;
232
+ delete existing.appliedAt;
233
+ delete existing.rolledBackAt;
234
+ journalChanged = true;
235
+ }
236
+ }
237
+ const collisionByOldName = new Map();
238
+ for (const item of plan.filter((entry) => entry.collision)) {
239
+ collisionByOldName.set(item.oldName, item);
240
+ }
241
+ for (const entry of priorEntries) {
242
+ if (entry.state !== "rolled-back" &&
243
+ sessionsByName.has(entry.oldName) &&
244
+ sessionsByName.has(entry.newName)) {
245
+ collisionByOldName.set(entry.oldName, {
246
+ tmuxSessionId: entry.tmuxSessionId,
247
+ tmuxSessionCreatedAt: entry.tmuxSessionCreatedAt,
248
+ tmuxServerPid: entry.tmuxServerPid,
249
+ tmuxSocketPath: entry.tmuxSocketPath,
250
+ oldName: entry.oldName,
251
+ newName: entry.newName,
252
+ collision: true,
253
+ });
254
+ }
255
+ }
256
+ const collisions = [...collisionByOldName.values()];
257
+ if (collisions.length > 0) {
258
+ return { mode, changed: 0, entries: priorEntries, collisions, warnings };
259
+ }
260
+ const now = deps.now();
261
+ const journal = {
262
+ version: 1,
263
+ createdAt: previous?.createdAt ?? now,
264
+ updatedAt: now,
265
+ entries: priorEntries,
266
+ };
267
+ if (journal.entries.length > 0 && (journalChanged || !previous)) {
268
+ deps.writeJournal(journal);
269
+ }
270
+ let changed = 0;
271
+ for (const entry of journal.entries) {
272
+ if (entry.state === "rolled-back")
273
+ continue;
274
+ const oldSession = sessionsByName.get(entry.oldName);
275
+ const newSession = sessionsByName.get(entry.newName);
276
+ const oldExists = oldSession !== undefined;
277
+ const newExists = newSession !== undefined;
278
+ if ((oldExists && !sameTmuxIdentity(oldSession, entry)) ||
279
+ (newExists && !sameTmuxIdentity(newSession, entry))) {
280
+ warnings.push(`tmux identity changed for ${entry.oldName}; refusing journal replay`);
281
+ continue;
282
+ }
283
+ if (entry.state === "applied" && newExists && !oldExists)
284
+ continue;
285
+ if (!oldExists && !newExists) {
286
+ warnings.push(`migration source and target are both missing: ${entry.oldName} -> ${entry.newName}`);
287
+ continue;
288
+ }
289
+ if (oldExists && !newExists) {
290
+ if (!deps.renameSession(entry.oldName, entry.newName)) {
291
+ warnings.push(`tmux refused ${entry.oldName} -> ${entry.newName}`);
292
+ continue;
293
+ }
294
+ sessionsByName.delete(entry.oldName);
295
+ sessionsByName.set(entry.newName, {
296
+ ...oldSession,
297
+ name: entry.newName,
298
+ slug: parseManagedSessionName(entry.newName).slug,
299
+ });
300
+ changed += 1;
301
+ entry.state = "renamed";
302
+ journal.updatedAt = deps.now();
303
+ deps.writeJournal(journal);
304
+ }
305
+ else if (!oldExists && newExists && entry.state === "planned") {
306
+ // The process may have stopped after tmux renamed but before journalling.
307
+ entry.state = "renamed";
308
+ journal.updatedAt = deps.now();
309
+ deps.writeJournal(journal);
310
+ }
311
+ if (entry.state !== "renamed")
312
+ continue;
313
+ try {
314
+ entry.registryEntriesUpdated = deps.updateRegistry(entry.oldName, entry.newName);
315
+ }
316
+ catch {
317
+ warnings.push(`registry update failed after renaming ${entry.oldName}; rerun --apply to recover`);
318
+ continue;
319
+ }
320
+ entry.state = "applied";
321
+ entry.appliedAt = deps.now();
322
+ journal.updatedAt = entry.appliedAt;
323
+ deps.writeJournal(journal);
324
+ }
325
+ return { mode, changed, entries: journal.entries, collisions, warnings };
326
+ }
327
+ let journal;
328
+ try {
329
+ journal = deps.readJournal();
330
+ }
331
+ catch (error) {
332
+ return {
333
+ mode,
334
+ changed: 0,
335
+ entries: [],
336
+ collisions: [],
337
+ warnings: [
338
+ error instanceof Error
339
+ ? error.message
340
+ : "tmux name migration journal could not be read",
341
+ ],
342
+ };
343
+ }
344
+ if (!journal) {
345
+ return {
346
+ mode,
347
+ changed: 0,
348
+ entries: [],
349
+ collisions: [],
350
+ warnings: ["no tmux name migration journal exists"],
351
+ };
352
+ }
353
+ const sessionsByName = new Map(sessions.map((session) => [session.name, session]));
354
+ let changed = 0;
355
+ for (const entry of [...journal.entries].reverse()) {
356
+ if (entry.state === "rolled-back")
357
+ continue;
358
+ const oldSession = sessionsByName.get(entry.oldName);
359
+ const newSession = sessionsByName.get(entry.newName);
360
+ const oldExists = oldSession !== undefined;
361
+ const newExists = newSession !== undefined;
362
+ if ((oldExists && !sameTmuxIdentity(oldSession, entry)) ||
363
+ (newExists && !sameTmuxIdentity(newSession, entry))) {
364
+ warnings.push(`tmux identity changed for ${entry.oldName}; refusing rollback`);
365
+ continue;
366
+ }
367
+ if (oldExists && newExists) {
368
+ warnings.push(`rollback collision: ${entry.oldName} already exists`);
369
+ continue;
370
+ }
371
+ if (!oldExists && !newExists) {
372
+ warnings.push(`rollback source missing: ${entry.newName}`);
373
+ continue;
374
+ }
375
+ if (!oldExists && newExists) {
376
+ if (!deps.renameSession(entry.newName, entry.oldName)) {
377
+ warnings.push(`tmux refused ${entry.newName} -> ${entry.oldName}`);
378
+ continue;
379
+ }
380
+ sessionsByName.delete(entry.newName);
381
+ sessionsByName.set(entry.oldName, {
382
+ ...newSession,
383
+ name: entry.oldName,
384
+ slug: parseManagedSessionName(entry.oldName).slug,
385
+ });
386
+ changed += 1;
387
+ }
388
+ try {
389
+ entry.registryEntriesUpdated = deps.updateRegistry(entry.newName, entry.oldName);
390
+ }
391
+ catch {
392
+ warnings.push(`registry rollback failed for ${entry.oldName}; rerun --rollback to recover`);
393
+ continue;
394
+ }
395
+ entry.state = "rolled-back";
396
+ entry.rolledBackAt = deps.now();
397
+ journal.updatedAt = entry.rolledBackAt;
398
+ deps.writeJournal(journal);
399
+ }
400
+ return {
401
+ mode,
402
+ changed,
403
+ entries: journal.entries,
404
+ collisions: [],
405
+ warnings,
406
+ };
407
+ }
408
+ //# sourceMappingURL=tmux-name-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tmux-name-migration.js","sourceRoot":"","sources":["../src/tmux-name-migration.ts"],"names":[],"mappings":"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"}
package/dist/tmux.d.ts CHANGED
@@ -11,6 +11,7 @@
11
11
  * middle — this is what fixes "I can't copy the code claude printed".
12
12
  */
13
13
  import { type LaunchContext } from "./launch-context.js";
14
+ import { type SessionClass } from "./session-class.js";
14
15
  import type { TunnelConfig } from "./config.js";
15
16
  /** Canonical tmux session-name prefix for h2a-managed local sessions. */
16
17
  export declare const LOCAL_PREFIX = "h2a-";
@@ -80,7 +81,14 @@ export declare const STRUCTURED_WINDOW_WRAPPER = "agent_pane=\"$1\"; cmd=\"$2\"\
80
81
  * so the agent is reachable/wakeable through ~/h2a-workspace/.h2a.
81
82
  */
82
83
  export declare const H2A_WINDOW_NAME = "h2a";
84
+ export declare const H2A_STATUS_WINDOW_NAME = "h2a-status";
83
85
  export type LocalSession = {
86
+ /** Stable tmux identity for this live session (for example `$3`). */
87
+ tmuxId: string;
88
+ /** Session creation epoch from tmux; paired with server identity for replay safety. */
89
+ tmuxCreatedAt: string;
90
+ tmuxServerPid: string;
91
+ tmuxSocketPath: string;
84
92
  /** full tmux session name, e.g. `h2a-surch` */
85
93
  name: string;
86
94
  /** short name shown to the user, e.g. `surch` */
@@ -115,7 +123,15 @@ export declare function parseManagedSessionName(name: string): ManagedSessionNam
115
123
  export declare function managedSessionCandidates(slug: string): string[];
116
124
  /** Canonical tmux session name for a workdir slug. */
117
125
  export declare function localSessionName(slug: string): string;
126
+ /** Build the environment explicitly stamped into a newly-created tmux session. */
127
+ export declare function tmuxEnvironmentArgs(sessionClass?: SessionClass): string[];
118
128
  /** List h2a-managed local tmux sessions (best-effort; [] if no server). */
129
+ export declare function listLocalSessionsWithDiagnostics(): {
130
+ readonly sessions: LocalSession[];
131
+ readonly known: boolean;
132
+ readonly reason?: string;
133
+ };
134
+ /** Compatibility reader used by existing callers that accept best-effort []. */
119
135
  export declare function listLocalSessions(): LocalSession[];
120
136
  /**
121
137
  * Resolve a local session by exact managed tmux name or by a unique slug.
@@ -150,6 +166,8 @@ export type StartLocalResult = {
150
166
  promptFile?: string;
151
167
  };
152
168
  export type ManagedLaunchMetadata = {
169
+ /** Durable class inherited by the agent's SessionStart/SessionEnd hooks. */
170
+ sessionClass?: SessionClass;
153
171
  /** Conversation id only; never pass arbitrary CLI argv as resume metadata. */
154
172
  resumeId?: string;
155
173
  /** Sidecar command selected for this launch, if any. */
@@ -217,6 +235,12 @@ export declare function ensureScrollConfig(profile?: string): void;
217
235
  export declare function startLocalSession(profile: string, command: string, cwd: string, args?: ReadonlyArray<string>, label?: string, tmuxProfile?: string, metadata?: ManagedLaunchMetadata): StartLocalResult;
218
236
  /** PID for one exact tmux pane. Session/window targets are deliberately refused. */
219
237
  export declare function localSessionPanePid(agentPane: string): number | undefined;
238
+ /**
239
+ * Read the recorded agent pane's pid without discovering or mutating tmux
240
+ * metadata. Status callers use this to prove an attested worker is still the
241
+ * same process, not merely a recycled session name.
242
+ */
243
+ export declare function localSessionAgentPanePid(session: string): number | undefined;
220
244
  /**
221
245
  * Start a HEADLESS delegated job in a detached local tmux session under the
222
246
  * run-once-exit wrapper: the CLI runs, its output is captured to `outputLog`,
@@ -225,7 +249,7 @@ export declare function localSessionPanePid(agentPane: string): number | undefin
225
249
  * startLocalSession unless `refuseExisting` is set for structured launches.
226
250
  * Returns the session name + slug.
227
251
  */
228
- export declare function startHeadlessSession(profile: string, command: string, cwd: string, args: ReadonlyArray<string>, resultJson: string, outputLog: string, label: string, tmuxProfile?: string, promptInput?: string, refuseExisting?: boolean): StartLocalResult;
252
+ export declare function startHeadlessSession(profile: string, command: string, cwd: string, args: ReadonlyArray<string>, resultJson: string, outputLog: string, label: string, tmuxProfile?: string, promptInput?: string, refuseExisting?: boolean, sessionClass?: SessionClass): StartLocalResult;
229
253
  /** Best-effort cleanup for a headless prompt that the wrapper did not consume. */
230
254
  export declare function cleanupHeadlessPromptFile(promptFile?: string): void;
231
255
  /**
@@ -258,6 +282,28 @@ export declare function sessionWindowNames(session: string): string[];
258
282
  export declare function addSessionWindow(session: string, windowName: string, cwd: string, commandLine: string, agentPane?: string): boolean;
259
283
  /** Is `cmd` resolvable in PATH (login shell, same as the tmux windows use)? */
260
284
  export declare function commandAvailable(cmd: string): boolean;
285
+ export declare function h2aStatusSurfaceOptions(_previousRight?: string): ReadonlyArray<readonly [string, string]>;
286
+ export interface H2aStatusOptionAccess {
287
+ readonly read: (session: string, option: string) => string | undefined;
288
+ readonly set: (session: string, option: string, value: string) => boolean;
289
+ readonly unset: (session: string, option: string) => boolean;
290
+ }
291
+ /** Restore a prior bar using captured effective values, with retryable recovery state. */
292
+ export declare function uninstallH2aStatusSurfaceWithAccess(session: string, access: H2aStatusOptionAccess): boolean;
293
+ /**
294
+ * Install transaction used by the tmux wrapper and executable failure-injection
295
+ * tests. No live option changes until all six prior values are captured.
296
+ */
297
+ export declare function installH2aStatusSurfaceWithAccess(session: string, access: H2aStatusOptionAccess): boolean;
298
+ /** Install the composable 5-second status projection on one exact session. */
299
+ export declare function installH2aStatusSurface(session: string): boolean;
300
+ /** Restore every user option captured on first install. */
301
+ export declare function uninstallH2aStatusSurface(session: string): boolean;
302
+ export declare function h2aStatusWindowCommand(session: string, ownerInstance: string | undefined): string;
303
+ /** Open or reuse the detailed in-process watcher in a distinct tmux window. */
304
+ export declare function openH2aStatusWindow(session: string, cwd: string): boolean;
305
+ /** Exact current tmux session, only when this process is itself inside tmux. */
306
+ export declare function currentTmuxSessionName(): string | undefined;
261
307
  /**
262
308
  * Resolve the durable agent pane for a given h2a instance.
263
309
  * Parses host:label[:uuid] → finds the matching managed tmux session
@@ -268,6 +314,13 @@ export declare function commandAvailable(cmd: string): boolean;
268
314
  export declare function resolveAgentPaneForInstance(instance: string): string | undefined;
269
315
  /** Agent pane used as h2a local-tmux wake target, persisted on the tmux session. */
270
316
  export declare function resolveAgentPane(session: string): string | undefined;
317
+ /**
318
+ * Record the diagnostic launch context (gateway on/off, model-map source, resume id, …) as
319
+ * `@remote_launch_*` tmux options so `h2a` can show WHICH options produced the session without
320
+ * the user reading raw tmux state. Applied on every create AND reuse so a reused session refreshes
321
+ * a stale context. Best-effort + secret-free (see launch-context.ts). Spec 2026-07-11.
322
+ */
323
+ export declare function persistLaunchContext(session: string, ctx: LaunchContext): void;
271
324
  /** Read the launch context recorded on a managed session, or undefined if none. */
272
325
  export declare function readLaunchContext(session: string): LaunchContext | undefined;
273
326
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tmux.d.ts","sourceRoot":"","sources":["../src/tmux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tmux.d.ts","sourceRoot":"","sources":["../src/tmux.ts"],"names":[],"mappings":"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"}