cruo-agent 0.1.2 → 0.1.3
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/VERSION +1 -1
- package/dist/cli.js +26 -4
- package/dist/index.js +14 -2
- package/package.json +1 -1
package/dist/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.
|
|
1
|
+
0.1.3
|
package/dist/cli.js
CHANGED
|
@@ -15185,7 +15185,7 @@ var init_zod = __esm({
|
|
|
15185
15185
|
});
|
|
15186
15186
|
|
|
15187
15187
|
// ../../packages/core/dist/schemas.js
|
|
15188
|
-
var stateCategory, issuePriority, memberRole, projectKey, createProjectInput, createIssueInput, updateIssueInput, moveIssueInput, workflowStateInput, listIssuesFilter;
|
|
15188
|
+
var stateCategory, issuePriority, memberRole, projectKey, createProjectInput, estimateHours, createIssueInput, updateIssueInput, moveIssueInput, workflowStateInput, listIssuesFilter;
|
|
15189
15189
|
var init_schemas3 = __esm({
|
|
15190
15190
|
"../../packages/core/dist/schemas.js"() {
|
|
15191
15191
|
"use strict";
|
|
@@ -15213,6 +15213,7 @@ var init_schemas3 = __esm({
|
|
|
15213
15213
|
description: external_exports.string().trim().max(2e3).optional(),
|
|
15214
15214
|
leadId: external_exports.string().uuid().optional()
|
|
15215
15215
|
});
|
|
15216
|
+
estimateHours = external_exports.number().positive().max(9999).multipleOf(0.01).nullish();
|
|
15216
15217
|
createIssueInput = external_exports.object({
|
|
15217
15218
|
projectId: external_exports.string().uuid(),
|
|
15218
15219
|
title: external_exports.string().trim().min(1).max(300),
|
|
@@ -15223,6 +15224,7 @@ var init_schemas3 = __esm({
|
|
|
15223
15224
|
parentId: external_exports.string().uuid().nullish(),
|
|
15224
15225
|
dueDate: external_exports.string().date().nullish(),
|
|
15225
15226
|
// YYYY-MM-DD
|
|
15227
|
+
estimateHours,
|
|
15226
15228
|
labelIds: external_exports.array(external_exports.string().uuid()).optional()
|
|
15227
15229
|
});
|
|
15228
15230
|
updateIssueInput = external_exports.object({
|
|
@@ -15230,7 +15232,8 @@ var init_schemas3 = __esm({
|
|
|
15230
15232
|
description: external_exports.string().trim().max(2e4).nullish(),
|
|
15231
15233
|
priority: issuePriority.optional(),
|
|
15232
15234
|
assigneeId: external_exports.string().uuid().nullish(),
|
|
15233
|
-
dueDate: external_exports.string().date().nullish()
|
|
15235
|
+
dueDate: external_exports.string().date().nullish(),
|
|
15236
|
+
estimateHours
|
|
15234
15237
|
});
|
|
15235
15238
|
moveIssueInput = external_exports.object({
|
|
15236
15239
|
issueId: external_exports.string().uuid(),
|
|
@@ -15288,6 +15291,13 @@ var init_identity = __esm({
|
|
|
15288
15291
|
}
|
|
15289
15292
|
});
|
|
15290
15293
|
|
|
15294
|
+
// ../../packages/core/dist/effort.js
|
|
15295
|
+
var init_effort = __esm({
|
|
15296
|
+
"../../packages/core/dist/effort.js"() {
|
|
15297
|
+
"use strict";
|
|
15298
|
+
}
|
|
15299
|
+
});
|
|
15300
|
+
|
|
15291
15301
|
// ../../packages/core/dist/plans.js
|
|
15292
15302
|
var init_plans = __esm({
|
|
15293
15303
|
"../../packages/core/dist/plans.js"() {
|
|
@@ -15339,6 +15349,7 @@ var init_dist = __esm({
|
|
|
15339
15349
|
init_schemas3();
|
|
15340
15350
|
init_rank();
|
|
15341
15351
|
init_identity();
|
|
15352
|
+
init_effort();
|
|
15342
15353
|
init_plans();
|
|
15343
15354
|
init_mcp_connect();
|
|
15344
15355
|
init_tree();
|
|
@@ -46450,8 +46461,18 @@ function systemPrompt(ctx, identity, worktree) {
|
|
|
46450
46461
|
`survives. A run that ends with uncommitted changes has produced nothing,`,
|
|
46451
46462
|
`however good the changes were.`,
|
|
46452
46463
|
``,
|
|
46453
|
-
`Do not push, and do not merge into any other branch.
|
|
46454
|
-
`
|
|
46464
|
+
`Do not push, and do not merge into any other branch. That is not a`,
|
|
46465
|
+
`matter of trust \u2014 you have no push tool, and nothing in this loop`,
|
|
46466
|
+
`merges anything (\`CRA-88\`). Releasing is a person's job.`,
|
|
46467
|
+
...options.push ? [
|
|
46468
|
+
`Your branch is published for you after you exit, by the process`,
|
|
46469
|
+
`that started you. It is pushed, not merged: somebody still has`,
|
|
46470
|
+
`to review and land it.`
|
|
46471
|
+
] : [
|
|
46472
|
+
`Your branch stays on this machine. Nothing publishes it, so say`,
|
|
46473
|
+
`on the card which branch holds the work \u2014 that name is the only`,
|
|
46474
|
+
`way anyone finds it.`
|
|
46475
|
+
]
|
|
46455
46476
|
] : [],
|
|
46456
46477
|
``,
|
|
46457
46478
|
`You act on the board through the Cruo MCP tools. Start with get_issue to read the`,
|
|
@@ -46811,6 +46832,7 @@ async function main() {
|
|
|
46811
46832
|
const swept = await sweep(worktreeConfig, options.harnessTimeoutMs + options.prepareTimeout);
|
|
46812
46833
|
if (swept.length) log(` swept ${swept.length} worktree(s) left by an earlier run: ${swept.join(", ")}`);
|
|
46813
46834
|
if (options.push) log(` publishing to ${options.pushRemote} after any run that commits`);
|
|
46835
|
+
else log(` --push is off: branches stay on this machine and reach no remote`);
|
|
46814
46836
|
if (options.allow === "mcp__cruo") {
|
|
46815
46837
|
log(`! --worktree with the default --allow gives the harness a checkout it cannot read.`);
|
|
46816
46838
|
log(` Widen it, e.g. --allow "mcp__cruo,Read,Glob,Grep,Edit,Write,Bash(git:*),Bash(pnpm:*)"`);
|
package/dist/index.js
CHANGED
|
@@ -34897,6 +34897,7 @@ var createProjectInput = external_exports.object({
|
|
|
34897
34897
|
description: external_exports.string().trim().max(2e3).optional(),
|
|
34898
34898
|
leadId: external_exports.string().uuid().optional()
|
|
34899
34899
|
});
|
|
34900
|
+
var estimateHours = external_exports.number().positive().max(9999).multipleOf(0.01).nullish();
|
|
34900
34901
|
var createIssueInput = external_exports.object({
|
|
34901
34902
|
projectId: external_exports.string().uuid(),
|
|
34902
34903
|
title: external_exports.string().trim().min(1).max(300),
|
|
@@ -34907,6 +34908,7 @@ var createIssueInput = external_exports.object({
|
|
|
34907
34908
|
parentId: external_exports.string().uuid().nullish(),
|
|
34908
34909
|
dueDate: external_exports.string().date().nullish(),
|
|
34909
34910
|
// YYYY-MM-DD
|
|
34911
|
+
estimateHours,
|
|
34910
34912
|
labelIds: external_exports.array(external_exports.string().uuid()).optional()
|
|
34911
34913
|
});
|
|
34912
34914
|
var updateIssueInput = external_exports.object({
|
|
@@ -34914,7 +34916,8 @@ var updateIssueInput = external_exports.object({
|
|
|
34914
34916
|
description: external_exports.string().trim().max(2e4).nullish(),
|
|
34915
34917
|
priority: issuePriority.optional(),
|
|
34916
34918
|
assigneeId: external_exports.string().uuid().nullish(),
|
|
34917
|
-
dueDate: external_exports.string().date().nullish()
|
|
34919
|
+
dueDate: external_exports.string().date().nullish(),
|
|
34920
|
+
estimateHours
|
|
34918
34921
|
});
|
|
34919
34922
|
var moveIssueInput = external_exports.object({
|
|
34920
34923
|
issueId: external_exports.string().uuid(),
|
|
@@ -53389,6 +53392,9 @@ function issueDetail(project, issue2, opts = {}) {
|
|
|
53389
53392
|
];
|
|
53390
53393
|
if (issue2.start_date || issue2.due_date)
|
|
53391
53394
|
lines.push(`Schedule: ${issue2.start_date ?? "\u2014"} \u2192 ${issue2.due_date ?? "\u2014"}`);
|
|
53395
|
+
lines.push(
|
|
53396
|
+
issue2.estimate_hours == null ? "Estimate: none \u2014 nobody has sized this yet" : `Estimate: ${issue2.estimate_hours}h`
|
|
53397
|
+
);
|
|
53392
53398
|
if (opts.labels && opts.labels.length)
|
|
53393
53399
|
lines.push(`Labels: ${opts.labels.map((l) => l.name).join(", ")}`);
|
|
53394
53400
|
if (opts.parent)
|
|
@@ -53420,6 +53426,7 @@ var FIELD_LABEL = {
|
|
|
53420
53426
|
status_id: "status",
|
|
53421
53427
|
parent_id: "parent",
|
|
53422
53428
|
due_date: "due date",
|
|
53429
|
+
estimate_hours: "estimate",
|
|
53423
53430
|
start_date: "start date",
|
|
53424
53431
|
board_rank: "board position",
|
|
53425
53432
|
gantt_pos: "gantt position"
|
|
@@ -53778,6 +53785,7 @@ function registerTools(server, getContext2, options = {}) {
|
|
|
53778
53785
|
priority: issuePriority.optional(),
|
|
53779
53786
|
assignee: external_exports.string().optional().describe("Member email, name, or 'me'"),
|
|
53780
53787
|
due_date: external_exports.string().optional().describe("YYYY-MM-DD"),
|
|
53788
|
+
estimate_hours: external_exports.number().positive().max(9999).optional().describe("Estimated effort in hours. Omit if you do not know \u2014 an absent estimate reads as unestimated, which is not the same as free."),
|
|
53781
53789
|
labels: external_exports.array(external_exports.string()).optional().describe("Label names to apply"),
|
|
53782
53790
|
parent: external_exports.string().optional().describe("Make this a sub-issue of an issue in the same project, e.g. CRU-14")
|
|
53783
53791
|
}
|
|
@@ -53808,6 +53816,7 @@ function registerTools(server, getContext2, options = {}) {
|
|
|
53808
53816
|
assignee_id: assignee?.id ?? null,
|
|
53809
53817
|
parent_id: parentId,
|
|
53810
53818
|
due_date: args.due_date?.trim() || null,
|
|
53819
|
+
estimate_hours: args.estimate_hours ?? null,
|
|
53811
53820
|
board_rank: rank,
|
|
53812
53821
|
gantt_pos: ganttPos,
|
|
53813
53822
|
created_by: ctx.userId
|
|
@@ -53836,7 +53845,7 @@ function registerTools(server, getContext2, options = {}) {
|
|
|
53836
53845
|
"update_issue",
|
|
53837
53846
|
{
|
|
53838
53847
|
title: "Update issue",
|
|
53839
|
-
description: "Update an issue's title, description, priority, assignee, due date, or parent. Use assignee 'none', due_date '', or parent 'none' to clear.",
|
|
53848
|
+
description: "Update an issue's title, description, priority, assignee, due date, estimate, or parent. Use assignee 'none', due_date '', estimate_hours 0, or parent 'none' to clear.",
|
|
53840
53849
|
inputSchema: {
|
|
53841
53850
|
issue: external_exports.string().describe("Issue reference, e.g. CRU-14"),
|
|
53842
53851
|
title: external_exports.string().min(1).max(300).optional(),
|
|
@@ -53844,6 +53853,7 @@ function registerTools(server, getContext2, options = {}) {
|
|
|
53844
53853
|
priority: issuePriority.optional(),
|
|
53845
53854
|
assignee: external_exports.string().optional().describe("Member email/name/'me', or 'none' to clear"),
|
|
53846
53855
|
due_date: external_exports.string().optional().describe("YYYY-MM-DD, or '' to clear"),
|
|
53856
|
+
estimate_hours: external_exports.number().min(0).max(9999).optional().describe("Estimated effort in hours; 0 clears it back to unestimated"),
|
|
53847
53857
|
parent: external_exports.string().optional().describe(
|
|
53848
53858
|
"Issue reference of the parent (same project), e.g. CRU-14, or 'none' to make it top-level"
|
|
53849
53859
|
)
|
|
@@ -53856,6 +53866,8 @@ function registerTools(server, getContext2, options = {}) {
|
|
|
53856
53866
|
if (args.description !== void 0) patch.description = String(args.description).trim() || null;
|
|
53857
53867
|
if (args.priority !== void 0) patch.priority = args.priority;
|
|
53858
53868
|
if (args.due_date !== void 0) patch.due_date = String(args.due_date).trim() || null;
|
|
53869
|
+
if (args.estimate_hours !== void 0)
|
|
53870
|
+
patch.estimate_hours = args.estimate_hours > 0 ? args.estimate_hours : null;
|
|
53859
53871
|
if (args.assignee !== void 0) {
|
|
53860
53872
|
patch.assignee_id = await resolveAssigneeArg(ctx, args.assignee, project);
|
|
53861
53873
|
}
|
package/package.json
CHANGED