buddy-workbench 0.1.74 → 0.1.75

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "buddy-workbench",
3
- "version": "0.1.74",
3
+ "version": "0.1.75",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,6 +11,7 @@ export function settingsStatus() {
11
11
  const settings = readSettings();
12
12
  return {
13
13
  domain: typeof settings.domain === 'string' ? settings.domain : '',
14
+ aiApiHost: typeof settings.aiApiHost === 'string' ? settings.aiApiHost : '',
14
15
  jiraIssuePrefix: typeof settings.jiraIssuePrefix === 'string' ? settings.jiraIssuePrefix : '',
15
16
  defaultEditor: typeof settings.defaultEditor === 'string' ? settings.defaultEditor : 'vscode',
16
17
  defaultBrowser: typeof settings.defaultBrowser === 'string' ? settings.defaultBrowser : 'chrome',
@@ -26,6 +27,15 @@ export function settingsStatus() {
26
27
  };
27
28
  }
28
29
 
30
+ export function saveAiApiHost(aiApiHost) {
31
+ const settings = readSettings();
32
+ if (aiApiHost) settings.aiApiHost = aiApiHost;
33
+ else delete settings.aiApiHost;
34
+ mkdirSync(dirname(paths.settings), { recursive: true });
35
+ writeFileSync(paths.settings, JSON.stringify(settings, null, 2), { mode: 0o600 });
36
+ return settingsStatus();
37
+ }
38
+
29
39
  export function saveDomain(domain) {
30
40
  const settings = readSettings();
31
41
  if (domain) settings.domain = domain;
@@ -112,7 +122,14 @@ export function readPrReviewCustomRules() {
112
122
  return Array.isArray(settings.prReviewCustomRules) ? settings.prReviewCustomRules : [];
113
123
  }
114
124
 
115
- export function savePrReviewRules(rules, customRules, defaultRules) {
125
+ export function readPrReviewFileFilters() {
126
+ const settings = readSettings();
127
+ return Array.isArray(settings.prReviewFileFilters)
128
+ ? settings.prReviewFileFilters.filter((pattern) => typeof pattern === 'string' && pattern.trim()).map((pattern) => pattern.trim())
129
+ : [];
130
+ }
131
+
132
+ export function savePrReviewRules(rules, customRules, fileFilters, defaultRules) {
116
133
  const settings = readSettings();
117
134
  const allowed = new Map(defaultRules.map((rule) => [rule.id, rule]));
118
135
  settings.prReviewRules = {};
@@ -135,9 +152,12 @@ export function savePrReviewRules(rules, customRules, defaultRules) {
135
152
  enabled: rule.enabled !== false,
136
153
  severity: ['critical', 'warning', 'info'].includes(rule.severity) ? rule.severity : 'warning'
137
154
  }));
155
+ settings.prReviewFileFilters = [...new Set((Array.isArray(fileFilters) ? fileFilters : [])
156
+ .filter((pattern) => typeof pattern === 'string' && pattern.trim())
157
+ .map((pattern) => pattern.trim().slice(0, 300)))].slice(0, 100);
138
158
  mkdirSync(dirname(paths.settings), { recursive: true });
139
159
  writeFileSync(paths.settings, JSON.stringify(settings, null, 2), { mode: 0o600 });
140
- return { rules: readPrReviewRules(defaultRules), customRules: readPrReviewCustomRules() };
160
+ return { rules: readPrReviewRules(defaultRules), customRules: readPrReviewCustomRules(), fileFilters: readPrReviewFileFilters() };
141
161
  }
142
162
 
143
163
  const accessTokenFields = {
@@ -355,7 +355,7 @@ router.post('/create-pr', async (req, res) => {
355
355
 
356
356
  const prPayload = {
357
357
  title: title || `Merge ${sourceBranch} to ${targetBranch}`,
358
- description: `Automated Pull Request created via DevBuddy Branch Sync Status Check.\n\nMerging \`${sourceBranch}\` into \`${targetBranch}\`.`,
358
+ description: `Automated Pull Request created.\n\nMerging \`${sourceBranch}\` into \`${targetBranch}\`.`,
359
359
  fromRef: {
360
360
  id: `refs/heads/${sourceBranch}`,
361
361
  repository: {