cadr-cli 2.0.0 → 2.0.2

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 (153) hide show
  1. package/dist/adr/adr.d.ts +17 -0
  2. package/dist/adr/adr.d.ts.map +1 -0
  3. package/dist/{adr.js → adr/adr.js} +4 -44
  4. package/dist/adr/adr.js.map +1 -0
  5. package/dist/adr/adr.test.d.ts +5 -0
  6. package/dist/{adr.test.d.ts.map → adr/adr.test.d.ts.map} +1 -1
  7. package/dist/{adr.test.js → adr/adr.test.js} +0 -14
  8. package/dist/adr/adr.test.js.map +1 -0
  9. package/dist/adr/index.d.ts +2 -0
  10. package/dist/adr/index.d.ts.map +1 -0
  11. package/dist/adr/index.js +18 -0
  12. package/dist/adr/index.js.map +1 -0
  13. package/dist/analysis/analysis.orchestrator.d.ts +14 -0
  14. package/dist/analysis/analysis.orchestrator.d.ts.map +1 -0
  15. package/dist/analysis/analysis.orchestrator.js +175 -0
  16. package/dist/analysis/analysis.orchestrator.js.map +1 -0
  17. package/dist/analysis/analysis.orchestrator.test.d.ts +2 -0
  18. package/dist/analysis/analysis.orchestrator.test.d.ts.map +1 -0
  19. package/dist/analysis/analysis.orchestrator.test.js +177 -0
  20. package/dist/analysis/analysis.orchestrator.test.js.map +1 -0
  21. package/dist/analysis/strategies/git-strategy.d.ts +22 -0
  22. package/dist/analysis/strategies/git-strategy.d.ts.map +1 -0
  23. package/dist/analysis/strategies/git-strategy.js +114 -0
  24. package/dist/analysis/strategies/git-strategy.js.map +1 -0
  25. package/dist/analysis/strategies/git-strategy.test.d.ts +2 -0
  26. package/dist/analysis/strategies/git-strategy.test.d.ts.map +1 -0
  27. package/dist/analysis/strategies/git-strategy.test.js +147 -0
  28. package/dist/analysis/strategies/git-strategy.test.js.map +1 -0
  29. package/dist/commands/analyze.js +3 -3
  30. package/dist/commands/analyze.js.map +1 -1
  31. package/dist/commands/analyze.test.d.ts +2 -0
  32. package/dist/commands/analyze.test.d.ts.map +1 -0
  33. package/dist/commands/analyze.test.js +70 -0
  34. package/dist/commands/analyze.test.js.map +1 -0
  35. package/dist/commands/init.test.js +128 -2
  36. package/dist/commands/init.test.js.map +1 -1
  37. package/dist/config.test.js +167 -0
  38. package/dist/config.test.js.map +1 -1
  39. package/dist/git/git.errors.d.ts +6 -0
  40. package/dist/git/git.errors.d.ts.map +1 -0
  41. package/dist/git/git.errors.js +15 -0
  42. package/dist/git/git.errors.js.map +1 -0
  43. package/dist/git/git.errors.test.d.ts +2 -0
  44. package/dist/git/git.errors.test.d.ts.map +1 -0
  45. package/dist/git/git.errors.test.js +34 -0
  46. package/dist/git/git.errors.test.js.map +1 -0
  47. package/dist/git/git.operations.d.ts +12 -0
  48. package/dist/git/git.operations.d.ts.map +1 -0
  49. package/dist/git/git.operations.js +64 -0
  50. package/dist/git/git.operations.js.map +1 -0
  51. package/dist/git/git.operations.test.d.ts +2 -0
  52. package/dist/git/git.operations.test.d.ts.map +1 -0
  53. package/dist/git/git.operations.test.js +164 -0
  54. package/dist/git/git.operations.test.js.map +1 -0
  55. package/dist/git/index.d.ts +4 -0
  56. package/dist/git/index.d.ts.map +1 -0
  57. package/dist/git/index.js +19 -0
  58. package/dist/git/index.js.map +1 -0
  59. package/dist/llm/index.d.ts +3 -0
  60. package/dist/llm/index.d.ts.map +1 -0
  61. package/dist/llm/index.js +19 -0
  62. package/dist/llm/index.js.map +1 -0
  63. package/dist/llm/llm.d.ts +35 -0
  64. package/dist/llm/llm.d.ts.map +1 -0
  65. package/dist/{llm.js → llm/llm.js} +16 -58
  66. package/dist/llm/llm.js.map +1 -0
  67. package/dist/{llm.test.d.ts.map → llm/llm.test.d.ts.map} +1 -1
  68. package/dist/llm/llm.test.js +224 -0
  69. package/dist/llm/llm.test.js.map +1 -0
  70. package/dist/{prompts.d.ts → llm/prompts.d.ts} +1 -38
  71. package/dist/llm/prompts.d.ts.map +1 -0
  72. package/dist/{prompts.js → llm/prompts.js} +9 -54
  73. package/dist/llm/prompts.js.map +1 -0
  74. package/dist/llm/response-parser.d.ts +9 -0
  75. package/dist/llm/response-parser.d.ts.map +1 -0
  76. package/dist/llm/response-parser.js +67 -0
  77. package/dist/llm/response-parser.js.map +1 -0
  78. package/dist/llm/response-parser.test.d.ts +2 -0
  79. package/dist/llm/response-parser.test.d.ts.map +1 -0
  80. package/dist/llm/response-parser.test.js +134 -0
  81. package/dist/llm/response-parser.test.js.map +1 -0
  82. package/dist/presenters/console-presenter.d.ts +35 -0
  83. package/dist/presenters/console-presenter.d.ts.map +1 -0
  84. package/dist/presenters/console-presenter.js +114 -0
  85. package/dist/presenters/console-presenter.js.map +1 -0
  86. package/dist/presenters/console-presenter.test.d.ts +2 -0
  87. package/dist/presenters/console-presenter.test.d.ts.map +1 -0
  88. package/dist/presenters/console-presenter.test.js +227 -0
  89. package/dist/presenters/console-presenter.test.js.map +1 -0
  90. package/dist/version.test.d.ts +1 -2
  91. package/dist/version.test.d.ts.map +1 -1
  92. package/dist/version.test.js +29 -16
  93. package/dist/version.test.js.map +1 -1
  94. package/package.json +1 -1
  95. package/src/{adr.test.ts → adr/adr.test.ts} +10 -23
  96. package/src/{adr.ts → adr/adr.ts} +7 -48
  97. package/src/adr/index.ts +1 -0
  98. package/src/analysis/analysis.orchestrator.test.ts +237 -0
  99. package/src/analysis/analysis.orchestrator.ts +175 -0
  100. package/src/analysis/strategies/git-strategy.test.ts +210 -0
  101. package/src/analysis/strategies/git-strategy.ts +106 -0
  102. package/src/commands/analyze.test.ts +91 -0
  103. package/src/commands/analyze.ts +8 -9
  104. package/src/commands/init.test.ts +200 -5
  105. package/src/config.test.ts +232 -2
  106. package/src/git/git.errors.test.ts +43 -0
  107. package/src/git/git.errors.ts +10 -0
  108. package/src/git/git.operations.test.ts +222 -0
  109. package/src/git/git.operations.ts +85 -0
  110. package/src/git/index.ts +3 -0
  111. package/src/llm/index.ts +2 -0
  112. package/src/llm/llm.test.ts +315 -0
  113. package/src/{llm.ts → llm/llm.ts} +46 -107
  114. package/src/{prompts.ts → llm/prompts.ts} +30 -72
  115. package/src/llm/response-parser.test.ts +170 -0
  116. package/src/llm/response-parser.ts +90 -0
  117. package/src/presenters/console-presenter.test.ts +259 -0
  118. package/src/presenters/console-presenter.ts +152 -0
  119. package/src/version.test.ts +30 -16
  120. package/dist/adr.d.ts +0 -50
  121. package/dist/adr.d.ts.map +0 -1
  122. package/dist/adr.js.map +0 -1
  123. package/dist/adr.test.d.ts +0 -8
  124. package/dist/adr.test.js.map +0 -1
  125. package/dist/analysis.d.ts +0 -24
  126. package/dist/analysis.d.ts.map +0 -1
  127. package/dist/analysis.js +0 -281
  128. package/dist/analysis.js.map +0 -1
  129. package/dist/analysis.test.d.ts +0 -8
  130. package/dist/analysis.test.d.ts.map +0 -1
  131. package/dist/analysis.test.js +0 -351
  132. package/dist/analysis.test.js.map +0 -1
  133. package/dist/git.d.ts +0 -54
  134. package/dist/git.d.ts.map +0 -1
  135. package/dist/git.js +0 -204
  136. package/dist/git.js.map +0 -1
  137. package/dist/llm.d.ts +0 -73
  138. package/dist/llm.d.ts.map +0 -1
  139. package/dist/llm.js.map +0 -1
  140. package/dist/llm.test.js +0 -592
  141. package/dist/llm.test.js.map +0 -1
  142. package/dist/prompts.d.ts.map +0 -1
  143. package/dist/prompts.js.map +0 -1
  144. package/dist/prompts.test.d.ts +0 -2
  145. package/dist/prompts.test.d.ts.map +0 -1
  146. package/dist/prompts.test.js +0 -427
  147. package/dist/prompts.test.js.map +0 -1
  148. package/src/analysis.test.ts +0 -396
  149. package/src/analysis.ts +0 -262
  150. package/src/git.ts +0 -300
  151. package/src/llm.test.ts +0 -701
  152. package/src/prompts.test.ts +0 -515
  153. /package/dist/{llm.test.d.ts → llm/llm.test.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"llm.test.js","sourceRoot":"","sources":["../src/llm.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,ksCAoB9B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACnD,MAAM,CAUR;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,ihEA0DhC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACnD,MAAM,CAWR;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAqB1E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCH,oCAaC;AA0ED,wDAaC;AAQD,kDAqBC;AAtKD,mDAAqC;AAErC;;;;;GAKG;AACU,QAAA,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;CAoBjC,CAAC;AAEF;;;;;;GAMG;AACH,SAAgB,YAAY,CAC1B,QAAgB,EAChB,IAAoD;IAEpD,uCAAuC;IACvC,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,UAAU,CAAC;IAEf,wCAAwC;IACxC,OAAO,QAAQ;SACZ,OAAO,CAAC,cAAc,EAAE,kBAAkB,CAAC;SAC3C,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACU,QAAA,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DnC,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,sBAAsB,CACpC,IAAoD;IAEpD,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QACnD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC,CAAC,UAAU,CAAC;IAEf,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,OAAO,4BAAoB;SACxB,OAAO,CAAC,cAAc,EAAE,kBAAkB,CAAC;SAC3C,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC;SAC5C,OAAO,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,mBAAmB,CAAC,MAAc;IACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,IAAI,CAAC,CAAC;QAEhC,EAAE,CAAC,QAAQ,CAAC,8GAA8G,EAAE,CAAC,MAAM,EAAE,EAAE;YACrI,EAAE,CAAC,KAAK,EAAE,CAAC;YAEX,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAE/C,oCAAoC;YACpC,MAAM,SAAS,GAAG,UAAU,KAAK,EAAE,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,KAAK,CAAC;YAElF,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=prompts.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompts.test.d.ts","sourceRoot":"","sources":["../src/prompts.test.ts"],"names":[],"mappings":""}
@@ -1,427 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const prompts_1 = require("./prompts");
37
- const readline = __importStar(require("readline"));
38
- // Mock readline
39
- jest.mock('readline');
40
- describe('Prompts Module', () => {
41
- describe('ANALYSIS_PROMPT_V1', () => {
42
- test('prompt template includes required placeholders', () => {
43
- expect(prompts_1.ANALYSIS_PROMPT_V1).toContain('{file_paths}');
44
- expect(prompts_1.ANALYSIS_PROMPT_V1).toContain('{diff_content}');
45
- });
46
- test('prompt template includes architectural significance instructions', () => {
47
- expect(prompts_1.ANALYSIS_PROMPT_V1).toContain('architectural');
48
- expect(prompts_1.ANALYSIS_PROMPT_V1).toContain('significant');
49
- });
50
- test('prompt template specifies JSON response format', () => {
51
- expect(prompts_1.ANALYSIS_PROMPT_V1).toContain('JSON');
52
- expect(prompts_1.ANALYSIS_PROMPT_V1).toContain('is_significant');
53
- expect(prompts_1.ANALYSIS_PROMPT_V1).toContain('reason');
54
- });
55
- test('prompt template includes analysis criteria', () => {
56
- const prompt = prompts_1.ANALYSIS_PROMPT_V1.toLowerCase();
57
- // Should mention various architectural concerns
58
- expect(prompt.includes('pattern') ||
59
- prompt.includes('data model') ||
60
- prompt.includes('api') ||
61
- prompt.includes('security')).toBe(true);
62
- });
63
- test('prompt includes all specific architectural significance criteria', () => {
64
- const prompt = prompts_1.ANALYSIS_PROMPT_V1.toLowerCase();
65
- // Must include all key criteria
66
- expect(prompt).toContain('dependency');
67
- expect(prompt).toContain('infrastructure');
68
- expect(prompt).toContain('api contract');
69
- expect(prompt).toContain('data schema');
70
- expect(prompt).toContain('authentication');
71
- expect(prompt).toContain('authorization');
72
- expect(prompt).toContain('cross-cutting');
73
- });
74
- test('prompt specifies empty string for non-significant changes', () => {
75
- expect(prompts_1.ANALYSIS_PROMPT_V1).toContain('empty string');
76
- });
77
- test('prompt emphasizes strict JSON output format', () => {
78
- expect(prompts_1.ANALYSIS_PROMPT_V1).toContain('minified');
79
- expect(prompts_1.ANALYSIS_PROMPT_V1).toContain('no preamble');
80
- expect(prompts_1.ANALYSIS_PROMPT_V1).toContain('no markdown');
81
- });
82
- });
83
- describe('formatPrompt', () => {
84
- const mockData = {
85
- file_paths: ['src/auth.ts', 'src/user.ts', 'src/middleware/auth.ts'],
86
- diff_content: `
87
- diff --git a/src/auth.ts b/src/auth.ts
88
- index 1234567..abcdefg 100644
89
- --- a/src/auth.ts
90
- +++ b/src/auth.ts
91
- @@ -1,5 +1,10 @@
92
- +import jwt from 'jsonwebtoken';
93
- +
94
- +export function authenticateUser(token: string) {
95
- + return jwt.verify(token, process.env.JWT_SECRET);
96
- +}
97
- `
98
- };
99
- test('replaces file_paths placeholder with formatted list', () => {
100
- const formatted = (0, prompts_1.formatPrompt)(prompts_1.ANALYSIS_PROMPT_V1, mockData);
101
- expect(formatted).not.toContain('{file_paths}');
102
- expect(formatted).toContain('src/auth.ts');
103
- expect(formatted).toContain('src/user.ts');
104
- expect(formatted).toContain('src/middleware/auth.ts');
105
- });
106
- test('replaces diff_content placeholder with actual diff', () => {
107
- const formatted = (0, prompts_1.formatPrompt)(prompts_1.ANALYSIS_PROMPT_V1, mockData);
108
- expect(formatted).not.toContain('{diff_content}');
109
- expect(formatted).toContain('diff --git');
110
- expect(formatted).toContain('authenticateUser');
111
- expect(formatted).toContain('jwt.verify');
112
- });
113
- test('handles empty file paths array', () => {
114
- const emptyData = {
115
- file_paths: [],
116
- diff_content: mockData.diff_content
117
- };
118
- const formatted = (0, prompts_1.formatPrompt)(prompts_1.ANALYSIS_PROMPT_V1, emptyData);
119
- expect(formatted).not.toContain('{file_paths}');
120
- expect(formatted).toBeDefined();
121
- });
122
- test('handles empty diff content', () => {
123
- const emptyDiff = {
124
- file_paths: mockData.file_paths,
125
- diff_content: ''
126
- };
127
- const formatted = (0, prompts_1.formatPrompt)(prompts_1.ANALYSIS_PROMPT_V1, emptyDiff);
128
- expect(formatted).not.toContain('{diff_content}');
129
- expect(formatted).toBeDefined();
130
- });
131
- test('preserves prompt structure and instructions', () => {
132
- const formatted = (0, prompts_1.formatPrompt)(prompts_1.ANALYSIS_PROMPT_V1, mockData);
133
- expect(formatted).toContain('architectural');
134
- expect(formatted).toContain('significant');
135
- expect(formatted).toContain('JSON');
136
- });
137
- test('formats multiple file paths readably', () => {
138
- const manyFiles = {
139
- file_paths: [
140
- 'src/auth/login.ts',
141
- 'src/auth/logout.ts',
142
- 'src/auth/session.ts',
143
- 'src/middleware/auth.ts',
144
- 'src/models/user.ts'
145
- ],
146
- diff_content: mockData.diff_content
147
- };
148
- const formatted = (0, prompts_1.formatPrompt)(prompts_1.ANALYSIS_PROMPT_V1, manyFiles);
149
- // Should list all files in a readable format
150
- manyFiles.file_paths.forEach(filePath => {
151
- expect(formatted).toContain(filePath);
152
- });
153
- });
154
- test('handles special characters in diff content', () => {
155
- const specialChars = {
156
- file_paths: ['src/test.ts'],
157
- diff_content: `
158
- diff --git a/src/test.ts b/src/test.ts
159
- +const regex = /[a-z]+/gi;
160
- +const template = \`Hello \${name}\`;
161
- +const quote = "He said: \\"Hello\\"";
162
- `
163
- };
164
- const formatted = (0, prompts_1.formatPrompt)(prompts_1.ANALYSIS_PROMPT_V1, specialChars);
165
- expect(formatted).toContain('regex');
166
- expect(formatted).toContain('template');
167
- expect(formatted).toContain('quote');
168
- });
169
- test('returns valid prompt with all placeholders replaced', () => {
170
- const formatted = (0, prompts_1.formatPrompt)(prompts_1.ANALYSIS_PROMPT_V1, mockData);
171
- // Should not contain any unreplaced placeholders
172
- expect(formatted).not.toMatch(/\{[a-z_]+\}/);
173
- });
174
- });
175
- describe('Prompt Versioning', () => {
176
- test('ANALYSIS_PROMPT_V1 is exported and accessible', () => {
177
- expect(prompts_1.ANALYSIS_PROMPT_V1).toBeDefined();
178
- expect(typeof prompts_1.ANALYSIS_PROMPT_V1).toBe('string');
179
- expect(prompts_1.ANALYSIS_PROMPT_V1.length).toBeGreaterThan(0);
180
- });
181
- test('prompt version is clearly identifiable', () => {
182
- // Future proofing: when V2 is added, we should be able to distinguish versions
183
- expect(prompts_1.ANALYSIS_PROMPT_V1).toBeDefined();
184
- });
185
- });
186
- describe('Prompt Quality', () => {
187
- test('prompt is not empty or too short', () => {
188
- expect(prompts_1.ANALYSIS_PROMPT_V1.length).toBeGreaterThan(50);
189
- });
190
- test('prompt provides clear instructions', () => {
191
- const prompt = prompts_1.ANALYSIS_PROMPT_V1.toLowerCase();
192
- // Should have clear action words
193
- expect(prompt.includes('analyze') ||
194
- prompt.includes('determine') ||
195
- prompt.includes('evaluate')).toBe(true);
196
- });
197
- test('prompt specifies expected output format', () => {
198
- expect(prompts_1.ANALYSIS_PROMPT_V1).toContain('is_significant');
199
- expect(prompts_1.ANALYSIS_PROMPT_V1).toContain('reason');
200
- // Should specify it's a boolean
201
- const hasBoolean = prompts_1.ANALYSIS_PROMPT_V1.includes('boolean') ||
202
- prompts_1.ANALYSIS_PROMPT_V1.includes('true') ||
203
- prompts_1.ANALYSIS_PROMPT_V1.includes('false');
204
- expect(hasBoolean).toBe(true);
205
- });
206
- });
207
- describe('GENERATION_PROMPT_V1', () => {
208
- test('prompt template includes required placeholders', () => {
209
- expect(prompts_1.GENERATION_PROMPT_V1).toContain('{file_paths}');
210
- expect(prompts_1.GENERATION_PROMPT_V1).toContain('{diff_content}');
211
- expect(prompts_1.GENERATION_PROMPT_V1).toContain('{current_date}');
212
- });
213
- test('prompt includes MADR template structure', () => {
214
- const prompt = prompts_1.GENERATION_PROMPT_V1.toLowerCase();
215
- // Must mention MADR sections
216
- expect(prompt).toContain('context and problem statement');
217
- expect(prompt).toContain('decision drivers');
218
- expect(prompt).toContain('considered options');
219
- expect(prompt).toContain('decision outcome');
220
- expect(prompt).toContain('consequences');
221
- });
222
- test('prompt specifies MADR format explicitly', () => {
223
- expect(prompts_1.GENERATION_PROMPT_V1).toContain('MADR');
224
- });
225
- test('prompt includes all required MADR sections in template', () => {
226
- const prompt = prompts_1.GENERATION_PROMPT_V1;
227
- // Check for MADR section headings
228
- expect(prompt).toContain('# ['); // Title format
229
- expect(prompt).toContain('* Status:');
230
- expect(prompt).toContain('* Date:');
231
- expect(prompt).toContain('## Context and Problem Statement');
232
- expect(prompt).toContain('## Decision Drivers');
233
- expect(prompt).toContain('## Considered Options');
234
- expect(prompt).toContain('## Decision Outcome');
235
- expect(prompt).toContain('### Consequences');
236
- expect(prompt).toContain('## More Information');
237
- });
238
- test('prompt instructs to use EXACT markdown structure', () => {
239
- const prompt = prompts_1.GENERATION_PROMPT_V1.toUpperCase();
240
- expect(prompt).toContain('EXACT');
241
- });
242
- test('prompt specifies response should be markdown only', () => {
243
- const prompt = prompts_1.GENERATION_PROMPT_V1.toLowerCase();
244
- expect(prompt).toContain('respond only');
245
- expect(prompt).toContain('markdown');
246
- });
247
- test('prompt version is clearly identified', () => {
248
- expect(prompts_1.GENERATION_PROMPT_V1).toBeDefined();
249
- expect(typeof prompts_1.GENERATION_PROMPT_V1).toBe('string');
250
- });
251
- });
252
- describe('formatGenerationPrompt', () => {
253
- const mockData = {
254
- file_paths: ['src/database.ts', 'src/config.ts'],
255
- diff_content: `
256
- diff --git a/src/database.ts b/src/database.ts
257
- +import pg from 'pg';
258
- +export const database = new pg.Pool();
259
- `
260
- };
261
- test('replaces file_paths placeholder with formatted list', () => {
262
- const formatted = (0, prompts_1.formatGenerationPrompt)(mockData);
263
- expect(formatted).not.toContain('{file_paths}');
264
- expect(formatted).toContain('src/database.ts');
265
- expect(formatted).toContain('src/config.ts');
266
- });
267
- test('replaces diff_content placeholder with actual diff', () => {
268
- const formatted = (0, prompts_1.formatGenerationPrompt)(mockData);
269
- expect(formatted).not.toContain('{diff_content}');
270
- expect(formatted).toContain('diff --git');
271
- expect(formatted).toContain('pg.Pool');
272
- });
273
- test('replaces current_date placeholder with valid date', () => {
274
- const formatted = (0, prompts_1.formatGenerationPrompt)(mockData);
275
- expect(formatted).not.toContain('{current_date}');
276
- // Check for YYYY-MM-DD format
277
- expect(formatted).toMatch(/\d{4}-\d{2}-\d{2}/);
278
- });
279
- test('current date is today\'s date', () => {
280
- const formatted = (0, prompts_1.formatGenerationPrompt)(mockData);
281
- const today = new Date().toISOString().split('T')[0];
282
- expect(formatted).toContain(today);
283
- });
284
- test('handles empty file paths array', () => {
285
- const emptyData = {
286
- file_paths: [],
287
- diff_content: mockData.diff_content
288
- };
289
- const formatted = (0, prompts_1.formatGenerationPrompt)(emptyData);
290
- expect(formatted).not.toContain('{file_paths}');
291
- expect(formatted).toBeDefined();
292
- });
293
- test('preserves MADR template structure', () => {
294
- const formatted = (0, prompts_1.formatGenerationPrompt)(mockData);
295
- expect(formatted).toContain('Context and Problem Statement');
296
- expect(formatted).toContain('Decision Drivers');
297
- expect(formatted).toContain('Considered Options');
298
- expect(formatted).toContain('Decision Outcome');
299
- expect(formatted).toContain('Consequences');
300
- });
301
- test('returns valid prompt with all placeholders replaced', () => {
302
- const formatted = (0, prompts_1.formatGenerationPrompt)(mockData);
303
- // Should not contain any unreplaced placeholders
304
- expect(formatted).not.toMatch(/\{[a-z_]+\}/);
305
- });
306
- });
307
- describe('promptForGeneration', () => {
308
- let mockReadlineInterface;
309
- beforeEach(() => {
310
- // Reset mocks
311
- jest.clearAllMocks();
312
- // Setup mock readline interface
313
- mockReadlineInterface = {
314
- question: jest.fn(),
315
- close: jest.fn()
316
- };
317
- readline.createInterface.mockReturnValue(mockReadlineInterface);
318
- });
319
- test('returns true for empty input (ENTER pressed)', async () => {
320
- mockReadlineInterface.question.mockImplementation((question, callback) => {
321
- callback(''); // Simulate pressing ENTER
322
- });
323
- const result = await (0, prompts_1.promptForGeneration)('Test reason');
324
- expect(result).toBe(true);
325
- expect(mockReadlineInterface.close).toHaveBeenCalled();
326
- });
327
- test('returns true for "yes" input', async () => {
328
- mockReadlineInterface.question.mockImplementation((question, callback) => {
329
- callback('yes');
330
- });
331
- const result = await (0, prompts_1.promptForGeneration)('Test reason');
332
- expect(result).toBe(true);
333
- });
334
- test('returns true for "y" input', async () => {
335
- mockReadlineInterface.question.mockImplementation((question, callback) => {
336
- callback('y');
337
- });
338
- const result = await (0, prompts_1.promptForGeneration)('Test reason');
339
- expect(result).toBe(true);
340
- });
341
- test('returns true for "YES" input (case insensitive)', async () => {
342
- mockReadlineInterface.question.mockImplementation((question, callback) => {
343
- callback('YES');
344
- });
345
- const result = await (0, prompts_1.promptForGeneration)('Test reason');
346
- expect(result).toBe(true);
347
- });
348
- test('returns true for "Y" input (case insensitive)', async () => {
349
- mockReadlineInterface.question.mockImplementation((question, callback) => {
350
- callback('Y');
351
- });
352
- const result = await (0, prompts_1.promptForGeneration)('Test reason');
353
- expect(result).toBe(true);
354
- });
355
- test('returns false for "no" input', async () => {
356
- mockReadlineInterface.question.mockImplementation((question, callback) => {
357
- callback('no');
358
- });
359
- const result = await (0, prompts_1.promptForGeneration)('Test reason');
360
- expect(result).toBe(false);
361
- });
362
- test('returns false for "n" input', async () => {
363
- mockReadlineInterface.question.mockImplementation((question, callback) => {
364
- callback('n');
365
- });
366
- const result = await (0, prompts_1.promptForGeneration)('Test reason');
367
- expect(result).toBe(false);
368
- });
369
- test('returns false for any other input', async () => {
370
- mockReadlineInterface.question.mockImplementation((question, callback) => {
371
- callback('maybe');
372
- });
373
- const result = await (0, prompts_1.promptForGeneration)('Test reason');
374
- expect(result).toBe(false);
375
- });
376
- test('handles whitespace in input', async () => {
377
- mockReadlineInterface.question.mockImplementation((question, callback) => {
378
- callback(' yes ');
379
- });
380
- const result = await (0, prompts_1.promptForGeneration)('Test reason');
381
- expect(result).toBe(true);
382
- });
383
- test('displays the reason in the prompt', async () => {
384
- const reason = 'Introduces PostgreSQL as primary datastore';
385
- mockReadlineInterface.question.mockImplementation((question, callback) => {
386
- callback('yes');
387
- });
388
- await (0, prompts_1.promptForGeneration)(reason);
389
- // Check that question was called
390
- expect(mockReadlineInterface.question).toHaveBeenCalled();
391
- });
392
- test('closes readline interface after response', async () => {
393
- mockReadlineInterface.question.mockImplementation((question, callback) => {
394
- callback('yes');
395
- });
396
- await (0, prompts_1.promptForGeneration)('Test reason');
397
- expect(mockReadlineInterface.close).toHaveBeenCalledTimes(1);
398
- });
399
- test('creates readline interface with stdin and stdout', async () => {
400
- mockReadlineInterface.question.mockImplementation((question, callback) => {
401
- callback('yes');
402
- });
403
- await (0, prompts_1.promptForGeneration)('Test reason');
404
- expect(readline.createInterface).toHaveBeenCalledWith({
405
- input: process.stdin,
406
- output: process.stdout
407
- });
408
- });
409
- });
410
- describe('Generation Prompt Quality', () => {
411
- test('generation prompt is substantial', () => {
412
- expect(prompts_1.GENERATION_PROMPT_V1.length).toBeGreaterThan(200);
413
- });
414
- test('generation prompt provides clear instructions', () => {
415
- const prompt = prompts_1.GENERATION_PROMPT_V1.toLowerCase();
416
- expect(prompt.includes('generate') ||
417
- prompt.includes('write') ||
418
- prompt.includes('create')).toBe(true);
419
- });
420
- test('both prompts are exported and distinct', () => {
421
- expect(prompts_1.ANALYSIS_PROMPT_V1).toBeDefined();
422
- expect(prompts_1.GENERATION_PROMPT_V1).toBeDefined();
423
- expect(prompts_1.ANALYSIS_PROMPT_V1).not.toBe(prompts_1.GENERATION_PROMPT_V1);
424
- });
425
- });
426
- });
427
- //# sourceMappingURL=prompts.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompts.test.js","sourceRoot":"","sources":["../src/prompts.test.ts"],"names":[],"mappings":"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"}