codebuff 1.0.306 → 1.0.308

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 (88) hide show
  1. package/dist/background-process-manager.js +5 -0
  2. package/dist/background-process-manager.js.map +1 -1
  3. package/dist/browser-runner.js +12 -3
  4. package/dist/browser-runner.js.map +1 -1
  5. package/dist/chat-storage.js +11 -0
  6. package/dist/chat-storage.js.map +1 -1
  7. package/dist/checkpoints/checkpoint-manager.js +6 -0
  8. package/dist/checkpoints/checkpoint-manager.js.map +1 -1
  9. package/dist/checkpoints/file-manager.js +52 -8
  10. package/dist/checkpoints/file-manager.js.map +1 -1
  11. package/dist/cli-handlers/checkpoint.js +25 -0
  12. package/dist/cli-handlers/checkpoint.js.map +1 -1
  13. package/dist/cli.js +24 -3
  14. package/dist/cli.js.map +1 -1
  15. package/dist/client.js +87 -3
  16. package/dist/client.js.map +1 -1
  17. package/dist/code-map/tsconfig.tsbuildinfo +1 -1
  18. package/dist/common/actions.d.ts +15 -0
  19. package/dist/common/constants.d.ts +5 -0
  20. package/dist/common/constants.js +11 -1
  21. package/dist/common/constants.js.map +1 -1
  22. package/dist/common/json-config/constants.d.ts +55 -0
  23. package/dist/common/json-config/constants.js +31 -2
  24. package/dist/common/json-config/constants.js.map +1 -1
  25. package/dist/common/types/agent-state.d.ts +3 -0
  26. package/dist/common/types/agent-state.js +2 -0
  27. package/dist/common/types/agent-state.js.map +1 -1
  28. package/dist/common/util/__tests__/saxy.test.js +89 -2
  29. package/dist/common/util/__tests__/saxy.test.js.map +1 -1
  30. package/dist/common/util/saxy.d.ts +2 -1
  31. package/dist/common/util/saxy.js +15 -5
  32. package/dist/common/util/saxy.js.map +1 -1
  33. package/dist/common/websockets/websocket-schema.d.ts +28 -0
  34. package/dist/create-template-project.js +24 -0
  35. package/dist/create-template-project.js.map +1 -1
  36. package/dist/credentials.js +8 -2
  37. package/dist/credentials.js.map +1 -1
  38. package/dist/dev-process-manager.js +2 -1
  39. package/dist/dev-process-manager.js.map +1 -1
  40. package/dist/index.js +7 -6
  41. package/dist/index.js.map +1 -1
  42. package/dist/json-config/hooks.d.ts +6 -0
  43. package/dist/json-config/hooks.js +58 -0
  44. package/dist/json-config/hooks.js.map +1 -0
  45. package/dist/json-config/parser.d.ts +7 -0
  46. package/dist/json-config/parser.js +53 -0
  47. package/dist/json-config/parser.js.map +1 -0
  48. package/dist/json-config-parser.d.ts +7 -0
  49. package/dist/json-config-parser.js +53 -0
  50. package/dist/json-config-parser.js.map +1 -0
  51. package/dist/menu.js +36 -37
  52. package/dist/menu.js.map +1 -1
  53. package/dist/project-files.js +51 -5
  54. package/dist/project-files.js.map +1 -1
  55. package/dist/startup-process-handler.d.ts +1 -2
  56. package/dist/startup-process-handler.js +5 -1
  57. package/dist/startup-process-handler.js.map +1 -1
  58. package/dist/tool-handlers.js +17 -0
  59. package/dist/tool-handlers.js.map +1 -1
  60. package/dist/utils/analytics.js +8 -2
  61. package/dist/utils/analytics.js.map +1 -1
  62. package/dist/utils/detect-shell.js +7 -2
  63. package/dist/utils/detect-shell.js.map +1 -1
  64. package/dist/utils/git.js +5 -0
  65. package/dist/utils/git.js.map +1 -1
  66. package/dist/utils/terminal.d.ts +1 -0
  67. package/dist/utils/terminal.js.map +1 -1
  68. package/dist/web-scraper.js +6 -4
  69. package/dist/web-scraper.js.map +1 -1
  70. package/dist/workers/checkpoint-worker.js +1 -0
  71. package/dist/workers/checkpoint-worker.js.map +1 -1
  72. package/package.json +2 -1
  73. package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts +0 -12
  74. package/dist/code-map/__mocks__/tree-sitter-typescript.d.ts.map +0 -1
  75. package/dist/code-map/__mocks__/tree-sitter-typescript.js +0 -14
  76. package/dist/code-map/__mocks__/tree-sitter-typescript.js.map +0 -1
  77. package/dist/code-map/jest.config.d.ts +0 -4
  78. package/dist/code-map/jest.config.d.ts.map +0 -1
  79. package/dist/code-map/jest.config.js +0 -18
  80. package/dist/code-map/jest.config.js.map +0 -1
  81. package/dist/code-map/scripts/tree-sitter-test.cjs +0 -27
  82. package/dist/code-map/scripts/tree-sitter-test.cjs.map +0 -1
  83. package/dist/code-map/scripts/tree-sitter-test.d.cts +0 -2
  84. package/dist/code-map/scripts/tree-sitter-test.d.cts.map +0 -1
  85. package/dist/code-map/scripts/tree-sitter-test.d.ts +0 -2
  86. package/dist/code-map/scripts/tree-sitter-test.d.ts.map +0 -1
  87. package/dist/code-map/scripts/tree-sitter-test.js +0 -54
  88. package/dist/code-map/scripts/tree-sitter-test.js.map +0 -1
@@ -29,22 +29,35 @@ const path_1 = require("path");
29
29
  const fs = __importStar(require("fs"));
30
30
  const os = __importStar(require("os"));
31
31
  const picocolors_1 = require("picocolors");
32
+ const logger_1 = require("./utils/logger");
32
33
  async function createTemplateProject(template, projectDir, projectName = template) {
33
34
  console.log(`Creating project from ${template} template in ${projectDir}/${projectName}`);
34
35
  // Validate template name contains only alphanumeric chars, dash and underscore
35
36
  if (!/^[a-zA-Z0-9-_]+$/.test(template)) {
36
37
  console.error('Template name can only contain letters, numbers, dash and underscore');
38
+ logger_1.logger.error({
39
+ errorMessage: 'Template name can only contain letters, numbers, dash and underscore',
40
+ template,
41
+ }, 'Invalid template name');
37
42
  process.exit(1);
38
43
  }
39
44
  // Validate project name
40
45
  if (!/^[a-zA-Z0-9-_]+$/.test(projectName)) {
41
46
  console.error('Project name can only contain letters, numbers, dash and underscore');
47
+ logger_1.logger.error({
48
+ errorMessage: 'Project name can only contain letters, numbers, dash and underscore',
49
+ projectName,
50
+ }, 'Invalid project name');
42
51
  process.exit(1);
43
52
  }
44
53
  const projectPath = (0, path_1.join)(projectDir, projectName);
45
54
  // Check if directory already exists
46
55
  if (fs.existsSync(projectPath)) {
47
56
  console.error(`Directory ${projectPath} already exists`);
57
+ logger_1.logger.error({
58
+ errorMessage: `Directory ${projectPath} already exists`,
59
+ projectPath,
60
+ }, 'Directory already exists');
48
61
  process.exit(1);
49
62
  }
50
63
  try {
@@ -67,6 +80,10 @@ async function createTemplateProject(template, projectDir, projectName = templat
67
80
  }
68
81
  else {
69
82
  console.error(`Template ${template} not found in starter-templates/ or showcase/`);
83
+ logger_1.logger.error({
84
+ errorMessage: `Template ${template} not found in starter-templates/ or showcase/`,
85
+ template,
86
+ }, 'Template not found');
70
87
  fs.rmSync(tempDir, { recursive: true, force: true });
71
88
  process.exit(1);
72
89
  }
@@ -100,6 +117,13 @@ async function createTemplateProject(template, projectDir, projectName = templat
100
117
  (0, child_process_1.execSync)('codebuff', { stdio: 'inherit' });
101
118
  }
102
119
  catch (error) {
120
+ logger_1.logger.error({
121
+ errorMessage: error instanceof Error ? error.message : String(error),
122
+ errorStack: error instanceof Error ? error.stack : undefined,
123
+ template,
124
+ projectDir,
125
+ projectName,
126
+ }, 'Failed to initialize project');
103
127
  console.error('Failed to initialize project:', error);
104
128
  process.exit(1);
105
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-template-project.js","sourceRoot":"","sources":["../src/create-template-project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-template-project.js","sourceRoot":"","sources":["../src/create-template-project.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.CREDENTIALS_PATH = exports.CONFIG_DIR = exports.userFromJson = void 0;
7
7
  const credentials_1 = require("./common/util/credentials");
8
- const zod_1 = require("zod");
9
- const os_1 = __importDefault(require("os"));
10
8
  const node_path_1 = __importDefault(require("node:path"));
9
+ const os_1 = __importDefault(require("os"));
10
+ const zod_1 = require("zod");
11
+ const logger_1 = require("./utils/logger");
11
12
  const credentialsSchema = zod_1.z
12
13
  .object({
13
14
  default: credentials_1.userSchema,
@@ -21,6 +22,11 @@ const userFromJson = (json, profileName = 'default') => {
21
22
  }
22
23
  catch (error) {
23
24
  console.error('Error parsing user JSON:', error);
25
+ logger_1.logger.error({
26
+ errorMessage: error instanceof Error ? error.message : String(error),
27
+ errorStack: error instanceof Error ? error.stack : undefined,
28
+ profileName,
29
+ }, 'Error parsing user JSON');
24
30
  return;
25
31
  }
26
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":";;;;;;AAAA,yDAA0D;AAC1D,6BAAuB;AACvB,4CAAmB;AACnB,0DAA4B;AAE5B,MAAM,iBAAiB,GAAG,OAAC;KACxB,MAAM,CAAC;IACN,OAAO,EAAE,wBAAU;CACpB,CAAC;KACD,QAAQ,CAAC,wBAAU,CAAC,CAAA;AAEhB,MAAM,YAAY,GAAG,CAC1B,IAAY,EACZ,cAAsB,SAAS,EACb,EAAE;IACpB,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QAChE,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAA;QAC3C,OAAO,OAAO,CAAA;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;QAChD,OAAM;IACR,CAAC;AACH,CAAC,CAAA;AAZY,QAAA,YAAY,gBAYxB;AAED,2CAAwD;AAE3C,QAAA,UAAU,GAAG,mBAAI,CAAC,IAAI,CACjC,YAAE,CAAC,OAAO,EAAE,EACZ,SAAS,EACT,UAAU;IACR,0BAA0B;IAC1B,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B;QACvC,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,YAAY;QACrD,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE;QAC9C,CAAC,CAAC,EAAE,CAAC,CACV,CAAA;AAED,iCAAiC;AACjC,IAAA,4BAAqB,EAAC,kBAAU,CAAC,CAAA;AACpB,QAAA,gBAAgB,GAAG,mBAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,kBAAkB,CAAC,CAAA"}
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":";;;;;;AAAA,yDAA0D;AAC1D,0DAA4B;AAC5B,4CAAmB;AACnB,6BAAuB;AACvB,2CAAuC;AAEvC,MAAM,iBAAiB,GAAG,OAAC;KACxB,MAAM,CAAC;IACN,OAAO,EAAE,wBAAU;CACpB,CAAC;KACD,QAAQ,CAAC,wBAAU,CAAC,CAAA;AAEhB,MAAM,YAAY,GAAG,CAC1B,IAAY,EACZ,cAAsB,SAAS,EACb,EAAE;IACpB,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QAChE,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAA;QAC3C,OAAO,OAAO,CAAA;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAA;QAChD,eAAM,CAAC,KAAK,CACV;YACE,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACpE,UAAU,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAC5D,WAAW;SACZ,EACD,yBAAyB,CAC1B,CAAA;QACD,OAAM;IACR,CAAC;AACH,CAAC,CAAA;AApBY,QAAA,YAAY,gBAoBxB;AAED,2CAAwD;AAE3C,QAAA,UAAU,GAAG,mBAAI,CAAC,IAAI,CACjC,YAAE,CAAC,OAAO,EAAE,EACZ,SAAS,EACT,UAAU;IACR,0BAA0B;IAC1B,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B;QACvC,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,YAAY;QACrD,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE;QAC9C,CAAC,CAAC,EAAE,CAAC,CACV,CAAA;AAED,iCAAiC;AACjC,IAAA,4BAAqB,EAAC,kBAAU,CAAC,CAAA;AACpB,QAAA,gBAAgB,GAAG,mBAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,kBAAkB,CAAC,CAAA"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.startDevProcesses = startDevProcesses;
7
7
  const path_1 = __importDefault(require("path"));
8
+ const constants_1 = require("./common/json-config/constants");
8
9
  const string_1 = require("./common/util/string");
9
10
  const picocolors_1 = require("picocolors");
10
11
  const terminal_1 = require("./utils/terminal");
@@ -21,7 +22,7 @@ function startDevProcesses(processes, projectPath) {
21
22
  if (!toStart.length) {
22
23
  return;
23
24
  }
24
- console.log((0, picocolors_1.yellow)('Starting codebuff.json processes:'));
25
+ console.log((0, picocolors_1.yellow)(`Starting ${constants_1.codebuffConfigFile} processes:`));
25
26
  for (const { name, command, cwd, enabled, stderrFile, stdoutFile, } of processes) {
26
27
  if (!enabled) {
27
28
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"dev-process-manager.js","sourceRoot":"","sources":["../src/dev-process-manager.ts"],"names":[],"mappings":";;;;;AAgBA,8CAqDC;AArED,gDAAuB;AAGvB,+CAAsD;AACtD,2CAAmC;AAEnC,+CAAuD;AAEvD;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC/B,SAA2B,EAC3B,WAAmB;IAEnB,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAE9D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,OAAM;IACR,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAM,EAAC,mCAAmC,CAAC,CAAC,CAAA;IAExD,KAAK,MAAM,EACT,IAAI,EACJ,OAAO,EACP,GAAG,EACH,OAAO,EACP,UAAU,EACV,UAAU,GACX,IAAI,SAAS,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAQ;QACV,CAAC;QAED,4BAA4B;QAC5B,MAAM,WAAW,GAAG,GAAG;YACrB,CAAC,CAAC,cAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBACpB,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;YAClC,CAAC,CAAC,WAAW,CAAA;QAEf,oBAAoB;QACpB,IAAA,+BAAoB,EAClB;YACE,UAAU,EAAE,IAAA,0BAAiB,GAAE;YAC/B,OAAO;YACP,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,WAAW;YAChB,UAAU;YACV,UAAU;SACX,EACD,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YACb,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;YACzD,IAAI,CAAC,EAAE,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAM,EAAC,KAAK,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC,CAAA;YAC9C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAM,EAAC,KAAK,IAAI,KAAK,OAAO,oBAAoB,CAAC,CAAC,CAAA;YAChE,CAAC;QACH,CAAC,CACF,CAAA;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"dev-process-manager.js","sourceRoot":"","sources":["../src/dev-process-manager.ts"],"names":[],"mappings":";;;;;AAmBA,8CAqDC;AAxED,gDAAuB;AAEvB,4DAGqC;AACrC,+CAAsD;AACtD,2CAAmC;AAEnC,+CAAuD;AAEvD;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC/B,SAA2B,EAC3B,WAAmB;IAEnB,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAE9D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,OAAM;IACR,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAM,EAAC,YAAY,8BAAkB,aAAa,CAAC,CAAC,CAAA;IAEhE,KAAK,MAAM,EACT,IAAI,EACJ,OAAO,EACP,GAAG,EACH,OAAO,EACP,UAAU,EACV,UAAU,GACX,IAAI,SAAS,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAQ;QACV,CAAC;QAED,4BAA4B;QAC5B,MAAM,WAAW,GAAG,GAAG;YACrB,CAAC,CAAC,cAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBACpB,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC;YAClC,CAAC,CAAC,WAAW,CAAA;QAEf,oBAAoB;QACpB,IAAA,+BAAoB,EAClB;YACE,UAAU,EAAE,IAAA,0BAAiB,GAAE;YAC/B,OAAO;YACP,IAAI,EAAE,MAAM;YACZ,GAAG,EAAE,WAAW;YAChB,UAAU;YACV,UAAU;SACX,EACD,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YACb,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;YACzD,IAAI,CAAC,EAAE,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAM,EAAC,KAAK,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC,CAAA;YAC9C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,IAAA,mBAAM,EAAC,KAAK,IAAI,KAAK,OAAO,oBAAoB,CAAC,CAAC,CAAA;YAChE,CAAC;QACH,CAAC,CACF,CAAA;IACH,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAA;AACf,CAAC"}
package/dist/index.js CHANGED
@@ -1,17 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  process.env.NEXT_PUBLIC_CB_ENVIRONMENT = 'production';
3
3
  process.env.NEXT_PUBLIC_BACKEND_URL = 'manicode-backend.onrender.com';
4
- process.env.NEXT_PUBLIC_APP_URL = 'https://codebuff.com';
4
+ process.env.NEXT_PUBLIC_APP_URL = 'https://www.codebuff.com';
5
5
  process.env.NEXT_PUBLIC_SUPPORT_EMAIL = 'support@codebuff.com';
6
6
  process.env.NEXT_PUBLIC_POSTHOG_API_KEY = 'phc_tug7g8yc10qNestK14QV8WyKwjfEl6vwzIbJkBdqeHS';
7
- process.env.NEXT_PUBLIC_POSTHOG_HOST_URL = 'https://us.i.posthog.com/';
7
+ process.env.NEXT_PUBLIC_POSTHOG_HOST_URL = 'https://us.i.posthog.com';
8
8
  "use strict";
9
9
  var __importDefault = (this && this.__importDefault) || function (mod) {
10
10
  return (mod && mod.__esModule) ? mod : { "default": mod };
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  const commander_1 = require("commander");
14
- const parser_1 = require("./common/json-config/parser");
15
14
  const picocolors_1 = require("picocolors");
16
15
  const package_json_1 = __importDefault(require("../package.json"));
17
16
  const cli_1 = require("./cli");
@@ -23,6 +22,7 @@ const startup_process_handler_1 = require("./startup-process-handler");
23
22
  const update_codebuff_1 = require("./update-codebuff");
24
23
  const analytics_1 = require("./utils/analytics");
25
24
  const git_1 = require("./utils/git");
25
+ const logger_1 = require("./utils/logger");
26
26
  const terminal_1 = require("./utils/terminal");
27
27
  async function codebuff(projectDir, { initialInput, git, costMode, runInitFlow, model }) {
28
28
  (0, display_1.enableSquashNewlines)();
@@ -32,10 +32,8 @@ async function codebuff(projectDir, { initialInput, git, costMode, runInitFlow,
32
32
  const projectRoot = (0, project_files_1.setProjectRoot)(gitRoot);
33
33
  (0, project_files_1.setWorkingDirectory)(cwd);
34
34
  (0, terminal_1.recreateShell)(cwd);
35
- // Load config file if it exists
36
- const config = (0, parser_1.loadCodebuffConfig)(projectRoot);
37
35
  // Kill all processes we failed to kill before
38
- const processCleanupPromise = (0, startup_process_handler_1.logAndHandleStartup)(projectRoot, config);
36
+ const processCleanupPromise = (0, startup_process_handler_1.logAndHandleStartup)();
39
37
  (0, analytics_1.initAnalytics)();
40
38
  const updatePromise = (0, update_codebuff_1.updateCodebuff)();
41
39
  const initFileContextPromise = (0, project_files_1.initProjectFileContextWithWorker)(projectRoot);
@@ -89,6 +87,9 @@ For all commands and options, run 'codebuff' and then type 'help'.
89
87
  // Handle deprecated --pro flag
90
88
  if (options.pro) {
91
89
  console.error((0, picocolors_1.red)('Warning: The --pro flag is deprecated. Please restart codebuff and use the --max option instead.'));
90
+ logger_1.logger.error({
91
+ errorMessage: 'The --pro flag is deprecated. Please restart codebuff and use the --max option instead.',
92
+ }, 'Deprecated --pro flag used');
92
93
  process.exit(1);
93
94
  }
94
95
  // Determine cost mode
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { ToolResult } from '../common/types/agent-state';
2
+ /**
3
+ * Runs file change hooks defined in the codebuff.json configuration.
4
+ * Returns an array of tool results for any hooks that fail.
5
+ */
6
+ export declare function runFileChangeHooks(filesChanged: string[]): Promise<ToolResult[]>;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runFileChangeHooks = runFileChangeHooks;
7
+ const string_1 = require("../common/util/string");
8
+ const micromatch_1 = __importDefault(require("micromatch"));
9
+ const project_files_1 = require("../project-files");
10
+ const logger_1 = require("../utils/logger");
11
+ const terminal_1 = require("../utils/terminal");
12
+ const parser_1 = require("./parser");
13
+ /**
14
+ * Runs file change hooks defined in the codebuff.json configuration.
15
+ * Returns an array of tool results for any hooks that fail.
16
+ */
17
+ async function runFileChangeHooks(filesChanged) {
18
+ const config = (0, parser_1.loadCodebuffConfig)();
19
+ const toolResults = [];
20
+ if (!config?.fileChangeHooks) {
21
+ return toolResults;
22
+ }
23
+ for (const hook of config.fileChangeHooks) {
24
+ if (!hook.enabled) {
25
+ continue;
26
+ }
27
+ // If a filePattern is specified, check if any of the changed files match
28
+ if (hook.filePattern && filesChanged.length > 0) {
29
+ const matchingFiles = (0, micromatch_1.default)(filesChanged, hook.filePattern);
30
+ if (matchingFiles.length === 0) {
31
+ // No files match the pattern, skip this hook
32
+ continue;
33
+ }
34
+ }
35
+ try {
36
+ const hookName = `file-change-hook-${hook.name}`;
37
+ const hookId = (0, string_1.generateCompactId)(`${hookName}-`);
38
+ const result = await (0, terminal_1.runTerminalCommand)(hookId, hook.command, 'assistant', 'SYNC', -1, hook.cwd || (0, project_files_1.getProjectRoot)(), undefined, undefined);
39
+ if (result.exitCode !== 0) {
40
+ toolResults.push({
41
+ name: hookName,
42
+ id: hookId,
43
+ result: result.result,
44
+ });
45
+ }
46
+ }
47
+ catch (error) {
48
+ logger_1.logger.error({
49
+ errorMessage: error instanceof Error ? error.message : String(error),
50
+ errorStack: error instanceof Error ? error.stack : undefined,
51
+ hookName: hook.name,
52
+ hookCommand: hook.command,
53
+ }, 'Error running file change hook');
54
+ }
55
+ }
56
+ return toolResults;
57
+ }
58
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/json-config/hooks.ts"],"names":[],"mappings":";;;;;AAaA,gDA0DC;AAtED,+CAAsD;AACtD,4DAAmC;AAEnC,oDAAiD;AACjD,4CAAwC;AACxC,gDAAsD;AACtD,qCAA6C;AAE7C;;;GAGG;AACI,KAAK,UAAU,kBAAkB,CACtC,YAAsB;IAEtB,MAAM,MAAM,GAAG,IAAA,2BAAkB,GAAE,CAAA;IACnC,MAAM,WAAW,GAAiB,EAAE,CAAA;IAEpC,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;QAC7B,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,SAAQ;QACV,CAAC;QAED,yEAAyE;QACzE,IAAI,IAAI,CAAC,WAAW,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,aAAa,GAAG,IAAA,oBAAU,EAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;YAChE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,6CAA6C;gBAC7C,SAAQ;YACV,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,oBAAoB,IAAI,CAAC,IAAI,EAAE,CAAA;YAChD,MAAM,MAAM,GAAG,IAAA,0BAAiB,EAAC,GAAG,QAAQ,GAAG,CAAC,CAAA;YAChD,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAkB,EACrC,MAAM,EACN,IAAI,CAAC,OAAO,EACZ,WAAW,EACX,MAAM,EACN,CAAC,CAAC,EACF,IAAI,CAAC,GAAG,IAAI,IAAA,8BAAc,GAAE,EAC5B,SAAS,EACT,SAAS,CACV,CAAA;YACD,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,WAAW,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,QAAQ;oBACd,EAAE,EAAE,MAAM;oBACV,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,KAAK,CACV;gBACE,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBACpE,UAAU,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;gBAC5D,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,WAAW,EAAE,IAAI,CAAC,OAAO;aAC1B,EACD,gCAAgC,CACjC,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { CodebuffConfig } from '../common/json-config/constants';
2
+ /**
3
+ * Loads and validates the configuration file from the project directory.
4
+ * @param projectPath - The root directory of the project
5
+ * @returns The parsed and validated configuration, or null if no valid config exists
6
+ */
7
+ export declare function loadCodebuffConfig(): CodebuffConfig | null;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.loadCodebuffConfig = loadCodebuffConfig;
7
+ const fs_1 = require("fs");
8
+ const path_1 = __importDefault(require("path"));
9
+ const jsonc_parser_1 = require("jsonc-parser");
10
+ const picocolors_1 = require("picocolors");
11
+ const constants_1 = require("../common/json-config/constants");
12
+ const project_files_1 = require("../project-files");
13
+ /**
14
+ * Loads and validates the configuration file from the project directory.
15
+ * @param projectPath - The root directory of the project
16
+ * @returns The parsed and validated configuration, or null if no valid config exists
17
+ */
18
+ function loadCodebuffConfig() {
19
+ const projectPath = (0, project_files_1.getProjectRoot)();
20
+ const configPathPrimary = path_1.default.join(projectPath, constants_1.codebuffConfigFile);
21
+ const configPathBackup = path_1.default.join(projectPath, constants_1.codebuffConfigFileBackup);
22
+ const configPath = (0, fs_1.existsSync)(configPathBackup)
23
+ ? configPathBackup
24
+ : (0, fs_1.existsSync)(configPathPrimary)
25
+ ? configPathPrimary
26
+ : null;
27
+ if (configPath === null) {
28
+ return null;
29
+ }
30
+ try {
31
+ const jsoncContent = (0, fs_1.readFileSync)(configPath, 'utf-8');
32
+ const parsedConfig = (0, jsonc_parser_1.parse)(jsoncContent);
33
+ const result = constants_1.CodebuffConfigSchema.safeParse(parsedConfig);
34
+ if (!result.success) {
35
+ console.warn((0, picocolors_1.yellow)(`Warning: Invalid ${constants_1.codebuffConfigFile} configuration. Please check the schema:\n` +
36
+ result.error.errors
37
+ .map((err) => `- ${err.path.join('.')}: ${err.message}`)
38
+ .join('\n')));
39
+ return null;
40
+ }
41
+ return result.data;
42
+ }
43
+ catch (error) {
44
+ if (error instanceof SyntaxError) {
45
+ console.warn((0, picocolors_1.yellow)(`Warning: Invalid JSON in ${constants_1.codebuffConfigFile}. Please check the syntax.`));
46
+ }
47
+ else {
48
+ console.warn((0, picocolors_1.yellow)(`Warning: Error reading ${constants_1.codebuffConfigFile} configuration file.`));
49
+ }
50
+ return null;
51
+ }
52
+ }
53
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/json-config/parser.ts"],"names":[],"mappings":";;;;;AAmBA,gDAiDC;AApED,2BAA6C;AAC7C,gDAAuB;AAEvB,+CAAkD;AAClD,2CAAmC;AAEnC,4DAKqC;AACrC,oDAAiD;AAEjD;;;;GAIG;AACH,SAAgB,kBAAkB;IAChC,MAAM,WAAW,GAAG,IAAA,8BAAc,GAAE,CAAA;IACpC,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,8BAAkB,CAAC,CAAA;IACpE,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oCAAwB,CAAC,CAAA;IACzE,MAAM,UAAU,GAAG,IAAA,eAAU,EAAC,gBAAgB,CAAC;QAC7C,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,IAAA,eAAU,EAAC,iBAAiB,CAAC;YAC7B,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,IAAI,CAAA;IAEV,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAA,iBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACtD,MAAM,YAAY,GAAG,IAAA,oBAAU,EAAC,YAAY,CAAC,CAAA;QAE7C,MAAM,MAAM,GAAG,gCAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAE3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CACV,IAAA,mBAAM,EACJ,oBAAoB,8BAAkB,4CAA4C;gBAChF,MAAM,CAAC,KAAK,CAAC,MAAM;qBAChB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;qBACvD,IAAI,CAAC,IAAI,CAAC,CAChB,CACF,CAAA;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CACV,IAAA,mBAAM,EACJ,4BAA4B,8BAAkB,4BAA4B,CAC3E,CACF,CAAA;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,IAAA,mBAAM,EACJ,0BAA0B,8BAAkB,sBAAsB,CACnE,CACF,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { CodebuffConfig } from './common/json-config/constants';
2
+ /**
3
+ * Loads and validates the configuration file from the project directory.
4
+ * @param projectPath - The root directory of the project
5
+ * @returns The parsed and validated configuration, or null if no valid config exists
6
+ */
7
+ export declare function loadCodebuffConfig(): CodebuffConfig | null;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.loadCodebuffConfig = loadCodebuffConfig;
7
+ const fs_1 = require("fs");
8
+ const path_1 = __importDefault(require("path"));
9
+ const jsonc_parser_1 = require("jsonc-parser");
10
+ const picocolors_1 = require("picocolors");
11
+ const constants_1 = require("./common/json-config/constants");
12
+ const project_files_1 = require("./project-files");
13
+ /**
14
+ * Loads and validates the configuration file from the project directory.
15
+ * @param projectPath - The root directory of the project
16
+ * @returns The parsed and validated configuration, or null if no valid config exists
17
+ */
18
+ function loadCodebuffConfig() {
19
+ const projectPath = (0, project_files_1.getProjectRoot)();
20
+ const configPathPrimary = path_1.default.join(projectPath, constants_1.codebuffConfigFile);
21
+ const configPathBackup = path_1.default.join(projectPath, constants_1.codebuffConfigFileBackup);
22
+ const configPath = (0, fs_1.existsSync)(configPathBackup)
23
+ ? configPathBackup
24
+ : (0, fs_1.existsSync)(configPathPrimary)
25
+ ? configPathPrimary
26
+ : null;
27
+ if (configPath === null) {
28
+ return null;
29
+ }
30
+ try {
31
+ const jsoncContent = (0, fs_1.readFileSync)(configPath, 'utf-8');
32
+ const parsedConfig = (0, jsonc_parser_1.parse)(jsoncContent);
33
+ const result = constants_1.CodebuffConfigSchema.safeParse(parsedConfig);
34
+ if (!result.success) {
35
+ console.warn((0, picocolors_1.yellow)(`Warning: Invalid ${constants_1.codebuffConfigFile} configuration. Please check the schema:\n` +
36
+ result.error.errors
37
+ .map((err) => `- ${err.path.join('.')}: ${err.message}`)
38
+ .join('\n')));
39
+ return null;
40
+ }
41
+ return result.data;
42
+ }
43
+ catch (error) {
44
+ if (error instanceof SyntaxError) {
45
+ console.warn((0, picocolors_1.yellow)(`Warning: Invalid JSON in ${constants_1.codebuffConfigFile}. Please check the syntax.`));
46
+ }
47
+ else {
48
+ console.warn((0, picocolors_1.yellow)(`Warning: Error reading ${constants_1.codebuffConfigFile} configuration file.`));
49
+ }
50
+ return null;
51
+ }
52
+ }
53
+ //# sourceMappingURL=json-config-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-config-parser.js","sourceRoot":"","sources":["../src/json-config-parser.ts"],"names":[],"mappings":";;;;;AAmBA,gDAiDC;AApED,2BAA6C;AAC7C,gDAAuB;AAEvB,+CAAkD;AAClD,2CAAmC;AAEnC,4DAKqC;AACrC,mDAAgD;AAEhD;;;;GAIG;AACH,SAAgB,kBAAkB;IAChC,MAAM,WAAW,GAAG,IAAA,8BAAc,GAAE,CAAA;IACpC,MAAM,iBAAiB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,8BAAkB,CAAC,CAAA;IACpE,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oCAAwB,CAAC,CAAA;IACzE,MAAM,UAAU,GAAG,IAAA,eAAU,EAAC,gBAAgB,CAAC;QAC7C,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,IAAA,eAAU,EAAC,iBAAiB,CAAC;YAC7B,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,IAAI,CAAA;IAEV,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAA,iBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QACtD,MAAM,YAAY,GAAG,IAAA,oBAAU,EAAC,YAAY,CAAC,CAAA;QAE7C,MAAM,MAAM,GAAG,gCAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAE3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CACV,IAAA,mBAAM,EACJ,oBAAoB,8BAAkB,4CAA4C;gBAChF,MAAM,CAAC,KAAK,CAAC,MAAM;qBAChB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;qBACvD,IAAI,CAAC,IAAI,CAAC,CAChB,CACF,CAAA;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CACV,IAAA,mBAAM,EACJ,4BAA4B,8BAAkB,4BAA4B,CAC3E,CACF,CAAA;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,IAAA,mBAAM,EACJ,0BAA0B,8BAAkB,sBAAsB,CACnE,CACF,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC"}
package/dist/menu.js CHANGED
@@ -35,6 +35,7 @@ const fs = __importStar(require("fs"));
35
35
  const os_1 = __importDefault(require("os"));
36
36
  const path_1 = __importDefault(require("path"));
37
37
  const picocolors_1 = require("picocolors");
38
+ const constants_1 = require("./common/json-config/constants");
38
39
  const project_files_1 = require("./project-files");
39
40
  exports.interactiveCommandDetails = [
40
41
  {
@@ -44,18 +45,18 @@ exports.interactiveCommandDetails = [
44
45
  commandText: '', // Empty commandText ensures it's not shown in the main interactive list
45
46
  aliases: ['h'], // Optional: if you want /h to also work for tab completion
46
47
  },
47
- {
48
- commandText: '"login"',
49
- baseCommand: 'login',
50
- description: 'Authenticate your session',
51
- isSlashCommand: false,
52
- },
53
48
  {
54
49
  commandText: '"init"',
55
50
  baseCommand: 'init',
56
51
  description: 'Configure project for better results',
57
52
  isSlashCommand: true,
58
53
  },
54
+ {
55
+ commandText: '"login"',
56
+ baseCommand: 'login',
57
+ description: 'Authenticate your session',
58
+ isSlashCommand: false,
59
+ },
59
60
  {
60
61
  commandText: '"diff" or "d"',
61
62
  baseCommand: 'diff',
@@ -90,9 +91,21 @@ exports.interactiveCommandDetails = [
90
91
  {
91
92
  commandText: '"reset"',
92
93
  baseCommand: 'reset',
93
- description: 'Reset the conversation context, as if you just started a new Codebuff session',
94
+ description: 'Reset the conversation history, as if you just started a new Codebuff session',
94
95
  isSlashCommand: true,
95
96
  },
97
+ {
98
+ baseCommand: 'compact',
99
+ description: 'Replace the conversation history with a summary and free up context',
100
+ isSlashCommand: true,
101
+ commandText: '"compact"',
102
+ },
103
+ {
104
+ baseCommand: 'export',
105
+ description: 'Export conversation summary to file',
106
+ isSlashCommand: true,
107
+ commandText: '"export"',
108
+ },
96
109
  {
97
110
  commandText: 'ESC key or Ctrl-C',
98
111
  description: 'Cancel generation',
@@ -122,6 +135,12 @@ exports.interactiveCommandDetails = [
122
135
  isSlashCommand: false,
123
136
  commandText: '',
124
137
  },
138
+ {
139
+ baseCommand: 'ask',
140
+ description: "Switch to ask mode (won't modify code)",
141
+ isSlashCommand: true,
142
+ commandText: '',
143
+ },
125
144
  {
126
145
  baseCommand: 'lite',
127
146
  description: 'Switch to lite mode (faster, cheaper)',
@@ -146,24 +165,6 @@ exports.interactiveCommandDetails = [
146
165
  isSlashCommand: false,
147
166
  commandText: '',
148
167
  },
149
- {
150
- baseCommand: 'ask',
151
- description: "Switch to ask mode (won't modify code)",
152
- isSlashCommand: true,
153
- commandText: '',
154
- },
155
- {
156
- baseCommand: 'compact',
157
- description: 'Summarize conversation so far, for greater efficiency',
158
- isSlashCommand: true,
159
- commandText: '"compact"',
160
- },
161
- {
162
- baseCommand: 'export',
163
- description: 'Export conversation summary to file',
164
- isSlashCommand: true,
165
- commandText: '"export"',
166
- },
167
168
  {
168
169
  commandText: '"exit" or Ctrl-C x2',
169
170
  baseCommand: 'exit',
@@ -172,9 +173,7 @@ exports.interactiveCommandDetails = [
172
173
  },
173
174
  ];
174
175
  function getSlashCommands() {
175
- return exports.interactiveCommandDetails
176
- .filter((cmd) => cmd.isSlashCommand && cmd.baseCommand)
177
- .sort((a, b) => a.baseCommand.localeCompare(b.baseCommand));
176
+ return exports.interactiveCommandDetails.filter((cmd) => cmd.isSlashCommand && cmd.baseCommand);
178
177
  }
179
178
  function displaySlashCommandHelperMenu() {
180
179
  const commands = getSlashCommands();
@@ -268,42 +267,42 @@ ${colorizeRandom(' ╚═════╝')}${colorizeRandom(' ╚═════
268
267
  const hasGitRepo = fs.existsSync(path_1.default.join((0, project_files_1.getProjectRoot)(), '.git'));
269
268
  const hasGitIgnore = fs.existsSync(path_1.default.join((0, project_files_1.getProjectRoot)(), '.gitignore'));
270
269
  const hasKnowledgeMd = fs.existsSync(path_1.default.join((0, project_files_1.getProjectRoot)(), 'knowledge.md'));
271
- const hasCodebuffJson = fs.existsSync(path_1.default.join((0, project_files_1.getProjectRoot)(), 'codebuff.json'));
270
+ const hasCodebuffJson = fs.existsSync(path_1.default.join((0, project_files_1.getProjectRoot)(), constants_1.codebuffConfigFile));
272
271
  const gitignoreNote = ' (Codebuff never reads files in your .gitignore/.codebuffignore)';
273
272
  // Condition 1: Git repo found, all files present
274
273
  if (hasGitRepo && hasGitIgnore && hasKnowledgeMd && hasCodebuffJson) {
275
274
  return `${currentDirectoryLine}\n${(0, picocolors_1.green)('✅ Git repo: detected')}
276
275
  ${(0, picocolors_1.green)('✅ .gitignore: detected')}${gitignoreNote}
277
276
  ${(0, picocolors_1.green)('✅ knowledge.md: detected')}
278
- ${(0, picocolors_1.green)('✅ codebuff.json: detected')}`;
277
+ ${(0, picocolors_1.green)(`✅ ${constants_1.codebuffConfigFile}: detected`)}`;
279
278
  }
280
279
  // Condition 2: Git repo not found
281
280
  if (!hasGitRepo) {
282
281
  return `${currentDirectoryLine}\n${(0, picocolors_1.yellow)('❌ Git repo: not found')}${' - navigate to a working directory!'}
283
282
  ${hasGitIgnore ? (0, picocolors_1.green)('✅ .gitignore: detected') : (0, picocolors_1.yellow)('❌ .gitignore: missing')}${gitignoreNote}
284
283
  ${hasKnowledgeMd ? (0, picocolors_1.green)('✅ knowledge.md: detected') : (0, picocolors_1.yellow)('❌ knowledge.md: missing')}${' — run "init" to fix'}
285
- ${hasCodebuffJson ? (0, picocolors_1.green)('✅ codebuff.json: detected') : (0, picocolors_1.yellow)('❌ codebuff.json: missing')}${' — run "init" to fix'}`;
284
+ ${hasCodebuffJson ? (0, picocolors_1.green)(`✅ ${constants_1.codebuffConfigFile}: detected`) : (0, picocolors_1.yellow)(`❌ ${constants_1.codebuffConfigFile}: missing`)}${' — run "init" to fix'}`;
286
285
  }
287
286
  // Condition 3: Missing .gitignore
288
287
  if (!hasGitIgnore) {
289
288
  return `${currentDirectoryLine}\n${(0, picocolors_1.green)('✅ Git repo: detected')}
290
289
  ${(0, picocolors_1.yellow)('❌ .gitignore: missing - type "generate a reasonable .gitignore"')}${gitignoreNote}
291
290
  ${hasKnowledgeMd ? (0, picocolors_1.green)('✅ knowledge.md: detected') : (0, picocolors_1.yellow)('❌ knowledge.md: missing')}
292
- ${hasCodebuffJson ? (0, picocolors_1.green)('✅ codebuff.json: detected') : (0, picocolors_1.yellow)('❌ codebuff.json: missing')}`;
291
+ ${hasCodebuffJson ? (0, picocolors_1.green)(`✅ ${constants_1.codebuffConfigFile}: detected`) : (0, picocolors_1.yellow)(`❌ ${constants_1.codebuffConfigFile}: missing`)}`;
293
292
  }
294
293
  // Condition 4: Missing knowledge files
295
294
  return `${currentDirectoryLine}\n${(0, picocolors_1.green)('✅ Git repo: detected')}
296
295
  ${(0, picocolors_1.green)('✅ .gitignore: detected')}${gitignoreNote}
297
296
  ${!hasKnowledgeMd && !hasCodebuffJson
298
- ? (0, picocolors_1.yellow)('❌ knowledge.md & codebuff.json: missing - type "init"')
297
+ ? (0, picocolors_1.yellow)(`❌ knowledge.md & ${constants_1.codebuffConfigFile}: missing - type "init"`)
299
298
  : !hasKnowledgeMd
300
299
  ? (0, picocolors_1.yellow)('❌ knowledge.md: missing - type "init"')
301
300
  : !hasCodebuffJson
302
- ? (0, picocolors_1.yellow)('❌ codebuff.json: missing - type "init"')
303
- : (0, picocolors_1.green)('✅ knowledge.md & codebuff.json: detected')}
304
- ${hasKnowledgeMd && !hasCodebuffJson ? `\n${(0, picocolors_1.yellow)('codebuff.json runs deployment scripts for you to test your code and runs configured checks for you by running your dev server.')}` : ''}
301
+ ? (0, picocolors_1.yellow)(`❌ ${constants_1.codebuffConfigFile}: missing - type "init"`)
302
+ : (0, picocolors_1.green)(`✅ knowledge.md & ${constants_1.codebuffConfigFile}: detected`)}
303
+ ${hasKnowledgeMd && !hasCodebuffJson ? `\n${(0, picocolors_1.yellow)(`${constants_1.codebuffConfigFile} runs deployment scripts for you to test your code and runs configured checks for you by running your dev server.`)}` : ''}
305
304
  ${!hasKnowledgeMd && hasCodebuffJson ? `\n${(0, picocolors_1.yellow)('knowledge.md helps Codebuff understand your project structure and codebase better for better results.')}` : ''}
306
- ${!hasKnowledgeMd && !hasCodebuffJson ? `\n${(0, picocolors_1.yellow)('knowledge.md helps Codebuff understand your project structure and codebase better for better results.')}\n${(0, picocolors_1.yellow)('codebuff.json runs deployment scripts for you to test your code and runs configured checks for you by running your dev server.')}` : ''}`;
305
+ ${!hasKnowledgeMd && !hasCodebuffJson ? `\n${(0, picocolors_1.yellow)('knowledge.md helps Codebuff understand your project structure and codebase better for better results.')}\n${(0, picocolors_1.yellow)(`${constants_1.codebuffConfigFile} runs deployment scripts for you to test your code and runs configured checks for you by running your dev server.`)}` : ''}`;
307
306
  })());
308
307
  // COMMUNITY & FEEDBACK SECTION
309
308
  console.log(`\n${(0, picocolors_1.bold)((0, picocolors_1.underline)('COMMUNITY & FEEDBACK'))}`);