@xdevops/issue-auto-finish 1.0.64 → 1.0.66

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 (77) hide show
  1. package/dist/{analyze-4EIZPNAO.js → analyze-QPIQMHX7.js} +2 -2
  2. package/dist/{braindump-FOMGOB3E.js → braindump-R5RPHUAM.js} +4 -4
  3. package/dist/{chunk-GZ4WQCVM.js → chunk-2FBXAHPE.js} +103 -43
  4. package/dist/chunk-2FBXAHPE.js.map +1 -0
  5. package/dist/{chunk-O5JTJWDH.js → chunk-ACPXD54H.js} +4 -61
  6. package/dist/chunk-ACPXD54H.js.map +1 -0
  7. package/dist/{chunk-YSADBTGK.js → chunk-CAZ3QRNK.js} +2 -2
  8. package/dist/{chunk-SF2CFEWJ.js → chunk-DBL3NZU6.js} +2 -2
  9. package/dist/{chunk-PDPVW66P.js → chunk-T2NHCBTT.js} +75 -6
  10. package/dist/chunk-T2NHCBTT.js.map +1 -0
  11. package/dist/{chunk-G3VAYLSN.js → chunk-WVWU7HNF.js} +145 -448
  12. package/dist/chunk-WVWU7HNF.js.map +1 -0
  13. package/dist/{chunk-DSXXSWKK.js → chunk-ZPEZQ3BS.js} +21 -22
  14. package/dist/chunk-ZPEZQ3BS.js.map +1 -0
  15. package/dist/cli/setup/ConfigGenerator.d.ts +5 -0
  16. package/dist/cli/setup/ConfigGenerator.d.ts.map +1 -1
  17. package/dist/cli.js +6 -6
  18. package/dist/{config-ZDBHBVDT.js → config-KZA3DVS6.js} +2 -2
  19. package/dist/config-schema.d.ts +2 -6
  20. package/dist/config-schema.d.ts.map +1 -1
  21. package/dist/config.d.ts +3 -3
  22. package/dist/config.d.ts.map +1 -1
  23. package/dist/e2e/E2ETestHelper.d.ts +1 -1
  24. package/dist/e2e/E2ETestHelper.d.ts.map +1 -1
  25. package/dist/git/GitOperations.d.ts +1 -0
  26. package/dist/git/GitOperations.d.ts.map +1 -1
  27. package/dist/git/WorktreeContext.d.ts +0 -25
  28. package/dist/git/WorktreeContext.d.ts.map +1 -1
  29. package/dist/index.js +6 -6
  30. package/dist/{init-5SYKAFZO.js → init-SIMAZTAZ.js} +3 -3
  31. package/dist/lib.js +12 -12
  32. package/dist/lib.js.map +1 -1
  33. package/dist/orchestrator/IssueProcessingContext.d.ts +3 -22
  34. package/dist/orchestrator/IssueProcessingContext.d.ts.map +1 -1
  35. package/dist/orchestrator/PipelineOrchestrator.d.ts +0 -9
  36. package/dist/orchestrator/PipelineOrchestrator.d.ts.map +1 -1
  37. package/dist/orchestrator/steps/CompletionStep.d.ts +1 -11
  38. package/dist/orchestrator/steps/CompletionStep.d.ts.map +1 -1
  39. package/dist/orchestrator/steps/FailureHandler.d.ts +2 -12
  40. package/dist/orchestrator/steps/FailureHandler.d.ts.map +1 -1
  41. package/dist/orchestrator/steps/SetupStep.d.ts +1 -5
  42. package/dist/orchestrator/steps/SetupStep.d.ts.map +1 -1
  43. package/dist/phases/BasePhase.d.ts +0 -9
  44. package/dist/phases/BasePhase.d.ts.map +1 -1
  45. package/dist/prompts/templates.d.ts +0 -6
  46. package/dist/prompts/templates.d.ts.map +1 -1
  47. package/dist/{restart-GXXPL4IJ.js → restart-FDRLHKCO.js} +3 -3
  48. package/dist/run.js +6 -6
  49. package/dist/{start-MK5Q4ZIC.js → start-6TPVNZ4M.js} +3 -3
  50. package/dist/web/WebServer.d.ts +1 -0
  51. package/dist/web/WebServer.d.ts.map +1 -1
  52. package/dist/web/routes/api.d.ts +2 -0
  53. package/dist/web/routes/api.d.ts.map +1 -1
  54. package/dist/web/routes/setup.d.ts.map +1 -1
  55. package/dist/workspace/WorkspaceManager.d.ts +3 -1
  56. package/dist/workspace/WorkspaceManager.d.ts.map +1 -1
  57. package/package.json +1 -1
  58. package/src/web/frontend/dist/assets/index-BM-aPpBO.css +1 -0
  59. package/src/web/frontend/dist/assets/index-DUmK6O3T.js +125 -0
  60. package/src/web/frontend/dist/index.html +2 -2
  61. package/dist/chunk-DSXXSWKK.js.map +0 -1
  62. package/dist/chunk-G3VAYLSN.js.map +0 -1
  63. package/dist/chunk-GZ4WQCVM.js.map +0 -1
  64. package/dist/chunk-O5JTJWDH.js.map +0 -1
  65. package/dist/chunk-PDPVW66P.js.map +0 -1
  66. package/dist/repo/RepoSpec.d.ts +0 -49
  67. package/dist/repo/RepoSpec.d.ts.map +0 -1
  68. package/src/web/frontend/dist/assets/index-BagNsMLv.js +0 -125
  69. package/src/web/frontend/dist/assets/index-DxXyMMb9.css +0 -1
  70. /package/dist/{analyze-4EIZPNAO.js.map → analyze-QPIQMHX7.js.map} +0 -0
  71. /package/dist/{braindump-FOMGOB3E.js.map → braindump-R5RPHUAM.js.map} +0 -0
  72. /package/dist/{chunk-YSADBTGK.js.map → chunk-CAZ3QRNK.js.map} +0 -0
  73. /package/dist/{chunk-SF2CFEWJ.js.map → chunk-DBL3NZU6.js.map} +0 -0
  74. /package/dist/{config-ZDBHBVDT.js.map → config-KZA3DVS6.js.map} +0 -0
  75. /package/dist/{init-5SYKAFZO.js.map → init-SIMAZTAZ.js.map} +0 -0
  76. /package/dist/{restart-GXXPL4IJ.js.map → restart-FDRLHKCO.js.map} +0 -0
  77. /package/dist/{start-MK5Q4ZIC.js.map → start-6TPVNZ4M.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadConfig
3
- } from "./chunk-O5JTJWDH.js";
3
+ } from "./chunk-ACPXD54H.js";
4
4
  import {
5
5
  analyze
6
6
  } from "./chunk-B7TVVODN.js";
@@ -72,4 +72,4 @@ async function analyzeCommand(opts) {
72
72
  export {
73
73
  analyzeCommand
74
74
  };
75
- //# sourceMappingURL=analyze-4EIZPNAO.js.map
75
+ //# sourceMappingURL=analyze-QPIQMHX7.js.map
@@ -9,16 +9,16 @@ import {
9
9
  import {
10
10
  BraindumpOrchestrator,
11
11
  BraindumpTracker
12
- } from "./chunk-SF2CFEWJ.js";
12
+ } from "./chunk-DBL3NZU6.js";
13
13
  import {
14
14
  AsyncMutex,
15
15
  GitOperations
16
- } from "./chunk-DSXXSWKK.js";
16
+ } from "./chunk-ZPEZQ3BS.js";
17
17
  import "./chunk-ACVOOHAR.js";
18
18
  import "./chunk-EB6TGE3H.js";
19
19
  import {
20
20
  loadConfig
21
- } from "./chunk-O5JTJWDH.js";
21
+ } from "./chunk-ACPXD54H.js";
22
22
  import "./chunk-B7TVVODN.js";
23
23
  import "./chunk-TN2SYADO.js";
24
24
  import "./chunk-DAX3FD2O.js";
@@ -204,4 +204,4 @@ ${bold("\u786E\u8BA4\u6267\u884C\uFF1F")} (${green("y")}=\u786E\u8BA4 / ${red("q
204
204
  export {
205
205
  braindumpCommand
206
206
  };
207
- //# sourceMappingURL=braindump-FOMGOB3E.js.map
207
+ //# sourceMappingURL=braindump-R5RPHUAM.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  BraindumpOrchestrator,
3
3
  BraindumpTracker
4
- } from "./chunk-SF2CFEWJ.js";
4
+ } from "./chunk-DBL3NZU6.js";
5
5
  import {
6
6
  createSetupRouter
7
- } from "./chunk-PDPVW66P.js";
7
+ } from "./chunk-T2NHCBTT.js";
8
8
  import {
9
9
  buildLockNoteBody,
10
10
  buildReleaseNoteBody,
@@ -25,13 +25,14 @@ import {
25
25
  getNoteSyncEnabled,
26
26
  getPipelineDef,
27
27
  gongfengIssueToDemandSpec,
28
+ isMultiRepo,
28
29
  isNoteSyncEnabledForIssue,
29
30
  loadWorkspaceConfig,
30
31
  metrics,
31
32
  setE2eOverride,
32
33
  setNoteSyncOverride,
33
34
  validatePhaseRegistry
34
- } from "./chunk-G3VAYLSN.js";
35
+ } from "./chunk-WVWU7HNF.js";
35
36
  import {
36
37
  AsyncMutex,
37
38
  BaseTracker,
@@ -40,7 +41,7 @@ import {
40
41
  getExternalId,
41
42
  getIid,
42
43
  getTitle
43
- } from "./chunk-DSXXSWKK.js";
44
+ } from "./chunk-ZPEZQ3BS.js";
44
45
  import {
45
46
  IwikiImporter,
46
47
  getProjectKnowledge,
@@ -51,12 +52,10 @@ import {
51
52
  t
52
53
  } from "./chunk-EB6TGE3H.js";
53
54
  import {
54
- getLinkedRepos,
55
- isMultiRepo,
56
55
  loadConfig,
57
56
  reloadConfig,
58
57
  resolveDisplayHost
59
- } from "./chunk-O5JTJWDH.js";
58
+ } from "./chunk-ACPXD54H.js";
60
59
  import {
61
60
  collectStaticInfo
62
61
  } from "./chunk-B7TVVODN.js";
@@ -757,6 +756,7 @@ function createApiRouter(trackerOrDeps, config, agentLogStore, orchestrator, mai
757
756
  let diaryCollector;
758
757
  let claimer;
759
758
  let configReloader;
759
+ let wsConfig;
760
760
  if (config !== void 0) {
761
761
  tracker = trackerOrDeps;
762
762
  cfg = config;
@@ -779,6 +779,7 @@ function createApiRouter(trackerOrDeps, config, agentLogStore, orchestrator, mai
779
779
  diaryCollector = deps.diaryCollector;
780
780
  claimer = deps.claimer;
781
781
  configReloader = deps.configReloader;
782
+ wsConfig = deps.wsConfig;
782
783
  }
783
784
  const router = Router();
784
785
  function getLifecycleManager(pipelineMode) {
@@ -1340,12 +1341,12 @@ function createApiRouter(trackerOrDeps, config, agentLogStore, orchestrator, mai
1340
1341
  knowledgeEnabled: getFeatureEnabled("knowledge", cfg),
1341
1342
  distillEnabled: getFeatureEnabled("distill", cfg),
1342
1343
  knowledgeSyncEnabled: true,
1343
- multiRepoEnabled: isMultiRepo(cfg.repos),
1344
- linkedRepos: getLinkedRepos(cfg.repos).map((r) => ({
1345
- name: r.name,
1346
- projectPath: r.projectPath,
1347
- baseBranch: r.baseBranch
1348
- }))
1344
+ multiRepoEnabled: wsConfig ? isMultiRepo(wsConfig) : false,
1345
+ linkedRepos: wsConfig?.associates.map((a) => ({
1346
+ name: a.name,
1347
+ projectPath: a.projectPath,
1348
+ baseBranch: a.baseBranch
1349
+ })) ?? []
1349
1350
  },
1350
1351
  issues: {
1351
1352
  total: allIssues.length,
@@ -1566,20 +1567,23 @@ data: ${JSON.stringify({ time: (/* @__PURE__ */ new Date()).toISOString() })}
1566
1567
  }
1567
1568
  const IMAGE_EXTS = /* @__PURE__ */ new Set([".png", ".jpg", ".jpeg", ".gif", ".webp"]);
1568
1569
  const VIDEO_EXTS = /* @__PURE__ */ new Set([".webm", ".mp4", ".mkv", ".avi"]);
1569
- const MEDIA_EXTS = /* @__PURE__ */ new Set([...IMAGE_EXTS, ...VIDEO_EXTS]);
1570
+ const DOC_EXTS = /* @__PURE__ */ new Set([".md", ".json", ".jsonl", ".log", ".py", ".html", ".har", ".txt"]);
1571
+ const ALL_ARTIFACT_EXTS = /* @__PURE__ */ new Set([...IMAGE_EXTS, ...VIDEO_EXTS, ...DOC_EXTS]);
1572
+ const RUN_DIR_PATTERN = /^\d{8}-\d{6}/;
1570
1573
  router.get("/api/e2e-artifacts", (req, res) => {
1571
1574
  const issueIid = req.query.issueIid;
1572
1575
  if (!isE2eConfigured()) {
1573
- res.json({ configured: false, runs: [] });
1576
+ res.json({ configured: false, runs: [], scenarios: [] });
1574
1577
  return;
1575
1578
  }
1576
1579
  const outputsDir = resolveE2eOutputsDir(issueIid);
1577
1580
  if (!outputsDir) {
1578
- res.json({ configured: true, runs: [] });
1581
+ res.json({ configured: true, runs: [], scenarios: [] });
1579
1582
  return;
1580
1583
  }
1581
1584
  try {
1582
- const entries = fs3.readdirSync(outputsDir, { withFileTypes: true }).filter((e) => e.isDirectory()).map((e) => {
1585
+ const allDirs = fs3.readdirSync(outputsDir, { withFileTypes: true }).filter((e) => e.isDirectory());
1586
+ const runs = allDirs.filter((e) => RUN_DIR_PATTERN.test(e.name)).map((e) => {
1583
1587
  const runDir = path3.join(outputsDir, e.name);
1584
1588
  const resultFile = path3.join(runDir, "result.json");
1585
1589
  let metadata = null;
@@ -1589,23 +1593,30 @@ data: ${JSON.stringify({ time: (/* @__PURE__ */ new Date()).toISOString() })}
1589
1593
  } catch {
1590
1594
  }
1591
1595
  }
1592
- const mediaCount = countMediaFiles(runDir);
1596
+ const counts = countArtifactFiles(runDir);
1593
1597
  return {
1594
1598
  runId: e.name,
1595
1599
  timestamp: e.name,
1596
- imageCount: mediaCount.images,
1597
- videoCount: mediaCount.videos,
1600
+ imageCount: counts.images,
1601
+ videoCount: counts.videos,
1602
+ documentCount: counts.documents,
1598
1603
  metadata
1599
1604
  };
1600
- }).filter((r) => r.imageCount > 0 || r.videoCount > 0).sort((a, b) => b.runId.localeCompare(a.runId));
1601
- res.json({ configured: true, runs: entries });
1605
+ }).filter((r) => r.imageCount > 0 || r.videoCount > 0 || r.documentCount > 0).sort((a, b) => b.runId.localeCompare(a.runId));
1606
+ const scenariosDir = path3.join(outputsDir, "scenarios");
1607
+ let scenarios = [];
1608
+ if (fs3.existsSync(scenariosDir) && fs3.statSync(scenariosDir).isDirectory()) {
1609
+ scenarios = collectArtifactFiles(scenariosDir, scenariosDir);
1610
+ }
1611
+ res.json({ configured: true, runs, scenarios });
1602
1612
  } catch (err) {
1603
1613
  res.status(500).json({ error: err.message });
1604
1614
  }
1605
1615
  });
1606
- function countMediaFiles(dir) {
1616
+ function countArtifactFiles(dir) {
1607
1617
  let images = 0;
1608
1618
  let videos = 0;
1619
+ let documents = 0;
1609
1620
  try {
1610
1621
  const walk = (d) => {
1611
1622
  for (const entry of fs3.readdirSync(d, { withFileTypes: true })) {
@@ -1614,16 +1625,23 @@ data: ${JSON.stringify({ time: (/* @__PURE__ */ new Date()).toISOString() })}
1614
1625
  } else {
1615
1626
  const ext = path3.extname(entry.name).toLowerCase();
1616
1627
  if (IMAGE_EXTS.has(ext)) images++;
1617
- if (VIDEO_EXTS.has(ext)) videos++;
1628
+ else if (VIDEO_EXTS.has(ext)) videos++;
1629
+ else if (DOC_EXTS.has(ext)) documents++;
1618
1630
  }
1619
1631
  }
1620
1632
  };
1621
1633
  walk(dir);
1622
1634
  } catch {
1623
1635
  }
1624
- return { images, videos };
1636
+ return { images, videos, documents };
1625
1637
  }
1626
- function collectMediaFiles(dir, base) {
1638
+ function classifyExt(ext) {
1639
+ if (IMAGE_EXTS.has(ext)) return "image";
1640
+ if (VIDEO_EXTS.has(ext)) return "video";
1641
+ if (DOC_EXTS.has(ext)) return "document";
1642
+ return null;
1643
+ }
1644
+ function collectArtifactFiles(dir, base) {
1627
1645
  const result = [];
1628
1646
  try {
1629
1647
  const walk = (d) => {
@@ -1633,12 +1651,13 @@ data: ${JSON.stringify({ time: (/* @__PURE__ */ new Date()).toISOString() })}
1633
1651
  walk(fullPath);
1634
1652
  } else {
1635
1653
  const ext = path3.extname(entry.name).toLowerCase();
1636
- if (MEDIA_EXTS.has(ext)) {
1654
+ const fileType = classifyExt(ext);
1655
+ if (fileType) {
1637
1656
  const stat = fs3.statSync(fullPath);
1638
1657
  result.push({
1639
1658
  name: entry.name,
1640
1659
  relativePath: path3.relative(base, fullPath),
1641
- type: IMAGE_EXTS.has(ext) ? "image" : "video",
1660
+ type: fileType,
1642
1661
  size: stat.size
1643
1662
  });
1644
1663
  }
@@ -1666,9 +1685,42 @@ data: ${JSON.stringify({ time: (/* @__PURE__ */ new Date()).toISOString() })}
1666
1685
  res.status(400).json({ error: "Invalid run ID" });
1667
1686
  return;
1668
1687
  }
1669
- const files = collectMediaFiles(runDir, runDir);
1688
+ const files = collectArtifactFiles(runDir, runDir);
1670
1689
  res.json({ runId: req.params.runId, files });
1671
1690
  });
1691
+ router.get("/api/e2e-scenarios/file/{*filePath}", (req, res) => {
1692
+ const issueIid = req.query.issueIid;
1693
+ const outputsDir = resolveE2eOutputsDir(issueIid);
1694
+ if (!outputsDir) {
1695
+ res.status(404).json({ error: "E2E outputs not configured" });
1696
+ return;
1697
+ }
1698
+ const scenariosDir = path3.join(outputsDir, "scenarios");
1699
+ const rawFilePath = req.params.filePath;
1700
+ const filePath = Array.isArray(rawFilePath) ? rawFilePath.join("/") : String(rawFilePath);
1701
+ const fullPath = path3.resolve(scenariosDir, filePath);
1702
+ if (!fullPath.startsWith(scenariosDir)) {
1703
+ res.status(400).json({ error: "Invalid path" });
1704
+ return;
1705
+ }
1706
+ if (!fs3.existsSync(fullPath)) {
1707
+ res.status(404).json({ error: "File not found" });
1708
+ return;
1709
+ }
1710
+ const ext = path3.extname(fullPath).toLowerCase();
1711
+ const mimeMap = {
1712
+ ".md": "text/markdown; charset=utf-8",
1713
+ ".json": "application/json; charset=utf-8",
1714
+ ".jsonl": "application/x-ndjson; charset=utf-8",
1715
+ ".log": "text/plain; charset=utf-8",
1716
+ ".py": "text/x-python; charset=utf-8",
1717
+ ".html": "text/html; charset=utf-8",
1718
+ ".txt": "text/plain; charset=utf-8"
1719
+ };
1720
+ res.setHeader("Content-Type", mimeMap[ext] ?? "application/octet-stream");
1721
+ res.setHeader("Cache-Control", "public, max-age=86400");
1722
+ fs3.createReadStream(fullPath).pipe(res);
1723
+ });
1672
1724
  router.get("/api/e2e-artifacts/:runId/file/{*filePath}", (req, res) => {
1673
1725
  const issueIid = req.query.issueIid;
1674
1726
  const outputsDir = resolveE2eOutputsDir(issueIid);
@@ -1697,7 +1749,15 @@ data: ${JSON.stringify({ time: (/* @__PURE__ */ new Date()).toISOString() })}
1697
1749
  ".webm": "video/webm",
1698
1750
  ".mp4": "video/mp4",
1699
1751
  ".mkv": "video/x-matroska",
1700
- ".avi": "video/x-msvideo"
1752
+ ".avi": "video/x-msvideo",
1753
+ ".md": "text/markdown; charset=utf-8",
1754
+ ".json": "application/json; charset=utf-8",
1755
+ ".jsonl": "application/x-ndjson; charset=utf-8",
1756
+ ".log": "text/plain; charset=utf-8",
1757
+ ".py": "text/x-python; charset=utf-8",
1758
+ ".html": "text/html; charset=utf-8",
1759
+ ".har": "application/json; charset=utf-8",
1760
+ ".txt": "text/plain; charset=utf-8"
1701
1761
  };
1702
1762
  res.setHeader("Content-Type", mimeMap[ext] ?? "application/octet-stream");
1703
1763
  res.setHeader("Cache-Control", "public, max-age=86400");
@@ -4872,7 +4932,8 @@ var WebServer = class _WebServer {
4872
4932
  distillScheduler: deps.distillScheduler,
4873
4933
  diaryCollector: deps.diaryCollector,
4874
4934
  claimer: deps.claimer,
4875
- configReloader: deps.configReloader
4935
+ configReloader: deps.configReloader,
4936
+ wsConfig: deps.wsConfig
4876
4937
  };
4877
4938
  }
4878
4939
  this.app = express12();
@@ -8345,16 +8406,14 @@ async function main() {
8345
8406
  const mainGitMutex = new AsyncMutex();
8346
8407
  const tracker = new IssueTracker(dataDir, lifecycleManagers, tid);
8347
8408
  if (!primaryTracker) primaryTracker = tracker;
8348
- const wsConfig = tenantDef.workspace ? loadWorkspaceConfig(tenantDef.workspace) : isDefault ? loadWorkspaceConfig(config.workspace.configPath) ?? buildSingleRepoWorkspace(config.project, gongfengConfig.projectPath) : buildSingleRepoWorkspace(
8349
- {
8350
- workDir: tenantDef.overrides?.workDir ?? config.project.workDir,
8351
- gitRootDir,
8352
- baseBranch: tenantDef.overrides?.baseBranch ?? config.project.baseBranch,
8353
- branchPrefix: tenantDef.overrides?.branchPrefix ?? config.project.branchPrefix,
8354
- projectSubDir: tenantDef.overrides?.projectSubDir ?? config.project.projectSubDir
8355
- },
8356
- gongfengConfig.projectPath
8357
- );
8409
+ const projectForTenant = {
8410
+ workDir: tenantDef.overrides?.workDir ?? config.project.workDir,
8411
+ gitRootDir,
8412
+ baseBranch: tenantDef.overrides?.baseBranch ?? config.project.baseBranch,
8413
+ branchPrefix: tenantDef.overrides?.branchPrefix ?? config.project.branchPrefix,
8414
+ projectSubDir: tenantDef.overrides?.projectSubDir ?? config.project.projectSubDir
8415
+ };
8416
+ const wsConfig = tenantDef.workspace ? loadWorkspaceConfig(tenantDef.workspace) ?? buildSingleRepoWorkspace(projectForTenant, gongfengConfig.projectPath) : isDefault ? loadWorkspaceConfig(config.workspace.configPath) ?? buildSingleRepoWorkspace(config.project, gongfengConfig.projectPath) : buildSingleRepoWorkspace(projectForTenant, gongfengConfig.projectPath);
8358
8417
  const orchestrator = new PipelineOrchestrator(
8359
8418
  config,
8360
8419
  gongfeng,
@@ -8538,7 +8597,8 @@ async function main() {
8538
8597
  diaryCollector,
8539
8598
  claimer: primaryTenant.claimer,
8540
8599
  configReloader,
8541
- orphanManager
8600
+ orphanManager,
8601
+ wsConfig: primaryTenant.wsConfig
8542
8602
  });
8543
8603
  await webServer.start();
8544
8604
  }
@@ -8643,4 +8703,4 @@ function migrateKnowledgeDir(srcDir, destDir) {
8643
8703
  export {
8644
8704
  main
8645
8705
  };
8646
- //# sourceMappingURL=chunk-GZ4WQCVM.js.map
8706
+ //# sourceMappingURL=chunk-2FBXAHPE.js.map