kb-tool 0.1.11 → 0.1.13

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.
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function makeDepsCommand(): Command;
3
+ //# sourceMappingURL=deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../../src/commands/deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,wBAAgB,eAAe,IAAI,OAAO,CAiEzC"}
@@ -0,0 +1,75 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import { join } from "node:path";
4
+ import { loadProject, resolveDependencies, indexProject, updateGitDep, } from "kb-core";
5
+ function printDepTree(deps, indent = 0) {
6
+ for (const dep of deps) {
7
+ const prefix = " ".repeat(indent);
8
+ const modeTag = dep.mode === "readonly"
9
+ ? chalk.gray("[readonly]")
10
+ : chalk.green("[readwrite]");
11
+ console.log(`${prefix}${chalk.cyan(dep.name)} ${modeTag} ${chalk.white(dep.project.root)}`);
12
+ if (dep.project.dependencies && dep.project.dependencies.length > 0) {
13
+ printDepTree(dep.project.dependencies, indent + 1);
14
+ }
15
+ }
16
+ }
17
+ export function makeDepsCommand() {
18
+ const cmd = new Command("deps");
19
+ cmd.description("Manage project dependencies");
20
+ cmd
21
+ .command("show", { isDefault: true })
22
+ .description("Show resolved dependency tree")
23
+ .action(async () => {
24
+ try {
25
+ const project = await loadProject(process.cwd());
26
+ const deps = await resolveDependencies(project);
27
+ if (deps.length === 0) {
28
+ console.log(chalk.gray("No dependencies declared in .kb/config.toml"));
29
+ return;
30
+ }
31
+ console.log(`\nDependencies for ${chalk.bold(project.name)}:\n`);
32
+ printDepTree(deps);
33
+ console.log();
34
+ }
35
+ catch (err) {
36
+ const message = err instanceof Error ? err.message : String(err);
37
+ console.error(chalk.red(`Error: ${message}`));
38
+ process.exit(1);
39
+ }
40
+ });
41
+ cmd
42
+ .command("update")
43
+ .description("Pull latest changes for all git-backed dependencies")
44
+ .action(async () => {
45
+ try {
46
+ const project = await loadProject(process.cwd());
47
+ const gitDeps = Object.entries(project.config.dependencies).filter(([, cfg]) => !!cfg.git);
48
+ if (gitDeps.length === 0) {
49
+ console.log(chalk.gray("No git dependencies to update."));
50
+ return;
51
+ }
52
+ for (const [name] of gitDeps) {
53
+ process.stdout.write(`Updating ${chalk.cyan(name)}... `);
54
+ try {
55
+ await updateGitDep(project, name);
56
+ const cacheDir = join(project.kbDir, "cache", name);
57
+ const depProject = await loadProject(cacheDir);
58
+ await indexProject(depProject);
59
+ console.log(chalk.green("done"));
60
+ }
61
+ catch (err) {
62
+ const message = err instanceof Error ? err.message : String(err);
63
+ console.log(chalk.red(`failed: ${message}`));
64
+ }
65
+ }
66
+ }
67
+ catch (err) {
68
+ const message = err instanceof Error ? err.message : String(err);
69
+ console.error(chalk.red(`Error: ${message}`));
70
+ process.exit(1);
71
+ }
72
+ });
73
+ return cmd;
74
+ }
75
+ //# sourceMappingURL=deps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deps.js","sourceRoot":"","sources":["../../src/commands/deps.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,eAAe,IAAI,OAAO,CAqEzC"}
1
+ {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,eAAe,IAAI,OAAO,CAgFzC"}
@@ -21,8 +21,11 @@ export function makeLintCommand() {
21
21
  }
22
22
  for (const issue of result.issues) {
23
23
  const code = chalk.gray(`[${issue.code}]`);
24
- if (issue.severity === "warning") {
25
- if (issue.code === "BROKEN_LINK") {
24
+ if (issue.severity === "error") {
25
+ console.log(`${chalk.red("")} ${chalk.cyan(issue.path)} — ${issue.message} ${code}`);
26
+ }
27
+ else if (issue.severity === "warning") {
28
+ if (issue.code === "BROKEN_LINK" && issue.detail != null) {
26
29
  console.log(`${chalk.yellow("⚠")} ${chalk.cyan(issue.path)} → [[${issue.detail}]] not found ${code}`);
27
30
  }
28
31
  else {
@@ -33,9 +36,12 @@ export function makeLintCommand() {
33
36
  console.log(`${chalk.blue("ℹ")} ${chalk.cyan(issue.path)} — ${issue.message} ${code}`);
34
37
  }
35
38
  }
39
+ const errors = result.issues.filter((i) => i.severity === "error").length;
36
40
  const warnings = result.issues.filter((i) => i.severity === "warning").length;
37
41
  const infos = result.issues.filter((i) => i.severity === "info").length;
38
42
  const parts = [];
43
+ if (errors > 0)
44
+ parts.push(`${chalk.red(String(errors))} error${errors !== 1 ? "s" : ""}`);
39
45
  if (warnings > 0)
40
46
  parts.push(`${chalk.yellow(String(warnings))} warning${warnings !== 1 ? "s" : ""}`);
41
47
  if (infos > 0)
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/commands/lint.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,iBAAiB,IAAI,OAAO,CAoG3C"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkDpC,wBAAgB,iBAAiB,IAAI,OAAO,CAoL3C"}
@@ -2,7 +2,29 @@ import { Command } from "commander";
2
2
  import chalk from "chalk";
3
3
  import { existsSync } from "node:fs";
4
4
  import { join } from "node:path";
5
- import { loadProject, indexProject, openDb, closeDb, searchWiki, } from "kb-core";
5
+ import { loadProject, indexProject, openDb, closeDb, searchWiki, searchAcrossProjects, resolveDependencies, findWorkspaceRoot, loadWorkspace, } from "kb-core";
6
+ function printResults(results, query, json) {
7
+ if (json) {
8
+ console.log(JSON.stringify(results, null, 2));
9
+ return;
10
+ }
11
+ if (results.length === 0) {
12
+ console.log(`No results found for "${query}".`);
13
+ return;
14
+ }
15
+ console.log(`\nFound ${results.length} result${results.length !== 1 ? "s" : ""} for "${query}":\n`);
16
+ for (let i = 0; i < results.length; i++) {
17
+ const r = results[i];
18
+ const projectBadge = r.project ? chalk.magenta(`[${r.project}] `) : "";
19
+ console.log(` ${chalk.bold(`${i + 1}.`)} ${projectBadge}${chalk.cyan(r.path)}`);
20
+ console.log(` ${chalk.white(r.title)}`);
21
+ if (r.snippet)
22
+ console.log(` ${chalk.gray(r.snippet)}`);
23
+ if (r.tags.length > 0)
24
+ console.log(` ${chalk.yellow("Tags:")} ${r.tags.join(", ")}`);
25
+ console.log();
26
+ }
27
+ }
6
28
  export function makeSearchCommand() {
7
29
  const cmd = new Command("search");
8
30
  cmd
@@ -11,71 +33,130 @@ export function makeSearchCommand() {
11
33
  .option("-l, --limit <n>", "maximum number of results", "10")
12
34
  .option("--json", "output results as JSON", false)
13
35
  .option("--tags <tags>", "filter by tags (comma-separated, AND logic)")
36
+ .option("--deps", "search current project and all declared dependencies", false)
37
+ .option("--workspace", "search all projects in the workspace", false)
38
+ .option("--project <name>", "search a specific declared dependency by name")
14
39
  .action(async (query, options) => {
15
40
  try {
41
+ const limit = parseInt(options.limit, 10);
42
+ if (isNaN(limit) || limit < 1) {
43
+ console.error(chalk.red("Error: --limit must be a positive integer"));
44
+ process.exit(1);
45
+ }
46
+ const tags = options.tags
47
+ ? options.tags
48
+ .split(",")
49
+ .map((t) => t.trim())
50
+ .filter(Boolean)
51
+ : undefined;
52
+ const searchOptions = { limit, tags };
53
+ // ── Workspace-wide search ─────────────────────────────────────
54
+ if (options.workspace) {
55
+ const wsRoot = await findWorkspaceRoot(process.cwd());
56
+ if (!wsRoot) {
57
+ console.error(chalk.red('No workspace found. Run "kb workspace init" to create one.'));
58
+ process.exit(1);
59
+ }
60
+ const ws = await loadWorkspace(wsRoot);
61
+ if (ws.members.length === 0) {
62
+ console.log("No member projects found in workspace.");
63
+ return;
64
+ }
65
+ const dbs = ws.members.map((m) => openDb(m));
66
+ let results;
67
+ try {
68
+ results = searchAcrossProjects(ws.members.map((m, i) => ({
69
+ db: dbs[i],
70
+ projectName: m.name,
71
+ prefix: m.name,
72
+ })), query, searchOptions);
73
+ }
74
+ finally {
75
+ for (const db of dbs)
76
+ closeDb(db);
77
+ }
78
+ printResults(results, query, options.json);
79
+ return;
80
+ }
16
81
  const project = await loadProject(process.cwd());
17
- // Auto-index if DB doesn't exist or is empty
82
+ // Auto-index if needed
18
83
  const dbPath = join(project.kbDir, "index.db");
19
84
  if (!existsSync(dbPath)) {
20
- if (!options.json) {
85
+ if (!options.json)
21
86
  console.log("Index not found. Indexing wiki pages...");
22
- }
23
87
  await indexProject(project);
24
88
  }
25
89
  else {
26
- // Check if pages table is empty
27
90
  const db = openDb(project);
28
91
  const countRow = db
29
92
  .prepare("SELECT count(*) as count FROM pages")
30
93
  .get();
31
94
  closeDb(db);
32
95
  if (!countRow || countRow.count === 0) {
33
- if (!options.json) {
96
+ if (!options.json)
34
97
  console.log("Index is empty. Indexing wiki pages...");
35
- }
36
98
  await indexProject(project);
37
99
  }
38
100
  }
39
- const limit = parseInt(options.limit, 10);
40
- if (isNaN(limit) || limit < 1) {
41
- console.error(chalk.red("Error: --limit must be a positive integer"));
42
- process.exit(1);
101
+ // ── Single dep search ──────────────────────────────────────────
102
+ if (options.project) {
103
+ const resolvedDeps = await resolveDependencies(project);
104
+ const dep = resolvedDeps.find((d) => d.name === options.project);
105
+ if (!dep) {
106
+ console.error(chalk.red(`Dependency "${options.project}" not declared in .kb/config.toml.`));
107
+ process.exit(1);
108
+ }
109
+ const db = openDb(dep.project);
110
+ let results;
111
+ try {
112
+ results = searchWiki(db, query, dep.project.name, searchOptions).map((r) => ({
113
+ ...r,
114
+ path: `${dep.name}: ${r.path}`,
115
+ project: dep.name,
116
+ }));
117
+ }
118
+ finally {
119
+ closeDb(db);
120
+ }
121
+ printResults(results, query, options.json);
122
+ return;
43
123
  }
44
- const tags = options.tags
45
- ? options.tags
46
- .split(",")
47
- .map((t) => t.trim())
48
- .filter((t) => t.length > 0)
49
- : undefined;
124
+ // ── Deps search ────────────────────────────────────────────────
125
+ if (options.deps) {
126
+ await resolveDependencies(project);
127
+ const targets = [
128
+ {
129
+ db: openDb(project),
130
+ projectName: project.name,
131
+ prefix: undefined,
132
+ },
133
+ ...(project.dependencies ?? []).map((d) => ({
134
+ db: openDb(d.project),
135
+ projectName: d.project.name,
136
+ prefix: d.name,
137
+ })),
138
+ ];
139
+ let results;
140
+ try {
141
+ results = searchAcrossProjects(targets, query, searchOptions);
142
+ }
143
+ finally {
144
+ for (const { db } of targets)
145
+ closeDb(db);
146
+ }
147
+ printResults(results, query, options.json);
148
+ return;
149
+ }
150
+ // ── Default single-project search ──────────────────────────────
50
151
  const db = openDb(project);
51
152
  let results;
52
153
  try {
53
- results = searchWiki(db, query, project.name, { limit, tags });
154
+ results = searchWiki(db, query, project.name, searchOptions);
54
155
  }
55
156
  finally {
56
157
  closeDb(db);
57
158
  }
58
- if (options.json) {
59
- console.log(JSON.stringify(results, null, 2));
60
- return;
61
- }
62
- if (results.length === 0) {
63
- console.log(`No results found for "${query}".`);
64
- return;
65
- }
66
- console.log(`\nFound ${results.length} result${results.length !== 1 ? "s" : ""} for "${query}":\n`);
67
- for (let i = 0; i < results.length; i++) {
68
- const r = results[i];
69
- console.log(` ${chalk.bold(`${i + 1}.`)} ${chalk.cyan(r.path)}`);
70
- console.log(` ${chalk.white(r.title)}`);
71
- if (r.snippet) {
72
- console.log(` ${chalk.gray(r.snippet)}`);
73
- }
74
- if (r.tags.length > 0) {
75
- console.log(` ${chalk.yellow("Tags:")} ${r.tags.join(", ")}`);
76
- }
77
- console.log();
78
- }
159
+ printResults(results, query, options.json);
79
160
  }
80
161
  catch (err) {
81
162
  const message = err instanceof Error ? err.message : String(err);
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function makeWorkspaceCommand(): Command;
3
+ //# sourceMappingURL=workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,oBAAoB,IAAI,OAAO,CAsE9C"}
@@ -0,0 +1,58 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import { writeFile, access } from "node:fs/promises";
4
+ import { join } from "node:path";
5
+ import { loadWorkspace } from "kb-core";
6
+ export function makeWorkspaceCommand() {
7
+ const cmd = new Command("workspace");
8
+ cmd.description("Manage workspace of multiple kb projects");
9
+ cmd
10
+ .command("init")
11
+ .description("Create a .kbworkspace.toml in the current directory")
12
+ .option("--members <patterns>", "comma-separated glob patterns for member projects (e.g. projects/*,shared/*)")
13
+ .action(async (options) => {
14
+ try {
15
+ const cwd = process.cwd();
16
+ try {
17
+ await access(join(cwd, ".kbworkspace.toml"));
18
+ console.error(chalk.red("Error: .kbworkspace.toml already exists in the current directory."));
19
+ process.exit(1);
20
+ }
21
+ catch {
22
+ // File does not exist — proceed
23
+ }
24
+ const patterns = options.members
25
+ ? options.members
26
+ .split(",")
27
+ .map((p) => p.trim())
28
+ .filter(Boolean)
29
+ : ["projects/*"];
30
+ const tomlContent = `[workspace]\n` +
31
+ `members = [${patterns.map((p) => `"${p}"`).join(", ")}]\n`;
32
+ await writeFile(join(cwd, ".kbworkspace.toml"), tomlContent, "utf8");
33
+ console.log(chalk.green(`Created .kbworkspace.toml with members: ${patterns.join(", ")}`));
34
+ try {
35
+ const ws = await loadWorkspace(cwd);
36
+ if (ws.members.length === 0) {
37
+ console.log(chalk.yellow("\nNo member projects found yet. Create kb projects inside the member directories."));
38
+ }
39
+ else {
40
+ console.log(`\nDiscovered ${ws.members.length} member project(s):`);
41
+ for (const m of ws.members) {
42
+ console.log(` ${chalk.cyan(m.name)} — ${m.root}`);
43
+ }
44
+ }
45
+ }
46
+ catch {
47
+ // Ignore discovery errors
48
+ }
49
+ }
50
+ catch (err) {
51
+ const message = err instanceof Error ? err.message : String(err);
52
+ console.error(chalk.red(`Error: ${message}`));
53
+ process.exit(1);
54
+ }
55
+ });
56
+ return cmd;
57
+ }
58
+ //# sourceMappingURL=workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -11,6 +11,8 @@ import { makeLogCommand } from "./commands/log-cmd.js";
11
11
  import { makeLintCommand } from "./commands/lint.js";
12
12
  import { makeMcpCommand } from "./commands/mcp.js";
13
13
  import { makeAgentContextCommand } from "./commands/agent-context.js";
14
+ import { makeDepsCommand } from "./commands/deps.js";
15
+ import { makeWorkspaceCommand } from "./commands/workspace.js";
14
16
  const require = createRequire(import.meta.url);
15
17
  const { version } = require("../package.json");
16
18
  const program = new Command();
@@ -28,5 +30,7 @@ program.addCommand(makeLogCommand());
28
30
  program.addCommand(makeLintCommand());
29
31
  program.addCommand(makeMcpCommand());
30
32
  program.addCommand(makeAgentContextCommand());
33
+ program.addCommand(makeDepsCommand());
34
+ program.addCommand(makeWorkspaceCommand());
31
35
  program.parse(process.argv);
32
36
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,sDAAsD,CAAC;KACnE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAE9C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,IAAI,CAAC;KACV,WAAW,CAAC,sDAAsD,CAAC;KACnE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAC9C,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC;AACtC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAE3C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kb-tool",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "kb": "dist/index.js"
@@ -19,8 +19,8 @@
19
19
  "test": "vitest run"
20
20
  },
21
21
  "dependencies": {
22
- "kb-core": "0.1.5",
23
- "kb-mcp": "0.1.1",
22
+ "kb-core": "workspace:*",
23
+ "kb-mcp": "workspace:*",
24
24
  "chalk": "^5.3.0",
25
25
  "commander": "^12.1.0"
26
26
  },