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.
- package/dist/index.js +100 -57
- package/dist/mcp/server.js +7 -0
- package/dist/ui/assets/{_baseUniq-DB8JLG-7.js → _baseUniq-Du0IqYzX.js} +1 -1
- package/dist/ui/assets/{arc-D3JraJJX.js → arc-D-ktnYJA.js} +1 -1
- package/dist/ui/assets/{architectureDiagram-VXUJARFQ-BBSyT2gN.js → architectureDiagram-VXUJARFQ-BiGuoKoy.js} +1 -1
- package/dist/ui/assets/{blockDiagram-VD42YOAC-PqZyIWAB.js → blockDiagram-VD42YOAC-RRK4CTU5.js} +1 -1
- package/dist/ui/assets/{c4Diagram-YG6GDRKO-jZjRrruh.js → c4Diagram-YG6GDRKO-C5jqGZ2U.js} +1 -1
- package/dist/ui/assets/channel-BzdA2-FN.js +1 -0
- package/dist/ui/assets/{chunk-4BX2VUAB-BK8wueEk.js → chunk-4BX2VUAB-C5Fu3CG4.js} +1 -1
- package/dist/ui/assets/{chunk-55IACEB6-BP71xByY.js → chunk-55IACEB6-CebXdsz3.js} +1 -1
- package/dist/ui/assets/{chunk-B4BG7PRW-D4z-i8HL.js → chunk-B4BG7PRW-BJO0DPmK.js} +1 -1
- package/dist/ui/assets/{chunk-DI55MBZ5-CcQvt2-Y.js → chunk-DI55MBZ5-p9LdVspI.js} +1 -1
- package/dist/ui/assets/{chunk-FMBD7UC4-Bh6VBsS3.js → chunk-FMBD7UC4-B97L-KXh.js} +1 -1
- package/dist/ui/assets/{chunk-QN33PNHL-xYhvl3A0.js → chunk-QN33PNHL-CPppBKz5.js} +1 -1
- package/dist/ui/assets/{chunk-QZHKN3VN-mm92Ljc_.js → chunk-QZHKN3VN-C4kekSyQ.js} +1 -1
- package/dist/ui/assets/{chunk-TZMSLE5B-CcM6dOSB.js → chunk-TZMSLE5B-ymjpWLqa.js} +1 -1
- package/dist/ui/assets/classDiagram-2ON5EDUG-D4HpLLFN.js +1 -0
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-D4HpLLFN.js +1 -0
- package/dist/ui/assets/clone-57Zib2RP.js +1 -0
- package/dist/ui/assets/{cose-bilkent-S5V4N54A-nyDHhCXv.js → cose-bilkent-S5V4N54A-CYsR6Kq_.js} +1 -1
- package/dist/ui/assets/{dagre-6UL2VRFP-CSRfU1-E.js → dagre-6UL2VRFP-C0L9PyGo.js} +1 -1
- package/dist/ui/assets/{diagram-PSM6KHXK-Cj5NTFso.js → diagram-PSM6KHXK-CmTUjDHL.js} +1 -1
- package/dist/ui/assets/{diagram-QEK2KX5R-D81pG3jQ.js → diagram-QEK2KX5R-Bw2cKBYZ.js} +1 -1
- package/dist/ui/assets/{diagram-S2PKOQOG-r5ryArgb.js → diagram-S2PKOQOG-zEWahTVs.js} +1 -1
- package/dist/ui/assets/{erDiagram-Q2GNP2WA-DoewrMS7.js → erDiagram-Q2GNP2WA-Dj8bTDBX.js} +1 -1
- package/dist/ui/assets/{flowDiagram-NV44I4VS-Drnr0bUV.js → flowDiagram-NV44I4VS-B22n421v.js} +1 -1
- package/dist/ui/assets/{ganttDiagram-JELNMOA3-DlQ72OYn.js → ganttDiagram-JELNMOA3-goiqSy7p.js} +1 -1
- package/dist/ui/assets/{gitGraphDiagram-NY62KEGX-C3NKXLVa.js → gitGraphDiagram-NY62KEGX-B2HqUEw6.js} +1 -1
- package/dist/ui/assets/{graph-83h-zqX9.js → graph-9aCKzfrO.js} +1 -1
- package/dist/ui/assets/{index-CkShQtpS.js → index-BHuIBV1h.js} +4 -4
- package/dist/ui/assets/{index-BDuGtZOD.css → index-C9s-eKdv.css} +1 -1
- package/dist/ui/assets/{infoDiagram-WHAUD3N6-C114Eaeb.js → infoDiagram-WHAUD3N6-CYWj-lEg.js} +1 -1
- package/dist/ui/assets/{journeyDiagram-XKPGCS4Q-BSA4OE-k.js → journeyDiagram-XKPGCS4Q-DEzHsxHd.js} +1 -1
- package/dist/ui/assets/{kanban-definition-3W4ZIXB7-BqkC91Q3.js → kanban-definition-3W4ZIXB7-DUIGpwmT.js} +1 -1
- package/dist/ui/assets/{layout-BiAHerac.js → layout-CYmwiQl5.js} +1 -1
- package/dist/ui/assets/{linear-oj1URUXW.js → linear-MdgoAJ5Z.js} +1 -1
- package/dist/ui/assets/{min-CD3VzU07.js → min-uHkwxlKz.js} +1 -1
- package/dist/ui/assets/{mindmap-definition-VGOIOE7T-Ddm23C9T.js → mindmap-definition-VGOIOE7T-BBIhrB8-.js} +1 -1
- package/dist/ui/assets/{pieDiagram-ADFJNKIX-DaxoGaHE.js → pieDiagram-ADFJNKIX-Dnl8VMhY.js} +1 -1
- package/dist/ui/assets/{quadrantDiagram-AYHSOK5B-Rni3nPex.js → quadrantDiagram-AYHSOK5B-Dl-73ckT.js} +1 -1
- package/dist/ui/assets/{requirementDiagram-UZGBJVZJ-D2dikbJA.js → requirementDiagram-UZGBJVZJ-BJuf161u.js} +1 -1
- package/dist/ui/assets/{sankeyDiagram-TZEHDZUN--oRuH2OQ.js → sankeyDiagram-TZEHDZUN-DqqCTDOb.js} +1 -1
- package/dist/ui/assets/{sequenceDiagram-WL72ISMW-DuVbmgY3.js → sequenceDiagram-WL72ISMW-C2S6TfSB.js} +1 -1
- package/dist/ui/assets/{stateDiagram-FKZM4ZOC-BVWBkx5U.js → stateDiagram-FKZM4ZOC-KKglVJeE.js} +1 -1
- package/dist/ui/assets/stateDiagram-v2-4FDKWEC3-C4Ctk2FB.js +1 -0
- package/dist/ui/assets/{timeline-definition-IT6M3QCI-BkAZRhr6.js → timeline-definition-IT6M3QCI-BmdGylu1.js} +1 -1
- package/dist/ui/assets/{treemap-KMMF4GRG-W4bIZnT3.js → treemap-KMMF4GRG-C4eMqVHc.js} +1 -1
- package/dist/ui/assets/{xychartDiagram-PRI3JC2R-DZar5hOz.js → xychartDiagram-PRI3JC2R-BPTlRQ28.js} +1 -1
- package/dist/ui/index.html +11 -2
- package/package.json +1 -1
- package/dist/ui/assets/channel-BvGlJjzA.js +0 -1
- package/dist/ui/assets/classDiagram-2ON5EDUG-FPWg0UUi.js +0 -1
- package/dist/ui/assets/classDiagram-v2-WZHVMYZB-FPWg0UUi.js +0 -1
- package/dist/ui/assets/clone-Dqu0UfxT.js +0 -1
- 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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
89118
|
-
|
|
89119
|
-
|
|
89120
|
-
|
|
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
|
-
|
|
89123
|
-
|
|
89124
|
-
|
|
89125
|
-
|
|
89126
|
-
}
|
|
89127
|
-
|
|
89128
|
-
|
|
89129
|
-
|
|
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
|
-
|
|
89186
|
+
console.error(`Error: Ports ${port}-${currentPort} are all in use`);
|
|
89187
|
+
reject(err);
|
|
89132
89188
|
}
|
|
89133
|
-
}
|
|
89134
|
-
|
|
89135
|
-
}
|
|
89136
|
-
}
|
|
89137
|
-
resolve3({
|
|
89138
|
-
close: () => {
|
|
89139
|
-
server2.close();
|
|
89189
|
+
} else {
|
|
89190
|
+
reject(err);
|
|
89140
89191
|
}
|
|
89141
89192
|
});
|
|
89142
89193
|
});
|
|
89143
|
-
|
|
89144
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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.
|
|
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",
|
package/dist/mcp/server.js
CHANGED
|
@@ -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-
|
|
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-
|
|
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};
|