kirograph 0.13.0 → 0.14.0

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 (84) hide show
  1. package/README.md +332 -93
  2. package/dist/bin/commands/caveman.js +19 -2
  3. package/dist/bin/commands/caveman.js.map +2 -2
  4. package/dist/bin/commands/compression.js +109 -0
  5. package/dist/bin/commands/compression.js.map +7 -0
  6. package/dist/bin/commands/context.js +31 -24
  7. package/dist/bin/commands/context.js.map +2 -2
  8. package/dist/bin/commands/exec.js +107 -0
  9. package/dist/bin/commands/exec.js.map +7 -0
  10. package/dist/bin/commands/gain.js +119 -0
  11. package/dist/bin/commands/gain.js.map +7 -0
  12. package/dist/bin/commands/help.js +16 -5
  13. package/dist/bin/commands/help.js.map +2 -2
  14. package/dist/bin/commands/install.js +8 -2
  15. package/dist/bin/commands/install.js.map +2 -2
  16. package/dist/bin/commands/query.js +5 -1
  17. package/dist/bin/commands/query.js.map +2 -2
  18. package/dist/bin/commands/serve.js +2 -2
  19. package/dist/bin/commands/serve.js.map +2 -2
  20. package/dist/bin/commands/uninit.js +65 -41
  21. package/dist/bin/commands/uninit.js.map +2 -2
  22. package/dist/bin/commands/utils.js +16 -0
  23. package/dist/bin/commands/utils.js.map +2 -2
  24. package/dist/bin/installer/cli-agent.js +5 -25
  25. package/dist/bin/installer/cli-agent.js.map +2 -2
  26. package/dist/bin/installer/common.js +154 -0
  27. package/dist/bin/installer/common.js.map +7 -0
  28. package/dist/bin/installer/config-prompt.js +9 -2
  29. package/dist/bin/installer/config-prompt.js.map +2 -2
  30. package/dist/bin/installer/hooks.js +19 -1
  31. package/dist/bin/installer/hooks.js.map +2 -2
  32. package/dist/bin/installer/index.js +104 -86
  33. package/dist/bin/installer/index.js.map +2 -2
  34. package/dist/bin/installer/instructions.js +60 -0
  35. package/dist/bin/installer/instructions.js.map +7 -0
  36. package/dist/bin/installer/mcp.js +6 -36
  37. package/dist/bin/installer/mcp.js.map +2 -2
  38. package/dist/bin/installer/steering.js +116 -40
  39. package/dist/bin/installer/steering.js.map +2 -2
  40. package/dist/bin/installer/targets/claude.js +79 -0
  41. package/dist/bin/installer/targets/claude.js.map +7 -0
  42. package/dist/bin/installer/targets/codex.js +77 -0
  43. package/dist/bin/installer/targets/codex.js.map +7 -0
  44. package/dist/bin/installer/targets/index.js +57 -0
  45. package/dist/bin/installer/targets/index.js.map +7 -0
  46. package/dist/bin/installer/targets/kiro.js +63 -0
  47. package/dist/bin/installer/targets/kiro.js.map +7 -0
  48. package/dist/bin/kirograph.js +7 -1
  49. package/dist/bin/kirograph.js.map +3 -3
  50. package/dist/compression/filters/aws.js +418 -0
  51. package/dist/compression/filters/aws.js.map +7 -0
  52. package/dist/compression/filters/docker.js +153 -0
  53. package/dist/compression/filters/docker.js.map +7 -0
  54. package/dist/compression/filters/files.js +150 -0
  55. package/dist/compression/filters/files.js.map +7 -0
  56. package/dist/compression/filters/generic.js +86 -0
  57. package/dist/compression/filters/generic.js.map +7 -0
  58. package/dist/compression/filters/git.js +272 -0
  59. package/dist/compression/filters/git.js.map +7 -0
  60. package/dist/compression/filters/github.js +137 -0
  61. package/dist/compression/filters/github.js.map +7 -0
  62. package/dist/compression/filters/lint.js +280 -0
  63. package/dist/compression/filters/lint.js.map +7 -0
  64. package/dist/compression/filters/misc.js +212 -0
  65. package/dist/compression/filters/misc.js.map +7 -0
  66. package/dist/compression/filters/package.js +151 -0
  67. package/dist/compression/filters/package.js.map +7 -0
  68. package/dist/compression/filters/test.js +266 -0
  69. package/dist/compression/filters/test.js.map +7 -0
  70. package/dist/compression/index.js +144 -0
  71. package/dist/compression/index.js.map +7 -0
  72. package/dist/compression/naive-cost.js +94 -0
  73. package/dist/compression/naive-cost.js.map +7 -0
  74. package/dist/compression/tracker.js +228 -0
  75. package/dist/compression/tracker.js.map +7 -0
  76. package/dist/compression/types.js +17 -0
  77. package/dist/compression/types.js.map +7 -0
  78. package/dist/config.js +18 -1
  79. package/dist/config.js.map +2 -2
  80. package/dist/mcp/tool-names.js +50 -0
  81. package/dist/mcp/tool-names.js.map +7 -0
  82. package/dist/mcp/tools.js +173 -4
  83. package/dist/mcp/tools.js.map +3 -3
  84. package/package.json +2 -2
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var claude_exports = {};
30
+ __export(claude_exports, {
31
+ installClaudeEarly: () => installClaudeEarly,
32
+ installClaudeLate: () => installClaudeLate,
33
+ printClaudeNextSteps: () => printClaudeNextSteps,
34
+ uninitClaude: () => uninitClaude
35
+ });
36
+ module.exports = __toCommonJS(claude_exports);
37
+ var fs = __toESM(require("fs"));
38
+ var path = __toESM(require("path"));
39
+ var import_common = require("../common");
40
+ var import_instructions = require("../instructions");
41
+ const CLAUDE_IMPORT = "@.kirograph/claude.md";
42
+ function installClaudeEarly(projectRoot) {
43
+ const mcpPath = path.join(projectRoot, ".mcp.json");
44
+ (0, import_common.writeMcpServersConfig)(mcpPath, {
45
+ command: import_common.KIROGRAPH_COMMAND,
46
+ args: import_common.KIROGRAPH_MCP_ARGS
47
+ });
48
+ console.log(` \u2713 Claude MCP server registered in ${mcpPath}`);
49
+ }
50
+ function installClaudeLate(projectRoot, cavemanMode) {
51
+ const instructionsPath = path.join(projectRoot, ".kirograph", "claude.md");
52
+ (0, import_common.ensureDir)(path.dirname(instructionsPath));
53
+ fs.writeFileSync(instructionsPath, (0, import_instructions.buildAgentInstructions)(cavemanMode));
54
+ console.log(` \u2713 Claude instructions written to ${instructionsPath}`);
55
+ const memoryPath = path.join(projectRoot, "CLAUDE.md");
56
+ const changed = (0, import_common.appendImportLine)(memoryPath, CLAUDE_IMPORT, "## KiroGraph");
57
+ console.log(changed ? ` \u2713 Claude project memory updated in ${memoryPath}` : ` \u2713 Claude project memory already imports ${CLAUDE_IMPORT}`);
58
+ }
59
+ function uninitClaude(projectRoot) {
60
+ const mcpPath = path.join(projectRoot, ".mcp.json");
61
+ if ((0, import_common.removeMcpServersConfig)(mcpPath)) {
62
+ console.log(` \u2713 Removed kirograph from .mcp.json`);
63
+ }
64
+ const memoryPath = path.join(projectRoot, "CLAUDE.md");
65
+ if ((0, import_common.removeImportLine)(memoryPath, CLAUDE_IMPORT)) {
66
+ console.log(` \u2713 Removed KiroGraph import from CLAUDE.md`);
67
+ }
68
+ }
69
+ function printClaudeNextSteps() {
70
+ console.log("\n Done! Restart Claude Code for the MCP server and project memory to load.\n");
71
+ }
72
+ // Annotate the CommonJS export names for ESM import in node:
73
+ 0 && (module.exports = {
74
+ installClaudeEarly,
75
+ installClaudeLate,
76
+ printClaudeNextSteps,
77
+ uninitClaude
78
+ });
79
+ //# sourceMappingURL=claude.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/bin/installer/targets/claude.ts"],
4
+ "sourcesContent": ["import * as fs from 'fs';\nimport * as path from 'path';\nimport { CavemanMode } from '../caveman';\nimport {\n appendImportLine,\n ensureDir,\n KIROGRAPH_COMMAND,\n KIROGRAPH_MCP_ARGS,\n removeMcpServersConfig,\n removeImportLine,\n writeMcpServersConfig,\n} from '../common';\nimport { buildAgentInstructions } from '../instructions';\n\nconst CLAUDE_IMPORT = '@.kirograph/claude.md';\n\nexport function installClaudeEarly(projectRoot: string): void {\n const mcpPath = path.join(projectRoot, '.mcp.json');\n writeMcpServersConfig(mcpPath, {\n command: KIROGRAPH_COMMAND,\n args: KIROGRAPH_MCP_ARGS,\n });\n console.log(` \u2713 Claude MCP server registered in ${mcpPath}`);\n}\n\nexport function installClaudeLate(projectRoot: string, cavemanMode?: CavemanMode | 'off'): void {\n const instructionsPath = path.join(projectRoot, '.kirograph', 'claude.md');\n ensureDir(path.dirname(instructionsPath));\n fs.writeFileSync(instructionsPath, buildAgentInstructions(cavemanMode));\n console.log(` \u2713 Claude instructions written to ${instructionsPath}`);\n\n const memoryPath = path.join(projectRoot, 'CLAUDE.md');\n const changed = appendImportLine(memoryPath, CLAUDE_IMPORT, '## KiroGraph');\n console.log(changed\n ? ` \u2713 Claude project memory updated in ${memoryPath}`\n : ` \u2713 Claude project memory already imports ${CLAUDE_IMPORT}`);\n}\n\nexport function uninitClaude(projectRoot: string): void {\n const mcpPath = path.join(projectRoot, '.mcp.json');\n if (removeMcpServersConfig(mcpPath)) {\n console.log(` \u2713 Removed kirograph from .mcp.json`);\n }\n\n const memoryPath = path.join(projectRoot, 'CLAUDE.md');\n if (removeImportLine(memoryPath, CLAUDE_IMPORT)) {\n console.log(` \u2713 Removed KiroGraph import from CLAUDE.md`);\n }\n}\n\nexport function printClaudeNextSteps(): void {\n console.log('\\n Done! Restart Claude Code for the MCP server and project memory to load.\\n');\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAoB;AACpB,WAAsB;AAEtB,oBAQO;AACP,0BAAuC;AAEvC,MAAM,gBAAgB;AAEf,SAAS,mBAAmB,aAA2B;AAC5D,QAAM,UAAU,KAAK,KAAK,aAAa,WAAW;AAClD,2CAAsB,SAAS;AAAA,IAC7B,SAAS;AAAA,IACT,MAAM;AAAA,EACR,CAAC;AACD,UAAQ,IAAI,4CAAuC,OAAO,EAAE;AAC9D;AAEO,SAAS,kBAAkB,aAAqB,aAAyC;AAC9F,QAAM,mBAAmB,KAAK,KAAK,aAAa,cAAc,WAAW;AACzE,+BAAU,KAAK,QAAQ,gBAAgB,CAAC;AACxC,KAAG,cAAc,sBAAkB,4CAAuB,WAAW,CAAC;AACtE,UAAQ,IAAI,2CAAsC,gBAAgB,EAAE;AAEpE,QAAM,aAAa,KAAK,KAAK,aAAa,WAAW;AACrD,QAAM,cAAU,gCAAiB,YAAY,eAAe,cAAc;AAC1E,UAAQ,IAAI,UACR,6CAAwC,UAAU,KAClD,kDAA6C,aAAa,EAAE;AAClE;AAEO,SAAS,aAAa,aAA2B;AACtD,QAAM,UAAU,KAAK,KAAK,aAAa,WAAW;AAClD,UAAI,sCAAuB,OAAO,GAAG;AACnC,YAAQ,IAAI,2CAAsC;AAAA,EACpD;AAEA,QAAM,aAAa,KAAK,KAAK,aAAa,WAAW;AACrD,UAAI,gCAAiB,YAAY,aAAa,GAAG;AAC/C,YAAQ,IAAI,kDAA6C;AAAA,EAC3D;AACF;AAEO,SAAS,uBAA6B;AAC3C,UAAQ,IAAI,gFAAgF;AAC9F;",
6
+ "names": []
7
+ }
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var codex_exports = {};
30
+ __export(codex_exports, {
31
+ installCodexEarly: () => installCodexEarly,
32
+ installCodexLate: () => installCodexLate,
33
+ printCodexNextSteps: () => printCodexNextSteps,
34
+ uninitCodex: () => uninitCodex
35
+ });
36
+ module.exports = __toCommonJS(codex_exports);
37
+ var fs = __toESM(require("fs"));
38
+ var path = __toESM(require("path"));
39
+ var import_common = require("../common");
40
+ var import_instructions = require("../instructions");
41
+ const CODEX_BLOCK_ID = "codex";
42
+ function installCodexEarly(_projectRoot) {
43
+ }
44
+ function installCodexLate(projectRoot, cavemanMode) {
45
+ const instructionsPath = path.join(projectRoot, ".kirograph", "codex.md");
46
+ (0, import_common.ensureDir)(path.dirname(instructionsPath));
47
+ fs.writeFileSync(instructionsPath, (0, import_instructions.buildAgentInstructions)(cavemanMode));
48
+ console.log(` \u2713 Codex instructions written to ${instructionsPath}`);
49
+ const agentsPath = path.join(projectRoot, "AGENTS.md");
50
+ const changed = (0, import_common.upsertGeneratedBlock)(agentsPath, CODEX_BLOCK_ID, "## KiroGraph", (0, import_instructions.buildAgentInstructions)(cavemanMode));
51
+ console.log(changed ? ` \u2713 Codex project instructions updated in ${agentsPath}` : ` \u2713 Codex project instructions already up to date`);
52
+ }
53
+ function uninitCodex(projectRoot) {
54
+ const agentsPath = path.join(projectRoot, "AGENTS.md");
55
+ if ((0, import_common.removeGeneratedBlock)(agentsPath, CODEX_BLOCK_ID)) {
56
+ console.log(` \u2713 Removed KiroGraph block from AGENTS.md`);
57
+ }
58
+ }
59
+ function printCodexNextSteps(projectRoot) {
60
+ const escapedPath = projectRoot.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
61
+ console.log("\n Done! Codex project instructions are installed.");
62
+ console.log(" Add the MCP server to Codex with:");
63
+ console.log(` codex mcp add kirograph -- kirograph serve --mcp --path "${escapedPath}"`);
64
+ console.log("\n Or add this to ~/.codex/config.toml:");
65
+ console.log(" [mcp_servers.kirograph]");
66
+ console.log(' command = "kirograph"');
67
+ console.log(` args = ["serve", "--mcp", "--path", "${escapedPath}"]
68
+ `);
69
+ }
70
+ // Annotate the CommonJS export names for ESM import in node:
71
+ 0 && (module.exports = {
72
+ installCodexEarly,
73
+ installCodexLate,
74
+ printCodexNextSteps,
75
+ uninitCodex
76
+ });
77
+ //# sourceMappingURL=codex.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/bin/installer/targets/codex.ts"],
4
+ "sourcesContent": ["import * as fs from 'fs';\nimport * as path from 'path';\nimport { CavemanMode } from '../caveman';\nimport { ensureDir, removeGeneratedBlock, upsertGeneratedBlock } from '../common';\nimport { buildAgentInstructions } from '../instructions';\n\nconst CODEX_BLOCK_ID = 'codex';\n\nexport function installCodexEarly(_projectRoot: string): void {\n // Codex MCP config is user-scoped. We print the exact config in next steps\n // instead of writing outside the project from an installer command.\n}\n\nexport function installCodexLate(projectRoot: string, cavemanMode?: CavemanMode | 'off'): void {\n const instructionsPath = path.join(projectRoot, '.kirograph', 'codex.md');\n ensureDir(path.dirname(instructionsPath));\n fs.writeFileSync(instructionsPath, buildAgentInstructions(cavemanMode));\n console.log(` \u2713 Codex instructions written to ${instructionsPath}`);\n\n const agentsPath = path.join(projectRoot, 'AGENTS.md');\n const changed = upsertGeneratedBlock(agentsPath, CODEX_BLOCK_ID, '## KiroGraph', buildAgentInstructions(cavemanMode));\n console.log(changed\n ? ` \u2713 Codex project instructions updated in ${agentsPath}`\n : ` \u2713 Codex project instructions already up to date`);\n}\n\nexport function uninitCodex(projectRoot: string): void {\n const agentsPath = path.join(projectRoot, 'AGENTS.md');\n if (removeGeneratedBlock(agentsPath, CODEX_BLOCK_ID)) {\n console.log(` \u2713 Removed KiroGraph block from AGENTS.md`);\n }\n}\n\nexport function printCodexNextSteps(projectRoot: string): void {\n const escapedPath = projectRoot.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n console.log('\\n Done! Codex project instructions are installed.');\n console.log(' Add the MCP server to Codex with:');\n console.log(` codex mcp add kirograph -- kirograph serve --mcp --path \"${escapedPath}\"`);\n console.log('\\n Or add this to ~/.codex/config.toml:');\n console.log(' [mcp_servers.kirograph]');\n console.log(' command = \"kirograph\"');\n console.log(` args = [\"serve\", \"--mcp\", \"--path\", \"${escapedPath}\"]\\n`);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAoB;AACpB,WAAsB;AAEtB,oBAAsE;AACtE,0BAAuC;AAEvC,MAAM,iBAAiB;AAEhB,SAAS,kBAAkB,cAA4B;AAG9D;AAEO,SAAS,iBAAiB,aAAqB,aAAyC;AAC7F,QAAM,mBAAmB,KAAK,KAAK,aAAa,cAAc,UAAU;AACxE,+BAAU,KAAK,QAAQ,gBAAgB,CAAC;AACxC,KAAG,cAAc,sBAAkB,4CAAuB,WAAW,CAAC;AACtE,UAAQ,IAAI,0CAAqC,gBAAgB,EAAE;AAEnE,QAAM,aAAa,KAAK,KAAK,aAAa,WAAW;AACrD,QAAM,cAAU,oCAAqB,YAAY,gBAAgB,oBAAgB,4CAAuB,WAAW,CAAC;AACpH,UAAQ,IAAI,UACR,kDAA6C,UAAU,KACvD,wDAAmD;AACzD;AAEO,SAAS,YAAY,aAA2B;AACrD,QAAM,aAAa,KAAK,KAAK,aAAa,WAAW;AACrD,UAAI,oCAAqB,YAAY,cAAc,GAAG;AACpD,YAAQ,IAAI,iDAA4C;AAAA,EAC1D;AACF;AAEO,SAAS,oBAAoB,aAA2B;AAC7D,QAAM,cAAc,YAAY,QAAQ,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAK;AAC1E,UAAQ,IAAI,qDAAqD;AACjE,UAAQ,IAAI,qCAAqC;AACjD,UAAQ,IAAI,gEAAgE,WAAW,GAAG;AAC1F,UAAQ,IAAI,0CAA0C;AACtD,UAAQ,IAAI,6BAA6B;AACzC,UAAQ,IAAI,2BAA2B;AACvC,UAAQ,IAAI,4CAA4C,WAAW;AAAA,CAAM;AAC3E;",
6
+ "names": []
7
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var targets_exports = {};
20
+ __export(targets_exports, {
21
+ getTargetInstaller: () => getTargetInstaller
22
+ });
23
+ module.exports = __toCommonJS(targets_exports);
24
+ var import_kiro = require("./kiro");
25
+ var import_claude = require("./claude");
26
+ var import_codex = require("./codex");
27
+ function getTargetInstaller(target) {
28
+ if (target === "claude") {
29
+ return {
30
+ label: "Claude Code",
31
+ installEarly: import_claude.installClaudeEarly,
32
+ installLate: import_claude.installClaudeLate,
33
+ printNextSteps: import_claude.printClaudeNextSteps,
34
+ uninit: import_claude.uninitClaude
35
+ };
36
+ }
37
+ if (target === "codex") {
38
+ return {
39
+ label: "Codex",
40
+ installEarly: import_codex.installCodexEarly,
41
+ installLate: import_codex.installCodexLate,
42
+ printNextSteps: import_codex.printCodexNextSteps,
43
+ uninit: import_codex.uninitCodex
44
+ };
45
+ }
46
+ return {
47
+ label: "Kiro",
48
+ installEarly: import_kiro.installKiroEarly,
49
+ installLate: import_kiro.installKiroLate,
50
+ printNextSteps: import_kiro.printKiroNextSteps
51
+ };
52
+ }
53
+ // Annotate the CommonJS export names for ESM import in node:
54
+ 0 && (module.exports = {
55
+ getTargetInstaller
56
+ });
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/bin/installer/targets/index.ts"],
4
+ "sourcesContent": ["import type { CavemanMode } from '../caveman';\nimport type { InstallTarget } from '../common';\nimport { installKiroEarly, installKiroLate, printKiroNextSteps } from './kiro';\nimport { installClaudeEarly, installClaudeLate, printClaudeNextSteps, uninitClaude } from './claude';\nimport { installCodexEarly, installCodexLate, printCodexNextSteps, uninitCodex } from './codex';\n\nexport interface TargetInstaller {\n label: string;\n installEarly(projectRoot: string): void;\n installLate(projectRoot: string, cavemanMode?: CavemanMode | 'off', shellCompressionLevel?: string): void;\n printNextSteps(projectRoot: string): void;\n uninit?(projectRoot: string): void;\n}\n\nexport function getTargetInstaller(target: InstallTarget): TargetInstaller {\n if (target === 'claude') {\n return {\n label: 'Claude Code',\n installEarly: installClaudeEarly,\n installLate: installClaudeLate,\n printNextSteps: printClaudeNextSteps,\n uninit: uninitClaude,\n };\n }\n\n if (target === 'codex') {\n return {\n label: 'Codex',\n installEarly: installCodexEarly,\n installLate: installCodexLate,\n printNextSteps: printCodexNextSteps,\n uninit: uninitCodex,\n };\n }\n\n return {\n label: 'Kiro',\n installEarly: installKiroEarly,\n installLate: installKiroLate,\n printNextSteps: printKiroNextSteps,\n };\n}\n\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,kBAAsE;AACtE,oBAA0F;AAC1F,mBAAsF;AAU/E,SAAS,mBAAmB,QAAwC;AACzE,MAAI,WAAW,UAAU;AACvB,WAAO;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,QAAQ;AAAA,IACV;AAAA,EACF;AAEA,MAAI,WAAW,SAAS;AACtB,WAAO;AAAA,MACL,OAAO;AAAA,MACP,cAAc;AAAA,MACd,aAAa;AAAA,MACb,gBAAgB;AAAA,MAChB,QAAQ;AAAA,IACV;AAAA,EACF;AAEA,SAAO;AAAA,IACL,OAAO;AAAA,IACP,cAAc;AAAA,IACd,aAAa;AAAA,IACb,gBAAgB;AAAA,EAClB;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var kiro_exports = {};
30
+ __export(kiro_exports, {
31
+ installKiroEarly: () => installKiroEarly,
32
+ installKiroLate: () => installKiroLate,
33
+ printKiroNextSteps: () => printKiroNextSteps
34
+ });
35
+ module.exports = __toCommonJS(kiro_exports);
36
+ var path = __toESM(require("path"));
37
+ var import_cli_agent = require("../cli-agent");
38
+ var import_hooks = require("../hooks");
39
+ var import_mcp = require("../mcp");
40
+ var import_steering = require("../steering");
41
+ function installKiroEarly(projectRoot) {
42
+ const kiroDir = path.join(projectRoot, ".kiro");
43
+ (0, import_mcp.writeMcpConfig)(kiroDir);
44
+ (0, import_hooks.writeHooks)(kiroDir);
45
+ }
46
+ function installKiroLate(projectRoot, cavemanMode, shellCompressionLevel) {
47
+ const kiroDir = path.join(projectRoot, ".kiro");
48
+ const enableCompression = shellCompressionLevel !== "off";
49
+ (0, import_hooks.writeHooks)(kiroDir, { enableCompression });
50
+ (0, import_steering.writeSteering)(kiroDir, { cavemanMode, enableCompression, shellCompressionLevel });
51
+ (0, import_cli_agent.writeCliAgent)(kiroDir);
52
+ }
53
+ function printKiroNextSteps() {
54
+ console.log("\n Done! Restart Kiro IDE for the MCP server to load.");
55
+ console.log(' For Kiro CLI, use the "kirograph" agent: kiro-cli --agent kirograph\n');
56
+ }
57
+ // Annotate the CommonJS export names for ESM import in node:
58
+ 0 && (module.exports = {
59
+ installKiroEarly,
60
+ installKiroLate,
61
+ printKiroNextSteps
62
+ });
63
+ //# sourceMappingURL=kiro.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/bin/installer/targets/kiro.ts"],
4
+ "sourcesContent": ["import * as path from 'path';\nimport { CavemanMode } from '../caveman';\nimport { writeCliAgent } from '../cli-agent';\nimport { writeHooks } from '../hooks';\nimport { writeMcpConfig } from '../mcp';\nimport { writeSteering } from '../steering';\n\nexport function installKiroEarly(projectRoot: string): void {\n const kiroDir = path.join(projectRoot, '.kiro');\n writeMcpConfig(kiroDir);\n writeHooks(kiroDir);\n}\n\nexport function installKiroLate(projectRoot: string, cavemanMode?: CavemanMode | 'off', shellCompressionLevel?: string): void {\n const kiroDir = path.join(projectRoot, '.kiro');\n const enableCompression = shellCompressionLevel !== 'off';\n // Re-write hooks with compression awareness\n writeHooks(kiroDir, { enableCompression });\n writeSteering(kiroDir, { cavemanMode, enableCompression, shellCompressionLevel: shellCompressionLevel as any });\n writeCliAgent(kiroDir);\n}\n\nexport function printKiroNextSteps(): void {\n console.log('\\n Done! Restart Kiro IDE for the MCP server to load.');\n console.log(' For Kiro CLI, use the \"kirograph\" agent: kiro-cli --agent kirograph\\n');\n}\n\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAAsB;AAEtB,uBAA8B;AAC9B,mBAA2B;AAC3B,iBAA+B;AAC/B,sBAA8B;AAEvB,SAAS,iBAAiB,aAA2B;AAC1D,QAAM,UAAU,KAAK,KAAK,aAAa,OAAO;AAC9C,iCAAe,OAAO;AACtB,+BAAW,OAAO;AACpB;AAEO,SAAS,gBAAgB,aAAqB,aAAmC,uBAAsC;AAC5H,QAAM,UAAU,KAAK,KAAK,aAAa,OAAO;AAC9C,QAAM,oBAAoB,0BAA0B;AAEpD,+BAAW,SAAS,EAAE,kBAAkB,CAAC;AACzC,qCAAc,SAAS,EAAE,aAAa,mBAAmB,sBAAoD,CAAC;AAC9G,sCAAc,OAAO;AACvB;AAEO,SAAS,qBAA2B;AACzC,UAAQ,IAAI,wDAAwD;AACpE,UAAQ,IAAI,yEAAyE;AACvF;",
6
+ "names": []
7
+ }
@@ -28,6 +28,9 @@ var import_surprising = require("./commands/surprising");
28
28
  var import_snapshot = require("./commands/snapshot");
29
29
  var import_path = require("./commands/path");
30
30
  var import_export = require("./commands/export");
31
+ var import_gain = require("./commands/gain");
32
+ var import_compression = require("./commands/compression");
33
+ var import_exec = require("./commands/exec");
31
34
  process.on("uncaughtException", (err) => {
32
35
  const msg = err?.message ?? String(err);
33
36
  const isWasmAbort = msg.includes("Aborted(") || msg.includes("RuntimeError") || err?.constructor?.name === "RuntimeError";
@@ -56,7 +59,7 @@ process.on("uncaughtException", (err) => {
56
59
  process.exit(1);
57
60
  });
58
61
  const program = new import_commander.Command();
59
- program.name("kirograph").description("Semantic code knowledge graph for Kiro").version("0.13.0").addHelpCommand(true).hook("preAction", (thisCommand) => {
62
+ program.name("kirograph").description("Semantic code knowledge graph for Kiro").version("0.14.0").addHelpCommand(true).hook("preAction", (thisCommand) => {
60
63
  const name = thisCommand.name();
61
64
  if (name === "init") (0, import_banner.printBanner)();
62
65
  });
@@ -85,6 +88,9 @@ program.name("kirograph").description("Semantic code knowledge graph for Kiro").
85
88
  (0, import_snapshot.register)(program);
86
89
  (0, import_path.register)(program);
87
90
  (0, import_export.register)(program);
91
+ (0, import_gain.register)(program);
92
+ (0, import_compression.register)(program);
93
+ (0, import_exec.register)(program);
88
94
  if (process.argv.length === 2) {
89
95
  (0, import_banner.printBanner)();
90
96
  (0, import_help.printColoredHelp)();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/bin/kirograph.ts"],
4
- "sourcesContent": ["#!/usr/bin/env node\n/**\n * KiroGraph CLI\n */\n\nimport { Command } from 'commander';\nimport { printBanner } from './banner';\nimport { printColoredHelp, register as registerHelp } from './commands/help';\nimport { register as registerInit } from './commands/init';\nimport { register as registerUninit } from './commands/uninit';\nimport { register as registerIndex } from './commands/index';\nimport { register as registerSync } from './commands/sync';\nimport { register as registerStatus } from './commands/status';\nimport { register as registerQuery } from './commands/query';\nimport { register as registerFiles } from './commands/files';\nimport { register as registerContext } from './commands/context';\nimport { register as registerAffected } from './commands/affected';\nimport { register as registerMarkDirty } from './commands/mark-dirty';\nimport { register as registerSyncIfDirty } from './commands/sync-if-dirty';\nimport { register as registerUnlock } from './commands/unlock';\nimport { register as registerInstall } from './commands/install';\nimport { register as registerServe } from './commands/serve';\nimport { register as registerDashboard } from './commands/dashboard';\nimport { register as registerArchitecture } from './commands/architecture';\nimport { register as registerCoupling } from './commands/coupling';\nimport { register as registerPackage } from './commands/package';\nimport { register as registerCaveman } from './commands/caveman';\nimport { register as registerDeadCode } from './commands/dead-code';\nimport { register as registerHotspots } from './commands/hotspots';\nimport { register as registerSurprising } from './commands/surprising';\nimport { register as registerSnapshot } from './commands/snapshot';\nimport { register as registerPath } from './commands/path';\nimport { register as registerExport } from './commands/export';\n\n// \u2500\u2500 Global error handler for WASM runtime crashes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n//\n// node-sqlite3-wasm calls process.abort() when it hits a fatal error (e.g.\n// database is locked by another process). This produces a raw \"Aborted()\"\n// message with no context. We intercept it here to print a clear explanation\n// before the process exits.\nprocess.on('uncaughtException', (err: Error) => {\n const msg = err?.message ?? String(err);\n const isWasmAbort = msg.includes('Aborted(') || msg.includes('RuntimeError') || (err as any)?.constructor?.name === 'RuntimeError';\n\n if (isWasmAbort) {\n process.stderr.write([\n '',\n ' \u2716 KiroGraph crashed: SQLite WASM runtime aborted.',\n '',\n ' Most likely cause: another process (e.g. the Kiro MCP server) is',\n ' holding the database open while indexing is running.',\n '',\n ' How to fix:',\n ' 1. Close Kiro IDE (or disable the kirograph MCP server) before indexing',\n ' 2. Run: kirograph unlock',\n ' 3. Then retry: kirograph index',\n '',\n ' If the problem persists, delete the lock manually:',\n ' del .kirograph\\\\kirograph.db.lock (Windows)',\n ' rm -rf .kirograph/kirograph.db.lock (macOS/Linux)',\n '',\n ].join('\\n'));\n process.exit(1);\n }\n\n // Not a WASM crash \u2014 re-throw as normal\n process.stderr.write(`Uncaught error: ${msg}\\n`);\n process.exit(1);\n});\n\ndeclare const __CLI_VERSION__: string;\n\nconst program = new Command();\n\nprogram\n .name('kirograph')\n .description('Semantic code knowledge graph for Kiro')\n .version(__CLI_VERSION__)\n .addHelpCommand(true)\n .hook('preAction', (thisCommand) => {\n const name = thisCommand.name();\n if (name === 'init') printBanner();\n });\n\nregisterInstall(program);\nregisterInit(program);\nregisterUninit(program);\nregisterIndex(program);\nregisterSync(program);\nregisterSyncIfDirty(program);\nregisterMarkDirty(program);\nregisterStatus(program);\nregisterQuery(program);\nregisterContext(program);\nregisterFiles(program);\nregisterAffected(program);\nregisterUnlock(program);\nregisterServe(program);\nregisterDashboard(program);\nregisterArchitecture(program);\nregisterCoupling(program);\nregisterPackage(program);\nregisterCaveman(program);\nregisterDeadCode(program);\nregisterHotspots(program);\nregisterSurprising(program);\nregisterSnapshot(program);\nregisterPath(program);\nregisterExport(program);\n\n// Show banner + help when called with no arguments, otherwise parse normally\nif (process.argv.length === 2) {\n printBanner();\n printColoredHelp();\n process.exit(0);\n}\n\nregisterHelp(program);\n\nprogram.parse(process.argv);\n"],
5
- "mappings": ";;AAKA,uBAAwB;AACxB,oBAA4B;AAC5B,kBAA2D;AAC3D,kBAAyC;AACzC,oBAA2C;AAC3C,sBAA0C;AAC1C,kBAAyC;AACzC,oBAA2C;AAC3C,mBAA0C;AAC1C,mBAA0C;AAC1C,qBAA4C;AAC5C,sBAA6C;AAC7C,wBAA8C;AAC9C,2BAAgD;AAChD,oBAA2C;AAC3C,qBAA4C;AAC5C,mBAA0C;AAC1C,uBAA8C;AAC9C,0BAAiD;AACjD,sBAA6C;AAC7C,qBAA4C;AAC5C,qBAA4C;AAC5C,uBAA6C;AAC7C,sBAA6C;AAC7C,wBAA+C;AAC/C,sBAA6C;AAC7C,kBAAyC;AACzC,oBAA2C;AAQ3C,QAAQ,GAAG,qBAAqB,CAAC,QAAe;AAC9C,QAAM,MAAM,KAAK,WAAW,OAAO,GAAG;AACtC,QAAM,cAAc,IAAI,SAAS,UAAU,KAAK,IAAI,SAAS,cAAc,KAAM,KAAa,aAAa,SAAS;AAEpH,MAAI,aAAa;AACf,YAAQ,OAAO,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,EAAE,KAAK,IAAI,CAAC;AACZ,YAAQ,KAAK,CAAC;AAAA,EAChB;AAGA,UAAQ,OAAO,MAAM,mBAAmB,GAAG;AAAA,CAAI;AAC/C,UAAQ,KAAK,CAAC;AAChB,CAAC;AAID,MAAM,UAAU,IAAI,yBAAQ;AAE5B,QACG,KAAK,WAAW,EAChB,YAAY,wCAAwC,EACpD,QAAQ,QAAe,EACvB,eAAe,IAAI,EACnB,KAAK,aAAa,CAAC,gBAAgB;AAClC,QAAM,OAAO,YAAY,KAAK;AAC9B,MAAI,SAAS,OAAQ,gCAAY;AACnC,CAAC;AAAA,IAEH,eAAAA,UAAgB,OAAO;AAAA,IACvB,YAAAC,UAAa,OAAO;AAAA,IACpB,cAAAC,UAAe,OAAO;AAAA,IACtB,gBAAAC,UAAc,OAAO;AAAA,IACrB,YAAAC,UAAa,OAAO;AAAA,IACpB,qBAAAC,UAAoB,OAAO;AAAA,IAC3B,kBAAAC,UAAkB,OAAO;AAAA,IACzB,cAAAC,UAAe,OAAO;AAAA,IACtB,aAAAC,UAAc,OAAO;AAAA,IACrB,eAAAC,UAAgB,OAAO;AAAA,IACvB,aAAAC,UAAc,OAAO;AAAA,IACrB,gBAAAC,UAAiB,OAAO;AAAA,IACxB,cAAAC,UAAe,OAAO;AAAA,IACtB,aAAAC,UAAc,OAAO;AAAA,IACrB,iBAAAC,UAAkB,OAAO;AAAA,IACzB,oBAAAC,UAAqB,OAAO;AAAA,IAC5B,gBAAAC,UAAiB,OAAO;AAAA,IACxB,eAAAC,UAAgB,OAAO;AAAA,IACvB,eAAAC,UAAgB,OAAO;AAAA,IACvB,iBAAAC,UAAiB,OAAO;AAAA,IACxB,gBAAAC,UAAiB,OAAO;AAAA,IACxB,kBAAAC,UAAmB,OAAO;AAAA,IAC1B,gBAAAC,UAAiB,OAAO;AAAA,IACxB,YAAAC,UAAa,OAAO;AAAA,IACpB,cAAAC,UAAe,OAAO;AAGtB,IAAI,QAAQ,KAAK,WAAW,GAAG;AAC7B,iCAAY;AACZ,oCAAiB;AACjB,UAAQ,KAAK,CAAC;AAChB;AAAA,IAEA,YAAAC,UAAa,OAAO;AAEpB,QAAQ,MAAM,QAAQ,IAAI;",
6
- "names": ["registerInstall", "registerInit", "registerUninit", "registerIndex", "registerSync", "registerSyncIfDirty", "registerMarkDirty", "registerStatus", "registerQuery", "registerContext", "registerFiles", "registerAffected", "registerUnlock", "registerServe", "registerDashboard", "registerArchitecture", "registerCoupling", "registerPackage", "registerCaveman", "registerDeadCode", "registerHotspots", "registerSurprising", "registerSnapshot", "registerPath", "registerExport", "registerHelp"]
4
+ "sourcesContent": ["#!/usr/bin/env node\n/**\n * KiroGraph CLI\n */\n\nimport { Command } from 'commander';\nimport { printBanner } from './banner';\nimport { printColoredHelp, register as registerHelp } from './commands/help';\nimport { register as registerInit } from './commands/init';\nimport { register as registerUninit } from './commands/uninit';\nimport { register as registerIndex } from './commands/index';\nimport { register as registerSync } from './commands/sync';\nimport { register as registerStatus } from './commands/status';\nimport { register as registerQuery } from './commands/query';\nimport { register as registerFiles } from './commands/files';\nimport { register as registerContext } from './commands/context';\nimport { register as registerAffected } from './commands/affected';\nimport { register as registerMarkDirty } from './commands/mark-dirty';\nimport { register as registerSyncIfDirty } from './commands/sync-if-dirty';\nimport { register as registerUnlock } from './commands/unlock';\nimport { register as registerInstall } from './commands/install';\nimport { register as registerServe } from './commands/serve';\nimport { register as registerDashboard } from './commands/dashboard';\nimport { register as registerArchitecture } from './commands/architecture';\nimport { register as registerCoupling } from './commands/coupling';\nimport { register as registerPackage } from './commands/package';\nimport { register as registerCaveman } from './commands/caveman';\nimport { register as registerDeadCode } from './commands/dead-code';\nimport { register as registerHotspots } from './commands/hotspots';\nimport { register as registerSurprising } from './commands/surprising';\nimport { register as registerSnapshot } from './commands/snapshot';\nimport { register as registerPath } from './commands/path';\nimport { register as registerExport } from './commands/export';\nimport { register as registerGain } from './commands/gain';\nimport { register as registerCompression } from './commands/compression';\nimport { register as registerExec } from './commands/exec';\n\n// \u2500\u2500 Global error handler for WASM runtime crashes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n//\n// node-sqlite3-wasm calls process.abort() when it hits a fatal error (e.g.\n// database is locked by another process). This produces a raw \"Aborted()\"\n// message with no context. We intercept it here to print a clear explanation\n// before the process exits.\nprocess.on('uncaughtException', (err: Error) => {\n const msg = err?.message ?? String(err);\n const isWasmAbort = msg.includes('Aborted(') || msg.includes('RuntimeError') || (err as any)?.constructor?.name === 'RuntimeError';\n\n if (isWasmAbort) {\n process.stderr.write([\n '',\n ' \u2716 KiroGraph crashed: SQLite WASM runtime aborted.',\n '',\n ' Most likely cause: another process (e.g. the Kiro MCP server) is',\n ' holding the database open while indexing is running.',\n '',\n ' How to fix:',\n ' 1. Close Kiro IDE (or disable the kirograph MCP server) before indexing',\n ' 2. Run: kirograph unlock',\n ' 3. Then retry: kirograph index',\n '',\n ' If the problem persists, delete the lock manually:',\n ' del .kirograph\\\\kirograph.db.lock (Windows)',\n ' rm -rf .kirograph/kirograph.db.lock (macOS/Linux)',\n '',\n ].join('\\n'));\n process.exit(1);\n }\n\n // Not a WASM crash \u2014 re-throw as normal\n process.stderr.write(`Uncaught error: ${msg}\\n`);\n process.exit(1);\n});\n\ndeclare const __CLI_VERSION__: string;\n\nconst program = new Command();\n\nprogram\n .name('kirograph')\n .description('Semantic code knowledge graph for Kiro')\n .version(__CLI_VERSION__)\n .addHelpCommand(true)\n .hook('preAction', (thisCommand) => {\n const name = thisCommand.name();\n if (name === 'init') printBanner();\n });\n\nregisterInstall(program);\nregisterInit(program);\nregisterUninit(program);\nregisterIndex(program);\nregisterSync(program);\nregisterSyncIfDirty(program);\nregisterMarkDirty(program);\nregisterStatus(program);\nregisterQuery(program);\nregisterContext(program);\nregisterFiles(program);\nregisterAffected(program);\nregisterUnlock(program);\nregisterServe(program);\nregisterDashboard(program);\nregisterArchitecture(program);\nregisterCoupling(program);\nregisterPackage(program);\nregisterCaveman(program);\nregisterDeadCode(program);\nregisterHotspots(program);\nregisterSurprising(program);\nregisterSnapshot(program);\nregisterPath(program);\nregisterExport(program);\nregisterGain(program);\nregisterCompression(program);\nregisterExec(program);\n\n// Show banner + help when called with no arguments, otherwise parse normally\nif (process.argv.length === 2) {\n printBanner();\n printColoredHelp();\n process.exit(0);\n}\n\nregisterHelp(program);\n\nprogram.parse(process.argv);\n"],
5
+ "mappings": ";;AAKA,uBAAwB;AACxB,oBAA4B;AAC5B,kBAA2D;AAC3D,kBAAyC;AACzC,oBAA2C;AAC3C,sBAA0C;AAC1C,kBAAyC;AACzC,oBAA2C;AAC3C,mBAA0C;AAC1C,mBAA0C;AAC1C,qBAA4C;AAC5C,sBAA6C;AAC7C,wBAA8C;AAC9C,2BAAgD;AAChD,oBAA2C;AAC3C,qBAA4C;AAC5C,mBAA0C;AAC1C,uBAA8C;AAC9C,0BAAiD;AACjD,sBAA6C;AAC7C,qBAA4C;AAC5C,qBAA4C;AAC5C,uBAA6C;AAC7C,sBAA6C;AAC7C,wBAA+C;AAC/C,sBAA6C;AAC7C,kBAAyC;AACzC,oBAA2C;AAC3C,kBAAyC;AACzC,yBAAgD;AAChD,kBAAyC;AAQzC,QAAQ,GAAG,qBAAqB,CAAC,QAAe;AAC9C,QAAM,MAAM,KAAK,WAAW,OAAO,GAAG;AACtC,QAAM,cAAc,IAAI,SAAS,UAAU,KAAK,IAAI,SAAS,cAAc,KAAM,KAAa,aAAa,SAAS;AAEpH,MAAI,aAAa;AACf,YAAQ,OAAO,MAAM;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,EAAE,KAAK,IAAI,CAAC;AACZ,YAAQ,KAAK,CAAC;AAAA,EAChB;AAGA,UAAQ,OAAO,MAAM,mBAAmB,GAAG;AAAA,CAAI;AAC/C,UAAQ,KAAK,CAAC;AAChB,CAAC;AAID,MAAM,UAAU,IAAI,yBAAQ;AAE5B,QACG,KAAK,WAAW,EAChB,YAAY,wCAAwC,EACpD,QAAQ,QAAe,EACvB,eAAe,IAAI,EACnB,KAAK,aAAa,CAAC,gBAAgB;AAClC,QAAM,OAAO,YAAY,KAAK;AAC9B,MAAI,SAAS,OAAQ,gCAAY;AACnC,CAAC;AAAA,IAEH,eAAAA,UAAgB,OAAO;AAAA,IACvB,YAAAC,UAAa,OAAO;AAAA,IACpB,cAAAC,UAAe,OAAO;AAAA,IACtB,gBAAAC,UAAc,OAAO;AAAA,IACrB,YAAAC,UAAa,OAAO;AAAA,IACpB,qBAAAC,UAAoB,OAAO;AAAA,IAC3B,kBAAAC,UAAkB,OAAO;AAAA,IACzB,cAAAC,UAAe,OAAO;AAAA,IACtB,aAAAC,UAAc,OAAO;AAAA,IACrB,eAAAC,UAAgB,OAAO;AAAA,IACvB,aAAAC,UAAc,OAAO;AAAA,IACrB,gBAAAC,UAAiB,OAAO;AAAA,IACxB,cAAAC,UAAe,OAAO;AAAA,IACtB,aAAAC,UAAc,OAAO;AAAA,IACrB,iBAAAC,UAAkB,OAAO;AAAA,IACzB,oBAAAC,UAAqB,OAAO;AAAA,IAC5B,gBAAAC,UAAiB,OAAO;AAAA,IACxB,eAAAC,UAAgB,OAAO;AAAA,IACvB,eAAAC,UAAgB,OAAO;AAAA,IACvB,iBAAAC,UAAiB,OAAO;AAAA,IACxB,gBAAAC,UAAiB,OAAO;AAAA,IACxB,kBAAAC,UAAmB,OAAO;AAAA,IAC1B,gBAAAC,UAAiB,OAAO;AAAA,IACxB,YAAAC,UAAa,OAAO;AAAA,IACpB,cAAAC,UAAe,OAAO;AAAA,IACtB,YAAAC,UAAa,OAAO;AAAA,IACpB,mBAAAC,UAAoB,OAAO;AAAA,IAC3B,YAAAC,UAAa,OAAO;AAGpB,IAAI,QAAQ,KAAK,WAAW,GAAG;AAC7B,iCAAY;AACZ,oCAAiB;AACjB,UAAQ,KAAK,CAAC;AAChB;AAAA,IAEA,YAAAC,UAAa,OAAO;AAEpB,QAAQ,MAAM,QAAQ,IAAI;",
6
+ "names": ["registerInstall", "registerInit", "registerUninit", "registerIndex", "registerSync", "registerSyncIfDirty", "registerMarkDirty", "registerStatus", "registerQuery", "registerContext", "registerFiles", "registerAffected", "registerUnlock", "registerServe", "registerDashboard", "registerArchitecture", "registerCoupling", "registerPackage", "registerCaveman", "registerDeadCode", "registerHotspots", "registerSurprising", "registerSnapshot", "registerPath", "registerExport", "registerGain", "registerCompression", "registerExec", "registerHelp"]
7
7
  }