cortex-tms 3.2.0 → 4.0.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 (120) hide show
  1. package/README.md +238 -529
  2. package/dist/cli.js +14 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/archive.d.ts +5 -0
  5. package/dist/commands/archive.d.ts.map +1 -0
  6. package/dist/commands/archive.js +83 -0
  7. package/dist/commands/archive.js.map +1 -0
  8. package/dist/commands/dashboard.d.ts +3 -0
  9. package/dist/commands/dashboard.d.ts.map +1 -0
  10. package/dist/commands/dashboard.js +20 -0
  11. package/dist/commands/dashboard.js.map +1 -0
  12. package/dist/commands/review.js +19 -1
  13. package/dist/commands/review.js.map +1 -1
  14. package/dist/commands/status.d.ts +1 -0
  15. package/dist/commands/status.d.ts.map +1 -1
  16. package/dist/commands/status.js +4 -100
  17. package/dist/commands/status.js.map +1 -1
  18. package/dist/types/cli.d.ts +8 -0
  19. package/dist/types/cli.d.ts.map +1 -1
  20. package/dist/ui/components/Dashboard.d.ts +11 -0
  21. package/dist/ui/components/Dashboard.d.ts.map +1 -0
  22. package/dist/ui/components/Dashboard.js +63 -0
  23. package/dist/ui/components/Dashboard.js.map +1 -0
  24. package/dist/ui/components/dashboard/ContextReductionCard.d.ts +9 -0
  25. package/dist/ui/components/dashboard/ContextReductionCard.d.ts.map +1 -0
  26. package/dist/ui/components/dashboard/ContextReductionCard.js +38 -0
  27. package/dist/ui/components/dashboard/ContextReductionCard.js.map +1 -0
  28. package/dist/ui/components/dashboard/CostSavingsCard.d.ts +10 -0
  29. package/dist/ui/components/dashboard/CostSavingsCard.d.ts.map +1 -0
  30. package/dist/ui/components/dashboard/CostSavingsCard.js +45 -0
  31. package/dist/ui/components/dashboard/CostSavingsCard.js.map +1 -0
  32. package/dist/ui/components/dashboard/FileDistributionCard.d.ts +10 -0
  33. package/dist/ui/components/dashboard/FileDistributionCard.d.ts.map +1 -0
  34. package/dist/ui/components/dashboard/FileDistributionCard.js +51 -0
  35. package/dist/ui/components/dashboard/FileDistributionCard.js.map +1 -0
  36. package/dist/ui/components/dashboard/FileSizeHealthCard.d.ts +15 -0
  37. package/dist/ui/components/dashboard/FileSizeHealthCard.d.ts.map +1 -0
  38. package/dist/ui/components/dashboard/FileSizeHealthCard.js +48 -0
  39. package/dist/ui/components/dashboard/FileSizeHealthCard.js.map +1 -0
  40. package/dist/ui/components/dashboard/Footer.d.ts +3 -0
  41. package/dist/ui/components/dashboard/Footer.d.ts.map +1 -0
  42. package/dist/ui/components/dashboard/Footer.js +13 -0
  43. package/dist/ui/components/dashboard/Footer.js.map +1 -0
  44. package/dist/ui/components/dashboard/GovernanceHealthCard.d.ts +10 -0
  45. package/dist/ui/components/dashboard/GovernanceHealthCard.d.ts.map +1 -0
  46. package/dist/ui/components/dashboard/GovernanceHealthCard.js +43 -0
  47. package/dist/ui/components/dashboard/GovernanceHealthCard.js.map +1 -0
  48. package/dist/ui/components/dashboard/GuardianStatusCard.d.ts +10 -0
  49. package/dist/ui/components/dashboard/GuardianStatusCard.d.ts.map +1 -0
  50. package/dist/ui/components/dashboard/GuardianStatusCard.js +58 -0
  51. package/dist/ui/components/dashboard/GuardianStatusCard.js.map +1 -0
  52. package/dist/ui/components/dashboard/Header.d.ts +7 -0
  53. package/dist/ui/components/dashboard/Header.d.ts.map +1 -0
  54. package/dist/ui/components/dashboard/Header.js +21 -0
  55. package/dist/ui/components/dashboard/Header.js.map +1 -0
  56. package/dist/ui/components/dashboard/HotFilesCard.d.ts +8 -0
  57. package/dist/ui/components/dashboard/HotFilesCard.d.ts.map +1 -0
  58. package/dist/ui/components/dashboard/HotFilesCard.js +28 -0
  59. package/dist/ui/components/dashboard/HotFilesCard.js.map +1 -0
  60. package/dist/ui/components/dashboard/NotConfiguredCard.d.ts +10 -0
  61. package/dist/ui/components/dashboard/NotConfiguredCard.d.ts.map +1 -0
  62. package/dist/ui/components/dashboard/NotConfiguredCard.js +13 -0
  63. package/dist/ui/components/dashboard/NotConfiguredCard.js.map +1 -0
  64. package/dist/ui/components/dashboard/SprintProgressCard.d.ts +11 -0
  65. package/dist/ui/components/dashboard/SprintProgressCard.d.ts.map +1 -0
  66. package/dist/ui/components/dashboard/SprintProgressCard.js +33 -0
  67. package/dist/ui/components/dashboard/SprintProgressCard.js.map +1 -0
  68. package/dist/ui/components/dashboard/StalenessCard.d.ts +10 -0
  69. package/dist/ui/components/dashboard/StalenessCard.d.ts.map +1 -0
  70. package/dist/ui/components/dashboard/StalenessCard.js +43 -0
  71. package/dist/ui/components/dashboard/StalenessCard.js.map +1 -0
  72. package/dist/ui/components/dashboard/TabBar.d.ts +8 -0
  73. package/dist/ui/components/dashboard/TabBar.d.ts.map +1 -0
  74. package/dist/ui/components/dashboard/TabBar.js +16 -0
  75. package/dist/ui/components/dashboard/TabBar.js.map +1 -0
  76. package/dist/ui/components/dashboard/ValidationCard.d.ts +10 -0
  77. package/dist/ui/components/dashboard/ValidationCard.d.ts.map +1 -0
  78. package/dist/ui/components/dashboard/ValidationCard.js +62 -0
  79. package/dist/ui/components/dashboard/ValidationCard.js.map +1 -0
  80. package/dist/ui/components/dashboard/ViewContainer.d.ts +14 -0
  81. package/dist/ui/components/dashboard/ViewContainer.d.ts.map +1 -0
  82. package/dist/ui/components/dashboard/ViewContainer.js +53 -0
  83. package/dist/ui/components/dashboard/ViewContainer.js.map +1 -0
  84. package/dist/ui/components/dashboard/index.d.ts +14 -0
  85. package/dist/ui/components/dashboard/index.d.ts.map +1 -0
  86. package/dist/ui/components/dashboard/index.js +14 -0
  87. package/dist/ui/components/dashboard/index.js.map +1 -0
  88. package/dist/ui/index.d.ts +5 -0
  89. package/dist/ui/index.d.ts.map +1 -0
  90. package/dist/ui/index.js +46 -0
  91. package/dist/ui/index.js.map +1 -0
  92. package/dist/utils/git-staleness.d.ts +13 -0
  93. package/dist/utils/git-staleness.d.ts.map +1 -0
  94. package/dist/utils/git-staleness.js +129 -0
  95. package/dist/utils/git-staleness.js.map +1 -0
  96. package/dist/utils/stats-collector.d.ts +62 -0
  97. package/dist/utils/stats-collector.d.ts.map +1 -0
  98. package/dist/utils/stats-collector.js +253 -0
  99. package/dist/utils/stats-collector.js.map +1 -0
  100. package/dist/utils/validation.d.ts +1 -10
  101. package/dist/utils/validation.d.ts.map +1 -1
  102. package/dist/utils/validation.js +1 -15
  103. package/dist/utils/validation.js.map +1 -1
  104. package/dist/utils/validator.d.ts.map +1 -1
  105. package/dist/utils/validator.js +66 -1
  106. package/dist/utils/validator.js.map +1 -1
  107. package/package.json +6 -2
  108. package/templates/CLAUDE.md +1 -1
  109. package/templates/FUTURE-ENHANCEMENTS.md +1 -1
  110. package/templates/NEXT-TASKS.md +1 -1
  111. package/templates/PROMPTS.md +1 -1
  112. package/templates/README.md +1 -1
  113. package/templates/docs/archive/v1.0-CHANGELOG.md +1 -1
  114. package/templates/docs/core/ARCHITECTURE.md +1 -1
  115. package/templates/docs/core/DECISIONS.md +1 -1
  116. package/templates/docs/core/DOMAIN-LOGIC.md +1 -1
  117. package/templates/docs/core/GLOSSARY.md +1 -1
  118. package/templates/docs/core/PATTERNS.md +1 -1
  119. package/templates/docs/core/SCHEMA.md +1 -1
  120. package/templates/docs/core/TROUBLESHOOTING.md +1 -1
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ interface CostSavingsCardProps {
3
+ monthlyCost: number;
4
+ tokensAvoided: number;
5
+ percentReduction: number;
6
+ model: string;
7
+ }
8
+ export declare const CostSavingsCard: React.FC<CostSavingsCardProps>;
9
+ export {};
10
+ //# sourceMappingURL=CostSavingsCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CostSavingsCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/CostSavingsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,oBAAoB;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAKD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA2D1D,CAAC"}
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ export const CostSavingsCard = ({ monthlyCost, tokensAvoided, percentReduction, model, }) => {
4
+ const formatTokens = (tokens) => {
5
+ if (tokens >= 1_000_000) {
6
+ return `${(tokens / 1_000_000).toFixed(1)}M`;
7
+ }
8
+ else if (tokens >= 1_000) {
9
+ return `${(tokens / 1_000).toFixed(1)}K`;
10
+ }
11
+ return tokens.toString();
12
+ };
13
+ const formatCost = (cost) => {
14
+ if (cost < 0.01)
15
+ return '<$0.01';
16
+ return `$${cost.toFixed(2)}`;
17
+ };
18
+ const modelDisplay = model
19
+ .replace('claude-', 'Claude ')
20
+ .replace('sonnet-', 'Sonnet ')
21
+ .replace('opus-', 'Opus ')
22
+ .replace('haiku-', 'Haiku ');
23
+ return (React.createElement(Box, { flexDirection: "column", paddingY: 1, borderStyle: "round", borderColor: "green" },
24
+ React.createElement(Box, { paddingX: 2 },
25
+ React.createElement(Text, { bold: true, color: "green" }, "\uD83D\uDCB0 MONTHLY SAVINGS (ESTIMATED)")),
26
+ React.createElement(Box, { paddingX: 2, paddingTop: 1, justifyContent: "center" },
27
+ React.createElement(Text, { color: "green", bold: true },
28
+ "~",
29
+ formatCost(monthlyCost))),
30
+ React.createElement(Box, { paddingX: 2, justifyContent: "center" },
31
+ React.createElement(Text, { dimColor: true }, "estimated savings per month")),
32
+ React.createElement(Box, { paddingX: 2, paddingTop: 1 },
33
+ React.createElement(Text, { dimColor: true },
34
+ "Assumes: ",
35
+ modelDisplay,
36
+ " @ 10 sessions/day")),
37
+ React.createElement(Box, { paddingX: 2 },
38
+ React.createElement(Text, { dimColor: true },
39
+ "Tokens avoided: ",
40
+ formatTokens(tokensAvoided),
41
+ " (",
42
+ percentReduction.toFixed(0),
43
+ "% reduction)"))));
44
+ };
45
+ //# sourceMappingURL=CostSavingsCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CostSavingsCard.js","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/CostSavingsCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAYhC,MAAM,CAAC,MAAM,eAAe,GAAmC,CAAC,EAC9D,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,KAAK,GACN,EAAE,EAAE;IAEH,MAAM,YAAY,GAAG,CAAC,MAAc,EAAU,EAAE;QAC9C,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/C,CAAC;aAAM,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3C,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC,CAAC;IAGF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE;QAC1C,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,QAAQ,CAAC;QACjC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/B,CAAC,CAAC;IAGF,MAAM,YAAY,GAAG,KAAK;SACvB,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;SAC7B,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;SAC7B,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;SACzB,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE/B,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO;QAC9E,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC;YACd,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,OAAO,+CAEjB,CACH;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAC,QAAQ;YACtD,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI;;gBACpB,UAAU,CAAC,WAAW,CAAC,CACpB,CACH;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAC,QAAQ;YACvC,oBAAC,IAAI,IAAC,QAAQ,wCAAmC,CAC7C;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;YAC7B,oBAAC,IAAI,IAAC,QAAQ;;gBAAW,YAAY;qCAA0B,CAC3D;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC;YACd,oBAAC,IAAI,IAAC,QAAQ;;gBACK,YAAY,CAAC,aAAa,CAAC;;gBAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;+BAEtE,CACH,CACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ interface FileDistributionCardProps {
3
+ hot: number;
4
+ warm: number;
5
+ cold: number;
6
+ total: number;
7
+ }
8
+ export declare const FileDistributionCard: React.FC<FileDistributionCardProps>;
9
+ export {};
10
+ //# sourceMappingURL=FileDistributionCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileDistributionCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/FileDistributionCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,yBAAyB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAmEpE,CAAC"}
@@ -0,0 +1,51 @@
1
+ import React from 'react';
2
+ import { Box, Text, Newline } from 'ink';
3
+ export const FileDistributionCard = ({ hot, warm, cold, total, }) => {
4
+ const getPercentage = (count) => Math.round((count / total) * 100);
5
+ const getBarLength = (count) => Math.round((count / total) * 20);
6
+ return (React.createElement(React.Fragment, null,
7
+ React.createElement(Box, { flexDirection: "column", borderStyle: "single", borderColor: "gray", paddingX: 1 },
8
+ React.createElement(Text, { bold: true }, "\uD83D\uDCC1 FILE DISTRIBUTION"),
9
+ React.createElement(Newline, null),
10
+ React.createElement(Box, null,
11
+ React.createElement(Box, { width: 20 },
12
+ React.createElement(Text, { color: "yellow" }, "\uD83D\uDD25 HOT")),
13
+ React.createElement(Box, { width: 8 },
14
+ React.createElement(Text, { color: "white" }, hot)),
15
+ React.createElement(Text, { dimColor: true },
16
+ "(",
17
+ getPercentage(hot),
18
+ "%)"),
19
+ React.createElement(Box, null,
20
+ React.createElement(Text, { color: "yellow" }, '█'.repeat(getBarLength(hot))),
21
+ React.createElement(Text, { dimColor: true }, '░'.repeat(20 - getBarLength(hot))))),
22
+ React.createElement(Newline, null),
23
+ React.createElement(Box, null,
24
+ React.createElement(Box, { width: 20 },
25
+ React.createElement(Text, { color: "blue" }, "\uD83C\uDF21\uFE0F WARM")),
26
+ React.createElement(Box, { width: 8 },
27
+ React.createElement(Text, { color: "white" }, warm)),
28
+ React.createElement(Text, { dimColor: true },
29
+ "(",
30
+ getPercentage(warm),
31
+ "%)"),
32
+ React.createElement(Box, null,
33
+ React.createElement(Text, { color: "blue" }, '█'.repeat(getBarLength(warm))),
34
+ React.createElement(Text, { dimColor: true }, '░'.repeat(20 - getBarLength(warm))))),
35
+ React.createElement(Newline, null),
36
+ React.createElement(Box, null,
37
+ React.createElement(Box, { width: 20 },
38
+ React.createElement(Text, { color: "cyan" }, "\u2744\uFE0F COLD")),
39
+ React.createElement(Box, { width: 8 },
40
+ React.createElement(Text, { color: "white" }, cold)),
41
+ React.createElement(Text, { dimColor: true },
42
+ "(",
43
+ getPercentage(cold),
44
+ "%)"),
45
+ React.createElement(Box, null,
46
+ React.createElement(Text, { color: "cyan" }, '█'.repeat(getBarLength(cold))),
47
+ React.createElement(Text, { dimColor: true }, '░'.repeat(20 - getBarLength(cold)))))),
48
+ React.createElement(Newline, null),
49
+ React.createElement(Newline, null)));
50
+ };
51
+ //# sourceMappingURL=FileDistributionCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileDistributionCard.js","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/FileDistributionCard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ interface FileSizeHealthItem {
3
+ file: string;
4
+ lines: number;
5
+ limit: number;
6
+ percent: number;
7
+ status: 'healthy' | 'warning' | 'over';
8
+ }
9
+ interface FileSizeHealthCardProps {
10
+ files: FileSizeHealthItem[];
11
+ maxDisplay?: number;
12
+ }
13
+ export declare const FileSizeHealthCard: React.FC<FileSizeHealthCardProps>;
14
+ export {};
15
+ //# sourceMappingURL=FileSizeHealthCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileSizeHealthCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/FileSizeHealthCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,kBAAkB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;CACxC;AAED,UAAU,uBAAuB;IAC/B,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAKD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAiEhE,CAAC"}
@@ -0,0 +1,48 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ export const FileSizeHealthCard = ({ files, maxDisplay = 5, }) => {
4
+ const topFiles = files.slice(0, maxDisplay);
5
+ const overLimitCount = files.filter((f) => f.status === 'over').length;
6
+ const getStatusDisplay = (status) => {
7
+ switch (status) {
8
+ case 'over':
9
+ return { emoji: '🔴', color: 'red' };
10
+ case 'warning':
11
+ return { emoji: '🟡', color: 'yellow' };
12
+ case 'healthy':
13
+ return { emoji: '🟢', color: 'green' };
14
+ default:
15
+ return { emoji: '⚪', color: 'gray' };
16
+ }
17
+ };
18
+ return (React.createElement(Box, { flexDirection: "column", paddingY: 1, borderStyle: "round", borderColor: "yellow" },
19
+ React.createElement(Box, { paddingX: 2 },
20
+ React.createElement(Text, { bold: true, color: "yellow" }, "\uD83D\uDCCF FILE SIZE HEALTH")),
21
+ topFiles.length === 0 ? (React.createElement(Box, { paddingX: 2, paddingTop: 1 },
22
+ React.createElement(Text, { dimColor: true }, "No tracked files found"))) : (React.createElement(React.Fragment, null,
23
+ topFiles.map((file) => {
24
+ const { emoji, color } = getStatusDisplay(file.status);
25
+ return (React.createElement(Box, { key: file.file, paddingX: 2, paddingTop: 1 },
26
+ React.createElement(Text, null,
27
+ emoji,
28
+ " "),
29
+ React.createElement(Text, { color: color }, file.file.padEnd(30)),
30
+ React.createElement(Text, { dimColor: true },
31
+ ' ',
32
+ file.lines,
33
+ "/",
34
+ file.limit,
35
+ " lines (",
36
+ file.percent,
37
+ "%)")));
38
+ }),
39
+ overLimitCount > 0 && (React.createElement(Box, { paddingX: 2, paddingTop: 1 },
40
+ React.createElement(Text, { color: "red", bold: true },
41
+ overLimitCount,
42
+ " file",
43
+ overLimitCount > 1 ? 's' : '',
44
+ " over limit"),
45
+ React.createElement(Text, { dimColor: true }, " \u2022 Run: "),
46
+ React.createElement(Text, { color: "cyan" }, "cortex-tms validate --fix")))))));
47
+ };
48
+ //# sourceMappingURL=FileSizeHealthCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileSizeHealthCard.js","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/FileSizeHealthCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAkBhC,MAAM,CAAC,MAAM,kBAAkB,GAAsC,CAAC,EACpE,KAAK,EACL,UAAU,GAAG,CAAC,GACf,EAAE,EAAE;IAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAG5C,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAGvE,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAE,EAAE;QAC1C,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,MAAM;gBACT,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAc,EAAE,CAAC;YAChD,KAAK,SAAS;gBACZ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAiB,EAAE,CAAC;YACnD,KAAK,SAAS;gBACZ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAgB,EAAE,CAAC;YAClD;gBACE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAe,EAAE,CAAC;QAClD,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,QAAQ;QAC/E,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC;YACd,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,QAAQ,oCAElB,CACH;QAEL,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACvB,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;YAC7B,oBAAC,IAAI,IAAC,QAAQ,mCAA8B,CACxC,CACP,CAAC,CAAC,CAAC,CACF;YACG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvD,OAAO,CACL,oBAAC,GAAG,IAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;oBAC7C,oBAAC,IAAI;wBAAE,KAAK;4BAAS;oBACrB,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,IAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAQ;oBACjD,oBAAC,IAAI,IAAC,QAAQ;wBACX,GAAG;wBACH,IAAI,CAAC,KAAK;;wBAAG,IAAI,CAAC,KAAK;;wBAAU,IAAI,CAAC,OAAO;6BACzC,CACH,CACP,CAAC;YACJ,CAAC,CAAC;YAED,cAAc,GAAG,CAAC,IAAI,CACrB,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;gBAC7B,oBAAC,IAAI,IAAC,KAAK,EAAC,KAAK,EAAC,IAAI;oBACnB,cAAc;;oBAAO,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;kCAC9C;gBACP,oBAAC,IAAI,IAAC,QAAQ,0BAAgB;gBAC9B,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,gCAAiC,CAC/C,CACP,CACA,CACJ,CACG,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const Footer: React.FC;
3
+ //# sourceMappingURL=Footer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/Footer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAe1B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ export const Footer = () => {
4
+ return (React.createElement(Box, { flexDirection: "column", paddingTop: 1 },
5
+ React.createElement(Box, { justifyContent: "center" },
6
+ React.createElement(Text, { dimColor: true }, "Tab: Switch view \u2022 1/2/3: Jump to view \u2022 q: Quit")),
7
+ React.createElement(Box, { justifyContent: "center" },
8
+ React.createElement(Text, { dimColor: true },
9
+ "Use ",
10
+ React.createElement(Text, { color: "cyan" }, "--live"),
11
+ " for auto-refresh (5s interval)"))));
12
+ };
13
+ //# sourceMappingURL=Footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/Footer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAEhC,MAAM,CAAC,MAAM,MAAM,GAAa,GAAG,EAAE;IACnC,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC;QACvC,oBAAC,GAAG,IAAC,cAAc,EAAC,QAAQ;YAC1B,oBAAC,IAAI,IAAC,QAAQ,uEAEP,CACH;QACN,oBAAC,GAAG,IAAC,cAAc,EAAC,QAAQ;YAC1B,oBAAC,IAAI,IAAC,QAAQ;;gBACR,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,aAAc;kDAC/B,CACH,CACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ interface GovernanceHealthCardProps {
3
+ score: number;
4
+ validationStatus: 'healthy' | 'warnings' | 'errors' | 'unknown';
5
+ guardianStatus: 'compliant' | 'minor_issues' | 'major_violations' | 'unknown';
6
+ staleness: number;
7
+ }
8
+ export declare const GovernanceHealthCard: React.FC<GovernanceHealthCardProps>;
9
+ export {};
10
+ //# sourceMappingURL=GovernanceHealthCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GovernanceHealthCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/GovernanceHealthCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,yBAAyB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChE,cAAc,EAAE,WAAW,GAAG,cAAc,GAAG,kBAAkB,GAAG,SAAS,CAAC;IAC9E,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA2DpE,CAAC"}
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ export const GovernanceHealthCard = ({ score, validationStatus, guardianStatus, staleness, }) => {
4
+ const getScoreColor = (score) => {
5
+ if (score >= 80)
6
+ return 'green';
7
+ if (score >= 60)
8
+ return 'yellow';
9
+ return 'red';
10
+ };
11
+ const getStatusEmoji = () => {
12
+ if (score >= 80)
13
+ return '✅';
14
+ if (score >= 60)
15
+ return '⚠️';
16
+ return '❌';
17
+ };
18
+ const scoreColor = getScoreColor(score);
19
+ return (React.createElement(Box, { flexDirection: "column", paddingY: 1, borderStyle: "round", borderColor: scoreColor },
20
+ React.createElement(Box, { paddingX: 2 },
21
+ React.createElement(Text, { bold: true, color: scoreColor },
22
+ getStatusEmoji(),
23
+ " GOVERNANCE HEALTH")),
24
+ React.createElement(Box, { paddingX: 2, paddingTop: 1, justifyContent: "center" },
25
+ React.createElement(Text, { color: scoreColor, bold: true },
26
+ score,
27
+ "/100")),
28
+ React.createElement(Box, { paddingX: 2, justifyContent: "center" },
29
+ React.createElement(Text, { dimColor: true }, "overall quality score")),
30
+ React.createElement(Box, { paddingX: 2, paddingTop: 1 },
31
+ React.createElement(Text, { dimColor: true },
32
+ "Validation: ",
33
+ React.createElement(Text, { color: validationStatus === 'healthy' ? 'green' : 'yellow' }, validationStatus))),
34
+ React.createElement(Box, { paddingX: 2 },
35
+ React.createElement(Text, { dimColor: true },
36
+ "Guardian: ",
37
+ React.createElement(Text, { color: guardianStatus === 'compliant' ? 'green' : 'yellow' }, guardianStatus))),
38
+ React.createElement(Box, { paddingX: 2 },
39
+ React.createElement(Text, { dimColor: true },
40
+ "Stale docs: ",
41
+ React.createElement(Text, { color: staleness === 0 ? 'green' : 'yellow' }, staleness)))));
42
+ };
43
+ //# sourceMappingURL=GovernanceHealthCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GovernanceHealthCard.js","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/GovernanceHealthCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAYhC,MAAM,CAAC,MAAM,oBAAoB,GAAwC,CAAC,EACxE,KAAK,EACL,gBAAgB,EAChB,cAAc,EACd,SAAS,GACV,EAAE,EAAE;IAEH,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE;QAC9C,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,OAAO,CAAC;QAChC,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,QAAQ,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAGF,MAAM,cAAc,GAAG,GAAW,EAAE;QAClC,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,GAAG,CAAC;QAC5B,IAAI,KAAK,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAC7B,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAExC,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAC,OAAO,EAAC,WAAW,EAAE,UAAU;QAClF,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC;YACd,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,UAAU;gBACzB,cAAc,EAAE;qCACZ,CACH;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,cAAc,EAAC,QAAQ;YACtD,oBAAC,IAAI,IAAC,KAAK,EAAE,UAAU,EAAE,IAAI;gBAC1B,KAAK;uBACD,CACH;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAC,QAAQ;YACvC,oBAAC,IAAI,IAAC,QAAQ,kCAA6B,CACvC;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;YAC7B,oBAAC,IAAI,IAAC,QAAQ;;gBACA,oBAAC,IAAI,IAAC,KAAK,EAAE,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAG,gBAAgB,CAAQ,CAClG,CACH;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC;YACd,oBAAC,IAAI,IAAC,QAAQ;;gBACF,oBAAC,IAAI,IAAC,KAAK,EAAE,cAAc,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAG,cAAc,CAAQ,CAC9F,CACH;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC;YACd,oBAAC,IAAI,IAAC,QAAQ;;gBACA,oBAAC,IAAI,IAAC,KAAK,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAG,SAAS,CAAQ,CAC5E,CACH,CACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ interface GuardianStatusCardProps {
3
+ status: 'compliant' | 'minor_issues' | 'major_violations' | 'unknown';
4
+ violationCount: number;
5
+ highConfidenceCount: number;
6
+ lastChecked: Date | null;
7
+ }
8
+ export declare const GuardianStatusCard: React.FC<GuardianStatusCardProps>;
9
+ export {};
10
+ //# sourceMappingURL=GuardianStatusCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GuardianStatusCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/GuardianStatusCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,uBAAuB;IAC/B,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,kBAAkB,GAAG,SAAS,CAAC;IACtE,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CAC1B;AAKD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA4EhE,CAAC"}
@@ -0,0 +1,58 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ export const GuardianStatusCard = ({ status, violationCount, highConfidenceCount, lastChecked, }) => {
4
+ const formatTimeAgo = (date) => {
5
+ const now = new Date();
6
+ const diffMs = now.getTime() - date.getTime();
7
+ const diffMins = Math.floor(diffMs / 60000);
8
+ const diffHours = Math.floor(diffMins / 60);
9
+ const diffDays = Math.floor(diffHours / 24);
10
+ if (diffDays > 0)
11
+ return `${diffDays} day${diffDays > 1 ? 's' : ''} ago`;
12
+ if (diffHours > 0)
13
+ return `${diffHours} hour${diffHours > 1 ? 's' : ''} ago`;
14
+ if (diffMins > 0)
15
+ return `${diffMins} minute${diffMins > 1 ? 's' : ''} ago`;
16
+ return 'just now';
17
+ };
18
+ const getStatusDisplay = () => {
19
+ switch (status) {
20
+ case 'compliant':
21
+ return { emoji: '✅', label: 'All Clear', color: 'green' };
22
+ case 'minor_issues':
23
+ return { emoji: '⚠️ ', label: 'Minor Issues Found', color: 'yellow' };
24
+ case 'major_violations':
25
+ return { emoji: '❌', label: 'Major Violations', color: 'red' };
26
+ default:
27
+ return { emoji: '❓', label: 'Not Reviewed Yet', color: 'gray' };
28
+ }
29
+ };
30
+ const { emoji, label, color } = getStatusDisplay();
31
+ return (React.createElement(Box, { flexDirection: "column", paddingY: 1, borderStyle: "round", borderColor: color },
32
+ React.createElement(Box, { paddingX: 2 },
33
+ React.createElement(Text, { bold: true, color: color }, "\uD83D\uDEE1\uFE0F GUARDIAN CODE REVIEW")),
34
+ React.createElement(Box, { paddingX: 2, paddingTop: 1 },
35
+ React.createElement(Text, { color: color },
36
+ emoji,
37
+ " ",
38
+ label)),
39
+ lastChecked ? (React.createElement(React.Fragment, null,
40
+ React.createElement(Box, { paddingX: 2, paddingTop: 1 },
41
+ React.createElement(Text, { dimColor: true },
42
+ "Last review: ",
43
+ formatTimeAgo(lastChecked))),
44
+ violationCount > 0 && (React.createElement(Box, { paddingX: 2 },
45
+ React.createElement(Text, { dimColor: true },
46
+ "Violations: ",
47
+ violationCount,
48
+ " total (",
49
+ highConfidenceCount,
50
+ " high-confidence)"))))) : (React.createElement(Box, { paddingX: 2, paddingTop: 1 },
51
+ React.createElement(Text, { dimColor: true }, "No reviews performed yet"))),
52
+ React.createElement(Box, { paddingX: 2, paddingTop: 1 },
53
+ React.createElement(Text, { dimColor: true }, "Run: "),
54
+ React.createElement(Text, { color: "cyan" },
55
+ "cortex-tms review ",
56
+ '<file>'))));
57
+ };
58
+ //# sourceMappingURL=GuardianStatusCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GuardianStatusCard.js","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/GuardianStatusCard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface HeaderProps {
3
+ projectName: string;
4
+ }
5
+ export declare const Header: React.FC<HeaderProps>;
6
+ export {};
7
+ //# sourceMappingURL=Header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,UAAU,WAAW;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA8BxC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import { Box, Text, Newline } from 'ink';
3
+ export const Header = ({ projectName }) => {
4
+ const [time, setTime] = useState(new Date());
5
+ useEffect(() => {
6
+ const interval = setInterval(() => setTime(new Date()), 1000);
7
+ return () => clearInterval(interval);
8
+ }, []);
9
+ return (React.createElement(React.Fragment, null,
10
+ React.createElement(Box, { justifyContent: "center" },
11
+ React.createElement(Text, { bold: true, color: "cyan" }, "\uD83E\uDDE0 CORTEX TMS DASHBOARD")),
12
+ React.createElement(Newline, null),
13
+ React.createElement(Box, { justifyContent: "space-between" },
14
+ React.createElement(Text, { dimColor: true },
15
+ "Project: ",
16
+ React.createElement(Text, { color: "white" }, projectName)),
17
+ React.createElement(Text, { dimColor: true }, time.toLocaleTimeString())),
18
+ React.createElement(Newline, null),
19
+ React.createElement(Newline, null)));
20
+ };
21
+ //# sourceMappingURL=Header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAMzC,MAAM,CAAC,MAAM,MAAM,GAA0B,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;IAC/D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAG7C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9D,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL;QACE,oBAAC,GAAG,IAAC,cAAc,EAAC,QAAQ;YAC1B,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,wCAEhB,CACH;QAEN,oBAAC,OAAO,OAAG;QAEX,oBAAC,GAAG,IAAC,cAAc,EAAC,eAAe;YACjC,oBAAC,IAAI,IAAC,QAAQ;;gBACH,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO,IAAE,WAAW,CAAQ,CAC5C;YACP,oBAAC,IAAI,IAAC,QAAQ,UAAE,IAAI,CAAC,kBAAkB,EAAE,CAAQ,CAC7C;QAEN,oBAAC,OAAO,OAAG;QACX,oBAAC,OAAO,OAAG,CACV,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface HotFilesCardProps {
3
+ hotFiles: string[];
4
+ count: number;
5
+ }
6
+ export declare const HotFilesCard: React.FC<HotFilesCardProps>;
7
+ export {};
8
+ //# sourceMappingURL=HotFilesCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HotFilesCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/HotFilesCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA0CpD,CAAC"}
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import { Box, Text, Newline } from 'ink';
3
+ export const HotFilesCard = ({ hotFiles, count }) => {
4
+ return (React.createElement(React.Fragment, null,
5
+ React.createElement(Box, { flexDirection: "column", borderStyle: "single", borderColor: "yellow", paddingX: 1 },
6
+ React.createElement(Text, { bold: true, color: "yellow" },
7
+ "\uD83D\uDD25 ACTIVE FILES (",
8
+ count,
9
+ ")"),
10
+ React.createElement(Newline, null),
11
+ count > 0 ? (React.createElement(Box, { flexDirection: "column" },
12
+ hotFiles.slice(0, 5).map((file, i) => (React.createElement(Box, { key: i },
13
+ React.createElement(Text, { dimColor: true }, " \u2022 "),
14
+ React.createElement(Text, { color: "white" }, file)))),
15
+ count > 5 && (React.createElement(React.Fragment, null,
16
+ React.createElement(Newline, null),
17
+ React.createElement(Text, { dimColor: true },
18
+ " +",
19
+ count - 5,
20
+ " more files"))))) : (React.createElement(Box, null,
21
+ React.createElement(Text, { dimColor: true }, " No HOT files detected"))),
22
+ React.createElement(Newline, null),
23
+ React.createElement(Box, null,
24
+ React.createElement(Text, { dimColor: true }, "These files are always loaded by AI assistants"))),
25
+ React.createElement(Newline, null),
26
+ React.createElement(Newline, null)));
27
+ };
28
+ //# sourceMappingURL=HotFilesCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HotFilesCard.js","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/HotFilesCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAOzC,MAAM,CAAC,MAAM,YAAY,GAAgC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IAC/E,OAAO,CACL;QACE,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC;YAC/E,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,QAAQ;;gBACL,KAAK;oBAClB;YAEP,oBAAC,OAAO,OAAG;YAEV,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CACX,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ;gBACxB,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACrC,oBAAC,GAAG,IAAC,GAAG,EAAE,CAAC;oBACT,oBAAC,IAAI,IAAC,QAAQ,sBAAY;oBAC1B,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO,IAAE,IAAI,CAAQ,CAC7B,CACP,CAAC;gBACD,KAAK,GAAG,CAAC,IAAI,CACZ;oBACE,oBAAC,OAAO,OAAG;oBACX,oBAAC,IAAI,IAAC,QAAQ;;wBAAK,KAAK,GAAG,CAAC;sCAAmB,CAC9C,CACJ,CACG,CACP,CAAC,CAAC,CAAC,CACF,oBAAC,GAAG;gBACF,oBAAC,IAAI,IAAC,QAAQ,oCAA+B,CACzC,CACP;YAED,oBAAC,OAAO,OAAG;YAEX,oBAAC,GAAG;gBACF,oBAAC,IAAI,IAAC,QAAQ,2DAAsD,CAChE,CACF;QAEN,oBAAC,OAAO,OAAG;QACX,oBAAC,OAAO,OAAG,CACV,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ interface NotConfiguredCardProps {
3
+ title: string;
4
+ message: string;
5
+ icon?: string;
6
+ color?: 'gray' | 'yellow' | 'cyan';
7
+ }
8
+ export declare const NotConfiguredCard: React.FC<NotConfiguredCardProps>;
9
+ export {};
10
+ //# sourceMappingURL=NotConfiguredCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotConfiguredCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/NotConfiguredCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,sBAAsB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;CACpC;AAKD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAmB9D,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ export const NotConfiguredCard = ({ title, message, icon = '⚙️ ', color = 'gray', }) => {
4
+ return (React.createElement(Box, { flexDirection: "column", paddingY: 1, borderStyle: "round", borderColor: color },
5
+ React.createElement(Box, { paddingX: 2 },
6
+ React.createElement(Text, { bold: true, color: color },
7
+ icon,
8
+ " ",
9
+ title)),
10
+ React.createElement(Box, { paddingX: 2, paddingTop: 1 },
11
+ React.createElement(Text, { dimColor: true }, message))));
12
+ };
13
+ //# sourceMappingURL=NotConfiguredCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotConfiguredCard.js","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/NotConfiguredCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAYhC,MAAM,CAAC,MAAM,iBAAiB,GAAqC,CAAC,EAClE,KAAK,EACL,OAAO,EACP,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,MAAM,GACf,EAAE,EAAE;IACH,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAC,OAAO,EAAC,WAAW,EAAE,KAAK;QAC7E,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC;YACd,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,KAAK;gBACpB,IAAI;;gBAAG,KAAK,CACR,CACH;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;YAC7B,oBAAC,IAAI,IAAC,QAAQ,UAAE,OAAO,CAAQ,CAC3B,CACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ interface SprintProgressCardProps {
3
+ sprintName: string;
4
+ progress: number;
5
+ done: number;
6
+ inProgress: number;
7
+ todo: number;
8
+ }
9
+ export declare const SprintProgressCard: React.FC<SprintProgressCardProps>;
10
+ export {};
11
+ //# sourceMappingURL=SprintProgressCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SprintProgressCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/SprintProgressCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,uBAAuB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAKD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA2ChE,CAAC"}
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { Box, Text } from 'ink';
3
+ export const SprintProgressCard = ({ sprintName, progress, done, inProgress, todo, }) => {
4
+ const barWidth = 40;
5
+ const filled = Math.round((progress / 100) * barWidth);
6
+ const empty = barWidth - filled;
7
+ const progressBar = '█'.repeat(filled) + '░'.repeat(empty);
8
+ return (React.createElement(Box, { flexDirection: "column", paddingY: 1, borderStyle: "round", borderColor: "cyan" },
9
+ React.createElement(Box, { paddingX: 2 },
10
+ React.createElement(Text, { bold: true, color: "cyan" }, "\uD83C\uDFAF SPRINT PROGRESS")),
11
+ React.createElement(Box, { paddingX: 2, paddingTop: 1 },
12
+ React.createElement(Text, { dimColor: true }, "Current: "),
13
+ React.createElement(Text, null, sprintName)),
14
+ React.createElement(Box, { paddingX: 2, paddingTop: 1 },
15
+ React.createElement(Text, { color: "green" }, progressBar),
16
+ React.createElement(Text, { color: "cyan", bold: true },
17
+ ' ',
18
+ progress,
19
+ "%")),
20
+ React.createElement(Box, { paddingX: 2, paddingTop: 1 },
21
+ React.createElement(Text, { color: "green" },
22
+ "\u2705 Done: ",
23
+ done),
24
+ React.createElement(Text, { dimColor: true }, " | "),
25
+ React.createElement(Text, { color: "yellow" },
26
+ "\uD83D\uDD04 In Progress: ",
27
+ inProgress),
28
+ React.createElement(Text, { dimColor: true }, " | "),
29
+ React.createElement(Text, { color: "gray" },
30
+ "\uD83D\uDCCB Todo: ",
31
+ todo))));
32
+ };
33
+ //# sourceMappingURL=SprintProgressCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SprintProgressCard.js","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/SprintProgressCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAahC,MAAM,CAAC,MAAM,kBAAkB,GAAsC,CAAC,EACpE,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,IAAI,GACL,EAAE,EAAE;IAEH,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE3D,OAAO,CACL,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,MAAM;QAC7E,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC;YACd,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,mCAEhB,CACH;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;YAC7B,oBAAC,IAAI,IAAC,QAAQ,sBAAiB;YAC/B,oBAAC,IAAI,QAAE,UAAU,CAAQ,CACrB;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;YAC7B,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO,IAAE,WAAW,CAAQ;YACxC,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI;gBACpB,GAAG;gBACH,QAAQ;oBACJ,CACH;QAEN,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;YAC7B,oBAAC,IAAI,IAAC,KAAK,EAAC,OAAO;;gBAAU,IAAI,CAAQ;YACzC,oBAAC,IAAI,IAAC,QAAQ,gBAAW;YACzB,oBAAC,IAAI,IAAC,KAAK,EAAC,QAAQ;;gBAAkB,UAAU,CAAQ;YACxD,oBAAC,IAAI,IAAC,QAAQ,gBAAW;YACzB,oBAAC,IAAI,IAAC,KAAK,EAAC,MAAM;;gBAAW,IAAI,CAAQ,CACrC,CACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ interface StalenessCardProps {
3
+ staleDocsCount: number;
4
+ totalDocsCount: number;
5
+ freshnessPercent: number;
6
+ oldestDocDays?: number | undefined;
7
+ }
8
+ export declare const StalenessCard: React.FC<StalenessCardProps>;
9
+ export {};
10
+ //# sourceMappingURL=StalenessCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StalenessCard.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/dashboard/StalenessCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,kBAAkB;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAKD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAwEtD,CAAC"}