@rallycry/conveyor-agent 10.13.66 → 10.13.68
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/{chunk-75FUOUYX.js → chunk-E3QHGYZ2.js} +91 -17
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
|
@@ -2435,6 +2435,13 @@ var DeleteSubtaskRequestSchema = z4.object({
|
|
|
2435
2435
|
sessionId: z4.string(),
|
|
2436
2436
|
subtaskId: z4.string()
|
|
2437
2437
|
});
|
|
2438
|
+
var SetSubtaskParentRequestSchema = z4.object({
|
|
2439
|
+
sessionId: z4.string(),
|
|
2440
|
+
taskId: z4.string().min(1),
|
|
2441
|
+
detach: z4.boolean().optional(),
|
|
2442
|
+
ordinal: z4.number().int().nonnegative().optional(),
|
|
2443
|
+
followParentStatus: z4.boolean().optional()
|
|
2444
|
+
});
|
|
2438
2445
|
var GetTaskPropertiesRequestSchema = z4.object({
|
|
2439
2446
|
sessionId: z4.string()
|
|
2440
2447
|
});
|
|
@@ -2893,6 +2900,16 @@ var CreateProjectTaskRequestSchema = z5.object({
|
|
|
2893
2900
|
subProjectId: z5.string().nullable().optional(),
|
|
2894
2901
|
requestingUserId: z5.string().optional()
|
|
2895
2902
|
});
|
|
2903
|
+
var SetProjectTaskParentRequestSchema = z5.object({
|
|
2904
|
+
projectId: z5.string(),
|
|
2905
|
+
/** Card to move — id or slug. */
|
|
2906
|
+
taskId: z5.string().min(1),
|
|
2907
|
+
/** New parent (id or slug), or null to detach. */
|
|
2908
|
+
parentTaskId: z5.string().min(1).nullable(),
|
|
2909
|
+
ordinal: z5.number().int().nonnegative().optional(),
|
|
2910
|
+
followParentStatus: z5.boolean().optional(),
|
|
2911
|
+
requestingUserId: z5.string().optional()
|
|
2912
|
+
}).strict();
|
|
2896
2913
|
var UpdateProjectTaskRequestSchema = z5.object({
|
|
2897
2914
|
projectId: z5.string(),
|
|
2898
2915
|
taskId: z5.string(),
|
|
@@ -8404,12 +8421,12 @@ function findLastAgentMessageIndex2(history) {
|
|
|
8404
8421
|
}
|
|
8405
8422
|
return -1;
|
|
8406
8423
|
}
|
|
8407
|
-
function formatProjectAgents(
|
|
8424
|
+
function formatProjectAgents(agents) {
|
|
8408
8425
|
const parts = [``, `## Project Agents`];
|
|
8409
|
-
for (const
|
|
8410
|
-
const role =
|
|
8411
|
-
const sp =
|
|
8412
|
-
parts.push(`- ${
|
|
8426
|
+
for (const agent of agents) {
|
|
8427
|
+
const role = agent.role ? `role: ${agent.role}` : "role: unassigned";
|
|
8428
|
+
const sp = agent.storyPoints === null || agent.storyPoints === void 0 ? "" : `, story points: ${agent.storyPoints}`;
|
|
8429
|
+
parts.push(`- ${agent.name} (${role}${sp})`);
|
|
8413
8430
|
}
|
|
8414
8431
|
return parts;
|
|
8415
8432
|
}
|
|
@@ -8508,8 +8525,8 @@ function buildPackRunnerSystemPrompt(context, config, setupLog) {
|
|
|
8508
8525
|
if (context.storyPoints && context.storyPoints.length > 0) {
|
|
8509
8526
|
parts.push(...formatStoryPoints(context.storyPoints));
|
|
8510
8527
|
}
|
|
8511
|
-
if (context.
|
|
8512
|
-
parts.push(...formatProjectAgents(context.
|
|
8528
|
+
if (context.agents && context.agents.length > 0) {
|
|
8529
|
+
parts.push(...formatProjectAgents(context.agents));
|
|
8513
8530
|
}
|
|
8514
8531
|
if (setupLog.length > 0) {
|
|
8515
8532
|
parts.push(``, `## Environment setup log`, "```", ...setupLog, "```");
|
|
@@ -9588,10 +9605,10 @@ function buildReviewPrompt(context) {
|
|
|
9588
9605
|
}
|
|
9589
9606
|
|
|
9590
9607
|
// src/execution/system-prompt.ts
|
|
9591
|
-
function formatProjectAgentLine(
|
|
9592
|
-
const role =
|
|
9593
|
-
const sp =
|
|
9594
|
-
return `- ${
|
|
9608
|
+
function formatProjectAgentLine(agent) {
|
|
9609
|
+
const role = agent.role ? `role: ${agent.role}` : "role: unassigned";
|
|
9610
|
+
const sp = agent.storyPoints === null || agent.storyPoints === void 0 ? "" : `, story points: ${agent.storyPoints}`;
|
|
9611
|
+
return `- ${agent.name} (${role}${sp})`;
|
|
9595
9612
|
}
|
|
9596
9613
|
function buildPmPreamble(context) {
|
|
9597
9614
|
const parts = [
|
|
@@ -9620,10 +9637,10 @@ You are the Project Manager for this set of tasks.`,
|
|
|
9620
9637
|
`Use the subtask tools (create_subtask, update_subtask, list_subtasks) to manage work breakdown.`
|
|
9621
9638
|
);
|
|
9622
9639
|
}
|
|
9623
|
-
if (context.
|
|
9640
|
+
if (context.agents && context.agents.length > 0) {
|
|
9624
9641
|
parts.push(`
|
|
9625
9642
|
Project Agents:`);
|
|
9626
|
-
for (const pa of context.
|
|
9643
|
+
for (const pa of context.agents) {
|
|
9627
9644
|
parts.push(formatProjectAgentLine(pa));
|
|
9628
9645
|
}
|
|
9629
9646
|
}
|
|
@@ -10792,11 +10809,46 @@ var listSubtasksContract = defineToolContract({
|
|
|
10792
10809
|
}
|
|
10793
10810
|
}
|
|
10794
10811
|
});
|
|
10812
|
+
var SET_PARENT_ORDINAL = "Position among the new parent's children. Defaults to after every existing sibling. A detached card has no siblings to order against, so it only matters when you adopt.";
|
|
10813
|
+
var SET_PARENT_WARNINGS = "The move is reported, never refused: a card that already has a pull request, live compute, a release, children of its own, or dependency edges that now cross packs comes back with a warning in the result. Its branch is NOT re-cut against the new parent's feature branch.";
|
|
10814
|
+
var setTaskParentContract = defineToolContract({
|
|
10815
|
+
name: "set_task_parent",
|
|
10816
|
+
agent: {
|
|
10817
|
+
description: `Adopt an EXISTING card into this card's pack, or eject one of this card's children. The card keeps its own chat, plan, and history \u2014 it moves under (or out from) the current card, inherits the board, and lands after the current children. To make a NEW child use create_subtask instead. ${SET_PARENT_WARNINGS}`,
|
|
10818
|
+
fields: {
|
|
10819
|
+
taskId: f.string({
|
|
10820
|
+
desc: "Id, slug, or branch name of the card to move. Must live in this project."
|
|
10821
|
+
}),
|
|
10822
|
+
detach: f.optional(
|
|
10823
|
+
f.boolean({
|
|
10824
|
+
desc: "Eject the card from this pack instead of adopting it \u2014 it becomes a standalone card and stops following the parent's status. The card must already be a child of the current card."
|
|
10825
|
+
})
|
|
10826
|
+
),
|
|
10827
|
+
ordinal: f.optional(f.number({ desc: SET_PARENT_ORDINAL })),
|
|
10828
|
+
followParentStatus: f.optional(f.boolean({ desc: AGENT_FOLLOW_PARENT_STATUS }))
|
|
10829
|
+
}
|
|
10830
|
+
},
|
|
10831
|
+
mcp: {
|
|
10832
|
+
description: `Re-parent an existing card: pass a parentTaskId to adopt it into that card's pack, or null to detach it into a standalone card. The card keeps its chat, plan, and history; adopting also moves it to the parent's board and orders it after the parent's existing children. Use create_subtask for a NEW child, and move_card to move a card to another PROJECT. Pass projectId to target a specific project; otherwise the configured default project is used. ${SET_PARENT_WARNINGS}`,
|
|
10833
|
+
fields: {
|
|
10834
|
+
projectId: mcpProjectId,
|
|
10835
|
+
taskId: f.string({ desc: "Id or slug of the card to move" }),
|
|
10836
|
+
parentTaskId: f.nullable(
|
|
10837
|
+
f.string({
|
|
10838
|
+
desc: "Id or slug of the new parent, or null to detach the card from its current parent. Must be in the same project, and can be neither the card itself nor one of its own descendants."
|
|
10839
|
+
})
|
|
10840
|
+
),
|
|
10841
|
+
ordinal: f.optional(f.number({ desc: SET_PARENT_ORDINAL })),
|
|
10842
|
+
followParentStatus: f.optional(f.boolean({ desc: MCP_FOLLOW_PARENT_STATUS }))
|
|
10843
|
+
}
|
|
10844
|
+
}
|
|
10845
|
+
});
|
|
10795
10846
|
var subtasksContracts = [
|
|
10796
10847
|
createSubtaskContract,
|
|
10797
10848
|
updateSubtaskContract,
|
|
10798
10849
|
deleteSubtaskContract,
|
|
10799
|
-
listSubtasksContract
|
|
10850
|
+
listSubtasksContract,
|
|
10851
|
+
setTaskParentContract
|
|
10800
10852
|
];
|
|
10801
10853
|
var mcpTaskIdOrSlug = f.string({ desc: "The task ID or slug" });
|
|
10802
10854
|
var listTaskFilesContract = defineToolContract({
|
|
@@ -12039,12 +12091,33 @@ function buildCreateSubtaskTool(connection) {
|
|
|
12039
12091
|
});
|
|
12040
12092
|
const unmatched = result.unmatchedTags ?? [];
|
|
12041
12093
|
const tagNote = unmatched.length > 0 ? ` These tag names matched no project tag and were skipped: ${unmatched.join(", ")}. Use list_tags to see the glossary.` : "";
|
|
12094
|
+
return textResult(`Subtask created with ID: ${result.id} (slug: ${result.slug})${tagNote}`);
|
|
12095
|
+
} catch (error) {
|
|
12042
12096
|
return textResult(
|
|
12043
|
-
`
|
|
12097
|
+
`Failed to create subtask: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
12044
12098
|
);
|
|
12099
|
+
}
|
|
12100
|
+
}
|
|
12101
|
+
);
|
|
12102
|
+
}
|
|
12103
|
+
function buildSetTaskParentTool(connection) {
|
|
12104
|
+
return defineContractTool(
|
|
12105
|
+
setTaskParentContract,
|
|
12106
|
+
async ({ taskId, detach, ordinal, followParentStatus }) => {
|
|
12107
|
+
try {
|
|
12108
|
+
const result = await connection.call("setSubtaskParent", {
|
|
12109
|
+
sessionId: connection.sessionId,
|
|
12110
|
+
taskId,
|
|
12111
|
+
...detach !== void 0 && { detach },
|
|
12112
|
+
...ordinal !== void 0 && { ordinal },
|
|
12113
|
+
...followParentStatus !== void 0 && { followParentStatus }
|
|
12114
|
+
});
|
|
12115
|
+
const warnings = result.warnings.length > 0 ? ` Warnings: ${result.warnings.join(", ")}.` : "";
|
|
12116
|
+
const move = detach ? `Card ${result.slug} detached \u2014 it is now a standalone card` : `Card ${result.slug} adopted into this pack`;
|
|
12117
|
+
return textResult(`${move} (status: ${result.status}).${warnings}`);
|
|
12045
12118
|
} catch (error) {
|
|
12046
12119
|
return textResult(
|
|
12047
|
-
`Failed to
|
|
12120
|
+
`Failed to set task parent: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
12048
12121
|
);
|
|
12049
12122
|
}
|
|
12050
12123
|
}
|
|
@@ -12191,6 +12264,7 @@ function buildPmTools(connection, options) {
|
|
|
12191
12264
|
const tools = [
|
|
12192
12265
|
buildUpdateTaskTool(connection),
|
|
12193
12266
|
buildCreateSubtaskTool(connection),
|
|
12267
|
+
buildSetTaskParentTool(connection),
|
|
12194
12268
|
buildUpdateSubtaskTool(connection),
|
|
12195
12269
|
buildDeleteSubtaskTool(connection),
|
|
12196
12270
|
buildListSubtasksTool(connection)
|
|
@@ -16708,7 +16782,7 @@ var SessionRunner = class _SessionRunner {
|
|
|
16708
16782
|
lastSeenMessageId: ctx.lastSeenMessageId ?? null,
|
|
16709
16783
|
isParentTask: ctx.isParentTask ?? false,
|
|
16710
16784
|
storyPoints: ctx.storyPoints ?? void 0,
|
|
16711
|
-
|
|
16785
|
+
agents: ctx.agents ?? void 0,
|
|
16712
16786
|
projectTags: ctx.projectTags ?? void 0,
|
|
16713
16787
|
taskTagIds: ctx.taskTagIds ?? void 0,
|
|
16714
16788
|
projectObjectives: ctx.projectObjectives ?? void 0,
|
package/dist/cli.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rallycry/conveyor-agent",
|
|
3
|
-
"version": "10.13.
|
|
3
|
+
"version": "10.13.68",
|
|
4
4
|
"description": "Conveyor Agent Runner v10 - PTY harness for the task chat (SDK harness for audit/project-chat). Agent-as-User architecture with BaseService patterns. Works locally too.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
41
41
|
"node-pty": "^1.0.0",
|
|
42
42
|
"socket.io-client": "^4.8.3",
|
|
43
|
-
"tar": "^7.5.
|
|
43
|
+
"tar": "^7.5.21",
|
|
44
44
|
"zod": "^4.0.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|