@hiroleague/taskmanager 0.0.1 → 0.0.2

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 (146) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +41 -52
  3. package/dist/assets/architecture-YZFGNWBL-C1MoQeSs.js +1 -0
  4. package/dist/assets/{architectureDiagram-Q4EWVU46-DSQ1_74_.js → architectureDiagram-Q4EWVU46-DUEfvDBu.js} +1 -1
  5. package/dist/assets/{blockDiagram-DXYQGD6D-DfOGNphI.js → blockDiagram-DXYQGD6D-DQzEOPT2.js} +1 -1
  6. package/dist/assets/{chunk-2KRD3SAO-9yt00aGC.js → chunk-2KRD3SAO-C2e-_49I.js} +1 -1
  7. package/dist/assets/{chunk-4TB4RGXK-DF8yJBFl.js → chunk-4TB4RGXK-AZq3s1Dh.js} +1 -1
  8. package/dist/assets/{chunk-67CJDMHE-5wFKo04G.js → chunk-67CJDMHE-B1-M78qu.js} +1 -1
  9. package/dist/assets/{chunk-7N4EOEYR-BRRGX_NC.js → chunk-7N4EOEYR-D7mYFpz-.js} +1 -1
  10. package/dist/assets/{chunk-AA7GKIK3-DUZv_pNI.js → chunk-AA7GKIK3-VWI9k39i.js} +1 -1
  11. package/dist/assets/{chunk-CIAEETIT-mA5aM_d7.js → chunk-CIAEETIT-hnu4zamm.js} +1 -1
  12. package/dist/assets/{chunk-FOC6F5B3-B-cqGCPC.js → chunk-FOC6F5B3-BJsh9nO9.js} +1 -1
  13. package/dist/assets/{chunk-K5T4RW27-BLRDzioh.js → chunk-K5T4RW27-BLIPdXaZ.js} +1 -1
  14. package/dist/assets/{chunk-KGLVRYIC-CTkQSeKy.js → chunk-KGLVRYIC-DvaW2TkT.js} +1 -1
  15. package/dist/assets/{chunk-LIHQZDEY-Cf34Nu3J.js → chunk-LIHQZDEY-CUsM0M11.js} +1 -1
  16. package/dist/assets/{chunk-ORNJ4GCN-D3uXgbay.js → chunk-ORNJ4GCN-CfluNV0_.js} +1 -1
  17. package/dist/assets/{chunk-OYMX7WX6-syQho5jf.js → chunk-OYMX7WX6-CkWzw4JX.js} +1 -1
  18. package/dist/assets/{classDiagram-6PBFFD2Q-CotFZI8-.js → classDiagram-6PBFFD2Q-Dx_f-9b7.js} +1 -1
  19. package/dist/assets/{classDiagram-v2-HSJHXN6E-DAPzeDGn.js → classDiagram-v2-HSJHXN6E-CSfvZ-nt.js} +1 -1
  20. package/dist/assets/clone-CXokakwV.js +1 -0
  21. package/dist/assets/{dagre-rhyPjnsQ.js → dagre-Do0eD9eI.js} +1 -1
  22. package/dist/assets/{dagre-KV5264BT-BBqulDtd.js → dagre-KV5264BT-lveZDhBf.js} +1 -1
  23. package/dist/assets/{diagram-5BDNPKRD-Ky3EXXj0.js → diagram-5BDNPKRD-Dq5yM_uY.js} +1 -1
  24. package/dist/assets/{diagram-G4DWMVQ6-t7LbT0Uz.js → diagram-G4DWMVQ6-D-SYOmKm.js} +1 -1
  25. package/dist/assets/{diagram-MMDJMWI5-CdnLXEMx.js → diagram-MMDJMWI5-lU5t9BZA.js} +1 -1
  26. package/dist/assets/{diagram-TYMM5635-CnzTqJBM.js → diagram-TYMM5635-6tfUbY3R.js} +1 -1
  27. package/dist/assets/{erDiagram-SMLLAGMA-BN5eJerP.js → erDiagram-SMLLAGMA-dx09stuy.js} +1 -1
  28. package/dist/assets/{flatten-C5NL-f24.js → flatten-B2BZ0pzY.js} +1 -1
  29. package/dist/assets/{flowDiagram-DWJPFMVM-CbFskc8S.js → flowDiagram-DWJPFMVM-CJi2WISS.js} +1 -1
  30. package/dist/assets/gitGraph-7Q5UKJZL-BXTuQaDM.js +1 -0
  31. package/dist/assets/{gitGraphDiagram-UUTBAWPF-wpqI2kyI.js → gitGraphDiagram-UUTBAWPF-Bjj94M12.js} +1 -1
  32. package/dist/assets/{graphlib-COiJG5Qv.js → graphlib-BIlXYGdM.js} +1 -1
  33. package/dist/assets/{index-lyyIVcc_.js → index-CZZuue3D.js} +5 -5
  34. package/dist/assets/info-OMHHGYJF-BeeKt8-X.js +1 -0
  35. package/dist/assets/{infoDiagram-42DDH7IO-BbvTdpSV.js → infoDiagram-42DDH7IO-wq_opQKO.js} +1 -1
  36. package/dist/assets/{ishikawaDiagram-UXIWVN3A-Epc23N_0.js → ishikawaDiagram-UXIWVN3A-Cnc1bwBo.js} +1 -1
  37. package/dist/assets/{kanban-definition-6JOO6SKY-C8dW_26n.js → kanban-definition-6JOO6SKY-CwHbIze0.js} +1 -1
  38. package/dist/assets/{mermaid-parser.core-6Tn8epr_.js → mermaid-parser.core-DrLhKJ48.js} +2 -2
  39. package/dist/assets/{mindmap-definition-QFDTVHPH-CvpNtrKT.js → mindmap-definition-QFDTVHPH-DswAJiEd.js} +1 -1
  40. package/dist/assets/packet-4T2RLAQJ-DQ-H9_jd.js +1 -0
  41. package/dist/assets/pie-ZZUOXDRM-BSj0Jsyj.js +1 -0
  42. package/dist/assets/{pieDiagram-DEJITSTG-eENymoXZ.js → pieDiagram-DEJITSTG-DgQTCddl.js} +1 -1
  43. package/dist/assets/radar-PYXPWWZC-B7-oRPFL.js +1 -0
  44. package/dist/assets/{reduce-BDOBPIXr.js → reduce-Uumu9GdR.js} +1 -1
  45. package/dist/assets/{requirementDiagram-MS252O5E-CmRO3hLp.js → requirementDiagram-MS252O5E-D1moa23Z.js} +1 -1
  46. package/dist/assets/{sequenceDiagram-FGHM5R23-B7qNcwNo.js → sequenceDiagram-FGHM5R23-Dvhj7HGn.js} +1 -1
  47. package/dist/assets/{stateDiagram-FHFEXIEX-CYfGMoR8.js → stateDiagram-FHFEXIEX-Dx5CjenB.js} +1 -1
  48. package/dist/assets/{stateDiagram-v2-QKLJ7IA2-CO1W_n55.js → stateDiagram-v2-QKLJ7IA2-C_PkrTdc.js} +1 -1
  49. package/dist/assets/{timeline-definition-GMOUNBTQ-CQWqDPGG.js → timeline-definition-GMOUNBTQ-z-IncVmK.js} +1 -1
  50. package/dist/assets/treeView-SZITEDCU-CFXle9Az.js +1 -0
  51. package/dist/assets/treemap-W4RFUUIX-CAW3vWh8.js +1 -0
  52. package/dist/assets/{vennDiagram-DHZGUBPP-BjTbuhcb.js → vennDiagram-DHZGUBPP-CT1ehozU.js} +1 -1
  53. package/dist/assets/wardley-RL74JXVD-7q3ju4kc.js +1 -0
  54. package/dist/assets/{wardleyDiagram-NUSXRM2D-DNhPIFCg.js → wardleyDiagram-NUSXRM2D-D-kouujI.js} +1 -1
  55. package/dist/assets/{xychartDiagram-5P7HB3ND-BDblAZ11.js → xychartDiagram-5P7HB3ND-D1lnM0pL.js} +1 -1
  56. package/dist/index.html +1 -1
  57. package/package.json +101 -92
  58. package/scripts/postinstall-message.mjs +160 -0
  59. package/scripts/stubs/node-domexception/index.cjs +18 -0
  60. package/scripts/stubs/node-domexception/package.json +7 -0
  61. package/skills/hiro-task-manager-cli/SKILL.md +97 -0
  62. package/skills/hiro-task-manager-cli/reference/boards.md +143 -0
  63. package/skills/hiro-task-manager-cli/reference/cli-access-policy.md +72 -0
  64. package/skills/hiro-task-manager-cli/reference/errors.md +85 -0
  65. package/skills/hiro-task-manager-cli/reference/lists.md +106 -0
  66. package/skills/hiro-task-manager-cli/reference/releases.md +87 -0
  67. package/skills/hiro-task-manager-cli/reference/search.md +38 -0
  68. package/skills/hiro-task-manager-cli/reference/statuses.md +25 -0
  69. package/skills/hiro-task-manager-cli/reference/tasks.md +144 -0
  70. package/skills/hiro-task-manager-cli/reference/trash.md +50 -0
  71. package/src/cli/bootstrap/launcher.test.ts +66 -0
  72. package/src/cli/bootstrap/launcher.ts +375 -35
  73. package/src/cli/bootstrap/program.ts +4 -0
  74. package/src/cli/bootstrap/runtime.test.ts +15 -0
  75. package/src/cli/bootstrap/runtime.ts +27 -1
  76. package/src/cli/commands/query.ts +56 -56
  77. package/src/cli/commands/server.ts +27 -19
  78. package/src/cli/handlers/boards.test.ts +669 -669
  79. package/src/cli/handlers/cli-wiring.test.ts +1 -1
  80. package/src/cli/handlers/search.test.ts +374 -374
  81. package/src/cli/handlers/search.ts +17 -17
  82. package/src/cli/handlers/server.test.ts +55 -13
  83. package/src/cli/handlers/server.ts +16 -3
  84. package/src/cli/lib/api-client.test.ts +35 -2
  85. package/src/cli/lib/api-client.ts +43 -10
  86. package/src/cli/lib/cli-http-errors.test.ts +85 -85
  87. package/src/cli/lib/command-helpers.ts +161 -154
  88. package/src/cli/lib/config.ts +4 -0
  89. package/src/cli/lib/launcherUi.ts +166 -0
  90. package/src/cli/lib/process.test.ts +24 -5
  91. package/src/cli/lib/process.ts +86 -55
  92. package/src/cli/ports/process.ts +8 -2
  93. package/src/cli/subprocess.real-stack.test.ts +611 -598
  94. package/src/cli/subprocess.smoke.test.ts +954 -969
  95. package/src/cli/types/config.ts +2 -6
  96. package/src/client/components/auth/AuthScreen.tsx +3 -3
  97. package/src/client/components/board/BoardStatsChips.tsx +233 -233
  98. package/src/client/components/board/BoardStatsContext.tsx +41 -41
  99. package/src/client/components/board/boardHeaderButtonStyles.ts +38 -38
  100. package/src/client/components/board/shortcuts/useBoardShortcutKeydown.ts +49 -49
  101. package/src/client/components/board/useBoardCanvasPanScroll.ts +108 -108
  102. package/src/client/components/board/useBoardTaskContainerDroppableReact.ts +33 -33
  103. package/src/client/components/board/useBoardTaskSortableReact.ts +26 -26
  104. package/src/client/components/multi-select.tsx +1206 -1206
  105. package/src/client/components/routing/BoardPage.tsx +20 -20
  106. package/src/client/components/routing/NavigationRegistrar.tsx +13 -13
  107. package/src/client/components/settings/SettingsPage.tsx +1 -1
  108. package/src/client/components/task/TaskCard.tsx +643 -643
  109. package/src/client/components/ui/badge.tsx +49 -49
  110. package/src/client/components/ui/button.tsx +65 -65
  111. package/src/client/components/ui/command.tsx +193 -193
  112. package/src/client/components/ui/dialog.tsx +163 -163
  113. package/src/client/components/ui/input-group.tsx +155 -155
  114. package/src/client/components/ui/input.tsx +19 -19
  115. package/src/client/components/ui/popover.tsx +87 -87
  116. package/src/client/components/ui/separator.tsx +28 -28
  117. package/src/client/components/ui/textarea.tsx +18 -18
  118. package/src/client/index.css +248 -248
  119. package/src/client/lib/appNavigate.ts +16 -16
  120. package/src/client/lib/taskCardDate.ts +111 -111
  121. package/src/client/lib/utils.ts +6 -6
  122. package/src/server/auth.ts +351 -302
  123. package/src/server/bootstrapDev.ts +11 -2
  124. package/src/server/bootstrapInstalled.ts +6 -1
  125. package/src/server/index.ts +33 -7
  126. package/src/server/migrations/013_cli_policy_and_provenance.ts +2 -2
  127. package/src/server/migrations/019_cli_global_create_board_default_on.ts +14 -0
  128. package/src/server/migrations/registry.ts +43 -41
  129. package/src/server/parseBootstrapProfile.ts +42 -0
  130. package/src/server/storage/cliPolicy.ts +2 -1
  131. package/src/shared/runtimeConfig.ts +256 -237
  132. package/src/shared/runtimeIdentity.test.ts +47 -0
  133. package/src/shared/runtimeIdentity.ts +35 -0
  134. package/src/shared/serverStatus.ts +21 -0
  135. package/src/shared/skillsInstall.ts +71 -0
  136. package/src/shared/terminalColors.ts +24 -0
  137. package/dist/assets/architecture-YZFGNWBL-3h1eIYfB.js +0 -1
  138. package/dist/assets/clone-BRQpYu_n.js +0 -1
  139. package/dist/assets/gitGraph-7Q5UKJZL-CG8f8JF7.js +0 -1
  140. package/dist/assets/info-OMHHGYJF-C8_SHoRO.js +0 -1
  141. package/dist/assets/packet-4T2RLAQJ-BvpAX0kJ.js +0 -1
  142. package/dist/assets/pie-ZZUOXDRM-Ow26Yf-E.js +0 -1
  143. package/dist/assets/radar-PYXPWWZC-e_ron5jQ.js +0 -1
  144. package/dist/assets/treeView-SZITEDCU-DsEr3xeq.js +0 -1
  145. package/dist/assets/treemap-W4RFUUIX-DV7nk2AB.js +0 -1
  146. package/dist/assets/wardley-RL74JXVD-CrrFU9AE.js +0 -1
@@ -7,6 +7,12 @@ import {
7
7
  } from "node:fs";
8
8
  import path from "node:path";
9
9
  import { fileURLToPath } from "node:url";
10
+ import { resolveRuntimeSource } from "../../shared/runtimeIdentity";
11
+ import {
12
+ buildLocalServerUrl,
13
+ type RunningServerStatus,
14
+ type ServerStatus,
15
+ } from "../../shared/serverStatus";
10
16
  import {
11
17
  getServerPidFilePath,
12
18
  resolveDataDir,
@@ -15,11 +21,11 @@ import {
15
21
  resolveRuntimeKind,
16
22
  type ConfigOverrides,
17
23
  } from "./config";
18
- import { fetchHealth } from "./api-client";
24
+ import { fetchHealth, fetchHealthStatus } from "./api-client";
19
25
  import { CLI_DEFAULTS, CLI_POLLING } from "./constants";
20
26
  import { CLI_ERR } from "../types/errors";
21
- import type { ServerStatus } from "../types/config";
22
27
  import { CliError } from "./output";
28
+ import type { ServerStartMode } from "../ports/process";
23
29
 
24
30
  interface ManagedServerRecord {
25
31
  pid: number;
@@ -29,7 +35,11 @@ interface ManagedServerRecord {
29
35
 
30
36
  export type { ServerStatus };
31
37
 
32
- type ServerReadyCallback = (status: ServerStatus) => void | Promise<void>;
38
+ type ServerReadyCallback = (status: RunningServerStatus) => void | Promise<void>;
39
+
40
+ function buildStoppedStatus(): ServerStatus {
41
+ return { running: false };
42
+ }
33
43
 
34
44
  function getPidFilePath(overrides: ConfigOverrides = {}): string {
35
45
  return getServerPidFilePath(overrides);
@@ -94,9 +104,8 @@ function buildServerEnv(overrides: ConfigOverrides): NodeJS.ProcessEnv {
94
104
  const env: NodeJS.ProcessEnv = {
95
105
  ...process.env,
96
106
  TASKMANAGER_RUNTIME: resolveRuntimeKind(overrides),
97
- TASKMANAGER_PROFILE: resolveProfileName(overrides),
98
- TASKMANAGER_PORT: String(overrides.port),
99
107
  };
108
+ delete env.TASKMANAGER_PORT;
100
109
 
101
110
  // Pass the resolved data directory explicitly so the child process uses the
102
111
  // same profile-aware runtime config as the parent command.
@@ -108,26 +117,15 @@ function buildServerEnv(overrides: ConfigOverrides): NodeJS.ProcessEnv {
108
117
  export async function readServerStatus(
109
118
  overrides: ConfigOverrides = {},
110
119
  ): Promise<ServerStatus> {
111
- const port = resolvePort(overrides);
112
- const healthy = await fetchHealth(overrides);
120
+ const health = await fetchHealthStatus(overrides);
121
+ const healthy = health?.running === true;
113
122
  const managedRecord = readManagedServerRecord(overrides);
114
123
 
115
124
  if (healthy) {
116
125
  if (managedRecord && !isProcessAlive(managedRecord.pid)) {
117
126
  removeManagedServerRecord(overrides);
118
- return {
119
- port,
120
- running: true,
121
- url: `http://127.0.0.1:${port}`,
122
- };
123
127
  }
124
-
125
- return {
126
- pid: managedRecord?.pid,
127
- port,
128
- running: true,
129
- url: `http://127.0.0.1:${port}`,
130
- };
128
+ return health;
131
129
  }
132
130
 
133
131
  if (managedRecord && !isProcessAlive(managedRecord.pid)) {
@@ -139,7 +137,7 @@ export async function readServerStatus(
139
137
 
140
138
  export async function startServer(
141
139
  overrides: ConfigOverrides = {},
142
- background = false,
140
+ mode: ServerStartMode = "foreground",
143
141
  onReady?: ServerReadyCallback,
144
142
  ): Promise<ServerStatus> {
145
143
  const port = overrides.port;
@@ -153,17 +151,36 @@ export async function startServer(
153
151
  return currentStatus;
154
152
  }
155
153
 
154
+ const resolvedPort = resolvePort({ ...overrides, port: overrides.port });
155
+ const runDetached = mode !== "foreground";
156
+ const silenceConsole = mode === "background";
157
+ const runtime = resolveRuntimeKind(overrides);
158
+ const source = resolveRuntimeSource(import.meta.url);
159
+ const spawnCmd = [
160
+ process.execPath,
161
+ getServerEntryPath(overrides),
162
+ "--profile",
163
+ resolveProfileName(overrides),
164
+ "--port",
165
+ String(resolvedPort),
166
+ ];
167
+ // Pass --dev explicitly so the child bootstrap sets dev runtime.
168
+ if (runtime === "dev") {
169
+ spawnCmd.push("--dev");
170
+ }
156
171
  const child = Bun.spawn({
157
- cmd: [process.execPath, getServerEntryPath(overrides)],
172
+ cmd: spawnCmd,
158
173
  cwd: process.cwd(),
159
- detached: background,
174
+ detached: runDetached,
160
175
  env: buildServerEnv({ ...overrides, port }),
161
- stderr: background ? "ignore" : "inherit",
162
- stdin: background ? "ignore" : "inherit",
163
- stdout: background ? "ignore" : "inherit",
176
+ // First-run launcher mode keeps the server alive after the launcher exits,
177
+ // but still lets the recovery key print in the same terminal.
178
+ stderr: silenceConsole ? "ignore" : "inherit",
179
+ stdin: runDetached ? "ignore" : "inherit",
180
+ stdout: silenceConsole ? "ignore" : "inherit",
164
181
  });
165
182
 
166
- if (background) {
183
+ if (runDetached) {
167
184
  child.unref();
168
185
 
169
186
  const healthy = await waitForHealth(port, CLI_DEFAULTS.SERVER_START_WAIT_MS);
@@ -171,18 +188,24 @@ export async function startServer(
171
188
  throw new CliError("Server failed to start", 7, {
172
189
  code: CLI_ERR.serverStartTimeout,
173
190
  retryable: true,
174
- hint: "Try running `hirotm server start` without --background to inspect logs.",
191
+ hint: "Try running `hirotm server start --foreground` to inspect logs.",
175
192
  url: `http://127.0.0.1:${port}`,
176
193
  });
177
194
  }
178
195
 
196
+ const health = await fetchHealthStatus({ ...overrides, port });
197
+
179
198
  if (onReady) {
180
- await onReady({
181
- pid: child.pid,
182
- port,
183
- running: true,
184
- url: `http://127.0.0.1:${port}`,
185
- });
199
+ await onReady(
200
+ health ?? {
201
+ pid: child.pid,
202
+ port,
203
+ running: true,
204
+ runtime,
205
+ source,
206
+ url: buildLocalServerUrl(port),
207
+ },
208
+ );
186
209
  }
187
210
 
188
211
  // Persist the pid so later status calls can report a CLI-managed background server.
@@ -192,12 +215,16 @@ export async function startServer(
192
215
  startedAt: new Date().toISOString(),
193
216
  }, overrides);
194
217
 
195
- return {
196
- pid: child.pid,
197
- port,
198
- running: true,
199
- url: `http://127.0.0.1:${port}`,
200
- };
218
+ return (
219
+ health ?? {
220
+ pid: child.pid,
221
+ port,
222
+ running: true,
223
+ runtime,
224
+ source,
225
+ url: buildLocalServerUrl(port),
226
+ }
227
+ );
201
228
  }
202
229
 
203
230
  // Wait for health before handing control back to the launcher so first-run
@@ -213,16 +240,27 @@ export async function startServer(
213
240
  });
214
241
  }
215
242
 
243
+ const health = await fetchHealthStatus({ ...overrides, port });
244
+
216
245
  if (onReady) {
217
- await onReady({
218
- pid: child.pid,
219
- port,
220
- running: true,
221
- url: `http://127.0.0.1:${port}`,
222
- });
246
+ await onReady(
247
+ health ?? {
248
+ pid: child.pid,
249
+ port,
250
+ running: true,
251
+ runtime,
252
+ source,
253
+ url: buildLocalServerUrl(port),
254
+ },
255
+ );
223
256
  }
224
257
 
258
+ // Track whether the CLI forwarded a termination signal so we can treat
259
+ // the resulting non-zero exit code as a normal user-initiated shutdown
260
+ // rather than an unexpected crash.
261
+ let signalForwarded = false;
225
262
  const forwardSignal = (signal: NodeJS.Signals) => {
263
+ signalForwarded = true;
226
264
  child.kill(signal);
227
265
  };
228
266
 
@@ -233,17 +271,14 @@ export async function startServer(
233
271
  process.off("SIGINT", forwardSignal);
234
272
  process.off("SIGTERM", forwardSignal);
235
273
 
236
- if (exitCode !== 0) {
274
+ if (exitCode !== 0 && !signalForwarded) {
237
275
  throw new CliError("Server exited unexpectedly", 1, {
238
276
  code: CLI_ERR.serverExited,
239
277
  childExitCode: exitCode,
240
278
  });
241
279
  }
242
280
 
243
- return {
244
- port,
245
- running: false,
246
- };
281
+ return buildStoppedStatus();
247
282
  }
248
283
 
249
284
  /**
@@ -312,9 +347,5 @@ export async function stopServer(
312
347
 
313
348
  removeManagedServerRecord(overrides);
314
349
 
315
- return {
316
- pid: record.pid,
317
- port: waitPort,
318
- running: false,
319
- };
350
+ return buildStoppedStatus();
320
351
  }
@@ -1,9 +1,15 @@
1
+ import type { RunningServerStatus } from "../../shared/serverStatus";
1
2
  import type { ConfigOverrides, ServerStatus } from "../types/config";
2
3
 
3
4
  export type ServerReadyCallback = (
4
- status: ServerStatus,
5
+ status: RunningServerStatus,
5
6
  ) => void | Promise<void>;
6
7
 
8
+ export type ServerStartMode =
9
+ | "foreground"
10
+ | "background"
11
+ | "background-attached";
12
+
7
13
  /**
8
14
  * Local process lifecycle for `hirotm server` (spawn, pid file, health polling).
9
15
  * Implemented by `adapters/node-process.ts` (delegates to `lib/process.ts`).
@@ -14,7 +20,7 @@ export type ProcessPort = {
14
20
  ) => Promise<ServerStatus>;
15
21
  startServer: (
16
22
  overrides?: ConfigOverrides,
17
- background?: boolean,
23
+ mode?: ServerStartMode,
18
24
  onReady?: ServerReadyCallback,
19
25
  ) => Promise<ServerStatus>;
20
26
  stopServer: (overrides?: ConfigOverrides) => Promise<ServerStatus>;