@rallycry/conveyor-agent 8.1.0 → 8.2.0
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.
|
@@ -1718,7 +1718,10 @@ var ListProjectTasksRequestSchema = z2.object({
|
|
|
1718
1718
|
projectId: z2.string(),
|
|
1719
1719
|
status: z2.string().optional(),
|
|
1720
1720
|
assigneeId: z2.string().optional(),
|
|
1721
|
+
unassigned: z2.boolean().optional(),
|
|
1721
1722
|
limit: z2.number().int().positive().optional().default(50)
|
|
1723
|
+
}).refine((p) => !(p.unassigned && p.assigneeId), {
|
|
1724
|
+
message: "Pass either assigneeId or unassigned, not both"
|
|
1722
1725
|
});
|
|
1723
1726
|
var GetProjectTaskRequestSchema = z2.object({
|
|
1724
1727
|
projectId: z2.string(),
|
|
@@ -1729,7 +1732,11 @@ var SearchProjectTasksRequestSchema = z2.object({
|
|
|
1729
1732
|
tagNames: z2.array(z2.string()).optional(),
|
|
1730
1733
|
searchQuery: z2.string().optional(),
|
|
1731
1734
|
statusFilters: z2.array(z2.string()).optional(),
|
|
1735
|
+
assigneeId: z2.string().optional(),
|
|
1736
|
+
unassigned: z2.boolean().optional(),
|
|
1732
1737
|
limit: z2.number().int().positive().optional().default(20)
|
|
1738
|
+
}).refine((p) => !(p.unassigned && p.assigneeId), {
|
|
1739
|
+
message: "Pass either assigneeId or unassigned, not both"
|
|
1733
1740
|
});
|
|
1734
1741
|
var ListProjectTagsRequestSchema = z2.object({
|
|
1735
1742
|
projectId: z2.string()
|
|
@@ -1919,6 +1926,21 @@ var CreateProjectPullRequestRequestSchema = z2.object({
|
|
|
1919
1926
|
base: z2.string().optional(),
|
|
1920
1927
|
requestingUserId: z2.string().optional()
|
|
1921
1928
|
});
|
|
1929
|
+
var ListProjectMembersRequestSchema = z2.object({
|
|
1930
|
+
projectId: z2.string()
|
|
1931
|
+
});
|
|
1932
|
+
var AddProjectTaskReviewerRequestSchema = z2.object({
|
|
1933
|
+
projectId: z2.string(),
|
|
1934
|
+
taskId: z2.string(),
|
|
1935
|
+
userId: z2.string(),
|
|
1936
|
+
requestingUserId: z2.string().optional()
|
|
1937
|
+
});
|
|
1938
|
+
var RemoveProjectTaskReviewerRequestSchema = z2.object({
|
|
1939
|
+
projectId: z2.string(),
|
|
1940
|
+
taskId: z2.string(),
|
|
1941
|
+
userId: z2.string(),
|
|
1942
|
+
requestingUserId: z2.string().optional()
|
|
1943
|
+
});
|
|
1922
1944
|
var StartTaskAuditRequestSchema = z3.object({
|
|
1923
1945
|
projectId: z3.string(),
|
|
1924
1946
|
taskIds: z3.array(z3.string()).min(1)
|
|
@@ -8205,7 +8227,7 @@ function runStartCommand(cmd, cwd, onOutput) {
|
|
|
8205
8227
|
}
|
|
8206
8228
|
|
|
8207
8229
|
// src/tools/project-tools.ts
|
|
8208
|
-
import { z as
|
|
8230
|
+
import { z as z17 } from "zod";
|
|
8209
8231
|
|
|
8210
8232
|
// src/tools/project-action-tools.ts
|
|
8211
8233
|
import { z as z15 } from "zod";
|
|
@@ -8317,6 +8339,58 @@ function buildForceUpdateStatusTool(connection, getRequestingUserId) {
|
|
|
8317
8339
|
}
|
|
8318
8340
|
);
|
|
8319
8341
|
}
|
|
8342
|
+
function formatReviewerList(reviewers) {
|
|
8343
|
+
if (reviewers.length === 0) return "none";
|
|
8344
|
+
return reviewers.map((r) => `${r.name ?? "unknown"} (${r.userId})`).join(", ");
|
|
8345
|
+
}
|
|
8346
|
+
function buildAddReviewerTool(connection, getRequestingUserId) {
|
|
8347
|
+
const projectId = connection.projectId;
|
|
8348
|
+
return defineTool(
|
|
8349
|
+
"add_reviewer",
|
|
8350
|
+
"Add a project member as a reviewer on a task. Idempotent \u2014 adding an existing reviewer is a no-op.",
|
|
8351
|
+
{
|
|
8352
|
+
task_id: z15.string().describe("The task ID or slug"),
|
|
8353
|
+
user_id: z15.string().describe("User ID of the reviewer (use list_project_members to resolve a name or email)")
|
|
8354
|
+
},
|
|
8355
|
+
async ({ task_id, user_id }) => {
|
|
8356
|
+
try {
|
|
8357
|
+
const result = await connection.call(
|
|
8358
|
+
"addProjectTaskReviewer",
|
|
8359
|
+
withRequestingUser({ projectId, taskId: task_id, userId: user_id }, getRequestingUserId)
|
|
8360
|
+
);
|
|
8361
|
+
return textResult(
|
|
8362
|
+
`Reviewer added to task ${result.taskId}. Reviewers: ${formatReviewerList(result.reviewers)}`
|
|
8363
|
+
);
|
|
8364
|
+
} catch (error) {
|
|
8365
|
+
return textResult(`Failed to add reviewer: ${errorMessage(error)}`);
|
|
8366
|
+
}
|
|
8367
|
+
}
|
|
8368
|
+
);
|
|
8369
|
+
}
|
|
8370
|
+
function buildRemoveReviewerTool(connection, getRequestingUserId) {
|
|
8371
|
+
const projectId = connection.projectId;
|
|
8372
|
+
return defineTool(
|
|
8373
|
+
"remove_reviewer",
|
|
8374
|
+
"Remove a reviewer from a task. Idempotent \u2014 removing a non-reviewer is a no-op.",
|
|
8375
|
+
{
|
|
8376
|
+
task_id: z15.string().describe("The task ID or slug"),
|
|
8377
|
+
user_id: z15.string().describe("User ID of the reviewer to remove")
|
|
8378
|
+
},
|
|
8379
|
+
async ({ task_id, user_id }) => {
|
|
8380
|
+
try {
|
|
8381
|
+
const result = await connection.call(
|
|
8382
|
+
"removeProjectTaskReviewer",
|
|
8383
|
+
withRequestingUser({ projectId, taskId: task_id, userId: user_id }, getRequestingUserId)
|
|
8384
|
+
);
|
|
8385
|
+
return textResult(
|
|
8386
|
+
`Reviewer removed from task ${result.taskId}. Reviewers: ${formatReviewerList(result.reviewers)}`
|
|
8387
|
+
);
|
|
8388
|
+
} catch (error) {
|
|
8389
|
+
return textResult(`Failed to remove reviewer: ${errorMessage(error)}`);
|
|
8390
|
+
}
|
|
8391
|
+
}
|
|
8392
|
+
);
|
|
8393
|
+
}
|
|
8320
8394
|
function buildCreateSubtaskTool2(connection, getRequestingUserId) {
|
|
8321
8395
|
const projectId = connection.projectId;
|
|
8322
8396
|
return defineTool(
|
|
@@ -8466,15 +8540,34 @@ function buildMergePRTool(connection, getRequestingUserId) {
|
|
|
8466
8540
|
}
|
|
8467
8541
|
);
|
|
8468
8542
|
}
|
|
8543
|
+
function buildProjectActionTools(connection, getRequestingUserId = () => void 0) {
|
|
8544
|
+
return [
|
|
8545
|
+
buildCreateTaskTool(connection, getRequestingUserId),
|
|
8546
|
+
buildUpdateProjectTaskTool(connection, getRequestingUserId),
|
|
8547
|
+
buildUpdateTaskPlanTool(connection, getRequestingUserId),
|
|
8548
|
+
buildForceUpdateStatusTool(connection, getRequestingUserId),
|
|
8549
|
+
buildAddReviewerTool(connection, getRequestingUserId),
|
|
8550
|
+
buildRemoveReviewerTool(connection, getRequestingUserId),
|
|
8551
|
+
buildCreateSubtaskTool2(connection, getRequestingUserId),
|
|
8552
|
+
buildUpdateSubtaskTool2(connection, getRequestingUserId),
|
|
8553
|
+
buildDeleteSubtaskTool2(connection, getRequestingUserId),
|
|
8554
|
+
buildStartTaskTool(connection, getRequestingUserId),
|
|
8555
|
+
buildStopTaskTool(connection, getRequestingUserId),
|
|
8556
|
+
buildMergePRTool(connection, getRequestingUserId)
|
|
8557
|
+
];
|
|
8558
|
+
}
|
|
8559
|
+
|
|
8560
|
+
// src/tools/project-suggestion-dependency-tools.ts
|
|
8561
|
+
import { z as z16 } from "zod";
|
|
8469
8562
|
function buildCreateSuggestionTool2(connection, getRequestingUserId) {
|
|
8470
8563
|
const projectId = connection.projectId;
|
|
8471
8564
|
return defineTool(
|
|
8472
8565
|
"create_suggestion",
|
|
8473
8566
|
"Suggest a feature, improvement, rule, or idea for the project. Duplicates are deduped and your upvote is recorded.",
|
|
8474
8567
|
{
|
|
8475
|
-
title:
|
|
8476
|
-
description:
|
|
8477
|
-
tag_names:
|
|
8568
|
+
title: z16.string().describe("Short title for the suggestion"),
|
|
8569
|
+
description: z16.string().optional().describe("1-2 sentence description of what should change and why."),
|
|
8570
|
+
tag_names: z16.array(z16.string()).optional().describe("Tag names to categorize the suggestion")
|
|
8478
8571
|
},
|
|
8479
8572
|
async ({ title, description, tag_names }) => {
|
|
8480
8573
|
try {
|
|
@@ -8508,8 +8601,8 @@ function buildVoteSuggestionTool2(connection, getRequestingUserId) {
|
|
|
8508
8601
|
"vote_suggestion",
|
|
8509
8602
|
"Vote +1 or -1 on a project suggestion.",
|
|
8510
8603
|
{
|
|
8511
|
-
suggestion_id:
|
|
8512
|
-
value:
|
|
8604
|
+
suggestion_id: z16.string().describe("The suggestion ID to vote on"),
|
|
8605
|
+
value: z16.number().refine((v) => v === 1 || v === -1, { message: "Value must be 1 or -1" }).describe("+1 to upvote, -1 to downvote")
|
|
8513
8606
|
},
|
|
8514
8607
|
async ({ suggestion_id, value }) => {
|
|
8515
8608
|
try {
|
|
@@ -8537,8 +8630,8 @@ function buildAddDependencyTool2(connection, getRequestingUserId) {
|
|
|
8537
8630
|
"add_dependency",
|
|
8538
8631
|
"Add a blocking dependency \u2014 a task cannot start until the named task is merged to dev.",
|
|
8539
8632
|
{
|
|
8540
|
-
task_id:
|
|
8541
|
-
depends_on_slug_or_id:
|
|
8633
|
+
task_id: z16.string().describe("The task that should be blocked"),
|
|
8634
|
+
depends_on_slug_or_id: z16.string().describe("Slug or ID of the task this task depends on")
|
|
8542
8635
|
},
|
|
8543
8636
|
async ({ task_id, depends_on_slug_or_id }) => {
|
|
8544
8637
|
try {
|
|
@@ -8568,8 +8661,8 @@ function buildRemoveDependencyTool2(connection, getRequestingUserId) {
|
|
|
8568
8661
|
"remove_dependency",
|
|
8569
8662
|
"Remove a previously added dependency from a task.",
|
|
8570
8663
|
{
|
|
8571
|
-
task_id:
|
|
8572
|
-
depends_on_slug_or_id:
|
|
8664
|
+
task_id: z16.string().describe("The task to update"),
|
|
8665
|
+
depends_on_slug_or_id: z16.string().describe("Slug or ID of the task to remove as dependency")
|
|
8573
8666
|
},
|
|
8574
8667
|
async ({ task_id, depends_on_slug_or_id }) => {
|
|
8575
8668
|
try {
|
|
@@ -8591,18 +8684,8 @@ function buildRemoveDependencyTool2(connection, getRequestingUserId) {
|
|
|
8591
8684
|
}
|
|
8592
8685
|
);
|
|
8593
8686
|
}
|
|
8594
|
-
function
|
|
8687
|
+
function buildProjectSuggestionDependencyTools(connection, getRequestingUserId = () => void 0) {
|
|
8595
8688
|
return [
|
|
8596
|
-
buildCreateTaskTool(connection, getRequestingUserId),
|
|
8597
|
-
buildUpdateProjectTaskTool(connection, getRequestingUserId),
|
|
8598
|
-
buildUpdateTaskPlanTool(connection, getRequestingUserId),
|
|
8599
|
-
buildForceUpdateStatusTool(connection, getRequestingUserId),
|
|
8600
|
-
buildCreateSubtaskTool2(connection, getRequestingUserId),
|
|
8601
|
-
buildUpdateSubtaskTool2(connection, getRequestingUserId),
|
|
8602
|
-
buildDeleteSubtaskTool2(connection, getRequestingUserId),
|
|
8603
|
-
buildStartTaskTool(connection, getRequestingUserId),
|
|
8604
|
-
buildStopTaskTool(connection, getRequestingUserId),
|
|
8605
|
-
buildMergePRTool(connection, getRequestingUserId),
|
|
8606
8689
|
buildCreateSuggestionTool2(connection, getRequestingUserId),
|
|
8607
8690
|
buildVoteSuggestionTool2(connection, getRequestingUserId),
|
|
8608
8691
|
buildAddDependencyTool2(connection, getRequestingUserId),
|
|
@@ -8618,11 +8701,12 @@ function buildListTasksTool(connection) {
|
|
|
8618
8701
|
const projectId = connection.projectId;
|
|
8619
8702
|
return defineTool(
|
|
8620
8703
|
"list_tasks",
|
|
8621
|
-
"List tasks in the project. Optionally filter by status or assignee.",
|
|
8704
|
+
"List tasks in the project. Optionally filter by status or assignment (a specific assignee, or unassigned tasks).",
|
|
8622
8705
|
{
|
|
8623
|
-
status:
|
|
8624
|
-
assigneeId:
|
|
8625
|
-
|
|
8706
|
+
status: z17.string().optional().describe("Filter by task status"),
|
|
8707
|
+
assigneeId: z17.string().optional().describe("Filter by assigned user ID"),
|
|
8708
|
+
unassigned: z17.boolean().optional().describe("Only return tasks with no assignee (mutually exclusive with assigneeId)"),
|
|
8709
|
+
limit: z17.number().optional().describe("Max number of tasks to return (default 50)")
|
|
8626
8710
|
},
|
|
8627
8711
|
async (params) => {
|
|
8628
8712
|
try {
|
|
@@ -8640,7 +8724,7 @@ function buildGetProjectTaskTool(connection) {
|
|
|
8640
8724
|
return defineTool(
|
|
8641
8725
|
"get_project_task",
|
|
8642
8726
|
"Get detailed information about a task in this project (chat messages, child tasks, session). Project-runner scope.",
|
|
8643
|
-
{ task_id:
|
|
8727
|
+
{ task_id: z17.string().describe("The task ID to look up") },
|
|
8644
8728
|
async ({ task_id }) => {
|
|
8645
8729
|
try {
|
|
8646
8730
|
const task = await connection.call("getProjectTask", { projectId, taskId: task_id });
|
|
@@ -8656,12 +8740,14 @@ function buildSearchTasksTool(connection) {
|
|
|
8656
8740
|
const projectId = connection.projectId;
|
|
8657
8741
|
return defineTool(
|
|
8658
8742
|
"search_tasks",
|
|
8659
|
-
"Search tasks by tags, text query,
|
|
8743
|
+
"Search tasks by tags, text query, status filters, or assignment.",
|
|
8660
8744
|
{
|
|
8661
|
-
tagNames:
|
|
8662
|
-
searchQuery:
|
|
8663
|
-
statusFilters:
|
|
8664
|
-
|
|
8745
|
+
tagNames: z17.array(z17.string()).optional().describe("Filter by tag names"),
|
|
8746
|
+
searchQuery: z17.string().optional().describe("Text search in title/description"),
|
|
8747
|
+
statusFilters: z17.array(z17.string()).optional().describe("Filter by statuses"),
|
|
8748
|
+
assigneeId: z17.string().optional().describe("Filter by assigned user ID"),
|
|
8749
|
+
unassigned: z17.boolean().optional().describe("Only return tasks with no assignee (mutually exclusive with assigneeId)"),
|
|
8750
|
+
limit: z17.number().optional().describe("Max results (default 20)")
|
|
8665
8751
|
},
|
|
8666
8752
|
async (params) => {
|
|
8667
8753
|
try {
|
|
@@ -8679,7 +8765,7 @@ function buildListSubtasksTool2(connection) {
|
|
|
8679
8765
|
return defineTool(
|
|
8680
8766
|
"list_subtasks",
|
|
8681
8767
|
"List the immediate child tasks under a parent task. Use to coordinate subtask work \u2014 see status, ordering, and PR state.",
|
|
8682
|
-
{ task_id:
|
|
8768
|
+
{ task_id: z17.string().describe("Parent task ID") },
|
|
8683
8769
|
async ({ task_id }) => {
|
|
8684
8770
|
try {
|
|
8685
8771
|
const subtasks = await connection.call("listProjectSubtasks", {
|
|
@@ -8711,6 +8797,23 @@ function buildListTagsTool(connection) {
|
|
|
8711
8797
|
{ annotations: { readOnlyHint: true } }
|
|
8712
8798
|
);
|
|
8713
8799
|
}
|
|
8800
|
+
function buildListProjectMembersTool(connection) {
|
|
8801
|
+
const projectId = connection.projectId;
|
|
8802
|
+
return defineTool(
|
|
8803
|
+
"list_project_members",
|
|
8804
|
+
"List project members with user ID, name, email, and access level. Use to resolve a person's name or email to a user ID for task assignment or review.",
|
|
8805
|
+
{},
|
|
8806
|
+
async () => {
|
|
8807
|
+
try {
|
|
8808
|
+
const members = await connection.call("listProjectMembers", { projectId });
|
|
8809
|
+
return textResult(JSON.stringify(members, null, 2));
|
|
8810
|
+
} catch (error) {
|
|
8811
|
+
return textResult(`Failed to list project members: ${errorMessage(error)}`);
|
|
8812
|
+
}
|
|
8813
|
+
},
|
|
8814
|
+
{ annotations: { readOnlyHint: true } }
|
|
8815
|
+
);
|
|
8816
|
+
}
|
|
8714
8817
|
function buildGetProjectSummaryTool(connection) {
|
|
8715
8818
|
const projectId = connection.projectId;
|
|
8716
8819
|
return defineTool(
|
|
@@ -8734,8 +8837,8 @@ function buildPostToChatTool2(connection, getRequestingUserId) {
|
|
|
8734
8837
|
"post_to_chat",
|
|
8735
8838
|
"Post an out-of-band message into a chat. Omit task_id to post into the project chat; pass task_id to post into a specific task's chat. Normal replies already appear in chat automatically.",
|
|
8736
8839
|
{
|
|
8737
|
-
message:
|
|
8738
|
-
task_id:
|
|
8840
|
+
message: z17.string().describe("The message content to post"),
|
|
8841
|
+
task_id: z17.string().optional().describe("Task ID to post into a specific task's chat. Omit for the project chat.")
|
|
8739
8842
|
},
|
|
8740
8843
|
async ({ message, task_id }) => {
|
|
8741
8844
|
try {
|
|
@@ -8763,8 +8866,8 @@ function buildReadChatHistoryTool(connection) {
|
|
|
8763
8866
|
"read_chat_history",
|
|
8764
8867
|
"Read recent messages from a chat. Omit chat_id to read the project chat; pass a chat_id to read a specific chat.",
|
|
8765
8868
|
{
|
|
8766
|
-
chat_id:
|
|
8767
|
-
limit:
|
|
8869
|
+
chat_id: z17.string().optional().describe("Chat ID to read. Omit for the project chat."),
|
|
8870
|
+
limit: z17.number().optional().describe("Number of recent messages to fetch (default 50)")
|
|
8768
8871
|
},
|
|
8769
8872
|
async ({ chat_id, limit }) => {
|
|
8770
8873
|
try {
|
|
@@ -8787,8 +8890,8 @@ function buildReadTaskChatTool2(connection) {
|
|
|
8787
8890
|
"read_task_chat",
|
|
8788
8891
|
"Read recent human/user chat messages for a specific task in this project. For agent execution logs use get_task_logs.",
|
|
8789
8892
|
{
|
|
8790
|
-
task_id:
|
|
8791
|
-
limit:
|
|
8893
|
+
task_id: z17.string().describe("The task ID whose chat to read"),
|
|
8894
|
+
limit: z17.number().optional().describe("Number of recent messages to fetch (default 20)")
|
|
8792
8895
|
},
|
|
8793
8896
|
async ({ task_id, limit }) => {
|
|
8794
8897
|
try {
|
|
@@ -8811,9 +8914,9 @@ function buildGetTaskLogsTool(connection) {
|
|
|
8811
8914
|
"get_task_logs",
|
|
8812
8915
|
"Read CLI execution logs for a task \u2014 agent reasoning, tool calls, and setup/dev-server output. For human chat use read_task_chat.",
|
|
8813
8916
|
{
|
|
8814
|
-
task_id:
|
|
8815
|
-
source:
|
|
8816
|
-
limit:
|
|
8917
|
+
task_id: z17.string().describe("Task ID to read logs from"),
|
|
8918
|
+
source: z17.enum(["agent", "application"]).optional().describe("Filter by log source. Omit for all logs."),
|
|
8919
|
+
limit: z17.number().optional().describe("Max number of log entries to return (default 50, max 500).")
|
|
8817
8920
|
},
|
|
8818
8921
|
async ({ task_id, source, limit }) => {
|
|
8819
8922
|
try {
|
|
@@ -8838,12 +8941,14 @@ function buildProjectTools(connection, getRequestingUserId = () => void 0) {
|
|
|
8838
8941
|
buildSearchTasksTool(connection),
|
|
8839
8942
|
buildListSubtasksTool2(connection),
|
|
8840
8943
|
buildListTagsTool(connection),
|
|
8944
|
+
buildListProjectMembersTool(connection),
|
|
8841
8945
|
buildGetProjectSummaryTool(connection),
|
|
8842
8946
|
buildPostToChatTool2(connection, getRequestingUserId),
|
|
8843
8947
|
buildReadChatHistoryTool(connection),
|
|
8844
8948
|
buildReadTaskChatTool2(connection),
|
|
8845
8949
|
buildGetTaskLogsTool(connection),
|
|
8846
|
-
...buildProjectActionTools(connection, getRequestingUserId)
|
|
8950
|
+
...buildProjectActionTools(connection, getRequestingUserId),
|
|
8951
|
+
...buildProjectSuggestionDependencyTools(connection, getRequestingUserId)
|
|
8847
8952
|
];
|
|
8848
8953
|
}
|
|
8849
8954
|
|
|
@@ -9897,4 +10002,4 @@ export {
|
|
|
9897
10002
|
loadConveyorConfig,
|
|
9898
10003
|
unshallowRepo
|
|
9899
10004
|
};
|
|
9900
|
-
//# sourceMappingURL=chunk-
|
|
10005
|
+
//# sourceMappingURL=chunk-W4NCD23G.js.map
|