knowns 0.11.2 → 0.11.3

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 (55) hide show
  1. package/dist/index.js +100 -57
  2. package/dist/mcp/server.js +7 -0
  3. package/dist/ui/assets/{_baseUniq-DB8JLG-7.js → _baseUniq-Du0IqYzX.js} +1 -1
  4. package/dist/ui/assets/{arc-D3JraJJX.js → arc-D-ktnYJA.js} +1 -1
  5. package/dist/ui/assets/{architectureDiagram-VXUJARFQ-BBSyT2gN.js → architectureDiagram-VXUJARFQ-BiGuoKoy.js} +1 -1
  6. package/dist/ui/assets/{blockDiagram-VD42YOAC-PqZyIWAB.js → blockDiagram-VD42YOAC-RRK4CTU5.js} +1 -1
  7. package/dist/ui/assets/{c4Diagram-YG6GDRKO-jZjRrruh.js → c4Diagram-YG6GDRKO-C5jqGZ2U.js} +1 -1
  8. package/dist/ui/assets/channel-BzdA2-FN.js +1 -0
  9. package/dist/ui/assets/{chunk-4BX2VUAB-BK8wueEk.js → chunk-4BX2VUAB-C5Fu3CG4.js} +1 -1
  10. package/dist/ui/assets/{chunk-55IACEB6-BP71xByY.js → chunk-55IACEB6-CebXdsz3.js} +1 -1
  11. package/dist/ui/assets/{chunk-B4BG7PRW-D4z-i8HL.js → chunk-B4BG7PRW-BJO0DPmK.js} +1 -1
  12. package/dist/ui/assets/{chunk-DI55MBZ5-CcQvt2-Y.js → chunk-DI55MBZ5-p9LdVspI.js} +1 -1
  13. package/dist/ui/assets/{chunk-FMBD7UC4-Bh6VBsS3.js → chunk-FMBD7UC4-B97L-KXh.js} +1 -1
  14. package/dist/ui/assets/{chunk-QN33PNHL-xYhvl3A0.js → chunk-QN33PNHL-CPppBKz5.js} +1 -1
  15. package/dist/ui/assets/{chunk-QZHKN3VN-mm92Ljc_.js → chunk-QZHKN3VN-C4kekSyQ.js} +1 -1
  16. package/dist/ui/assets/{chunk-TZMSLE5B-CcM6dOSB.js → chunk-TZMSLE5B-ymjpWLqa.js} +1 -1
  17. package/dist/ui/assets/classDiagram-2ON5EDUG-D4HpLLFN.js +1 -0
  18. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-D4HpLLFN.js +1 -0
  19. package/dist/ui/assets/clone-57Zib2RP.js +1 -0
  20. package/dist/ui/assets/{cose-bilkent-S5V4N54A-nyDHhCXv.js → cose-bilkent-S5V4N54A-CYsR6Kq_.js} +1 -1
  21. package/dist/ui/assets/{dagre-6UL2VRFP-CSRfU1-E.js → dagre-6UL2VRFP-C0L9PyGo.js} +1 -1
  22. package/dist/ui/assets/{diagram-PSM6KHXK-Cj5NTFso.js → diagram-PSM6KHXK-CmTUjDHL.js} +1 -1
  23. package/dist/ui/assets/{diagram-QEK2KX5R-D81pG3jQ.js → diagram-QEK2KX5R-Bw2cKBYZ.js} +1 -1
  24. package/dist/ui/assets/{diagram-S2PKOQOG-r5ryArgb.js → diagram-S2PKOQOG-zEWahTVs.js} +1 -1
  25. package/dist/ui/assets/{erDiagram-Q2GNP2WA-DoewrMS7.js → erDiagram-Q2GNP2WA-Dj8bTDBX.js} +1 -1
  26. package/dist/ui/assets/{flowDiagram-NV44I4VS-Drnr0bUV.js → flowDiagram-NV44I4VS-B22n421v.js} +1 -1
  27. package/dist/ui/assets/{ganttDiagram-JELNMOA3-DlQ72OYn.js → ganttDiagram-JELNMOA3-goiqSy7p.js} +1 -1
  28. package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-C3NKXLVa.js → gitGraphDiagram-NY62KEGX-B2HqUEw6.js} +1 -1
  29. package/dist/ui/assets/{graph-83h-zqX9.js → graph-9aCKzfrO.js} +1 -1
  30. package/dist/ui/assets/{index-CkShQtpS.js → index-BHuIBV1h.js} +4 -4
  31. package/dist/ui/assets/{index-BDuGtZOD.css → index-C9s-eKdv.css} +1 -1
  32. package/dist/ui/assets/{infoDiagram-WHAUD3N6-C114Eaeb.js → infoDiagram-WHAUD3N6-CYWj-lEg.js} +1 -1
  33. package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-BSA4OE-k.js → journeyDiagram-XKPGCS4Q-DEzHsxHd.js} +1 -1
  34. package/dist/ui/assets/{kanban-definition-3W4ZIXB7-BqkC91Q3.js → kanban-definition-3W4ZIXB7-DUIGpwmT.js} +1 -1
  35. package/dist/ui/assets/{layout-BiAHerac.js → layout-CYmwiQl5.js} +1 -1
  36. package/dist/ui/assets/{linear-oj1URUXW.js → linear-MdgoAJ5Z.js} +1 -1
  37. package/dist/ui/assets/{min-CD3VzU07.js → min-uHkwxlKz.js} +1 -1
  38. package/dist/ui/assets/{mindmap-definition-VGOIOE7T-Ddm23C9T.js → mindmap-definition-VGOIOE7T-BBIhrB8-.js} +1 -1
  39. package/dist/ui/assets/{pieDiagram-ADFJNKIX-DaxoGaHE.js → pieDiagram-ADFJNKIX-Dnl8VMhY.js} +1 -1
  40. package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-Rni3nPex.js → quadrantDiagram-AYHSOK5B-Dl-73ckT.js} +1 -1
  41. package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-D2dikbJA.js → requirementDiagram-UZGBJVZJ-BJuf161u.js} +1 -1
  42. package/dist/ui/assets/{sankeyDiagram-TZEHDZUN--oRuH2OQ.js → sankeyDiagram-TZEHDZUN-DqqCTDOb.js} +1 -1
  43. package/dist/ui/assets/{sequenceDiagram-WL72ISMW-DuVbmgY3.js → sequenceDiagram-WL72ISMW-C2S6TfSB.js} +1 -1
  44. package/dist/ui/assets/{stateDiagram-FKZM4ZOC-BVWBkx5U.js → stateDiagram-FKZM4ZOC-KKglVJeE.js} +1 -1
  45. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-C4Ctk2FB.js +1 -0
  46. package/dist/ui/assets/{timeline-definition-IT6M3QCI-BkAZRhr6.js → timeline-definition-IT6M3QCI-BmdGylu1.js} +1 -1
  47. package/dist/ui/assets/{treemap-KMMF4GRG-W4bIZnT3.js → treemap-KMMF4GRG-C4eMqVHc.js} +1 -1
  48. package/dist/ui/assets/{xychartDiagram-PRI3JC2R-DZar5hOz.js → xychartDiagram-PRI3JC2R-BPTlRQ28.js} +1 -1
  49. package/dist/ui/index.html +11 -2
  50. package/package.json +1 -1
  51. package/dist/ui/assets/channel-BvGlJjzA.js +0 -1
  52. package/dist/ui/assets/classDiagram-2ON5EDUG-FPWg0UUi.js +0 -1
  53. package/dist/ui/assets/classDiagram-v2-WZHVMYZB-FPWg0UUi.js +0 -1
  54. package/dist/ui/assets/clone-Dqu0UfxT.js +0 -1
  55. package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-Dg6UmWxm.js +0 -1
package/dist/index.js CHANGED
@@ -59686,7 +59686,7 @@ function checkGitExists(projectRoot) {
59686
59686
  }
59687
59687
  }
59688
59688
  async function createMcpJsonFile(projectRoot, force = false) {
59689
- const { writeFileSync: writeFileSync4, readFileSync: readFileSync5 } = await import("node:fs");
59689
+ const { writeFileSync: writeFileSync5, readFileSync: readFileSync5 } = await import("node:fs");
59690
59690
  const mcpJsonPath = join6(projectRoot, ".mcp.json");
59691
59691
  const mcpConfig = {
59692
59692
  mcpServers: {
@@ -59707,20 +59707,20 @@ async function createMcpJsonFile(projectRoot, force = false) {
59707
59707
  ...existing.mcpServers,
59708
59708
  ...mcpConfig.mcpServers
59709
59709
  };
59710
- writeFileSync4(mcpJsonPath, JSON.stringify(existing, null, " "), "utf-8");
59710
+ writeFileSync5(mcpJsonPath, JSON.stringify(existing, null, " "), "utf-8");
59711
59711
  const action = force ? "Updated" : "Added";
59712
59712
  console.log(source_default.green(`\u2713 ${action} knowns in .mcp.json`));
59713
59713
  } catch {
59714
- writeFileSync4(mcpJsonPath, JSON.stringify(mcpConfig, null, " "), "utf-8");
59714
+ writeFileSync5(mcpJsonPath, JSON.stringify(mcpConfig, null, " "), "utf-8");
59715
59715
  console.log(source_default.green("\u2713 Created .mcp.json (replaced invalid file)"));
59716
59716
  }
59717
59717
  } else {
59718
- writeFileSync4(mcpJsonPath, JSON.stringify(mcpConfig, null, " "), "utf-8");
59718
+ writeFileSync5(mcpJsonPath, JSON.stringify(mcpConfig, null, " "), "utf-8");
59719
59719
  console.log(source_default.green("\u2713 Created .mcp.json for Claude Code MCP auto-discovery"));
59720
59720
  }
59721
59721
  }
59722
59722
  async function createAntigravityMcpConfig(force = false) {
59723
- const { mkdirSync: mkdirSync2, writeFileSync: writeFileSync4, readFileSync: readFileSync5 } = await import("node:fs");
59723
+ const { mkdirSync: mkdirSync2, writeFileSync: writeFileSync5, readFileSync: readFileSync5 } = await import("node:fs");
59724
59724
  const { homedir: homedir4 } = await import("node:os");
59725
59725
  const homeDir = homedir4();
59726
59726
  const antigravityDir = join6(homeDir, ".gemini", "antigravity");
@@ -59747,20 +59747,20 @@ async function createAntigravityMcpConfig(force = false) {
59747
59747
  ...existing.mcpServers,
59748
59748
  ...mcpConfig.mcpServers
59749
59749
  };
59750
- writeFileSync4(mcpConfigPath, JSON.stringify(existing, null, " "), "utf-8");
59750
+ writeFileSync5(mcpConfigPath, JSON.stringify(existing, null, " "), "utf-8");
59751
59751
  const action = force ? "Updated" : "Added";
59752
59752
  console.log(source_default.green(`\u2713 ${action} knowns in Antigravity MCP config`));
59753
59753
  } catch {
59754
- writeFileSync4(mcpConfigPath, JSON.stringify(mcpConfig, null, " "), "utf-8");
59754
+ writeFileSync5(mcpConfigPath, JSON.stringify(mcpConfig, null, " "), "utf-8");
59755
59755
  console.log(source_default.green("\u2713 Created Antigravity MCP config (replaced invalid file)"));
59756
59756
  }
59757
59757
  } else {
59758
- writeFileSync4(mcpConfigPath, JSON.stringify(mcpConfig, null, " "), "utf-8");
59758
+ writeFileSync5(mcpConfigPath, JSON.stringify(mcpConfig, null, " "), "utf-8");
59759
59759
  console.log(source_default.green("\u2713 Created Antigravity MCP config (~/.gemini/antigravity/mcp_config.json)"));
59760
59760
  }
59761
59761
  }
59762
59762
  async function updateGitignore(projectRoot, mode) {
59763
- const { appendFileSync, readFileSync: readFileSync5, writeFileSync: writeFileSync4 } = await import("node:fs");
59763
+ const { appendFileSync, readFileSync: readFileSync5, writeFileSync: writeFileSync5 } = await import("node:fs");
59764
59764
  const gitignorePath = join6(projectRoot, ".gitignore");
59765
59765
  const patterns = {
59766
59766
  "git-ignored": `
@@ -59785,25 +59785,25 @@ async function updateGitignore(projectRoot, mode) {
59785
59785
  appendFileSync(gitignorePath, knownsIgnorePattern);
59786
59786
  console.log(source_default.green("\u2713 Updated .gitignore with knowns pattern"));
59787
59787
  } else {
59788
- writeFileSync4(gitignorePath, `${knownsIgnorePattern.trim()}
59788
+ writeFileSync5(gitignorePath, `${knownsIgnorePattern.trim()}
59789
59789
  `, "utf-8");
59790
59790
  console.log(source_default.green("\u2713 Created .gitignore with knowns pattern"));
59791
59791
  }
59792
59792
  }
59793
59793
  async function createAgentsMd(projectRoot, force = false) {
59794
- const { writeFileSync: writeFileSync4 } = await import("node:fs");
59794
+ const { writeFileSync: writeFileSync5 } = await import("node:fs");
59795
59795
  const agentsMdPath = join6(projectRoot, "AGENTS.md");
59796
59796
  const exists = existsSync4(agentsMdPath);
59797
59797
  if (exists && !force) {
59798
59798
  console.log(source_default.gray(" AGENTS.md already exists"));
59799
59799
  return;
59800
59800
  }
59801
- writeFileSync4(agentsMdPath, UnifiedGuidelines.getFull(true), "utf-8");
59801
+ writeFileSync5(agentsMdPath, UnifiedGuidelines.getFull(true), "utf-8");
59802
59802
  const action = exists ? "Updated" : "Created";
59803
59803
  console.log(source_default.green(`\u2713 ${action} AGENTS.md (unified CLI + MCP guidelines)`));
59804
59804
  }
59805
59805
  async function createIDEConfig(projectRoot, ideConfig, force = false) {
59806
- const { mkdirSync: mkdirSync2, writeFileSync: writeFileSync4 } = await import("node:fs");
59806
+ const { mkdirSync: mkdirSync2, writeFileSync: writeFileSync5 } = await import("node:fs");
59807
59807
  const targetDir = join6(projectRoot, ideConfig.targetDir);
59808
59808
  let createdCount = 0;
59809
59809
  let updatedCount = 0;
@@ -59821,7 +59821,7 @@ async function createIDEConfig(projectRoot, ideConfig, force = false) {
59821
59821
  if (!existsSync4(fileDir)) {
59822
59822
  mkdirSync2(fileDir, { recursive: true });
59823
59823
  }
59824
- writeFileSync4(filePath, content, "utf-8");
59824
+ writeFileSync5(filePath, content, "utf-8");
59825
59825
  if (exists) {
59826
59826
  updatedCount++;
59827
59827
  } else {
@@ -60153,6 +60153,13 @@ function getServerPort() {
60153
60153
  try {
60154
60154
  const projectRoot = findProjectRoot();
60155
60155
  if (!projectRoot) return DEFAULT_PORT;
60156
+ const portFilePath = join9(projectRoot, ".knowns/.server-port");
60157
+ if (existsSync7(portFilePath)) {
60158
+ const portFromFile = Number.parseInt(readFileSync(portFilePath, "utf-8").trim(), 10);
60159
+ if (!Number.isNaN(portFromFile) && portFromFile > 0) {
60160
+ return portFromFile;
60161
+ }
60162
+ }
60156
60163
  const configPath = join9(projectRoot, ".knowns/config.json");
60157
60164
  if (!existsSync7(configPath)) return DEFAULT_PORT;
60158
60165
  const content = readFileSync(configPath, "utf-8");
@@ -64715,7 +64722,7 @@ import { join as join30 } from "node:path";
64715
64722
 
64716
64723
  // src/server/index.ts
64717
64724
  import { spawn } from "node:child_process";
64718
- import { existsSync as existsSync25, realpathSync as realpathSync2 } from "node:fs";
64725
+ import { existsSync as existsSync25, realpathSync as realpathSync2, unlinkSync, writeFileSync } from "node:fs";
64719
64726
  import { basename as basename3, dirname as dirname7, join as join29 } from "node:path";
64720
64727
  import { fileURLToPath as fileURLToPath4 } from "node:url";
64721
64728
  var import_cors = __toESM(require_lib5(), 1);
@@ -89065,8 +89072,21 @@ data: ${JSON.stringify({ timestamp: Date.now() })}
89065
89072
 
89066
89073
  // src/server/index.ts
89067
89074
  var isBun2 = typeof globalThis.Bun !== "undefined";
89075
+ var isBunStandalone = () => {
89076
+ try {
89077
+ const url2 = import.meta.url;
89078
+ return url2.includes("/$bunfs/") || url2.includes("\\$bunfs\\");
89079
+ } catch {
89080
+ return false;
89081
+ }
89082
+ };
89068
89083
  async function startServer(options2) {
89069
89084
  const { port, projectRoot, open } = options2;
89085
+ if (isBunStandalone()) {
89086
+ throw new Error(
89087
+ "Web UI is not available in standalone binary mode.\nUse npx instead:\n npx knowns browser\n\nOr install globally:\n npm install -g knowns\n knowns browser"
89088
+ );
89089
+ }
89070
89090
  const store = new FileStore(projectRoot);
89071
89091
  const broadcastEvent = (data) => {
89072
89092
  const { type, ...payload } = data;
@@ -89114,42 +89134,65 @@ async function startServer(options2) {
89114
89134
  res.status(404).send("Not Found");
89115
89135
  }
89116
89136
  });
89117
- return new Promise((resolve3, reject) => {
89118
- const server2 = app.listen(port, () => {
89119
- console.log(`\u2713 Server running at http://localhost:${port}`);
89120
- if (open) {
89137
+ const openBrowser = (url2) => {
89138
+ try {
89139
+ if (isBun2) {
89140
+ const openCommand = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
89141
+ Bun.spawn([openCommand, url2]);
89142
+ } else if (process.platform === "darwin") {
89143
+ spawn("open", [url2], { stdio: "ignore" });
89144
+ } else if (process.platform === "win32") {
89145
+ spawn("cmd", ["/c", "start", "", url2], { stdio: "ignore" });
89146
+ } else {
89147
+ spawn("xdg-open", [url2], { stdio: "ignore" });
89148
+ }
89149
+ } catch (error48) {
89150
+ console.error("Failed to open browser:", error48);
89151
+ }
89152
+ };
89153
+ const maxRetries = 10;
89154
+ let currentPort = port;
89155
+ const portFilePath = join29(projectRoot, ".knowns", ".server-port");
89156
+ const tryListen = () => {
89157
+ return new Promise((resolve3, reject) => {
89158
+ const server2 = app.listen(currentPort, () => {
89159
+ if (currentPort !== port) {
89160
+ console.log(`\u26A0 Port ${port} in use, using ${currentPort} instead`);
89161
+ }
89162
+ console.log(`\u2713 Server running at http://localhost:${currentPort}`);
89121
89163
  try {
89122
- const url2 = `http://localhost:${port}`;
89123
- if (isBun2) {
89124
- const openCommand = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
89125
- Bun.spawn([openCommand, url2]);
89126
- } else if (process.platform === "darwin") {
89127
- spawn("open", [url2], { stdio: "ignore" });
89128
- } else if (process.platform === "win32") {
89129
- spawn("cmd", ["/c", "start", "", url2], { stdio: "ignore" });
89164
+ writeFileSync(portFilePath, String(currentPort), "utf-8");
89165
+ } catch {
89166
+ }
89167
+ if (open) {
89168
+ openBrowser(`http://localhost:${currentPort}`);
89169
+ }
89170
+ resolve3({
89171
+ close: () => {
89172
+ try {
89173
+ unlinkSync(portFilePath);
89174
+ } catch {
89175
+ }
89176
+ server2.close();
89177
+ }
89178
+ });
89179
+ });
89180
+ server2.on("error", (err) => {
89181
+ if (err.code === "EADDRINUSE") {
89182
+ if (currentPort - port < maxRetries) {
89183
+ currentPort++;
89184
+ resolve3(tryListen());
89130
89185
  } else {
89131
- spawn("xdg-open", [url2], { stdio: "ignore" });
89186
+ console.error(`Error: Ports ${port}-${currentPort} are all in use`);
89187
+ reject(err);
89132
89188
  }
89133
- } catch (error48) {
89134
- console.error("Failed to open browser:", error48);
89135
- }
89136
- }
89137
- resolve3({
89138
- close: () => {
89139
- server2.close();
89189
+ } else {
89190
+ reject(err);
89140
89191
  }
89141
89192
  });
89142
89193
  });
89143
- server2.on("error", (err) => {
89144
- if (err.code === "EADDRINUSE") {
89145
- console.error(`Error: Port ${port} is already in use`);
89146
- console.error("Please stop the process using this port or choose a different port");
89147
- reject(err);
89148
- } else {
89149
- reject(err);
89150
- }
89151
- });
89152
- });
89194
+ };
89195
+ return tryListen();
89153
89196
  }
89154
89197
 
89155
89198
  // src/commands/browser.ts
@@ -90759,7 +90802,7 @@ var resetCommand = new Command("reset").description("Reset configuration to defa
90759
90802
  var configCommand = new Command("config").description("Manage configuration settings").addCommand(listCommand3).addCommand(getCommand).addCommand(setCommand).addCommand(resetCommand);
90760
90803
 
90761
90804
  // src/commands/sync.ts
90762
- import { existsSync as existsSync29, mkdirSync, readFileSync as readFileSync2, readdirSync as readdirSync3, rmSync as rmSync2, writeFileSync } from "node:fs";
90805
+ import { existsSync as existsSync29, mkdirSync, readFileSync as readFileSync2, readdirSync as readdirSync3, rmSync as rmSync2, writeFileSync as writeFileSync2 } from "node:fs";
90763
90806
  import { join as join33 } from "node:path";
90764
90807
  var PROJECT_ROOT2 = process.cwd();
90765
90808
  function renderSkillContent2(content, mode) {
@@ -90818,7 +90861,7 @@ async function syncSkills2(options2) {
90818
90861
  if (options2.force) {
90819
90862
  const existing = readFileSync2(skillFile, "utf-8");
90820
90863
  if (existing.trim() !== renderedContent.trim()) {
90821
- writeFileSync(skillFile, renderedContent, "utf-8");
90864
+ writeFileSync2(skillFile, renderedContent, "utf-8");
90822
90865
  console.log(source_default.green(`\u2713 Updated: ${skill.name}`));
90823
90866
  updated++;
90824
90867
  } else {
@@ -90833,7 +90876,7 @@ async function syncSkills2(options2) {
90833
90876
  if (!existsSync29(skillFolder)) {
90834
90877
  mkdirSync(skillFolder, { recursive: true });
90835
90878
  }
90836
- writeFileSync(skillFile, renderedContent, "utf-8");
90879
+ writeFileSync2(skillFile, renderedContent, "utf-8");
90837
90880
  console.log(source_default.green(`\u2713 Created: ${skill.name}`));
90838
90881
  created++;
90839
90882
  }
@@ -90885,7 +90928,7 @@ async function syncIDE(options2) {
90885
90928
  if (options2.force) {
90886
90929
  const existing = readFileSync2(filePath, "utf-8");
90887
90930
  if (existing.trim() !== content.trim()) {
90888
- writeFileSync(filePath, content, "utf-8");
90931
+ writeFileSync2(filePath, content, "utf-8");
90889
90932
  console.log(source_default.green(`\u2713 Updated: ${config2.name}/${file3.filename}`));
90890
90933
  updated++;
90891
90934
  } else {
@@ -90900,7 +90943,7 @@ async function syncIDE(options2) {
90900
90943
  if (!existsSync29(fileDir)) {
90901
90944
  mkdirSync(fileDir, { recursive: true });
90902
90945
  }
90903
- writeFileSync(filePath, content, "utf-8");
90946
+ writeFileSync2(filePath, content, "utf-8");
90904
90947
  console.log(source_default.green(`\u2713 Created: ${config2.name}/${file3.filename}`));
90905
90948
  created++;
90906
90949
  }
@@ -90989,7 +91032,7 @@ syncCommand.addCommand(agentSubcommand);
90989
91032
  syncCommand.addCommand(ideSubcommand);
90990
91033
 
90991
91034
  // src/commands/mcp.ts
90992
- import { existsSync as existsSync37, readFileSync as readFileSync3, writeFileSync as writeFileSync2 } from "node:fs";
91035
+ import { existsSync as existsSync37, readFileSync as readFileSync3, writeFileSync as writeFileSync3 } from "node:fs";
90993
91036
  import { join as join42 } from "node:path";
90994
91037
 
90995
91038
  // src/mcp/server.ts
@@ -100976,14 +101019,14 @@ function createProjectMcpJson(projectRoot) {
100976
101019
  ...existing.mcpServers,
100977
101020
  ...mcpConfig.mcpServers
100978
101021
  };
100979
- writeFileSync2(mcpJsonPath, JSON.stringify(existing, null, " "), "utf-8");
101022
+ writeFileSync3(mcpJsonPath, JSON.stringify(existing, null, " "), "utf-8");
100980
101023
  console.log(source_default.green("\u2713 Added knowns to existing .mcp.json"));
100981
101024
  } catch {
100982
- writeFileSync2(mcpJsonPath, JSON.stringify(mcpConfig, null, " "), "utf-8");
101025
+ writeFileSync3(mcpJsonPath, JSON.stringify(mcpConfig, null, " "), "utf-8");
100983
101026
  console.log(source_default.green("\u2713 Created .mcp.json (replaced invalid file)"));
100984
101027
  }
100985
101028
  } else {
100986
- writeFileSync2(mcpJsonPath, JSON.stringify(mcpConfig, null, " "), "utf-8");
101029
+ writeFileSync3(mcpJsonPath, JSON.stringify(mcpConfig, null, " "), "utf-8");
100987
101030
  console.log(source_default.green("\u2713 Created .mcp.json for Claude Code project-level auto-discovery"));
100988
101031
  }
100989
101032
  return true;
@@ -102901,7 +102944,7 @@ ${summaryParts.join(", ")}`);
102901
102944
  );
102902
102945
 
102903
102946
  // src/utils/update-notifier.ts
102904
- import { existsSync as existsSync41, readFileSync as readFileSync4, writeFileSync as writeFileSync3 } from "node:fs";
102947
+ import { existsSync as existsSync41, readFileSync as readFileSync4, writeFileSync as writeFileSync4 } from "node:fs";
102905
102948
  import { mkdir as mkdir21 } from "node:fs/promises";
102906
102949
  import { homedir as homedir3 } from "node:os";
102907
102950
  import { dirname as dirname8, join as join46 } from "node:path";
@@ -102964,7 +103007,7 @@ async function writeCache(cachePath, data) {
102964
103007
  if (dir && !existsSync41(dir)) {
102965
103008
  await mkdir21(dir, { recursive: true });
102966
103009
  }
102967
- writeFileSync3(cachePath, JSON.stringify(data, null, 2), "utf-8");
103010
+ writeFileSync4(cachePath, JSON.stringify(data, null, 2), "utf-8");
102968
103011
  }
102969
103012
  async function fetchLatestVersion(packageName) {
102970
103013
  try {
@@ -103032,7 +103075,7 @@ async function notifyCliUpdate(options2) {
103032
103075
  // package.json
103033
103076
  var package_default = {
103034
103077
  name: "knowns",
103035
- version: "0.11.2",
103078
+ version: "0.11.3",
103036
103079
  description: "AI-native task and documentation management for dev teams",
103037
103080
  module: "index.ts",
103038
103081
  type: "module",
@@ -50445,6 +50445,13 @@ function getServerPort() {
50445
50445
  try {
50446
50446
  const projectRoot = findProjectRoot();
50447
50447
  if (!projectRoot) return DEFAULT_PORT;
50448
+ const portFilePath = join4(projectRoot, ".knowns/.server-port");
50449
+ if (existsSync2(portFilePath)) {
50450
+ const portFromFile = Number.parseInt(readFileSync(portFilePath, "utf-8").trim(), 10);
50451
+ if (!Number.isNaN(portFromFile) && portFromFile > 0) {
50452
+ return portFromFile;
50453
+ }
50454
+ }
50448
50455
  const configPath = join4(projectRoot, ".knowns/config.json");
50449
50456
  if (!existsSync2(configPath)) return DEFAULT_PORT;
50450
50457
  const content = readFileSync(configPath, "utf-8");
@@ -1 +1 @@
1
- import{aV as L,br as ln,aE as A,aT as P,bs as gn,bt as dn,aD as W,bu as hn,bv as z,bw as pn,bm as An,bx as m,aW as N,a$ as U,b2 as T,by as _n,aZ as on,bz as wn,bp as On,aF as V,bn as vn,bA as I}from"./index-CkShQtpS.js";var Pn="[object Symbol]";function x(n){return typeof n=="symbol"||L(n)&&ln(n)==Pn}function yn(n,r){for(var e=-1,i=n==null?0:n.length,f=Array(i);++e<i;)f[e]=r(n[e],e,n);return f}var B=P?P.prototype:void 0,K=B?B.toString:void 0;function k(n){if(typeof n=="string")return n;if(A(n))return yn(n,k)+"";if(x(n))return K?K.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function En(){}function bn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i&&r(n[e],e,n)!==!1;);return n}function cn(n,r,e,i){for(var f=n.length,t=e+-1;++t<f;)if(r(n[t],t,n))return t;return-1}function Tn(n){return n!==n}function Rn(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function In(n,r,e){return r===r?Rn(n,r,e):cn(n,Tn,e)}function Sn(n,r){var e=n==null?0:n.length;return!!e&&In(n,r,0)>-1}function M(n){return W(n)?gn(n):dn(n)}var Ln=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xn=/^\w*$/;function $(n,r){if(A(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||x(n)?!0:xn.test(n)||!Ln.test(n)||r!=null&&n in Object(r)}var Mn=500;function $n(n){var r=hn(n,function(i){return e.size===Mn&&e.clear(),i}),e=r.cache;return r}var Cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Dn=/\\(\\)?/g,Fn=$n(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Cn,function(e,i,f,t){r.push(f?t.replace(Dn,"$1"):i||e)}),r});function Gn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:$(n,r)?[n]:Fn(Gn(n))}function R(n){if(typeof n=="string"||x(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function nn(n,r){r=j(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[R(r[e++])];return e&&e==i?n:void 0}function mn(n,r,e){var i=n==null?void 0:nn(n,r);return i===void 0?e:i}function rn(n,r){for(var e=-1,i=r.length,f=n.length;++e<i;)n[f+e]=r[e];return n}var H=P?P.isConcatSpreadable:void 0;function Nn(n){return A(n)||z(n)||!!(H&&n&&n[H])}function Hr(n,r,e,i,f){var t=-1,s=n.length;for(e||(e=Nn),f||(f=[]);++t<s;){var u=n[t];e(u)?rn(f,u):i||(f[f.length]=u)}return f}function Un(n,r,e,i){var f=-1,t=n==null?0:n.length;for(i&&t&&(e=n[++f]);++f<t;)e=r(e,n[f],f,n);return e}function en(n,r){for(var e=-1,i=n==null?0:n.length,f=0,t=[];++e<i;){var s=n[e];r(s,e,n)&&(t[f++]=s)}return t}function Bn(){return[]}var Kn=Object.prototype,Hn=Kn.propertyIsEnumerable,Z=Object.getOwnPropertySymbols,Zn=Z?function(n){return n==null?[]:(n=Object(n),en(Z(n),function(r){return Hn.call(n,r)}))}:Bn;function qn(n,r,e){var i=r(n);return A(n)?i:rn(i,e(n))}function q(n){return qn(n,M,Zn)}var Yn="__lodash_hash_undefined__";function Xn(n){return this.__data__.set(n,Yn),this}function Jn(n){return this.__data__.has(n)}function y(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new pn;++r<e;)this.add(n[r])}y.prototype.add=y.prototype.push=Xn;y.prototype.has=Jn;function Qn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i;)if(r(n[e],e,n))return!0;return!1}function tn(n,r){return n.has(r)}var Wn=1,zn=2;function fn(n,r,e,i,f,t){var s=e&Wn,u=n.length,a=r.length;if(u!=a&&!(s&&a>u))return!1;var h=t.get(n),g=t.get(r);if(h&&g)return h==r&&g==n;var l=-1,d=!0,o=e&zn?new y:void 0;for(t.set(n,r),t.set(r,n);++l<u;){var p=n[l],_=r[l];if(i)var w=s?i(_,p,l,r,n,t):i(p,_,l,n,r,t);if(w!==void 0){if(w)continue;d=!1;break}if(o){if(!Qn(r,function(O,v){if(!tn(o,v)&&(p===O||f(p,O,e,i,t)))return o.push(v)})){d=!1;break}}else if(!(p===_||f(p,_,e,i,t))){d=!1;break}}return t.delete(n),t.delete(r),d}function Vn(n){var r=-1,e=Array(n.size);return n.forEach(function(i,f){e[++r]=[f,i]}),e}function C(n){var r=-1,e=Array(n.size);return n.forEach(function(i){e[++r]=i}),e}var kn=1,jn=2,nr="[object Boolean]",rr="[object Date]",er="[object Error]",ir="[object Map]",tr="[object Number]",fr="[object RegExp]",sr="[object Set]",ur="[object String]",ar="[object Symbol]",lr="[object ArrayBuffer]",gr="[object DataView]",Y=P?P.prototype:void 0,S=Y?Y.valueOf:void 0;function dr(n,r,e,i,f,t,s){switch(e){case gr:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case lr:return!(n.byteLength!=r.byteLength||!t(new m(n),new m(r)));case nr:case rr:case tr:return An(+n,+r);case er:return n.name==r.name&&n.message==r.message;case fr:case ur:return n==r+"";case ir:var u=Vn;case sr:var a=i&kn;if(u||(u=C),n.size!=r.size&&!a)return!1;var h=s.get(n);if(h)return h==r;i|=jn,s.set(n,r);var g=fn(u(n),u(r),i,f,t,s);return s.delete(n),g;case ar:if(S)return S.call(n)==S.call(r)}return!1}var hr=1,pr=Object.prototype,Ar=pr.hasOwnProperty;function _r(n,r,e,i,f,t){var s=e&hr,u=q(n),a=u.length,h=q(r),g=h.length;if(a!=g&&!s)return!1;for(var l=a;l--;){var d=u[l];if(!(s?d in r:Ar.call(r,d)))return!1}var o=t.get(n),p=t.get(r);if(o&&p)return o==r&&p==n;var _=!0;t.set(n,r),t.set(r,n);for(var w=s;++l<a;){d=u[l];var O=n[d],v=r[d];if(i)var G=s?i(v,O,d,r,n,t):i(O,v,d,n,r,t);if(!(G===void 0?O===v||f(O,v,e,i,t):G)){_=!1;break}w||(w=d=="constructor")}if(_&&!w){var E=n.constructor,b=r.constructor;E!=b&&"constructor"in n&&"constructor"in r&&!(typeof E=="function"&&E instanceof E&&typeof b=="function"&&b instanceof b)&&(_=!1)}return t.delete(n),t.delete(r),_}var or=1,X="[object Arguments]",J="[object Array]",c="[object Object]",wr=Object.prototype,Q=wr.hasOwnProperty;function Or(n,r,e,i,f,t){var s=A(n),u=A(r),a=s?J:N(n),h=u?J:N(r);a=a==X?c:a,h=h==X?c:h;var g=a==c,l=h==c,d=a==h;if(d&&U(n)){if(!U(r))return!1;s=!0,g=!1}if(d&&!g)return t||(t=new T),s||_n(n)?fn(n,r,e,i,f,t):dr(n,r,a,e,i,f,t);if(!(e&or)){var o=g&&Q.call(n,"__wrapped__"),p=l&&Q.call(r,"__wrapped__");if(o||p){var _=o?n.value():n,w=p?r.value():r;return t||(t=new T),f(_,w,e,i,t)}}return d?(t||(t=new T),_r(n,r,e,i,f,t)):!1}function D(n,r,e,i,f){return n===r?!0:n==null||r==null||!L(n)&&!L(r)?n!==n&&r!==r:Or(n,r,e,i,D,f)}var vr=1,Pr=2;function yr(n,r,e,i){var f=e.length,t=f;if(n==null)return!t;for(n=Object(n);f--;){var s=e[f];if(s[2]?s[1]!==n[s[0]]:!(s[0]in n))return!1}for(;++f<t;){s=e[f];var u=s[0],a=n[u],h=s[1];if(s[2]){if(a===void 0&&!(u in n))return!1}else{var g=new T,l;if(!(l===void 0?D(h,a,vr|Pr,i,g):l))return!1}}return!0}function sn(n){return n===n&&!on(n)}function Er(n){for(var r=M(n),e=r.length;e--;){var i=r[e],f=n[i];r[e]=[i,f,sn(f)]}return r}function un(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function br(n){var r=Er(n);return r.length==1&&r[0][2]?un(r[0][0],r[0][1]):function(e){return e===n||yr(e,n,r)}}function cr(n,r){return n!=null&&r in Object(n)}function Tr(n,r,e){r=j(r,n);for(var i=-1,f=r.length,t=!1;++i<f;){var s=R(r[i]);if(!(t=n!=null&&e(n,s)))break;n=n[s]}return t||++i!=f?t:(f=n==null?0:n.length,!!f&&wn(f)&&On(s,f)&&(A(n)||z(n)))}function Rr(n,r){return n!=null&&Tr(n,r,cr)}var Ir=1,Sr=2;function Lr(n,r){return $(n)&&sn(r)?un(R(n),r):function(e){var i=mn(e,n);return i===void 0&&i===r?Rr(e,n):D(r,i,Ir|Sr)}}function xr(n){return function(r){return r?.[n]}}function Mr(n){return function(r){return nn(r,n)}}function $r(n){return $(n)?xr(R(n)):Mr(n)}function an(n){return typeof n=="function"?n:n==null?V:typeof n=="object"?A(n)?Lr(n[0],n[1]):br(n):$r(n)}function Cr(n,r){return n&&vn(n,r,M)}function Dr(n,r){return function(e,i){if(e==null)return e;if(!W(e))return n(e,i);for(var f=e.length,t=-1,s=Object(e);++t<f&&i(s[t],t,s)!==!1;);return e}}var F=Dr(Cr);function Fr(n){return typeof n=="function"?n:V}function Zr(n,r){var e=A(n)?bn:F;return e(n,Fr(r))}function Gr(n,r){var e=[];return F(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function qr(n,r){var e=A(n)?en:Gr;return e(n,an(r))}function mr(n,r,e,i,f){return f(n,function(t,s,u){e=i?(i=!1,t):r(e,t,s,u)}),e}function Yr(n,r,e){var i=A(n)?Un:mr,f=arguments.length<3;return i(n,an(r),e,f,F)}var Nr=1/0,Ur=I&&1/C(new I([,-0]))[1]==Nr?function(n){return new I(n)}:En,Br=200;function Xr(n,r,e){var i=-1,f=Sn,t=n.length,s=!0,u=[],a=u;if(t>=Br){var h=r?null:Ur(n);if(h)return C(h);s=!1,f=tn,a=new y}else a=r?[]:u;n:for(;++i<t;){var g=n[i],l=r?r(g):g;if(g=g!==0?g:0,s&&l===l){for(var d=a.length;d--;)if(a[d]===l)continue n;r&&a.push(l),u.push(g)}else f(a,l,e)||(a!==u&&a.push(l),u.push(g))}return u}export{F as a,Hr as b,yn as c,an as d,rn as e,qn as f,Zn as g,q as h,x as i,bn as j,M as k,Xr as l,qr as m,Zr as n,cn as o,Fr as p,Cr as q,Yr as r,Bn as s,Tr as t,j as u,R as v,nn as w,Rr as x,Gn as y};
1
+ import{aV as L,br as ln,aE as A,aT as P,bs as gn,bt as dn,aD as W,bu as hn,bv as z,bw as pn,bm as An,bx as m,aW as N,a$ as U,b2 as T,by as _n,aZ as on,bz as wn,bp as On,aF as V,bn as vn,bA as I}from"./index-BHuIBV1h.js";var Pn="[object Symbol]";function x(n){return typeof n=="symbol"||L(n)&&ln(n)==Pn}function yn(n,r){for(var e=-1,i=n==null?0:n.length,f=Array(i);++e<i;)f[e]=r(n[e],e,n);return f}var B=P?P.prototype:void 0,K=B?B.toString:void 0;function k(n){if(typeof n=="string")return n;if(A(n))return yn(n,k)+"";if(x(n))return K?K.call(n):"";var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function En(){}function bn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i&&r(n[e],e,n)!==!1;);return n}function cn(n,r,e,i){for(var f=n.length,t=e+-1;++t<f;)if(r(n[t],t,n))return t;return-1}function Tn(n){return n!==n}function Rn(n,r,e){for(var i=e-1,f=n.length;++i<f;)if(n[i]===r)return i;return-1}function In(n,r,e){return r===r?Rn(n,r,e):cn(n,Tn,e)}function Sn(n,r){var e=n==null?0:n.length;return!!e&&In(n,r,0)>-1}function M(n){return W(n)?gn(n):dn(n)}var Ln=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xn=/^\w*$/;function $(n,r){if(A(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||x(n)?!0:xn.test(n)||!Ln.test(n)||r!=null&&n in Object(r)}var Mn=500;function $n(n){var r=hn(n,function(i){return e.size===Mn&&e.clear(),i}),e=r.cache;return r}var Cn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Dn=/\\(\\)?/g,Fn=$n(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Cn,function(e,i,f,t){r.push(f?t.replace(Dn,"$1"):i||e)}),r});function Gn(n){return n==null?"":k(n)}function j(n,r){return A(n)?n:$(n,r)?[n]:Fn(Gn(n))}function R(n){if(typeof n=="string"||x(n))return n;var r=n+"";return r=="0"&&1/n==-1/0?"-0":r}function nn(n,r){r=j(r,n);for(var e=0,i=r.length;n!=null&&e<i;)n=n[R(r[e++])];return e&&e==i?n:void 0}function mn(n,r,e){var i=n==null?void 0:nn(n,r);return i===void 0?e:i}function rn(n,r){for(var e=-1,i=r.length,f=n.length;++e<i;)n[f+e]=r[e];return n}var H=P?P.isConcatSpreadable:void 0;function Nn(n){return A(n)||z(n)||!!(H&&n&&n[H])}function Hr(n,r,e,i,f){var t=-1,s=n.length;for(e||(e=Nn),f||(f=[]);++t<s;){var u=n[t];e(u)?rn(f,u):i||(f[f.length]=u)}return f}function Un(n,r,e,i){var f=-1,t=n==null?0:n.length;for(i&&t&&(e=n[++f]);++f<t;)e=r(e,n[f],f,n);return e}function en(n,r){for(var e=-1,i=n==null?0:n.length,f=0,t=[];++e<i;){var s=n[e];r(s,e,n)&&(t[f++]=s)}return t}function Bn(){return[]}var Kn=Object.prototype,Hn=Kn.propertyIsEnumerable,Z=Object.getOwnPropertySymbols,Zn=Z?function(n){return n==null?[]:(n=Object(n),en(Z(n),function(r){return Hn.call(n,r)}))}:Bn;function qn(n,r,e){var i=r(n);return A(n)?i:rn(i,e(n))}function q(n){return qn(n,M,Zn)}var Yn="__lodash_hash_undefined__";function Xn(n){return this.__data__.set(n,Yn),this}function Jn(n){return this.__data__.has(n)}function y(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new pn;++r<e;)this.add(n[r])}y.prototype.add=y.prototype.push=Xn;y.prototype.has=Jn;function Qn(n,r){for(var e=-1,i=n==null?0:n.length;++e<i;)if(r(n[e],e,n))return!0;return!1}function tn(n,r){return n.has(r)}var Wn=1,zn=2;function fn(n,r,e,i,f,t){var s=e&Wn,u=n.length,a=r.length;if(u!=a&&!(s&&a>u))return!1;var h=t.get(n),g=t.get(r);if(h&&g)return h==r&&g==n;var l=-1,d=!0,o=e&zn?new y:void 0;for(t.set(n,r),t.set(r,n);++l<u;){var p=n[l],_=r[l];if(i)var w=s?i(_,p,l,r,n,t):i(p,_,l,n,r,t);if(w!==void 0){if(w)continue;d=!1;break}if(o){if(!Qn(r,function(O,v){if(!tn(o,v)&&(p===O||f(p,O,e,i,t)))return o.push(v)})){d=!1;break}}else if(!(p===_||f(p,_,e,i,t))){d=!1;break}}return t.delete(n),t.delete(r),d}function Vn(n){var r=-1,e=Array(n.size);return n.forEach(function(i,f){e[++r]=[f,i]}),e}function C(n){var r=-1,e=Array(n.size);return n.forEach(function(i){e[++r]=i}),e}var kn=1,jn=2,nr="[object Boolean]",rr="[object Date]",er="[object Error]",ir="[object Map]",tr="[object Number]",fr="[object RegExp]",sr="[object Set]",ur="[object String]",ar="[object Symbol]",lr="[object ArrayBuffer]",gr="[object DataView]",Y=P?P.prototype:void 0,S=Y?Y.valueOf:void 0;function dr(n,r,e,i,f,t,s){switch(e){case gr:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case lr:return!(n.byteLength!=r.byteLength||!t(new m(n),new m(r)));case nr:case rr:case tr:return An(+n,+r);case er:return n.name==r.name&&n.message==r.message;case fr:case ur:return n==r+"";case ir:var u=Vn;case sr:var a=i&kn;if(u||(u=C),n.size!=r.size&&!a)return!1;var h=s.get(n);if(h)return h==r;i|=jn,s.set(n,r);var g=fn(u(n),u(r),i,f,t,s);return s.delete(n),g;case ar:if(S)return S.call(n)==S.call(r)}return!1}var hr=1,pr=Object.prototype,Ar=pr.hasOwnProperty;function _r(n,r,e,i,f,t){var s=e&hr,u=q(n),a=u.length,h=q(r),g=h.length;if(a!=g&&!s)return!1;for(var l=a;l--;){var d=u[l];if(!(s?d in r:Ar.call(r,d)))return!1}var o=t.get(n),p=t.get(r);if(o&&p)return o==r&&p==n;var _=!0;t.set(n,r),t.set(r,n);for(var w=s;++l<a;){d=u[l];var O=n[d],v=r[d];if(i)var G=s?i(v,O,d,r,n,t):i(O,v,d,n,r,t);if(!(G===void 0?O===v||f(O,v,e,i,t):G)){_=!1;break}w||(w=d=="constructor")}if(_&&!w){var E=n.constructor,b=r.constructor;E!=b&&"constructor"in n&&"constructor"in r&&!(typeof E=="function"&&E instanceof E&&typeof b=="function"&&b instanceof b)&&(_=!1)}return t.delete(n),t.delete(r),_}var or=1,X="[object Arguments]",J="[object Array]",c="[object Object]",wr=Object.prototype,Q=wr.hasOwnProperty;function Or(n,r,e,i,f,t){var s=A(n),u=A(r),a=s?J:N(n),h=u?J:N(r);a=a==X?c:a,h=h==X?c:h;var g=a==c,l=h==c,d=a==h;if(d&&U(n)){if(!U(r))return!1;s=!0,g=!1}if(d&&!g)return t||(t=new T),s||_n(n)?fn(n,r,e,i,f,t):dr(n,r,a,e,i,f,t);if(!(e&or)){var o=g&&Q.call(n,"__wrapped__"),p=l&&Q.call(r,"__wrapped__");if(o||p){var _=o?n.value():n,w=p?r.value():r;return t||(t=new T),f(_,w,e,i,t)}}return d?(t||(t=new T),_r(n,r,e,i,f,t)):!1}function D(n,r,e,i,f){return n===r?!0:n==null||r==null||!L(n)&&!L(r)?n!==n&&r!==r:Or(n,r,e,i,D,f)}var vr=1,Pr=2;function yr(n,r,e,i){var f=e.length,t=f;if(n==null)return!t;for(n=Object(n);f--;){var s=e[f];if(s[2]?s[1]!==n[s[0]]:!(s[0]in n))return!1}for(;++f<t;){s=e[f];var u=s[0],a=n[u],h=s[1];if(s[2]){if(a===void 0&&!(u in n))return!1}else{var g=new T,l;if(!(l===void 0?D(h,a,vr|Pr,i,g):l))return!1}}return!0}function sn(n){return n===n&&!on(n)}function Er(n){for(var r=M(n),e=r.length;e--;){var i=r[e],f=n[i];r[e]=[i,f,sn(f)]}return r}function un(n,r){return function(e){return e==null?!1:e[n]===r&&(r!==void 0||n in Object(e))}}function br(n){var r=Er(n);return r.length==1&&r[0][2]?un(r[0][0],r[0][1]):function(e){return e===n||yr(e,n,r)}}function cr(n,r){return n!=null&&r in Object(n)}function Tr(n,r,e){r=j(r,n);for(var i=-1,f=r.length,t=!1;++i<f;){var s=R(r[i]);if(!(t=n!=null&&e(n,s)))break;n=n[s]}return t||++i!=f?t:(f=n==null?0:n.length,!!f&&wn(f)&&On(s,f)&&(A(n)||z(n)))}function Rr(n,r){return n!=null&&Tr(n,r,cr)}var Ir=1,Sr=2;function Lr(n,r){return $(n)&&sn(r)?un(R(n),r):function(e){var i=mn(e,n);return i===void 0&&i===r?Rr(e,n):D(r,i,Ir|Sr)}}function xr(n){return function(r){return r?.[n]}}function Mr(n){return function(r){return nn(r,n)}}function $r(n){return $(n)?xr(R(n)):Mr(n)}function an(n){return typeof n=="function"?n:n==null?V:typeof n=="object"?A(n)?Lr(n[0],n[1]):br(n):$r(n)}function Cr(n,r){return n&&vn(n,r,M)}function Dr(n,r){return function(e,i){if(e==null)return e;if(!W(e))return n(e,i);for(var f=e.length,t=-1,s=Object(e);++t<f&&i(s[t],t,s)!==!1;);return e}}var F=Dr(Cr);function Fr(n){return typeof n=="function"?n:V}function Zr(n,r){var e=A(n)?bn:F;return e(n,Fr(r))}function Gr(n,r){var e=[];return F(n,function(i,f,t){r(i,f,t)&&e.push(i)}),e}function qr(n,r){var e=A(n)?en:Gr;return e(n,an(r))}function mr(n,r,e,i,f){return f(n,function(t,s,u){e=i?(i=!1,t):r(e,t,s,u)}),e}function Yr(n,r,e){var i=A(n)?Un:mr,f=arguments.length<3;return i(n,an(r),e,f,F)}var Nr=1/0,Ur=I&&1/C(new I([,-0]))[1]==Nr?function(n){return new I(n)}:En,Br=200;function Xr(n,r,e){var i=-1,f=Sn,t=n.length,s=!0,u=[],a=u;if(t>=Br){var h=r?null:Ur(n);if(h)return C(h);s=!1,f=tn,a=new y}else a=r?[]:u;n:for(;++i<t;){var g=n[i],l=r?r(g):g;if(g=g!==0?g:0,s&&l===l){for(var d=a.length;d--;)if(a[d]===l)continue n;r&&a.push(l),u.push(g)}else f(a,l,e)||(a!==u&&a.push(l),u.push(g))}return u}export{F as a,Hr as b,yn as c,an as d,rn as e,qn as f,Zn as g,q as h,x as i,bn as j,M as k,Xr as l,qr as m,Zr as n,cn as o,Fr as p,Cr as q,Yr as r,Bn as s,Tr as t,j as u,R as v,nn as w,Rr as x,Gn as y};
@@ -1 +1 @@
1
- import{a0 as ln,a1 as an,a2 as y,a3 as tn,a4 as H,a5 as q,a6 as _,a7 as un,a8 as B,a9 as rn,aa as L,ab as o,ac as sn,ad as on,ae as fn}from"./index-CkShQtpS.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,C,a){var O=I-l,i=D-h,n=C-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*L(fn(0,T*T*R-P*P)),j=(P*g-m*S)/R,z=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=yn,I=B(0),D=null,v=gn,A=dn,C=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,F=un(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(F>tn-y)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>y&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(un(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>y){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>y?(M*=t?1:-1,m+=M,g-=M):(S=0,m=g=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>y){var U=s*H(g),V=s*q(g),X=u*H(R),Y=u*q(R),E;if(F<rn)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(on((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(J,K),a.arc(0,0,s,m,g,!t)):a.moveTo(J,K),!(u>y)||!(P>y)?a.lineTo(N,Q):p>y?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{a0 as ln,a1 as an,a2 as y,a3 as tn,a4 as H,a5 as q,a6 as _,a7 as un,a8 as B,a9 as rn,aa as L,ab as o,ac as sn,ad as on,ae as fn}from"./index-BHuIBV1h.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,C,a){var O=I-l,i=D-h,n=C-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function W(l,h,I,D,v,A,C){var a=l-I,O=h-D,i=(C?A:-A)/L(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,F=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*L(fn(0,T*T*R-P*P)),j=(P*g-m*S)/R,z=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=j-F,e=z-t,r=w-F,G=p-t;return x*x+e*e>r*r+G*G&&(j=w,z=p),{cx:j,cy:z,x01:-n,y01:-d,x11:j*(v/T-1),y11:z*(v/T-1)}}function hn(){var l=cn,h=yn,I=B(0),D=null,v=gn,A=dn,C=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,F=un(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(F>tn-y)a.moveTo(s*H(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*H(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=F,S=F,j=C.apply(this,arguments)/2,z=j>y&&(D?+D.apply(this,arguments):L(u*u+s*s)),w=_(un(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if(z>y){var G=sn(z/u*q(j)),M=sn(z/s*q(j));(P-=G*2)>y?(G*=t?1:-1,R+=G,T-=G):(P=0,R=T=(f+c)/2),(S-=M*2)>y?(M*=t?1:-1,m+=M,g-=M):(S=0,m=g=(f+c)/2)}var J=s*H(m),K=s*q(m),N=u*H(T),Q=u*q(T);if(w>y){var U=s*H(g),V=s*q(g),X=u*H(R),Y=u*q(R),E;if(F<rn)if(E=pn(J,K,X,Y,U,V,N,Q)){var Z=J-E[0],$=K-E[1],b=U-E[0],k=V-E[1],nn=1/q(on((Z*b+$*k)/(L(Z*Z+$*$)*L(b*b+k*k)))/2),en=L(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(J,K),a.arc(0,0,s,m,g,!t)):a.moveTo(J,K),!(u>y)||!(P>y)?a.lineTo(N,Q):p>y?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[H(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:B(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:B(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:B(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:B(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:B(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:B(+n),i):A},i.padAngle=function(n){return arguments.length?(C=typeof n=="function"?n:B(+n),i):C},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};