cadr-cli 1.10.0 → 2.0.1

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 (118) 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/strategies/git-strategy.d.ts +22 -0
  18. package/dist/analysis/strategies/git-strategy.d.ts.map +1 -0
  19. package/dist/analysis/strategies/git-strategy.js +114 -0
  20. package/dist/analysis/strategies/git-strategy.js.map +1 -0
  21. package/dist/commands/analyze.js +3 -3
  22. package/dist/commands/analyze.js.map +1 -1
  23. package/dist/commands/status.d.ts +11 -0
  24. package/dist/commands/status.d.ts.map +1 -0
  25. package/dist/commands/status.js +69 -0
  26. package/dist/commands/status.js.map +1 -0
  27. package/dist/commands/status.test.d.ts +2 -0
  28. package/dist/commands/status.test.d.ts.map +1 -0
  29. package/dist/commands/status.test.js +83 -0
  30. package/dist/commands/status.test.js.map +1 -0
  31. package/dist/git/git.errors.d.ts +6 -0
  32. package/dist/git/git.errors.d.ts.map +1 -0
  33. package/dist/git/git.errors.js +15 -0
  34. package/dist/git/git.errors.js.map +1 -0
  35. package/dist/git/git.operations.d.ts +12 -0
  36. package/dist/git/git.operations.d.ts.map +1 -0
  37. package/dist/git/git.operations.js +64 -0
  38. package/dist/git/git.operations.js.map +1 -0
  39. package/dist/git/index.d.ts +4 -0
  40. package/dist/git/index.d.ts.map +1 -0
  41. package/dist/git/index.js +19 -0
  42. package/dist/git/index.js.map +1 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +5 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/llm/index.d.ts +3 -0
  47. package/dist/llm/index.d.ts.map +1 -0
  48. package/dist/llm/index.js +19 -0
  49. package/dist/llm/index.js.map +1 -0
  50. package/dist/llm/llm.d.ts +35 -0
  51. package/dist/llm/llm.d.ts.map +1 -0
  52. package/dist/{llm.js → llm/llm.js} +16 -58
  53. package/dist/llm/llm.js.map +1 -0
  54. package/dist/{prompts.d.ts → llm/prompts.d.ts} +1 -38
  55. package/dist/llm/prompts.d.ts.map +1 -0
  56. package/dist/{prompts.js → llm/prompts.js} +9 -54
  57. package/dist/llm/prompts.js.map +1 -0
  58. package/dist/llm/response-parser.d.ts +9 -0
  59. package/dist/llm/response-parser.d.ts.map +1 -0
  60. package/dist/llm/response-parser.js +67 -0
  61. package/dist/llm/response-parser.js.map +1 -0
  62. package/dist/presenters/console-presenter.d.ts +35 -0
  63. package/dist/presenters/console-presenter.d.ts.map +1 -0
  64. package/dist/presenters/console-presenter.js +114 -0
  65. package/dist/presenters/console-presenter.js.map +1 -0
  66. package/package.json +1 -1
  67. package/src/{adr.test.ts → adr/adr.test.ts} +10 -23
  68. package/src/{adr.ts → adr/adr.ts} +7 -48
  69. package/src/adr/index.ts +1 -0
  70. package/src/analysis/analysis.orchestrator.ts +175 -0
  71. package/src/analysis/strategies/git-strategy.ts +106 -0
  72. package/src/commands/analyze.ts +8 -9
  73. package/src/commands/status.test.ts +64 -0
  74. package/src/commands/status.ts +71 -0
  75. package/src/git/git.errors.ts +10 -0
  76. package/src/git/git.operations.ts +85 -0
  77. package/src/git/index.ts +3 -0
  78. package/src/index.ts +6 -0
  79. package/src/llm/index.ts +2 -0
  80. package/src/{llm.ts → llm/llm.ts} +46 -107
  81. package/src/{prompts.ts → llm/prompts.ts} +30 -72
  82. package/src/llm/response-parser.ts +90 -0
  83. package/src/presenters/console-presenter.ts +152 -0
  84. package/dist/adr.d.ts +0 -50
  85. package/dist/adr.d.ts.map +0 -1
  86. package/dist/adr.js.map +0 -1
  87. package/dist/adr.test.d.ts +0 -8
  88. package/dist/adr.test.js.map +0 -1
  89. package/dist/analysis.d.ts +0 -24
  90. package/dist/analysis.d.ts.map +0 -1
  91. package/dist/analysis.js +0 -281
  92. package/dist/analysis.js.map +0 -1
  93. package/dist/analysis.test.d.ts +0 -8
  94. package/dist/analysis.test.d.ts.map +0 -1
  95. package/dist/analysis.test.js +0 -351
  96. package/dist/analysis.test.js.map +0 -1
  97. package/dist/git.d.ts +0 -54
  98. package/dist/git.d.ts.map +0 -1
  99. package/dist/git.js +0 -204
  100. package/dist/git.js.map +0 -1
  101. package/dist/llm.d.ts +0 -73
  102. package/dist/llm.d.ts.map +0 -1
  103. package/dist/llm.js.map +0 -1
  104. package/dist/llm.test.d.ts +0 -2
  105. package/dist/llm.test.d.ts.map +0 -1
  106. package/dist/llm.test.js +0 -592
  107. package/dist/llm.test.js.map +0 -1
  108. package/dist/prompts.d.ts.map +0 -1
  109. package/dist/prompts.js.map +0 -1
  110. package/dist/prompts.test.d.ts +0 -2
  111. package/dist/prompts.test.d.ts.map +0 -1
  112. package/dist/prompts.test.js +0 -427
  113. package/dist/prompts.test.js.map +0 -1
  114. package/src/analysis.test.ts +0 -396
  115. package/src/analysis.ts +0 -262
  116. package/src/git.ts +0 -300
  117. package/src/llm.test.ts +0 -701
  118. package/src/prompts.test.ts +0 -515
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAYH,wCAqCC;AA/CD,0CAA0C;AAE1C,sCAAqD;AAErD;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAAC,OAAiB,EAAE;IACtD,IAAI,CAAC;QACH,qDAAqD;QACrD,MAAM,WAAW,GAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,6BAA6B;QAE/E,mDAAmD;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACpD,WAAW,CAAC,IAAI,GAAG,aAAa,CAAC;YACjC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAEvC,iCAAiC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpD,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC;QAC9B,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,uBAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACrC,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,WAAW,CAAC,IAAI;SACvB,CAAC,CAAC;QACH,MAAM,IAAA,sBAAW,EAAC,WAAW,CAAC,CAAC;QAC/B,uBAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,uCAAuC;QACvC,uBAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7C,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAYH,wCAqCC;AA/CD,6EAAgE;AAEhE,sCAAqD;AAErD;;;;;GAKG;AACI,KAAK,UAAU,cAAc,CAAC,OAAiB,EAAE;IACtD,IAAI,CAAC;QACH,qDAAqD;QACrD,MAAM,WAAW,GAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,6BAA6B;QAE/E,mDAAmD;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACpD,WAAW,CAAC,IAAI,GAAG,aAAa,CAAC;YACjC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YAEvC,iCAAiC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACpD,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC;QAC9B,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,uBAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACrC,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,WAAW,CAAC,IAAI;SACvB,CAAC,CAAC;QACH,MAAM,IAAA,mCAAW,EAAC,WAAW,CAAC,CAAC;QAC/B,uBAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,uCAAuC;QACvC,uBAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7C,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Status Command
3
+ *
4
+ * Provides information about the current cADR configuration and environment.
5
+ */
6
+ /**
7
+ * Execute the status command
8
+ * Displays configuration and environment status
9
+ */
10
+ export declare function statusCommand(): Promise<void>;
11
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAwDnD"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ /**
3
+ * Status Command
4
+ *
5
+ * Provides information about the current cADR configuration and environment.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.statusCommand = statusCommand;
9
+ const config_1 = require("../config");
10
+ const logger_1 = require("../logger");
11
+ const fs_1 = require("fs");
12
+ /**
13
+ * Execute the status command
14
+ * Displays configuration and environment status
15
+ */
16
+ async function statusCommand() {
17
+ try {
18
+ const configPath = (0, config_1.getDefaultConfigPath)();
19
+ const configExists = (0, fs_1.existsSync)(configPath);
20
+ // eslint-disable-next-line no-console
21
+ console.log('\n🔍 cADR Status');
22
+ // eslint-disable-next-line no-console
23
+ console.log('='.repeat(30));
24
+ // Config Status
25
+ // eslint-disable-next-line no-console
26
+ console.log(`\n📄 Configuration:`);
27
+ if (configExists) {
28
+ // eslint-disable-next-line no-console
29
+ console.log(` Path: ${configPath}`);
30
+ const config = await (0, config_1.loadConfig)(configPath);
31
+ if (config) {
32
+ // eslint-disable-next-line no-console
33
+ console.log(` Provider: ${config.provider}`);
34
+ // eslint-disable-next-line no-console
35
+ console.log(` Model: ${config.analysis_model}`);
36
+ // API Key Check
37
+ const apiKeySet = !!process.env[config.api_key_env];
38
+ // eslint-disable-next-line no-console
39
+ console.log(` API Key (${config.api_key_env}): ${apiKeySet ? '✅ Set' : '❌ Not Set'}`);
40
+ }
41
+ else {
42
+ // eslint-disable-next-line no-console
43
+ console.log(' ❌ Error loading configuration details.');
44
+ }
45
+ }
46
+ else {
47
+ // eslint-disable-next-line no-console
48
+ console.log(` Path: ${configPath} (❌ Not Found)`);
49
+ // eslint-disable-next-line no-console
50
+ console.log(' Run `cadr init` to create one.');
51
+ }
52
+ // Git Status (Basic check)
53
+ // eslint-disable-next-line no-console
54
+ console.log(`\n🛠️ Environment:`);
55
+ // eslint-disable-next-line no-console
56
+ console.log(` OS: ${process.platform}`);
57
+ // eslint-disable-next-line no-console
58
+ console.log(` Node: ${process.version}`);
59
+ // eslint-disable-next-line no-console
60
+ console.log('\nDone.\n');
61
+ logger_1.loggerInstance.info('Status command completed');
62
+ }
63
+ catch (error) {
64
+ logger_1.loggerInstance.error('Status command failed', { error });
65
+ // eslint-disable-next-line no-console
66
+ console.error('\n❌ Failed to retrieve status. Check logs for details.\n');
67
+ }
68
+ }
69
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAUH,sCAwDC;AAhED,sCAA6D;AAC7D,sCAAqD;AACrD,2BAAgC;AAEhC;;;GAGG;AACI,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAA,6BAAoB,GAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAA,eAAU,EAAC,UAAU,CAAC,CAAC;QAE5C,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5B,gBAAgB;QAChB,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,IAAI,YAAY,EAAE,CAAC;YACjB,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,YAAY,UAAU,EAAE,CAAC,CAAC;YAEtC,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAU,EAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,MAAM,EAAE,CAAC;gBACX,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC/C,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;gBAElD,gBAAgB;gBAChB,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACpD,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,WAAW,MAAM,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1F,CAAC;iBAAM,CAAC;gBACN,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,YAAY,UAAU,gBAAgB,CAAC,CAAC;YACpD,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;QAED,2BAA2B;QAC3B,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1C,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAE3C,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEzB,uBAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,uBAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=status.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.test.d.ts","sourceRoot":"","sources":["../../src/commands/status.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,83 @@
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 status_1 = require("./status");
37
+ const config = __importStar(require("../config"));
38
+ const fs = __importStar(require("fs"));
39
+ // Mock dependencies
40
+ jest.mock('../config');
41
+ jest.mock('fs');
42
+ jest.mock('../logger');
43
+ describe('Status Command', () => {
44
+ beforeEach(() => {
45
+ jest.clearAllMocks();
46
+ });
47
+ describe('statusCommand', () => {
48
+ test('displays status when config exists', async () => {
49
+ fs.existsSync.mockReturnValue(true);
50
+ config.getDefaultConfigPath.mockReturnValue('cadr.yaml');
51
+ config.loadConfig.mockResolvedValue({
52
+ provider: 'openai',
53
+ analysis_model: 'gpt-4',
54
+ api_key_env: 'OPENAI_API_KEY'
55
+ });
56
+ const consoleSpy = jest.spyOn(console, 'log').mockImplementation();
57
+ await (0, status_1.statusCommand)();
58
+ expect(consoleSpy).toHaveBeenCalledWith(expect.stringContaining('cADR Status'));
59
+ expect(consoleSpy).toHaveBeenCalledWith(expect.stringContaining('Provider: openai'));
60
+ expect(consoleSpy).toHaveBeenCalledWith(expect.stringContaining('Model: gpt-4'));
61
+ consoleSpy.mockRestore();
62
+ });
63
+ test('displays warning when config does not exist', async () => {
64
+ fs.existsSync.mockReturnValue(false);
65
+ config.getDefaultConfigPath.mockReturnValue('cadr.yaml');
66
+ const consoleSpy = jest.spyOn(console, 'log').mockImplementation();
67
+ await (0, status_1.statusCommand)();
68
+ expect(consoleSpy).toHaveBeenCalledWith(expect.stringContaining('Not Found'));
69
+ expect(consoleSpy).toHaveBeenCalledWith(expect.stringContaining('Run `cadr init`'));
70
+ consoleSpy.mockRestore();
71
+ });
72
+ test('handles errors gracefully', async () => {
73
+ config.getDefaultConfigPath.mockImplementation(() => {
74
+ throw new Error('FileSystem error');
75
+ });
76
+ const errorSpy = jest.spyOn(console, 'error').mockImplementation();
77
+ await (0, status_1.statusCommand)();
78
+ expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining('Failed to retrieve status'));
79
+ errorSpy.mockRestore();
80
+ });
81
+ });
82
+ });
83
+ //# sourceMappingURL=status.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.test.js","sourceRoot":"","sources":["../../src/commands/status.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAyC;AACzC,kDAAoC;AACpC,uCAAyB;AAEzB,oBAAoB;AACpB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAEvB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,IAAI,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YACnD,EAAE,CAAC,UAAwB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,oBAAkC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACvE,MAAM,CAAC,UAAwB,CAAC,iBAAiB,CAAC;gBACjD,QAAQ,EAAE,QAAQ;gBAClB,cAAc,EAAE,OAAO;gBACvB,WAAW,EAAE,gBAAgB;aAC9B,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC;YAEnE,MAAM,IAAA,sBAAa,GAAE,CAAC;YAEtB,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACrF,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC;YAEjF,UAAU,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC5D,EAAE,CAAC,UAAwB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,CAAC,oBAAkC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YAExE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC;YAEnE,MAAM,IAAA,sBAAa,GAAE,CAAC;YAEtB,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC;YAC9E,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAEpF,UAAU,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,CAAC,oBAAkC,CAAC,kBAAkB,CAAC,GAAG,EAAE;gBACjE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,EAAE,CAAC;YAEnE,MAAM,IAAA,sBAAa,GAAE,CAAC;YAEtB,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CAAC,CAAC;YAE5F,QAAQ,CAAC,WAAW,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare class GitError extends Error {
2
+ readonly code: 'NOT_GIT_REPO' | 'GIT_NOT_FOUND' | 'GIT_ERROR';
3
+ readonly originalError?: Error | undefined;
4
+ constructor(message: string, code: 'NOT_GIT_REPO' | 'GIT_NOT_FOUND' | 'GIT_ERROR', originalError?: Error | undefined);
5
+ }
6
+ //# sourceMappingURL=git.errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.errors.d.ts","sourceRoot":"","sources":["../../src/git/git.errors.ts"],"names":[],"mappings":"AAAA,qBAAa,QAAS,SAAQ,KAAK;aAGf,IAAI,EAAE,cAAc,GAAG,eAAe,GAAG,WAAW;aACpD,aAAa,CAAC,EAAE,KAAK;gBAFrC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,cAAc,GAAG,eAAe,GAAG,WAAW,EACpD,aAAa,CAAC,EAAE,KAAK,YAAA;CAKxC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GitError = void 0;
4
+ class GitError extends Error {
5
+ code;
6
+ originalError;
7
+ constructor(message, code, originalError) {
8
+ super(message);
9
+ this.code = code;
10
+ this.originalError = originalError;
11
+ this.name = 'GitError';
12
+ }
13
+ }
14
+ exports.GitError = GitError;
15
+ //# sourceMappingURL=git.errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.errors.js","sourceRoot":"","sources":["../../src/git/git.errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,QAAS,SAAQ,KAAK;IAGf;IACA;IAHlB,YACE,OAAe,EACC,IAAoD,EACpD,aAAqB;QAErC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAgD;QACpD,kBAAa,GAAb,aAAa,CAAQ;QAGrC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AATD,4BASC"}
@@ -0,0 +1,12 @@
1
+ export interface DiffOptions {
2
+ mode: 'staged' | 'all' | 'branch-diff';
3
+ base?: string;
4
+ head?: string;
5
+ }
6
+ export declare function getStagedFiles(): Promise<string[]>;
7
+ export declare function getStagedDiff(): Promise<string>;
8
+ export declare function getAllChanges(): Promise<string[]>;
9
+ export declare function getAllDiff(): Promise<string>;
10
+ export declare function getChangedFiles(options: DiffOptions): Promise<string[]>;
11
+ export declare function getDiff(options: DiffOptions): Promise<string>;
12
+ //# sourceMappingURL=git.operations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.operations.d.ts","sourceRoot":"","sources":["../../src/git/git.operations.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,aAAa,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA4CD,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAGxD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAErD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAGvD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAElD;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAK7E;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAKnE"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getStagedFiles = getStagedFiles;
4
+ exports.getStagedDiff = getStagedDiff;
5
+ exports.getAllChanges = getAllChanges;
6
+ exports.getAllDiff = getAllDiff;
7
+ exports.getChangedFiles = getChangedFiles;
8
+ exports.getDiff = getDiff;
9
+ const child_process_1 = require("child_process");
10
+ const util_1 = require("util");
11
+ const git_errors_1 = require("./git.errors");
12
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
13
+ function handleGitError(error, operation) {
14
+ const errorWithCode = error;
15
+ if (errorWithCode.code === 128) {
16
+ throw new git_errors_1.GitError(`Not in a Git repository. Please run 'cadr' from within a Git repository.`, 'NOT_GIT_REPO', error instanceof Error ? error : new Error(String(error)));
17
+ }
18
+ if (errorWithCode.code === 127) {
19
+ throw new git_errors_1.GitError('Git is not installed. Please install Git and try again.', 'GIT_NOT_FOUND', error instanceof Error ? error : new Error(String(error)));
20
+ }
21
+ throw new git_errors_1.GitError(`Unable to ${operation}. Please check repository permissions.`, 'GIT_ERROR', error instanceof Error ? error : new Error(String(error)));
22
+ }
23
+ async function execGitCommand(command) {
24
+ try {
25
+ const { stdout } = await execAsync(command);
26
+ return stdout;
27
+ }
28
+ catch (error) {
29
+ handleGitError(error, command.split(' ')[1] || 'execute git command');
30
+ }
31
+ }
32
+ function parseFileList(stdout) {
33
+ return stdout
34
+ .split('\n')
35
+ .map((file) => file.trim())
36
+ .filter((file) => file.length > 0);
37
+ }
38
+ async function getStagedFiles() {
39
+ const stdout = await execGitCommand('git diff --cached --name-only');
40
+ return parseFileList(stdout);
41
+ }
42
+ async function getStagedDiff() {
43
+ return execGitCommand('git diff --cached --unified=1');
44
+ }
45
+ async function getAllChanges() {
46
+ const stdout = await execGitCommand('git diff HEAD --name-only');
47
+ return parseFileList(stdout);
48
+ }
49
+ async function getAllDiff() {
50
+ return execGitCommand('git diff HEAD --unified=1');
51
+ }
52
+ async function getChangedFiles(options) {
53
+ if (options.mode === 'staged') {
54
+ return getStagedFiles();
55
+ }
56
+ return getAllChanges();
57
+ }
58
+ async function getDiff(options) {
59
+ if (options.mode === 'staged') {
60
+ return getStagedDiff();
61
+ }
62
+ return getAllDiff();
63
+ }
64
+ //# sourceMappingURL=git.operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.operations.js","sourceRoot":"","sources":["../../src/git/git.operations.ts"],"names":[],"mappings":";;AAsDA,wCAGC;AAED,sCAEC;AAED,sCAGC;AAED,gCAEC;AAED,0CAKC;AAED,0BAKC;AApFD,iDAAqC;AACrC,+BAAiC;AACjC,6CAAwC;AAExC,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,oBAAI,CAAC,CAAC;AAQlC,SAAS,cAAc,CAAC,KAAc,EAAE,SAAiB;IACvD,MAAM,aAAa,GAAG,KAA0B,CAAC;IAEjD,IAAI,aAAa,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QAC/B,MAAM,IAAI,qBAAQ,CAChB,0EAA0E,EAC1E,cAAc,EACd,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QAC/B,MAAM,IAAI,qBAAQ,CAChB,yDAAyD,EACzD,eAAe,EACf,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,qBAAQ,CAChB,aAAa,SAAS,wCAAwC,EAC9D,WAAW,EACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,OAAe;IAC3C,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,qBAAqB,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,OAAO,MAAM;SACV,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAEM,KAAK,UAAU,cAAc;IAClC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,+BAA+B,CAAC,CAAC;IACrE,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAEM,KAAK,UAAU,aAAa;IACjC,OAAO,cAAc,CAAC,+BAA+B,CAAC,CAAC;AACzD,CAAC;AAEM,KAAK,UAAU,aAAa;IACjC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,2BAA2B,CAAC,CAAC;IACjE,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAEM,KAAK,UAAU,UAAU;IAC9B,OAAO,cAAc,CAAC,2BAA2B,CAAC,CAAC;AACrD,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,OAAoB;IACxD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,cAAc,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,aAAa,EAAE,CAAC;AACzB,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,OAAoB;IAChD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './git.errors';
2
+ export * from './git.operations';
3
+ export type { DiffOptions } from './git.operations';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,19 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./git.errors"), exports);
18
+ __exportStar(require("./git.operations"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,mDAAiC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,wBAAgB,QAAQ,IAAI,IAAI,CA6C/B;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,wBAAgB,QAAQ,IAAI,IAAI,CA8C/B;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ exports.showHelp = showHelp;
5
5
  exports.showVersion = showVersion;
6
6
  const init_1 = require("./commands/init");
7
7
  const analyze_1 = require("./commands/analyze");
8
+ const status_1 = require("./commands/status");
8
9
  // Version constants
9
10
  const CORE_VERSION = '0.0.1';
10
11
  const CLI_VERSION = '0.0.1';
@@ -19,6 +20,7 @@ USAGE
19
20
  COMMANDS
20
21
  init Create a cadr.yaml configuration file
21
22
  analyze Analyze code changes and generate ADRs (default)
23
+ status Show current configuration and environment status
22
24
  help Show this help message
23
25
 
24
26
  ANALYZE OPTIONS
@@ -81,6 +83,9 @@ if (require.main === module) {
81
83
  case 'analyze':
82
84
  await (0, analyze_1.analyzeCommand)(args);
83
85
  break;
86
+ case 'status':
87
+ await (0, status_1.statusCommand)();
88
+ break;
84
89
  default:
85
90
  // Unknown command - show error and help
86
91
  process.stdout.write(`\n❌ Unknown command: ${command}\n`);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAOA,4BA6CC;AAED,kCAEC;AAxDD,0CAA8C;AAC9C,gDAAoD;AAEpD,oBAAoB;AACpB,MAAM,YAAY,GAAG,OAAO,CAAC;AAC7B,MAAM,WAAW,GAAG,OAAO,CAAC;AAE5B,SAAgB,QAAQ;IACtB,MAAM,IAAI,GAAG;;WAEJ,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCrB,CAAC;IACA,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,WAAW;IACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,WAAW,WAAW,YAAY,KAAK,CAAC,CAAC;AAChF,CAAC;AAGD,8DAA8D;AAC9D,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,kBAAkB;IAClB,CAAC,KAAK,IAAI,EAAE;QACV,aAAa;QACb,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACrF,QAAQ,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,eAAe;QACf,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,WAAW,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,WAAW;QACX,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM;gBACT,MAAM,IAAA,kBAAW,GAAE,CAAC;gBACpB,MAAM;YAER,KAAK,SAAS;gBACZ,MAAM,IAAA,wBAAc,EAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;YAER;gBACE,wCAAwC;gBACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,OAAO,IAAI,CAAC,CAAC;gBAC1D,QAAQ,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACnB,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAQA,4BA8CC;AAED,kCAEC;AA1DD,0CAA8C;AAC9C,gDAAoD;AACpD,8CAAkD;AAElD,oBAAoB;AACpB,MAAM,YAAY,GAAG,OAAO,CAAC;AAC7B,MAAM,WAAW,GAAG,OAAO,CAAC;AAE5B,SAAgB,QAAQ;IACtB,MAAM,IAAI,GAAG;;WAEJ,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCrB,CAAC;IACA,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,SAAgB,WAAW;IACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,WAAW,WAAW,YAAY,KAAK,CAAC,CAAC;AAChF,CAAC;AAGD,8DAA8D;AAC9D,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,kBAAkB;IAClB,CAAC,KAAK,IAAI,EAAE;QACV,aAAa;QACb,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACrF,QAAQ,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,eAAe;QACf,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,WAAW,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,WAAW;QACX,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM;gBACT,MAAM,IAAA,kBAAW,GAAE,CAAC;gBACpB,MAAM;YAER,KAAK,SAAS;gBACZ,MAAM,IAAA,wBAAc,EAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM;YAER,KAAK,QAAQ;gBACX,MAAM,IAAA,sBAAa,GAAE,CAAC;gBACtB,MAAM;YAER;gBACE,wCAAwC;gBACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,OAAO,IAAI,CAAC,CAAC;gBAC1D,QAAQ,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACnB,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './llm';
2
+ export * from './prompts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,19 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./llm"), exports);
18
+ __exportStar(require("./prompts"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,4CAA0B"}
@@ -0,0 +1,35 @@
1
+ import { AnalysisConfig } from '../config';
2
+ export interface AnalysisRequest {
3
+ file_paths: string[];
4
+ diff_content: string;
5
+ repository_context: string;
6
+ analysis_prompt: string;
7
+ }
8
+ export interface AnalysisResult {
9
+ is_significant: boolean;
10
+ reason: string;
11
+ confidence?: number;
12
+ timestamp: string;
13
+ }
14
+ export interface AnalysisResponse {
15
+ result: AnalysisResult | null;
16
+ error?: string;
17
+ }
18
+ export interface GenerationRequest {
19
+ file_paths: string[];
20
+ diff_content: string;
21
+ reason: string;
22
+ generation_prompt: string;
23
+ }
24
+ export interface GenerationResult {
25
+ content: string;
26
+ title: string;
27
+ timestamp: string;
28
+ }
29
+ export interface GenerationResponse {
30
+ result: GenerationResult | null;
31
+ error?: string;
32
+ }
33
+ export declare function analyzeChanges(config: AnalysisConfig, request: AnalysisRequest): Promise<AnalysisResponse>;
34
+ export declare function generateADRContent(config: AnalysisConfig, request: GenerationRequest): Promise<GenerationResponse>;
35
+ //# sourceMappingURL=llm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../src/llm/llm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAoJ3B;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAiF7B"}