opencara 0.19.2 → 0.19.4
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/dist/index.js +69 -20
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -174,6 +174,42 @@ function parseStringArray(value) {
|
|
|
174
174
|
return [];
|
|
175
175
|
return value.filter((v) => typeof v === "string");
|
|
176
176
|
}
|
|
177
|
+
function parseTriggerSection(raw, defaults) {
|
|
178
|
+
if (!raw)
|
|
179
|
+
return { ...defaults };
|
|
180
|
+
const result = {};
|
|
181
|
+
const eventsRaw = raw.events !== void 0 ? raw.events : raw.on;
|
|
182
|
+
if (eventsRaw === false) {
|
|
183
|
+
} else if (Array.isArray(eventsRaw)) {
|
|
184
|
+
result.events = eventsRaw.filter((v) => typeof v === "string");
|
|
185
|
+
} else if (defaults.events !== void 0) {
|
|
186
|
+
result.events = defaults.events;
|
|
187
|
+
}
|
|
188
|
+
if (raw.comment === false) {
|
|
189
|
+
} else if (typeof raw.comment === "string") {
|
|
190
|
+
result.comment = raw.comment;
|
|
191
|
+
} else if (defaults.comment !== void 0) {
|
|
192
|
+
result.comment = defaults.comment;
|
|
193
|
+
}
|
|
194
|
+
if (raw.label === false) {
|
|
195
|
+
} else if (typeof raw.label === "string") {
|
|
196
|
+
result.label = raw.label;
|
|
197
|
+
} else if (defaults.label !== void 0) {
|
|
198
|
+
result.label = defaults.label;
|
|
199
|
+
}
|
|
200
|
+
if (raw.status === false) {
|
|
201
|
+
} else if (typeof raw.status === "string") {
|
|
202
|
+
result.status = raw.status;
|
|
203
|
+
} else if (defaults.status !== void 0) {
|
|
204
|
+
result.status = defaults.status;
|
|
205
|
+
}
|
|
206
|
+
if (Array.isArray(raw.skip)) {
|
|
207
|
+
result.skip = raw.skip.filter((v) => typeof v === "string");
|
|
208
|
+
} else if (defaults.skip !== void 0) {
|
|
209
|
+
result.skip = defaults.skip;
|
|
210
|
+
}
|
|
211
|
+
return result;
|
|
212
|
+
}
|
|
177
213
|
var DEFAULT_MODEL_DIVERSITY_GRACE_MS = 3e4;
|
|
178
214
|
function parseDurationSeconds(value, defaultMs) {
|
|
179
215
|
if (typeof value === "number")
|
|
@@ -188,11 +224,23 @@ function parseDurationSeconds(value, defaultMs) {
|
|
|
188
224
|
const seconds = parseInt(match[1], 10);
|
|
189
225
|
return clamp(seconds, 0, 300) * 1e3;
|
|
190
226
|
}
|
|
191
|
-
var
|
|
192
|
-
|
|
227
|
+
var DEFAULT_REVIEW_TRIGGER = {
|
|
228
|
+
events: ["opened"],
|
|
193
229
|
comment: "/opencara review",
|
|
194
230
|
skip: ["draft"]
|
|
195
231
|
};
|
|
232
|
+
var DEFAULT_IMPLEMENT_TRIGGER = {
|
|
233
|
+
comment: "/opencara go",
|
|
234
|
+
status: "Ready"
|
|
235
|
+
};
|
|
236
|
+
var DEFAULT_FIX_TRIGGER = {
|
|
237
|
+
comment: "/opencara fix"
|
|
238
|
+
};
|
|
239
|
+
var DEFAULT_TRIAGE_TRIGGER = {
|
|
240
|
+
events: ["opened"],
|
|
241
|
+
comment: "/opencara triage"
|
|
242
|
+
};
|
|
243
|
+
var DEFAULT_TRIGGER = DEFAULT_REVIEW_TRIGGER;
|
|
196
244
|
var DEFAULT_FEATURE_CONFIG = {
|
|
197
245
|
prompt: "Review this pull request for bugs, security issues, and code quality.",
|
|
198
246
|
agentCount: 1,
|
|
@@ -273,16 +321,12 @@ function parseFeatureFields(raw, defaults) {
|
|
|
273
321
|
};
|
|
274
322
|
}
|
|
275
323
|
function parseReviewSection(raw) {
|
|
276
|
-
const triggerRaw = isObject(raw.trigger) ? raw.trigger :
|
|
324
|
+
const triggerRaw = isObject(raw.trigger) ? raw.trigger : void 0;
|
|
277
325
|
const reviewerRaw = isObject(raw.reviewer) ? raw.reviewer : {};
|
|
278
326
|
const base = parseFeatureFields(raw, DEFAULT_FEATURE_CONFIG);
|
|
279
327
|
return {
|
|
280
328
|
...base,
|
|
281
|
-
trigger:
|
|
282
|
-
on: Array.isArray(triggerRaw.on) ? triggerRaw.on.filter((v) => typeof v === "string") : DEFAULT_TRIGGER.on,
|
|
283
|
-
comment: typeof triggerRaw.comment === "string" ? triggerRaw.comment : DEFAULT_TRIGGER.comment,
|
|
284
|
-
skip: Array.isArray(triggerRaw.skip) ? triggerRaw.skip.filter((v) => typeof v === "string") : DEFAULT_TRIGGER.skip
|
|
285
|
-
},
|
|
329
|
+
trigger: parseTriggerSection(triggerRaw, DEFAULT_REVIEW_TRIGGER),
|
|
286
330
|
reviewer: {
|
|
287
331
|
whitelist: parseEntityList(reviewerRaw.whitelist),
|
|
288
332
|
blacklist: parseEntityList(reviewerRaw.blacklist)
|
|
@@ -341,12 +385,17 @@ function parseTriageSection(raw) {
|
|
|
341
385
|
}
|
|
342
386
|
}
|
|
343
387
|
}
|
|
388
|
+
const triggerRaw = isObject(raw.trigger) ? raw.trigger : void 0;
|
|
389
|
+
let triageDefaults = DEFAULT_TRIAGE_TRIGGER;
|
|
390
|
+
if (!triggerRaw && Array.isArray(raw.triggers)) {
|
|
391
|
+
triageDefaults = { ...DEFAULT_TRIAGE_TRIGGER, events: parseStringArray(raw.triggers) };
|
|
392
|
+
}
|
|
344
393
|
return {
|
|
345
394
|
...base,
|
|
346
395
|
enabled: typeof raw.enabled === "boolean" ? raw.enabled : true,
|
|
396
|
+
trigger: parseTriggerSection(triggerRaw, triageDefaults),
|
|
347
397
|
defaultMode,
|
|
348
398
|
autoLabel: typeof raw.auto_label === "boolean" ? raw.auto_label : false,
|
|
349
|
-
triggers: Array.isArray(raw.triggers) ? parseStringArray(raw.triggers) : ["opened"],
|
|
350
399
|
...authorModes ? { authorModes } : {}
|
|
351
400
|
};
|
|
352
401
|
}
|
|
@@ -360,9 +409,11 @@ var DEFAULT_IMPLEMENT_FEATURE = {
|
|
|
360
409
|
};
|
|
361
410
|
function parseImplementSection(raw) {
|
|
362
411
|
const base = parseFeatureFields(raw, DEFAULT_IMPLEMENT_FEATURE);
|
|
412
|
+
const triggerRaw = isObject(raw.trigger) ? raw.trigger : void 0;
|
|
363
413
|
return {
|
|
364
414
|
...base,
|
|
365
|
-
enabled: typeof raw.enabled === "boolean" ? raw.enabled : true
|
|
415
|
+
enabled: typeof raw.enabled === "boolean" ? raw.enabled : true,
|
|
416
|
+
trigger: parseTriggerSection(triggerRaw, DEFAULT_IMPLEMENT_TRIGGER)
|
|
366
417
|
};
|
|
367
418
|
}
|
|
368
419
|
var DEFAULT_FIX_FEATURE = {
|
|
@@ -375,9 +426,11 @@ var DEFAULT_FIX_FEATURE = {
|
|
|
375
426
|
};
|
|
376
427
|
function parseFixSection(raw) {
|
|
377
428
|
const base = parseFeatureFields(raw, DEFAULT_FIX_FEATURE);
|
|
429
|
+
const triggerRaw = isObject(raw.trigger) ? raw.trigger : void 0;
|
|
378
430
|
return {
|
|
379
431
|
...base,
|
|
380
|
-
enabled: typeof raw.enabled === "boolean" ? raw.enabled : true
|
|
432
|
+
enabled: typeof raw.enabled === "boolean" ? raw.enabled : true,
|
|
433
|
+
trigger: parseTriggerSection(triggerRaw, DEFAULT_FIX_TRIGGER)
|
|
381
434
|
};
|
|
382
435
|
}
|
|
383
436
|
function parseOpenCaraConfig(toml) {
|
|
@@ -423,7 +476,7 @@ function parseOpenCaraConfig(toml) {
|
|
|
423
476
|
return config;
|
|
424
477
|
}
|
|
425
478
|
function parseLegacyReviewConfig(raw) {
|
|
426
|
-
const triggerRaw = isObject(raw.trigger) ? raw.trigger :
|
|
479
|
+
const triggerRaw = isObject(raw.trigger) ? raw.trigger : void 0;
|
|
427
480
|
const agentsRaw = isObject(raw.agents) ? raw.agents : {};
|
|
428
481
|
const reviewerRaw = isObject(raw.reviewer) ? raw.reviewer : {};
|
|
429
482
|
return {
|
|
@@ -433,11 +486,7 @@ function parseLegacyReviewConfig(raw) {
|
|
|
433
486
|
preferredModels: parseStringArray(agentsRaw.preferred_models),
|
|
434
487
|
preferredTools: parseStringArray(agentsRaw.preferred_tools),
|
|
435
488
|
modelDiversityGraceMs: parseDurationSeconds(raw.model_diversity_grace ?? agentsRaw.model_diversity_grace, DEFAULT_MODEL_DIVERSITY_GRACE_MS),
|
|
436
|
-
trigger:
|
|
437
|
-
on: Array.isArray(triggerRaw.on) ? triggerRaw.on.filter((v) => typeof v === "string") : DEFAULT_TRIGGER.on,
|
|
438
|
-
comment: typeof triggerRaw.comment === "string" ? triggerRaw.comment : DEFAULT_TRIGGER.comment,
|
|
439
|
-
skip: Array.isArray(triggerRaw.skip) ? triggerRaw.skip.filter((v) => typeof v === "string") : DEFAULT_TRIGGER.skip
|
|
440
|
-
},
|
|
489
|
+
trigger: parseTriggerSection(triggerRaw, DEFAULT_REVIEW_TRIGGER),
|
|
441
490
|
reviewer: {
|
|
442
491
|
whitelist: parseEntityList(reviewerRaw.whitelist),
|
|
443
492
|
blacklist: parseEntityList(reviewerRaw.blacklist)
|
|
@@ -5211,7 +5260,7 @@ function sleep2(ms, signal) {
|
|
|
5211
5260
|
async function startAgent(agentId, platformUrl, agentInfo, reviewDeps, consumptionDeps, options) {
|
|
5212
5261
|
const client = new ApiClient(platformUrl, {
|
|
5213
5262
|
authToken: options?.authToken,
|
|
5214
|
-
cliVersion: "0.19.
|
|
5263
|
+
cliVersion: "0.19.4",
|
|
5215
5264
|
versionOverride: options?.versionOverride,
|
|
5216
5265
|
onTokenRefresh: options?.onTokenRefresh
|
|
5217
5266
|
});
|
|
@@ -5498,7 +5547,7 @@ async function startBatchAgents(config, agents, pollIntervalMs, oauthToken, opti
|
|
|
5498
5547
|
const { versionOverride, verbose, instancesOverride, agentOwner, userOrgs } = options;
|
|
5499
5548
|
const client = new ApiClient(config.platformUrl, {
|
|
5500
5549
|
authToken: oauthToken,
|
|
5501
|
-
cliVersion: "0.19.
|
|
5550
|
+
cliVersion: "0.19.4",
|
|
5502
5551
|
versionOverride,
|
|
5503
5552
|
onTokenRefresh: () => getValidToken(config.platformUrl, { configPath: config.authFile })
|
|
5504
5553
|
});
|
|
@@ -6655,7 +6704,7 @@ var statusCommand = new Command4("status").description("Show agent config, conne
|
|
|
6655
6704
|
});
|
|
6656
6705
|
|
|
6657
6706
|
// src/index.ts
|
|
6658
|
-
var program = new Command5().name("opencara").description("OpenCara \u2014 distributed AI code review agent").version("0.19.
|
|
6707
|
+
var program = new Command5().name("opencara").description("OpenCara \u2014 distributed AI code review agent").version("0.19.4");
|
|
6659
6708
|
program.addCommand(agentCommand);
|
|
6660
6709
|
program.addCommand(authCommand());
|
|
6661
6710
|
program.addCommand(dedupCommand());
|