@phnx-labs/agents-cli 1.22.40 → 1.22.42

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 (201) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +14 -3
  3. package/dist/bin/agents +0 -0
  4. package/dist/bootstrap.js +0 -1
  5. package/dist/cli/command-registry.d.ts +2 -0
  6. package/dist/cli/command-registry.js +5 -2
  7. package/dist/commands/accounts.d.ts +29 -0
  8. package/dist/commands/accounts.js +220 -29
  9. package/dist/commands/alias.js +1 -1
  10. package/dist/commands/auth.d.ts +9 -0
  11. package/dist/commands/auth.js +104 -0
  12. package/dist/commands/browser-sessions-picker.js +42 -62
  13. package/dist/commands/browser.d.ts +15 -0
  14. package/dist/commands/browser.js +145 -78
  15. package/dist/commands/computer-actions.d.ts +1 -1
  16. package/dist/commands/computer-actions.js +1 -1
  17. package/dist/commands/computer-sessions-picker.js +32 -55
  18. package/dist/commands/computer.d.ts +1 -1
  19. package/dist/commands/computer.js +2 -2
  20. package/dist/commands/doctor.d.ts +1 -1
  21. package/dist/commands/doctor.js +3 -3
  22. package/dist/commands/feed.js +4 -12
  23. package/dist/commands/hooks.js +1 -1
  24. package/dist/commands/import.js +1 -1
  25. package/dist/commands/insights.js +163 -85
  26. package/dist/commands/inspect.js +2 -2
  27. package/dist/commands/mine.js +1 -1
  28. package/dist/commands/org.d.ts +6 -0
  29. package/dist/commands/org.js +174 -0
  30. package/dist/commands/packages.js +1 -1
  31. package/dist/commands/prune.js +1 -1
  32. package/dist/commands/routines.js +1 -1
  33. package/dist/commands/run-account-picker.d.ts +19 -0
  34. package/dist/commands/run-account-picker.js +81 -0
  35. package/dist/commands/secrets.js +87 -97
  36. package/dist/commands/sessions-picker-factory.d.ts +40 -0
  37. package/dist/commands/sessions-picker-factory.js +67 -0
  38. package/dist/commands/sessions-picker.d.ts +1 -0
  39. package/dist/commands/sessions-picker.js +27 -5
  40. package/dist/commands/sessions-share.d.ts +25 -0
  41. package/dist/commands/sessions-share.js +166 -0
  42. package/dist/commands/sessions.js +2 -0
  43. package/dist/commands/setup-browser.js +5 -5
  44. package/dist/commands/setup-mine.js +1 -1
  45. package/dist/commands/setup-preferences.js +4 -4
  46. package/dist/commands/setup.js +5 -3
  47. package/dist/commands/sync.js +1 -1
  48. package/dist/commands/versions.js +1 -1
  49. package/dist/commands/view.js +1 -1
  50. package/dist/commands/webhook.js +14 -9
  51. package/dist/lib/account-capabilities.d.ts +10 -0
  52. package/dist/lib/account-capabilities.js +34 -0
  53. package/dist/lib/agent-spec/agents.d.ts +584 -0
  54. package/dist/lib/agent-spec/agents.js +3127 -0
  55. package/dist/lib/agent-spec/provider.js +1 -1
  56. package/dist/lib/agents.d.ts +2 -584
  57. package/dist/lib/agents.js +2 -3127
  58. package/dist/lib/browser/cdp.js +4 -0
  59. package/dist/lib/browser/chrome.js +12 -1
  60. package/dist/lib/browser/drivers/local.d.ts +8 -2
  61. package/dist/lib/browser/drivers/local.js +8 -2
  62. package/dist/lib/browser/drivers/ssh.d.ts +8 -2
  63. package/dist/lib/browser/drivers/ssh.js +11 -4
  64. package/dist/lib/browser/hygiene.d.ts +1 -1
  65. package/dist/lib/browser/hygiene.js +5 -1
  66. package/dist/lib/browser/profiles.d.ts +77 -4
  67. package/dist/lib/browser/profiles.js +121 -12
  68. package/dist/lib/browser/runtime-state.d.ts +11 -5
  69. package/dist/lib/browser/runtime-state.js +13 -9
  70. package/dist/lib/browser/service.d.ts +91 -30
  71. package/dist/lib/browser/service.js +342 -207
  72. package/dist/lib/browser/types.d.ts +96 -4
  73. package/dist/lib/browser/types.js +51 -0
  74. package/dist/lib/catchup.js +1 -1
  75. package/dist/lib/computer/actions.d.ts +1 -1
  76. package/dist/lib/computer/actions.js +1 -1
  77. package/dist/lib/{computer-rpc.js → computer/computer-rpc.js} +5 -5
  78. package/dist/lib/computer/dispatch.d.ts +1 -1
  79. package/dist/lib/computer/download.d.ts +1 -1
  80. package/dist/lib/computer/download.js +3 -3
  81. package/dist/lib/{ssh-tunnel.d.ts → computer/ssh-tunnel.d.ts} +1 -1
  82. package/dist/lib/{ssh-tunnel.js → computer/ssh-tunnel.js} +12 -12
  83. package/dist/lib/daemon/daemon.js +1 -1
  84. package/dist/lib/{runner.d.ts → daemon/runner.d.ts} +10 -10
  85. package/dist/lib/{runner.js → daemon/runner.js} +59 -118
  86. package/dist/lib/daemon-webhooks.d.ts +3 -1
  87. package/dist/lib/daemon-webhooks.js +12 -7
  88. package/dist/lib/device-config.js +1 -1
  89. package/dist/lib/devices/doctor-findings.d.ts +1 -1
  90. package/dist/lib/devices/doctor-findings.js +3 -3
  91. package/dist/lib/devices/fleet-inventory.js +1 -1
  92. package/dist/lib/devices/harness-inventory.js +1 -1
  93. package/dist/lib/devices/registry.js +4 -22
  94. package/dist/lib/doctor-diff.d.ts +1 -1
  95. package/dist/lib/doctor-diff.js +1 -1
  96. package/dist/lib/drift.js +1 -1
  97. package/dist/lib/entitlement.d.ts +31 -0
  98. package/dist/lib/entitlement.js +137 -0
  99. package/dist/lib/exec.js +39 -202
  100. package/dist/lib/feed/feed.js +2 -8
  101. package/dist/lib/fs-atomic.d.ts +7 -0
  102. package/dist/lib/fs-atomic.js +9 -0
  103. package/dist/lib/harness/adapter.d.ts +160 -0
  104. package/dist/lib/harness/adapter.js +47 -0
  105. package/dist/lib/harness/adapters/claude.d.ts +2 -0
  106. package/dist/lib/harness/adapters/claude.js +110 -0
  107. package/dist/lib/harness/adapters/codex.d.ts +2 -0
  108. package/dist/lib/harness/adapters/codex.js +83 -0
  109. package/dist/lib/harness/adapters/copilot.d.ts +2 -0
  110. package/dist/lib/harness/adapters/copilot.js +23 -0
  111. package/dist/lib/harness/adapters/cursor.d.ts +2 -0
  112. package/dist/lib/harness/adapters/cursor.js +38 -0
  113. package/dist/lib/harness/adapters/droid.d.ts +2 -0
  114. package/dist/lib/harness/adapters/droid.js +17 -0
  115. package/dist/lib/harness/adapters/grok.d.ts +2 -0
  116. package/dist/lib/harness/adapters/grok.js +14 -0
  117. package/dist/lib/harness/adapters/kimi.d.ts +2 -0
  118. package/dist/lib/harness/adapters/kimi.js +49 -0
  119. package/dist/lib/harness/adapters/muse.d.ts +2 -0
  120. package/dist/lib/harness/adapters/muse.js +44 -0
  121. package/dist/lib/harness/adapters/opencode.d.ts +2 -0
  122. package/dist/lib/harness/adapters/opencode.js +14 -0
  123. package/dist/lib/harness/exec-config-version.d.ts +8 -0
  124. package/dist/lib/harness/exec-config-version.js +22 -0
  125. package/dist/lib/harness/index.d.ts +1 -0
  126. package/dist/lib/harness/index.js +34 -0
  127. package/dist/lib/{hooks.d.ts → hooks/install.d.ts} +1 -1
  128. package/dist/lib/{hooks.js → hooks/install.js} +11 -11
  129. package/dist/lib/import.js +1 -1
  130. package/dist/lib/installations/index.d.ts +4 -4
  131. package/dist/lib/installations/index.js +3 -4
  132. package/dist/lib/installations/migrate.js +6 -6
  133. package/dist/lib/{shims.d.ts → installations/shims.d.ts} +2 -2
  134. package/dist/lib/{shims.js → installations/shims.js} +12 -114
  135. package/dist/lib/installations/store.d.ts +141 -3
  136. package/dist/lib/installations/store.js +475 -5
  137. package/dist/lib/installations/versions.d.ts +1 -126
  138. package/dist/lib/installations/versions.js +5 -465
  139. package/dist/lib/isolation-boundary-report.d.ts +1 -1
  140. package/dist/lib/isolation-boundary-report.js +1 -1
  141. package/dist/lib/mailbox-gc.js +2 -3
  142. package/dist/lib/menubar/MenubarHelper.app/Contents/CodeResources +0 -0
  143. package/dist/lib/menubar/MenubarHelper.app/Contents/MacOS/MenubarHelper +0 -0
  144. package/dist/lib/monitors/dispatch.d.ts +1 -1
  145. package/dist/lib/monitors/dispatch.js +2 -2
  146. package/dist/lib/monitors/state.d.ts +1 -1
  147. package/dist/lib/observe-aliases.d.ts +2 -2
  148. package/dist/lib/observe-aliases.js +2 -11
  149. package/dist/lib/plugins/plugins.js +1 -1
  150. package/dist/lib/plugins/skills.js +1 -1
  151. package/dist/lib/prix-account.d.ts +158 -0
  152. package/dist/lib/prix-account.js +214 -0
  153. package/dist/lib/project-key.js +7 -0
  154. package/dist/lib/project-launch.js +1 -1
  155. package/dist/lib/refresh.js +2 -2
  156. package/dist/lib/resource-inventory.d.ts +1 -1
  157. package/dist/lib/resource-inventory.js +1 -1
  158. package/dist/lib/rules/rules.js +1 -1
  159. package/dist/lib/scheduling/routines.js +1 -1
  160. package/dist/lib/secrets/Agents CLI.app/Contents/CodeResources +0 -0
  161. package/dist/lib/secrets/Agents CLI.app/Contents/MacOS/Agents CLI +0 -0
  162. package/dist/lib/secrets/bundles.d.ts +1 -1
  163. package/dist/lib/secrets/bundles.js +1 -1
  164. package/dist/lib/secrets/headless.d.ts +16 -0
  165. package/dist/lib/secrets/headless.js +21 -0
  166. package/dist/lib/secrets/remote.d.ts +9 -7
  167. package/dist/lib/secrets/remote.js +18 -9
  168. package/dist/lib/self-heal/checks/hook-runtime.js +1 -1
  169. package/dist/lib/self-heal/checks/path.js +1 -1
  170. package/dist/lib/self-heal/checks/shadowing.js +1 -1
  171. package/dist/lib/self-heal/checks/shims.js +1 -1
  172. package/dist/lib/session/discover.d.ts +39 -0
  173. package/dist/lib/session/discover.js +3 -3
  174. package/dist/lib/session/parse.js +24 -42
  175. package/dist/lib/session/recovery.js +1 -1
  176. package/dist/lib/session/share-html.d.ts +55 -0
  177. package/dist/lib/session/share-html.js +319 -0
  178. package/dist/lib/settings-manifest.d.ts +2 -0
  179. package/dist/lib/settings-manifest.js +81 -3
  180. package/dist/lib/share/publish.d.ts +38 -0
  181. package/dist/lib/share/publish.js +81 -8
  182. package/dist/lib/staleness/prune.d.ts +1 -1
  183. package/dist/lib/staleness/prune.js +1 -1
  184. package/dist/lib/staleness/writers/hooks.js +1 -1
  185. package/dist/lib/startup/command-registry.d.ts +2 -1
  186. package/dist/lib/startup/command-registry.js +5 -3
  187. package/dist/lib/teams/agents.js +2 -19
  188. package/dist/lib/teams/parsers.js +20 -26
  189. package/dist/lib/teams/registry.js +2 -21
  190. package/dist/lib/triggers/handlers.d.ts +37 -2
  191. package/dist/lib/triggers/handlers.js +57 -6
  192. package/dist/lib/triggers/webhook.d.ts +80 -6
  193. package/dist/lib/triggers/webhook.js +128 -4
  194. package/dist/lib/types.d.ts +1 -1
  195. package/dist/lib/uninstall.js +1 -1
  196. package/dist/lib/version.d.ts +9 -2
  197. package/dist/lib/version.js +11 -9
  198. package/dist/lib/wrap.d.ts +33 -0
  199. package/dist/lib/wrap.js +70 -0
  200. package/package.json +1 -1
  201. /package/dist/lib/{computer-rpc.d.ts → computer/computer-rpc.d.ts} +0 -0
@@ -1,6 +1,6 @@
1
1
  import { CDPClient } from './cdp.js';
2
2
  import { type ResolvedDomainSkill } from './domain-skills.js';
3
- import { type Task, type TabInfo, type ProfileStatus, type HistoricalTask, type ReapResult } from './types.js';
3
+ import { type Task, type TabInfo, type ProfileStatus, type BrowserType, type HistoricalTask, type ReapResult, type ProfileName, type ConnectionKey } from './types.js';
4
4
  import { type ReapOptions } from './hygiene.js';
5
5
  import { type RefOpts, type RefNode } from './refs.js';
6
6
  import type { TargetFilter } from './types.js';
@@ -50,22 +50,25 @@ interface ProfileConnection {
50
50
  port: number;
51
51
  pid: number;
52
52
  electron?: boolean;
53
- /** Raw `url:<v>` / `title:<v>` filter copied from the profile config. */
54
- targetFilter?: string;
55
53
  /**
56
- * The composite key this connection is registered under in `this.connections`
57
- * (`<profile>` / `<profile>@<endpoint>` / `<profile>.<fork>`). It is the same
58
- * name used to key the profile's runtime dir, so downloads and session
59
- * captures land under `.cache/browser/<profileName>/`. Set at registration.
54
+ * The profile's declared browser family. Load-bearing for Arc: Arc answers
55
+ * `Browser.getVersion` but exposes zero CDP page targets and CRASHES on
56
+ * `Target.createTarget` (verified live, PR #2778), so any tab-creating path
57
+ * must refuse rather than crash the user's Arc. See `createPageTarget`.
60
58
  */
61
- profileName?: string;
59
+ browserType?: BrowserType;
60
+ /** Raw `url:<v>` / `title:<v>` filter copied from the profile config. */
61
+ targetFilter?: string;
62
62
  /**
63
- * Bare YAML profile name without the `@<endpoint>` suffix. Kept so
64
- * `status --profile comet-local` matches the composite connection key
65
- * `comet-local@endpoint-0` without prefix-matching wrong browsers.
63
+ * The runtime key this connection is registered under in `this.connections`
64
+ * (`<profile>@<endpoint>`, plus `.<fork>` for an Electron fork; a bare name
65
+ * for a legacy pre-composite dir). Also keys the profile's runtime dir, so
66
+ * downloads and session captures land under `.cache/browser/<key>/`.
66
67
  */
67
- bareName?: string;
68
- forkedFrom?: string;
68
+ key?: ConnectionKey;
69
+ /** The bare, user-facing profile name this connection belongs to. */
70
+ profile?: ProfileName;
71
+ forkedFrom?: ConnectionKey;
69
72
  tasks: Map<string, Task>;
70
73
  windowId?: string;
71
74
  targetCache?: {
@@ -83,18 +86,20 @@ interface ProfileConnection {
83
86
  }
84
87
  /** Join error lines so callers get a next command, not a dead-end message. */
85
88
  export declare function actionable(...lines: string[]): string;
89
+ /**
90
+ * Arc answers `Browser.getVersion` (so a connection succeeds) but exposes zero
91
+ * CDP page targets via every discovery method and CRASHES when a new tab is
92
+ * requested via `Target.createTarget` (verified live, PR #2778). It is therefore
93
+ * not drivable. This is the single clear, actionable error every tab-creating
94
+ * path throws instead of crashing the user's Arc window.
95
+ */
96
+ export declare function arcNotDrivableError(profileName?: string): Error;
86
97
  /** Derive a human label from an explicit title or a navigated URL. */
87
98
  export declare function deriveTaskLabel(opts: {
88
99
  title?: string;
89
100
  url?: string;
90
101
  existing?: string;
91
102
  }): string;
92
- /**
93
- * True when `key` is the bare profile name or one of its composite endpoint
94
- * keys (`name@endpoint`). Used by status/stop so `comet-local` matches
95
- * `comet-local@endpoint-0`.
96
- */
97
- export declare function connectionKeyMatchesProfile(key: string, profileName: string): boolean;
98
103
  type TargetInfo = {
99
104
  targetId: string;
100
105
  url?: string;
@@ -127,6 +132,12 @@ export declare function resolveTaskIdentity(forwarded: {
127
132
  };
128
133
  export declare class BrowserService {
129
134
  private static readonly SOURCE_PREFIX;
135
+ /**
136
+ * Live browsers, keyed by {@link ConnectionKey} — NOT by profile name. The
137
+ * branded key type is what makes `connections.get(someProfileName)` (the
138
+ * RUSH-2709 miss that made `status --profile <name>` return empty for a
139
+ * running `<name>@endpoint-0`) fail to compile.
140
+ */
130
141
  private connections;
131
142
  private forkingProfiles;
132
143
  private consoleLogs;
@@ -157,7 +168,10 @@ export declare class BrowserService {
157
168
  name: string;
158
169
  tabId?: string;
159
170
  windowId?: string;
160
- profile: string;
171
+ /** BARE profile name — what the caller asked for, never the runtime key. */
172
+ profile: ProfileName;
173
+ /** Runtime key the task actually landed on (`<profile>@<endpoint>`). */
174
+ key: ConnectionKey;
161
175
  skill?: ResolvedDomainSkill;
162
176
  }>;
163
177
  /**
@@ -192,6 +206,25 @@ export declare class BrowserService {
192
206
  * page that has since redirected elsewhere simply does not match, and the
193
207
  * caller opens a tab as before.
194
208
  */
209
+ /** Is this CDP target already registered to any task on the connection? */
210
+ private targetIsClaimed;
211
+ /**
212
+ * The CDP targets a task may CLOSE — its own tabs minus any it merely
213
+ * borrowed. A borrowed tab existed before the task did (see `Task.borrowedTabs`),
214
+ * so closing it would remove something the task never opened.
215
+ */
216
+ private closeableTargetIds;
217
+ /**
218
+ * A page target that `navigate` may take over on a browser which cannot create
219
+ * tabs (Arc). Deliberately narrow: only a tab ALREADY showing the requested URL
220
+ * -- re-showing that document there is what the caller asked for -- or an empty
221
+ * new-tab page. A target any task already owns is left alone. Note the honest
222
+ * limit: reusing a matching tab still RELOADS it, discarding scroll position and
223
+ * unsaved form state. Arc cannot open a tab at all, so some intrusion is
224
+ * unavoidable to show the document; a reload is the smallest one, and the tab is
225
+ * borrowed rather than owned so it is never closed.
226
+ */
227
+ private pickReusableTargetWithoutCreate;
195
228
  private adoptTabShowing;
196
229
  /**
197
230
  * Every live task across every connected profile — the reaper's input
@@ -199,7 +232,7 @@ export declare class BrowserService {
199
232
  * daemon's live state, so callers only read it and act through `stop`.
200
233
  */
201
234
  listTasks(): Array<{
202
- profile: string;
235
+ profile: ConnectionKey;
203
236
  task: Task;
204
237
  }>;
205
238
  /**
@@ -216,13 +249,13 @@ export declare class BrowserService {
216
249
  ok: boolean;
217
250
  profile?: string;
218
251
  }>;
219
- stopProfile(profileName: string): Promise<void>;
220
- navigate(taskId: string, url: string, profileName?: string): Promise<{
252
+ stopProfile(profileRef: ProfileName | ConnectionKey): Promise<void>;
253
+ navigate(taskId: string, url: string, profileRef?: ProfileName | ConnectionKey): Promise<{
221
254
  tabId: string;
222
255
  url: string;
223
256
  created: boolean;
224
257
  }>;
225
- tabAdd(taskId: string, url: string, profileName?: string): Promise<{
258
+ tabAdd(taskId: string, url: string, profileRef?: ProfileName | ConnectionKey): Promise<{
226
259
  tabId: string;
227
260
  url: string;
228
261
  }>;
@@ -238,7 +271,7 @@ export declare class BrowserService {
238
271
  private resolveTabHint;
239
272
  private resolveCurrentTab;
240
273
  private getCdpTargetId;
241
- tabs(taskId?: string, profileName?: string): Promise<TabInfo[]>;
274
+ tabs(taskId?: string, profileRef?: ProfileName | ConnectionKey): Promise<TabInfo[]>;
242
275
  tabClose(taskId: string, tabHint?: string): Promise<void>;
243
276
  evaluate(taskId: string, tabHint: string | undefined, expression: string): Promise<unknown>;
244
277
  screenshot(taskId: string, tabHint?: string, outputPath?: string, quality?: 'compressed' | 'raw'): Promise<{
@@ -320,7 +353,25 @@ export declare class BrowserService {
320
353
  stageUpload(source: string): {
321
354
  path: string;
322
355
  };
323
- status(profileName?: string): Promise<ProfileStatus[]>;
356
+ /**
357
+ * Status for one profile (bare name) or every live profile.
358
+ *
359
+ * `profileName` is a {@link ProfileName} — a BARE name, never a runtime key.
360
+ * Every candidate is selected by the one rule ({@link keyBelongsToProfile}),
361
+ * and a scoped query that finds no live connection falls through to disk, so
362
+ * `status --profile comet-local` reports the LIVE `comet-local@endpoint-0`
363
+ * instead of the empty list it used to return (RUSH-2709).
364
+ */
365
+ status(profileRef?: ProfileName | ConnectionKey): Promise<ProfileStatus[]>;
366
+ /**
367
+ * Rebuild a profile's status from its runtime dirs when no live connection is
368
+ * registered — a daemon that never connected this profile, or a browser
369
+ * started by an earlier daemon.
370
+ *
371
+ * Takes a BARE profile name and walks every runtime key that belongs to it
372
+ * ({@link listProfileCacheDirs}), including the legacy pre-composite dir named
373
+ * exactly the profile.
374
+ */
324
375
  private reconcileFromDisk;
325
376
  private profileStatusFromDisk;
326
377
  setViewport(taskId: string, width: number, height: number, options?: {
@@ -385,13 +436,22 @@ export declare class BrowserService {
385
436
  * already resolved the endpoint and built the `effectiveProfile` with
386
437
  * the per-endpoint binary/targetFilter overrides applied; we just use it.
387
438
  *
388
- * `effectiveProfile.name` is the composite identifier (`<profile>@<endpoint>`)
389
- * so per-endpoint pid/port files don't collide when the same app runs
390
- * locally and remotely at the same time.
439
+ * `key` is the runtime key (`<profile>@<endpoint>`) and is what every on-disk
440
+ * lookup uses, so per-endpoint pid/port files don't collide when the same app
441
+ * runs locally and remotely at the same time. It is a SEPARATE argument
442
+ * because `effectiveProfile.name` stays the bare, user-facing name (RUSH-2709).
391
443
  */
392
444
  private connectProfile;
393
445
  private connectEndpoint;
394
446
  private enableDomains;
447
+ /**
448
+ * The single path that opens a new CDP page/window target. It exists so the
449
+ * Arc guard lives in exactly one place: `Target.createTarget` crashes Arc
450
+ * (verified, PR #2778), so an Arc connection throws a clear, actionable error
451
+ * here instead of every call site re-checking. Every drivable Chromium-family
452
+ * browser goes straight through.
453
+ */
454
+ private createPageTarget;
395
455
  private getOrCreateWindow;
396
456
  private hasTaskNamed;
397
457
  /** Map key for a task on a connection (tasks are keyed by `name`). */
@@ -420,7 +480,7 @@ export declare class BrowserService {
420
480
  }): Promise<{
421
481
  conn: ProfileConnection;
422
482
  task: Task;
423
- profileName: string;
483
+ key: ConnectionKey;
424
484
  created: boolean;
425
485
  } | null>;
426
486
  private listTasksForCaller;
@@ -468,6 +528,7 @@ export declare class BrowserService {
468
528
  */
469
529
  private rehydrateTaskFromDisk;
470
530
  private getTabsForTask;
531
+ /** Live status for ONE registered connection, addressed by its runtime key. */
471
532
  private getProfileStatus;
472
533
  private getTarget;
473
534
  private getSessionId;