@rynx-ai/daemon 0.1.10 → 0.1.11-beta.10

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 (156) hide show
  1. package/bundled-plugins/.rynx-plugin/marketplace.json +10 -0
  2. package/bundled-plugins/plugins/lark/.rynx-plugin/plugin.json +25 -0
  3. package/bundled-plugins/plugins/lark/dist/cli-mirror/mirror-index.d.ts +48 -0
  4. package/bundled-plugins/plugins/lark/dist/cli-mirror/mirror-index.js +56 -0
  5. package/bundled-plugins/plugins/lark/dist/cli-mirror/rollout-mirror.d.ts +85 -0
  6. package/bundled-plugins/plugins/lark/dist/cli-mirror/rollout-mirror.js +333 -0
  7. package/bundled-plugins/plugins/lark/dist/cli-mirror/rollout-watcher.d.ts +109 -0
  8. package/bundled-plugins/plugins/lark/dist/cli-mirror/rollout-watcher.js +347 -0
  9. package/bundled-plugins/plugins/lark/dist/host-adapters.d.ts +95 -0
  10. package/bundled-plugins/plugins/lark/dist/host-adapters.js +506 -0
  11. package/bundled-plugins/plugins/lark/dist/index.d.ts +7 -0
  12. package/bundled-plugins/plugins/lark/dist/index.js +7 -0
  13. package/bundled-plugins/plugins/lark/dist/lark-card-stream.d.ts +363 -0
  14. package/bundled-plugins/plugins/lark/dist/lark-card-stream.js +1335 -0
  15. package/bundled-plugins/plugins/lark/dist/lark-config-store.d.ts +30 -0
  16. package/bundled-plugins/plugins/lark/dist/lark-config-store.js +135 -0
  17. package/bundled-plugins/plugins/lark/dist/lark-content.d.ts +30 -0
  18. package/bundled-plugins/plugins/lark/dist/lark-content.js +138 -0
  19. package/bundled-plugins/plugins/lark/dist/lark-conversation-directory.d.ts +65 -0
  20. package/bundled-plugins/plugins/lark/dist/lark-conversation-directory.js +106 -0
  21. package/bundled-plugins/plugins/lark/dist/lark-diff-card.d.ts +25 -0
  22. package/bundled-plugins/plugins/lark/dist/lark-diff-card.js +58 -0
  23. package/bundled-plugins/plugins/lark/dist/lark-fork-transcript.d.ts +16 -0
  24. package/bundled-plugins/plugins/lark/dist/lark-fork-transcript.js +141 -0
  25. package/bundled-plugins/plugins/lark/dist/lark-resume-card.d.ts +31 -0
  26. package/bundled-plugins/plugins/lark/dist/lark-resume-card.js +105 -0
  27. package/bundled-plugins/plugins/lark/dist/lark-runtime-state-store.d.ts +18 -0
  28. package/bundled-plugins/plugins/lark/dist/lark-runtime-state-store.js +95 -0
  29. package/bundled-plugins/plugins/lark/dist/lark-sdk/client.d.ts +8 -0
  30. package/bundled-plugins/plugins/lark/dist/lark-sdk/client.js +32 -0
  31. package/bundled-plugins/plugins/lark/dist/lark-sdk/index.d.ts +1 -0
  32. package/bundled-plugins/plugins/lark/dist/lark-sdk/index.js +1 -0
  33. package/bundled-plugins/plugins/lark/dist/lark-sender.d.ts +114 -0
  34. package/bundled-plugins/plugins/lark/dist/lark-sender.js +323 -0
  35. package/bundled-plugins/plugins/lark/dist/lark-session-store.d.ts +13 -0
  36. package/bundled-plugins/plugins/lark/dist/lark-session-store.js +14 -0
  37. package/bundled-plugins/plugins/lark/dist/lark-settings-card.d.ts +55 -0
  38. package/bundled-plugins/plugins/lark/dist/lark-settings-card.js +158 -0
  39. package/bundled-plugins/plugins/lark/dist/lark-setup.d.ts +39 -0
  40. package/bundled-plugins/plugins/lark/dist/lark-setup.js +103 -0
  41. package/bundled-plugins/plugins/lark/dist/lark.d.ts +507 -0
  42. package/bundled-plugins/plugins/lark/dist/lark.js +1975 -0
  43. package/bundled-plugins/plugins/lark/dist/runtime.d.ts +13 -0
  44. package/bundled-plugins/plugins/lark/dist/runtime.js +131328 -0
  45. package/bundled-plugins/plugins/lark/dist/settings.d.ts +7 -0
  46. package/bundled-plugins/plugins/lark/dist/settings.js +126971 -0
  47. package/bundled-plugins/plugins/lark/package.json +57 -0
  48. package/bundled-plugins/plugins/lark/ui/assets/index-CGUVAMsv.css +1 -0
  49. package/bundled-plugins/plugins/lark/ui/assets/index-D8Amoe6a.js +201 -0
  50. package/bundled-plugins/plugins/lark/ui/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  51. package/bundled-plugins/plugins/lark/ui/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  52. package/bundled-plugins/plugins/lark/ui/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  53. package/bundled-plugins/plugins/lark/ui/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  54. package/bundled-plugins/plugins/lark/ui/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  55. package/bundled-plugins/plugins/lark/ui/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  56. package/bundled-plugins/plugins/lark/ui/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  57. package/bundled-plugins/plugins/lark/ui/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
  58. package/bundled-plugins/plugins/lark/ui/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
  59. package/bundled-plugins/plugins/lark/ui/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  60. package/bundled-plugins/plugins/lark/ui/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  61. package/bundled-plugins/plugins/lark/ui/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
  62. package/bundled-plugins/plugins/lark/ui/index.html +13 -0
  63. package/dist/agent-file.js +0 -1
  64. package/dist/browser-artifact-management.d.ts +4 -1
  65. package/dist/browser-artifact-management.js +18 -10
  66. package/dist/browser-artifacts.d.ts +1 -0
  67. package/dist/browser-artifacts.js +1 -0
  68. package/dist/bundled-plugins.d.ts +15 -0
  69. package/dist/bundled-plugins.js +134 -0
  70. package/dist/chrome-for-testing-runtime.d.ts +27 -0
  71. package/dist/chrome-for-testing-runtime.js +193 -0
  72. package/dist/chrome-for-testing-store.d.ts +2 -0
  73. package/dist/chrome-for-testing-store.js +9 -0
  74. package/dist/control-deps.d.ts +6 -2
  75. package/dist/control-deps.js +88 -82
  76. package/dist/daemon-server.d.ts +7 -1
  77. package/dist/daemon-server.js +310 -87
  78. package/dist/db.js +181 -124
  79. package/dist/entry-path.d.ts +3 -0
  80. package/dist/entry-path.js +12 -0
  81. package/dist/index-daemon.js +3 -66
  82. package/dist/lifecycle.d.ts +12 -0
  83. package/dist/lifecycle.js +16 -0
  84. package/dist/maintenance-lease.d.ts +39 -0
  85. package/dist/maintenance-lease.js +250 -0
  86. package/dist/migrations/cleanup-legacy-sessions.d.ts +1 -1
  87. package/dist/migrations/cleanup-legacy-sessions.js +33 -15
  88. package/dist/official-plugins.d.ts +2 -0
  89. package/dist/official-plugins.js +2 -0
  90. package/dist/plugin-cli.d.ts +1 -3
  91. package/dist/plugin-cli.js +56 -45
  92. package/dist/plugin-host-leases.d.ts +4 -0
  93. package/dist/plugin-host-leases.js +7 -0
  94. package/dist/plugin-host-rpc.d.ts +73 -6
  95. package/dist/plugin-host-rpc.js +354 -81
  96. package/dist/plugin-installer.d.ts +24 -55
  97. package/dist/plugin-installer.js +258 -412
  98. package/dist/plugin-management-service.d.ts +30 -23
  99. package/dist/plugin-management-service.js +288 -105
  100. package/dist/plugin-marketplace.d.ts +35 -0
  101. package/dist/plugin-marketplace.js +299 -0
  102. package/dist/plugin-package.d.ts +22 -24
  103. package/dist/plugin-package.js +520 -571
  104. package/dist/plugin-skill-context.d.ts +4 -0
  105. package/dist/plugin-skill-context.js +35 -0
  106. package/dist/plugin-store.d.ts +36 -37
  107. package/dist/plugin-store.js +138 -92
  108. package/dist/plugin-supervisor.d.ts +50 -125
  109. package/dist/plugin-supervisor.js +678 -1030
  110. package/dist/pm2.d.ts +11 -2
  111. package/dist/pm2.js +130 -28
  112. package/dist/process.d.ts +12 -0
  113. package/dist/process.js +91 -0
  114. package/dist/runtime-project-store.d.ts +9 -0
  115. package/dist/runtime-project-store.js +83 -0
  116. package/dist/session-fallback-workspace.d.ts +22 -0
  117. package/dist/session-fallback-workspace.js +120 -0
  118. package/dist/session-fork-store.d.ts +41 -0
  119. package/dist/session-fork-store.js +288 -0
  120. package/dist/session-launch-operations.d.ts +23 -2
  121. package/dist/session-launch-operations.js +48 -7
  122. package/dist/session-meta-store.d.ts +12 -9
  123. package/dist/session-meta-store.js +50 -49
  124. package/dist/session-portal-grant-store.d.ts +29 -0
  125. package/dist/session-portal-grant-store.js +84 -0
  126. package/dist/setup-service.d.ts +21 -0
  127. package/dist/setup-service.js +39 -0
  128. package/dist/skills-catalog.d.ts +11 -2
  129. package/dist/skills-catalog.js +307 -7
  130. package/dist/system-dependencies.d.ts +26 -0
  131. package/dist/system-dependencies.js +149 -0
  132. package/package.json +36 -20
  133. package/dist/browser-cli-args.d.ts +0 -20
  134. package/dist/browser-cli-args.js +0 -100
  135. package/dist/channel-store.d.ts +0 -22
  136. package/dist/channel-store.js +0 -65
  137. package/dist/cli.d.ts +0 -2
  138. package/dist/cli.js +0 -732
  139. package/dist/control-client.d.ts +0 -122
  140. package/dist/control-client.js +0 -855
  141. package/dist/control-endpoint.d.ts +0 -14
  142. package/dist/control-endpoint.js +0 -124
  143. package/dist/desktop-browser-host-client.d.ts +0 -35
  144. package/dist/desktop-browser-host-client.js +0 -415
  145. package/dist/instance-store.d.ts +0 -38
  146. package/dist/instance-store.js +0 -85
  147. package/dist/plugin-install-restart.d.ts +0 -13
  148. package/dist/plugin-install-restart.js +0 -24
  149. package/dist/plugin-runtime-control.d.ts +0 -2
  150. package/dist/plugin-runtime-control.js +0 -37
  151. package/dist/registry.d.ts +0 -10
  152. package/dist/registry.js +0 -52
  153. package/dist/setup.d.ts +0 -20
  154. package/dist/setup.js +0 -374
  155. package/dist/update.d.ts +0 -25
  156. package/dist/update.js +0 -133
@@ -1,107 +1,78 @@
1
1
  /**
2
2
  * Assemble the daemon-side {@link ControlPlaneDeps} the server needs to serve
3
- * the control console: db-backed channel + instance mutators, file-backed agent
4
- * specs, channel-type info from the loaded plugins, and a log tail. Plugins are
5
- * managed via the CLI, not here. Keeps `~/.rynx` knowledge in the daemon (the
3
+ * the control console: file-backed agent specs, skills, sessions, and a log
4
+ * tail. Plugin-private configuration is served by each plugin. Keeps `~/.rynx` knowledge in the daemon (the
6
5
  * composition root); the server stays storage-agnostic.
7
6
  */
8
7
  import { readFile } from "node:fs/promises";
9
8
  import { join } from "node:path";
10
- import { listAgentSpecs, loadAgentSpec, rynxHome } from "@rynx-ai/core";
9
+ import { listAgentSpecs, loadAgentSpec, rynxHome, scanLocalRuntimesInWorker, } from "@rynx-ai/core";
10
+ import { listRuntimeModels } from "@rynx-ai/server";
11
11
  import { createEmulatorControlDeps } from "@rynx-ai/emulator";
12
- import { normalizePluginConfig } from "@rynx-ai/plugin-sdk";
13
12
  import { removeAgentSpec, writeAgentSpec } from "./agent-file.js";
14
- import { getCatalogSkill, installCatalogSkill, listCatalogSkills, readCatalogSkillFile, removeCatalogSkill, } from "./skills-catalog.js";
15
- import { createChannel, getChannel, listChannels, removeChannel, renameChannel, setChannelOptions, } from "./channel-store.js";
16
- import { createInstance, listInstances, removeInstance, setInstanceAgent, setInstanceEnabled, } from "./instance-store.js";
17
- import { getChannelType, listChannelTypes } from "./registry.js";
13
+ import { getCatalogSkill, importLocalCatalogSkills, importCatalogSkillsFromArchive, installCatalogSkill, listCatalogSkills, readCatalogSkillFile, removeCatalogSkill, scanLocalCatalogSkillCandidates, } from "./skills-catalog.js";
18
14
  import { createSessionMeta, getSessionMeta, listSessionMetas, removeSessionMeta, setSessionTitle, } from "./session-meta-store.js";
19
15
  import { consumeControlLink } from "./control-link-store.js";
20
- export function buildControlDeps() {
16
+ const RUNTIME_OPTIONS_CACHE_MS = 30_000;
17
+ export function buildControlDeps(config) {
18
+ let runtimeOptionsCache;
19
+ let runtimeOptionsInFlight;
20
+ const listAgentRuntimeOptions = async (options = {}) => {
21
+ const now = Date.now();
22
+ if (!options.refresh && runtimeOptionsCache && runtimeOptionsCache.expiresAt > now) {
23
+ return runtimeOptionsCache.value;
24
+ }
25
+ if (!options.refresh && runtimeOptionsInFlight)
26
+ return runtimeOptionsInFlight;
27
+ const scan = async () => {
28
+ const runtimes = await scanLocalRuntimesInWorker();
29
+ const value = await Promise.all(runtimes.map(async (runtime) => {
30
+ return {
31
+ id: runtime.id,
32
+ name: runtime.displayName,
33
+ binary: runtime.binary,
34
+ ...(runtime.executablePath ? { executablePath: runtime.executablePath } : {}),
35
+ ...(runtime.version ? { version: runtime.version } : {}),
36
+ available: runtime.available,
37
+ models: await listControlAgentModels(config, runtime.id),
38
+ };
39
+ }));
40
+ runtimeOptionsCache = { expiresAt: Date.now() + RUNTIME_OPTIONS_CACHE_MS, value };
41
+ return value;
42
+ };
43
+ runtimeOptionsInFlight = scan();
44
+ try {
45
+ return await runtimeOptionsInFlight;
46
+ }
47
+ finally {
48
+ runtimeOptionsInFlight = undefined;
49
+ }
50
+ };
21
51
  return {
22
- // ── channel types (from loaded plugins) ──────────────────────────────
23
- listChannelTypes: () => listChannelTypes().map((descriptor) => ({
24
- type: descriptor.type,
25
- configSchema: descriptor.configSchema,
26
- authorize: Boolean(descriptor.authorize),
27
- })),
28
- // ── channels (config + credentials) ──────────────────────────────────
29
- listChannels: () => listChannels(),
30
- createChannel: (input) => {
31
- if (!getChannelType(input.type))
32
- throw new Error(`unknown chat channel type: ${input.type}`);
33
- return {
34
- id: createChannel({
35
- ...input,
36
- ...(input.options !== undefined
37
- ? { options: normalizeChannelOptions(input.type, input.options) }
38
- : {}),
39
- }).id,
40
- };
41
- },
42
- setChannel: (id, patch) => {
43
- let normalizedOptions;
44
- if (patch.options !== undefined) {
45
- const current = getChannel(id);
46
- if (!current)
47
- throw new Error(`channel not found: ${id}`);
48
- normalizedOptions = normalizeChannelOptions(current.type, {
49
- ...(current.options ?? {}),
50
- ...patch.options,
51
- });
52
- }
53
- if (patch.name !== undefined)
54
- renameChannel(id, patch.name);
55
- if (normalizedOptions !== undefined)
56
- setChannelOptions(id, normalizedOptions);
57
- },
58
- removeChannel: (id) => {
59
- removeChannel(id);
60
- },
61
- authorizeChannel: (type, context, emit, signal) => {
62
- const descriptor = getChannelType(type);
63
- if (!descriptor?.authorize) {
64
- throw new Error(`channel type "${type}" has no authorize flow`);
65
- }
66
- return descriptor.authorize(emit, signal, context);
67
- },
68
- // ── instances (channel + agent binding) ──────────────────────────────
69
- listInstancesConfig: () => listInstances().map((i) => ({
70
- id: i.id,
71
- channelId: i.channelId,
72
- channelName: i.channelName,
73
- type: i.type,
74
- agent: i.agent,
75
- enabled: i.enabled,
76
- })),
77
- createInstance: (input) => ({ id: createInstance(input).id }),
78
- setInstance: (id, patch) => {
79
- if (patch.agent !== undefined)
80
- setInstanceAgent(id, patch.agent);
81
- if (patch.enabled !== undefined)
82
- setInstanceEnabled(id, patch.enabled);
83
- },
84
- removeInstance: (id) => {
85
- removeInstance(id);
86
- },
87
52
  // ── declarative agents ───────────────────────────────────────────────
88
53
  listAgents: async () => (await listAgentSpecs()).map((spec) => ({
89
54
  id: spec.id,
90
55
  name: spec.name,
56
+ description: spec.description,
91
57
  runtime: spec.executor?.runtime,
92
- model: spec.executor?.model,
58
+ ...(spec.executor?.model ? { model: spec.executor.model } : {}),
59
+ skillCount: spec.skills?.length ?? 0,
93
60
  })),
94
61
  getAgent: (id) => loadAgentSpec(id),
95
62
  writeAgent: (id, spec) => {
96
63
  writeAgentSpec(id, spec);
97
64
  },
98
65
  removeAgent: (id) => removeAgentSpec(id),
66
+ listAgentRuntimeOptions,
99
67
  // ── skills catalog ───────────────────────────────────────────────────
100
68
  listSkills: () => listCatalogSkills(),
101
69
  getSkill: (name) => getCatalogSkill(name),
102
70
  readSkillFile: (name, file) => readCatalogSkillFile(name, file),
103
71
  installSkill: (recipe) => installCatalogSkill(recipe),
104
72
  removeSkill: (name) => removeCatalogSkill(name),
73
+ scanLocalSkills: (runtime) => scanLocalCatalogSkillCandidates(runtime),
74
+ importLocalSkills: (runtime, keys) => importLocalCatalogSkills(runtime, keys),
75
+ importSkillArchive: (filename, contentBase64) => importCatalogSkillsFromArchive(filename, contentBase64),
105
76
  // ── emulator proxy (single seam: the emulator package owns the surface) ─
106
77
  emulator: createEmulatorControlDeps(),
107
78
  // ── control-plane sessions (meta persisted; status held by the server) ─
@@ -114,12 +85,47 @@ export function buildControlDeps() {
114
85
  tailLogs: (instanceId, lines) => tailLogs(instanceId, lines),
115
86
  };
116
87
  }
117
- function normalizeChannelOptions(type, options) {
118
- const descriptor = getChannelType(type);
119
- if (!descriptor)
120
- throw new Error(`unknown chat channel type: ${type}`);
121
- const schema = descriptor.configSchema ?? [];
122
- return schema.length > 0 ? normalizePluginConfig(schema, options) : { ...options };
88
+ /** Project a Runtime-native model catalog into the control-plane option shape. */
89
+ export async function listControlAgentModels(config, runtime) {
90
+ const catalog = await listRuntimeModels(config, runtime);
91
+ return (catalog?.data ?? [])
92
+ .filter((model) => model.hidden !== true)
93
+ .map((model) => ({
94
+ id: model.model || model.id,
95
+ label: model.displayName || model.model || model.id,
96
+ ...(model.description ? { description: model.description } : {}),
97
+ ...(model.isDefault ? { isDefault: true } : {}),
98
+ ...(model.defaultReasoningEffort
99
+ ? { defaultReasoningEffort: model.defaultReasoningEffort }
100
+ : {}),
101
+ reasoningOptions: model.supportedReasoningEfforts?.length
102
+ ? model.supportedReasoningEfforts.map((effort) => ({
103
+ value: effort.reasoningEffort,
104
+ label: reasoningLabel(effort.reasoningEffort),
105
+ ...(effort.description ? { description: effort.description } : {}),
106
+ }))
107
+ : fallbackReasoningOptions(runtime, model.model || model.id),
108
+ }));
109
+ }
110
+ function fallbackReasoningOptions(runtime, model) {
111
+ const values = runtime === "claude"
112
+ ? model.toLowerCase().includes("opus")
113
+ ? ["low", "medium", "high", "xhigh"]
114
+ : ["low", "medium", "high"]
115
+ : ["none", "minimal", "low", "medium", "high", "xhigh"];
116
+ return values.map((value) => ({ value, label: reasoningLabel(value) }));
117
+ }
118
+ function reasoningLabel(value) {
119
+ return {
120
+ none: "None",
121
+ minimal: "Minimal",
122
+ low: "Low",
123
+ medium: "Medium",
124
+ high: "High",
125
+ xhigh: "Extra high",
126
+ max: "Max",
127
+ ultra: "Ultra",
128
+ }[value] ?? value;
123
129
  }
124
130
  /** Tail the daemon's merged pm2 logs, best-effort filtered by instance id. */
125
131
  async function tailLogs(instanceId, lines) {
@@ -9,10 +9,16 @@ export declare function daemonActivityBlocksShutdown(activity: DaemonActivitySna
9
9
  export interface StartRynxDaemonServerOptions {
10
10
  config?: AppConfig;
11
11
  warn?: (message: string) => void;
12
+ /** Process-owner callback after every daemon resource and owner lease has
13
+ * shut down successfully. Library callers normally leave this unset. */
14
+ onShutdownComplete?: () => void;
12
15
  /** Test/deployment seam; failures roll back the already-listening server. */
13
16
  writeEndpoint?: (config: AppConfig, managementToken: string) => Promise<void>;
14
17
  /** Test seam for owner-lock failure injection. Production always uses the RYNX_HOME lease. */
15
18
  acquireOwner?: () => Promise<DaemonOwnerLease>;
19
+ /** Runs after the exclusive daemon-owner lock is acquired and before plugin
20
+ * records are loaded or runners are started. */
21
+ preparePlugins?: () => Promise<void>;
16
22
  /** Test/deployment seam for the always-available Direct Runtime socket. */
17
23
  loadDirectConfig?: () => Promise<DirectRuntimeConfig>;
18
24
  /** Test seam for listener lifecycle and bind failures. */
@@ -22,7 +28,7 @@ export interface StartRynxDaemonServerOptions {
22
28
  /** Test seam for the App-only embedded Chromium process supervisor. */
23
29
  createBrowserHostSupervisor?: (options: AppBrowserHostSupervisorOptions) => Pick<AppBrowserHostSupervisor, "ensureConnected" | "restart" | "stop">;
24
30
  }
25
- export declare function startRynxDaemonServer({ config, warn, writeEndpoint, acquireOwner, loadDirectConfig, startDirectServer, createChromeInspectionManager, createBrowserHostSupervisor, }?: StartRynxDaemonServerOptions): Promise<Awaited<ReturnType<typeof startServer>>>;
31
+ export declare function startRynxDaemonServer({ config, warn, onShutdownComplete, writeEndpoint, acquireOwner, preparePlugins, loadDirectConfig, startDirectServer, createChromeInspectionManager, createBrowserHostSupervisor, }?: StartRynxDaemonServerOptions): Promise<Awaited<ReturnType<typeof startServer>>>;
26
32
  export declare function createSupervisedAppSessionBrowserHost(desktop: SessionBrowserHost, supervisor: Pick<AppBrowserHostSupervisor, "ensureConnected" | "restart">): SessionBrowserHost;
27
33
  /**
28
34
  * Resolve the authenticated semantic target inside its owning Runtime and