@rallycry/conveyor-agent 8.7.0 → 8.8.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.
@@ -12,7 +12,7 @@ import {
12
12
  ensureClaudeCredentials,
13
13
  removeConveyorCredentials,
14
14
  sessionTranscriptPath
15
- } from "./chunk-6B545CHM.js";
15
+ } from "./chunk-EOGZOS2H.js";
16
16
 
17
17
  // src/setup/bootstrap.ts
18
18
  var BOOTSTRAP_TIMEOUT_MS = 3e4;
@@ -1424,14 +1424,11 @@ var PlanSync = class {
1424
1424
  }
1425
1425
  };
1426
1426
 
1427
- // src/execution/query-executor.ts
1428
- import { createHash } from "crypto";
1429
- import { existsSync, readFileSync as readFileSync2, truncateSync } from "fs";
1430
-
1431
1427
  // ../shared/dist/index.js
1432
1428
  import { z } from "zod";
1433
1429
  import { z as z2 } from "zod";
1434
1430
  import { z as z3 } from "zod";
1431
+ var DEFAULT_SONNET_MODEL = "claude-sonnet-4-6";
1435
1432
  var MAX_FILE_SIZE_BYTES = 25 * 1024 * 1024;
1436
1433
  var EMBED_THRESHOLD_IMAGES = 5 * 1024 * 1024;
1437
1434
  var EMBED_THRESHOLD_TEXT = 2 * 1024 * 1024;
@@ -1491,6 +1488,11 @@ var GetSuggestionsRequestSchema = z.object({
1491
1488
  var ListManualTestsRequestSchema = z.object({
1492
1489
  sessionId: z.string()
1493
1490
  });
1491
+ var QueryManualTestsRequestSchema = z.object({
1492
+ sessionId: z.string(),
1493
+ cardStatuses: z.array(z.string()).optional(),
1494
+ testStatuses: z.array(z.enum(["open", "approved", "rejected"])).optional()
1495
+ });
1494
1496
  var CreatePullRequestRequestSchema = CreatePRInputSchema.extend({ sessionId: z.string() });
1495
1497
  var RequestFileUploadRequestSchema = z.object({
1496
1498
  sessionId: z.string(),
@@ -2110,6 +2112,11 @@ var ListProjectManualTestsRequestSchema = z2.object({
2110
2112
  projectId: z2.string(),
2111
2113
  taskId: z2.string()
2112
2114
  });
2115
+ var QueryProjectManualTestsRequestSchema = z2.object({
2116
+ projectId: z2.string(),
2117
+ cardStatuses: z2.array(z2.string()).optional(),
2118
+ testStatuses: z2.array(z2.enum(["open", "approved", "rejected"])).optional()
2119
+ });
2113
2120
  var SetProjectManualTestsRequestSchema = z2.object({
2114
2121
  projectId: z2.string(),
2115
2122
  taskId: z2.string(),
@@ -2210,6 +2217,10 @@ var TASK_CHAT_HISTORY_LIMIT = 20;
2210
2217
  var PM_CHAT_HISTORY_LIMIT = 40;
2211
2218
  var AGENT_CHAT_HISTORY_FETCH_LIMIT = Math.max(TASK_CHAT_HISTORY_LIMIT, PM_CHAT_HISTORY_LIMIT) + 10;
2212
2219
 
2220
+ // src/execution/query-executor.ts
2221
+ import { createHash } from "crypto";
2222
+ import { existsSync, readFileSync as readFileSync2, truncateSync } from "fs";
2223
+
2213
2224
  // src/execution/pack-runner-prompt.ts
2214
2225
  function findLastAgentMessageIndex(history) {
2215
2226
  for (let i = history.length - 1; i >= 0; i--) {
@@ -4189,6 +4200,48 @@ function buildListManualTestsTool(connection) {
4189
4200
  { annotations: { readOnlyHint: true } }
4190
4201
  );
4191
4202
  }
4203
+ function renderManualTestGroups(groups) {
4204
+ const lines = [];
4205
+ for (const g of groups) {
4206
+ lines.push(`## ${g.title} [${g.status}] (${g.slug})`);
4207
+ for (const t of g.tests) {
4208
+ const mark = t.status === "approved" ? "\u2713" : t.status === "rejected" ? "\u2717" : "\u25CB";
4209
+ lines.push(` ${mark} ${t.title} \u2014 ${t.status}`);
4210
+ if (t.status === "rejected") {
4211
+ for (const f of t.failures ?? []) {
4212
+ lines.push(` \u26A0 ${f.userName ?? "Someone"}: ${f.reason ?? "(no message)"}`);
4213
+ }
4214
+ }
4215
+ }
4216
+ lines.push("");
4217
+ }
4218
+ return lines.join("\n").trimEnd();
4219
+ }
4220
+ function buildQueryManualTestsTool(connection) {
4221
+ return defineTool(
4222
+ "query_manual_tests",
4223
+ "Query manual tests across many tasks in this project, grouped by task. Filter by card status (ReviewDev, ReviewLive, Complete, ...) and/or test status (open | approved | rejected). Use to answer 'show all OPEN manual tests in ReviewDev' or 'show all REJECTED manual tests with the failing reason'. With no filters it defaults to the needs-attention view: open+rejected tests on ReviewDev/ReviewLive cards.",
4224
+ {
4225
+ cardStatuses: z8.array(z8.string()).optional().describe('Filter tasks by card status, e.g. ["ReviewDev", "ReviewLive"]'),
4226
+ testStatuses: z8.array(z8.enum(["open", "approved", "rejected"])).optional().describe("Filter tests by status: open | approved | rejected")
4227
+ },
4228
+ async ({ cardStatuses, testStatuses }) => {
4229
+ try {
4230
+ const groups = await connection.call("queryManualTests", {
4231
+ sessionId: connection.sessionId,
4232
+ cardStatuses,
4233
+ testStatuses
4234
+ });
4235
+ if (groups.length === 0) return textResult("No manual tests match those filters.");
4236
+ return textResult(renderManualTestGroups(groups));
4237
+ } catch (error) {
4238
+ const msg = error instanceof Error ? error.message : "Unknown error";
4239
+ return textResult(`Failed to query manual tests: ${msg}`);
4240
+ }
4241
+ },
4242
+ { annotations: { readOnlyHint: true } }
4243
+ );
4244
+ }
4192
4245
  function buildSetManualTestsTool(connection) {
4193
4246
  return defineTool(
4194
4247
  "set_manual_tests",
@@ -4308,6 +4361,7 @@ function buildCommonTools(connection, config) {
4308
4361
  buildGetDependenciesTool(connection),
4309
4362
  buildGetSuggestionsTool(connection),
4310
4363
  buildListManualTestsTool(connection),
4364
+ buildQueryManualTestsTool(connection),
4311
4365
  buildSetManualTestsTool(connection),
4312
4366
  buildEditManualTestTool(connection),
4313
4367
  buildRemoveManualTestTool(connection),
@@ -8251,7 +8305,7 @@ var SessionRunner = class _SessionRunner {
8251
8305
  conveyorApiUrl: this.config.connection.apiUrl,
8252
8306
  taskToken: this.config.connection.taskToken,
8253
8307
  taskId: this.fullContext?.taskId ?? "",
8254
- model: this.fullContext?.model ?? "claude-sonnet-4-20250514",
8308
+ model: this.fullContext?.model ?? DEFAULT_SONNET_MODEL,
8255
8309
  instructions: this.fullContext?.agentInstructions ?? "",
8256
8310
  workspaceDir: this.config.workspaceDir,
8257
8311
  mode: this.config.runnerMode,
@@ -9608,7 +9662,7 @@ function buildProjectTools(connection, getRequestingUserId = () => void 0) {
9608
9662
 
9609
9663
  // src/runner/project-chat-handler.ts
9610
9664
  var logger6 = createServiceLogger("ProjectChat");
9611
- var FALLBACK_MODEL = "claude-sonnet-4-20250514";
9665
+ var FALLBACK_MODEL = DEFAULT_SONNET_MODEL;
9612
9666
  function buildSystemPrompt2(projectDir, agentCtx) {
9613
9667
  const parts = [];
9614
9668
  if (agentCtx?.agentInstructions) {
@@ -10528,7 +10582,7 @@ var ProjectRunner = class {
10528
10582
  async handleAuditTags(request) {
10529
10583
  this.connection.emitStatus("busy");
10530
10584
  try {
10531
- const { handleTagAudit } = await import("./tag-audit-handler-3IFB7YDV.js");
10585
+ const { handleTagAudit } = await import("./tag-audit-handler-S4VT47XG.js");
10532
10586
  await handleTagAudit(request, this.connection, this.projectDir);
10533
10587
  } catch (error) {
10534
10588
  const msg = parseErrorMessage(error);
@@ -10551,7 +10605,7 @@ var ProjectRunner = class {
10551
10605
  async handleAuditTasks(request) {
10552
10606
  this.connection.emitStatus("busy");
10553
10607
  try {
10554
- const { handleTaskAudit } = await import("./task-audit-handler-U5Q52YT2.js");
10608
+ const { handleTaskAudit } = await import("./task-audit-handler-QK7S4LWO.js");
10555
10609
  await handleTaskAudit(request, this.connection, this.projectDir);
10556
10610
  } catch (error) {
10557
10611
  const msg = parseErrorMessage(error);
@@ -10692,4 +10746,4 @@ export {
10692
10746
  loadConveyorConfig,
10693
10747
  unshallowRepo
10694
10748
  };
10695
- //# sourceMappingURL=chunk-YIK2GHKX.js.map
10749
+ //# sourceMappingURL=chunk-4ZZXIHJV.js.map