@sudosandwich/limps 2.12.0 → 2.13.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 (191) hide show
  1. package/README.md +184 -73
  2. package/dist/cli/config-cmd.d.ts.map +1 -1
  3. package/dist/cli/config-cmd.js +3 -3
  4. package/dist/cli/config-cmd.js.map +1 -1
  5. package/dist/cli/graph-check.d.ts +15 -0
  6. package/dist/cli/graph-check.d.ts.map +1 -0
  7. package/dist/cli/graph-check.js +36 -0
  8. package/dist/cli/graph-check.js.map +1 -0
  9. package/dist/cli/graph-db.d.ts +4 -0
  10. package/dist/cli/graph-db.d.ts.map +1 -0
  11. package/dist/cli/graph-db.js +14 -0
  12. package/dist/cli/graph-db.js.map +1 -0
  13. package/dist/cli/graph-entity.d.ts +11 -0
  14. package/dist/cli/graph-entity.d.ts.map +1 -0
  15. package/dist/cli/graph-entity.js +18 -0
  16. package/dist/cli/graph-entity.js.map +1 -0
  17. package/dist/cli/graph-health.d.ts +19 -0
  18. package/dist/cli/graph-health.d.ts.map +1 -0
  19. package/dist/cli/graph-health.js +59 -0
  20. package/dist/cli/graph-health.js.map +1 -0
  21. package/dist/cli/graph-overlap.d.ts +12 -0
  22. package/dist/cli/graph-overlap.d.ts.map +1 -0
  23. package/dist/cli/graph-overlap.js +21 -0
  24. package/dist/cli/graph-overlap.js.map +1 -0
  25. package/dist/cli/graph-reindex.d.ts +14 -0
  26. package/dist/cli/graph-reindex.d.ts.map +1 -0
  27. package/dist/cli/graph-reindex.js +49 -0
  28. package/dist/cli/graph-reindex.js.map +1 -0
  29. package/dist/cli/graph-search.d.ts +15 -0
  30. package/dist/cli/graph-search.d.ts.map +1 -0
  31. package/dist/cli/graph-search.js +37 -0
  32. package/dist/cli/graph-search.js.map +1 -0
  33. package/dist/cli/graph-suggest.d.ts +12 -0
  34. package/dist/cli/graph-suggest.d.ts.map +1 -0
  35. package/dist/cli/graph-suggest.js +35 -0
  36. package/dist/cli/graph-suggest.js.map +1 -0
  37. package/dist/cli/graph-trace.d.ts +17 -0
  38. package/dist/cli/graph-trace.d.ts.map +1 -0
  39. package/dist/cli/graph-trace.js +30 -0
  40. package/dist/cli/graph-trace.js.map +1 -0
  41. package/dist/cli/graph-watch.d.ts +10 -0
  42. package/dist/cli/graph-watch.d.ts.map +1 -0
  43. package/dist/cli/graph-watch.js +18 -0
  44. package/dist/cli/graph-watch.js.map +1 -0
  45. package/dist/cli/mcp-client-adapter.d.ts +14 -5
  46. package/dist/cli/mcp-client-adapter.d.ts.map +1 -1
  47. package/dist/cli/mcp-client-adapter.js +14 -3
  48. package/dist/cli/mcp-client-adapter.js.map +1 -1
  49. package/dist/cli/mcp-clients.d.ts +2 -2
  50. package/dist/cli/mcp-clients.d.ts.map +1 -1
  51. package/dist/cli/mcp-clients.js +15 -0
  52. package/dist/cli/mcp-clients.js.map +1 -1
  53. package/dist/cli/plan-repair.d.ts +26 -0
  54. package/dist/cli/plan-repair.d.ts.map +1 -1
  55. package/dist/cli/plan-repair.js +84 -0
  56. package/dist/cli/plan-repair.js.map +1 -1
  57. package/dist/commands/config/sync-mcp.d.ts +1 -0
  58. package/dist/commands/config/sync-mcp.d.ts.map +1 -1
  59. package/dist/commands/config/sync-mcp.js +2 -2
  60. package/dist/commands/config/sync-mcp.js.map +1 -1
  61. package/dist/commands/graph/check.d.ts +16 -0
  62. package/dist/commands/graph/check.d.ts.map +1 -0
  63. package/dist/commands/graph/check.js +88 -0
  64. package/dist/commands/graph/check.js.map +1 -0
  65. package/dist/commands/graph/entity.d.ts +16 -0
  66. package/dist/commands/graph/entity.d.ts.map +1 -0
  67. package/dist/commands/graph/entity.js +83 -0
  68. package/dist/commands/graph/entity.js.map +1 -0
  69. package/dist/commands/graph/health.d.ts +16 -0
  70. package/dist/commands/graph/health.d.ts.map +1 -0
  71. package/dist/commands/graph/health.js +78 -0
  72. package/dist/commands/graph/health.js.map +1 -0
  73. package/dist/commands/graph/index.d.ts +3 -0
  74. package/dist/commands/graph/index.d.ts.map +1 -0
  75. package/dist/commands/graph/index.js +33 -0
  76. package/dist/commands/graph/index.js.map +1 -0
  77. package/dist/commands/graph/overlap.d.ts +18 -0
  78. package/dist/commands/graph/overlap.d.ts.map +1 -0
  79. package/dist/commands/graph/overlap.js +88 -0
  80. package/dist/commands/graph/overlap.js.map +1 -0
  81. package/dist/commands/graph/reindex.d.ts +18 -0
  82. package/dist/commands/graph/reindex.d.ts.map +1 -0
  83. package/dist/commands/graph/reindex.js +92 -0
  84. package/dist/commands/graph/reindex.js.map +1 -0
  85. package/dist/commands/graph/search.d.ts +18 -0
  86. package/dist/commands/graph/search.d.ts.map +1 -0
  87. package/dist/commands/graph/search.js +105 -0
  88. package/dist/commands/graph/search.js.map +1 -0
  89. package/dist/commands/graph/suggest.d.ts +16 -0
  90. package/dist/commands/graph/suggest.d.ts.map +1 -0
  91. package/dist/commands/graph/suggest.js +88 -0
  92. package/dist/commands/graph/suggest.js.map +1 -0
  93. package/dist/commands/graph/trace.d.ts +22 -0
  94. package/dist/commands/graph/trace.d.ts.map +1 -0
  95. package/dist/commands/graph/trace.js +97 -0
  96. package/dist/commands/graph/trace.js.map +1 -0
  97. package/dist/commands/graph/watch.d.ts +17 -0
  98. package/dist/commands/graph/watch.d.ts.map +1 -0
  99. package/dist/commands/graph/watch.js +48 -0
  100. package/dist/commands/graph/watch.js.map +1 -0
  101. package/dist/commands/index.d.ts.map +1 -1
  102. package/dist/commands/index.js +1 -1
  103. package/dist/commands/index.js.map +1 -1
  104. package/dist/commands/repair-plans.d.ts.map +1 -1
  105. package/dist/commands/repair-plans.js +74 -10
  106. package/dist/commands/repair-plans.js.map +1 -1
  107. package/dist/config.d.ts +23 -0
  108. package/dist/config.d.ts.map +1 -1
  109. package/dist/config.js +49 -0
  110. package/dist/config.js.map +1 -1
  111. package/dist/graph/conflict-detector.d.ts +27 -0
  112. package/dist/graph/conflict-detector.d.ts.map +1 -0
  113. package/dist/graph/conflict-detector.js +168 -0
  114. package/dist/graph/conflict-detector.js.map +1 -0
  115. package/dist/graph/extractor.d.ts +10 -0
  116. package/dist/graph/extractor.d.ts.map +1 -0
  117. package/dist/graph/extractor.js +266 -0
  118. package/dist/graph/extractor.js.map +1 -0
  119. package/dist/graph/notifier.d.ts +16 -0
  120. package/dist/graph/notifier.d.ts.map +1 -0
  121. package/dist/graph/notifier.js +61 -0
  122. package/dist/graph/notifier.js.map +1 -0
  123. package/dist/graph/parser.d.ts +10 -0
  124. package/dist/graph/parser.d.ts.map +1 -0
  125. package/dist/graph/parser.js +54 -0
  126. package/dist/graph/parser.js.map +1 -0
  127. package/dist/graph/patterns.d.ts +16 -0
  128. package/dist/graph/patterns.d.ts.map +1 -0
  129. package/dist/graph/patterns.js +23 -0
  130. package/dist/graph/patterns.js.map +1 -0
  131. package/dist/graph/resolver.d.ts +23 -0
  132. package/dist/graph/resolver.d.ts.map +1 -0
  133. package/dist/graph/resolver.js +98 -0
  134. package/dist/graph/resolver.js.map +1 -0
  135. package/dist/graph/similarity.d.ts +38 -0
  136. package/dist/graph/similarity.d.ts.map +1 -0
  137. package/dist/graph/similarity.js +74 -0
  138. package/dist/graph/similarity.js.map +1 -0
  139. package/dist/graph/storage.js +2 -2
  140. package/dist/graph/watcher.d.ts +23 -0
  141. package/dist/graph/watcher.d.ts.map +1 -0
  142. package/dist/graph/watcher.js +94 -0
  143. package/dist/graph/watcher.js.map +1 -0
  144. package/dist/resources/plans-summary.d.ts.map +1 -1
  145. package/dist/resources/plans-summary.js +7 -5
  146. package/dist/resources/plans-summary.js.map +1 -1
  147. package/dist/retrieval/bfs.d.ts +27 -0
  148. package/dist/retrieval/bfs.d.ts.map +1 -0
  149. package/dist/retrieval/bfs.js +77 -0
  150. package/dist/retrieval/bfs.js.map +1 -0
  151. package/dist/retrieval/hybrid.d.ts +25 -0
  152. package/dist/retrieval/hybrid.d.ts.map +1 -0
  153. package/dist/retrieval/hybrid.js +84 -0
  154. package/dist/retrieval/hybrid.js.map +1 -0
  155. package/dist/retrieval/recipes.d.ts +20 -0
  156. package/dist/retrieval/recipes.d.ts.map +1 -0
  157. package/dist/retrieval/recipes.js +123 -0
  158. package/dist/retrieval/recipes.js.map +1 -0
  159. package/dist/retrieval/router.d.ts +7 -0
  160. package/dist/retrieval/router.d.ts.map +1 -0
  161. package/dist/retrieval/router.js +51 -0
  162. package/dist/retrieval/router.js.map +1 -0
  163. package/dist/retrieval/rrf.d.ts +21 -0
  164. package/dist/retrieval/rrf.d.ts.map +1 -0
  165. package/dist/retrieval/rrf.js +27 -0
  166. package/dist/retrieval/rrf.js.map +1 -0
  167. package/dist/retrieval/types.d.ts +60 -0
  168. package/dist/retrieval/types.d.ts.map +1 -0
  169. package/dist/retrieval/types.js +18 -0
  170. package/dist/retrieval/types.js.map +1 -0
  171. package/dist/rlm/sandbox.d.ts.map +1 -1
  172. package/dist/rlm/sandbox.js +8 -1
  173. package/dist/rlm/sandbox.js.map +1 -1
  174. package/dist/tools/configure-scoring.d.ts.map +1 -1
  175. package/dist/tools/configure-scoring.js +3 -0
  176. package/dist/tools/configure-scoring.js.map +1 -1
  177. package/dist/tools/graph.d.ts +32 -0
  178. package/dist/tools/graph.d.ts.map +1 -0
  179. package/dist/tools/graph.js +105 -0
  180. package/dist/tools/graph.js.map +1 -0
  181. package/dist/tools/index.d.ts +1 -1
  182. package/dist/tools/index.d.ts.map +1 -1
  183. package/dist/tools/index.js +21 -0
  184. package/dist/tools/index.js.map +1 -1
  185. package/dist/tools/process-doc.d.ts.map +1 -1
  186. package/dist/tools/process-doc.js +14 -0
  187. package/dist/tools/process-doc.js.map +1 -1
  188. package/dist/tools/process-docs.d.ts.map +1 -1
  189. package/dist/tools/process-docs.js +14 -0
  190. package/dist/tools/process-docs.js.map +1 -1
  191. package/package.json +2 -1
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { z } from 'zod';
3
+ export declare const description = "Run conflict detection checks";
4
+ export declare const args: z.ZodTuple<[z.ZodOptional<z.ZodString>], null>;
5
+ export declare const options: z.ZodObject<{
6
+ config: z.ZodOptional<z.ZodString>;
7
+ project: z.ZodOptional<z.ZodString>;
8
+ json: z.ZodOptional<z.ZodBoolean>;
9
+ }, z.core.$strip>;
10
+ interface Props {
11
+ args: z.infer<typeof args>;
12
+ options: z.infer<typeof options>;
13
+ }
14
+ export default function GraphCheckCommand({ args, options }: Props): React.ReactNode;
15
+ export {};
16
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/commands/graph/check.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,WAAW,kCAAkC,CAAC;AAE3D,eAAO,MAAM,IAAI,gDAAwE,CAAC;AAE1F,eAAO,MAAM,OAAO;;;;iBAIlB,CAAC;AAEH,UAAU,KAAK;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC;AAID,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CA0FnF"}
@@ -0,0 +1,88 @@
1
+ import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
+ import React, { useEffect } from 'react';
3
+ import { Text } from 'ink';
4
+ import { z } from 'zod';
5
+ import { loadConfig } from '../../config.js';
6
+ import { resolveConfigPath, resolveProjectConfigPath } from '../../utils/config-resolver.js';
7
+ import { buildHelpOutput, getProjectLlmHints, getProjectTipLine } from '../../utils/cli-help.js';
8
+ import { isJsonMode, outputJson, wrapSuccess } from '../../cli/json-output.js';
9
+ import { openGraphDb } from '../../cli/graph-db.js';
10
+ import { graphCheck } from '../../cli/graph-check.js';
11
+ export const description = 'Run conflict detection checks';
12
+ export const args = z.tuple([z.string().describe('conflict type (optional)').optional()]);
13
+ export const options = z.object({
14
+ config: z.string().optional().describe('Path to config file'),
15
+ project: z.string().optional().describe('Registered project name'),
16
+ json: z.boolean().optional().describe('Output as JSON'),
17
+ });
18
+ const VALID_TYPES = ['file_contention', 'feature_overlap', 'circular_dependency', 'stale_wip'];
19
+ export default function GraphCheckCommand({ args, options }) {
20
+ const [typeArg] = args;
21
+ const configPath = options.project
22
+ ? resolveProjectConfigPath(options.project)
23
+ : resolveConfigPath(options.config);
24
+ const config = loadConfig(configPath);
25
+ const jsonMode = isJsonMode(options);
26
+ const help = buildHelpOutput({
27
+ usage: 'limps graph check [type] [options]',
28
+ arguments: [
29
+ 'type Conflict type: file_contention, feature_overlap, circular_dependency, stale_wip (optional)',
30
+ ],
31
+ options: [
32
+ '--config Path to config file',
33
+ '--project Registered project name',
34
+ '--json Output as JSON',
35
+ ],
36
+ sections: [
37
+ {
38
+ title: 'Examples',
39
+ lines: [
40
+ 'limps graph check',
41
+ 'limps graph check file_contention',
42
+ 'limps graph check --json',
43
+ ],
44
+ },
45
+ ],
46
+ tips: [getProjectTipLine()],
47
+ llmHints: getProjectLlmHints(),
48
+ });
49
+ const conflictType = typeArg && VALID_TYPES.includes(typeArg) ? typeArg : undefined;
50
+ useEffect(() => {
51
+ if (!jsonMode)
52
+ return;
53
+ const timer = setTimeout(() => {
54
+ try {
55
+ const db = openGraphDb(config);
56
+ try {
57
+ const result = graphCheck(config, db, { type: conflictType });
58
+ const exitCode = result.errorCount > 0 ? 2 : 0;
59
+ outputJson(wrapSuccess(result), exitCode);
60
+ }
61
+ finally {
62
+ db.close();
63
+ }
64
+ }
65
+ catch {
66
+ // outputJson calls process.exit
67
+ }
68
+ }, 0);
69
+ return () => clearTimeout(timer);
70
+ }, [jsonMode, config, conflictType]);
71
+ if (jsonMode)
72
+ return null;
73
+ try {
74
+ const db = openGraphDb(config);
75
+ try {
76
+ const result = graphCheck(config, db, { type: conflictType });
77
+ return (_jsxs(Text, { children: ["Checked: ", result.checkedType, '\n', "Conflicts: ", result.conflicts.length, " (", result.errorCount, " errors,", ' ', result.warningCount, " warnings)", result.conflicts.map((c, i) => (_jsxs(React.Fragment, { children: ['\n', _jsxs(Text, { color: c.severity === 'error' ? 'red' : 'yellow', children: ["[", c.severity.toUpperCase(), "]"] }), ' ', c.message] }, i))), result.conflicts.length === 0 && _jsxs(_Fragment, { children: ['\n', "No conflicts detected."] })] }));
78
+ }
79
+ finally {
80
+ db.close();
81
+ }
82
+ }
83
+ catch (err) {
84
+ const message = err instanceof Error ? err.message : String(err);
85
+ return (_jsxs(Text, { children: [_jsx(Text, { color: "red", children: message }), '\n\n', help.text] }));
86
+ }
87
+ }
88
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/commands/graph/check.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { z } from 'zod';
3
+ export declare const description = "Show details for a specific entity";
4
+ export declare const args: z.ZodTuple<[z.ZodString], null>;
5
+ export declare const options: z.ZodObject<{
6
+ config: z.ZodOptional<z.ZodString>;
7
+ project: z.ZodOptional<z.ZodString>;
8
+ json: z.ZodOptional<z.ZodBoolean>;
9
+ }, z.core.$strip>;
10
+ interface Props {
11
+ args: z.infer<typeof args>;
12
+ options: z.infer<typeof options>;
13
+ }
14
+ export default function GraphEntityCommand({ args, options }: Props): React.ReactNode;
15
+ export {};
16
+ //# sourceMappingURL=entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/commands/graph/entity.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,WAAW,uCAAuC,CAAC;AAEhE,eAAO,MAAM,IAAI,iCAAwD,CAAC;AAE1E,eAAO,MAAM,OAAO;;;;iBAIlB,CAAC;AAEH,UAAU,KAAK;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CAgGpF"}
@@ -0,0 +1,83 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import React, { useEffect } from 'react';
3
+ import { Text } from 'ink';
4
+ import { z } from 'zod';
5
+ import { loadConfig } from '../../config.js';
6
+ import { resolveConfigPath, resolveProjectConfigPath } from '../../utils/config-resolver.js';
7
+ import { buildHelpOutput, getProjectLlmHints, getProjectTipLine } from '../../utils/cli-help.js';
8
+ import { handleJsonOutput, isJsonMode } from '../../cli/json-output.js';
9
+ import { openGraphDb } from '../../cli/graph-db.js';
10
+ import { graphEntity } from '../../cli/graph-entity.js';
11
+ export const description = 'Show details for a specific entity';
12
+ export const args = z.tuple([z.string().describe('entity canonical ID')]);
13
+ export const options = z.object({
14
+ config: z.string().optional().describe('Path to config file'),
15
+ project: z.string().optional().describe('Registered project name'),
16
+ json: z.boolean().optional().describe('Output as JSON'),
17
+ });
18
+ export default function GraphEntityCommand({ args, options }) {
19
+ const [canonicalId] = args;
20
+ const configPath = options.project
21
+ ? resolveProjectConfigPath(options.project)
22
+ : resolveConfigPath(options.config);
23
+ const config = loadConfig(configPath);
24
+ const jsonMode = isJsonMode(options);
25
+ const help = buildHelpOutput({
26
+ usage: 'limps graph entity <canonical-id> [options]',
27
+ arguments: ['canonical-id Entity canonical ID (e.g. plan:0042)'],
28
+ options: [
29
+ '--config Path to config file',
30
+ '--project Registered project name',
31
+ '--json Output as JSON',
32
+ ],
33
+ sections: [
34
+ {
35
+ title: 'Examples',
36
+ lines: ['limps graph entity plan:0042', 'limps graph entity agent:0042#003 --json'],
37
+ },
38
+ ],
39
+ tips: [getProjectTipLine()],
40
+ llmHints: getProjectLlmHints(),
41
+ });
42
+ useEffect(() => {
43
+ if (!jsonMode)
44
+ return;
45
+ const timer = setTimeout(() => {
46
+ try {
47
+ handleJsonOutput(() => {
48
+ const db = openGraphDb(config);
49
+ try {
50
+ return graphEntity(config, db, canonicalId);
51
+ }
52
+ finally {
53
+ db.close();
54
+ }
55
+ }, 'GRAPH_ENTITY_ERROR');
56
+ }
57
+ catch {
58
+ // handleJsonOutput calls process.exit
59
+ }
60
+ }, 0);
61
+ return () => clearTimeout(timer);
62
+ }, [jsonMode, config, canonicalId]);
63
+ if (jsonMode)
64
+ return null;
65
+ if (!canonicalId) {
66
+ return (_jsxs(Text, { children: [_jsx(Text, { color: "red", children: "Error: entity canonical ID is required" }), '\n\n', help.text] }));
67
+ }
68
+ try {
69
+ const db = openGraphDb(config);
70
+ try {
71
+ const result = graphEntity(config, db, canonicalId);
72
+ return (_jsxs(Text, { children: [_jsx(Text, { color: "cyan", bold: true, children: result.entity.canonicalId }), ' ', "(", result.entity.type, ")", '\n', "Name: ", result.entity.name, result.entity.sourcePath && (_jsxs(_Fragment, { children: ['\n', "Source: ", result.entity.sourcePath] })), '\n', "Outgoing: ", result.outgoing.length, ", Incoming: ", result.incoming.length, '\n', "Neighbors: ", result.neighbors.length, result.neighbors.map((n) => (_jsxs(React.Fragment, { children: ['\n', ' ', _jsx(Text, { color: "green", children: n.canonicalId }), " - ", n.name] }, n.canonicalId)))] }));
73
+ }
74
+ finally {
75
+ db.close();
76
+ }
77
+ }
78
+ catch (err) {
79
+ const message = err instanceof Error ? err.message : String(err);
80
+ return (_jsxs(Text, { children: [_jsx(Text, { color: "red", children: message }), '\n\n', help.text] }));
81
+ }
82
+ }
83
+ //# sourceMappingURL=entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/commands/graph/entity.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { z } from 'zod';
3
+ export declare const description = "Show graph statistics and conflict summary";
4
+ export declare const args: z.ZodTuple<[], null>;
5
+ export declare const options: z.ZodObject<{
6
+ config: z.ZodOptional<z.ZodString>;
7
+ project: z.ZodOptional<z.ZodString>;
8
+ json: z.ZodOptional<z.ZodBoolean>;
9
+ }, z.core.$strip>;
10
+ interface Props {
11
+ args: z.infer<typeof args>;
12
+ options: z.infer<typeof options>;
13
+ }
14
+ export default function GraphHealthCommand({ options }: Props): React.ReactNode;
15
+ export {};
16
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../src/commands/graph/health.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,WAAW,+CAA+C,CAAC;AAExE,eAAO,MAAM,IAAI,sBAAc,CAAC;AAEhC,eAAO,MAAM,OAAO;;;;iBAIlB,CAAC;AAEH,UAAU,KAAK;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CA+D9E"}
@@ -0,0 +1,78 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect } from 'react';
3
+ import { Text } from 'ink';
4
+ import { z } from 'zod';
5
+ import { loadConfig } from '../../config.js';
6
+ import { resolveConfigPath, resolveProjectConfigPath } from '../../utils/config-resolver.js';
7
+ import { buildHelpOutput, getProjectLlmHints, getProjectTipLine } from '../../utils/cli-help.js';
8
+ import { handleJsonOutput, isJsonMode } from '../../cli/json-output.js';
9
+ import { openGraphDb } from '../../cli/graph-db.js';
10
+ import { graphHealth, renderGraphHealth } from '../../cli/graph-health.js';
11
+ export const description = 'Show graph statistics and conflict summary';
12
+ export const args = z.tuple([]);
13
+ export const options = z.object({
14
+ config: z.string().optional().describe('Path to config file'),
15
+ project: z.string().optional().describe('Registered project name'),
16
+ json: z.boolean().optional().describe('Output as JSON'),
17
+ });
18
+ export default function GraphHealthCommand({ options }) {
19
+ const configPath = options.project
20
+ ? resolveProjectConfigPath(options.project)
21
+ : resolveConfigPath(options.config);
22
+ const config = loadConfig(configPath);
23
+ const jsonMode = isJsonMode(options);
24
+ const help = buildHelpOutput({
25
+ usage: 'limps graph health [options]',
26
+ options: [
27
+ '--config Path to config file',
28
+ '--project Registered project name',
29
+ '--json Output as JSON',
30
+ ],
31
+ sections: [
32
+ {
33
+ title: 'Examples',
34
+ lines: ['limps graph health', 'limps graph health --json'],
35
+ },
36
+ ],
37
+ tips: [getProjectTipLine()],
38
+ llmHints: getProjectLlmHints(),
39
+ });
40
+ useEffect(() => {
41
+ if (!jsonMode)
42
+ return;
43
+ const timer = setTimeout(() => {
44
+ try {
45
+ handleJsonOutput(() => {
46
+ const db = openGraphDb(config);
47
+ try {
48
+ return graphHealth(config, db);
49
+ }
50
+ finally {
51
+ db.close();
52
+ }
53
+ }, 'GRAPH_HEALTH_ERROR');
54
+ }
55
+ catch {
56
+ // handleJsonOutput calls process.exit
57
+ }
58
+ }, 0);
59
+ return () => clearTimeout(timer);
60
+ }, [jsonMode, config]);
61
+ if (jsonMode)
62
+ return null;
63
+ try {
64
+ const db = openGraphDb(config);
65
+ try {
66
+ const result = graphHealth(config, db);
67
+ return _jsx(Text, { children: renderGraphHealth(result) });
68
+ }
69
+ finally {
70
+ db.close();
71
+ }
72
+ }
73
+ catch (err) {
74
+ const message = err instanceof Error ? err.message : String(err);
75
+ return (_jsxs(Text, { children: [_jsx(Text, { color: "red", children: message }), '\n\n', help.text] }));
76
+ }
77
+ }
78
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../../src/commands/graph/health.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const description = "Knowledge graph commands";
2
+ export default function GraphCommand(): React.ReactNode;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/graph/index.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,6BAA6B,CAAC;AAEtD,MAAM,CAAC,OAAO,UAAU,YAAY,IAAI,KAAK,CAAC,SAAS,CA4BtD"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from 'ink';
3
+ import { buildHelpOutput, getProjectLlmHints, getProjectTipLine } from '../../utils/cli-help.js';
4
+ export const description = 'Knowledge graph commands';
5
+ export default function GraphCommand() {
6
+ const help = buildHelpOutput({
7
+ usage: 'limps graph <command>',
8
+ sections: [
9
+ {
10
+ title: 'Commands',
11
+ lines: [
12
+ 'reindex Rebuild the knowledge graph from plan files',
13
+ 'health Show graph statistics and conflict summary',
14
+ 'search Search entities in the knowledge graph',
15
+ 'trace Trace entity relationships',
16
+ 'entity Show details for a specific entity',
17
+ 'overlap Find overlapping features',
18
+ 'check Run conflict detection checks',
19
+ 'suggest Get graph-based suggestions',
20
+ 'watch Watch for changes and update graph',
21
+ ],
22
+ },
23
+ {
24
+ title: 'Help',
25
+ lines: ['Run `limps graph <command> --help` for more information.'],
26
+ },
27
+ ],
28
+ tips: [getProjectTipLine()],
29
+ llmHints: getProjectLlmHints(),
30
+ });
31
+ return _jsx(Text, { children: help.text });
32
+ }
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/graph/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjG,MAAM,CAAC,MAAM,WAAW,GAAG,0BAA0B,CAAC;AAEtD,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,MAAM,IAAI,GAAG,eAAe,CAAC;QAC3B,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE;YACR;gBACE,KAAK,EAAE,UAAU;gBACjB,KAAK,EAAE;oBACL,wDAAwD;oBACxD,uDAAuD;oBACvD,mDAAmD;oBACnD,uCAAuC;oBACvC,+CAA+C;oBAC/C,sCAAsC;oBACtC,0CAA0C;oBAC1C,wCAAwC;oBACxC,+CAA+C;iBAChD;aACF;YACD;gBACE,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,CAAC,0DAA0D,CAAC;aACpE;SACF;QACD,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC;QAC3B,QAAQ,EAAE,kBAAkB,EAAE;KAC/B,CAAC,CAAC;IAEH,OAAO,KAAC,IAAI,cAAE,IAAI,CAAC,IAAI,GAAQ,CAAC;AAClC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { z } from 'zod';
3
+ export declare const description = "Find overlapping features";
4
+ export declare const args: z.ZodTuple<[], null>;
5
+ export declare const options: z.ZodObject<{
6
+ config: z.ZodOptional<z.ZodString>;
7
+ project: z.ZodOptional<z.ZodString>;
8
+ json: z.ZodOptional<z.ZodBoolean>;
9
+ plan: z.ZodOptional<z.ZodString>;
10
+ threshold: z.ZodOptional<z.ZodNumber>;
11
+ }, z.core.$strip>;
12
+ interface Props {
13
+ args: z.infer<typeof args>;
14
+ options: z.infer<typeof options>;
15
+ }
16
+ export default function GraphOverlapCommand({ options }: Props): React.ReactNode;
17
+ export {};
18
+ //# sourceMappingURL=overlap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlap.d.ts","sourceRoot":"","sources":["../../../src/commands/graph/overlap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,WAAW,8BAA8B,CAAC;AAEvD,eAAO,MAAM,IAAI,sBAAc,CAAC;AAEhC,eAAO,MAAM,OAAO;;;;;;iBAMlB,CAAC;AAEH,UAAU,KAAK;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CA0F/E"}
@@ -0,0 +1,88 @@
1
+ import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
2
+ import React, { useEffect } from 'react';
3
+ import { Text } from 'ink';
4
+ import { z } from 'zod';
5
+ import { loadConfig } from '../../config.js';
6
+ import { resolveConfigPath, resolveProjectConfigPath } from '../../utils/config-resolver.js';
7
+ import { buildHelpOutput, getProjectLlmHints, getProjectTipLine } from '../../utils/cli-help.js';
8
+ import { handleJsonOutput, isJsonMode } from '../../cli/json-output.js';
9
+ import { openGraphDb } from '../../cli/graph-db.js';
10
+ import { graphOverlap } from '../../cli/graph-overlap.js';
11
+ export const description = 'Find overlapping features';
12
+ export const args = z.tuple([]);
13
+ export const options = z.object({
14
+ config: z.string().optional().describe('Path to config file'),
15
+ project: z.string().optional().describe('Registered project name'),
16
+ json: z.boolean().optional().describe('Output as JSON'),
17
+ plan: z.string().optional().describe('Filter to specific plan ID'),
18
+ threshold: z.number().optional().describe('Similarity threshold (0-1)'),
19
+ });
20
+ export default function GraphOverlapCommand({ options }) {
21
+ const configPath = options.project
22
+ ? resolveProjectConfigPath(options.project)
23
+ : resolveConfigPath(options.config);
24
+ const config = loadConfig(configPath);
25
+ const jsonMode = isJsonMode(options);
26
+ const help = buildHelpOutput({
27
+ usage: 'limps graph overlap [options]',
28
+ options: [
29
+ '--config Path to config file',
30
+ '--project Registered project name',
31
+ '--json Output as JSON',
32
+ '--plan Filter to specific plan ID',
33
+ '--threshold Similarity threshold (default: 0.8)',
34
+ ],
35
+ sections: [
36
+ {
37
+ title: 'Examples',
38
+ lines: ['limps graph overlap', 'limps graph overlap --plan 0042 --json'],
39
+ },
40
+ ],
41
+ tips: [getProjectTipLine()],
42
+ llmHints: getProjectLlmHints(),
43
+ });
44
+ useEffect(() => {
45
+ if (!jsonMode)
46
+ return;
47
+ const timer = setTimeout(() => {
48
+ try {
49
+ handleJsonOutput(() => {
50
+ const db = openGraphDb(config);
51
+ try {
52
+ return graphOverlap(config, db, {
53
+ planId: options.plan,
54
+ threshold: options.threshold,
55
+ });
56
+ }
57
+ finally {
58
+ db.close();
59
+ }
60
+ }, 'GRAPH_OVERLAP_ERROR');
61
+ }
62
+ catch {
63
+ // handleJsonOutput calls process.exit
64
+ }
65
+ }, 0);
66
+ return () => clearTimeout(timer);
67
+ }, [jsonMode, config, options.plan, options.threshold]);
68
+ if (jsonMode)
69
+ return null;
70
+ try {
71
+ const db = openGraphDb(config);
72
+ try {
73
+ const result = graphOverlap(config, db, {
74
+ planId: options.plan,
75
+ threshold: options.threshold,
76
+ });
77
+ return (_jsxs(Text, { children: ["Features analyzed: ", result.totalFeatures, '\n', "Duplicates: ", result.duplicates.length, '\n', "Similar: ", result.similar.length, result.suggestions.length > 0 && (_jsxs(_Fragment, { children: ['\n\n', "Suggestions:", result.suggestions.map((s, i) => (_jsxs(React.Fragment, { children: ['\n', ' ', s] }, i)))] })), result.suggestions.length === 0 && _jsxs(_Fragment, { children: ['\n\n', "No overlaps detected."] })] }));
78
+ }
79
+ finally {
80
+ db.close();
81
+ }
82
+ }
83
+ catch (err) {
84
+ const message = err instanceof Error ? err.message : String(err);
85
+ return (_jsxs(Text, { children: [_jsx(Text, { color: "red", children: message }), '\n\n', help.text] }));
86
+ }
87
+ }
88
+ //# sourceMappingURL=overlap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlap.js","sourceRoot":"","sources":["../../../src/commands/graph/overlap.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { z } from 'zod';
3
+ export declare const description = "Rebuild the knowledge graph from plan files";
4
+ export declare const args: z.ZodTuple<[], null>;
5
+ export declare const options: z.ZodObject<{
6
+ config: z.ZodOptional<z.ZodString>;
7
+ project: z.ZodOptional<z.ZodString>;
8
+ json: z.ZodOptional<z.ZodBoolean>;
9
+ plan: z.ZodOptional<z.ZodString>;
10
+ incremental: z.ZodOptional<z.ZodBoolean>;
11
+ }, z.core.$strip>;
12
+ interface Props {
13
+ args: z.infer<typeof args>;
14
+ options: z.infer<typeof options>;
15
+ }
16
+ export default function GraphReindexCommand({ options }: Props): React.ReactNode;
17
+ export {};
18
+ //# sourceMappingURL=reindex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reindex.d.ts","sourceRoot":"","sources":["../../../src/commands/graph/reindex.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAEzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,WAAW,gDAAgD,CAAC;AAEzE,eAAO,MAAM,IAAI,sBAAc,CAAC;AAEhC,eAAO,MAAM,OAAO;;;;;;iBAMlB,CAAC;AAEH,UAAU,KAAK;IACb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,GAAG,KAAK,CAAC,SAAS,CAuF/E"}
@@ -0,0 +1,92 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect } from 'react';
3
+ import { Text } from 'ink';
4
+ import { z } from 'zod';
5
+ import { loadConfig } from '../../config.js';
6
+ import { resolveConfigPath, resolveProjectConfigPath } from '../../utils/config-resolver.js';
7
+ import { buildHelpOutput, getProjectLlmHints, getProjectTipLine } from '../../utils/cli-help.js';
8
+ import { handleJsonOutput, isJsonMode } from '../../cli/json-output.js';
9
+ import { openGraphDb } from '../../cli/graph-db.js';
10
+ import { graphReindex } from '../../cli/graph-reindex.js';
11
+ export const description = 'Rebuild the knowledge graph from plan files';
12
+ export const args = z.tuple([]);
13
+ export const options = z.object({
14
+ config: z.string().optional().describe('Path to config file'),
15
+ project: z.string().optional().describe('Registered project name'),
16
+ json: z.boolean().optional().describe('Output as JSON'),
17
+ plan: z.string().optional().describe('Filter to specific plan ID'),
18
+ incremental: z.boolean().optional().describe('Skip unchanged files'),
19
+ });
20
+ export default function GraphReindexCommand({ options }) {
21
+ const configPath = options.project
22
+ ? resolveProjectConfigPath(options.project)
23
+ : resolveConfigPath(options.config);
24
+ const config = loadConfig(configPath);
25
+ const jsonMode = isJsonMode(options);
26
+ const help = buildHelpOutput({
27
+ usage: 'limps graph reindex [options]',
28
+ options: [
29
+ '--config Path to config file',
30
+ '--project Registered project name',
31
+ '--json Output as JSON',
32
+ '--plan Filter to specific plan ID',
33
+ '--incremental Skip unchanged files',
34
+ ],
35
+ sections: [
36
+ {
37
+ title: 'Examples',
38
+ lines: [
39
+ 'limps graph reindex',
40
+ 'limps graph reindex --plan 0042',
41
+ 'limps graph reindex --json',
42
+ ],
43
+ },
44
+ ],
45
+ tips: [getProjectTipLine()],
46
+ llmHints: getProjectLlmHints(),
47
+ });
48
+ useEffect(() => {
49
+ if (!jsonMode)
50
+ return;
51
+ const timer = setTimeout(() => {
52
+ try {
53
+ handleJsonOutput(() => {
54
+ const db = openGraphDb(config);
55
+ try {
56
+ return graphReindex(config, db, {
57
+ planId: options.plan,
58
+ incremental: options.incremental,
59
+ });
60
+ }
61
+ finally {
62
+ db.close();
63
+ }
64
+ }, 'GRAPH_REINDEX_ERROR');
65
+ }
66
+ catch {
67
+ // handleJsonOutput calls process.exit
68
+ }
69
+ }, 0);
70
+ return () => clearTimeout(timer);
71
+ }, [jsonMode, config, options.plan, options.incremental]);
72
+ if (jsonMode)
73
+ return null;
74
+ try {
75
+ const db = openGraphDb(config);
76
+ try {
77
+ const result = graphReindex(config, db, {
78
+ planId: options.plan,
79
+ incremental: options.incremental,
80
+ });
81
+ return (_jsxs(Text, { children: [_jsx(Text, { color: "green", children: "Graph reindex complete." }), '\n', "Plans: ", result.plansProcessed, ", Entities: ", result.entitiesUpserted, ", Relations:", ' ', result.relationshipsUpserted, result.warnings.length > 0 && (_jsxs(_Fragment, { children: ['\n', _jsxs(Text, { color: "yellow", children: ["Warnings: ", result.warnings.join(', ')] })] }))] }));
82
+ }
83
+ finally {
84
+ db.close();
85
+ }
86
+ }
87
+ catch (err) {
88
+ const message = err instanceof Error ? err.message : String(err);
89
+ return (_jsxs(Text, { children: [_jsx(Text, { color: "red", children: message }), '\n\n', help.text] }));
90
+ }
91
+ }
92
+ //# sourceMappingURL=reindex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reindex.js","sourceRoot":"","sources":["../../../src/commands/graph/reindex.tsx"],"names":[],"mappings":"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"}