@rallycry/conveyor-mcp 5.0.11 → 5.0.13
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-UOLE5JY2.js → chunk-CRHA7PSA.js} +15 -2
- package/dist/cli.js +1361 -1205
- package/dist/{connection-FbRjUB2k.d.ts → connection-jgxgPQDm.d.ts} +28 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/tunnel-cli.js +1 -1
- package/dist/tunnel.d.ts +1 -1
- package/dist/wait-cli.js +1 -1
- package/dist/wait-runner.d.ts +1 -1
- package/dist/wait.d.ts +1 -1
- package/package.json +8 -8
package/dist/cli.js
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-5KU3QS6A.js";
|
|
5
5
|
import {
|
|
6
6
|
ConveyorConnection
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-CRHA7PSA.js";
|
|
8
8
|
|
|
9
9
|
// src/cli.ts
|
|
10
10
|
import { createRequire } from "module";
|
|
@@ -12,7 +12,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
12
12
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
13
13
|
|
|
14
14
|
// src/tools/project.ts
|
|
15
|
-
import { z } from "zod";
|
|
15
|
+
import { z } from "zod/v3";
|
|
16
16
|
function registerProjectTools(server2, conn2) {
|
|
17
17
|
server2.tool(
|
|
18
18
|
"list_projects",
|
|
@@ -70,16 +70,16 @@ function registerProjectTools(server2, conn2) {
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
// src/tools/connection.ts
|
|
73
|
-
import { z as z4 } from "zod";
|
|
73
|
+
import { z as z4 } from "zod/v3";
|
|
74
74
|
|
|
75
|
-
// ../shared/dist/chunk-
|
|
75
|
+
// ../shared/dist/chunk-BH4SLNGU.js
|
|
76
76
|
import { z as z2 } from "zod";
|
|
77
77
|
import { z as z22 } from "zod";
|
|
78
|
-
var DEFAULT_SONNET_MODEL = "claude-sonnet-5";
|
|
78
|
+
var DEFAULT_SONNET_MODEL = "claude-sonnet-5-5";
|
|
79
79
|
var DEFAULT_OPUS_MODEL = "claude-opus-5-5";
|
|
80
80
|
var DEFAULT_HAIKU_MODEL = "claude-haiku-4-5-20251001";
|
|
81
81
|
var FABLE_MODEL = "claude-fable-5-1";
|
|
82
|
-
var PREVIOUS_SONNET_MODEL = "claude-sonnet-
|
|
82
|
+
var PREVIOUS_SONNET_MODEL = "claude-sonnet-5";
|
|
83
83
|
var PREVIOUS_OPUS_MODEL = "claude-opus-5";
|
|
84
84
|
function formatModelId(provider, model) {
|
|
85
85
|
return `${provider}/${model}`;
|
|
@@ -322,14 +322,14 @@ var f = {
|
|
|
322
322
|
return { kind: "nullable", inner };
|
|
323
323
|
}
|
|
324
324
|
};
|
|
325
|
-
function compileString(
|
|
326
|
-
let schema =
|
|
325
|
+
function compileString(z16, spec) {
|
|
326
|
+
let schema = z16.string();
|
|
327
327
|
if (spec.min !== void 0) schema = schema.min(spec.min);
|
|
328
328
|
if (spec.max !== void 0) schema = schema.max(spec.max);
|
|
329
329
|
return schema;
|
|
330
330
|
}
|
|
331
|
-
function compileNumber(
|
|
332
|
-
let schema =
|
|
331
|
+
function compileNumber(z16, spec) {
|
|
332
|
+
let schema = z16.number();
|
|
333
333
|
if (spec.int) schema = schema.int();
|
|
334
334
|
if (spec.positive) schema = schema.positive();
|
|
335
335
|
if (spec.nonnegative) schema = schema.nonnegative();
|
|
@@ -337,50 +337,50 @@ function compileNumber(z14, spec) {
|
|
|
337
337
|
if (spec.max !== void 0) schema = schema.max(spec.max);
|
|
338
338
|
return schema;
|
|
339
339
|
}
|
|
340
|
-
function compileArray(
|
|
341
|
-
let schema =
|
|
340
|
+
function compileArray(z16, spec) {
|
|
341
|
+
let schema = z16.array(compileField(z16, spec.item));
|
|
342
342
|
if (spec.min !== void 0) schema = schema.min(spec.min);
|
|
343
343
|
if (spec.max !== void 0) schema = schema.max(spec.max);
|
|
344
344
|
return schema;
|
|
345
345
|
}
|
|
346
|
-
function compileBase(
|
|
346
|
+
function compileBase(z16, spec) {
|
|
347
347
|
switch (spec.kind) {
|
|
348
348
|
case "string":
|
|
349
|
-
return compileString(
|
|
349
|
+
return compileString(z16, spec);
|
|
350
350
|
case "number":
|
|
351
|
-
return compileNumber(
|
|
351
|
+
return compileNumber(z16, spec);
|
|
352
352
|
case "boolean":
|
|
353
|
-
return
|
|
353
|
+
return z16.boolean();
|
|
354
354
|
case "enum":
|
|
355
|
-
return
|
|
355
|
+
return z16.enum([...spec.values]);
|
|
356
356
|
case "array":
|
|
357
|
-
return compileArray(
|
|
357
|
+
return compileArray(z16, spec);
|
|
358
358
|
case "object":
|
|
359
|
-
return
|
|
359
|
+
return z16.object(compileShape(z16, spec.fields));
|
|
360
360
|
}
|
|
361
361
|
}
|
|
362
362
|
function descriptionOf(spec) {
|
|
363
363
|
if (spec.kind === "optional" || spec.kind === "nullable") return descriptionOf(spec.inner);
|
|
364
364
|
return spec.desc;
|
|
365
365
|
}
|
|
366
|
-
function compileUndescribed(
|
|
366
|
+
function compileUndescribed(z16, spec) {
|
|
367
367
|
if (spec.kind === "optional") {
|
|
368
|
-
return compileUndescribed(
|
|
368
|
+
return compileUndescribed(z16, spec.inner).optional();
|
|
369
369
|
}
|
|
370
370
|
if (spec.kind === "nullable") {
|
|
371
|
-
return compileUndescribed(
|
|
371
|
+
return compileUndescribed(z16, spec.inner).nullable();
|
|
372
372
|
}
|
|
373
|
-
return compileBase(
|
|
373
|
+
return compileBase(z16, spec);
|
|
374
374
|
}
|
|
375
|
-
function compileField(
|
|
376
|
-
const schema = compileUndescribed(
|
|
375
|
+
function compileField(z16, spec) {
|
|
376
|
+
const schema = compileUndescribed(z16, spec);
|
|
377
377
|
const desc = descriptionOf(spec);
|
|
378
378
|
return desc === void 0 ? schema : schema.describe(desc);
|
|
379
379
|
}
|
|
380
|
-
function compileShape(
|
|
380
|
+
function compileShape(z16, fields) {
|
|
381
381
|
const shape = {};
|
|
382
382
|
for (const [key, spec] of Object.entries(fields)) {
|
|
383
|
-
shape[key] = compileField(
|
|
383
|
+
shape[key] = compileField(z16, spec);
|
|
384
384
|
}
|
|
385
385
|
return shape;
|
|
386
386
|
}
|
|
@@ -390,6 +390,7 @@ function defineToolContract(contract) {
|
|
|
390
390
|
var mcpProjectId = f.optional(f.string({ desc: "Target Conveyor project ID" }));
|
|
391
391
|
var cardDescriptionDesc = (lead) => `${lead} \u2014 ${CARD_DESCRIPTION_FIELD_HINT}`;
|
|
392
392
|
var storyPointValueDesc = "Story point value (1=Common, 2=Magic, 3=Rare, 5=Unique)";
|
|
393
|
+
var priorityValueDesc = "Priority value from manage_priorities list (1 = the project's highest level; seeded defaults are 1=High, 2=Medium, 3=Low)";
|
|
393
394
|
var getTaskContract = defineToolContract({
|
|
394
395
|
name: "get_task",
|
|
395
396
|
agent: {
|
|
@@ -623,7 +624,7 @@ var updateTaskContract = defineToolContract({
|
|
|
623
624
|
}
|
|
624
625
|
},
|
|
625
626
|
mcp: {
|
|
626
|
-
description: "Update task fields: title, description, plan, status, risk, story points, assignment, githubBranch, onHold, or tags. Set status to claim a card (InProgress), triage it (Open), or cancel it (Cancelled); for review approvals prefer approve_task / request_changes, which guard against stale-state races. Set onHold to park a card (true) or bring it back to the active board (false) without cancelling it. Tags are additive/subtractive \u2014 pass addTags/removeTags with tag names (not a replace-set). Pass projectId to target a specific project; otherwise the configured default project is used. Moving a task beyond Planning auto-fills any missing icon, story points, and agent assignment \u2014 don't spend turns on them; pass storyPointValue only to correct the sizing yourself. For subtasks use update_subtask.",
|
|
627
|
+
description: "Update task fields: title, description, plan, status, risk, story points, priority, assignment, githubBranch, onHold, or tags. Set status to claim a card (InProgress), triage it (Open), or cancel it (Cancelled); for review approvals prefer approve_task / request_changes, which guard against stale-state races. Set onHold to park a card (true) or bring it back to the active board (false) without cancelling it. Tags are additive/subtractive \u2014 pass addTags/removeTags with tag names (not a replace-set). Pass projectId to target a specific project; otherwise the configured default project is used. Moving a task beyond Planning auto-fills any missing icon, story points, and agent assignment \u2014 don't spend turns on them; pass storyPointValue only to correct the sizing yourself. For subtasks use update_subtask.",
|
|
627
628
|
fields: {
|
|
628
629
|
projectId: mcpProjectId,
|
|
629
630
|
taskId: f.string({ desc: "The task ID" }),
|
|
@@ -645,6 +646,13 @@ var updateTaskContract = defineToolContract({
|
|
|
645
646
|
})
|
|
646
647
|
)
|
|
647
648
|
),
|
|
649
|
+
priorityValue: f.optional(
|
|
650
|
+
f.nullable(
|
|
651
|
+
f.number({
|
|
652
|
+
desc: `${priorityValueDesc}. The levels are per-project \u2014 a value the project has not configured is rejected. Pass null to clear it.`
|
|
653
|
+
})
|
|
654
|
+
)
|
|
655
|
+
),
|
|
648
656
|
assignedUserId: f.optional(f.nullable(f.string({ desc: "User ID to assign, or null" }))),
|
|
649
657
|
subProjectId: f.optional(
|
|
650
658
|
f.nullable(
|
|
@@ -1106,13 +1114,13 @@ var agentTaskIdOrSlug = f.optional(
|
|
|
1106
1114
|
var listTaskFilesContract = defineToolContract({
|
|
1107
1115
|
name: "list_task_files",
|
|
1108
1116
|
agent: {
|
|
1109
|
-
description: "List all files attached to this task with metadata. Use before fetching a specific file to see what is available and how large each is. For file contents use get_attachment. Pass task_id to list another card's files in this project, for example the pack parent's source documents.",
|
|
1117
|
+
description: "List all files attached to this task with metadata. Showcase files (the card's deliverables, `showcase: true` on each row) list first; a row with `supersedesFileId` is a newer version of that file. Use before fetching a specific file to see what is available and how large each is. For file contents use get_attachment. Pass task_id to list another card's files in this project, for example the pack parent's source documents.",
|
|
1110
1118
|
fields: {
|
|
1111
1119
|
task_id: agentTaskIdOrSlug
|
|
1112
1120
|
}
|
|
1113
1121
|
},
|
|
1114
1122
|
mcp: {
|
|
1115
|
-
description: "List all files attached to a task with metadata (no contents \u2014 fast and small). Pass projectId to target a specific project; otherwise the configured default project is used. Use before fetching a specific file to see what is available and how large each is. For file contents use get_attachment.",
|
|
1123
|
+
description: "List all files attached to a task with metadata (no contents \u2014 fast and small). Showcase files (the card's deliverables, `showcase: true` on each row) list first; a row with `supersedesFileId` is a newer version of that file. Pass projectId to target a specific project; otherwise the configured default project is used. Use before fetching a specific file to see what is available and how large each is. For file contents use get_attachment.",
|
|
1116
1124
|
fields: {
|
|
1117
1125
|
projectId: mcpProjectId,
|
|
1118
1126
|
taskId: mcpTaskIdOrSlug
|
|
@@ -1156,10 +1164,20 @@ var attachmentTags = f.optional(
|
|
|
1156
1164
|
desc: `Glossary tag names this file is a relevant example of. MUST be a JSON array of quoted strings, e.g. ["ops-hub", "platform-support"] \u2014 bare unquoted words are invalid JSON and fail the whole call before it is parsed (21 fleet calls in one week died this way). Use it when the file shows a tagged entity in a particular state: the tag's page lists its recent tagged attachments, so a reader can see what the entity looks like across the app and spot visual changes over time. Names are matched case-insensitively within the project; a name that matches no tag is reported back and never fails the upload. Max 5.`
|
|
1157
1165
|
})
|
|
1158
1166
|
);
|
|
1167
|
+
var attachmentShowcase = f.optional(
|
|
1168
|
+
f.boolean({
|
|
1169
|
+
desc: "Mark this file as a showcase: the finished result of the card. Showcase files render first with a thumbnail on the card, are what a tag gallery shows, always post to chat, get a long-lived link, are kept past the 90-day purge, and are appended to the PR body under '## Showcase'. Use it for the final capture, not for scoping or before shots."
|
|
1170
|
+
})
|
|
1171
|
+
);
|
|
1172
|
+
var attachmentSupersedes = f.optional(
|
|
1173
|
+
f.string({
|
|
1174
|
+
desc: "File id (from list_task_files) of an older file on this card that this upload replaces, e.g. the previous cut of a video. The old file loses showcase and collapses under the new one as history; the new one inherits its showcase flag and tag labels. Naming a file that already has a newer version replaces the newest one. A bad id never fails the upload \u2014 the reason comes back instead."
|
|
1175
|
+
})
|
|
1176
|
+
);
|
|
1159
1177
|
var uploadAttachmentContract = defineToolContract({
|
|
1160
1178
|
name: "upload_attachment",
|
|
1161
1179
|
agent: {
|
|
1162
|
-
description: "Upload a file (doc, notes, data, diagram, screenshot \u2014 any file type, up to 25MB) as a task attachment AND post it to the task chat in one step \u2014 no follow-up post_to_chat call needed. This is how you deliver a file the user should keep: it attaches to the card. Never publish deliverables as an external Claude artifact. Pass `tags` when the file is a good example of a glossary tag in some state.",
|
|
1180
|
+
description: "Upload a file (doc, notes, data, diagram, screenshot \u2014 any file type, up to 25MB) as a task attachment AND post it to the task chat in one step \u2014 no follow-up post_to_chat call needed. This is how you deliver a file the user should keep: it attaches to the card. Never publish deliverables as an external Claude artifact. Pass `showcase: true` for the capture that shows the finished result, `supersedes` with the old file's id when this is a newer version of a file already on the card, and `tags` when the file is a good example of a glossary tag in some state.",
|
|
1163
1181
|
fields: {
|
|
1164
1182
|
path: f.string({
|
|
1165
1183
|
desc: "Path to the file \u2014 absolute, or relative to the workspace root"
|
|
@@ -1172,11 +1190,13 @@ var uploadAttachmentContract = defineToolContract({
|
|
|
1172
1190
|
desc: "Alias of `title` (the external conveyor-mcp surface names this field `comment`). Provide at most one of the two."
|
|
1173
1191
|
})
|
|
1174
1192
|
),
|
|
1175
|
-
tags: attachmentTags
|
|
1193
|
+
tags: attachmentTags,
|
|
1194
|
+
showcase: attachmentShowcase,
|
|
1195
|
+
supersedes: attachmentSupersedes
|
|
1176
1196
|
}
|
|
1177
1197
|
},
|
|
1178
1198
|
mcp: {
|
|
1179
|
-
description: "Upload a local file as a task attachment (any file type, up to 25MB). Pass projectId to target a specific project; otherwise the configured default project is used. The file appears under the task's Files. Pass `comment` to also post it to the task chat in the same step, and `tags` when the file is a good example of a glossary tag in some state.",
|
|
1199
|
+
description: "Upload a local file as a task attachment (any file type, up to 25MB). Pass projectId to target a specific project; otherwise the configured default project is used. The file appears under the task's Files. Pass `comment` to also post it to the task chat in the same step, `showcase: true` for the capture that shows the finished result (a showcase file always posts to chat), `supersedes` with the old file's id when this is a newer version of a file already on the card, and `tags` when the file is a good example of a glossary tag in some state.",
|
|
1180
1200
|
fields: {
|
|
1181
1201
|
projectId: mcpProjectId,
|
|
1182
1202
|
taskId: mcpTaskIdOrSlug,
|
|
@@ -1190,6 +1210,8 @@ var uploadAttachmentContract = defineToolContract({
|
|
|
1190
1210
|
})
|
|
1191
1211
|
),
|
|
1192
1212
|
tags: attachmentTags,
|
|
1213
|
+
showcase: attachmentShowcase,
|
|
1214
|
+
supersedes: attachmentSupersedes,
|
|
1193
1215
|
mimeType: f.optional(
|
|
1194
1216
|
f.string({ desc: "Override the mime type inferred from the file extension" })
|
|
1195
1217
|
)
|
|
@@ -1214,11 +1236,35 @@ var deleteAttachmentContract = defineToolContract({
|
|
|
1214
1236
|
}
|
|
1215
1237
|
}
|
|
1216
1238
|
});
|
|
1239
|
+
var SET_SHOWCASE_BEHAVIOR = "Mark an already-uploaded attachment as the card's showcase (`showcase: true`) or clear the flag (`showcase: false`) \u2014 the same flag upload_attachment sets at upload time, so promote an earlier capture here instead of uploading it again. A flip to showcase posts the file to the task chat once; a file that a chat message already carries is not posted again. `fileId` comes from list_task_files.";
|
|
1240
|
+
var showcaseFlag = f.boolean({
|
|
1241
|
+
desc: "true marks the file as the card's showcase; false clears the flag."
|
|
1242
|
+
});
|
|
1243
|
+
var setShowcaseContract = defineToolContract({
|
|
1244
|
+
name: "set_showcase",
|
|
1245
|
+
agent: {
|
|
1246
|
+
description: `${SET_SHOWCASE_BEHAVIOR} A pod can only change files on its own card.`,
|
|
1247
|
+
fields: {
|
|
1248
|
+
fileId: f.string({ desc: "The file ID to change" }),
|
|
1249
|
+
showcase: showcaseFlag
|
|
1250
|
+
}
|
|
1251
|
+
},
|
|
1252
|
+
mcp: {
|
|
1253
|
+
description: `${SET_SHOWCASE_BEHAVIOR} Requires Moderate on the project, the same bar as the star on the card's Files list. Pass projectId to target a specific project; otherwise the configured default project is used.`,
|
|
1254
|
+
fields: {
|
|
1255
|
+
projectId: mcpProjectId,
|
|
1256
|
+
taskId: f.string({ desc: "The task ID or slug the file is attached to" }),
|
|
1257
|
+
fileId: f.string({ desc: "The file ID to change" }),
|
|
1258
|
+
showcase: showcaseFlag
|
|
1259
|
+
}
|
|
1260
|
+
}
|
|
1261
|
+
});
|
|
1217
1262
|
var attachmentsContracts = [
|
|
1218
1263
|
listTaskFilesContract,
|
|
1219
1264
|
getAttachmentContract,
|
|
1220
1265
|
uploadAttachmentContract,
|
|
1221
|
-
deleteAttachmentContract
|
|
1266
|
+
deleteAttachmentContract,
|
|
1267
|
+
setShowcaseContract
|
|
1222
1268
|
];
|
|
1223
1269
|
var createSuggestionContract = defineToolContract({
|
|
1224
1270
|
name: "create_suggestion",
|
|
@@ -1541,7 +1587,7 @@ var createPullRequestContract = defineToolContract({
|
|
|
1541
1587
|
fields: {
|
|
1542
1588
|
title: f.string({ desc: "The PR title" }),
|
|
1543
1589
|
body: f.string({
|
|
1544
|
-
desc: "The PR description/body in markdown. If the diff changes anything a user sees rendered, the body MUST show the visual proof inline, not just point at the card: upload the capture with upload_attachment, then embed the downloadUrl it returns under a '## Screenshots' heading ( for images, [caption](url) for video). Only image and video URLs belong in a PR body: a document downloadUrl (csv, pdf, md, \u2026) needs a signed-in project member and shows 404 to a reviewer on GitHub, so point at the card instead. Attach to the card as well \u2014 the card is the durable home, the PR body is what the reviewer reads."
|
|
1590
|
+
desc: "The PR description/body in markdown. If the diff changes anything a user sees rendered, the body MUST show the visual proof inline, not just point at the card: upload the capture with upload_attachment, then embed the downloadUrl it returns under a '## Screenshots' heading ( for images, [caption](url) for video). Only image and video URLs belong in a PR body: a document downloadUrl (csv, pdf, md, \u2026) needs a signed-in project member and shows 404 to a reviewer on GitHub, so point at the card instead. Attach to the card as well \u2014 the card is the durable home, the PR body is what the reviewer reads. Showcase attachments (uploaded with `showcase: true`) are appended under '## Showcase' automatically when Conveyor creates the PR; mention them inline yourself only if you want them next to specific text."
|
|
1545
1591
|
}),
|
|
1546
1592
|
branch: f.optional(
|
|
1547
1593
|
f.string({
|
|
@@ -1572,7 +1618,7 @@ var createPullRequestContract = defineToolContract({
|
|
|
1572
1618
|
taskId: f.string({ desc: "The task ID whose branch should be opened as a PR" }),
|
|
1573
1619
|
title: f.string({ desc: "Pull request title" }),
|
|
1574
1620
|
body: f.string({
|
|
1575
|
-
desc: "Pull request body (markdown). For a diff that changes rendered UI, embed the visual proof inline: upload the capture with upload_attachment and paste the downloadUrl it returns as , in addition to leaving it on the card."
|
|
1621
|
+
desc: "Pull request body (markdown). For a diff that changes rendered UI, embed the visual proof inline: upload the capture with upload_attachment and paste the downloadUrl it returns as , in addition to leaving it on the card. Showcase attachments (uploaded with `showcase: true`) are appended under '## Showcase' automatically when Conveyor creates the PR; mention them inline yourself only if you want them next to specific text."
|
|
1576
1622
|
}),
|
|
1577
1623
|
head: f.optional(
|
|
1578
1624
|
f.string({ desc: "Source branch for the PR (defaults to the task's branch)" })
|
|
@@ -2354,7 +2400,7 @@ var TOOL_CONTRACTS = Object.fromEntries(
|
|
|
2354
2400
|
);
|
|
2355
2401
|
|
|
2356
2402
|
// src/tools/contract-tool.ts
|
|
2357
|
-
import { z as z3 } from "zod";
|
|
2403
|
+
import { z as z3 } from "zod/v3";
|
|
2358
2404
|
function mcpShape(surface) {
|
|
2359
2405
|
return compileShape(z3, surface.fields);
|
|
2360
2406
|
}
|
|
@@ -2423,7 +2469,7 @@ function registerConnectionTools(server2, conn2) {
|
|
|
2423
2469
|
}
|
|
2424
2470
|
|
|
2425
2471
|
// src/tools/project-config.ts
|
|
2426
|
-
import { z as z5 } from "zod";
|
|
2472
|
+
import { z as z5 } from "zod/v3";
|
|
2427
2473
|
var CONTEXT_LINK_LOCATOR_MAX = 300;
|
|
2428
2474
|
function jsonResult(data) {
|
|
2429
2475
|
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
@@ -2658,7 +2704,7 @@ function registerProjectConfigTools(server2, conn2) {
|
|
|
2658
2704
|
}
|
|
2659
2705
|
|
|
2660
2706
|
// src/tools/tasks.ts
|
|
2661
|
-
import { z as z6 } from "zod";
|
|
2707
|
+
import { z as z6 } from "zod/v3";
|
|
2662
2708
|
|
|
2663
2709
|
// src/tools/tasks-format.ts
|
|
2664
2710
|
function formatCompletedMeta(data) {
|
|
@@ -2851,6 +2897,9 @@ function registerCreateTask(server2, conn2) {
|
|
|
2851
2897
|
plan: z6.string().optional().describe("Task implementation plan (markdown)"),
|
|
2852
2898
|
status: z6.enum(["Planning", "Open"]).optional().describe("Initial status (default: Planning)"),
|
|
2853
2899
|
subProjectId: BOARD_ASSIGN,
|
|
2900
|
+
priorityValue: z6.number().int().positive().optional().describe(
|
|
2901
|
+
`${priorityValueDesc}. A value the project has not configured is rejected before the card is created.`
|
|
2902
|
+
),
|
|
2854
2903
|
tags: z6.array(z6.string()).optional().describe(
|
|
2855
2904
|
'Tag names to assign to the new card (e.g. ["refactor"]). Unknown names are rejected before the card is created, so nothing is written and a corrected retry creates exactly one card. Create the tag first with manage_tags. Use list_tags to see available tags.'
|
|
2856
2905
|
)
|
|
@@ -2876,6 +2925,9 @@ function registerUpdateTask(server2, conn2) {
|
|
|
2876
2925
|
if (params.storyPointValue !== void 0) {
|
|
2877
2926
|
parts.push(`story points: ${result.storyPointValue ?? "cleared"}`);
|
|
2878
2927
|
}
|
|
2928
|
+
if (params.priorityValue !== void 0) {
|
|
2929
|
+
parts.push(`priority: ${result.priorityValue ?? "cleared"}`);
|
|
2930
|
+
}
|
|
2879
2931
|
if ((result.addedTags ?? []).length > 0) parts.push(`+tags: ${result.addedTags.join(", ")}`);
|
|
2880
2932
|
if ((result.removedTags ?? []).length > 0)
|
|
2881
2933
|
parts.push(`-tags: ${result.removedTags.join(", ")}`);
|
|
@@ -3105,7 +3157,7 @@ function registerTaskTools(server2, conn2) {
|
|
|
3105
3157
|
}
|
|
3106
3158
|
|
|
3107
3159
|
// src/tools/builds.ts
|
|
3108
|
-
import { z as z7 } from "zod";
|
|
3160
|
+
import { z as z7 } from "zod/v3";
|
|
3109
3161
|
function textResult2(result) {
|
|
3110
3162
|
return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
|
|
3111
3163
|
}
|
|
@@ -3204,7 +3256,7 @@ function registerBuildTools(server2, conn2) {
|
|
|
3204
3256
|
// src/tools/attachments.ts
|
|
3205
3257
|
import { readFile, stat } from "fs/promises";
|
|
3206
3258
|
import { basename, extname } from "path";
|
|
3207
|
-
import { z as z8 } from "zod";
|
|
3259
|
+
import { z as z8 } from "zod/v3";
|
|
3208
3260
|
var MAX_FILE_SIZE_BYTES = 25 * 1024 * 1024;
|
|
3209
3261
|
var MAX_FILE_TAGS = 5;
|
|
3210
3262
|
var MIME_BY_EXT = {
|
|
@@ -3235,6 +3287,8 @@ var MIME_BY_EXT = {
|
|
|
3235
3287
|
".gz": "application/gzip",
|
|
3236
3288
|
".mp4": "video/mp4",
|
|
3237
3289
|
".webm": "video/webm",
|
|
3290
|
+
".mov": "video/quicktime",
|
|
3291
|
+
".m4v": "video/x-m4v",
|
|
3238
3292
|
".mp3": "audio/mpeg",
|
|
3239
3293
|
".wav": "audio/wav"
|
|
3240
3294
|
};
|
|
@@ -3328,21 +3382,23 @@ function registerUploadAttachment(server2, conn2) {
|
|
|
3328
3382
|
};
|
|
3329
3383
|
}
|
|
3330
3384
|
const comment = params.comment ?? params.title;
|
|
3331
|
-
const result = await conn2.confirmFileUpload(
|
|
3332
|
-
params.taskId,
|
|
3385
|
+
const result = await conn2.confirmFileUpload({
|
|
3386
|
+
taskId: params.taskId,
|
|
3333
3387
|
fileId,
|
|
3334
3388
|
comment,
|
|
3335
|
-
params.projectId,
|
|
3336
|
-
params.tags
|
|
3337
|
-
|
|
3389
|
+
projectId: params.projectId,
|
|
3390
|
+
tags: params.tags,
|
|
3391
|
+
showcase: params.showcase,
|
|
3392
|
+
supersedes: params.supersedes
|
|
3393
|
+
});
|
|
3338
3394
|
const lines = [
|
|
3339
|
-
|
|
3395
|
+
`${result.showcase ? "Showcase attachment. " : ""}Uploaded ${result.fileName} (${info.size} bytes, ${mimeType}). File ID: ${result.fileId}`
|
|
3340
3396
|
];
|
|
3341
3397
|
if (result.downloadUrl) lines.push(`downloadUrl: ${result.downloadUrl}`);
|
|
3342
3398
|
if (result.messageId) lines.push("Posted to the task chat.");
|
|
3343
3399
|
else if (comment === void 0) {
|
|
3344
3400
|
lines.push(
|
|
3345
|
-
"Not posted to the task chat \u2014 pass `comment` (or `title`) to show it in the card thread."
|
|
3401
|
+
"Not posted to the task chat \u2014 pass `comment` (or `title`) to show it in the card thread, or `showcase: true` for the finished result."
|
|
3346
3402
|
);
|
|
3347
3403
|
}
|
|
3348
3404
|
if (result.appliedTags?.length) lines.push(`Tagged: ${result.appliedTags.join(", ")}.`);
|
|
@@ -3351,9 +3407,18 @@ function registerUploadAttachment(server2, conn2) {
|
|
|
3351
3407
|
`No tag matched: ${result.unknownTags.join(", ")} \u2014 check the project's tag names.`
|
|
3352
3408
|
);
|
|
3353
3409
|
}
|
|
3410
|
+
const supersedeLine = describeSupersede(result);
|
|
3411
|
+
if (supersedeLine) lines.push(supersedeLine);
|
|
3354
3412
|
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
3355
3413
|
});
|
|
3356
3414
|
}
|
|
3415
|
+
function describeSupersede(result) {
|
|
3416
|
+
if (result.superseded) {
|
|
3417
|
+
return `Replaces ${result.superseded.fileName} (${result.superseded.fileId}), which now collapses under it as history.`;
|
|
3418
|
+
}
|
|
3419
|
+
if (result.supersedeError) return `Did not replace the older file: ${result.supersedeError}.`;
|
|
3420
|
+
return null;
|
|
3421
|
+
}
|
|
3357
3422
|
function registerSetFileTags(server2, conn2) {
|
|
3358
3423
|
server2.tool(
|
|
3359
3424
|
"set_file_tags",
|
|
@@ -3393,12 +3458,23 @@ function registerDeleteAttachment(server2, conn2) {
|
|
|
3393
3458
|
};
|
|
3394
3459
|
});
|
|
3395
3460
|
}
|
|
3461
|
+
function registerSetShowcase(server2, conn2) {
|
|
3462
|
+
registerContractTool(server2, setShowcaseContract, async (params) => {
|
|
3463
|
+
const result = await conn2.setShowcase(params);
|
|
3464
|
+
const lines = result.showcase ? [
|
|
3465
|
+
`${result.fileName} (${result.id}) is now a showcase file. It is in the task chat and appended to the PR body under '## Showcase'.`
|
|
3466
|
+
] : [`${result.fileName} (${result.id}) is no longer a showcase file.`];
|
|
3467
|
+
if (result.showcase && result.downloadUrl) lines.push(`downloadUrl: ${result.downloadUrl}`);
|
|
3468
|
+
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
3469
|
+
});
|
|
3470
|
+
}
|
|
3396
3471
|
function registerAttachmentTools(server2, conn2) {
|
|
3397
3472
|
registerListTaskFiles(server2, conn2);
|
|
3398
3473
|
registerGetAttachment(server2, conn2);
|
|
3399
3474
|
registerUploadAttachment(server2, conn2);
|
|
3400
3475
|
registerDeleteAttachment(server2, conn2);
|
|
3401
3476
|
registerSetFileTags(server2, conn2);
|
|
3477
|
+
registerSetShowcase(server2, conn2);
|
|
3402
3478
|
}
|
|
3403
3479
|
|
|
3404
3480
|
// src/tools/pull-request.ts
|
|
@@ -3516,8 +3592,8 @@ function registerSuggestionTools(server2, conn2) {
|
|
|
3516
3592
|
// ../shared/dist/index.js
|
|
3517
3593
|
import { z as z9 } from "zod";
|
|
3518
3594
|
import { z as z23 } from "zod";
|
|
3519
|
-
import { z as z32 } from "zod";
|
|
3520
3595
|
import { z as z42 } from "zod";
|
|
3596
|
+
import { z as z32 } from "zod";
|
|
3521
3597
|
import { z as z52 } from "zod";
|
|
3522
3598
|
import { z as z62 } from "zod";
|
|
3523
3599
|
import { z as z72 } from "zod";
|
|
@@ -3526,6 +3602,8 @@ import { z as z92 } from "zod";
|
|
|
3526
3602
|
import { z as z10 } from "zod";
|
|
3527
3603
|
import { z as z11 } from "zod";
|
|
3528
3604
|
import { z as z12 } from "zod";
|
|
3605
|
+
import { z as z13 } from "zod";
|
|
3606
|
+
import { z as z14 } from "zod";
|
|
3529
3607
|
var ACHIEVEMENT_RARITIES = [
|
|
3530
3608
|
{
|
|
3531
3609
|
key: "common",
|
|
@@ -3784,29 +3862,120 @@ var AgentEventSchema = z23.union([
|
|
|
3784
3862
|
KnownAgentEventSchema,
|
|
3785
3863
|
z23.object({ type: z23.string().min(1) }).catchall(z23.unknown())
|
|
3786
3864
|
]);
|
|
3787
|
-
var
|
|
3788
|
-
var
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3865
|
+
var PtyChatAtSchema = z32.string().max(40).optional();
|
|
3866
|
+
var PtyChatTurnUsageSchema = z32.object({
|
|
3867
|
+
input: z32.number().int().nonnegative(),
|
|
3868
|
+
output: z32.number().int().nonnegative(),
|
|
3869
|
+
cacheRead: z32.number().int().nonnegative(),
|
|
3870
|
+
cacheWrite: z32.number().int().nonnegative()
|
|
3871
|
+
});
|
|
3872
|
+
var PtyChatTurnFileSchema = z32.object({
|
|
3873
|
+
path: z32.string().max(500),
|
|
3874
|
+
added: z32.number().int(),
|
|
3875
|
+
removed: z32.number().int()
|
|
3876
|
+
});
|
|
3877
|
+
var PTY_CHAT_TURN_FILES_MAX = 50;
|
|
3878
|
+
var PtyChatEventPayloadSchema = z32.discriminatedUnion("kind", [
|
|
3879
|
+
z32.object({
|
|
3880
|
+
kind: z32.literal("init"),
|
|
3881
|
+
at: PtyChatAtSchema,
|
|
3882
|
+
model: z32.string().max(200),
|
|
3883
|
+
claudeSessionId: z32.string().max(100).optional()
|
|
3884
|
+
}),
|
|
3885
|
+
z32.object({
|
|
3886
|
+
kind: z32.literal("user_text"),
|
|
3887
|
+
at: PtyChatAtSchema,
|
|
3888
|
+
text: z32.string().max(16384),
|
|
3889
|
+
// Set by the SERVER (never the agent) when this prompt was injected by
|
|
3890
|
+
// Conveyor rather than typed by a human — the routed message's `source`
|
|
3891
|
+
// (`ci_success`, `review_trigger`, `automated_feedback`, …). The agent
|
|
3892
|
+
// pastes automated messages into the TUI exactly like human prompts, so the
|
|
3893
|
+
// CLI records both as plain transcript `user` records; without this the
|
|
3894
|
+
// builder chat renders "All CI checks passed on your PR." as the human's
|
|
3895
|
+
// own bubble. Absent ⇒ a genuine human prompt. Exception: the AGENT sets
|
|
3896
|
+
// `model_switch` on the notice it emits after a live model/effort switch.
|
|
3897
|
+
source: z32.string().max(60).optional()
|
|
3898
|
+
}),
|
|
3899
|
+
z32.object({
|
|
3900
|
+
kind: z32.literal("assistant_text"),
|
|
3901
|
+
at: PtyChatAtSchema,
|
|
3902
|
+
text: z32.string().max(16384),
|
|
3903
|
+
model: z32.string().max(200).optional()
|
|
3904
|
+
}),
|
|
3905
|
+
z32.object({
|
|
3906
|
+
kind: z32.literal("tool_use"),
|
|
3907
|
+
at: PtyChatAtSchema,
|
|
3908
|
+
name: z32.string().max(200),
|
|
3909
|
+
// Compact preview: JSON.stringify(input) truncated agent-side. The cap
|
|
3910
|
+
// matches the text events because AskUserQuestion payloads ride this field
|
|
3911
|
+
// and the web lifts them into an interactive card — a tight cap forced
|
|
3912
|
+
// option descriptions down to 80 chars, making them unreadable. Every
|
|
3913
|
+
// other tool keeps a far smaller agent-side budget (`TOOL_INPUT_MAX` in
|
|
3914
|
+
// `chat-record-mapper.ts`), so the ring does not grow for normal calls.
|
|
3915
|
+
input: z32.string().max(16384),
|
|
3916
|
+
// Transcript tool_use block id — lets the client pair the tool_result.
|
|
3917
|
+
id: z32.string().max(100).optional()
|
|
3918
|
+
}),
|
|
3919
|
+
z32.object({
|
|
3920
|
+
kind: z32.literal("tool_result"),
|
|
3921
|
+
at: PtyChatAtSchema,
|
|
3922
|
+
// tool_use block id this result answers (absent on malformed records).
|
|
3923
|
+
toolUseId: z32.string().max(100).optional(),
|
|
3924
|
+
// Compact output preview, truncated agent-side.
|
|
3925
|
+
output: z32.string().max(2e3),
|
|
3926
|
+
isError: z32.boolean().optional()
|
|
3927
|
+
}),
|
|
3928
|
+
z32.object({
|
|
3929
|
+
kind: z32.literal("turn_end"),
|
|
3930
|
+
at: PtyChatAtSchema,
|
|
3931
|
+
// Wall-clock turn length as the CLI measured it ("Worked for 23s").
|
|
3932
|
+
durationMs: z32.number().int().nonnegative().optional(),
|
|
3933
|
+
// Last model that answered in this turn.
|
|
3934
|
+
model: z32.string().max(200).optional(),
|
|
3935
|
+
// Token usage summed over the turn's API responses.
|
|
3936
|
+
usage: PtyChatTurnUsageSchema.optional(),
|
|
3937
|
+
// Files the turn edited, with line counts. Absent when nothing was edited.
|
|
3938
|
+
files: z32.array(PtyChatTurnFileSchema).max(PTY_CHAT_TURN_FILES_MAX).optional()
|
|
3939
|
+
})
|
|
3940
|
+
]);
|
|
3941
|
+
var PtyChatEventRequestSchema = z32.object({
|
|
3942
|
+
sessionId: z32.string(),
|
|
3943
|
+
event: PtyChatEventPayloadSchema
|
|
3944
|
+
});
|
|
3945
|
+
var PtyChatAttachRequestSchema = z32.object({
|
|
3946
|
+
sessionId: z32.string()
|
|
3947
|
+
});
|
|
3948
|
+
var PTY_EFFORT_LEVELS = ["low", "medium", "high", "xhigh", "max"];
|
|
3949
|
+
var SetPtyModelEffortRequestSchema = z32.object({
|
|
3950
|
+
sessionId: z32.string(),
|
|
3951
|
+
model: z32.string().min(1).max(200).optional(),
|
|
3952
|
+
effort: z32.enum(PTY_EFFORT_LEVELS).optional()
|
|
3953
|
+
}).refine((p) => p.model !== void 0 || p.effort !== void 0, {
|
|
3954
|
+
message: "model or effort is required"
|
|
3955
|
+
});
|
|
3956
|
+
var cardDescription = z42.string().max(CARD_DESCRIPTION_MAX, CARD_DESCRIPTION_LIMIT_MESSAGE).optional();
|
|
3957
|
+
var AgentHeartbeatSchema = z42.object({
|
|
3958
|
+
sessionId: z42.string().optional(),
|
|
3959
|
+
timestamp: z42.string(),
|
|
3960
|
+
status: z42.enum(["active", "idle", "building"]),
|
|
3961
|
+
currentAction: z42.string().optional(),
|
|
3793
3962
|
/** Sender-observed main event-loop lag (ms) — see AgentHeartbeat.loopLagMs. */
|
|
3794
|
-
loopLagMs:
|
|
3963
|
+
loopLagMs: z42.number().nonnegative().optional()
|
|
3795
3964
|
});
|
|
3796
|
-
var CreatePRInputSchema =
|
|
3797
|
-
title:
|
|
3798
|
-
body:
|
|
3799
|
-
head:
|
|
3800
|
-
base:
|
|
3965
|
+
var CreatePRInputSchema = z42.object({
|
|
3966
|
+
title: z42.string().min(1),
|
|
3967
|
+
body: z42.string(),
|
|
3968
|
+
head: z42.string().optional(),
|
|
3969
|
+
base: z42.string().optional()
|
|
3801
3970
|
});
|
|
3802
|
-
var PostToChatInputSchema =
|
|
3803
|
-
message:
|
|
3804
|
-
type:
|
|
3805
|
-
milestone:
|
|
3971
|
+
var PostToChatInputSchema = z42.object({
|
|
3972
|
+
message: z42.string().min(1),
|
|
3973
|
+
type: z42.enum(["message", "question", "update"]).optional().default("message"),
|
|
3974
|
+
milestone: z42.enum(["plan_ready", "implementation_complete", "blocked"]).optional()
|
|
3806
3975
|
});
|
|
3807
|
-
var GetTaskContextRequestSchema =
|
|
3808
|
-
sessionId:
|
|
3809
|
-
includeHistory:
|
|
3976
|
+
var GetTaskContextRequestSchema = z42.object({
|
|
3977
|
+
sessionId: z42.string(),
|
|
3978
|
+
includeHistory: z42.boolean().optional().default(false),
|
|
3810
3979
|
/**
|
|
3811
3980
|
* Read the plan-revised marker WITHOUT consuming it. Bookkeeping fetches
|
|
3812
3981
|
* (the session-identity check, the branch refresh) pass true so they cannot
|
|
@@ -3814,283 +3983,292 @@ var GetTaskContextRequestSchema = z32.object({
|
|
|
3814
3983
|
* Defaults to false — consuming — so a pod running an older agent build still
|
|
3815
3984
|
* clears the marker instead of showing the notice on every boot forever.
|
|
3816
3985
|
*/
|
|
3817
|
-
peekPlanRevision:
|
|
3986
|
+
peekPlanRevision: z42.boolean().optional().default(false)
|
|
3818
3987
|
});
|
|
3819
|
-
var GetChatMessagesRequestSchema =
|
|
3820
|
-
sessionId:
|
|
3821
|
-
limit:
|
|
3822
|
-
offset:
|
|
3988
|
+
var GetChatMessagesRequestSchema = z42.object({
|
|
3989
|
+
sessionId: z42.string(),
|
|
3990
|
+
limit: z42.number().int().positive().optional().default(50),
|
|
3991
|
+
offset: z42.number().int().nonnegative().optional().default(0),
|
|
3823
3992
|
/** Task id or slug to read chat from. Omit for the session's own task. Only
|
|
3824
3993
|
* the session's own task or one of its children resolves — anything else is
|
|
3825
3994
|
* an error, never a silent fallback to the caller's own chat. */
|
|
3826
|
-
taskId:
|
|
3995
|
+
taskId: z42.string().optional()
|
|
3827
3996
|
});
|
|
3828
|
-
var GetTaskFilesRequestSchema =
|
|
3829
|
-
sessionId:
|
|
3830
|
-
taskId:
|
|
3997
|
+
var GetTaskFilesRequestSchema = z42.object({
|
|
3998
|
+
sessionId: z42.string(),
|
|
3999
|
+
taskId: z42.string().optional()
|
|
3831
4000
|
});
|
|
3832
|
-
var GetTaskFileRequestSchema =
|
|
3833
|
-
sessionId:
|
|
3834
|
-
fileId:
|
|
3835
|
-
taskId:
|
|
4001
|
+
var GetTaskFileRequestSchema = z42.object({
|
|
4002
|
+
sessionId: z42.string(),
|
|
4003
|
+
fileId: z42.string(),
|
|
4004
|
+
taskId: z42.string().optional()
|
|
3836
4005
|
});
|
|
3837
|
-
var DeleteTaskFileRequestSchema =
|
|
3838
|
-
sessionId:
|
|
3839
|
-
fileId:
|
|
4006
|
+
var DeleteTaskFileRequestSchema = z42.object({
|
|
4007
|
+
sessionId: z42.string(),
|
|
4008
|
+
fileId: z42.string()
|
|
3840
4009
|
});
|
|
3841
|
-
var
|
|
3842
|
-
sessionId:
|
|
3843
|
-
|
|
4010
|
+
var SetTaskFileShowcaseRequestSchema = z42.object({
|
|
4011
|
+
sessionId: z42.string(),
|
|
4012
|
+
fileId: z42.string(),
|
|
4013
|
+
showcase: z42.boolean()
|
|
3844
4014
|
});
|
|
3845
|
-
var
|
|
3846
|
-
sessionId:
|
|
3847
|
-
|
|
3848
|
-
|
|
4015
|
+
var GetTaskRequestSchema = z42.object({
|
|
4016
|
+
sessionId: z42.string(),
|
|
4017
|
+
taskSlugOrId: z42.string()
|
|
4018
|
+
});
|
|
4019
|
+
var GetCliHistoryRequestSchema = z42.object({
|
|
4020
|
+
sessionId: z42.string(),
|
|
4021
|
+
limit: z42.number().int().positive().optional().default(100),
|
|
4022
|
+
source: z42.enum(["agent", "application"]).optional(),
|
|
3849
4023
|
/** Task id or slug to read logs from. Omit for the session's own task. Only
|
|
3850
4024
|
* the session's own task or one of its children resolves — anything else is
|
|
3851
4025
|
* an error, never a silent fallback to the caller's own logs. */
|
|
3852
|
-
taskId:
|
|
4026
|
+
taskId: z42.string().optional()
|
|
3853
4027
|
});
|
|
3854
|
-
var ListSubtasksRequestSchema =
|
|
3855
|
-
sessionId:
|
|
4028
|
+
var ListSubtasksRequestSchema = z42.object({
|
|
4029
|
+
sessionId: z42.string(),
|
|
3856
4030
|
/** "compact" returns the slim orchestration view (ListSubtasksCompactResponse:
|
|
3857
4031
|
* per-child status, agent, story points, PR state, dependencies); "full" (default — wire-compat with older
|
|
3858
4032
|
* agents) returns the verbose SubtaskSummaryDTO[] including description/plan. */
|
|
3859
|
-
view:
|
|
4033
|
+
view: z42.enum(["compact", "full"]).optional()
|
|
3860
4034
|
});
|
|
3861
|
-
var GetDependenciesRequestSchema =
|
|
3862
|
-
sessionId:
|
|
4035
|
+
var GetDependenciesRequestSchema = z42.object({
|
|
4036
|
+
sessionId: z42.string()
|
|
3863
4037
|
});
|
|
3864
|
-
var GetSuggestionsRequestSchema =
|
|
3865
|
-
sessionId:
|
|
3866
|
-
status:
|
|
3867
|
-
limit:
|
|
4038
|
+
var GetSuggestionsRequestSchema = z42.object({
|
|
4039
|
+
sessionId: z42.string(),
|
|
4040
|
+
status: z42.string().optional(),
|
|
4041
|
+
limit: z42.number().int().min(1).max(100).optional()
|
|
3868
4042
|
});
|
|
3869
|
-
var ListManualTestsRequestSchema =
|
|
3870
|
-
sessionId:
|
|
4043
|
+
var ListManualTestsRequestSchema = z42.object({
|
|
4044
|
+
sessionId: z42.string()
|
|
3871
4045
|
});
|
|
3872
|
-
var QueryManualTestsRequestSchema =
|
|
3873
|
-
sessionId:
|
|
3874
|
-
cardStatuses:
|
|
3875
|
-
testStatuses:
|
|
4046
|
+
var QueryManualTestsRequestSchema = z42.object({
|
|
4047
|
+
sessionId: z42.string(),
|
|
4048
|
+
cardStatuses: z42.array(z42.string()).optional(),
|
|
4049
|
+
testStatuses: z42.array(z42.enum(["open", "approved", "rejected"])).optional()
|
|
3876
4050
|
});
|
|
3877
|
-
var CreatePullRequestRequestSchema = CreatePRInputSchema.extend({ sessionId:
|
|
3878
|
-
var RequestFileUploadRequestSchema =
|
|
3879
|
-
sessionId:
|
|
3880
|
-
fileName:
|
|
3881
|
-
mimeType:
|
|
3882
|
-
fileSize:
|
|
4051
|
+
var CreatePullRequestRequestSchema = CreatePRInputSchema.extend({ sessionId: z42.string() });
|
|
4052
|
+
var RequestFileUploadRequestSchema = z42.object({
|
|
4053
|
+
sessionId: z42.string(),
|
|
4054
|
+
fileName: z42.string().min(1).max(255),
|
|
4055
|
+
mimeType: z42.string().min(1).max(128),
|
|
4056
|
+
fileSize: z42.number().int().positive().max(MAX_FILE_SIZE_BYTES2)
|
|
3883
4057
|
});
|
|
3884
|
-
var ConfirmFileUploadRequestSchema =
|
|
3885
|
-
sessionId:
|
|
3886
|
-
fileId:
|
|
3887
|
-
title:
|
|
4058
|
+
var ConfirmFileUploadRequestSchema = z42.object({
|
|
4059
|
+
sessionId: z42.string(),
|
|
4060
|
+
fileId: z42.string(),
|
|
4061
|
+
title: z42.string().max(500).optional(),
|
|
3888
4062
|
/** Glossary tag names (or ids) this file is an example of. */
|
|
3889
|
-
tags:
|
|
4063
|
+
tags: z42.array(z42.string().min(1).max(MAX_FILE_TAG_LENGTH)).max(MAX_FILE_TAGS2).optional(),
|
|
4064
|
+
/** Mark the file as the card's showcase (the deliverable). */
|
|
4065
|
+
showcase: z42.boolean().optional(),
|
|
4066
|
+
/** Id of an older file on the same card this upload replaces. */
|
|
4067
|
+
supersedes: z42.string().min(1).max(64).optional()
|
|
3890
4068
|
});
|
|
3891
|
-
var UpdateTaskStatusRequestSchema =
|
|
3892
|
-
sessionId:
|
|
3893
|
-
status:
|
|
3894
|
-
force:
|
|
4069
|
+
var UpdateTaskStatusRequestSchema = z42.object({
|
|
4070
|
+
sessionId: z42.string(),
|
|
4071
|
+
status: z42.string(),
|
|
4072
|
+
force: z42.boolean().optional().default(false)
|
|
3895
4073
|
});
|
|
3896
|
-
var StoreSessionIdRequestSchema =
|
|
3897
|
-
sessionId:
|
|
3898
|
-
sdkSessionId:
|
|
4074
|
+
var StoreSessionIdRequestSchema = z42.object({
|
|
4075
|
+
sessionId: z42.string(),
|
|
4076
|
+
sdkSessionId: z42.string()
|
|
3899
4077
|
});
|
|
3900
|
-
var SetManualTestsRequestSchema =
|
|
3901
|
-
sessionId:
|
|
4078
|
+
var SetManualTestsRequestSchema = z42.object({
|
|
4079
|
+
sessionId: z42.string(),
|
|
3902
4080
|
items: ManualTestItemsSchema
|
|
3903
4081
|
});
|
|
3904
|
-
var EditManualTestRequestSchema =
|
|
3905
|
-
sessionId:
|
|
3906
|
-
title:
|
|
3907
|
-
newTitle:
|
|
4082
|
+
var EditManualTestRequestSchema = z42.object({
|
|
4083
|
+
sessionId: z42.string(),
|
|
4084
|
+
title: z42.string().min(1),
|
|
4085
|
+
newTitle: z42.string().min(1)
|
|
3908
4086
|
});
|
|
3909
|
-
var RemoveManualTestRequestSchema =
|
|
3910
|
-
sessionId:
|
|
3911
|
-
title:
|
|
4087
|
+
var RemoveManualTestRequestSchema = z42.object({
|
|
4088
|
+
sessionId: z42.string(),
|
|
4089
|
+
title: z42.string().min(1)
|
|
3912
4090
|
});
|
|
3913
|
-
var ApproveManualTestRequestSchema =
|
|
3914
|
-
sessionId:
|
|
3915
|
-
title:
|
|
4091
|
+
var ApproveManualTestRequestSchema = z42.object({
|
|
4092
|
+
sessionId: z42.string(),
|
|
4093
|
+
title: z42.string().min(1)
|
|
3916
4094
|
});
|
|
3917
|
-
var RejectManualTestRequestSchema =
|
|
3918
|
-
sessionId:
|
|
3919
|
-
title:
|
|
3920
|
-
reason:
|
|
4095
|
+
var RejectManualTestRequestSchema = z42.object({
|
|
4096
|
+
sessionId: z42.string(),
|
|
4097
|
+
title: z42.string().min(1),
|
|
4098
|
+
reason: z42.string().min(1).max(2e3)
|
|
3921
4099
|
});
|
|
3922
|
-
var SessionStartRequestSchema =
|
|
3923
|
-
sessionId:
|
|
3924
|
-
agentVersion:
|
|
3925
|
-
capabilities:
|
|
4100
|
+
var SessionStartRequestSchema = z42.object({
|
|
4101
|
+
sessionId: z42.string(),
|
|
4102
|
+
agentVersion: z42.string(),
|
|
4103
|
+
capabilities: z42.array(z42.string())
|
|
3926
4104
|
});
|
|
3927
|
-
var SessionStopRequestSchema =
|
|
3928
|
-
sessionId:
|
|
3929
|
-
reason:
|
|
4105
|
+
var SessionStopRequestSchema = z42.object({
|
|
4106
|
+
sessionId: z42.string(),
|
|
4107
|
+
reason: z42.string().optional()
|
|
3930
4108
|
});
|
|
3931
|
-
var EndReviewSessionRequestSchema =
|
|
3932
|
-
sessionId:
|
|
3933
|
-
reason:
|
|
4109
|
+
var EndReviewSessionRequestSchema = z42.object({
|
|
4110
|
+
sessionId: z42.string(),
|
|
4111
|
+
reason: z42.enum(["approved", "changes_requested", "finished"]).optional()
|
|
3934
4112
|
});
|
|
3935
|
-
var ConnectAgentRequestSchema =
|
|
3936
|
-
sessionId:
|
|
4113
|
+
var ConnectAgentRequestSchema = z42.object({
|
|
4114
|
+
sessionId: z42.string()
|
|
3937
4115
|
});
|
|
3938
|
-
var ReportAgentStatusRequestSchema =
|
|
3939
|
-
sessionId:
|
|
3940
|
-
status:
|
|
4116
|
+
var ReportAgentStatusRequestSchema = z42.object({
|
|
4117
|
+
sessionId: z42.string(),
|
|
4118
|
+
status: z42.string(),
|
|
3941
4119
|
/** Why the agent reports this status (e.g. "user_question" while an AskUserQuestion questionnaire is pending in the TUI). */
|
|
3942
|
-
reason:
|
|
4120
|
+
reason: z42.string().optional(),
|
|
3943
4121
|
/**
|
|
3944
4122
|
* The pending question text, sent only alongside `reason: "user_question"`
|
|
3945
4123
|
* so the server can surface it in the user-question notification body (and
|
|
3946
4124
|
* thus the Attention feed) instead of a generic string. Optional: older
|
|
3947
4125
|
* agents omit it and the server falls back to the generic wording.
|
|
3948
4126
|
*/
|
|
3949
|
-
questionText:
|
|
4127
|
+
questionText: z42.string().optional()
|
|
3950
4128
|
});
|
|
3951
|
-
var NotifyAgentVersionRequestSchema =
|
|
3952
|
-
sessionId:
|
|
3953
|
-
agentVersion:
|
|
4129
|
+
var NotifyAgentVersionRequestSchema = z42.object({
|
|
4130
|
+
sessionId: z42.string(),
|
|
4131
|
+
agentVersion: z42.string()
|
|
3954
4132
|
});
|
|
3955
|
-
var DiscoveredPortSchema =
|
|
3956
|
-
port:
|
|
3957
|
-
label:
|
|
3958
|
-
protocol:
|
|
3959
|
-
detectedAt:
|
|
4133
|
+
var DiscoveredPortSchema = z42.object({
|
|
4134
|
+
port: z42.number().int().min(1).max(65535),
|
|
4135
|
+
label: z42.string().min(1).max(64).optional(),
|
|
4136
|
+
protocol: z42.enum(["http", "tcp"]).optional(),
|
|
4137
|
+
detectedAt: z42.string()
|
|
3960
4138
|
});
|
|
3961
|
-
var ReportDiscoveredPortsRequestSchema =
|
|
3962
|
-
sessionId:
|
|
3963
|
-
ports:
|
|
4139
|
+
var ReportDiscoveredPortsRequestSchema = z42.object({
|
|
4140
|
+
sessionId: z42.string(),
|
|
4141
|
+
ports: z42.array(DiscoveredPortSchema).max(64)
|
|
3964
4142
|
});
|
|
3965
|
-
var ReportBootMilestoneRequestSchema =
|
|
3966
|
-
sessionId:
|
|
3967
|
-
key:
|
|
4143
|
+
var ReportBootMilestoneRequestSchema = z42.object({
|
|
4144
|
+
sessionId: z42.string(),
|
|
4145
|
+
key: z42.string().max(64)
|
|
3968
4146
|
});
|
|
3969
|
-
var CreateSubtaskRequestSchema =
|
|
3970
|
-
sessionId:
|
|
3971
|
-
title:
|
|
4147
|
+
var CreateSubtaskRequestSchema = z42.object({
|
|
4148
|
+
sessionId: z42.string(),
|
|
4149
|
+
title: z42.string().min(1),
|
|
3972
4150
|
description: cardDescription,
|
|
3973
|
-
plan:
|
|
3974
|
-
storyPointValue:
|
|
3975
|
-
ordinal:
|
|
3976
|
-
followParentStatus:
|
|
4151
|
+
plan: z42.string().optional(),
|
|
4152
|
+
storyPointValue: z42.number().int().positive().optional(),
|
|
4153
|
+
ordinal: z42.number().int().nonnegative().optional(),
|
|
4154
|
+
followParentStatus: z42.boolean().optional(),
|
|
3977
4155
|
/** Sibling subtask ids or slugs this subtask blocks on (explicit dependency
|
|
3978
4156
|
* metadata — preferred over encoding order in plan text / ordinal). */
|
|
3979
|
-
dependsOn:
|
|
4157
|
+
dependsOn: z42.array(z42.string().min(1)).max(32).optional(),
|
|
3980
4158
|
/** Glossary tag names to assign to the child. Unmatched names come back in
|
|
3981
4159
|
* the response rather than failing the create. */
|
|
3982
|
-
tags:
|
|
4160
|
+
tags: z42.array(z42.string().min(1)).max(10).optional()
|
|
3983
4161
|
});
|
|
3984
|
-
var UpdateSubtaskRequestSchema =
|
|
3985
|
-
sessionId:
|
|
3986
|
-
subtaskId:
|
|
3987
|
-
title:
|
|
4162
|
+
var UpdateSubtaskRequestSchema = z42.object({
|
|
4163
|
+
sessionId: z42.string(),
|
|
4164
|
+
subtaskId: z42.string(),
|
|
4165
|
+
title: z42.string().min(1).optional(),
|
|
3988
4166
|
description: cardDescription,
|
|
3989
|
-
plan:
|
|
4167
|
+
plan: z42.string().optional(),
|
|
3990
4168
|
/** Orchestration statuses only ("Planning" | "Open") — the pack parent's
|
|
3991
4169
|
* sanctioned promotion path. Execution statuses stay with the build
|
|
3992
4170
|
* pipeline / force_update_task_status. Enforced server-side. */
|
|
3993
|
-
status:
|
|
4171
|
+
status: z42.string().optional(),
|
|
3994
4172
|
/** Assign a project agent to the child — accepts the agent's id or exact
|
|
3995
4173
|
* name; resolved against the parent task's project server-side. */
|
|
3996
|
-
agentIdOrName:
|
|
3997
|
-
storyPointValue:
|
|
3998
|
-
followParentStatus:
|
|
4174
|
+
agentIdOrName: z42.string().min(1).optional(),
|
|
4175
|
+
storyPointValue: z42.number().int().positive().optional(),
|
|
4176
|
+
followParentStatus: z42.boolean().optional(),
|
|
3999
4177
|
/** Replace this subtask's dependency edges with these sibling ids/slugs.
|
|
4000
4178
|
* Empty array clears all. Omit to leave dependencies unchanged. */
|
|
4001
|
-
dependsOn:
|
|
4179
|
+
dependsOn: z42.array(z42.string().min(1)).max(32).optional()
|
|
4002
4180
|
});
|
|
4003
|
-
var DeleteSubtaskRequestSchema =
|
|
4004
|
-
sessionId:
|
|
4005
|
-
subtaskId:
|
|
4181
|
+
var DeleteSubtaskRequestSchema = z42.object({
|
|
4182
|
+
sessionId: z42.string(),
|
|
4183
|
+
subtaskId: z42.string()
|
|
4006
4184
|
});
|
|
4007
|
-
var SetSubtaskParentRequestSchema =
|
|
4008
|
-
sessionId:
|
|
4009
|
-
taskId:
|
|
4010
|
-
detach:
|
|
4011
|
-
ordinal:
|
|
4012
|
-
followParentStatus:
|
|
4185
|
+
var SetSubtaskParentRequestSchema = z42.object({
|
|
4186
|
+
sessionId: z42.string(),
|
|
4187
|
+
taskId: z42.string().min(1),
|
|
4188
|
+
detach: z42.boolean().optional(),
|
|
4189
|
+
ordinal: z42.number().int().nonnegative().optional(),
|
|
4190
|
+
followParentStatus: z42.boolean().optional()
|
|
4013
4191
|
});
|
|
4014
|
-
var GetTaskPropertiesRequestSchema =
|
|
4015
|
-
sessionId:
|
|
4192
|
+
var GetTaskPropertiesRequestSchema = z42.object({
|
|
4193
|
+
sessionId: z42.string()
|
|
4016
4194
|
});
|
|
4017
|
-
var UpdateTaskFieldsRequestSchema =
|
|
4018
|
-
sessionId:
|
|
4019
|
-
plan:
|
|
4195
|
+
var UpdateTaskFieldsRequestSchema = z42.object({
|
|
4196
|
+
sessionId: z42.string(),
|
|
4197
|
+
plan: z42.string().optional(),
|
|
4020
4198
|
description: cardDescription
|
|
4021
4199
|
});
|
|
4022
|
-
var UpdateTaskPropertiesRequestSchema =
|
|
4023
|
-
sessionId:
|
|
4024
|
-
title:
|
|
4025
|
-
storyPointValue:
|
|
4026
|
-
tagIds:
|
|
4027
|
-
tagNames:
|
|
4028
|
-
githubPRUrl:
|
|
4029
|
-
githubBranch:
|
|
4200
|
+
var UpdateTaskPropertiesRequestSchema = z42.object({
|
|
4201
|
+
sessionId: z42.string(),
|
|
4202
|
+
title: z42.string().optional(),
|
|
4203
|
+
storyPointValue: z42.number().int().positive().optional(),
|
|
4204
|
+
tagIds: z42.array(z42.string()).optional(),
|
|
4205
|
+
tagNames: z42.array(z42.string()).optional(),
|
|
4206
|
+
githubPRUrl: z42.string().url().optional(),
|
|
4207
|
+
githubBranch: z42.string().optional(),
|
|
4030
4208
|
// Canonical risk level, or null to clear — same semantics as the headless
|
|
4031
4209
|
// update_task boundary (resolved to the project's Risk row in the handler).
|
|
4032
4210
|
risk: riskLevelSchema.nullable().optional()
|
|
4033
4211
|
});
|
|
4034
|
-
var ListIconsRequestSchema =
|
|
4035
|
-
sessionId:
|
|
4212
|
+
var ListIconsRequestSchema = z42.object({
|
|
4213
|
+
sessionId: z42.string()
|
|
4036
4214
|
});
|
|
4037
|
-
var GenerateTaskIconRequestSchema =
|
|
4038
|
-
sessionId:
|
|
4039
|
-
prompt:
|
|
4040
|
-
aspectRatio:
|
|
4215
|
+
var GenerateTaskIconRequestSchema = z42.object({
|
|
4216
|
+
sessionId: z42.string(),
|
|
4217
|
+
prompt: z42.string().min(1),
|
|
4218
|
+
aspectRatio: z42.string().optional()
|
|
4041
4219
|
});
|
|
4042
|
-
var SearchFaIconsRequestSchema =
|
|
4043
|
-
sessionId:
|
|
4044
|
-
query:
|
|
4045
|
-
first:
|
|
4220
|
+
var SearchFaIconsRequestSchema = z42.object({
|
|
4221
|
+
sessionId: z42.string(),
|
|
4222
|
+
query: z42.string().min(1),
|
|
4223
|
+
first: z42.number().int().positive().optional()
|
|
4046
4224
|
});
|
|
4047
|
-
var PickFaIconRequestSchema =
|
|
4048
|
-
sessionId:
|
|
4049
|
-
fontAwesomeId:
|
|
4050
|
-
fontAwesomeStyle:
|
|
4225
|
+
var PickFaIconRequestSchema = z42.object({
|
|
4226
|
+
sessionId: z42.string(),
|
|
4227
|
+
fontAwesomeId: z42.string().min(1),
|
|
4228
|
+
fontAwesomeStyle: z42.string().optional()
|
|
4051
4229
|
});
|
|
4052
|
-
var CreateFollowUpTaskRequestSchema =
|
|
4053
|
-
sessionId:
|
|
4054
|
-
title:
|
|
4230
|
+
var CreateFollowUpTaskRequestSchema = z42.object({
|
|
4231
|
+
sessionId: z42.string(),
|
|
4232
|
+
title: z42.string().min(1),
|
|
4055
4233
|
description: cardDescription,
|
|
4056
|
-
plan:
|
|
4057
|
-
storyPointValue:
|
|
4234
|
+
plan: z42.string().optional(),
|
|
4235
|
+
storyPointValue: z42.number().int().positive().optional()
|
|
4058
4236
|
});
|
|
4059
|
-
var AddDependencyRequestSchema =
|
|
4060
|
-
sessionId:
|
|
4061
|
-
dependsOnSlugOrId:
|
|
4237
|
+
var AddDependencyRequestSchema = z42.object({
|
|
4238
|
+
sessionId: z42.string(),
|
|
4239
|
+
dependsOnSlugOrId: z42.string()
|
|
4062
4240
|
});
|
|
4063
|
-
var RemoveDependencyRequestSchema =
|
|
4064
|
-
sessionId:
|
|
4065
|
-
dependsOnSlugOrId:
|
|
4241
|
+
var RemoveDependencyRequestSchema = z42.object({
|
|
4242
|
+
sessionId: z42.string(),
|
|
4243
|
+
dependsOnSlugOrId: z42.string()
|
|
4066
4244
|
});
|
|
4067
|
-
var CreateSuggestionRequestSchema =
|
|
4068
|
-
sessionId:
|
|
4069
|
-
title:
|
|
4245
|
+
var CreateSuggestionRequestSchema = z42.object({
|
|
4246
|
+
sessionId: z42.string(),
|
|
4247
|
+
title: z42.string().min(1),
|
|
4070
4248
|
description: cardDescription,
|
|
4071
|
-
tagNames:
|
|
4249
|
+
tagNames: z42.array(z42.string()).optional()
|
|
4072
4250
|
});
|
|
4073
|
-
var VoteSuggestionRequestSchema =
|
|
4074
|
-
sessionId:
|
|
4075
|
-
suggestionId:
|
|
4076
|
-
value:
|
|
4251
|
+
var VoteSuggestionRequestSchema = z42.object({
|
|
4252
|
+
sessionId: z42.string(),
|
|
4253
|
+
suggestionId: z42.string(),
|
|
4254
|
+
value: z42.union([z42.literal(1), z42.literal(-1)])
|
|
4077
4255
|
});
|
|
4078
|
-
var TriggerIdentificationRequestSchema =
|
|
4079
|
-
sessionId:
|
|
4256
|
+
var TriggerIdentificationRequestSchema = z42.object({
|
|
4257
|
+
sessionId: z42.string()
|
|
4080
4258
|
});
|
|
4081
|
-
var HandoffToImplementerRequestSchema =
|
|
4082
|
-
sessionId:
|
|
4259
|
+
var HandoffToImplementerRequestSchema = z42.object({
|
|
4260
|
+
sessionId: z42.string(),
|
|
4083
4261
|
// Optional difficulty sizing — sets the task's story points before resolving
|
|
4084
4262
|
// the matched implementer agent. Omit to hand off using the task's current
|
|
4085
4263
|
// story points (or the project's default task agent when unsized).
|
|
4086
|
-
storyPoints:
|
|
4264
|
+
storyPoints: z42.number().int().positive().optional(),
|
|
4087
4265
|
// Optional kickoff note posted to the task chat alongside the handoff notice.
|
|
4088
|
-
message:
|
|
4266
|
+
message: z42.string().optional()
|
|
4089
4267
|
});
|
|
4090
|
-
var SubmitCodeReviewResultRequestSchema =
|
|
4091
|
-
sessionId:
|
|
4092
|
-
approved:
|
|
4093
|
-
content:
|
|
4268
|
+
var SubmitCodeReviewResultRequestSchema = z42.object({
|
|
4269
|
+
sessionId: z42.string(),
|
|
4270
|
+
approved: z42.boolean(),
|
|
4271
|
+
content: z42.string(),
|
|
4094
4272
|
// Canonical risk level the reviewer assigned to this change. Required on every
|
|
4095
4273
|
// verdict — the reviewer must judge it. Applied authoritatively server-side
|
|
4096
4274
|
// (may raise OR lower an already-set value; the reviewer has that authority).
|
|
@@ -4098,244 +4276,195 @@ var SubmitCodeReviewResultRequestSchema = z32.object({
|
|
|
4098
4276
|
// The commit SHA the reviewer actually reviewed. When present, the verdict is
|
|
4099
4277
|
// rejected unless the task is still at this SHA (guards against a late
|
|
4100
4278
|
// old-SHA verdict overwriting a newer review cycle).
|
|
4101
|
-
reviewedSha:
|
|
4279
|
+
reviewedSha: z42.string().optional()
|
|
4102
4280
|
});
|
|
4103
|
-
var CycleCodingAgentKeyRequestSchema =
|
|
4104
|
-
sessionId:
|
|
4105
|
-
rateLimitType:
|
|
4106
|
-
resetsAt:
|
|
4281
|
+
var CycleCodingAgentKeyRequestSchema = z42.object({
|
|
4282
|
+
sessionId: z42.string(),
|
|
4283
|
+
rateLimitType: z42.string(),
|
|
4284
|
+
resetsAt: z42.string().optional()
|
|
4107
4285
|
});
|
|
4108
|
-
var PostChildChatMessageRequestSchema =
|
|
4109
|
-
sessionId:
|
|
4110
|
-
childTaskId:
|
|
4111
|
-
message:
|
|
4286
|
+
var PostChildChatMessageRequestSchema = z42.object({
|
|
4287
|
+
sessionId: z42.string(),
|
|
4288
|
+
childTaskId: z42.string(),
|
|
4289
|
+
message: z42.string().min(1)
|
|
4112
4290
|
});
|
|
4113
|
-
var UpdateChildStatusRequestSchema =
|
|
4114
|
-
sessionId:
|
|
4115
|
-
childTaskId:
|
|
4116
|
-
status:
|
|
4291
|
+
var UpdateChildStatusRequestSchema = z42.object({
|
|
4292
|
+
sessionId: z42.string(),
|
|
4293
|
+
childTaskId: z42.string(),
|
|
4294
|
+
status: z42.string()
|
|
4117
4295
|
});
|
|
4118
|
-
var GetAgentStatusRequestSchema =
|
|
4119
|
-
taskId:
|
|
4296
|
+
var GetAgentStatusRequestSchema = z42.object({
|
|
4297
|
+
taskId: z42.string()
|
|
4120
4298
|
});
|
|
4121
|
-
var GetUiCliHistoryRequestSchema =
|
|
4122
|
-
taskId:
|
|
4299
|
+
var GetUiCliHistoryRequestSchema = z42.object({
|
|
4300
|
+
taskId: z42.string()
|
|
4123
4301
|
});
|
|
4124
|
-
var GetActivePtySessionRequestSchema =
|
|
4125
|
-
taskId:
|
|
4302
|
+
var GetActivePtySessionRequestSchema = z42.object({
|
|
4303
|
+
taskId: z42.string()
|
|
4126
4304
|
});
|
|
4127
|
-
var ListActivePtySessionsRequestSchema =
|
|
4128
|
-
taskId:
|
|
4305
|
+
var ListActivePtySessionsRequestSchema = z42.object({
|
|
4306
|
+
taskId: z42.string()
|
|
4129
4307
|
});
|
|
4130
|
-
var SendSoftStopRequestSchema =
|
|
4131
|
-
taskId:
|
|
4308
|
+
var SendSoftStopRequestSchema = z42.object({
|
|
4309
|
+
taskId: z42.string()
|
|
4132
4310
|
});
|
|
4133
|
-
var StopTaskSessionRequestSchema =
|
|
4134
|
-
taskId:
|
|
4135
|
-
sessionId:
|
|
4311
|
+
var StopTaskSessionRequestSchema = z42.object({
|
|
4312
|
+
taskId: z42.string(),
|
|
4313
|
+
sessionId: z42.string()
|
|
4136
4314
|
});
|
|
4137
|
-
var FlushTaskQueueRequestSchema =
|
|
4138
|
-
taskId:
|
|
4139
|
-
softStop:
|
|
4315
|
+
var FlushTaskQueueRequestSchema = z42.object({
|
|
4316
|
+
taskId: z42.string(),
|
|
4317
|
+
softStop: z42.boolean().optional()
|
|
4140
4318
|
});
|
|
4141
|
-
var CancelTaskQueuedMessageRequestSchema =
|
|
4142
|
-
taskId:
|
|
4143
|
-
messageId:
|
|
4319
|
+
var CancelTaskQueuedMessageRequestSchema = z42.object({
|
|
4320
|
+
taskId: z42.string(),
|
|
4321
|
+
messageId: z42.string()
|
|
4144
4322
|
});
|
|
4145
|
-
var FlushSingleQueuedMessageRequestSchema =
|
|
4146
|
-
taskId:
|
|
4147
|
-
messageId:
|
|
4148
|
-
softStop:
|
|
4323
|
+
var FlushSingleQueuedMessageRequestSchema = z42.object({
|
|
4324
|
+
taskId: z42.string(),
|
|
4325
|
+
messageId: z42.string(),
|
|
4326
|
+
softStop: z42.boolean().optional()
|
|
4149
4327
|
});
|
|
4150
|
-
var AnswerAgentQuestionRequestSchema =
|
|
4151
|
-
taskId:
|
|
4152
|
-
requestId:
|
|
4153
|
-
answers:
|
|
4328
|
+
var AnswerAgentQuestionRequestSchema = z42.object({
|
|
4329
|
+
taskId: z42.string(),
|
|
4330
|
+
requestId: z42.string(),
|
|
4331
|
+
answers: z42.record(z42.string(), z42.string())
|
|
4154
4332
|
});
|
|
4155
|
-
var ClearAgentTodosRequestSchema =
|
|
4156
|
-
taskId:
|
|
4333
|
+
var ClearAgentTodosRequestSchema = z42.object({
|
|
4334
|
+
taskId: z42.string()
|
|
4157
4335
|
});
|
|
4158
|
-
var AgentQuestionOptionSchema =
|
|
4159
|
-
label:
|
|
4160
|
-
description:
|
|
4161
|
-
preview:
|
|
4336
|
+
var AgentQuestionOptionSchema = z42.object({
|
|
4337
|
+
label: z42.string(),
|
|
4338
|
+
description: z42.string(),
|
|
4339
|
+
preview: z42.string().optional()
|
|
4162
4340
|
});
|
|
4163
|
-
var AgentQuestionSchema =
|
|
4164
|
-
question:
|
|
4165
|
-
header:
|
|
4166
|
-
options:
|
|
4167
|
-
multiSelect:
|
|
4341
|
+
var AgentQuestionSchema = z42.object({
|
|
4342
|
+
question: z42.string(),
|
|
4343
|
+
header: z42.string(),
|
|
4344
|
+
options: z42.array(AgentQuestionOptionSchema),
|
|
4345
|
+
multiSelect: z42.boolean().optional()
|
|
4168
4346
|
});
|
|
4169
|
-
var AskUserQuestionRequestSchema =
|
|
4170
|
-
sessionId:
|
|
4171
|
-
question:
|
|
4172
|
-
requestId:
|
|
4173
|
-
questions:
|
|
4347
|
+
var AskUserQuestionRequestSchema = z42.object({
|
|
4348
|
+
sessionId: z42.string(),
|
|
4349
|
+
question: z42.string().min(1),
|
|
4350
|
+
requestId: z42.string().min(1),
|
|
4351
|
+
questions: z42.array(AgentQuestionSchema).min(1)
|
|
4174
4352
|
});
|
|
4175
|
-
var PostAgentMessageRequestSchema =
|
|
4176
|
-
sessionId:
|
|
4177
|
-
content:
|
|
4178
|
-
milestone:
|
|
4353
|
+
var PostAgentMessageRequestSchema = z42.object({
|
|
4354
|
+
sessionId: z42.string().min(1),
|
|
4355
|
+
content: z42.string(),
|
|
4356
|
+
milestone: z42.enum(["plan_ready", "implementation_complete", "blocked"]).optional()
|
|
4179
4357
|
});
|
|
4180
|
-
var EmitAgentEventRequestSchema =
|
|
4181
|
-
sessionId:
|
|
4182
|
-
events:
|
|
4358
|
+
var EmitAgentEventRequestSchema = z42.object({
|
|
4359
|
+
sessionId: z42.string(),
|
|
4360
|
+
events: z42.array(AgentEventSchema).max(500)
|
|
4183
4361
|
});
|
|
4184
|
-
var RefreshGithubTokenRequestSchema =
|
|
4185
|
-
sessionId:
|
|
4186
|
-
forceFresh:
|
|
4362
|
+
var RefreshGithubTokenRequestSchema = z42.object({
|
|
4363
|
+
sessionId: z42.string(),
|
|
4364
|
+
forceFresh: z42.boolean().optional()
|
|
4187
4365
|
});
|
|
4188
|
-
var ReportCredentialFailureRequestSchema =
|
|
4189
|
-
sessionId:
|
|
4190
|
-
error:
|
|
4191
|
-
tokenShape:
|
|
4192
|
-
healed:
|
|
4366
|
+
var ReportCredentialFailureRequestSchema = z42.object({
|
|
4367
|
+
sessionId: z42.string(),
|
|
4368
|
+
error: z42.string().max(2e3).optional(),
|
|
4369
|
+
tokenShape: z42.string().max(500).optional(),
|
|
4370
|
+
healed: z42.boolean().optional()
|
|
4193
4371
|
});
|
|
4194
|
-
var ReportReviewSpawnFailureRequestSchema =
|
|
4195
|
-
sessionId:
|
|
4196
|
-
reviewSessionId:
|
|
4197
|
-
error:
|
|
4372
|
+
var ReportReviewSpawnFailureRequestSchema = z42.object({
|
|
4373
|
+
sessionId: z42.string(),
|
|
4374
|
+
reviewSessionId: z42.string(),
|
|
4375
|
+
error: z42.string().max(2e3).optional()
|
|
4198
4376
|
});
|
|
4199
4377
|
var ReportBuilderSpawnFailureRequestSchema = ReportReviewSpawnFailureRequestSchema.omit({
|
|
4200
4378
|
reviewSessionId: true
|
|
4201
|
-
}).extend({ buildSessionId:
|
|
4202
|
-
var SpawnTaskSessionRequestSchema =
|
|
4203
|
-
taskId:
|
|
4204
|
-
kind:
|
|
4379
|
+
}).extend({ buildSessionId: z42.string() });
|
|
4380
|
+
var SpawnTaskSessionRequestSchema = z42.object({
|
|
4381
|
+
taskId: z42.string(),
|
|
4382
|
+
kind: z42.enum(["tui", "shell"])
|
|
4205
4383
|
});
|
|
4206
|
-
var StartCodeReviewRequestSchema =
|
|
4207
|
-
taskId:
|
|
4208
|
-
force:
|
|
4384
|
+
var StartCodeReviewRequestSchema = z42.object({
|
|
4385
|
+
taskId: z42.string(),
|
|
4386
|
+
force: z42.boolean().optional()
|
|
4209
4387
|
});
|
|
4210
|
-
var StopCodeReviewRequestSchema =
|
|
4211
|
-
taskId:
|
|
4388
|
+
var StopCodeReviewRequestSchema = z42.object({
|
|
4389
|
+
taskId: z42.string()
|
|
4212
4390
|
});
|
|
4213
|
-
var ReportSessionSpawnFailureRequestSchema =
|
|
4214
|
-
sessionId:
|
|
4215
|
-
spawnedSessionId:
|
|
4216
|
-
error:
|
|
4391
|
+
var ReportSessionSpawnFailureRequestSchema = z42.object({
|
|
4392
|
+
sessionId: z42.string(),
|
|
4393
|
+
spawnedSessionId: z42.string(),
|
|
4394
|
+
error: z42.string().max(2e3).optional()
|
|
4217
4395
|
});
|
|
4218
|
-
var RefreshGithubTokenResponseSchema =
|
|
4219
|
-
token:
|
|
4396
|
+
var RefreshGithubTokenResponseSchema = z42.object({
|
|
4397
|
+
token: z42.string()
|
|
4220
4398
|
});
|
|
4221
4399
|
var PTY_FRAME_MAX_CHARS = 256 * 1024;
|
|
4222
4400
|
var PTY_MAX_DIMENSION = 1e3;
|
|
4223
|
-
var PtyOutputRequestSchema =
|
|
4224
|
-
sessionId:
|
|
4225
|
-
data:
|
|
4226
|
-
cols:
|
|
4227
|
-
rows:
|
|
4401
|
+
var PtyOutputRequestSchema = z42.object({
|
|
4402
|
+
sessionId: z42.string(),
|
|
4403
|
+
data: z42.string().max(PTY_FRAME_MAX_CHARS),
|
|
4404
|
+
cols: z42.number().int().positive().max(PTY_MAX_DIMENSION).optional(),
|
|
4405
|
+
rows: z42.number().int().positive().max(PTY_MAX_DIMENSION).optional()
|
|
4228
4406
|
});
|
|
4229
|
-
var PtyEndedRequestSchema =
|
|
4230
|
-
sessionId:
|
|
4407
|
+
var PtyEndedRequestSchema = z42.object({
|
|
4408
|
+
sessionId: z42.string()
|
|
4231
4409
|
});
|
|
4232
|
-
var PtyInputRequestSchema =
|
|
4233
|
-
sessionId:
|
|
4234
|
-
data:
|
|
4410
|
+
var PtyInputRequestSchema = z42.object({
|
|
4411
|
+
sessionId: z42.string(),
|
|
4412
|
+
data: z42.string().max(PTY_FRAME_MAX_CHARS)
|
|
4235
4413
|
});
|
|
4236
|
-
var PtyResizeRequestSchema =
|
|
4237
|
-
sessionId:
|
|
4238
|
-
cols:
|
|
4239
|
-
rows:
|
|
4414
|
+
var PtyResizeRequestSchema = z42.object({
|
|
4415
|
+
sessionId: z42.string(),
|
|
4416
|
+
cols: z42.number().int().positive().max(PTY_MAX_DIMENSION),
|
|
4417
|
+
rows: z42.number().int().positive().max(PTY_MAX_DIMENSION)
|
|
4240
4418
|
});
|
|
4241
|
-
var PtyAttachRequestSchema =
|
|
4242
|
-
sessionId:
|
|
4419
|
+
var PtyAttachRequestSchema = z42.object({
|
|
4420
|
+
sessionId: z42.string()
|
|
4243
4421
|
});
|
|
4244
|
-
var ReportPtyStreamRequestSchema =
|
|
4245
|
-
sessionId:
|
|
4246
|
-
port:
|
|
4422
|
+
var ReportPtyStreamRequestSchema = z42.object({
|
|
4423
|
+
sessionId: z42.string(),
|
|
4424
|
+
port: z42.number().int().positive().max(65535).nullable()
|
|
4247
4425
|
});
|
|
4248
|
-
var ReportPtyInputRequestSchema =
|
|
4249
|
-
sessionId:
|
|
4426
|
+
var ReportPtyInputRequestSchema = z42.object({
|
|
4427
|
+
sessionId: z42.string()
|
|
4250
4428
|
});
|
|
4251
|
-
var GetPtyStreamEndpointRequestSchema =
|
|
4252
|
-
sessionId:
|
|
4429
|
+
var GetPtyStreamEndpointRequestSchema = z42.object({
|
|
4430
|
+
sessionId: z42.string()
|
|
4253
4431
|
});
|
|
4254
|
-
var
|
|
4255
|
-
|
|
4256
|
-
|
|
4257
|
-
model: z32.string().max(200),
|
|
4258
|
-
claudeSessionId: z32.string().max(100).optional()
|
|
4259
|
-
}),
|
|
4260
|
-
z32.object({
|
|
4261
|
-
kind: z32.literal("user_text"),
|
|
4262
|
-
text: z32.string().max(16384),
|
|
4263
|
-
// Set by the SERVER (never the agent) when this prompt was injected by
|
|
4264
|
-
// Conveyor rather than typed by a human — the routed message's `source`
|
|
4265
|
-
// (`ci_success`, `review_trigger`, `automated_feedback`, …). The agent
|
|
4266
|
-
// pastes automated messages into the TUI exactly like human prompts, so the
|
|
4267
|
-
// CLI records both as plain transcript `user` records; without this the
|
|
4268
|
-
// builder chat renders "All CI checks passed on your PR." as the human's
|
|
4269
|
-
// own bubble. Absent ⇒ a genuine human prompt.
|
|
4270
|
-
source: z32.string().max(60).optional()
|
|
4271
|
-
}),
|
|
4272
|
-
z32.object({ kind: z32.literal("assistant_text"), text: z32.string().max(16384) }),
|
|
4273
|
-
z32.object({
|
|
4274
|
-
kind: z32.literal("tool_use"),
|
|
4275
|
-
name: z32.string().max(200),
|
|
4276
|
-
// Compact preview: JSON.stringify(input) truncated agent-side. The cap
|
|
4277
|
-
// matches the text events because AskUserQuestion payloads ride this field
|
|
4278
|
-
// and the web lifts them into an interactive card — a tight cap forced
|
|
4279
|
-
// option descriptions down to 80 chars, making them unreadable. Every
|
|
4280
|
-
// other tool keeps a far smaller agent-side budget (`TOOL_INPUT_MAX` in
|
|
4281
|
-
// `chat-record-mapper.ts`), so the ring does not grow for normal calls.
|
|
4282
|
-
input: z32.string().max(16384),
|
|
4283
|
-
// Transcript tool_use block id — lets the client pair the tool_result.
|
|
4284
|
-
id: z32.string().max(100).optional()
|
|
4285
|
-
}),
|
|
4286
|
-
z32.object({
|
|
4287
|
-
kind: z32.literal("tool_result"),
|
|
4288
|
-
// tool_use block id this result answers (absent on malformed records).
|
|
4289
|
-
toolUseId: z32.string().max(100).optional(),
|
|
4290
|
-
// Compact output preview, truncated agent-side.
|
|
4291
|
-
output: z32.string().max(2e3),
|
|
4292
|
-
isError: z32.boolean().optional()
|
|
4293
|
-
}),
|
|
4294
|
-
z32.object({ kind: z32.literal("turn_end") })
|
|
4295
|
-
]);
|
|
4296
|
-
var PtyChatEventRequestSchema = z32.object({
|
|
4297
|
-
sessionId: z32.string(),
|
|
4298
|
-
event: PtyChatEventPayloadSchema
|
|
4299
|
-
});
|
|
4300
|
-
var PtyChatAttachRequestSchema = z32.object({
|
|
4301
|
-
sessionId: z32.string()
|
|
4302
|
-
});
|
|
4303
|
-
var CreatePRResponseSchema = z32.object({
|
|
4304
|
-
prNumber: z32.number().int().positive(),
|
|
4305
|
-
prUrl: z32.string().url(),
|
|
4432
|
+
var CreatePRResponseSchema = z42.object({
|
|
4433
|
+
prNumber: z42.number().int().positive(),
|
|
4434
|
+
prUrl: z42.string().url(),
|
|
4306
4435
|
/** Advisory glossary-upkeep note derived from the PR's changed files matched
|
|
4307
4436
|
* against tag contextPaths — rendered into the tool result, never stored. */
|
|
4308
|
-
glossaryNote:
|
|
4437
|
+
glossaryNote: z42.string().optional()
|
|
4309
4438
|
});
|
|
4310
|
-
var PostToChatResponseSchema =
|
|
4311
|
-
messageId:
|
|
4439
|
+
var PostToChatResponseSchema = z42.object({
|
|
4440
|
+
messageId: z42.string()
|
|
4312
4441
|
});
|
|
4313
|
-
var UpdateTaskStatusResponseSchema =
|
|
4314
|
-
taskId:
|
|
4315
|
-
status:
|
|
4442
|
+
var UpdateTaskStatusResponseSchema = z42.object({
|
|
4443
|
+
taskId: z42.string(),
|
|
4444
|
+
status: z42.string()
|
|
4316
4445
|
});
|
|
4317
|
-
var StoreSessionIdResponseSchema =
|
|
4318
|
-
success:
|
|
4446
|
+
var StoreSessionIdResponseSchema = z42.object({
|
|
4447
|
+
success: z42.boolean()
|
|
4319
4448
|
});
|
|
4320
|
-
var HeartbeatResponseSchema =
|
|
4321
|
-
acknowledged:
|
|
4449
|
+
var HeartbeatResponseSchema = z42.object({
|
|
4450
|
+
acknowledged: z42.boolean()
|
|
4322
4451
|
});
|
|
4323
|
-
var SessionStartResponseSchema =
|
|
4324
|
-
sessionId:
|
|
4325
|
-
startedAt:
|
|
4452
|
+
var SessionStartResponseSchema = z42.object({
|
|
4453
|
+
sessionId: z42.string(),
|
|
4454
|
+
startedAt: z42.string()
|
|
4326
4455
|
});
|
|
4327
|
-
var SessionStopResponseSchema =
|
|
4328
|
-
sessionId:
|
|
4329
|
-
stoppedAt:
|
|
4456
|
+
var SessionStopResponseSchema = z42.object({
|
|
4457
|
+
sessionId: z42.string(),
|
|
4458
|
+
stoppedAt: z42.string()
|
|
4330
4459
|
});
|
|
4331
|
-
var DeleteSubtaskResponseSchema =
|
|
4332
|
-
deleted:
|
|
4460
|
+
var DeleteSubtaskResponseSchema = z42.object({
|
|
4461
|
+
deleted: z42.boolean()
|
|
4333
4462
|
});
|
|
4334
|
-
var ParkOnCheckResultRequestSchema =
|
|
4335
|
-
sessionId:
|
|
4336
|
-
sha:
|
|
4337
|
-
prNumber:
|
|
4338
|
-
timeoutMinutes:
|
|
4463
|
+
var ParkOnCheckResultRequestSchema = z52.object({
|
|
4464
|
+
sessionId: z52.string(),
|
|
4465
|
+
sha: z52.string().regex(/^[0-9a-f]{7,40}$/i).optional(),
|
|
4466
|
+
prNumber: z52.number().int().positive().optional(),
|
|
4467
|
+
timeoutMinutes: z52.number().int().min(1).max(MAX_CI_WAIT_TIMEOUT_MINUTES).optional()
|
|
4339
4468
|
});
|
|
4340
4469
|
var GIT_BRANCH_NAME_MAX = 255;
|
|
4341
4470
|
var GIT_BRANCH_NAME_MESSAGE = "Invalid git branch name \u2014 use only letters, numbers, '.', '_', '/' and '-', starting with a letter or number, with no '..', '@{' or '//', and no trailing '/', '-', '.' or '.lock'";
|
|
@@ -4349,97 +4478,97 @@ function isValidGitBranchName(name) {
|
|
|
4349
4478
|
if (name.endsWith(".") || name.endsWith(".lock")) return false;
|
|
4350
4479
|
return true;
|
|
4351
4480
|
}
|
|
4352
|
-
var cardDescription2 =
|
|
4353
|
-
var ListAccessibleProjectsRequestSchema =
|
|
4354
|
-
pageSize:
|
|
4481
|
+
var cardDescription2 = z62.string().max(CARD_DESCRIPTION_MAX, CARD_DESCRIPTION_LIMIT_MESSAGE).optional();
|
|
4482
|
+
var ListAccessibleProjectsRequestSchema = z62.object({
|
|
4483
|
+
pageSize: z62.number().int().positive().max(100).optional().default(100)
|
|
4355
4484
|
});
|
|
4356
|
-
var ListProjectTasksRequestSchema =
|
|
4357
|
-
projectId:
|
|
4358
|
-
status:
|
|
4485
|
+
var ListProjectTasksRequestSchema = z62.object({
|
|
4486
|
+
projectId: z62.string(),
|
|
4487
|
+
status: z62.string().optional(),
|
|
4359
4488
|
// Card types to include. Omitted/empty → defaults to ["task"] in the handler
|
|
4360
4489
|
// (mirrors searchProjectTasks) so listing doesn't surface incidents/suggestions
|
|
4361
4490
|
// unless asked. Enum validation lives at the MCP tool layer.
|
|
4362
|
-
typeFilters:
|
|
4363
|
-
assigneeId:
|
|
4364
|
-
unassigned:
|
|
4491
|
+
typeFilters: z62.array(z62.string()).optional(),
|
|
4492
|
+
assigneeId: z62.string().optional(),
|
|
4493
|
+
unassigned: z62.boolean().optional(),
|
|
4365
4494
|
// Scope to a sub-project board when provided. Unlike the board layer's `?? null`
|
|
4366
4495
|
// semantics, agents default to seeing the whole project when omitted.
|
|
4367
|
-
subProjectId:
|
|
4496
|
+
subProjectId: z62.string().nullable().optional(),
|
|
4368
4497
|
// Plain equality on the on-hold flag: true = only parked cards, false =
|
|
4369
4498
|
// exclude them, omitted = both. Deliberately NOT the board's
|
|
4370
4499
|
// includeOnHold/surfaceActiveWork bucketing — an agent sweeping a backlog
|
|
4371
4500
|
// needs the raw column, not a column projection.
|
|
4372
|
-
onHold:
|
|
4373
|
-
limit:
|
|
4501
|
+
onHold: z62.boolean().optional(),
|
|
4502
|
+
limit: z62.number().int().positive().optional().default(50)
|
|
4374
4503
|
}).refine((p) => !(p.unassigned && p.assigneeId), {
|
|
4375
4504
|
message: "Pass either assigneeId or unassigned, not both"
|
|
4376
4505
|
});
|
|
4377
|
-
var GetProjectTaskRequestSchema =
|
|
4378
|
-
projectId:
|
|
4379
|
-
taskId:
|
|
4506
|
+
var GetProjectTaskRequestSchema = z62.object({
|
|
4507
|
+
projectId: z62.string(),
|
|
4508
|
+
taskId: z62.string()
|
|
4380
4509
|
});
|
|
4381
|
-
var SearchProjectTasksRequestSchema =
|
|
4382
|
-
projectId:
|
|
4510
|
+
var SearchProjectTasksRequestSchema = z62.object({
|
|
4511
|
+
projectId: z62.string(),
|
|
4383
4512
|
// Tag names, matched case-insensitively against the project glossary.
|
|
4384
|
-
tagNames:
|
|
4513
|
+
tagNames: z62.array(z62.string()).optional(),
|
|
4385
4514
|
// How to combine tagNames: "any" (default) = carries at least one,
|
|
4386
4515
|
// "all" = carries every one.
|
|
4387
|
-
tagMatch:
|
|
4516
|
+
tagMatch: z62.enum(["any", "all"]).optional(),
|
|
4388
4517
|
// Expand each named tag to its descendants in the tag DAG before matching,
|
|
4389
4518
|
// so a parent tag sweeps its whole area. Default false.
|
|
4390
|
-
includeChildTags:
|
|
4391
|
-
searchQuery:
|
|
4392
|
-
statusFilters:
|
|
4519
|
+
includeChildTags: z62.boolean().optional(),
|
|
4520
|
+
searchQuery: z62.string().optional(),
|
|
4521
|
+
statusFilters: z62.array(z62.string()).optional(),
|
|
4393
4522
|
// Card types to include. Omitted/empty → defaults to ["task"] in the handler so
|
|
4394
4523
|
// search doesn't surface incidents/suggestions unless asked. Enum validation lives
|
|
4395
4524
|
// at the MCP tool layer (mirrors statusFilters).
|
|
4396
|
-
typeFilters:
|
|
4397
|
-
assigneeId:
|
|
4398
|
-
unassigned:
|
|
4525
|
+
typeFilters: z62.array(z62.string()).optional(),
|
|
4526
|
+
assigneeId: z62.string().optional(),
|
|
4527
|
+
unassigned: z62.boolean().optional(),
|
|
4399
4528
|
// Scope to a sub-project board when provided. Unlike the board layer's `?? null`
|
|
4400
4529
|
// semantics, agents default to seeing the whole project when omitted.
|
|
4401
|
-
subProjectId:
|
|
4402
|
-
limit:
|
|
4530
|
+
subProjectId: z62.string().nullable().optional(),
|
|
4531
|
+
limit: z62.number().int().positive().optional().default(20)
|
|
4403
4532
|
}).refine((p) => !(p.unassigned && p.assigneeId), {
|
|
4404
4533
|
message: "Pass either assigneeId or unassigned, not both"
|
|
4405
4534
|
});
|
|
4406
|
-
var ListProjectTagsRequestSchema =
|
|
4407
|
-
projectId:
|
|
4535
|
+
var ListProjectTagsRequestSchema = z62.object({
|
|
4536
|
+
projectId: z62.string(),
|
|
4408
4537
|
/** "summary" (default) omits inline context links; "full" includes them. */
|
|
4409
|
-
detail:
|
|
4538
|
+
detail: z62.enum(["summary", "full"]).optional()
|
|
4410
4539
|
});
|
|
4411
|
-
var GetProjectTagRequestSchema =
|
|
4412
|
-
projectId:
|
|
4540
|
+
var GetProjectTagRequestSchema = z62.object({
|
|
4541
|
+
projectId: z62.string(),
|
|
4413
4542
|
/** Tag id or exact (case-insensitive) tag name. */
|
|
4414
|
-
tag:
|
|
4543
|
+
tag: z62.string().min(1).max(100)
|
|
4415
4544
|
});
|
|
4416
|
-
var ListProjectTagAttachmentsRequestSchema =
|
|
4417
|
-
projectId:
|
|
4545
|
+
var ListProjectTagAttachmentsRequestSchema = z62.object({
|
|
4546
|
+
projectId: z62.string(),
|
|
4418
4547
|
/** Tag id or exact (case-insensitive) tag name. */
|
|
4419
|
-
tag:
|
|
4420
|
-
limit:
|
|
4421
|
-
offset:
|
|
4548
|
+
tag: z62.string().min(1).max(100),
|
|
4549
|
+
limit: z62.number().int().min(1).max(60).optional(),
|
|
4550
|
+
offset: z62.number().int().min(0).optional()
|
|
4422
4551
|
});
|
|
4423
|
-
var SetProjectFileTagsRequestSchema =
|
|
4424
|
-
projectId:
|
|
4425
|
-
taskId:
|
|
4426
|
-
fileId:
|
|
4427
|
-
tags:
|
|
4428
|
-
requestingUserId:
|
|
4552
|
+
var SetProjectFileTagsRequestSchema = z62.object({
|
|
4553
|
+
projectId: z62.string(),
|
|
4554
|
+
taskId: z62.string(),
|
|
4555
|
+
fileId: z62.string(),
|
|
4556
|
+
tags: z62.array(z62.string().min(1).max(MAX_FILE_TAG_LENGTH)).max(MAX_FILE_TAGS2),
|
|
4557
|
+
requestingUserId: z62.string().optional()
|
|
4429
4558
|
});
|
|
4430
|
-
var GetProjectSummaryRequestSchema =
|
|
4431
|
-
projectId:
|
|
4559
|
+
var GetProjectSummaryRequestSchema = z62.object({
|
|
4560
|
+
projectId: z62.string()
|
|
4432
4561
|
});
|
|
4433
|
-
var GetProjectOnboardingStatusRequestSchema =
|
|
4434
|
-
projectId:
|
|
4562
|
+
var GetProjectOnboardingStatusRequestSchema = z62.object({
|
|
4563
|
+
projectId: z62.string()
|
|
4435
4564
|
});
|
|
4436
|
-
var GetProjectOnboardingStepRequestSchema =
|
|
4437
|
-
projectId:
|
|
4565
|
+
var GetProjectOnboardingStepRequestSchema = z62.object({
|
|
4566
|
+
projectId: z62.string()
|
|
4438
4567
|
});
|
|
4439
|
-
var GetProjectConnectUrlsRequestSchema =
|
|
4440
|
-
projectId:
|
|
4568
|
+
var GetProjectConnectUrlsRequestSchema = z62.object({
|
|
4569
|
+
projectId: z62.string()
|
|
4441
4570
|
});
|
|
4442
|
-
var conveyorCapabilitySchema =
|
|
4571
|
+
var conveyorCapabilitySchema = z62.enum([
|
|
4443
4572
|
"read",
|
|
4444
4573
|
"create",
|
|
4445
4574
|
"update",
|
|
@@ -4447,604 +4576,621 @@ var conveyorCapabilitySchema = z52.enum([
|
|
|
4447
4576
|
"files",
|
|
4448
4577
|
"build"
|
|
4449
4578
|
]);
|
|
4450
|
-
var GetConnectionContextRequestSchema =
|
|
4451
|
-
projectId:
|
|
4579
|
+
var GetConnectionContextRequestSchema = z62.object({
|
|
4580
|
+
projectId: z62.string(),
|
|
4452
4581
|
// Optional board scope (CONVEYOR_SUBPROJECT_ID). Validated to belong to the
|
|
4453
4582
|
// project in the handler; an invalid/foreign id is reported, not silently
|
|
4454
4583
|
// dropped, so a mis-scoped connection is never presented as board-specific.
|
|
4455
|
-
subProjectId:
|
|
4584
|
+
subProjectId: z62.string().nullable().optional()
|
|
4456
4585
|
});
|
|
4457
|
-
var VerifyConnectionRequestSchema =
|
|
4458
|
-
projectId:
|
|
4459
|
-
subProjectId:
|
|
4460
|
-
intendedActions:
|
|
4586
|
+
var VerifyConnectionRequestSchema = z62.object({
|
|
4587
|
+
projectId: z62.string(),
|
|
4588
|
+
subProjectId: z62.string().nullable().optional(),
|
|
4589
|
+
intendedActions: z62.array(conveyorCapabilitySchema).optional()
|
|
4461
4590
|
});
|
|
4462
|
-
var ListAccessibleSubprojectsRequestSchema =
|
|
4463
|
-
projectId:
|
|
4591
|
+
var ListAccessibleSubprojectsRequestSchema = z62.object({
|
|
4592
|
+
projectId: z62.string()
|
|
4464
4593
|
});
|
|
4465
|
-
var CreateProjectTaskRequestSchema =
|
|
4466
|
-
projectId:
|
|
4467
|
-
title:
|
|
4594
|
+
var CreateProjectTaskRequestSchema = z62.object({
|
|
4595
|
+
projectId: z62.string(),
|
|
4596
|
+
title: z62.string().min(1),
|
|
4468
4597
|
description: cardDescription2,
|
|
4469
|
-
plan:
|
|
4470
|
-
status:
|
|
4598
|
+
plan: z62.string().optional(),
|
|
4599
|
+
status: z62.string().optional(),
|
|
4471
4600
|
// Assign to a sub-project board. Validated to belong to `projectId` in the handler.
|
|
4472
|
-
subProjectId:
|
|
4473
|
-
|
|
4601
|
+
subProjectId: z62.string().nullable().optional(),
|
|
4602
|
+
// Priority value. Resolved to the project's configured Priority row in the
|
|
4603
|
+
// handler, which rejects an unconfigured value before the card is written.
|
|
4604
|
+
priorityValue: z62.number().int().positive().optional(),
|
|
4605
|
+
requestingUserId: z62.string().optional()
|
|
4474
4606
|
});
|
|
4475
|
-
var SetProjectTaskParentRequestSchema =
|
|
4476
|
-
projectId:
|
|
4607
|
+
var SetProjectTaskParentRequestSchema = z62.object({
|
|
4608
|
+
projectId: z62.string(),
|
|
4477
4609
|
/** Card to move — id or slug. */
|
|
4478
|
-
taskId:
|
|
4610
|
+
taskId: z62.string().min(1),
|
|
4479
4611
|
/** New parent (id or slug), or null to detach. */
|
|
4480
|
-
parentTaskId:
|
|
4481
|
-
ordinal:
|
|
4482
|
-
followParentStatus:
|
|
4483
|
-
requestingUserId:
|
|
4612
|
+
parentTaskId: z62.string().min(1).nullable(),
|
|
4613
|
+
ordinal: z62.number().int().nonnegative().optional(),
|
|
4614
|
+
followParentStatus: z62.boolean().optional(),
|
|
4615
|
+
requestingUserId: z62.string().optional()
|
|
4484
4616
|
}).strict();
|
|
4485
|
-
var UpdateProjectTaskRequestSchema =
|
|
4486
|
-
projectId:
|
|
4487
|
-
taskId:
|
|
4488
|
-
title:
|
|
4617
|
+
var UpdateProjectTaskRequestSchema = z62.object({
|
|
4618
|
+
projectId: z62.string(),
|
|
4619
|
+
taskId: z62.string(),
|
|
4620
|
+
title: z62.string().optional(),
|
|
4489
4621
|
description: cardDescription2,
|
|
4490
|
-
plan:
|
|
4622
|
+
plan: z62.string().optional(),
|
|
4491
4623
|
// Enum validation lives at the MCP tool layer (mirrors createProjectTask);
|
|
4492
4624
|
// the handler routes through the shared updateStatus core (InProgress
|
|
4493
4625
|
// dependency check + cleanup/board/Slack side effects), not the stricter
|
|
4494
4626
|
// card-type-validating path the Socket.IO updateTaskStatus mutation uses.
|
|
4495
|
-
status:
|
|
4627
|
+
status: z62.string().optional(),
|
|
4496
4628
|
// Canonical risk level, or null to clear. Resolved to the project's
|
|
4497
4629
|
// configured Risk row (by rank) in the handler.
|
|
4498
4630
|
risk: riskLevelSchema.nullable().optional(),
|
|
4499
4631
|
// Story-point value, or null to clear. Resolved to the project's configured
|
|
4500
4632
|
// StoryPoint row in the handler, which rejects an unconfigured value.
|
|
4501
|
-
storyPointValue:
|
|
4502
|
-
|
|
4633
|
+
storyPointValue: z62.number().int().positive().nullable().optional(),
|
|
4634
|
+
// Priority value, or null to clear. Resolved to the project's configured
|
|
4635
|
+
// Priority row in the handler, which rejects an unconfigured value.
|
|
4636
|
+
priorityValue: z62.number().int().positive().nullable().optional(),
|
|
4637
|
+
assignedUserId: z62.string().nullish(),
|
|
4503
4638
|
// Move to a different sub-project board, or null to move to the parent board.
|
|
4504
4639
|
// Validated to belong to `projectId` in the handler.
|
|
4505
|
-
subProjectId:
|
|
4640
|
+
subProjectId: z62.string().nullable().optional(),
|
|
4506
4641
|
// Record the task's ACTUAL working branch (e.g. a locally-driven pack's
|
|
4507
4642
|
// branch, so identification never mints a competing name and pack-child
|
|
4508
4643
|
// merge handling matches reality), or null to detach. Guarded in the
|
|
4509
4644
|
// handler: the ref must exist on origin and no live workspace may be bound
|
|
4510
4645
|
// to a different branch.
|
|
4511
|
-
githubBranch:
|
|
4646
|
+
githubBranch: z62.string().min(1).max(GIT_BRANCH_NAME_MAX).refine(isValidGitBranchName, { message: GIT_BRANCH_NAME_MESSAGE }).nullable().optional(),
|
|
4512
4647
|
// Park the card on hold (true) or return it to the active board (false).
|
|
4513
4648
|
// The handler mirrors the web path's two side effects: a board re-bucket
|
|
4514
4649
|
// event, and demotion to Open when an active-work card is parked.
|
|
4515
|
-
onHold:
|
|
4516
|
-
requestingUserId:
|
|
4650
|
+
onHold: z62.boolean().optional(),
|
|
4651
|
+
requestingUserId: z62.string().optional()
|
|
4517
4652
|
}).strict().refine(
|
|
4518
|
-
(v) => v.title !== void 0 || v.description !== void 0 || v.plan !== void 0 || v.status !== void 0 || v.risk !== void 0 || v.storyPointValue !== void 0 || v.assignedUserId !== void 0 || v.subProjectId !== void 0 || v.githubBranch !== void 0 || v.onHold !== void 0,
|
|
4653
|
+
(v) => v.title !== void 0 || v.description !== void 0 || v.plan !== void 0 || v.status !== void 0 || v.risk !== void 0 || v.storyPointValue !== void 0 || v.priorityValue !== void 0 || v.assignedUserId !== void 0 || v.subProjectId !== void 0 || v.githubBranch !== void 0 || v.onHold !== void 0,
|
|
4519
4654
|
{
|
|
4520
|
-
message: "update_task requires at least one field to change (title, description, plan, status, risk, storyPointValue, assignedUserId, subProjectId, githubBranch, or onHold)"
|
|
4655
|
+
message: "update_task requires at least one field to change (title, description, plan, status, risk, storyPointValue, priorityValue, assignedUserId, subProjectId, githubBranch, or onHold)"
|
|
4521
4656
|
}
|
|
4522
4657
|
);
|
|
4523
|
-
var TransitionProjectTaskStatusRequestSchema =
|
|
4524
|
-
projectId:
|
|
4525
|
-
taskId:
|
|
4526
|
-
toStatus:
|
|
4527
|
-
expectedFromStatus:
|
|
4658
|
+
var TransitionProjectTaskStatusRequestSchema = z62.object({
|
|
4659
|
+
projectId: z62.string(),
|
|
4660
|
+
taskId: z62.string(),
|
|
4661
|
+
toStatus: z62.string(),
|
|
4662
|
+
expectedFromStatus: z62.string().optional(),
|
|
4528
4663
|
// Optional raise-only risk to attempt alongside the transition
|
|
4529
4664
|
// (approve → low, request_changes → medium by default).
|
|
4530
4665
|
risk: riskLevelSchema.optional(),
|
|
4531
|
-
requestingUserId:
|
|
4532
|
-
});
|
|
4533
|
-
var MoveProjectCardRequestSchema =
|
|
4534
|
-
projectId:
|
|
4535
|
-
taskId:
|
|
4536
|
-
destinationProjectId:
|
|
4537
|
-
requestingUserId:
|
|
4538
|
-
});
|
|
4539
|
-
var PostToProjectTaskChatRequestSchema =
|
|
4540
|
-
projectId:
|
|
4541
|
-
taskId:
|
|
4542
|
-
content:
|
|
4543
|
-
requestingUserId:
|
|
4544
|
-
});
|
|
4545
|
-
var GetProjectTaskCliRequestSchema =
|
|
4546
|
-
projectId:
|
|
4547
|
-
taskId:
|
|
4548
|
-
limit:
|
|
4549
|
-
source:
|
|
4550
|
-
});
|
|
4551
|
-
var GetProjectTaskSessionsRequestSchema =
|
|
4552
|
-
projectId:
|
|
4553
|
-
taskId:
|
|
4554
|
-
});
|
|
4555
|
-
var QueryProjectGcpLogsRequestSchema =
|
|
4556
|
-
projectId:
|
|
4557
|
-
env:
|
|
4558
|
-
severity:
|
|
4559
|
-
services:
|
|
4560
|
-
sqlInstances:
|
|
4561
|
-
allServices:
|
|
4562
|
-
search:
|
|
4563
|
-
filter:
|
|
4564
|
-
startTime:
|
|
4565
|
-
endTime:
|
|
4566
|
-
limit:
|
|
4567
|
-
pageToken:
|
|
4568
|
-
});
|
|
4569
|
-
var QueryProjectGrafanaLogsRequestSchema =
|
|
4570
|
-
projectId:
|
|
4571
|
-
env:
|
|
4572
|
-
services:
|
|
4573
|
-
level:
|
|
4574
|
-
search:
|
|
4575
|
-
logql:
|
|
4576
|
-
startTime:
|
|
4577
|
-
endTime:
|
|
4578
|
-
limit:
|
|
4579
|
-
});
|
|
4580
|
-
var driveFileNameSchema =
|
|
4666
|
+
requestingUserId: z62.string().optional()
|
|
4667
|
+
});
|
|
4668
|
+
var MoveProjectCardRequestSchema = z62.object({
|
|
4669
|
+
projectId: z62.string(),
|
|
4670
|
+
taskId: z62.string(),
|
|
4671
|
+
destinationProjectId: z62.string(),
|
|
4672
|
+
requestingUserId: z62.string().optional()
|
|
4673
|
+
});
|
|
4674
|
+
var PostToProjectTaskChatRequestSchema = z62.object({
|
|
4675
|
+
projectId: z62.string(),
|
|
4676
|
+
taskId: z62.string(),
|
|
4677
|
+
content: z62.string(),
|
|
4678
|
+
requestingUserId: z62.string().optional()
|
|
4679
|
+
});
|
|
4680
|
+
var GetProjectTaskCliRequestSchema = z62.object({
|
|
4681
|
+
projectId: z62.string(),
|
|
4682
|
+
taskId: z62.string(),
|
|
4683
|
+
limit: z62.number().int().positive().optional().default(50),
|
|
4684
|
+
source: z62.string().optional()
|
|
4685
|
+
});
|
|
4686
|
+
var GetProjectTaskSessionsRequestSchema = z62.object({
|
|
4687
|
+
projectId: z62.string(),
|
|
4688
|
+
taskId: z62.string()
|
|
4689
|
+
});
|
|
4690
|
+
var QueryProjectGcpLogsRequestSchema = z62.object({
|
|
4691
|
+
projectId: z62.string(),
|
|
4692
|
+
env: z62.enum(["prod", "dev", "claudespace"]).optional(),
|
|
4693
|
+
severity: z62.enum(["DEBUG", "INFO", "NOTICE", "WARNING", "ERROR", "CRITICAL", "ALERT", "EMERGENCY"]).optional(),
|
|
4694
|
+
services: z62.array(z62.string().min(1).max(200)).max(25).optional(),
|
|
4695
|
+
sqlInstances: z62.array(z62.string().min(1).max(200)).max(25).optional(),
|
|
4696
|
+
allServices: z62.boolean().optional(),
|
|
4697
|
+
search: z62.string().max(256).optional(),
|
|
4698
|
+
filter: z62.string().max(1e3).optional(),
|
|
4699
|
+
startTime: z62.string().optional(),
|
|
4700
|
+
endTime: z62.string().optional(),
|
|
4701
|
+
limit: z62.number().int().min(1).max(200).optional().default(50),
|
|
4702
|
+
pageToken: z62.string().max(4096).optional()
|
|
4703
|
+
});
|
|
4704
|
+
var QueryProjectGrafanaLogsRequestSchema = z62.object({
|
|
4705
|
+
projectId: z62.string(),
|
|
4706
|
+
env: z62.enum(["prod", "dev"]).optional(),
|
|
4707
|
+
services: z62.array(z62.string().min(1).max(200)).max(25).optional(),
|
|
4708
|
+
level: z62.enum(["debug", "info", "warn", "error", "fatal"]).optional(),
|
|
4709
|
+
search: z62.string().max(256).optional(),
|
|
4710
|
+
logql: z62.string().max(2e3).optional(),
|
|
4711
|
+
startTime: z62.string().optional(),
|
|
4712
|
+
endTime: z62.string().optional(),
|
|
4713
|
+
limit: z62.number().int().min(1).max(200).optional().default(50)
|
|
4714
|
+
});
|
|
4715
|
+
var driveFileNameSchema = z62.string().min(1).max(255).regex(/^[^/\\\r\n]+$/, "File names cannot contain slashes or line breaks");
|
|
4581
4716
|
var DRIVE_MAX_CONTENT_CHARS = 1e6;
|
|
4582
|
-
var ListProjectDriveFilesRequestSchema =
|
|
4583
|
-
projectId:
|
|
4584
|
-
folderId:
|
|
4585
|
-
search:
|
|
4586
|
-
limit:
|
|
4587
|
-
});
|
|
4588
|
-
var ReadProjectDriveFileRequestSchema =
|
|
4589
|
-
projectId:
|
|
4590
|
-
fileId:
|
|
4591
|
-
});
|
|
4592
|
-
var CreateProjectDriveFileRequestSchema =
|
|
4593
|
-
projectId:
|
|
4717
|
+
var ListProjectDriveFilesRequestSchema = z62.object({
|
|
4718
|
+
projectId: z62.string(),
|
|
4719
|
+
folderId: z62.string().max(200).optional(),
|
|
4720
|
+
search: z62.string().max(200).optional(),
|
|
4721
|
+
limit: z62.number().int().min(1).max(200).optional()
|
|
4722
|
+
});
|
|
4723
|
+
var ReadProjectDriveFileRequestSchema = z62.object({
|
|
4724
|
+
projectId: z62.string(),
|
|
4725
|
+
fileId: z62.string().min(1).max(200)
|
|
4726
|
+
});
|
|
4727
|
+
var CreateProjectDriveFileRequestSchema = z62.object({
|
|
4728
|
+
projectId: z62.string(),
|
|
4594
4729
|
name: driveFileNameSchema,
|
|
4595
|
-
content:
|
|
4596
|
-
mimeType:
|
|
4597
|
-
folderId:
|
|
4598
|
-
});
|
|
4599
|
-
var UpdateProjectDriveFileRequestSchema =
|
|
4600
|
-
projectId:
|
|
4601
|
-
fileId:
|
|
4602
|
-
content:
|
|
4603
|
-
mimeType:
|
|
4604
|
-
});
|
|
4605
|
-
var DeleteProjectDriveFileRequestSchema =
|
|
4606
|
-
projectId:
|
|
4607
|
-
fileId:
|
|
4608
|
-
});
|
|
4609
|
-
var CreateProjectDriveFolderRequestSchema =
|
|
4610
|
-
projectId:
|
|
4730
|
+
content: z62.string().max(DRIVE_MAX_CONTENT_CHARS),
|
|
4731
|
+
mimeType: z62.string().max(200).optional(),
|
|
4732
|
+
folderId: z62.string().max(200).optional()
|
|
4733
|
+
});
|
|
4734
|
+
var UpdateProjectDriveFileRequestSchema = z62.object({
|
|
4735
|
+
projectId: z62.string(),
|
|
4736
|
+
fileId: z62.string().min(1).max(200),
|
|
4737
|
+
content: z62.string().max(DRIVE_MAX_CONTENT_CHARS),
|
|
4738
|
+
mimeType: z62.string().max(200).optional()
|
|
4739
|
+
});
|
|
4740
|
+
var DeleteProjectDriveFileRequestSchema = z62.object({
|
|
4741
|
+
projectId: z62.string(),
|
|
4742
|
+
fileId: z62.string().min(1).max(200)
|
|
4743
|
+
});
|
|
4744
|
+
var CreateProjectDriveFolderRequestSchema = z62.object({
|
|
4745
|
+
projectId: z62.string(),
|
|
4611
4746
|
name: driveFileNameSchema,
|
|
4612
|
-
folderId:
|
|
4747
|
+
folderId: z62.string().max(200).optional()
|
|
4613
4748
|
});
|
|
4614
|
-
var StartProjectBuildRequestSchema =
|
|
4615
|
-
projectId:
|
|
4616
|
-
taskId:
|
|
4617
|
-
requestingUserId:
|
|
4749
|
+
var StartProjectBuildRequestSchema = z62.object({
|
|
4750
|
+
projectId: z62.string(),
|
|
4751
|
+
taskId: z62.string(),
|
|
4752
|
+
requestingUserId: z62.string().optional()
|
|
4618
4753
|
});
|
|
4619
|
-
var StopProjectBuildRequestSchema =
|
|
4620
|
-
projectId:
|
|
4621
|
-
taskId:
|
|
4622
|
-
requestingUserId:
|
|
4754
|
+
var StopProjectBuildRequestSchema = z62.object({
|
|
4755
|
+
projectId: z62.string(),
|
|
4756
|
+
taskId: z62.string(),
|
|
4757
|
+
requestingUserId: z62.string().optional()
|
|
4623
4758
|
});
|
|
4624
|
-
var StartProjectWorkspaceRequestSchema =
|
|
4625
|
-
projectId:
|
|
4626
|
-
requestingUserId:
|
|
4759
|
+
var StartProjectWorkspaceRequestSchema = z62.object({
|
|
4760
|
+
projectId: z62.string(),
|
|
4761
|
+
requestingUserId: z62.string().optional()
|
|
4627
4762
|
});
|
|
4628
|
-
var StopProjectWorkspaceRequestSchema =
|
|
4629
|
-
projectId:
|
|
4630
|
-
destroy:
|
|
4631
|
-
requestingUserId:
|
|
4763
|
+
var StopProjectWorkspaceRequestSchema = z62.object({
|
|
4764
|
+
projectId: z62.string(),
|
|
4765
|
+
destroy: z62.boolean().optional(),
|
|
4766
|
+
requestingUserId: z62.string().optional()
|
|
4632
4767
|
});
|
|
4633
|
-
var ListMyLiveSessionsRequestSchema =
|
|
4634
|
-
projectId:
|
|
4768
|
+
var ListMyLiveSessionsRequestSchema = z62.object({
|
|
4769
|
+
projectId: z62.string(),
|
|
4635
4770
|
/** Admin-only: list another member's sessions instead of the caller's. */
|
|
4636
|
-
targetUserId:
|
|
4771
|
+
targetUserId: z62.string().optional()
|
|
4637
4772
|
});
|
|
4638
|
-
var ListProjectSessionGroupsRequestSchema =
|
|
4639
|
-
projectId:
|
|
4773
|
+
var ListProjectSessionGroupsRequestSchema = z62.object({
|
|
4774
|
+
projectId: z62.string()
|
|
4640
4775
|
});
|
|
4641
|
-
var ListMyLiveSessionsAcrossProjectsRequestSchema =
|
|
4642
|
-
var ListSessionGroupsAcrossProjectsRequestSchema =
|
|
4643
|
-
var GetProjectAvailableTuisRequestSchema =
|
|
4644
|
-
projectId:
|
|
4776
|
+
var ListMyLiveSessionsAcrossProjectsRequestSchema = z62.object({});
|
|
4777
|
+
var ListSessionGroupsAcrossProjectsRequestSchema = z62.object({});
|
|
4778
|
+
var GetProjectAvailableTuisRequestSchema = z62.object({
|
|
4779
|
+
projectId: z62.string()
|
|
4645
4780
|
});
|
|
4646
|
-
var StartAdhocSessionRequestSchema =
|
|
4647
|
-
projectId:
|
|
4648
|
-
label:
|
|
4781
|
+
var StartAdhocSessionRequestSchema = z62.object({
|
|
4782
|
+
projectId: z62.string(),
|
|
4783
|
+
label: z62.string().max(200).optional(),
|
|
4649
4784
|
/** Coding-agent key to launch under — validated pick-time (ownership + TUI availability) in the handler. */
|
|
4650
|
-
codingAgentKeyId:
|
|
4785
|
+
codingAgentKeyId: z62.string().optional(),
|
|
4651
4786
|
/** Model override (Claude model id) — overrides the launch key's own model. */
|
|
4652
|
-
model:
|
|
4787
|
+
model: z62.string().max(200).optional(),
|
|
4653
4788
|
/**
|
|
4654
4789
|
* Session role. Constrained: other task-less modes fall through to the pm
|
|
4655
4790
|
* runner in the pod entrypoint, and "review" would crash without a task.
|
|
4656
4791
|
*/
|
|
4657
|
-
mode:
|
|
4792
|
+
mode: z62.enum(["adhoc", "pm"]).optional(),
|
|
4658
4793
|
/** Base branch to check out (defaults to the project's dev branch). */
|
|
4659
|
-
branch:
|
|
4794
|
+
branch: z62.string().max(300).optional(),
|
|
4660
4795
|
/**
|
|
4661
4796
|
* Server-assembled instructions the pod's TUI auto-submits once on first boot
|
|
4662
4797
|
* (headless kickoff). Used by the onboarding "Set it up for me" flow to seed a
|
|
4663
4798
|
* setup-driver prompt; the session stays watchable/interactive in the Sessions
|
|
4664
4799
|
* view. `ensureAdhocWorkspace` persists it and clears it after first submit.
|
|
4665
4800
|
*/
|
|
4666
|
-
initialPrompt:
|
|
4667
|
-
requestingUserId:
|
|
4668
|
-
});
|
|
4669
|
-
var StopAdhocSessionRequestSchema =
|
|
4670
|
-
projectId:
|
|
4671
|
-
workspaceId:
|
|
4672
|
-
destroy:
|
|
4673
|
-
requestingUserId:
|
|
4674
|
-
});
|
|
4675
|
-
var ResumeAdhocSessionRequestSchema =
|
|
4676
|
-
projectId:
|
|
4677
|
-
workspaceId:
|
|
4678
|
-
requestingUserId:
|
|
4679
|
-
});
|
|
4680
|
-
var RefreshCodingAgentKeyUsageRequestSchema =
|
|
4681
|
-
projectId:
|
|
4682
|
-
keyId:
|
|
4683
|
-
requestingUserId:
|
|
4684
|
-
});
|
|
4685
|
-
var ListKeysToProbeRequestSchema =
|
|
4686
|
-
sessionId:
|
|
4687
|
-
});
|
|
4688
|
-
var CreateProjectReleaseRequestSchema =
|
|
4689
|
-
projectId:
|
|
4690
|
-
taskIds:
|
|
4691
|
-
requestingUserId:
|
|
4692
|
-
});
|
|
4693
|
-
var AddTasksToProjectReleaseRequestSchema =
|
|
4694
|
-
projectId:
|
|
4695
|
-
taskIds:
|
|
4696
|
-
requestingUserId:
|
|
4697
|
-
});
|
|
4698
|
-
var ApproveProjectMergePRRequestSchema =
|
|
4699
|
-
projectId:
|
|
4700
|
-
childTaskId:
|
|
4701
|
-
requestingUserId:
|
|
4702
|
-
});
|
|
4703
|
-
var ListProjectSubtasksRequestSchema =
|
|
4704
|
-
projectId:
|
|
4705
|
-
taskId:
|
|
4706
|
-
});
|
|
4707
|
-
var CreateProjectSubtaskRequestSchema =
|
|
4708
|
-
projectId:
|
|
4709
|
-
parentTaskId:
|
|
4710
|
-
title:
|
|
4801
|
+
initialPrompt: z62.string().max(2e4).optional(),
|
|
4802
|
+
requestingUserId: z62.string().optional()
|
|
4803
|
+
});
|
|
4804
|
+
var StopAdhocSessionRequestSchema = z62.object({
|
|
4805
|
+
projectId: z62.string(),
|
|
4806
|
+
workspaceId: z62.string(),
|
|
4807
|
+
destroy: z62.boolean().optional(),
|
|
4808
|
+
requestingUserId: z62.string().optional()
|
|
4809
|
+
});
|
|
4810
|
+
var ResumeAdhocSessionRequestSchema = z62.object({
|
|
4811
|
+
projectId: z62.string(),
|
|
4812
|
+
workspaceId: z62.string(),
|
|
4813
|
+
requestingUserId: z62.string().optional()
|
|
4814
|
+
});
|
|
4815
|
+
var RefreshCodingAgentKeyUsageRequestSchema = z62.object({
|
|
4816
|
+
projectId: z62.string(),
|
|
4817
|
+
keyId: z62.string().optional(),
|
|
4818
|
+
requestingUserId: z62.string().optional()
|
|
4819
|
+
});
|
|
4820
|
+
var ListKeysToProbeRequestSchema = z62.object({
|
|
4821
|
+
sessionId: z62.string()
|
|
4822
|
+
});
|
|
4823
|
+
var CreateProjectReleaseRequestSchema = z62.object({
|
|
4824
|
+
projectId: z62.string(),
|
|
4825
|
+
taskIds: z62.array(z62.string()).optional(),
|
|
4826
|
+
requestingUserId: z62.string().optional()
|
|
4827
|
+
});
|
|
4828
|
+
var AddTasksToProjectReleaseRequestSchema = z62.object({
|
|
4829
|
+
projectId: z62.string(),
|
|
4830
|
+
taskIds: z62.array(z62.string()).min(1),
|
|
4831
|
+
requestingUserId: z62.string().optional()
|
|
4832
|
+
});
|
|
4833
|
+
var ApproveProjectMergePRRequestSchema = z62.object({
|
|
4834
|
+
projectId: z62.string(),
|
|
4835
|
+
childTaskId: z62.string(),
|
|
4836
|
+
requestingUserId: z62.string().optional()
|
|
4837
|
+
});
|
|
4838
|
+
var ListProjectSubtasksRequestSchema = z62.object({
|
|
4839
|
+
projectId: z62.string(),
|
|
4840
|
+
taskId: z62.string()
|
|
4841
|
+
});
|
|
4842
|
+
var CreateProjectSubtaskRequestSchema = z62.object({
|
|
4843
|
+
projectId: z62.string(),
|
|
4844
|
+
parentTaskId: z62.string(),
|
|
4845
|
+
title: z62.string().min(1),
|
|
4711
4846
|
description: cardDescription2,
|
|
4712
|
-
plan:
|
|
4713
|
-
ordinal:
|
|
4714
|
-
storyPointValue:
|
|
4715
|
-
followParentStatus:
|
|
4847
|
+
plan: z62.string().optional(),
|
|
4848
|
+
ordinal: z62.number().int().nonnegative().optional(),
|
|
4849
|
+
storyPointValue: z62.number().int().positive().optional(),
|
|
4850
|
+
followParentStatus: z62.boolean().optional(),
|
|
4716
4851
|
/** Sibling subtask ids or slugs this subtask blocks on (explicit dependency
|
|
4717
4852
|
* metadata — preferred over encoding order in plan text / ordinal). */
|
|
4718
|
-
dependsOn:
|
|
4719
|
-
requestingUserId:
|
|
4853
|
+
dependsOn: z62.array(z62.string().min(1)).max(32).optional(),
|
|
4854
|
+
requestingUserId: z62.string().optional()
|
|
4720
4855
|
});
|
|
4721
|
-
var UpdateProjectSubtaskRequestSchema =
|
|
4722
|
-
projectId:
|
|
4723
|
-
subtaskId:
|
|
4724
|
-
title:
|
|
4856
|
+
var UpdateProjectSubtaskRequestSchema = z62.object({
|
|
4857
|
+
projectId: z62.string(),
|
|
4858
|
+
subtaskId: z62.string(),
|
|
4859
|
+
title: z62.string().optional(),
|
|
4725
4860
|
description: cardDescription2,
|
|
4726
|
-
plan:
|
|
4727
|
-
status:
|
|
4728
|
-
ordinal:
|
|
4729
|
-
storyPointValue:
|
|
4730
|
-
followParentStatus:
|
|
4861
|
+
plan: z62.string().optional(),
|
|
4862
|
+
status: z62.string().optional(),
|
|
4863
|
+
ordinal: z62.number().int().nonnegative().optional(),
|
|
4864
|
+
storyPointValue: z62.number().int().positive().optional(),
|
|
4865
|
+
followParentStatus: z62.boolean().optional(),
|
|
4731
4866
|
/** Replace-set of sibling subtask ids/slugs this subtask blocks on ([] clears).
|
|
4732
4867
|
* Mirrors the in-pod updateSubtask semantics. */
|
|
4733
|
-
dependsOn:
|
|
4734
|
-
requestingUserId:
|
|
4735
|
-
});
|
|
4736
|
-
var DeleteProjectSubtaskRequestSchema =
|
|
4737
|
-
projectId:
|
|
4738
|
-
subtaskId:
|
|
4739
|
-
requestingUserId:
|
|
4740
|
-
});
|
|
4741
|
-
var GetProjectTaskChatRequestSchema =
|
|
4742
|
-
projectId:
|
|
4743
|
-
taskId:
|
|
4744
|
-
limit:
|
|
4745
|
-
});
|
|
4746
|
-
var AddProjectTaskDependencyRequestSchema =
|
|
4747
|
-
projectId:
|
|
4748
|
-
taskId:
|
|
4749
|
-
dependsOnSlugOrId:
|
|
4750
|
-
requestingUserId:
|
|
4751
|
-
});
|
|
4752
|
-
var RemoveProjectTaskDependencyRequestSchema =
|
|
4753
|
-
projectId:
|
|
4754
|
-
taskId:
|
|
4755
|
-
dependsOnSlugOrId:
|
|
4756
|
-
requestingUserId:
|
|
4757
|
-
});
|
|
4758
|
-
var VoteProjectSuggestionRequestSchema =
|
|
4759
|
-
projectId:
|
|
4760
|
-
suggestionId:
|
|
4761
|
-
value:
|
|
4762
|
-
requestingUserId:
|
|
4763
|
-
});
|
|
4764
|
-
var GetProjectTaskDependenciesRequestSchema =
|
|
4765
|
-
projectId:
|
|
4766
|
-
taskId:
|
|
4767
|
-
});
|
|
4768
|
-
var
|
|
4769
|
-
projectId:
|
|
4770
|
-
taskId:
|
|
4771
|
-
|
|
4772
|
-
|
|
4773
|
-
|
|
4774
|
-
|
|
4775
|
-
|
|
4776
|
-
|
|
4777
|
-
|
|
4778
|
-
|
|
4779
|
-
|
|
4780
|
-
|
|
4781
|
-
|
|
4782
|
-
|
|
4783
|
-
|
|
4784
|
-
|
|
4785
|
-
|
|
4786
|
-
|
|
4787
|
-
|
|
4788
|
-
|
|
4789
|
-
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
|
|
4795
|
-
|
|
4796
|
-
|
|
4797
|
-
|
|
4798
|
-
|
|
4799
|
-
|
|
4800
|
-
|
|
4801
|
-
|
|
4802
|
-
|
|
4803
|
-
|
|
4804
|
-
});
|
|
4805
|
-
var CreateProjectPullRequestRequestSchema = z52.object({
|
|
4806
|
-
projectId: z52.string(),
|
|
4807
|
-
taskId: z52.string(),
|
|
4808
|
-
title: z52.string().min(1),
|
|
4809
|
-
body: z52.string(),
|
|
4810
|
-
head: z52.string().optional(),
|
|
4811
|
-
base: z52.string().optional(),
|
|
4812
|
-
requestingUserId: z52.string().optional()
|
|
4813
|
-
});
|
|
4814
|
-
var ListProjectMembersRequestSchema = z52.object({
|
|
4815
|
-
projectId: z52.string()
|
|
4816
|
-
});
|
|
4817
|
-
var AddProjectTaskReviewerRequestSchema = z52.object({
|
|
4818
|
-
projectId: z52.string(),
|
|
4819
|
-
taskId: z52.string(),
|
|
4820
|
-
userId: z52.string(),
|
|
4821
|
-
requestingUserId: z52.string().optional()
|
|
4822
|
-
});
|
|
4823
|
-
var RemoveProjectTaskReviewerRequestSchema = z52.object({
|
|
4824
|
-
projectId: z52.string(),
|
|
4825
|
-
taskId: z52.string(),
|
|
4826
|
-
userId: z52.string(),
|
|
4827
|
-
requestingUserId: z52.string().optional()
|
|
4828
|
-
});
|
|
4829
|
-
var ListProjectManualTestsRequestSchema = z52.object({
|
|
4830
|
-
projectId: z52.string(),
|
|
4831
|
-
taskId: z52.string()
|
|
4832
|
-
});
|
|
4833
|
-
var QueryProjectManualTestsRequestSchema = z52.object({
|
|
4834
|
-
projectId: z52.string(),
|
|
4835
|
-
cardStatuses: z52.array(z52.string()).optional(),
|
|
4836
|
-
testStatuses: z52.array(z52.enum(["open", "approved", "rejected"])).optional()
|
|
4837
|
-
});
|
|
4838
|
-
var SetProjectManualTestsRequestSchema = z52.object({
|
|
4839
|
-
projectId: z52.string(),
|
|
4840
|
-
taskId: z52.string(),
|
|
4868
|
+
dependsOn: z62.array(z62.string().min(1)).max(32).optional(),
|
|
4869
|
+
requestingUserId: z62.string().optional()
|
|
4870
|
+
});
|
|
4871
|
+
var DeleteProjectSubtaskRequestSchema = z62.object({
|
|
4872
|
+
projectId: z62.string(),
|
|
4873
|
+
subtaskId: z62.string(),
|
|
4874
|
+
requestingUserId: z62.string().optional()
|
|
4875
|
+
});
|
|
4876
|
+
var GetProjectTaskChatRequestSchema = z62.object({
|
|
4877
|
+
projectId: z62.string(),
|
|
4878
|
+
taskId: z62.string(),
|
|
4879
|
+
limit: z62.number().int().positive().optional().default(20)
|
|
4880
|
+
});
|
|
4881
|
+
var AddProjectTaskDependencyRequestSchema = z62.object({
|
|
4882
|
+
projectId: z62.string(),
|
|
4883
|
+
taskId: z62.string(),
|
|
4884
|
+
dependsOnSlugOrId: z62.string(),
|
|
4885
|
+
requestingUserId: z62.string().optional()
|
|
4886
|
+
});
|
|
4887
|
+
var RemoveProjectTaskDependencyRequestSchema = z62.object({
|
|
4888
|
+
projectId: z62.string(),
|
|
4889
|
+
taskId: z62.string(),
|
|
4890
|
+
dependsOnSlugOrId: z62.string(),
|
|
4891
|
+
requestingUserId: z62.string().optional()
|
|
4892
|
+
});
|
|
4893
|
+
var VoteProjectSuggestionRequestSchema = z62.object({
|
|
4894
|
+
projectId: z62.string(),
|
|
4895
|
+
suggestionId: z62.string(),
|
|
4896
|
+
value: z62.union([z62.literal(1), z62.literal(-1)]),
|
|
4897
|
+
requestingUserId: z62.string().optional()
|
|
4898
|
+
});
|
|
4899
|
+
var GetProjectTaskDependenciesRequestSchema = z62.object({
|
|
4900
|
+
projectId: z62.string(),
|
|
4901
|
+
taskId: z62.string()
|
|
4902
|
+
});
|
|
4903
|
+
var CreateProjectPullRequestRequestSchema = z62.object({
|
|
4904
|
+
projectId: z62.string(),
|
|
4905
|
+
taskId: z62.string(),
|
|
4906
|
+
title: z62.string().min(1),
|
|
4907
|
+
body: z62.string(),
|
|
4908
|
+
head: z62.string().optional(),
|
|
4909
|
+
base: z62.string().optional(),
|
|
4910
|
+
requestingUserId: z62.string().optional()
|
|
4911
|
+
});
|
|
4912
|
+
var ListProjectMembersRequestSchema = z62.object({
|
|
4913
|
+
projectId: z62.string()
|
|
4914
|
+
});
|
|
4915
|
+
var AddProjectTaskReviewerRequestSchema = z62.object({
|
|
4916
|
+
projectId: z62.string(),
|
|
4917
|
+
taskId: z62.string(),
|
|
4918
|
+
userId: z62.string(),
|
|
4919
|
+
requestingUserId: z62.string().optional()
|
|
4920
|
+
});
|
|
4921
|
+
var RemoveProjectTaskReviewerRequestSchema = z62.object({
|
|
4922
|
+
projectId: z62.string(),
|
|
4923
|
+
taskId: z62.string(),
|
|
4924
|
+
userId: z62.string(),
|
|
4925
|
+
requestingUserId: z62.string().optional()
|
|
4926
|
+
});
|
|
4927
|
+
var ListProjectManualTestsRequestSchema = z62.object({
|
|
4928
|
+
projectId: z62.string(),
|
|
4929
|
+
taskId: z62.string()
|
|
4930
|
+
});
|
|
4931
|
+
var QueryProjectManualTestsRequestSchema = z62.object({
|
|
4932
|
+
projectId: z62.string(),
|
|
4933
|
+
cardStatuses: z62.array(z62.string()).optional(),
|
|
4934
|
+
testStatuses: z62.array(z62.enum(["open", "approved", "rejected"])).optional()
|
|
4935
|
+
});
|
|
4936
|
+
var SetProjectManualTestsRequestSchema = z62.object({
|
|
4937
|
+
projectId: z62.string(),
|
|
4938
|
+
taskId: z62.string(),
|
|
4841
4939
|
items: ManualTestItemsSchema,
|
|
4842
|
-
requestingUserId:
|
|
4843
|
-
});
|
|
4844
|
-
var EditProjectManualTestRequestSchema =
|
|
4845
|
-
projectId:
|
|
4846
|
-
taskId:
|
|
4847
|
-
title:
|
|
4848
|
-
newTitle:
|
|
4849
|
-
requestingUserId:
|
|
4850
|
-
});
|
|
4851
|
-
var RemoveProjectManualTestRequestSchema =
|
|
4852
|
-
projectId:
|
|
4853
|
-
taskId:
|
|
4854
|
-
title:
|
|
4855
|
-
requestingUserId:
|
|
4856
|
-
});
|
|
4857
|
-
var ApproveProjectManualTestRequestSchema =
|
|
4858
|
-
projectId:
|
|
4859
|
-
taskId:
|
|
4860
|
-
title:
|
|
4861
|
-
requestingUserId:
|
|
4862
|
-
});
|
|
4863
|
-
var RejectProjectManualTestRequestSchema =
|
|
4864
|
-
projectId:
|
|
4865
|
-
taskId:
|
|
4866
|
-
title:
|
|
4867
|
-
reason:
|
|
4868
|
-
requestingUserId:
|
|
4869
|
-
});
|
|
4870
|
-
var CreateProjectSuggestionRequestSchema =
|
|
4871
|
-
projectId:
|
|
4872
|
-
title:
|
|
4940
|
+
requestingUserId: z62.string().optional()
|
|
4941
|
+
});
|
|
4942
|
+
var EditProjectManualTestRequestSchema = z62.object({
|
|
4943
|
+
projectId: z62.string(),
|
|
4944
|
+
taskId: z62.string(),
|
|
4945
|
+
title: z62.string().min(1),
|
|
4946
|
+
newTitle: z62.string().min(1),
|
|
4947
|
+
requestingUserId: z62.string().optional()
|
|
4948
|
+
});
|
|
4949
|
+
var RemoveProjectManualTestRequestSchema = z62.object({
|
|
4950
|
+
projectId: z62.string(),
|
|
4951
|
+
taskId: z62.string(),
|
|
4952
|
+
title: z62.string().min(1),
|
|
4953
|
+
requestingUserId: z62.string().optional()
|
|
4954
|
+
});
|
|
4955
|
+
var ApproveProjectManualTestRequestSchema = z62.object({
|
|
4956
|
+
projectId: z62.string(),
|
|
4957
|
+
taskId: z62.string(),
|
|
4958
|
+
title: z62.string().min(1),
|
|
4959
|
+
requestingUserId: z62.string().optional()
|
|
4960
|
+
});
|
|
4961
|
+
var RejectProjectManualTestRequestSchema = z62.object({
|
|
4962
|
+
projectId: z62.string(),
|
|
4963
|
+
taskId: z62.string(),
|
|
4964
|
+
title: z62.string().min(1),
|
|
4965
|
+
reason: z62.string().min(1).max(2e3),
|
|
4966
|
+
requestingUserId: z62.string().optional()
|
|
4967
|
+
});
|
|
4968
|
+
var CreateProjectSuggestionRequestSchema = z62.object({
|
|
4969
|
+
projectId: z62.string(),
|
|
4970
|
+
title: z62.string().min(1),
|
|
4873
4971
|
description: cardDescription2,
|
|
4874
|
-
tagNames:
|
|
4875
|
-
requestingUserId:
|
|
4972
|
+
tagNames: z62.array(z62.string()).optional(),
|
|
4973
|
+
requestingUserId: z62.string().optional()
|
|
4876
4974
|
});
|
|
4877
|
-
var ListProjectChannelsRequestSchema =
|
|
4878
|
-
projectId:
|
|
4975
|
+
var ListProjectChannelsRequestSchema = z72.object({
|
|
4976
|
+
projectId: z72.string()
|
|
4879
4977
|
});
|
|
4880
4978
|
var READ_CHANNEL_MESSAGES_MAX_LIMIT = 50;
|
|
4881
|
-
var ReadChannelMessagesRequestSchema =
|
|
4882
|
-
projectId:
|
|
4883
|
-
channelId:
|
|
4884
|
-
limit:
|
|
4979
|
+
var ReadChannelMessagesRequestSchema = z72.object({
|
|
4980
|
+
projectId: z72.string(),
|
|
4981
|
+
channelId: z72.string().min(1).max(200),
|
|
4982
|
+
limit: z72.number().int().min(1).max(READ_CHANNEL_MESSAGES_MAX_LIMIT).optional(),
|
|
4885
4983
|
/** Provider-native cursor: return messages OLDER than this one. */
|
|
4886
|
-
before:
|
|
4984
|
+
before: z72.string().max(100).optional(),
|
|
4887
4985
|
/** Provider-native cursor: return messages NEWER than this one. */
|
|
4888
|
-
after:
|
|
4986
|
+
after: z72.string().max(100).optional(),
|
|
4889
4987
|
/**
|
|
4890
4988
|
* Read one thread instead of the channel surface. Slack calls this a
|
|
4891
4989
|
* `thread_ts`; on Discord it is the thread channel's id. One field for both,
|
|
4892
4990
|
* because a caller holding a `threadTs` from a previous read should not have
|
|
4893
4991
|
* to know which provider produced it.
|
|
4894
4992
|
*/
|
|
4895
|
-
threadTs:
|
|
4993
|
+
threadTs: z72.string().max(100).optional()
|
|
4896
4994
|
});
|
|
4897
4995
|
var POST_CHANNEL_MESSAGE_MAX_CHARS = 1800;
|
|
4898
|
-
var PostChannelMessageRequestSchema =
|
|
4899
|
-
projectId:
|
|
4900
|
-
channelId:
|
|
4901
|
-
text:
|
|
4996
|
+
var PostChannelMessageRequestSchema = z72.object({
|
|
4997
|
+
projectId: z72.string(),
|
|
4998
|
+
channelId: z72.string().min(1).max(200),
|
|
4999
|
+
text: z72.string().min(1).max(POST_CHANNEL_MESSAGE_MAX_CHARS),
|
|
4902
5000
|
/** Reply inside a thread rather than to the channel. */
|
|
4903
|
-
threadTs:
|
|
5001
|
+
threadTs: z72.string().max(100).optional()
|
|
4904
5002
|
});
|
|
4905
5003
|
var GET_ANALYTICS_SUMMARY_MAX_RANGE_DAYS = 90;
|
|
4906
|
-
var GetProjectAnalyticsSummaryRequestSchema =
|
|
4907
|
-
projectId:
|
|
4908
|
-
rangeDays:
|
|
4909
|
-
campaign:
|
|
5004
|
+
var GetProjectAnalyticsSummaryRequestSchema = z72.object({
|
|
5005
|
+
projectId: z72.string(),
|
|
5006
|
+
rangeDays: z72.number().int().min(1).max(GET_ANALYTICS_SUMMARY_MAX_RANGE_DAYS).optional(),
|
|
5007
|
+
campaign: z72.string().max(200).optional()
|
|
4910
5008
|
});
|
|
4911
|
-
var
|
|
4912
|
-
|
|
4913
|
-
|
|
5009
|
+
var ListProjectTaskFilesRequestSchema = z82.object({
|
|
5010
|
+
projectId: z82.string(),
|
|
5011
|
+
taskId: z82.string()
|
|
4914
5012
|
});
|
|
4915
|
-
var
|
|
4916
|
-
|
|
4917
|
-
|
|
4918
|
-
|
|
5013
|
+
var GetProjectAttachmentRequestSchema = z82.object({
|
|
5014
|
+
projectId: z82.string(),
|
|
5015
|
+
taskId: z82.string(),
|
|
5016
|
+
fileId: z82.string(),
|
|
5017
|
+
/** Byte offset into text content (paging large logs/JSON). Default 0. */
|
|
5018
|
+
offset: z82.number().int().nonnegative().optional(),
|
|
5019
|
+
/** Max bytes of text content to return from `offset`. Server default applies. */
|
|
5020
|
+
maxBytes: z82.number().int().positive().optional()
|
|
5021
|
+
});
|
|
5022
|
+
var DeleteProjectTaskFileRequestSchema = z82.object({
|
|
5023
|
+
projectId: z82.string(),
|
|
5024
|
+
taskId: z82.string(),
|
|
5025
|
+
fileId: z82.string(),
|
|
5026
|
+
requestingUserId: z82.string().optional()
|
|
5027
|
+
});
|
|
5028
|
+
var SetProjectTaskFileShowcaseRequestSchema = z82.object({
|
|
5029
|
+
projectId: z82.string(),
|
|
5030
|
+
taskId: z82.string(),
|
|
5031
|
+
fileId: z82.string(),
|
|
5032
|
+
showcase: z82.boolean(),
|
|
5033
|
+
requestingUserId: z82.string().optional()
|
|
5034
|
+
});
|
|
5035
|
+
var RequestProjectFileUploadRequestSchema = z82.object({
|
|
5036
|
+
projectId: z82.string(),
|
|
5037
|
+
taskId: z82.string(),
|
|
5038
|
+
fileName: z82.string().min(1).max(255),
|
|
5039
|
+
mimeType: z82.string().min(1).max(128),
|
|
5040
|
+
fileSize: z82.number().int().positive().max(MAX_FILE_SIZE_BYTES2),
|
|
5041
|
+
requestingUserId: z82.string().optional()
|
|
5042
|
+
});
|
|
5043
|
+
var ConfirmProjectFileUploadRequestSchema = z82.object({
|
|
5044
|
+
projectId: z82.string(),
|
|
5045
|
+
taskId: z82.string(),
|
|
5046
|
+
fileId: z82.string(),
|
|
5047
|
+
/** When set, the attachment is also posted to the task chat with this text. */
|
|
5048
|
+
comment: z82.string().max(2e3).optional(),
|
|
5049
|
+
/** Glossary tag names (or ids) this file is an example of. */
|
|
5050
|
+
tags: z82.array(z82.string().min(1).max(MAX_FILE_TAG_LENGTH)).max(MAX_FILE_TAGS2).optional(),
|
|
5051
|
+
/** The card's showcase (its deliverable); always posts to chat, even with no `comment`. */
|
|
5052
|
+
showcase: z82.boolean().optional(),
|
|
5053
|
+
/** Id of an older file on the same card this upload replaces. */
|
|
5054
|
+
supersedes: z82.string().min(1).max(64).optional(),
|
|
5055
|
+
requestingUserId: z82.string().optional()
|
|
5056
|
+
});
|
|
5057
|
+
var RequestWorkspaceRecycleRequestSchema = z92.object({
|
|
5058
|
+
sessionId: z92.string(),
|
|
5059
|
+
reason: z92.string().max(2e3)
|
|
5060
|
+
});
|
|
5061
|
+
var ReportApiOutageRequestSchema = z92.object({
|
|
5062
|
+
sessionId: z92.string(),
|
|
5063
|
+
detail: z92.string().max(2e3),
|
|
5064
|
+
attempts: z92.number().int().min(0).max(100)
|
|
4919
5065
|
});
|
|
4920
5066
|
var CONTEXT_LINK_LOCATOR_MAX2 = 300;
|
|
4921
5067
|
var TAG_DESCRIPTION_MAX = CARD_DESCRIPTION_MAX;
|
|
4922
5068
|
var TAG_OVERVIEW_MAX = 32e3;
|
|
4923
5069
|
var TAG_REASON_MAX = 500;
|
|
4924
|
-
var ProjectTagContextPathSchema =
|
|
4925
|
-
type:
|
|
4926
|
-
path:
|
|
4927
|
-
label:
|
|
5070
|
+
var ProjectTagContextPathSchema = z10.object({
|
|
5071
|
+
type: z10.enum(["rule", "doc", "file", "folder"]),
|
|
5072
|
+
path: z10.string().min(1).max(500),
|
|
5073
|
+
label: z10.string().max(100).optional(),
|
|
4928
5074
|
/** Verified-link tether — text that must keep existing in the file. */
|
|
4929
|
-
locator:
|
|
5075
|
+
locator: z10.string().min(1).max(CONTEXT_LINK_LOCATOR_MAX2).regex(/^[^\r\n]*$/, "Locator cannot contain line breaks").optional(),
|
|
4930
5076
|
/** test = must appear in a real test/describe title; code = any substring. */
|
|
4931
|
-
locatorType:
|
|
5077
|
+
locatorType: z10.enum(["test", "code"]).optional()
|
|
4932
5078
|
}).refine((link) => link.locator === void 0 === (link.locatorType === void 0), {
|
|
4933
5079
|
message: "locator and locatorType must be provided together"
|
|
4934
5080
|
}).refine((link) => link.locator === void 0 || link.type !== "folder", {
|
|
4935
5081
|
message: "folder links cannot carry a locator"
|
|
4936
5082
|
});
|
|
4937
|
-
var hexColor =
|
|
4938
|
-
var overviewPathSchema =
|
|
4939
|
-
var CreateProjectTagRequestSchema =
|
|
4940
|
-
projectId:
|
|
4941
|
-
name:
|
|
5083
|
+
var hexColor = z10.string().regex(/^#[0-9a-fA-F]{6}$/, "Expected #RRGGBB hex color");
|
|
5084
|
+
var overviewPathSchema = z10.string().min(1).max(500).regex(/^[^\r\n]*$/, "Overview path cannot contain line breaks");
|
|
5085
|
+
var CreateProjectTagRequestSchema = z10.object({
|
|
5086
|
+
projectId: z10.string(),
|
|
5087
|
+
name: z10.string().min(1).max(50),
|
|
4942
5088
|
color: hexColor.optional(),
|
|
4943
|
-
description:
|
|
4944
|
-
overview:
|
|
5089
|
+
description: z10.string().max(TAG_DESCRIPTION_MAX).optional(),
|
|
5090
|
+
overview: z10.string().max(TAG_OVERVIEW_MAX).optional(),
|
|
4945
5091
|
/** Source the overview from this repo file (stored overview stays as the pending fallback). */
|
|
4946
5092
|
overviewPath: overviewPathSchema.optional(),
|
|
4947
|
-
contextPaths:
|
|
5093
|
+
contextPaths: z10.array(ProjectTagContextPathSchema).max(20).optional(),
|
|
4948
5094
|
/** Parents to link at create time (multi-parent DAG). */
|
|
4949
|
-
parentTagIds:
|
|
4950
|
-
requestingUserId:
|
|
5095
|
+
parentTagIds: z10.array(z10.string()).max(25).optional(),
|
|
5096
|
+
requestingUserId: z10.string().optional()
|
|
4951
5097
|
});
|
|
4952
|
-
var UpdateProjectTagRequestSchema =
|
|
4953
|
-
projectId:
|
|
4954
|
-
tagId:
|
|
4955
|
-
name:
|
|
5098
|
+
var UpdateProjectTagRequestSchema = z10.object({
|
|
5099
|
+
projectId: z10.string(),
|
|
5100
|
+
tagId: z10.string(),
|
|
5101
|
+
name: z10.string().min(1).max(50).optional(),
|
|
4956
5102
|
color: hexColor.optional(),
|
|
4957
|
-
description:
|
|
5103
|
+
description: z10.string().max(TAG_DESCRIPTION_MAX).optional(),
|
|
4958
5104
|
/** Full markdown glossary body; null clears it. Rejected while overviewPath is set. */
|
|
4959
|
-
overview:
|
|
5105
|
+
overview: z10.string().max(TAG_OVERVIEW_MAX).nullable().optional(),
|
|
4960
5106
|
/** Repo file to source the overview from; null clears back to the stored overview. */
|
|
4961
5107
|
overviewPath: overviewPathSchema.nullable().optional(),
|
|
4962
5108
|
/** Full replacement of the tag's context links when provided. */
|
|
4963
|
-
contextPaths:
|
|
5109
|
+
contextPaths: z10.array(ProjectTagContextPathSchema).max(20).optional(),
|
|
4964
5110
|
/** Full-set replacement of the tag's parent tags (multi-parent DAG). */
|
|
4965
|
-
parentTagIds:
|
|
5111
|
+
parentTagIds: z10.array(z10.string()).max(25).optional(),
|
|
4966
5112
|
/** One-line revision provenance, recorded in the tag's history. */
|
|
4967
|
-
reason:
|
|
5113
|
+
reason: z10.string().max(TAG_REASON_MAX).optional(),
|
|
4968
5114
|
/** Card the caller was working in — stamped into the revision history. */
|
|
4969
|
-
taskId:
|
|
4970
|
-
requestingUserId:
|
|
5115
|
+
taskId: z10.string().optional(),
|
|
5116
|
+
requestingUserId: z10.string().optional()
|
|
4971
5117
|
});
|
|
4972
|
-
var PostToProjectChatRequestSchema =
|
|
4973
|
-
projectId:
|
|
4974
|
-
content:
|
|
4975
|
-
requestingUserId:
|
|
5118
|
+
var PostToProjectChatRequestSchema = z10.object({
|
|
5119
|
+
projectId: z10.string(),
|
|
5120
|
+
content: z10.string().min(1).max(2e4),
|
|
5121
|
+
requestingUserId: z10.string().optional(),
|
|
4976
5122
|
/** Marks the post so the server can persist it beyond chat (tag-audit summaries land in tag history). */
|
|
4977
|
-
kind:
|
|
5123
|
+
kind: z10.enum(["tag_audit_summary"]).optional()
|
|
4978
5124
|
});
|
|
4979
|
-
var StartTagAuditRequestSchema =
|
|
4980
|
-
projectId:
|
|
4981
|
-
requestingUserId:
|
|
5125
|
+
var StartTagAuditRequestSchema = z10.object({
|
|
5126
|
+
projectId: z10.string(),
|
|
5127
|
+
requestingUserId: z10.string().optional()
|
|
4982
5128
|
});
|
|
4983
|
-
var StartTaskAuditRequestSchema =
|
|
4984
|
-
projectId:
|
|
4985
|
-
taskIds:
|
|
4986
|
-
requestingUserId:
|
|
5129
|
+
var StartTaskAuditRequestSchema = z10.object({
|
|
5130
|
+
projectId: z10.string(),
|
|
5131
|
+
taskIds: z10.array(z10.string()).min(1).max(20),
|
|
5132
|
+
requestingUserId: z10.string().optional()
|
|
4987
5133
|
});
|
|
4988
|
-
var GetActiveAuditSessionsRequestSchema =
|
|
4989
|
-
projectId:
|
|
5134
|
+
var GetActiveAuditSessionsRequestSchema = z10.object({
|
|
5135
|
+
projectId: z10.string()
|
|
4990
5136
|
});
|
|
4991
|
-
var ReportTaskAuditResultRequestSchema =
|
|
4992
|
-
projectId:
|
|
4993
|
-
taskId:
|
|
4994
|
-
summary:
|
|
4995
|
-
turnGrades:
|
|
4996
|
-
|
|
4997
|
-
turnIndex:
|
|
4998
|
-
phase:
|
|
4999
|
-
grade:
|
|
5000
|
-
reasoning:
|
|
5001
|
-
eventType:
|
|
5002
|
-
eventSummary:
|
|
5137
|
+
var ReportTaskAuditResultRequestSchema = z10.object({
|
|
5138
|
+
projectId: z10.string(),
|
|
5139
|
+
taskId: z10.string(),
|
|
5140
|
+
summary: z10.string(),
|
|
5141
|
+
turnGrades: z10.array(
|
|
5142
|
+
z10.object({
|
|
5143
|
+
turnIndex: z10.number(),
|
|
5144
|
+
phase: z10.enum(["planning", "building", "human"]),
|
|
5145
|
+
grade: z10.enum(["correct", "neutral", "blunder"]),
|
|
5146
|
+
reasoning: z10.string(),
|
|
5147
|
+
eventType: z10.string(),
|
|
5148
|
+
eventSummary: z10.string()
|
|
5003
5149
|
})
|
|
5004
5150
|
),
|
|
5005
|
-
planningAccuracy:
|
|
5006
|
-
buildingAccuracy:
|
|
5007
|
-
humanAccuracy:
|
|
5008
|
-
planningCorrect:
|
|
5009
|
-
planningNeutral:
|
|
5010
|
-
planningBlunder:
|
|
5011
|
-
buildingCorrect:
|
|
5012
|
-
buildingNeutral:
|
|
5013
|
-
buildingBlunder:
|
|
5014
|
-
humanCorrect:
|
|
5015
|
-
humanNeutral:
|
|
5016
|
-
humanBlunder:
|
|
5017
|
-
humanEvaluations:
|
|
5018
|
-
|
|
5019
|
-
messageIndex:
|
|
5020
|
-
rating:
|
|
5021
|
-
reasoning:
|
|
5151
|
+
planningAccuracy: z10.number().nullable(),
|
|
5152
|
+
buildingAccuracy: z10.number().nullable(),
|
|
5153
|
+
humanAccuracy: z10.number().nullable(),
|
|
5154
|
+
planningCorrect: z10.number(),
|
|
5155
|
+
planningNeutral: z10.number(),
|
|
5156
|
+
planningBlunder: z10.number(),
|
|
5157
|
+
buildingCorrect: z10.number(),
|
|
5158
|
+
buildingNeutral: z10.number(),
|
|
5159
|
+
buildingBlunder: z10.number(),
|
|
5160
|
+
humanCorrect: z10.number(),
|
|
5161
|
+
humanNeutral: z10.number(),
|
|
5162
|
+
humanBlunder: z10.number(),
|
|
5163
|
+
humanEvaluations: z10.array(
|
|
5164
|
+
z10.object({
|
|
5165
|
+
messageIndex: z10.number(),
|
|
5166
|
+
rating: z10.union([z10.literal(-1), z10.literal(0), z10.literal(1)]),
|
|
5167
|
+
reasoning: z10.string()
|
|
5022
5168
|
})
|
|
5023
5169
|
).optional(),
|
|
5024
|
-
suggestionIds:
|
|
5025
|
-
auditCostUsd:
|
|
5026
|
-
model:
|
|
5170
|
+
suggestionIds: z10.array(z10.string()),
|
|
5171
|
+
auditCostUsd: z10.number().nullable(),
|
|
5172
|
+
model: z10.string().nullable(),
|
|
5027
5173
|
/** When set, the audit is marked failed with this message instead. */
|
|
5028
|
-
error:
|
|
5174
|
+
error: z10.string().optional()
|
|
5029
5175
|
});
|
|
5030
|
-
var GetTaskAuditsRequestSchema =
|
|
5031
|
-
projectId:
|
|
5032
|
-
limit:
|
|
5176
|
+
var GetTaskAuditsRequestSchema = z10.object({
|
|
5177
|
+
projectId: z10.string(),
|
|
5178
|
+
limit: z10.number().int().positive().max(200).optional().default(50)
|
|
5033
5179
|
});
|
|
5034
|
-
var GetTaskAuditRequestSchema =
|
|
5035
|
-
projectId:
|
|
5036
|
-
auditId:
|
|
5180
|
+
var GetTaskAuditRequestSchema = z10.object({
|
|
5181
|
+
projectId: z10.string(),
|
|
5182
|
+
auditId: z10.string()
|
|
5037
5183
|
});
|
|
5038
|
-
var GetTaskAuditAggregatesRequestSchema =
|
|
5039
|
-
projectId:
|
|
5184
|
+
var GetTaskAuditAggregatesRequestSchema = z10.object({
|
|
5185
|
+
projectId: z10.string()
|
|
5040
5186
|
});
|
|
5041
|
-
var DeleteTaskAuditRequestSchema =
|
|
5042
|
-
projectId:
|
|
5043
|
-
auditId:
|
|
5044
|
-
requestingUserId:
|
|
5187
|
+
var DeleteTaskAuditRequestSchema = z10.object({
|
|
5188
|
+
projectId: z10.string(),
|
|
5189
|
+
auditId: z10.string(),
|
|
5190
|
+
requestingUserId: z10.string().optional()
|
|
5045
5191
|
});
|
|
5046
|
-
var MarkInitialPromptSubmittedRequestSchema =
|
|
5047
|
-
sessionId:
|
|
5192
|
+
var MarkInitialPromptSubmittedRequestSchema = z10.object({
|
|
5193
|
+
sessionId: z10.string()
|
|
5048
5194
|
});
|
|
5049
5195
|
var DECISION_STATUS_LABELS = ["Open", "Decided", "Cancelled"];
|
|
5050
5196
|
var DECISION_OPTION_KINDS = ["current", "planned", "proposed"];
|
|
@@ -5059,165 +5205,165 @@ var DECISION_DEADLINE_MIN_HOURS = 1;
|
|
|
5059
5205
|
var DECISION_DEADLINE_MAX_DAYS = 30;
|
|
5060
5206
|
var DECISION_DEADLINE_MAX_HOURS = DECISION_DEADLINE_MAX_DAYS * 24;
|
|
5061
5207
|
var DECISION_LIST_MAX_LIMIT = 200;
|
|
5062
|
-
var decisionIdSchema =
|
|
5063
|
-
var optionInputSchema =
|
|
5064
|
-
label:
|
|
5065
|
-
description:
|
|
5066
|
-
kind:
|
|
5208
|
+
var decisionIdSchema = z11.string().cuid("Invalid decision ID");
|
|
5209
|
+
var optionInputSchema = z11.object({
|
|
5210
|
+
label: z11.string().min(1, "Option label is required").max(DECISION_OPTION_LABEL_MAX),
|
|
5211
|
+
description: z11.string().min(1, "Describe the option as GIVEN / WHEN / THEN"),
|
|
5212
|
+
kind: z11.enum(DECISION_OPTION_KINDS).optional()
|
|
5067
5213
|
});
|
|
5068
|
-
var optionsArraySchema =
|
|
5214
|
+
var optionsArraySchema = z11.array(optionInputSchema).min(DECISION_OPTIONS_MIN, `A decision needs at least ${DECISION_OPTIONS_MIN} options`).max(
|
|
5069
5215
|
DECISION_OPTIONS_MAX,
|
|
5070
5216
|
`A decision takes at most ${DECISION_OPTIONS_MAX} options \u2014 more than that means the question is not framed yet`
|
|
5071
5217
|
);
|
|
5072
|
-
var CreateDecisionRequestSchema =
|
|
5073
|
-
projectId:
|
|
5218
|
+
var CreateDecisionRequestSchema = z11.object({
|
|
5219
|
+
projectId: z11.string().cuid("Invalid project ID"),
|
|
5074
5220
|
/** The question, as one plain sentence. */
|
|
5075
|
-
title:
|
|
5076
|
-
description:
|
|
5077
|
-
context:
|
|
5221
|
+
title: z11.string().min(1, "A decision needs a question").max(DECISION_QUESTION_MAX),
|
|
5222
|
+
description: z11.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
5223
|
+
context: z11.string().min(1, "Context is required \u2014 say why this is being asked now"),
|
|
5078
5224
|
options: optionsArraySchema,
|
|
5079
5225
|
/** 1-based position of the option that wins on silence. */
|
|
5080
|
-
defaultOptionOrdinal:
|
|
5081
|
-
deadlineHours:
|
|
5226
|
+
defaultOptionOrdinal: z11.number().int().min(1).max(DECISION_OPTIONS_MAX),
|
|
5227
|
+
deadlineHours: z11.number().min(DECISION_DEADLINE_MIN_HOURS).max(DECISION_DEADLINE_MAX_HOURS).optional(),
|
|
5082
5228
|
/** Cards this decision blocks, by cuid or slug. */
|
|
5083
|
-
impactedCardRefs:
|
|
5084
|
-
tagNames:
|
|
5085
|
-
raisedByTaskId:
|
|
5086
|
-
raisedByPrNumber:
|
|
5229
|
+
impactedCardRefs: z11.array(z11.string().min(1)).max(50).optional(),
|
|
5230
|
+
tagNames: z11.array(z11.string().min(1)).max(10).optional(),
|
|
5231
|
+
raisedByTaskId: z11.string().min(1).optional(),
|
|
5232
|
+
raisedByPrNumber: z11.number().int().positive().optional()
|
|
5087
5233
|
});
|
|
5088
|
-
var VoteDecisionRequestSchema =
|
|
5234
|
+
var VoteDecisionRequestSchema = z11.object({
|
|
5089
5235
|
decisionId: decisionIdSchema,
|
|
5090
|
-
optionId:
|
|
5091
|
-
reason:
|
|
5092
|
-
source:
|
|
5236
|
+
optionId: z11.string().cuid("Invalid option ID"),
|
|
5237
|
+
reason: z11.string().max(DECISION_VOTE_REASON_MAX).optional(),
|
|
5238
|
+
source: z11.enum(DECISION_VOTE_SOURCES).optional()
|
|
5093
5239
|
});
|
|
5094
|
-
var RemoveDecisionVoteRequestSchema =
|
|
5240
|
+
var RemoveDecisionVoteRequestSchema = z11.object({
|
|
5095
5241
|
decisionId: decisionIdSchema
|
|
5096
5242
|
});
|
|
5097
|
-
var ResolveDecisionRequestSchema =
|
|
5243
|
+
var ResolveDecisionRequestSchema = z11.object({
|
|
5098
5244
|
decisionId: decisionIdSchema,
|
|
5099
|
-
chosenOptionId:
|
|
5100
|
-
resolution:
|
|
5101
|
-
resolutionNotes:
|
|
5245
|
+
chosenOptionId: z11.string().cuid("Invalid option ID"),
|
|
5246
|
+
resolution: z11.string().min(1, "A resolution is required \u2014 say what was decided").max(DECISION_RESOLUTION_MAX),
|
|
5247
|
+
resolutionNotes: z11.string().optional()
|
|
5102
5248
|
});
|
|
5103
|
-
var CancelDecisionRequestSchema =
|
|
5249
|
+
var CancelDecisionRequestSchema = z11.object({
|
|
5104
5250
|
decisionId: decisionIdSchema,
|
|
5105
5251
|
/** Why it is being dropped. Posted to the decision thread. */
|
|
5106
|
-
reason:
|
|
5252
|
+
reason: z11.string().max(DECISION_RESOLUTION_MAX).optional()
|
|
5107
5253
|
});
|
|
5108
|
-
var BulkDecisionIdsRequestSchema =
|
|
5109
|
-
projectId:
|
|
5110
|
-
decisionIds:
|
|
5254
|
+
var BulkDecisionIdsRequestSchema = z11.object({
|
|
5255
|
+
projectId: z11.string().cuid("Invalid project ID"),
|
|
5256
|
+
decisionIds: z11.array(z11.string().cuid()).min(1).max(200)
|
|
5111
5257
|
});
|
|
5112
|
-
var ReopenDecisionRequestSchema =
|
|
5258
|
+
var ReopenDecisionRequestSchema = z11.object({
|
|
5113
5259
|
decisionId: decisionIdSchema,
|
|
5114
|
-
deadlineHours:
|
|
5260
|
+
deadlineHours: z11.number().min(DECISION_DEADLINE_MIN_HOURS).max(DECISION_DEADLINE_MAX_HOURS).optional()
|
|
5115
5261
|
});
|
|
5116
|
-
var UpdateDecisionRequestSchema =
|
|
5262
|
+
var UpdateDecisionRequestSchema = z11.object({
|
|
5117
5263
|
decisionId: decisionIdSchema,
|
|
5118
|
-
title:
|
|
5119
|
-
description:
|
|
5120
|
-
context:
|
|
5121
|
-
deadlineAt:
|
|
5264
|
+
title: z11.string().min(1).max(200).optional(),
|
|
5265
|
+
description: z11.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
5266
|
+
context: z11.string().min(1).optional(),
|
|
5267
|
+
deadlineAt: z11.string().datetime().optional(),
|
|
5122
5268
|
/** Only accepted while the decision has zero votes. */
|
|
5123
5269
|
options: optionsArraySchema.optional(),
|
|
5124
|
-
defaultOptionOrdinal:
|
|
5125
|
-
addImpactedCardRefs:
|
|
5126
|
-
removeImpactedCardIds:
|
|
5270
|
+
defaultOptionOrdinal: z11.number().int().min(1).max(DECISION_OPTIONS_MAX).optional(),
|
|
5271
|
+
addImpactedCardRefs: z11.array(z11.string().min(1)).max(50).optional(),
|
|
5272
|
+
removeImpactedCardIds: z11.array(z11.string().min(1)).max(50).optional()
|
|
5127
5273
|
});
|
|
5128
|
-
var GetDecisionRequestSchema =
|
|
5274
|
+
var GetDecisionRequestSchema = z11.object({
|
|
5129
5275
|
/** cuid or slug. A slug needs `projectId` to resolve unambiguously. */
|
|
5130
|
-
decisionId:
|
|
5131
|
-
projectId:
|
|
5276
|
+
decisionId: z11.string().min(1),
|
|
5277
|
+
projectId: z11.string().cuid().optional()
|
|
5132
5278
|
});
|
|
5133
|
-
var ListDecisionsRequestSchema =
|
|
5134
|
-
projectId:
|
|
5135
|
-
status:
|
|
5279
|
+
var ListDecisionsRequestSchema = z11.object({
|
|
5280
|
+
projectId: z11.string().cuid("Invalid project ID"),
|
|
5281
|
+
status: z11.enum(DECISION_STATUS_LABELS).optional(),
|
|
5136
5282
|
/** Tag name, not id — an agent knows the tag it is working under. */
|
|
5137
|
-
tag:
|
|
5283
|
+
tag: z11.string().min(1).optional(),
|
|
5138
5284
|
/** Decisions that this card is blocked by (cuid or slug). */
|
|
5139
|
-
cardId:
|
|
5140
|
-
query:
|
|
5141
|
-
limit:
|
|
5142
|
-
});
|
|
5143
|
-
var optionInput =
|
|
5144
|
-
label:
|
|
5145
|
-
description:
|
|
5146
|
-
kind:
|
|
5147
|
-
});
|
|
5148
|
-
var optionsInput =
|
|
5149
|
-
var deadlineHours =
|
|
5150
|
-
var CreateProjectDecisionRequestSchema =
|
|
5151
|
-
projectId:
|
|
5152
|
-
question:
|
|
5153
|
-
summary:
|
|
5154
|
-
context:
|
|
5285
|
+
cardId: z11.string().min(1).optional(),
|
|
5286
|
+
query: z11.string().min(1).optional(),
|
|
5287
|
+
limit: z11.number().int().min(1).max(DECISION_LIST_MAX_LIMIT).optional()
|
|
5288
|
+
});
|
|
5289
|
+
var optionInput = z12.object({
|
|
5290
|
+
label: z12.string().min(1).max(DECISION_OPTION_LABEL_MAX),
|
|
5291
|
+
description: z12.string().min(1),
|
|
5292
|
+
kind: z12.enum(DECISION_OPTION_KINDS).optional()
|
|
5293
|
+
});
|
|
5294
|
+
var optionsInput = z12.array(optionInput).min(DECISION_OPTIONS_MIN).max(DECISION_OPTIONS_MAX);
|
|
5295
|
+
var deadlineHours = z12.number().min(DECISION_DEADLINE_MIN_HOURS).max(DECISION_DEADLINE_MAX_HOURS).optional();
|
|
5296
|
+
var CreateProjectDecisionRequestSchema = z12.object({
|
|
5297
|
+
projectId: z12.string(),
|
|
5298
|
+
question: z12.string().min(1).max(200),
|
|
5299
|
+
summary: z12.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
5300
|
+
context: z12.string().min(1),
|
|
5155
5301
|
options: optionsInput,
|
|
5156
|
-
defaultOption:
|
|
5302
|
+
defaultOption: z12.number().int().min(1).max(DECISION_OPTIONS_MAX),
|
|
5157
5303
|
deadlineHours,
|
|
5158
|
-
impactedCards:
|
|
5304
|
+
impactedCards: z12.array(z12.string().min(1)).max(50).optional(),
|
|
5159
5305
|
/**
|
|
5160
5306
|
* Pod surface only: also block the card this session is working on. The
|
|
5161
5307
|
* session's task id is resolved SERVER-side from `sessionId` — a
|
|
5162
5308
|
* client-supplied card id would let a pod block any card in the project.
|
|
5163
5309
|
*/
|
|
5164
|
-
includeCurrentCard:
|
|
5165
|
-
sessionId:
|
|
5166
|
-
tagNames:
|
|
5167
|
-
raisedByPr:
|
|
5310
|
+
includeCurrentCard: z12.boolean().optional(),
|
|
5311
|
+
sessionId: z12.string().optional(),
|
|
5312
|
+
tagNames: z12.array(z12.string().min(1)).max(10).optional(),
|
|
5313
|
+
raisedByPr: z12.number().int().positive().optional(),
|
|
5168
5314
|
/** Slug or id of the card that raised the question. A link back, not a block. */
|
|
5169
|
-
raisedByCard:
|
|
5315
|
+
raisedByCard: z12.string().min(1).optional(),
|
|
5170
5316
|
/** Absolute deadline (ISO 8601). Wins over `deadlineHours` when both are sent. */
|
|
5171
|
-
deadlineAt:
|
|
5172
|
-
requestingUserId:
|
|
5317
|
+
deadlineAt: z12.string().datetime({ offset: true }).optional(),
|
|
5318
|
+
requestingUserId: z12.string().optional()
|
|
5173
5319
|
});
|
|
5174
|
-
var ListProjectDecisionsRequestSchema =
|
|
5175
|
-
projectId:
|
|
5176
|
-
status:
|
|
5177
|
-
tag:
|
|
5178
|
-
card:
|
|
5179
|
-
query:
|
|
5180
|
-
limit:
|
|
5181
|
-
requestingUserId:
|
|
5320
|
+
var ListProjectDecisionsRequestSchema = z12.object({
|
|
5321
|
+
projectId: z12.string(),
|
|
5322
|
+
status: z12.enum(DECISION_STATUS_LABELS).optional(),
|
|
5323
|
+
tag: z12.string().min(1).optional(),
|
|
5324
|
+
card: z12.string().min(1).optional(),
|
|
5325
|
+
query: z12.string().min(1).optional(),
|
|
5326
|
+
limit: z12.number().int().min(1).max(DECISION_LIST_MAX_LIMIT).optional(),
|
|
5327
|
+
requestingUserId: z12.string().optional()
|
|
5182
5328
|
});
|
|
5183
|
-
var GetProjectDecisionRequestSchema =
|
|
5184
|
-
projectId:
|
|
5185
|
-
decision:
|
|
5186
|
-
requestingUserId:
|
|
5329
|
+
var GetProjectDecisionRequestSchema = z12.object({
|
|
5330
|
+
projectId: z12.string(),
|
|
5331
|
+
decision: z12.string().min(1),
|
|
5332
|
+
requestingUserId: z12.string().optional()
|
|
5187
5333
|
});
|
|
5188
|
-
var VoteProjectDecisionRequestSchema =
|
|
5189
|
-
projectId:
|
|
5190
|
-
decision:
|
|
5334
|
+
var VoteProjectDecisionRequestSchema = z12.object({
|
|
5335
|
+
projectId: z12.string(),
|
|
5336
|
+
decision: z12.string().min(1),
|
|
5191
5337
|
/** An option id, or its 1-based position. */
|
|
5192
|
-
option:
|
|
5193
|
-
reason:
|
|
5194
|
-
requestingUserId:
|
|
5338
|
+
option: z12.string().min(1),
|
|
5339
|
+
reason: z12.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
5340
|
+
requestingUserId: z12.string().optional()
|
|
5195
5341
|
});
|
|
5196
|
-
var ResolveProjectDecisionRequestSchema =
|
|
5197
|
-
projectId:
|
|
5198
|
-
decision:
|
|
5199
|
-
option:
|
|
5200
|
-
resolution:
|
|
5201
|
-
notes:
|
|
5202
|
-
requestingUserId:
|
|
5342
|
+
var ResolveProjectDecisionRequestSchema = z12.object({
|
|
5343
|
+
projectId: z12.string(),
|
|
5344
|
+
decision: z12.string().min(1),
|
|
5345
|
+
option: z12.string().min(1),
|
|
5346
|
+
resolution: z12.string().min(1).max(DECISION_RESOLUTION_MAX),
|
|
5347
|
+
notes: z12.string().optional(),
|
|
5348
|
+
requestingUserId: z12.string().optional()
|
|
5203
5349
|
});
|
|
5204
|
-
var UpdateProjectDecisionRequestSchema =
|
|
5205
|
-
projectId:
|
|
5206
|
-
decision:
|
|
5207
|
-
question:
|
|
5208
|
-
summary:
|
|
5209
|
-
context:
|
|
5350
|
+
var UpdateProjectDecisionRequestSchema = z12.object({
|
|
5351
|
+
projectId: z12.string(),
|
|
5352
|
+
decision: z12.string().min(1),
|
|
5353
|
+
question: z12.string().min(1).max(200).optional(),
|
|
5354
|
+
summary: z12.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
5355
|
+
context: z12.string().min(1).optional(),
|
|
5210
5356
|
/** Accepted only while nobody has voted. */
|
|
5211
5357
|
options: optionsInput.optional(),
|
|
5212
|
-
defaultOption:
|
|
5213
|
-
tagNames:
|
|
5358
|
+
defaultOption: z12.number().int().min(1).max(DECISION_OPTIONS_MAX).optional(),
|
|
5359
|
+
tagNames: z12.array(z12.string().min(1)).max(10).optional(),
|
|
5214
5360
|
deadlineHours,
|
|
5215
5361
|
/** Absolute deadline (ISO 8601). Wins over `deadlineHours` when both are sent. */
|
|
5216
|
-
deadlineAt:
|
|
5217
|
-
addImpactedCards:
|
|
5218
|
-
removeImpactedCards:
|
|
5219
|
-
status:
|
|
5220
|
-
requestingUserId:
|
|
5362
|
+
deadlineAt: z12.string().datetime({ offset: true }).optional(),
|
|
5363
|
+
addImpactedCards: z12.array(z12.string().min(1)).max(50).optional(),
|
|
5364
|
+
removeImpactedCards: z12.array(z12.string().min(1)).max(50).optional(),
|
|
5365
|
+
status: z12.enum(["Cancelled", "Open"]).optional(),
|
|
5366
|
+
requestingUserId: z12.string().optional()
|
|
5221
5367
|
});
|
|
5222
5368
|
var EVALUATE_MAX_QUESTIONS = 32;
|
|
5223
5369
|
var EVALUATE_MAX_ITEMS = 100;
|
|
@@ -5225,29 +5371,29 @@ var EVALUATE_ITEM_MAX_CHARS = 8e3;
|
|
|
5225
5371
|
var EVALUATE_REQUEST_MAX_CHARS = 4e5;
|
|
5226
5372
|
var TEXT_MAX = 1e3;
|
|
5227
5373
|
var QUESTION_KEY = /^[A-Za-z0-9_-]{1,64}$/;
|
|
5228
|
-
var EvaluateQuestionSchema =
|
|
5229
|
-
key:
|
|
5230
|
-
type:
|
|
5231
|
-
instructions:
|
|
5232
|
-
options:
|
|
5233
|
-
|
|
5234
|
-
key:
|
|
5235
|
-
description:
|
|
5374
|
+
var EvaluateQuestionSchema = z13.object({
|
|
5375
|
+
key: z13.string().regex(QUESTION_KEY, "key must be 1-64 letters, digits, _ or -"),
|
|
5376
|
+
type: z13.enum(["noul", "choice", "score"]),
|
|
5377
|
+
instructions: z13.string().min(1).max(4e3),
|
|
5378
|
+
options: z13.array(
|
|
5379
|
+
z13.object({
|
|
5380
|
+
key: z13.string().min(1).max(200),
|
|
5381
|
+
description: z13.string().min(1).max(TEXT_MAX)
|
|
5236
5382
|
})
|
|
5237
5383
|
).optional(),
|
|
5238
|
-
levels:
|
|
5384
|
+
levels: z13.array(z13.string().min(1).max(TEXT_MAX)).optional()
|
|
5239
5385
|
}).superRefine((q, ctx) => {
|
|
5240
5386
|
if (q.type === "choice") {
|
|
5241
5387
|
const n = q.options?.length ?? 0;
|
|
5242
5388
|
if (n < 2 || n > 255) {
|
|
5243
5389
|
ctx.addIssue({
|
|
5244
|
-
code:
|
|
5390
|
+
code: z13.ZodIssueCode.custom,
|
|
5245
5391
|
path: ["options"],
|
|
5246
5392
|
message: "a choice question needs 2-255 options"
|
|
5247
5393
|
});
|
|
5248
5394
|
} else if (new Set(q.options?.map((o) => o.key)).size !== n) {
|
|
5249
5395
|
ctx.addIssue({
|
|
5250
|
-
code:
|
|
5396
|
+
code: z13.ZodIssueCode.custom,
|
|
5251
5397
|
path: ["options"],
|
|
5252
5398
|
message: "option keys must be unique"
|
|
5253
5399
|
});
|
|
@@ -5257,36 +5403,36 @@ var EvaluateQuestionSchema = z11.object({
|
|
|
5257
5403
|
const n = q.levels?.length ?? 0;
|
|
5258
5404
|
if (n < 2 || n > 10) {
|
|
5259
5405
|
ctx.addIssue({
|
|
5260
|
-
code:
|
|
5406
|
+
code: z13.ZodIssueCode.custom,
|
|
5261
5407
|
path: ["levels"],
|
|
5262
5408
|
message: "a score question needs 2-10 levels"
|
|
5263
5409
|
});
|
|
5264
5410
|
}
|
|
5265
5411
|
}
|
|
5266
5412
|
});
|
|
5267
|
-
var EvaluateQuestionsRequestSchema =
|
|
5268
|
-
projectId:
|
|
5269
|
-
state:
|
|
5270
|
-
items:
|
|
5271
|
-
questions:
|
|
5413
|
+
var EvaluateQuestionsRequestSchema = z13.object({
|
|
5414
|
+
projectId: z13.string(),
|
|
5415
|
+
state: z13.string().max(JEV_STATE_MAX_CHARS).optional(),
|
|
5416
|
+
items: z13.array(z13.string().max(EVALUATE_ITEM_MAX_CHARS)).max(EVALUATE_MAX_ITEMS).optional(),
|
|
5417
|
+
questions: z13.array(EvaluateQuestionSchema).min(1).max(EVALUATE_MAX_QUESTIONS)
|
|
5272
5418
|
}).superRefine((req, ctx) => {
|
|
5273
5419
|
if (req.state === void 0 && (!req.items || req.items.length === 0)) {
|
|
5274
5420
|
ctx.addIssue({
|
|
5275
|
-
code:
|
|
5421
|
+
code: z13.ZodIssueCode.custom,
|
|
5276
5422
|
path: ["state"],
|
|
5277
5423
|
message: "pass state, or a non-empty items array"
|
|
5278
5424
|
});
|
|
5279
5425
|
}
|
|
5280
5426
|
if (JSON.stringify(req).length > EVALUATE_REQUEST_MAX_CHARS) {
|
|
5281
5427
|
ctx.addIssue({
|
|
5282
|
-
code:
|
|
5428
|
+
code: z13.ZodIssueCode.custom,
|
|
5283
5429
|
path: [],
|
|
5284
5430
|
message: `the request is over ${EVALUATE_REQUEST_MAX_CHARS} characters; split the items across calls`
|
|
5285
5431
|
});
|
|
5286
5432
|
}
|
|
5287
5433
|
if (new Set(req.questions.map((q) => q.key)).size !== req.questions.length) {
|
|
5288
5434
|
ctx.addIssue({
|
|
5289
|
-
code:
|
|
5435
|
+
code: z13.ZodIssueCode.custom,
|
|
5290
5436
|
path: ["questions"],
|
|
5291
5437
|
message: "question keys must be unique"
|
|
5292
5438
|
});
|
|
@@ -5324,129 +5470,129 @@ var MEETING_TITLE_MAX = 200;
|
|
|
5324
5470
|
var MEETING_OCCURRED_AT_MIN_YEAR = 2e3;
|
|
5325
5471
|
var MEETING_OCCURRED_AT_MAX_FUTURE_MS = 48 * 60 * 60 * 1e3;
|
|
5326
5472
|
var OCCURRED_AT_RANGE_MESSAGE = `occurredAt must be a real date: no earlier than ${MEETING_OCCURRED_AT_MIN_YEAR}, and no more than 48 hours in the future.`;
|
|
5327
|
-
var MeetingOccurredAtSchema =
|
|
5473
|
+
var MeetingOccurredAtSchema = z14.string().datetime().refine((value) => {
|
|
5328
5474
|
const ms = Date.parse(value);
|
|
5329
5475
|
if (Number.isNaN(ms)) return false;
|
|
5330
5476
|
if (ms > Date.now() + MEETING_OCCURRED_AT_MAX_FUTURE_MS) return false;
|
|
5331
5477
|
return new Date(ms).getUTCFullYear() >= MEETING_OCCURRED_AT_MIN_YEAR;
|
|
5332
5478
|
}, OCCURRED_AT_RANGE_MESSAGE);
|
|
5333
|
-
var CreateMeetingFromTranscriptRequestSchema =
|
|
5334
|
-
projectId:
|
|
5335
|
-
rawText:
|
|
5336
|
-
title:
|
|
5479
|
+
var CreateMeetingFromTranscriptRequestSchema = z14.object({
|
|
5480
|
+
projectId: z14.string().cuid(),
|
|
5481
|
+
rawText: z14.string().min(1).max(MEETING_TRANSCRIPT_MAX_CHARS),
|
|
5482
|
+
title: z14.string().min(1).max(MEETING_TITLE_MAX).optional(),
|
|
5337
5483
|
/** ISO 8601. Defaults to now when the source carries no date. */
|
|
5338
5484
|
occurredAt: MeetingOccurredAtSchema.optional(),
|
|
5339
5485
|
/** Override auto-detection. Rarely needed; detection handles the three formats. */
|
|
5340
|
-
format:
|
|
5341
|
-
source:
|
|
5486
|
+
format: z14.enum(["text", "vtt", "srt"]).optional(),
|
|
5487
|
+
source: z14.enum(["manual", "slack"]).optional()
|
|
5342
5488
|
});
|
|
5343
|
-
var GetMeetingRequestSchema =
|
|
5344
|
-
projectId:
|
|
5345
|
-
meetingId:
|
|
5489
|
+
var GetMeetingRequestSchema = z14.object({
|
|
5490
|
+
projectId: z14.string().cuid(),
|
|
5491
|
+
meetingId: z14.string().cuid()
|
|
5346
5492
|
});
|
|
5347
|
-
var UpdateMeetingRequestSchema =
|
|
5348
|
-
projectId:
|
|
5349
|
-
meetingId:
|
|
5350
|
-
title:
|
|
5493
|
+
var UpdateMeetingRequestSchema = z14.object({
|
|
5494
|
+
projectId: z14.string().cuid(),
|
|
5495
|
+
meetingId: z14.string().cuid(),
|
|
5496
|
+
title: z14.string().min(1).max(MEETING_TITLE_MAX).optional(),
|
|
5351
5497
|
occurredAt: MeetingOccurredAtSchema.optional()
|
|
5352
5498
|
});
|
|
5353
|
-
var RegenerateMeetingSummaryRequestSchema =
|
|
5354
|
-
projectId:
|
|
5355
|
-
meetingId:
|
|
5499
|
+
var RegenerateMeetingSummaryRequestSchema = z14.object({
|
|
5500
|
+
projectId: z14.string().cuid(),
|
|
5501
|
+
meetingId: z14.string().cuid()
|
|
5356
5502
|
});
|
|
5357
|
-
var DeleteMeetingRequestSchema =
|
|
5358
|
-
projectId:
|
|
5359
|
-
meetingId:
|
|
5503
|
+
var DeleteMeetingRequestSchema = z14.object({
|
|
5504
|
+
projectId: z14.string().cuid(),
|
|
5505
|
+
meetingId: z14.string().cuid()
|
|
5360
5506
|
});
|
|
5361
|
-
var checklistTitle =
|
|
5362
|
-
var ListMeetingChecklistRequestSchema =
|
|
5363
|
-
projectId:
|
|
5364
|
-
meetingId:
|
|
5507
|
+
var checklistTitle = z14.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX);
|
|
5508
|
+
var ListMeetingChecklistRequestSchema = z14.object({
|
|
5509
|
+
projectId: z14.string().cuid(),
|
|
5510
|
+
meetingId: z14.string().cuid()
|
|
5365
5511
|
});
|
|
5366
|
-
var AddMeetingChecklistItemsRequestSchema =
|
|
5367
|
-
projectId:
|
|
5368
|
-
meetingId:
|
|
5369
|
-
items:
|
|
5512
|
+
var AddMeetingChecklistItemsRequestSchema = z14.object({
|
|
5513
|
+
projectId: z14.string().cuid(),
|
|
5514
|
+
meetingId: z14.string().cuid(),
|
|
5515
|
+
items: z14.array(z14.object({ title: checklistTitle })).min(1).max(50)
|
|
5370
5516
|
});
|
|
5371
|
-
var UpdateMeetingChecklistItemRequestSchema =
|
|
5372
|
-
projectId:
|
|
5373
|
-
meetingId:
|
|
5374
|
-
itemId:
|
|
5517
|
+
var UpdateMeetingChecklistItemRequestSchema = z14.object({
|
|
5518
|
+
projectId: z14.string().cuid(),
|
|
5519
|
+
meetingId: z14.string().cuid(),
|
|
5520
|
+
itemId: z14.string().cuid(),
|
|
5375
5521
|
title: checklistTitle.optional(),
|
|
5376
|
-
ordinal:
|
|
5522
|
+
ordinal: z14.number().int().min(0).optional(),
|
|
5377
5523
|
/** Explicit null clears the link; undefined leaves it alone. */
|
|
5378
|
-
linkedTaskId:
|
|
5524
|
+
linkedTaskId: z14.string().cuid().nullable().optional()
|
|
5379
5525
|
}).refine(
|
|
5380
5526
|
(v) => v.title !== void 0 || v.ordinal !== void 0 || v.linkedTaskId !== void 0,
|
|
5381
5527
|
"Pass at least one of title, ordinal, or linkedTaskId."
|
|
5382
5528
|
);
|
|
5383
|
-
var DeleteMeetingChecklistItemRequestSchema =
|
|
5384
|
-
projectId:
|
|
5385
|
-
meetingId:
|
|
5386
|
-
itemId:
|
|
5387
|
-
});
|
|
5388
|
-
var SetMeetingChecklistItemCheckedRequestSchema =
|
|
5389
|
-
projectId:
|
|
5390
|
-
meetingId:
|
|
5391
|
-
itemId:
|
|
5392
|
-
checked:
|
|
5529
|
+
var DeleteMeetingChecklistItemRequestSchema = z14.object({
|
|
5530
|
+
projectId: z14.string().cuid(),
|
|
5531
|
+
meetingId: z14.string().cuid(),
|
|
5532
|
+
itemId: z14.string().cuid()
|
|
5533
|
+
});
|
|
5534
|
+
var SetMeetingChecklistItemCheckedRequestSchema = z14.object({
|
|
5535
|
+
projectId: z14.string().cuid(),
|
|
5536
|
+
meetingId: z14.string().cuid(),
|
|
5537
|
+
itemId: z14.string().cuid(),
|
|
5538
|
+
checked: z14.boolean(),
|
|
5393
5539
|
/** Attach the card in the same call that ticks the item. */
|
|
5394
|
-
linkedTaskId:
|
|
5540
|
+
linkedTaskId: z14.string().cuid().nullable().optional()
|
|
5395
5541
|
});
|
|
5396
|
-
var ListMeetingsRequestSchema =
|
|
5397
|
-
projectId:
|
|
5398
|
-
limit:
|
|
5399
|
-
search:
|
|
5542
|
+
var ListMeetingsRequestSchema = z14.object({
|
|
5543
|
+
projectId: z14.string().cuid(),
|
|
5544
|
+
limit: z14.number().int().min(1).max(50).optional(),
|
|
5545
|
+
search: z14.string().max(200).optional()
|
|
5400
5546
|
});
|
|
5401
|
-
var ReadMeetingTranscriptRequestSchema =
|
|
5402
|
-
projectId:
|
|
5403
|
-
meetingId:
|
|
5404
|
-
offset:
|
|
5405
|
-
limit:
|
|
5547
|
+
var ReadMeetingTranscriptRequestSchema = z14.object({
|
|
5548
|
+
projectId: z14.string().cuid(),
|
|
5549
|
+
meetingId: z14.string().cuid(),
|
|
5550
|
+
offset: z14.number().int().min(0).optional(),
|
|
5551
|
+
limit: z14.number().int().min(1).max(500).optional()
|
|
5406
5552
|
});
|
|
5407
5553
|
var MEETING_SUMMARY_MAX_CHARS = 5e4;
|
|
5408
|
-
var AddProjectMeetingChecklistItemsRequestSchema =
|
|
5409
|
-
projectId:
|
|
5410
|
-
meetingId:
|
|
5411
|
-
items:
|
|
5412
|
-
requestingUserId:
|
|
5413
|
-
});
|
|
5414
|
-
var CheckProjectMeetingChecklistItemRequestSchema =
|
|
5415
|
-
projectId:
|
|
5416
|
-
meetingId:
|
|
5417
|
-
title:
|
|
5418
|
-
checked:
|
|
5554
|
+
var AddProjectMeetingChecklistItemsRequestSchema = z14.object({
|
|
5555
|
+
projectId: z14.string().cuid(),
|
|
5556
|
+
meetingId: z14.string().cuid(),
|
|
5557
|
+
items: z14.array(z14.object({ title: z14.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX) })).min(1).max(50),
|
|
5558
|
+
requestingUserId: z14.string().optional()
|
|
5559
|
+
});
|
|
5560
|
+
var CheckProjectMeetingChecklistItemRequestSchema = z14.object({
|
|
5561
|
+
projectId: z14.string().cuid(),
|
|
5562
|
+
meetingId: z14.string().cuid(),
|
|
5563
|
+
title: z14.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
|
|
5564
|
+
checked: z14.boolean(),
|
|
5419
5565
|
/** Card id or slug. Resolved server-side and required to be in the project. */
|
|
5420
|
-
linkedTask:
|
|
5421
|
-
requestingUserId:
|
|
5422
|
-
});
|
|
5423
|
-
var EditProjectMeetingChecklistItemRequestSchema =
|
|
5424
|
-
projectId:
|
|
5425
|
-
meetingId:
|
|
5426
|
-
title:
|
|
5427
|
-
newTitle:
|
|
5428
|
-
requestingUserId:
|
|
5429
|
-
});
|
|
5430
|
-
var RemoveProjectMeetingChecklistItemRequestSchema =
|
|
5431
|
-
projectId:
|
|
5432
|
-
meetingId:
|
|
5433
|
-
title:
|
|
5434
|
-
requestingUserId:
|
|
5435
|
-
});
|
|
5436
|
-
var CreateProjectMeetingRequestSchema =
|
|
5437
|
-
projectId:
|
|
5438
|
-
rawText:
|
|
5439
|
-
title:
|
|
5566
|
+
linkedTask: z14.string().min(1).optional(),
|
|
5567
|
+
requestingUserId: z14.string().optional()
|
|
5568
|
+
});
|
|
5569
|
+
var EditProjectMeetingChecklistItemRequestSchema = z14.object({
|
|
5570
|
+
projectId: z14.string().cuid(),
|
|
5571
|
+
meetingId: z14.string().cuid(),
|
|
5572
|
+
title: z14.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
|
|
5573
|
+
newTitle: z14.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
|
|
5574
|
+
requestingUserId: z14.string().optional()
|
|
5575
|
+
});
|
|
5576
|
+
var RemoveProjectMeetingChecklistItemRequestSchema = z14.object({
|
|
5577
|
+
projectId: z14.string().cuid(),
|
|
5578
|
+
meetingId: z14.string().cuid(),
|
|
5579
|
+
title: z14.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
|
|
5580
|
+
requestingUserId: z14.string().optional()
|
|
5581
|
+
});
|
|
5582
|
+
var CreateProjectMeetingRequestSchema = z14.object({
|
|
5583
|
+
projectId: z14.string().cuid(),
|
|
5584
|
+
rawText: z14.string().min(1).max(MEETING_TRANSCRIPT_MAX_CHARS),
|
|
5585
|
+
title: z14.string().min(1).max(MEETING_TITLE_MAX).optional(),
|
|
5440
5586
|
occurredAt: MeetingOccurredAtSchema.optional(),
|
|
5441
|
-
requestingUserId:
|
|
5587
|
+
requestingUserId: z14.string().optional()
|
|
5442
5588
|
});
|
|
5443
|
-
var UpdateProjectMeetingRequestSchema =
|
|
5444
|
-
projectId:
|
|
5445
|
-
meetingId:
|
|
5446
|
-
title:
|
|
5589
|
+
var UpdateProjectMeetingRequestSchema = z14.object({
|
|
5590
|
+
projectId: z14.string().cuid(),
|
|
5591
|
+
meetingId: z14.string().cuid(),
|
|
5592
|
+
title: z14.string().min(1).max(MEETING_TITLE_MAX).optional(),
|
|
5447
5593
|
occurredAt: MeetingOccurredAtSchema.optional(),
|
|
5448
|
-
summary:
|
|
5449
|
-
requestingUserId:
|
|
5594
|
+
summary: z14.string().min(1).max(MEETING_SUMMARY_MAX_CHARS).optional(),
|
|
5595
|
+
requestingUserId: z14.string().optional()
|
|
5450
5596
|
}).refine(
|
|
5451
5597
|
(v) => v.title !== void 0 || v.occurredAt !== void 0 || v.summary !== void 0,
|
|
5452
5598
|
"Pass at least one of title, occurredAt, or summary."
|
|
@@ -5471,8 +5617,8 @@ function anthropicEntry(model, label, inputPerMillion, outputPerMillion, opts =
|
|
|
5471
5617
|
var ANTHROPIC_CATALOG = [
|
|
5472
5618
|
anthropicEntry(DEFAULT_OPUS_MODEL, "Opus 5.5 Latest", 4, 20),
|
|
5473
5619
|
anthropicEntry(PREVIOUS_OPUS_MODEL, "Opus 5", 5, 25),
|
|
5474
|
-
anthropicEntry(DEFAULT_SONNET_MODEL, "Sonnet 5 Latest",
|
|
5475
|
-
anthropicEntry(PREVIOUS_SONNET_MODEL, "Sonnet
|
|
5620
|
+
anthropicEntry(DEFAULT_SONNET_MODEL, "Sonnet 5.5 Latest", 2, 10),
|
|
5621
|
+
anthropicEntry(PREVIOUS_SONNET_MODEL, "Sonnet 5", 2, 10),
|
|
5476
5622
|
// The Haiku line (4.5 and older) predates the tuning surface and 400s on it.
|
|
5477
5623
|
anthropicEntry(DEFAULT_HAIKU_MODEL, "Haiku 4.5", 1, 5, { supportsEffort: false }),
|
|
5478
5624
|
anthropicEntry(FABLE_MODEL, "Fable 5.1", 10, 50)
|
|
@@ -5480,6 +5626,11 @@ var ANTHROPIC_CATALOG = [
|
|
|
5480
5626
|
var CLAUDESPACE_WORKLOAD_LABEL = "rc-workload";
|
|
5481
5627
|
var CLAUDESPACE_WORKLOAD_VALUE = "claudespace";
|
|
5482
5628
|
var CONVEYOR_POD_SELECTOR = `${CLAUDESPACE_WORKLOAD_LABEL}=${CLAUDESPACE_WORKLOAD_VALUE}`;
|
|
5629
|
+
var PERSONAL_LOCAL_REGISTRY_NAMESPACE = "conveyor-system";
|
|
5630
|
+
var PERSONAL_LOCAL_REGISTRY_NAME = "conveyor-registry";
|
|
5631
|
+
var PERSONAL_LOCAL_REGISTRY_PORT = 5e3;
|
|
5632
|
+
var PERSONAL_LOCAL_REGISTRY_HOST = `${PERSONAL_LOCAL_REGISTRY_NAME}.${PERSONAL_LOCAL_REGISTRY_NAMESPACE}.svc.cluster.local:${PERSONAL_LOCAL_REGISTRY_PORT}`;
|
|
5633
|
+
var PERSONAL_LOCAL_REGISTRY_NODE_ENDPOINT = `http://127.0.0.1:${PERSONAL_LOCAL_REGISTRY_PORT}`;
|
|
5483
5634
|
var MS_PER_DAY = 24 * 60 * 60 * 1e3;
|
|
5484
5635
|
var POSTGRES_ENV = {
|
|
5485
5636
|
POSTGRES_HOST_AUTH_METHOD: "trust",
|
|
@@ -5660,14 +5811,19 @@ var CATALOG = {
|
|
|
5660
5811
|
lgtm: {
|
|
5661
5812
|
name: "lgtm",
|
|
5662
5813
|
image: "grafana/otel-lgtm:0.11.6",
|
|
5663
|
-
//
|
|
5664
|
-
//
|
|
5665
|
-
//
|
|
5666
|
-
//
|
|
5667
|
-
// a
|
|
5668
|
-
//
|
|
5669
|
-
//
|
|
5670
|
-
command
|
|
5814
|
+
// Runs the image's own launcher (/otel-lgtm/run-all.sh) after capping
|
|
5815
|
+
// Tempo's retention. The image ships Tempo with the 14-day default, and its
|
|
5816
|
+
// blocks live on the container's writable layer, which counts against the
|
|
5817
|
+
// 1Gi ephemeral-storage limit below; overrunning it evicts the whole pod.
|
|
5818
|
+
// At 100% sampling a busy dev stack writes up to ~2 GB of traces a day, so
|
|
5819
|
+
// keep 3h (plus 10m before a retired block leaves disk). The grep keeps it
|
|
5820
|
+
// idempotent, and a failed append still starts the stack. lgtm has no bake,
|
|
5821
|
+
// so no baked image ever strips this command.
|
|
5822
|
+
command: [
|
|
5823
|
+
"sh",
|
|
5824
|
+
"-c",
|
|
5825
|
+
"grep -q '^compactor:' /otel-lgtm/tempo-config.yaml || printf '\\ncompactor:\\n compaction:\\n block_retention: 3h\\n compacted_block_retention: 10m\\n' >> /otel-lgtm/tempo-config.yaml; exec /otel-lgtm/run-all.sh"
|
|
5826
|
+
],
|
|
5671
5827
|
ports: [
|
|
5672
5828
|
// OTLP gRPC + HTTP — agents and user code emit telemetry here.
|
|
5673
5829
|
4317,
|
|
@@ -5893,7 +6049,7 @@ function registerChecklistTools(server2, conn2) {
|
|
|
5893
6049
|
}
|
|
5894
6050
|
|
|
5895
6051
|
// src/tools/workspace.ts
|
|
5896
|
-
import { z as
|
|
6052
|
+
import { z as z15 } from "zod/v3";
|
|
5897
6053
|
|
|
5898
6054
|
// src/workspace-ssh-tunnel.ts
|
|
5899
6055
|
import net from "net";
|
|
@@ -6013,8 +6169,8 @@ function registerAttachInfoTool(server2, conn2) {
|
|
|
6013
6169
|
"workspace_attach_info",
|
|
6014
6170
|
"Return SSH/SFTP attach metadata for a running task Claudespace, plus hosted preview URLs and configured preview ports. Optionally installs an OpenSSH public key for this attach session.",
|
|
6015
6171
|
{
|
|
6016
|
-
taskId:
|
|
6017
|
-
sshPublicKey:
|
|
6172
|
+
taskId: z15.string().describe("The task ID"),
|
|
6173
|
+
sshPublicKey: z15.string().optional().describe("Optional OpenSSH public key to install into the workspace")
|
|
6018
6174
|
},
|
|
6019
6175
|
async ({ taskId, sshPublicKey }) => {
|
|
6020
6176
|
const info = await conn2.getWorkspaceAttachInfo(taskId, sshPublicKey);
|
|
@@ -6027,7 +6183,7 @@ function registerPreviewUrlsTool(server2, conn2) {
|
|
|
6027
6183
|
"workspace_preview_urls",
|
|
6028
6184
|
"Return the hosted preview URLs and preview ports for a running task Claudespace. This mirrors the web UI preview link metadata.",
|
|
6029
6185
|
{
|
|
6030
|
-
taskId:
|
|
6186
|
+
taskId: z15.string().describe("The task ID")
|
|
6031
6187
|
},
|
|
6032
6188
|
async ({ taskId }) => {
|
|
6033
6189
|
const info = await conn2.getWorkspaceAttachInfo(taskId);
|
|
@@ -6057,10 +6213,10 @@ function registerStartTunnelTool(server2, conn2, startTunnel) {
|
|
|
6057
6213
|
"workspace_start_tunnel",
|
|
6058
6214
|
"Start a local loopback tunnel through the MCP server to a running task Claudespace port. Use port 2222 for SSH/SFTP, or one of previewPorts for app access.",
|
|
6059
6215
|
{
|
|
6060
|
-
taskId:
|
|
6061
|
-
port:
|
|
6062
|
-
preferredLocalPort:
|
|
6063
|
-
sshPublicKey:
|
|
6216
|
+
taskId: z15.string().describe("The task ID"),
|
|
6217
|
+
port: z15.number().optional().describe("Remote Claudespace port. Defaults to SSH port 2222."),
|
|
6218
|
+
preferredLocalPort: z15.number().optional().describe("Preferred local loopback port. If omitted, the OS chooses one."),
|
|
6219
|
+
sshPublicKey: z15.string().optional().describe("Optional OpenSSH public key to install before opening the tunnel")
|
|
6064
6220
|
},
|
|
6065
6221
|
async ({ taskId, port, preferredLocalPort, sshPublicKey }) => {
|
|
6066
6222
|
const info = await conn2.getWorkspaceAttachInfo(taskId, sshPublicKey);
|
|
@@ -6120,7 +6276,7 @@ function registerStopTunnelTool(server2) {
|
|
|
6120
6276
|
"workspace_stop_tunnel",
|
|
6121
6277
|
"Stop a local workspace tunnel previously opened by workspace_start_tunnel.",
|
|
6122
6278
|
{
|
|
6123
|
-
tunnelId:
|
|
6279
|
+
tunnelId: z15.string().describe("Tunnel id returned by workspace_start_tunnel")
|
|
6124
6280
|
},
|
|
6125
6281
|
async ({ tunnelId }) => {
|
|
6126
6282
|
const tunnel = activeTunnels.get(tunnelId);
|