@rallycry/conveyor-agent 11.0.27 → 11.0.28
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-SI7WNWZZ.js → chunk-DMTBXIA4.js} +1 -1
- package/dist/{chunk-PBSFLQA7.js → chunk-GHNYP67H.js} +756 -668
- package/dist/{chunk-7HK6OIV4.js → chunk-ND5INHM4.js} +140 -127
- package/dist/cli.js +4 -4
- package/dist/index.js +2 -2
- package/dist/{serve-boot-WGUFEWYJ.js → serve-boot-CYVW7Z27.js} +2 -2
- package/package.json +1 -1
- package/skills/conveyor-build/SKILL.md +10 -11
- package/skills/conveyor-consensus/SKILL.md +4 -3
- package/skills/conveyor-plan/references/plan-format.md +7 -3
- package/skills/conveyor-prune/SKILL.md +181 -0
- package/skills/conveyor-workflows/SKILL.md +8 -5
|
@@ -1446,8 +1446,9 @@ ${q.question}${q.options.length ? "\n" + q.options.map((o) => `- ${o.label}: ${o
|
|
|
1446
1446
|
}
|
|
1447
1447
|
};
|
|
1448
1448
|
|
|
1449
|
-
// ../shared/dist/chunk-
|
|
1449
|
+
// ../shared/dist/chunk-ZSXAYKD4.js
|
|
1450
1450
|
import { z } from "zod";
|
|
1451
|
+
import { z as z2 } from "zod";
|
|
1451
1452
|
var DEFAULT_SONNET_MODEL = "claude-sonnet-5";
|
|
1452
1453
|
var DEFAULT_OPUS_MODEL = "claude-opus-5-5";
|
|
1453
1454
|
var DEFAULT_HAIKU_MODEL = "claude-haiku-4-5-20251001";
|
|
@@ -1565,6 +1566,12 @@ var projectCheckpointSettingsSchema = z.object({
|
|
|
1565
1566
|
var CARD_DESCRIPTION_MAX = 255;
|
|
1566
1567
|
var CARD_DESCRIPTION_LIMIT_MESSAGE = `Card descriptions are capped at ${CARD_DESCRIPTION_MAX} characters \u2014 write 1-2 plain sentences a non-engineer can read; put technical detail in the plan or card chat.`;
|
|
1567
1568
|
var CARD_DESCRIPTION_FIELD_HINT = `max ${CARD_DESCRIPTION_MAX} chars, 1-2 plain sentences a non-engineer can read \u2014 put technical detail in the plan`;
|
|
1569
|
+
var MAX_MANUAL_TESTS_PER_TASK = 5;
|
|
1570
|
+
var MAX_MANUAL_TEST_TITLE_LENGTH = 200;
|
|
1571
|
+
var ManualTestItemsSchema = z2.array(z2.object({ title: z2.string().min(1).max(MAX_MANUAL_TEST_TITLE_LENGTH) })).min(1).max(MAX_MANUAL_TESTS_PER_TASK);
|
|
1572
|
+
function describeManualTestRejection(item) {
|
|
1573
|
+
return item.reason === "cap" ? `Rejected "${item.title}": the card already holds ${MAX_MANUAL_TESTS_PER_TASK} manual tests. Use remove_manual_test or edit_manual_test to consolidate.` : `Rejected "${item.title}": names an automated step (lint, tests, CI, shell); manual tests describe what a person does in the app.`;
|
|
1574
|
+
}
|
|
1568
1575
|
var DEFAULT_CI_WAIT_TIMEOUT_MINUTES = 45;
|
|
1569
1576
|
var MAX_CI_WAIT_TIMEOUT_MINUTES = 180;
|
|
1570
1577
|
var SEVERITY_ENUM = [
|
|
@@ -1699,9 +1706,9 @@ async function runQueryGrafanaLogs(port, params, now = Date.now) {
|
|
|
1699
1706
|
}
|
|
1700
1707
|
|
|
1701
1708
|
// ../shared/dist/index.js
|
|
1702
|
-
import { z as z2 } from "zod";
|
|
1703
|
-
import { z as z22 } from "zod";
|
|
1704
1709
|
import { z as z3 } from "zod";
|
|
1710
|
+
import { z as z22 } from "zod";
|
|
1711
|
+
import { z as z32 } from "zod";
|
|
1705
1712
|
import { z as z4 } from "zod";
|
|
1706
1713
|
import { z as z5 } from "zod";
|
|
1707
1714
|
import { z as z6 } from "zod";
|
|
@@ -1736,7 +1743,7 @@ var ACHIEVEMENT_RARITIES = [
|
|
|
1736
1743
|
{ key: "pack", name: "Pack", color: "#9c27b0", iconPath: "/storypoints/pack.svg" }
|
|
1737
1744
|
];
|
|
1738
1745
|
var RISK_LEVELS = ["critical", "high", "medium", "low"];
|
|
1739
|
-
var riskLevelSchema =
|
|
1746
|
+
var riskLevelSchema = z3.enum(RISK_LEVELS);
|
|
1740
1747
|
var DEFAULT_RISK_LEVELS = [
|
|
1741
1748
|
{
|
|
1742
1749
|
level: "critical",
|
|
@@ -1983,29 +1990,29 @@ var AgentEventSchema = z22.union([
|
|
|
1983
1990
|
KnownAgentEventSchema,
|
|
1984
1991
|
z22.object({ type: z22.string().min(1) }).catchall(z22.unknown())
|
|
1985
1992
|
]);
|
|
1986
|
-
var cardDescription =
|
|
1987
|
-
var AgentHeartbeatSchema =
|
|
1988
|
-
sessionId:
|
|
1989
|
-
timestamp:
|
|
1990
|
-
status:
|
|
1991
|
-
currentAction:
|
|
1993
|
+
var cardDescription = z32.string().max(CARD_DESCRIPTION_MAX, CARD_DESCRIPTION_LIMIT_MESSAGE).optional();
|
|
1994
|
+
var AgentHeartbeatSchema = z32.object({
|
|
1995
|
+
sessionId: z32.string().optional(),
|
|
1996
|
+
timestamp: z32.string(),
|
|
1997
|
+
status: z32.enum(["active", "idle", "building"]),
|
|
1998
|
+
currentAction: z32.string().optional(),
|
|
1992
1999
|
/** Sender-observed main event-loop lag (ms) — see AgentHeartbeat.loopLagMs. */
|
|
1993
|
-
loopLagMs:
|
|
1994
|
-
});
|
|
1995
|
-
var CreatePRInputSchema =
|
|
1996
|
-
title:
|
|
1997
|
-
body:
|
|
1998
|
-
head:
|
|
1999
|
-
base:
|
|
2000
|
-
});
|
|
2001
|
-
var PostToChatInputSchema =
|
|
2002
|
-
message:
|
|
2003
|
-
type:
|
|
2004
|
-
milestone:
|
|
2005
|
-
});
|
|
2006
|
-
var GetTaskContextRequestSchema =
|
|
2007
|
-
sessionId:
|
|
2008
|
-
includeHistory:
|
|
2000
|
+
loopLagMs: z32.number().nonnegative().optional()
|
|
2001
|
+
});
|
|
2002
|
+
var CreatePRInputSchema = z32.object({
|
|
2003
|
+
title: z32.string().min(1),
|
|
2004
|
+
body: z32.string(),
|
|
2005
|
+
head: z32.string().optional(),
|
|
2006
|
+
base: z32.string().optional()
|
|
2007
|
+
});
|
|
2008
|
+
var PostToChatInputSchema = z32.object({
|
|
2009
|
+
message: z32.string().min(1),
|
|
2010
|
+
type: z32.enum(["message", "question", "update"]).optional().default("message"),
|
|
2011
|
+
milestone: z32.enum(["plan_ready", "implementation_complete", "blocked"]).optional()
|
|
2012
|
+
});
|
|
2013
|
+
var GetTaskContextRequestSchema = z32.object({
|
|
2014
|
+
sessionId: z32.string(),
|
|
2015
|
+
includeHistory: z32.boolean().optional().default(false),
|
|
2009
2016
|
/**
|
|
2010
2017
|
* Read the plan-revised marker WITHOUT consuming it. Bookkeeping fetches
|
|
2011
2018
|
* (the session-identity check, the branch refresh) pass true so they cannot
|
|
@@ -2013,283 +2020,283 @@ var GetTaskContextRequestSchema = z3.object({
|
|
|
2013
2020
|
* Defaults to false — consuming — so a pod running an older agent build still
|
|
2014
2021
|
* clears the marker instead of showing the notice on every boot forever.
|
|
2015
2022
|
*/
|
|
2016
|
-
peekPlanRevision:
|
|
2023
|
+
peekPlanRevision: z32.boolean().optional().default(false)
|
|
2017
2024
|
});
|
|
2018
|
-
var GetChatMessagesRequestSchema =
|
|
2019
|
-
sessionId:
|
|
2020
|
-
limit:
|
|
2021
|
-
offset:
|
|
2025
|
+
var GetChatMessagesRequestSchema = z32.object({
|
|
2026
|
+
sessionId: z32.string(),
|
|
2027
|
+
limit: z32.number().int().positive().optional().default(50),
|
|
2028
|
+
offset: z32.number().int().nonnegative().optional().default(0),
|
|
2022
2029
|
/** Task id or slug to read chat from. Omit for the session's own task. Only
|
|
2023
2030
|
* the session's own task or one of its children resolves — anything else is
|
|
2024
2031
|
* an error, never a silent fallback to the caller's own chat. */
|
|
2025
|
-
taskId:
|
|
2032
|
+
taskId: z32.string().optional()
|
|
2026
2033
|
});
|
|
2027
|
-
var GetTaskFilesRequestSchema =
|
|
2028
|
-
sessionId:
|
|
2029
|
-
taskId:
|
|
2034
|
+
var GetTaskFilesRequestSchema = z32.object({
|
|
2035
|
+
sessionId: z32.string(),
|
|
2036
|
+
taskId: z32.string().optional()
|
|
2030
2037
|
});
|
|
2031
|
-
var GetTaskFileRequestSchema =
|
|
2032
|
-
sessionId:
|
|
2033
|
-
fileId:
|
|
2034
|
-
taskId:
|
|
2038
|
+
var GetTaskFileRequestSchema = z32.object({
|
|
2039
|
+
sessionId: z32.string(),
|
|
2040
|
+
fileId: z32.string(),
|
|
2041
|
+
taskId: z32.string().optional()
|
|
2035
2042
|
});
|
|
2036
|
-
var DeleteTaskFileRequestSchema =
|
|
2037
|
-
sessionId:
|
|
2038
|
-
fileId:
|
|
2043
|
+
var DeleteTaskFileRequestSchema = z32.object({
|
|
2044
|
+
sessionId: z32.string(),
|
|
2045
|
+
fileId: z32.string()
|
|
2039
2046
|
});
|
|
2040
|
-
var GetTaskRequestSchema =
|
|
2041
|
-
sessionId:
|
|
2042
|
-
taskSlugOrId:
|
|
2047
|
+
var GetTaskRequestSchema = z32.object({
|
|
2048
|
+
sessionId: z32.string(),
|
|
2049
|
+
taskSlugOrId: z32.string()
|
|
2043
2050
|
});
|
|
2044
|
-
var GetCliHistoryRequestSchema =
|
|
2045
|
-
sessionId:
|
|
2046
|
-
limit:
|
|
2047
|
-
source:
|
|
2051
|
+
var GetCliHistoryRequestSchema = z32.object({
|
|
2052
|
+
sessionId: z32.string(),
|
|
2053
|
+
limit: z32.number().int().positive().optional().default(100),
|
|
2054
|
+
source: z32.enum(["agent", "application"]).optional(),
|
|
2048
2055
|
/** Task id or slug to read logs from. Omit for the session's own task. Only
|
|
2049
2056
|
* the session's own task or one of its children resolves — anything else is
|
|
2050
2057
|
* an error, never a silent fallback to the caller's own logs. */
|
|
2051
|
-
taskId:
|
|
2058
|
+
taskId: z32.string().optional()
|
|
2052
2059
|
});
|
|
2053
|
-
var ListSubtasksRequestSchema =
|
|
2054
|
-
sessionId:
|
|
2060
|
+
var ListSubtasksRequestSchema = z32.object({
|
|
2061
|
+
sessionId: z32.string(),
|
|
2055
2062
|
/** "compact" returns the slim orchestration view (ListSubtasksCompactResponse:
|
|
2056
2063
|
* per-child status, agent, story points, PR state, dependencies); "full" (default — wire-compat with older
|
|
2057
2064
|
* agents) returns the verbose SubtaskSummaryDTO[] including description/plan. */
|
|
2058
|
-
view:
|
|
2059
|
-
});
|
|
2060
|
-
var GetDependenciesRequestSchema =
|
|
2061
|
-
sessionId:
|
|
2062
|
-
});
|
|
2063
|
-
var GetSuggestionsRequestSchema =
|
|
2064
|
-
sessionId:
|
|
2065
|
-
status:
|
|
2066
|
-
limit:
|
|
2067
|
-
});
|
|
2068
|
-
var ListManualTestsRequestSchema =
|
|
2069
|
-
sessionId:
|
|
2070
|
-
});
|
|
2071
|
-
var QueryManualTestsRequestSchema =
|
|
2072
|
-
sessionId:
|
|
2073
|
-
cardStatuses:
|
|
2074
|
-
testStatuses:
|
|
2075
|
-
});
|
|
2076
|
-
var CreatePullRequestRequestSchema = CreatePRInputSchema.extend({ sessionId:
|
|
2077
|
-
var RequestFileUploadRequestSchema =
|
|
2078
|
-
sessionId:
|
|
2079
|
-
fileName:
|
|
2080
|
-
mimeType:
|
|
2081
|
-
fileSize:
|
|
2082
|
-
});
|
|
2083
|
-
var ConfirmFileUploadRequestSchema =
|
|
2084
|
-
sessionId:
|
|
2085
|
-
fileId:
|
|
2086
|
-
title:
|
|
2065
|
+
view: z32.enum(["compact", "full"]).optional()
|
|
2066
|
+
});
|
|
2067
|
+
var GetDependenciesRequestSchema = z32.object({
|
|
2068
|
+
sessionId: z32.string()
|
|
2069
|
+
});
|
|
2070
|
+
var GetSuggestionsRequestSchema = z32.object({
|
|
2071
|
+
sessionId: z32.string(),
|
|
2072
|
+
status: z32.string().optional(),
|
|
2073
|
+
limit: z32.number().int().min(1).max(100).optional()
|
|
2074
|
+
});
|
|
2075
|
+
var ListManualTestsRequestSchema = z32.object({
|
|
2076
|
+
sessionId: z32.string()
|
|
2077
|
+
});
|
|
2078
|
+
var QueryManualTestsRequestSchema = z32.object({
|
|
2079
|
+
sessionId: z32.string(),
|
|
2080
|
+
cardStatuses: z32.array(z32.string()).optional(),
|
|
2081
|
+
testStatuses: z32.array(z32.enum(["open", "approved", "rejected"])).optional()
|
|
2082
|
+
});
|
|
2083
|
+
var CreatePullRequestRequestSchema = CreatePRInputSchema.extend({ sessionId: z32.string() });
|
|
2084
|
+
var RequestFileUploadRequestSchema = z32.object({
|
|
2085
|
+
sessionId: z32.string(),
|
|
2086
|
+
fileName: z32.string().min(1).max(255),
|
|
2087
|
+
mimeType: z32.string().min(1).max(128),
|
|
2088
|
+
fileSize: z32.number().int().positive().max(MAX_FILE_SIZE_BYTES)
|
|
2089
|
+
});
|
|
2090
|
+
var ConfirmFileUploadRequestSchema = z32.object({
|
|
2091
|
+
sessionId: z32.string(),
|
|
2092
|
+
fileId: z32.string(),
|
|
2093
|
+
title: z32.string().max(500).optional(),
|
|
2087
2094
|
/** Glossary tag names (or ids) this file is an example of. */
|
|
2088
|
-
tags:
|
|
2089
|
-
});
|
|
2090
|
-
var UpdateTaskStatusRequestSchema =
|
|
2091
|
-
sessionId:
|
|
2092
|
-
status:
|
|
2093
|
-
force:
|
|
2094
|
-
});
|
|
2095
|
-
var StoreSessionIdRequestSchema =
|
|
2096
|
-
sessionId:
|
|
2097
|
-
sdkSessionId:
|
|
2098
|
-
});
|
|
2099
|
-
var SetManualTestsRequestSchema =
|
|
2100
|
-
sessionId:
|
|
2101
|
-
items:
|
|
2102
|
-
});
|
|
2103
|
-
var EditManualTestRequestSchema =
|
|
2104
|
-
sessionId:
|
|
2105
|
-
title:
|
|
2106
|
-
newTitle:
|
|
2107
|
-
});
|
|
2108
|
-
var RemoveManualTestRequestSchema =
|
|
2109
|
-
sessionId:
|
|
2110
|
-
title:
|
|
2111
|
-
});
|
|
2112
|
-
var ApproveManualTestRequestSchema =
|
|
2113
|
-
sessionId:
|
|
2114
|
-
title:
|
|
2115
|
-
});
|
|
2116
|
-
var RejectManualTestRequestSchema =
|
|
2117
|
-
sessionId:
|
|
2118
|
-
title:
|
|
2119
|
-
reason:
|
|
2120
|
-
});
|
|
2121
|
-
var SessionStartRequestSchema =
|
|
2122
|
-
sessionId:
|
|
2123
|
-
agentVersion:
|
|
2124
|
-
capabilities:
|
|
2125
|
-
});
|
|
2126
|
-
var SessionStopRequestSchema =
|
|
2127
|
-
sessionId:
|
|
2128
|
-
reason:
|
|
2129
|
-
});
|
|
2130
|
-
var EndReviewSessionRequestSchema =
|
|
2131
|
-
sessionId:
|
|
2132
|
-
reason:
|
|
2133
|
-
});
|
|
2134
|
-
var ConnectAgentRequestSchema =
|
|
2135
|
-
sessionId:
|
|
2136
|
-
});
|
|
2137
|
-
var ReportAgentStatusRequestSchema =
|
|
2138
|
-
sessionId:
|
|
2139
|
-
status:
|
|
2095
|
+
tags: z32.array(z32.string().min(1).max(MAX_FILE_TAG_LENGTH)).max(MAX_FILE_TAGS).optional()
|
|
2096
|
+
});
|
|
2097
|
+
var UpdateTaskStatusRequestSchema = z32.object({
|
|
2098
|
+
sessionId: z32.string(),
|
|
2099
|
+
status: z32.string(),
|
|
2100
|
+
force: z32.boolean().optional().default(false)
|
|
2101
|
+
});
|
|
2102
|
+
var StoreSessionIdRequestSchema = z32.object({
|
|
2103
|
+
sessionId: z32.string(),
|
|
2104
|
+
sdkSessionId: z32.string()
|
|
2105
|
+
});
|
|
2106
|
+
var SetManualTestsRequestSchema = z32.object({
|
|
2107
|
+
sessionId: z32.string(),
|
|
2108
|
+
items: ManualTestItemsSchema
|
|
2109
|
+
});
|
|
2110
|
+
var EditManualTestRequestSchema = z32.object({
|
|
2111
|
+
sessionId: z32.string(),
|
|
2112
|
+
title: z32.string().min(1),
|
|
2113
|
+
newTitle: z32.string().min(1)
|
|
2114
|
+
});
|
|
2115
|
+
var RemoveManualTestRequestSchema = z32.object({
|
|
2116
|
+
sessionId: z32.string(),
|
|
2117
|
+
title: z32.string().min(1)
|
|
2118
|
+
});
|
|
2119
|
+
var ApproveManualTestRequestSchema = z32.object({
|
|
2120
|
+
sessionId: z32.string(),
|
|
2121
|
+
title: z32.string().min(1)
|
|
2122
|
+
});
|
|
2123
|
+
var RejectManualTestRequestSchema = z32.object({
|
|
2124
|
+
sessionId: z32.string(),
|
|
2125
|
+
title: z32.string().min(1),
|
|
2126
|
+
reason: z32.string().min(1).max(2e3)
|
|
2127
|
+
});
|
|
2128
|
+
var SessionStartRequestSchema = z32.object({
|
|
2129
|
+
sessionId: z32.string(),
|
|
2130
|
+
agentVersion: z32.string(),
|
|
2131
|
+
capabilities: z32.array(z32.string())
|
|
2132
|
+
});
|
|
2133
|
+
var SessionStopRequestSchema = z32.object({
|
|
2134
|
+
sessionId: z32.string(),
|
|
2135
|
+
reason: z32.string().optional()
|
|
2136
|
+
});
|
|
2137
|
+
var EndReviewSessionRequestSchema = z32.object({
|
|
2138
|
+
sessionId: z32.string(),
|
|
2139
|
+
reason: z32.enum(["approved", "changes_requested", "finished"]).optional()
|
|
2140
|
+
});
|
|
2141
|
+
var ConnectAgentRequestSchema = z32.object({
|
|
2142
|
+
sessionId: z32.string()
|
|
2143
|
+
});
|
|
2144
|
+
var ReportAgentStatusRequestSchema = z32.object({
|
|
2145
|
+
sessionId: z32.string(),
|
|
2146
|
+
status: z32.string(),
|
|
2140
2147
|
/** Why the agent reports this status (e.g. "user_question" while an AskUserQuestion questionnaire is pending in the TUI). */
|
|
2141
|
-
reason:
|
|
2148
|
+
reason: z32.string().optional(),
|
|
2142
2149
|
/**
|
|
2143
2150
|
* The pending question text, sent only alongside `reason: "user_question"`
|
|
2144
2151
|
* so the server can surface it in the user-question notification body (and
|
|
2145
2152
|
* thus the Attention feed) instead of a generic string. Optional: older
|
|
2146
2153
|
* agents omit it and the server falls back to the generic wording.
|
|
2147
2154
|
*/
|
|
2148
|
-
questionText:
|
|
2155
|
+
questionText: z32.string().optional()
|
|
2149
2156
|
});
|
|
2150
|
-
var NotifyAgentVersionRequestSchema =
|
|
2151
|
-
sessionId:
|
|
2152
|
-
agentVersion:
|
|
2157
|
+
var NotifyAgentVersionRequestSchema = z32.object({
|
|
2158
|
+
sessionId: z32.string(),
|
|
2159
|
+
agentVersion: z32.string()
|
|
2153
2160
|
});
|
|
2154
|
-
var DiscoveredPortSchema =
|
|
2155
|
-
port:
|
|
2156
|
-
label:
|
|
2157
|
-
protocol:
|
|
2158
|
-
detectedAt:
|
|
2161
|
+
var DiscoveredPortSchema = z32.object({
|
|
2162
|
+
port: z32.number().int().min(1).max(65535),
|
|
2163
|
+
label: z32.string().min(1).max(64).optional(),
|
|
2164
|
+
protocol: z32.enum(["http", "tcp"]).optional(),
|
|
2165
|
+
detectedAt: z32.string()
|
|
2159
2166
|
});
|
|
2160
|
-
var ReportDiscoveredPortsRequestSchema =
|
|
2161
|
-
sessionId:
|
|
2162
|
-
ports:
|
|
2167
|
+
var ReportDiscoveredPortsRequestSchema = z32.object({
|
|
2168
|
+
sessionId: z32.string(),
|
|
2169
|
+
ports: z32.array(DiscoveredPortSchema).max(64)
|
|
2163
2170
|
});
|
|
2164
|
-
var ReportBootMilestoneRequestSchema =
|
|
2165
|
-
sessionId:
|
|
2166
|
-
key:
|
|
2171
|
+
var ReportBootMilestoneRequestSchema = z32.object({
|
|
2172
|
+
sessionId: z32.string(),
|
|
2173
|
+
key: z32.string().max(64)
|
|
2167
2174
|
});
|
|
2168
|
-
var CreateSubtaskRequestSchema =
|
|
2169
|
-
sessionId:
|
|
2170
|
-
title:
|
|
2175
|
+
var CreateSubtaskRequestSchema = z32.object({
|
|
2176
|
+
sessionId: z32.string(),
|
|
2177
|
+
title: z32.string().min(1),
|
|
2171
2178
|
description: cardDescription,
|
|
2172
|
-
plan:
|
|
2173
|
-
storyPointValue:
|
|
2174
|
-
ordinal:
|
|
2175
|
-
followParentStatus:
|
|
2179
|
+
plan: z32.string().optional(),
|
|
2180
|
+
storyPointValue: z32.number().int().positive().optional(),
|
|
2181
|
+
ordinal: z32.number().int().nonnegative().optional(),
|
|
2182
|
+
followParentStatus: z32.boolean().optional(),
|
|
2176
2183
|
/** Sibling subtask ids or slugs this subtask blocks on (explicit dependency
|
|
2177
2184
|
* metadata — preferred over encoding order in plan text / ordinal). */
|
|
2178
|
-
dependsOn:
|
|
2185
|
+
dependsOn: z32.array(z32.string().min(1)).max(32).optional(),
|
|
2179
2186
|
/** Glossary tag names to assign to the child. Unmatched names come back in
|
|
2180
2187
|
* the response rather than failing the create. */
|
|
2181
|
-
tags:
|
|
2188
|
+
tags: z32.array(z32.string().min(1)).max(10).optional()
|
|
2182
2189
|
});
|
|
2183
|
-
var UpdateSubtaskRequestSchema =
|
|
2184
|
-
sessionId:
|
|
2185
|
-
subtaskId:
|
|
2186
|
-
title:
|
|
2190
|
+
var UpdateSubtaskRequestSchema = z32.object({
|
|
2191
|
+
sessionId: z32.string(),
|
|
2192
|
+
subtaskId: z32.string(),
|
|
2193
|
+
title: z32.string().min(1).optional(),
|
|
2187
2194
|
description: cardDescription,
|
|
2188
|
-
plan:
|
|
2195
|
+
plan: z32.string().optional(),
|
|
2189
2196
|
/** Orchestration statuses only ("Planning" | "Open") — the pack parent's
|
|
2190
2197
|
* sanctioned promotion path. Execution statuses stay with the build
|
|
2191
2198
|
* pipeline / force_update_task_status. Enforced server-side. */
|
|
2192
|
-
status:
|
|
2199
|
+
status: z32.string().optional(),
|
|
2193
2200
|
/** Assign a project agent to the child — accepts the agent's id or exact
|
|
2194
2201
|
* name; resolved against the parent task's project server-side. */
|
|
2195
|
-
agentIdOrName:
|
|
2196
|
-
storyPointValue:
|
|
2197
|
-
followParentStatus:
|
|
2202
|
+
agentIdOrName: z32.string().min(1).optional(),
|
|
2203
|
+
storyPointValue: z32.number().int().positive().optional(),
|
|
2204
|
+
followParentStatus: z32.boolean().optional(),
|
|
2198
2205
|
/** Replace this subtask's dependency edges with these sibling ids/slugs.
|
|
2199
2206
|
* Empty array clears all. Omit to leave dependencies unchanged. */
|
|
2200
|
-
dependsOn:
|
|
2207
|
+
dependsOn: z32.array(z32.string().min(1)).max(32).optional()
|
|
2201
2208
|
});
|
|
2202
|
-
var DeleteSubtaskRequestSchema =
|
|
2203
|
-
sessionId:
|
|
2204
|
-
subtaskId:
|
|
2209
|
+
var DeleteSubtaskRequestSchema = z32.object({
|
|
2210
|
+
sessionId: z32.string(),
|
|
2211
|
+
subtaskId: z32.string()
|
|
2205
2212
|
});
|
|
2206
|
-
var SetSubtaskParentRequestSchema =
|
|
2207
|
-
sessionId:
|
|
2208
|
-
taskId:
|
|
2209
|
-
detach:
|
|
2210
|
-
ordinal:
|
|
2211
|
-
followParentStatus:
|
|
2213
|
+
var SetSubtaskParentRequestSchema = z32.object({
|
|
2214
|
+
sessionId: z32.string(),
|
|
2215
|
+
taskId: z32.string().min(1),
|
|
2216
|
+
detach: z32.boolean().optional(),
|
|
2217
|
+
ordinal: z32.number().int().nonnegative().optional(),
|
|
2218
|
+
followParentStatus: z32.boolean().optional()
|
|
2212
2219
|
});
|
|
2213
|
-
var GetTaskPropertiesRequestSchema =
|
|
2214
|
-
sessionId:
|
|
2220
|
+
var GetTaskPropertiesRequestSchema = z32.object({
|
|
2221
|
+
sessionId: z32.string()
|
|
2215
2222
|
});
|
|
2216
|
-
var UpdateTaskFieldsRequestSchema =
|
|
2217
|
-
sessionId:
|
|
2218
|
-
plan:
|
|
2223
|
+
var UpdateTaskFieldsRequestSchema = z32.object({
|
|
2224
|
+
sessionId: z32.string(),
|
|
2225
|
+
plan: z32.string().optional(),
|
|
2219
2226
|
description: cardDescription
|
|
2220
2227
|
});
|
|
2221
|
-
var UpdateTaskPropertiesRequestSchema =
|
|
2222
|
-
sessionId:
|
|
2223
|
-
title:
|
|
2224
|
-
storyPointValue:
|
|
2225
|
-
tagIds:
|
|
2226
|
-
tagNames:
|
|
2227
|
-
githubPRUrl:
|
|
2228
|
-
githubBranch:
|
|
2228
|
+
var UpdateTaskPropertiesRequestSchema = z32.object({
|
|
2229
|
+
sessionId: z32.string(),
|
|
2230
|
+
title: z32.string().optional(),
|
|
2231
|
+
storyPointValue: z32.number().int().positive().optional(),
|
|
2232
|
+
tagIds: z32.array(z32.string()).optional(),
|
|
2233
|
+
tagNames: z32.array(z32.string()).optional(),
|
|
2234
|
+
githubPRUrl: z32.string().url().optional(),
|
|
2235
|
+
githubBranch: z32.string().optional(),
|
|
2229
2236
|
// Canonical risk level, or null to clear — same semantics as the headless
|
|
2230
2237
|
// update_task boundary (resolved to the project's Risk row in the handler).
|
|
2231
2238
|
risk: riskLevelSchema.nullable().optional()
|
|
2232
2239
|
});
|
|
2233
|
-
var ListIconsRequestSchema =
|
|
2234
|
-
sessionId:
|
|
2240
|
+
var ListIconsRequestSchema = z32.object({
|
|
2241
|
+
sessionId: z32.string()
|
|
2235
2242
|
});
|
|
2236
|
-
var GenerateTaskIconRequestSchema =
|
|
2237
|
-
sessionId:
|
|
2238
|
-
prompt:
|
|
2239
|
-
aspectRatio:
|
|
2243
|
+
var GenerateTaskIconRequestSchema = z32.object({
|
|
2244
|
+
sessionId: z32.string(),
|
|
2245
|
+
prompt: z32.string().min(1),
|
|
2246
|
+
aspectRatio: z32.string().optional()
|
|
2240
2247
|
});
|
|
2241
|
-
var SearchFaIconsRequestSchema =
|
|
2242
|
-
sessionId:
|
|
2243
|
-
query:
|
|
2244
|
-
first:
|
|
2248
|
+
var SearchFaIconsRequestSchema = z32.object({
|
|
2249
|
+
sessionId: z32.string(),
|
|
2250
|
+
query: z32.string().min(1),
|
|
2251
|
+
first: z32.number().int().positive().optional()
|
|
2245
2252
|
});
|
|
2246
|
-
var PickFaIconRequestSchema =
|
|
2247
|
-
sessionId:
|
|
2248
|
-
fontAwesomeId:
|
|
2249
|
-
fontAwesomeStyle:
|
|
2253
|
+
var PickFaIconRequestSchema = z32.object({
|
|
2254
|
+
sessionId: z32.string(),
|
|
2255
|
+
fontAwesomeId: z32.string().min(1),
|
|
2256
|
+
fontAwesomeStyle: z32.string().optional()
|
|
2250
2257
|
});
|
|
2251
|
-
var CreateFollowUpTaskRequestSchema =
|
|
2252
|
-
sessionId:
|
|
2253
|
-
title:
|
|
2258
|
+
var CreateFollowUpTaskRequestSchema = z32.object({
|
|
2259
|
+
sessionId: z32.string(),
|
|
2260
|
+
title: z32.string().min(1),
|
|
2254
2261
|
description: cardDescription,
|
|
2255
|
-
plan:
|
|
2256
|
-
storyPointValue:
|
|
2262
|
+
plan: z32.string().optional(),
|
|
2263
|
+
storyPointValue: z32.number().int().positive().optional()
|
|
2257
2264
|
});
|
|
2258
|
-
var AddDependencyRequestSchema =
|
|
2259
|
-
sessionId:
|
|
2260
|
-
dependsOnSlugOrId:
|
|
2265
|
+
var AddDependencyRequestSchema = z32.object({
|
|
2266
|
+
sessionId: z32.string(),
|
|
2267
|
+
dependsOnSlugOrId: z32.string()
|
|
2261
2268
|
});
|
|
2262
|
-
var RemoveDependencyRequestSchema =
|
|
2263
|
-
sessionId:
|
|
2264
|
-
dependsOnSlugOrId:
|
|
2269
|
+
var RemoveDependencyRequestSchema = z32.object({
|
|
2270
|
+
sessionId: z32.string(),
|
|
2271
|
+
dependsOnSlugOrId: z32.string()
|
|
2265
2272
|
});
|
|
2266
|
-
var CreateSuggestionRequestSchema =
|
|
2267
|
-
sessionId:
|
|
2268
|
-
title:
|
|
2273
|
+
var CreateSuggestionRequestSchema = z32.object({
|
|
2274
|
+
sessionId: z32.string(),
|
|
2275
|
+
title: z32.string().min(1),
|
|
2269
2276
|
description: cardDescription,
|
|
2270
|
-
tagNames:
|
|
2277
|
+
tagNames: z32.array(z32.string()).optional()
|
|
2271
2278
|
});
|
|
2272
|
-
var VoteSuggestionRequestSchema =
|
|
2273
|
-
sessionId:
|
|
2274
|
-
suggestionId:
|
|
2275
|
-
value:
|
|
2279
|
+
var VoteSuggestionRequestSchema = z32.object({
|
|
2280
|
+
sessionId: z32.string(),
|
|
2281
|
+
suggestionId: z32.string(),
|
|
2282
|
+
value: z32.union([z32.literal(1), z32.literal(-1)])
|
|
2276
2283
|
});
|
|
2277
|
-
var TriggerIdentificationRequestSchema =
|
|
2278
|
-
sessionId:
|
|
2284
|
+
var TriggerIdentificationRequestSchema = z32.object({
|
|
2285
|
+
sessionId: z32.string()
|
|
2279
2286
|
});
|
|
2280
|
-
var HandoffToImplementerRequestSchema =
|
|
2281
|
-
sessionId:
|
|
2287
|
+
var HandoffToImplementerRequestSchema = z32.object({
|
|
2288
|
+
sessionId: z32.string(),
|
|
2282
2289
|
// Optional difficulty sizing — sets the task's story points before resolving
|
|
2283
2290
|
// the matched implementer agent. Omit to hand off using the task's current
|
|
2284
2291
|
// story points (or the project's default task agent when unsized).
|
|
2285
|
-
storyPoints:
|
|
2292
|
+
storyPoints: z32.number().int().positive().optional(),
|
|
2286
2293
|
// Optional kickoff note posted to the task chat alongside the handoff notice.
|
|
2287
|
-
message:
|
|
2294
|
+
message: z32.string().optional()
|
|
2288
2295
|
});
|
|
2289
|
-
var SubmitCodeReviewResultRequestSchema =
|
|
2290
|
-
sessionId:
|
|
2291
|
-
approved:
|
|
2292
|
-
content:
|
|
2296
|
+
var SubmitCodeReviewResultRequestSchema = z32.object({
|
|
2297
|
+
sessionId: z32.string(),
|
|
2298
|
+
approved: z32.boolean(),
|
|
2299
|
+
content: z32.string(),
|
|
2293
2300
|
// Canonical risk level the reviewer assigned to this change. Required on every
|
|
2294
2301
|
// verdict — the reviewer must judge it. Applied authoritatively server-side
|
|
2295
2302
|
// (may raise OR lower an already-set value; the reviewer has that authority).
|
|
@@ -2297,165 +2304,165 @@ var SubmitCodeReviewResultRequestSchema = z3.object({
|
|
|
2297
2304
|
// The commit SHA the reviewer actually reviewed. When present, the verdict is
|
|
2298
2305
|
// rejected unless the task is still at this SHA (guards against a late
|
|
2299
2306
|
// old-SHA verdict overwriting a newer review cycle).
|
|
2300
|
-
reviewedSha:
|
|
2301
|
-
});
|
|
2302
|
-
var CycleCodingAgentKeyRequestSchema =
|
|
2303
|
-
sessionId:
|
|
2304
|
-
rateLimitType:
|
|
2305
|
-
resetsAt:
|
|
2306
|
-
});
|
|
2307
|
-
var PostChildChatMessageRequestSchema =
|
|
2308
|
-
sessionId:
|
|
2309
|
-
childTaskId:
|
|
2310
|
-
message:
|
|
2311
|
-
});
|
|
2312
|
-
var UpdateChildStatusRequestSchema =
|
|
2313
|
-
sessionId:
|
|
2314
|
-
childTaskId:
|
|
2315
|
-
status:
|
|
2316
|
-
});
|
|
2317
|
-
var GetAgentStatusRequestSchema =
|
|
2318
|
-
taskId:
|
|
2319
|
-
});
|
|
2320
|
-
var GetUiCliHistoryRequestSchema =
|
|
2321
|
-
taskId:
|
|
2322
|
-
});
|
|
2323
|
-
var GetActivePtySessionRequestSchema =
|
|
2324
|
-
taskId:
|
|
2325
|
-
});
|
|
2326
|
-
var ListActivePtySessionsRequestSchema =
|
|
2327
|
-
taskId:
|
|
2328
|
-
});
|
|
2329
|
-
var SendSoftStopRequestSchema =
|
|
2330
|
-
taskId:
|
|
2331
|
-
});
|
|
2332
|
-
var StopTaskSessionRequestSchema =
|
|
2333
|
-
taskId:
|
|
2334
|
-
sessionId:
|
|
2335
|
-
});
|
|
2336
|
-
var FlushTaskQueueRequestSchema =
|
|
2337
|
-
taskId:
|
|
2338
|
-
softStop:
|
|
2339
|
-
});
|
|
2340
|
-
var CancelTaskQueuedMessageRequestSchema =
|
|
2341
|
-
taskId:
|
|
2342
|
-
messageId:
|
|
2343
|
-
});
|
|
2344
|
-
var FlushSingleQueuedMessageRequestSchema =
|
|
2345
|
-
taskId:
|
|
2346
|
-
messageId:
|
|
2347
|
-
softStop:
|
|
2348
|
-
});
|
|
2349
|
-
var AnswerAgentQuestionRequestSchema =
|
|
2350
|
-
taskId:
|
|
2351
|
-
requestId:
|
|
2352
|
-
answers:
|
|
2353
|
-
});
|
|
2354
|
-
var ClearAgentTodosRequestSchema =
|
|
2355
|
-
taskId:
|
|
2356
|
-
});
|
|
2357
|
-
var AgentQuestionOptionSchema =
|
|
2358
|
-
label:
|
|
2359
|
-
description:
|
|
2360
|
-
preview:
|
|
2361
|
-
});
|
|
2362
|
-
var AgentQuestionSchema =
|
|
2363
|
-
question:
|
|
2364
|
-
header:
|
|
2365
|
-
options:
|
|
2366
|
-
multiSelect:
|
|
2367
|
-
});
|
|
2368
|
-
var AskUserQuestionRequestSchema =
|
|
2369
|
-
sessionId:
|
|
2370
|
-
question:
|
|
2371
|
-
requestId:
|
|
2372
|
-
questions:
|
|
2373
|
-
});
|
|
2374
|
-
var PostAgentMessageRequestSchema =
|
|
2375
|
-
sessionId:
|
|
2376
|
-
content:
|
|
2377
|
-
milestone:
|
|
2378
|
-
});
|
|
2379
|
-
var EmitAgentEventRequestSchema =
|
|
2380
|
-
sessionId:
|
|
2381
|
-
events:
|
|
2382
|
-
});
|
|
2383
|
-
var RefreshGithubTokenRequestSchema =
|
|
2384
|
-
sessionId:
|
|
2385
|
-
forceFresh:
|
|
2386
|
-
});
|
|
2387
|
-
var ReportCredentialFailureRequestSchema =
|
|
2388
|
-
sessionId:
|
|
2389
|
-
error:
|
|
2390
|
-
tokenShape:
|
|
2391
|
-
healed:
|
|
2392
|
-
});
|
|
2393
|
-
var ReportReviewSpawnFailureRequestSchema =
|
|
2394
|
-
sessionId:
|
|
2395
|
-
reviewSessionId:
|
|
2396
|
-
error:
|
|
2307
|
+
reviewedSha: z32.string().optional()
|
|
2308
|
+
});
|
|
2309
|
+
var CycleCodingAgentKeyRequestSchema = z32.object({
|
|
2310
|
+
sessionId: z32.string(),
|
|
2311
|
+
rateLimitType: z32.string(),
|
|
2312
|
+
resetsAt: z32.string().optional()
|
|
2313
|
+
});
|
|
2314
|
+
var PostChildChatMessageRequestSchema = z32.object({
|
|
2315
|
+
sessionId: z32.string(),
|
|
2316
|
+
childTaskId: z32.string(),
|
|
2317
|
+
message: z32.string().min(1)
|
|
2318
|
+
});
|
|
2319
|
+
var UpdateChildStatusRequestSchema = z32.object({
|
|
2320
|
+
sessionId: z32.string(),
|
|
2321
|
+
childTaskId: z32.string(),
|
|
2322
|
+
status: z32.string()
|
|
2323
|
+
});
|
|
2324
|
+
var GetAgentStatusRequestSchema = z32.object({
|
|
2325
|
+
taskId: z32.string()
|
|
2326
|
+
});
|
|
2327
|
+
var GetUiCliHistoryRequestSchema = z32.object({
|
|
2328
|
+
taskId: z32.string()
|
|
2329
|
+
});
|
|
2330
|
+
var GetActivePtySessionRequestSchema = z32.object({
|
|
2331
|
+
taskId: z32.string()
|
|
2332
|
+
});
|
|
2333
|
+
var ListActivePtySessionsRequestSchema = z32.object({
|
|
2334
|
+
taskId: z32.string()
|
|
2335
|
+
});
|
|
2336
|
+
var SendSoftStopRequestSchema = z32.object({
|
|
2337
|
+
taskId: z32.string()
|
|
2338
|
+
});
|
|
2339
|
+
var StopTaskSessionRequestSchema = z32.object({
|
|
2340
|
+
taskId: z32.string(),
|
|
2341
|
+
sessionId: z32.string()
|
|
2342
|
+
});
|
|
2343
|
+
var FlushTaskQueueRequestSchema = z32.object({
|
|
2344
|
+
taskId: z32.string(),
|
|
2345
|
+
softStop: z32.boolean().optional()
|
|
2346
|
+
});
|
|
2347
|
+
var CancelTaskQueuedMessageRequestSchema = z32.object({
|
|
2348
|
+
taskId: z32.string(),
|
|
2349
|
+
messageId: z32.string()
|
|
2350
|
+
});
|
|
2351
|
+
var FlushSingleQueuedMessageRequestSchema = z32.object({
|
|
2352
|
+
taskId: z32.string(),
|
|
2353
|
+
messageId: z32.string(),
|
|
2354
|
+
softStop: z32.boolean().optional()
|
|
2355
|
+
});
|
|
2356
|
+
var AnswerAgentQuestionRequestSchema = z32.object({
|
|
2357
|
+
taskId: z32.string(),
|
|
2358
|
+
requestId: z32.string(),
|
|
2359
|
+
answers: z32.record(z32.string(), z32.string())
|
|
2360
|
+
});
|
|
2361
|
+
var ClearAgentTodosRequestSchema = z32.object({
|
|
2362
|
+
taskId: z32.string()
|
|
2363
|
+
});
|
|
2364
|
+
var AgentQuestionOptionSchema = z32.object({
|
|
2365
|
+
label: z32.string(),
|
|
2366
|
+
description: z32.string(),
|
|
2367
|
+
preview: z32.string().optional()
|
|
2368
|
+
});
|
|
2369
|
+
var AgentQuestionSchema = z32.object({
|
|
2370
|
+
question: z32.string(),
|
|
2371
|
+
header: z32.string(),
|
|
2372
|
+
options: z32.array(AgentQuestionOptionSchema),
|
|
2373
|
+
multiSelect: z32.boolean().optional()
|
|
2374
|
+
});
|
|
2375
|
+
var AskUserQuestionRequestSchema = z32.object({
|
|
2376
|
+
sessionId: z32.string(),
|
|
2377
|
+
question: z32.string().min(1),
|
|
2378
|
+
requestId: z32.string().min(1),
|
|
2379
|
+
questions: z32.array(AgentQuestionSchema).min(1)
|
|
2380
|
+
});
|
|
2381
|
+
var PostAgentMessageRequestSchema = z32.object({
|
|
2382
|
+
sessionId: z32.string().min(1),
|
|
2383
|
+
content: z32.string(),
|
|
2384
|
+
milestone: z32.enum(["plan_ready", "implementation_complete", "blocked"]).optional()
|
|
2385
|
+
});
|
|
2386
|
+
var EmitAgentEventRequestSchema = z32.object({
|
|
2387
|
+
sessionId: z32.string(),
|
|
2388
|
+
events: z32.array(AgentEventSchema).max(500)
|
|
2389
|
+
});
|
|
2390
|
+
var RefreshGithubTokenRequestSchema = z32.object({
|
|
2391
|
+
sessionId: z32.string(),
|
|
2392
|
+
forceFresh: z32.boolean().optional()
|
|
2393
|
+
});
|
|
2394
|
+
var ReportCredentialFailureRequestSchema = z32.object({
|
|
2395
|
+
sessionId: z32.string(),
|
|
2396
|
+
error: z32.string().max(2e3).optional(),
|
|
2397
|
+
tokenShape: z32.string().max(500).optional(),
|
|
2398
|
+
healed: z32.boolean().optional()
|
|
2399
|
+
});
|
|
2400
|
+
var ReportReviewSpawnFailureRequestSchema = z32.object({
|
|
2401
|
+
sessionId: z32.string(),
|
|
2402
|
+
reviewSessionId: z32.string(),
|
|
2403
|
+
error: z32.string().max(2e3).optional()
|
|
2397
2404
|
});
|
|
2398
2405
|
var ReportBuilderSpawnFailureRequestSchema = ReportReviewSpawnFailureRequestSchema.omit({
|
|
2399
2406
|
reviewSessionId: true
|
|
2400
|
-
}).extend({ buildSessionId:
|
|
2401
|
-
var SpawnTaskSessionRequestSchema =
|
|
2402
|
-
taskId:
|
|
2403
|
-
kind:
|
|
2407
|
+
}).extend({ buildSessionId: z32.string() });
|
|
2408
|
+
var SpawnTaskSessionRequestSchema = z32.object({
|
|
2409
|
+
taskId: z32.string(),
|
|
2410
|
+
kind: z32.enum(["tui", "shell"])
|
|
2404
2411
|
});
|
|
2405
|
-
var StartCodeReviewRequestSchema =
|
|
2406
|
-
taskId:
|
|
2407
|
-
force:
|
|
2412
|
+
var StartCodeReviewRequestSchema = z32.object({
|
|
2413
|
+
taskId: z32.string(),
|
|
2414
|
+
force: z32.boolean().optional()
|
|
2408
2415
|
});
|
|
2409
|
-
var StopCodeReviewRequestSchema =
|
|
2410
|
-
taskId:
|
|
2416
|
+
var StopCodeReviewRequestSchema = z32.object({
|
|
2417
|
+
taskId: z32.string()
|
|
2411
2418
|
});
|
|
2412
|
-
var ReportSessionSpawnFailureRequestSchema =
|
|
2413
|
-
sessionId:
|
|
2414
|
-
spawnedSessionId:
|
|
2415
|
-
error:
|
|
2419
|
+
var ReportSessionSpawnFailureRequestSchema = z32.object({
|
|
2420
|
+
sessionId: z32.string(),
|
|
2421
|
+
spawnedSessionId: z32.string(),
|
|
2422
|
+
error: z32.string().max(2e3).optional()
|
|
2416
2423
|
});
|
|
2417
|
-
var RefreshGithubTokenResponseSchema =
|
|
2418
|
-
token:
|
|
2424
|
+
var RefreshGithubTokenResponseSchema = z32.object({
|
|
2425
|
+
token: z32.string()
|
|
2419
2426
|
});
|
|
2420
2427
|
var PTY_FRAME_MAX_CHARS = 256 * 1024;
|
|
2421
2428
|
var PTY_MAX_DIMENSION = 1e3;
|
|
2422
|
-
var PtyOutputRequestSchema =
|
|
2423
|
-
sessionId:
|
|
2424
|
-
data:
|
|
2425
|
-
cols:
|
|
2426
|
-
rows:
|
|
2427
|
-
});
|
|
2428
|
-
var PtyEndedRequestSchema =
|
|
2429
|
-
sessionId:
|
|
2430
|
-
});
|
|
2431
|
-
var PtyInputRequestSchema =
|
|
2432
|
-
sessionId:
|
|
2433
|
-
data:
|
|
2434
|
-
});
|
|
2435
|
-
var PtyResizeRequestSchema =
|
|
2436
|
-
sessionId:
|
|
2437
|
-
cols:
|
|
2438
|
-
rows:
|
|
2439
|
-
});
|
|
2440
|
-
var PtyAttachRequestSchema =
|
|
2441
|
-
sessionId:
|
|
2442
|
-
});
|
|
2443
|
-
var ReportPtyStreamRequestSchema =
|
|
2444
|
-
sessionId:
|
|
2445
|
-
port:
|
|
2446
|
-
});
|
|
2447
|
-
var GetPtyStreamEndpointRequestSchema =
|
|
2448
|
-
sessionId:
|
|
2449
|
-
});
|
|
2450
|
-
var PtyChatEventPayloadSchema =
|
|
2451
|
-
|
|
2452
|
-
kind:
|
|
2453
|
-
model:
|
|
2454
|
-
claudeSessionId:
|
|
2429
|
+
var PtyOutputRequestSchema = z32.object({
|
|
2430
|
+
sessionId: z32.string(),
|
|
2431
|
+
data: z32.string().max(PTY_FRAME_MAX_CHARS),
|
|
2432
|
+
cols: z32.number().int().positive().max(PTY_MAX_DIMENSION).optional(),
|
|
2433
|
+
rows: z32.number().int().positive().max(PTY_MAX_DIMENSION).optional()
|
|
2434
|
+
});
|
|
2435
|
+
var PtyEndedRequestSchema = z32.object({
|
|
2436
|
+
sessionId: z32.string()
|
|
2437
|
+
});
|
|
2438
|
+
var PtyInputRequestSchema = z32.object({
|
|
2439
|
+
sessionId: z32.string(),
|
|
2440
|
+
data: z32.string().max(PTY_FRAME_MAX_CHARS)
|
|
2441
|
+
});
|
|
2442
|
+
var PtyResizeRequestSchema = z32.object({
|
|
2443
|
+
sessionId: z32.string(),
|
|
2444
|
+
cols: z32.number().int().positive().max(PTY_MAX_DIMENSION),
|
|
2445
|
+
rows: z32.number().int().positive().max(PTY_MAX_DIMENSION)
|
|
2446
|
+
});
|
|
2447
|
+
var PtyAttachRequestSchema = z32.object({
|
|
2448
|
+
sessionId: z32.string()
|
|
2449
|
+
});
|
|
2450
|
+
var ReportPtyStreamRequestSchema = z32.object({
|
|
2451
|
+
sessionId: z32.string(),
|
|
2452
|
+
port: z32.number().int().positive().max(65535).nullable()
|
|
2453
|
+
});
|
|
2454
|
+
var GetPtyStreamEndpointRequestSchema = z32.object({
|
|
2455
|
+
sessionId: z32.string()
|
|
2456
|
+
});
|
|
2457
|
+
var PtyChatEventPayloadSchema = z32.discriminatedUnion("kind", [
|
|
2458
|
+
z32.object({
|
|
2459
|
+
kind: z32.literal("init"),
|
|
2460
|
+
model: z32.string().max(200),
|
|
2461
|
+
claudeSessionId: z32.string().max(100).optional()
|
|
2455
2462
|
}),
|
|
2456
|
-
|
|
2457
|
-
kind:
|
|
2458
|
-
text:
|
|
2463
|
+
z32.object({
|
|
2464
|
+
kind: z32.literal("user_text"),
|
|
2465
|
+
text: z32.string().max(16384),
|
|
2459
2466
|
// Set by the SERVER (never the agent) when this prompt was injected by
|
|
2460
2467
|
// Conveyor rather than typed by a human — the routed message's `source`
|
|
2461
2468
|
// (`ci_success`, `review_trigger`, `automated_feedback`, …). The agent
|
|
@@ -2463,69 +2470,69 @@ var PtyChatEventPayloadSchema = z3.discriminatedUnion("kind", [
|
|
|
2463
2470
|
// CLI records both as plain transcript `user` records; without this the
|
|
2464
2471
|
// builder chat renders "All CI checks passed on your PR." as the human's
|
|
2465
2472
|
// own bubble. Absent ⇒ a genuine human prompt.
|
|
2466
|
-
source:
|
|
2473
|
+
source: z32.string().max(60).optional()
|
|
2467
2474
|
}),
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
kind:
|
|
2471
|
-
name:
|
|
2475
|
+
z32.object({ kind: z32.literal("assistant_text"), text: z32.string().max(16384) }),
|
|
2476
|
+
z32.object({
|
|
2477
|
+
kind: z32.literal("tool_use"),
|
|
2478
|
+
name: z32.string().max(200),
|
|
2472
2479
|
// Compact preview: JSON.stringify(input) truncated agent-side. The cap
|
|
2473
2480
|
// matches the text events because AskUserQuestion payloads ride this field
|
|
2474
2481
|
// and the web lifts them into an interactive card — a tight cap forced
|
|
2475
2482
|
// option descriptions down to 80 chars, making them unreadable. Every
|
|
2476
2483
|
// other tool keeps a far smaller agent-side budget (`TOOL_INPUT_MAX` in
|
|
2477
2484
|
// `chat-record-mapper.ts`), so the ring does not grow for normal calls.
|
|
2478
|
-
input:
|
|
2485
|
+
input: z32.string().max(16384),
|
|
2479
2486
|
// Transcript tool_use block id — lets the client pair the tool_result.
|
|
2480
|
-
id:
|
|
2487
|
+
id: z32.string().max(100).optional()
|
|
2481
2488
|
}),
|
|
2482
|
-
|
|
2483
|
-
kind:
|
|
2489
|
+
z32.object({
|
|
2490
|
+
kind: z32.literal("tool_result"),
|
|
2484
2491
|
// tool_use block id this result answers (absent on malformed records).
|
|
2485
|
-
toolUseId:
|
|
2492
|
+
toolUseId: z32.string().max(100).optional(),
|
|
2486
2493
|
// Compact output preview, truncated agent-side.
|
|
2487
|
-
output:
|
|
2488
|
-
isError:
|
|
2494
|
+
output: z32.string().max(2e3),
|
|
2495
|
+
isError: z32.boolean().optional()
|
|
2489
2496
|
}),
|
|
2490
|
-
|
|
2497
|
+
z32.object({ kind: z32.literal("turn_end") })
|
|
2491
2498
|
]);
|
|
2492
|
-
var PtyChatEventRequestSchema =
|
|
2493
|
-
sessionId:
|
|
2499
|
+
var PtyChatEventRequestSchema = z32.object({
|
|
2500
|
+
sessionId: z32.string(),
|
|
2494
2501
|
event: PtyChatEventPayloadSchema
|
|
2495
2502
|
});
|
|
2496
|
-
var PtyChatAttachRequestSchema =
|
|
2497
|
-
sessionId:
|
|
2503
|
+
var PtyChatAttachRequestSchema = z32.object({
|
|
2504
|
+
sessionId: z32.string()
|
|
2498
2505
|
});
|
|
2499
|
-
var CreatePRResponseSchema =
|
|
2500
|
-
prNumber:
|
|
2501
|
-
prUrl:
|
|
2506
|
+
var CreatePRResponseSchema = z32.object({
|
|
2507
|
+
prNumber: z32.number().int().positive(),
|
|
2508
|
+
prUrl: z32.string().url(),
|
|
2502
2509
|
/** Advisory glossary-upkeep note derived from the PR's changed files matched
|
|
2503
2510
|
* against tag contextPaths — rendered into the tool result, never stored. */
|
|
2504
|
-
glossaryNote:
|
|
2511
|
+
glossaryNote: z32.string().optional()
|
|
2505
2512
|
});
|
|
2506
|
-
var PostToChatResponseSchema =
|
|
2507
|
-
messageId:
|
|
2513
|
+
var PostToChatResponseSchema = z32.object({
|
|
2514
|
+
messageId: z32.string()
|
|
2508
2515
|
});
|
|
2509
|
-
var UpdateTaskStatusResponseSchema =
|
|
2510
|
-
taskId:
|
|
2511
|
-
status:
|
|
2516
|
+
var UpdateTaskStatusResponseSchema = z32.object({
|
|
2517
|
+
taskId: z32.string(),
|
|
2518
|
+
status: z32.string()
|
|
2512
2519
|
});
|
|
2513
|
-
var StoreSessionIdResponseSchema =
|
|
2514
|
-
success:
|
|
2520
|
+
var StoreSessionIdResponseSchema = z32.object({
|
|
2521
|
+
success: z32.boolean()
|
|
2515
2522
|
});
|
|
2516
|
-
var HeartbeatResponseSchema =
|
|
2517
|
-
acknowledged:
|
|
2523
|
+
var HeartbeatResponseSchema = z32.object({
|
|
2524
|
+
acknowledged: z32.boolean()
|
|
2518
2525
|
});
|
|
2519
|
-
var SessionStartResponseSchema =
|
|
2520
|
-
sessionId:
|
|
2521
|
-
startedAt:
|
|
2526
|
+
var SessionStartResponseSchema = z32.object({
|
|
2527
|
+
sessionId: z32.string(),
|
|
2528
|
+
startedAt: z32.string()
|
|
2522
2529
|
});
|
|
2523
|
-
var SessionStopResponseSchema =
|
|
2524
|
-
sessionId:
|
|
2525
|
-
stoppedAt:
|
|
2530
|
+
var SessionStopResponseSchema = z32.object({
|
|
2531
|
+
sessionId: z32.string(),
|
|
2532
|
+
stoppedAt: z32.string()
|
|
2526
2533
|
});
|
|
2527
|
-
var DeleteSubtaskResponseSchema =
|
|
2528
|
-
deleted:
|
|
2534
|
+
var DeleteSubtaskResponseSchema = z32.object({
|
|
2535
|
+
deleted: z32.boolean()
|
|
2529
2536
|
});
|
|
2530
2537
|
var ParkOnCheckResultRequestSchema = z4.object({
|
|
2531
2538
|
sessionId: z4.string(),
|
|
@@ -2561,6 +2568,11 @@ var ListProjectTasksRequestSchema = z5.object({
|
|
|
2561
2568
|
// Scope to a sub-project board when provided. Unlike the board layer's `?? null`
|
|
2562
2569
|
// semantics, agents default to seeing the whole project when omitted.
|
|
2563
2570
|
subProjectId: z5.string().nullable().optional(),
|
|
2571
|
+
// Plain equality on the on-hold flag: true = only parked cards, false =
|
|
2572
|
+
// exclude them, omitted = both. Deliberately NOT the board's
|
|
2573
|
+
// includeOnHold/surfaceActiveWork bucketing — an agent sweeping a backlog
|
|
2574
|
+
// needs the raw column, not a column projection.
|
|
2575
|
+
onHold: z5.boolean().optional(),
|
|
2564
2576
|
limit: z5.number().int().positive().optional().default(50)
|
|
2565
2577
|
}).refine((p) => !(p.unassigned && p.assigneeId), {
|
|
2566
2578
|
message: "Pass either assigneeId or unassigned, not both"
|
|
@@ -2595,7 +2607,9 @@ var SearchProjectTasksRequestSchema = z5.object({
|
|
|
2595
2607
|
message: "Pass either assigneeId or unassigned, not both"
|
|
2596
2608
|
});
|
|
2597
2609
|
var ListProjectTagsRequestSchema = z5.object({
|
|
2598
|
-
projectId: z5.string()
|
|
2610
|
+
projectId: z5.string(),
|
|
2611
|
+
/** "summary" (default) omits inline context links; "full" includes them. */
|
|
2612
|
+
detail: z5.enum(["summary", "full"]).optional()
|
|
2599
2613
|
});
|
|
2600
2614
|
var GetProjectTagRequestSchema = z5.object({
|
|
2601
2615
|
projectId: z5.string(),
|
|
@@ -2698,11 +2712,15 @@ var UpdateProjectTaskRequestSchema = z5.object({
|
|
|
2698
2712
|
// handler: the ref must exist on origin and no live workspace may be bound
|
|
2699
2713
|
// to a different branch.
|
|
2700
2714
|
githubBranch: z5.string().min(1).max(GIT_BRANCH_NAME_MAX).refine(isValidGitBranchName, { message: GIT_BRANCH_NAME_MESSAGE }).nullable().optional(),
|
|
2715
|
+
// Park the card on hold (true) or return it to the active board (false).
|
|
2716
|
+
// The handler mirrors the web path's two side effects: a board re-bucket
|
|
2717
|
+
// event, and demotion to Open when an active-work card is parked.
|
|
2718
|
+
onHold: z5.boolean().optional(),
|
|
2701
2719
|
requestingUserId: z5.string().optional()
|
|
2702
2720
|
}).strict().refine(
|
|
2703
|
-
(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,
|
|
2721
|
+
(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,
|
|
2704
2722
|
{
|
|
2705
|
-
message: "update_task requires at least one field to change (title, description, plan, status, risk, storyPointValue, assignedUserId, subProjectId, or
|
|
2723
|
+
message: "update_task requires at least one field to change (title, description, plan, status, risk, storyPointValue, assignedUserId, subProjectId, githubBranch, or onHold)"
|
|
2706
2724
|
}
|
|
2707
2725
|
);
|
|
2708
2726
|
var TransitionProjectTaskStatusRequestSchema = z5.object({
|
|
@@ -3023,7 +3041,7 @@ var QueryProjectManualTestsRequestSchema = z5.object({
|
|
|
3023
3041
|
var SetProjectManualTestsRequestSchema = z5.object({
|
|
3024
3042
|
projectId: z5.string(),
|
|
3025
3043
|
taskId: z5.string(),
|
|
3026
|
-
items:
|
|
3044
|
+
items: ManualTestItemsSchema,
|
|
3027
3045
|
requestingUserId: z5.string().optional()
|
|
3028
3046
|
});
|
|
3029
3047
|
var EditProjectManualTestRequestSchema = z5.object({
|
|
@@ -3102,42 +3120,6 @@ var ReportApiOutageRequestSchema = z7.object({
|
|
|
3102
3120
|
detail: z7.string().max(2e3),
|
|
3103
3121
|
attempts: z7.number().int().min(0).max(100)
|
|
3104
3122
|
});
|
|
3105
|
-
var SHA_PATTERN = /^[0-9a-f]{40}$/i;
|
|
3106
|
-
var ReviewGuideFileReferenceSchema = z8.object({
|
|
3107
|
-
path: z8.string().min(1).max(500),
|
|
3108
|
-
startLine: z8.number().int().positive().max(1e6).optional(),
|
|
3109
|
-
endLine: z8.number().int().positive().max(1e6).optional(),
|
|
3110
|
-
hunkHeader: z8.string().min(1).max(300).optional()
|
|
3111
|
-
}).strict().superRefine((value, ctx) => {
|
|
3112
|
-
if (value.endLine !== void 0 && value.startLine === void 0) {
|
|
3113
|
-
ctx.addIssue({
|
|
3114
|
-
code: "custom",
|
|
3115
|
-
path: ["startLine"],
|
|
3116
|
-
message: "startLine is required when endLine is set"
|
|
3117
|
-
});
|
|
3118
|
-
}
|
|
3119
|
-
if (value.startLine !== void 0 && value.endLine !== void 0 && value.endLine < value.startLine) {
|
|
3120
|
-
ctx.addIssue({
|
|
3121
|
-
code: "custom",
|
|
3122
|
-
path: ["endLine"],
|
|
3123
|
-
message: "endLine must be greater than or equal to startLine"
|
|
3124
|
-
});
|
|
3125
|
-
}
|
|
3126
|
-
});
|
|
3127
|
-
var ReviewGuideSectionSchema = z8.object({
|
|
3128
|
-
title: z8.string().min(1).max(160),
|
|
3129
|
-
explanation: z8.string().min(1).max(2e3),
|
|
3130
|
-
classification: z8.enum(["core", "supporting"]).optional(),
|
|
3131
|
-
files: z8.array(ReviewGuideFileReferenceSchema).min(1).max(20)
|
|
3132
|
-
}).strict();
|
|
3133
|
-
var ReviewGuideContentSchema = z8.object({
|
|
3134
|
-
overview: z8.string().min(1).max(3e3),
|
|
3135
|
-
sections: z8.array(ReviewGuideSectionSchema).min(1).max(12)
|
|
3136
|
-
}).strict();
|
|
3137
|
-
var PublishReviewGuideRequestSchema = ReviewGuideContentSchema.extend({
|
|
3138
|
-
sessionId: z8.string().min(1),
|
|
3139
|
-
reviewedSha: z8.string().regex(SHA_PATTERN, "reviewedSha must be a 40-character commit SHA")
|
|
3140
|
-
}).strict();
|
|
3141
3123
|
var CONTEXT_LINK_LOCATOR_MAX = 300;
|
|
3142
3124
|
var TEST_TITLE = /\b(?:it|test|describe)(?:\.\w+)?\s*\(\s*(['"`])((?:(?!\1)[\s\S])*)\1/g;
|
|
3143
3125
|
function extractTestTitles(content) {
|
|
@@ -3153,130 +3135,130 @@ function locatorMatchesContent(content, locatorType, locator) {
|
|
|
3153
3135
|
var TAG_DESCRIPTION_MAX = CARD_DESCRIPTION_MAX;
|
|
3154
3136
|
var TAG_OVERVIEW_MAX = 32e3;
|
|
3155
3137
|
var TAG_REASON_MAX = 500;
|
|
3156
|
-
var ProjectTagContextPathSchema =
|
|
3157
|
-
type:
|
|
3158
|
-
path:
|
|
3159
|
-
label:
|
|
3138
|
+
var ProjectTagContextPathSchema = z8.object({
|
|
3139
|
+
type: z8.enum(["rule", "doc", "file", "folder"]),
|
|
3140
|
+
path: z8.string().min(1).max(500),
|
|
3141
|
+
label: z8.string().max(100).optional(),
|
|
3160
3142
|
/** Verified-link tether — text that must keep existing in the file. */
|
|
3161
|
-
locator:
|
|
3143
|
+
locator: z8.string().min(1).max(CONTEXT_LINK_LOCATOR_MAX).regex(/^[^\r\n]*$/, "Locator cannot contain line breaks").optional(),
|
|
3162
3144
|
/** test = must appear in a real test/describe title; code = any substring. */
|
|
3163
|
-
locatorType:
|
|
3145
|
+
locatorType: z8.enum(["test", "code"]).optional()
|
|
3164
3146
|
}).refine((link) => link.locator === void 0 === (link.locatorType === void 0), {
|
|
3165
3147
|
message: "locator and locatorType must be provided together"
|
|
3166
3148
|
}).refine((link) => link.locator === void 0 || link.type !== "folder", {
|
|
3167
3149
|
message: "folder links cannot carry a locator"
|
|
3168
3150
|
});
|
|
3169
|
-
var hexColor =
|
|
3170
|
-
var overviewPathSchema =
|
|
3171
|
-
var CreateProjectTagRequestSchema =
|
|
3172
|
-
projectId:
|
|
3173
|
-
name:
|
|
3151
|
+
var hexColor = z8.string().regex(/^#[0-9a-fA-F]{6}$/, "Expected #RRGGBB hex color");
|
|
3152
|
+
var overviewPathSchema = z8.string().min(1).max(500).regex(/^[^\r\n]*$/, "Overview path cannot contain line breaks");
|
|
3153
|
+
var CreateProjectTagRequestSchema = z8.object({
|
|
3154
|
+
projectId: z8.string(),
|
|
3155
|
+
name: z8.string().min(1).max(50),
|
|
3174
3156
|
color: hexColor.optional(),
|
|
3175
|
-
description:
|
|
3176
|
-
overview:
|
|
3157
|
+
description: z8.string().max(TAG_DESCRIPTION_MAX).optional(),
|
|
3158
|
+
overview: z8.string().max(TAG_OVERVIEW_MAX).optional(),
|
|
3177
3159
|
/** Source the overview from this repo file (stored overview stays as the pending fallback). */
|
|
3178
3160
|
overviewPath: overviewPathSchema.optional(),
|
|
3179
|
-
contextPaths:
|
|
3161
|
+
contextPaths: z8.array(ProjectTagContextPathSchema).max(20).optional(),
|
|
3180
3162
|
/** Parents to link at create time (multi-parent DAG). */
|
|
3181
|
-
parentTagIds:
|
|
3182
|
-
requestingUserId:
|
|
3163
|
+
parentTagIds: z8.array(z8.string()).max(25).optional(),
|
|
3164
|
+
requestingUserId: z8.string().optional()
|
|
3183
3165
|
});
|
|
3184
|
-
var UpdateProjectTagRequestSchema =
|
|
3185
|
-
projectId:
|
|
3186
|
-
tagId:
|
|
3187
|
-
name:
|
|
3166
|
+
var UpdateProjectTagRequestSchema = z8.object({
|
|
3167
|
+
projectId: z8.string(),
|
|
3168
|
+
tagId: z8.string(),
|
|
3169
|
+
name: z8.string().min(1).max(50).optional(),
|
|
3188
3170
|
color: hexColor.optional(),
|
|
3189
|
-
description:
|
|
3171
|
+
description: z8.string().max(TAG_DESCRIPTION_MAX).optional(),
|
|
3190
3172
|
/** Full markdown glossary body; null clears it. Rejected while overviewPath is set. */
|
|
3191
|
-
overview:
|
|
3173
|
+
overview: z8.string().max(TAG_OVERVIEW_MAX).nullable().optional(),
|
|
3192
3174
|
/** Repo file to source the overview from; null clears back to the stored overview. */
|
|
3193
3175
|
overviewPath: overviewPathSchema.nullable().optional(),
|
|
3194
3176
|
/** Full replacement of the tag's context links when provided. */
|
|
3195
|
-
contextPaths:
|
|
3177
|
+
contextPaths: z8.array(ProjectTagContextPathSchema).max(20).optional(),
|
|
3196
3178
|
/** Full-set replacement of the tag's parent tags (multi-parent DAG). */
|
|
3197
|
-
parentTagIds:
|
|
3179
|
+
parentTagIds: z8.array(z8.string()).max(25).optional(),
|
|
3198
3180
|
/** One-line revision provenance, recorded in the tag's history. */
|
|
3199
|
-
reason:
|
|
3181
|
+
reason: z8.string().max(TAG_REASON_MAX).optional(),
|
|
3200
3182
|
/** Card the caller was working in — stamped into the revision history. */
|
|
3201
|
-
taskId:
|
|
3202
|
-
requestingUserId:
|
|
3183
|
+
taskId: z8.string().optional(),
|
|
3184
|
+
requestingUserId: z8.string().optional()
|
|
3203
3185
|
});
|
|
3204
|
-
var PostToProjectChatRequestSchema =
|
|
3205
|
-
projectId:
|
|
3206
|
-
content:
|
|
3207
|
-
requestingUserId:
|
|
3186
|
+
var PostToProjectChatRequestSchema = z8.object({
|
|
3187
|
+
projectId: z8.string(),
|
|
3188
|
+
content: z8.string().min(1).max(2e4),
|
|
3189
|
+
requestingUserId: z8.string().optional(),
|
|
3208
3190
|
/** Marks the post so the server can persist it beyond chat (tag-audit summaries land in tag history). */
|
|
3209
|
-
kind:
|
|
3210
|
-
});
|
|
3211
|
-
var StartTagAuditRequestSchema =
|
|
3212
|
-
projectId:
|
|
3213
|
-
requestingUserId:
|
|
3214
|
-
});
|
|
3215
|
-
var StartTaskAuditRequestSchema =
|
|
3216
|
-
projectId:
|
|
3217
|
-
taskIds:
|
|
3218
|
-
requestingUserId:
|
|
3219
|
-
});
|
|
3220
|
-
var GetActiveAuditSessionsRequestSchema =
|
|
3221
|
-
projectId:
|
|
3222
|
-
});
|
|
3223
|
-
var ReportTaskAuditResultRequestSchema =
|
|
3224
|
-
projectId:
|
|
3225
|
-
taskId:
|
|
3226
|
-
summary:
|
|
3227
|
-
turnGrades:
|
|
3228
|
-
|
|
3229
|
-
turnIndex:
|
|
3230
|
-
phase:
|
|
3231
|
-
grade:
|
|
3232
|
-
reasoning:
|
|
3233
|
-
eventType:
|
|
3234
|
-
eventSummary:
|
|
3191
|
+
kind: z8.enum(["tag_audit_summary"]).optional()
|
|
3192
|
+
});
|
|
3193
|
+
var StartTagAuditRequestSchema = z8.object({
|
|
3194
|
+
projectId: z8.string(),
|
|
3195
|
+
requestingUserId: z8.string().optional()
|
|
3196
|
+
});
|
|
3197
|
+
var StartTaskAuditRequestSchema = z8.object({
|
|
3198
|
+
projectId: z8.string(),
|
|
3199
|
+
taskIds: z8.array(z8.string()).min(1).max(20),
|
|
3200
|
+
requestingUserId: z8.string().optional()
|
|
3201
|
+
});
|
|
3202
|
+
var GetActiveAuditSessionsRequestSchema = z8.object({
|
|
3203
|
+
projectId: z8.string()
|
|
3204
|
+
});
|
|
3205
|
+
var ReportTaskAuditResultRequestSchema = z8.object({
|
|
3206
|
+
projectId: z8.string(),
|
|
3207
|
+
taskId: z8.string(),
|
|
3208
|
+
summary: z8.string(),
|
|
3209
|
+
turnGrades: z8.array(
|
|
3210
|
+
z8.object({
|
|
3211
|
+
turnIndex: z8.number(),
|
|
3212
|
+
phase: z8.enum(["planning", "building", "human"]),
|
|
3213
|
+
grade: z8.enum(["correct", "neutral", "blunder"]),
|
|
3214
|
+
reasoning: z8.string(),
|
|
3215
|
+
eventType: z8.string(),
|
|
3216
|
+
eventSummary: z8.string()
|
|
3235
3217
|
})
|
|
3236
3218
|
),
|
|
3237
|
-
planningAccuracy:
|
|
3238
|
-
buildingAccuracy:
|
|
3239
|
-
humanAccuracy:
|
|
3240
|
-
planningCorrect:
|
|
3241
|
-
planningNeutral:
|
|
3242
|
-
planningBlunder:
|
|
3243
|
-
buildingCorrect:
|
|
3244
|
-
buildingNeutral:
|
|
3245
|
-
buildingBlunder:
|
|
3246
|
-
humanCorrect:
|
|
3247
|
-
humanNeutral:
|
|
3248
|
-
humanBlunder:
|
|
3249
|
-
humanEvaluations:
|
|
3250
|
-
|
|
3251
|
-
messageIndex:
|
|
3252
|
-
rating:
|
|
3253
|
-
reasoning:
|
|
3219
|
+
planningAccuracy: z8.number().nullable(),
|
|
3220
|
+
buildingAccuracy: z8.number().nullable(),
|
|
3221
|
+
humanAccuracy: z8.number().nullable(),
|
|
3222
|
+
planningCorrect: z8.number(),
|
|
3223
|
+
planningNeutral: z8.number(),
|
|
3224
|
+
planningBlunder: z8.number(),
|
|
3225
|
+
buildingCorrect: z8.number(),
|
|
3226
|
+
buildingNeutral: z8.number(),
|
|
3227
|
+
buildingBlunder: z8.number(),
|
|
3228
|
+
humanCorrect: z8.number(),
|
|
3229
|
+
humanNeutral: z8.number(),
|
|
3230
|
+
humanBlunder: z8.number(),
|
|
3231
|
+
humanEvaluations: z8.array(
|
|
3232
|
+
z8.object({
|
|
3233
|
+
messageIndex: z8.number(),
|
|
3234
|
+
rating: z8.union([z8.literal(-1), z8.literal(0), z8.literal(1)]),
|
|
3235
|
+
reasoning: z8.string()
|
|
3254
3236
|
})
|
|
3255
3237
|
).optional(),
|
|
3256
|
-
suggestionIds:
|
|
3257
|
-
auditCostUsd:
|
|
3258
|
-
model:
|
|
3238
|
+
suggestionIds: z8.array(z8.string()),
|
|
3239
|
+
auditCostUsd: z8.number().nullable(),
|
|
3240
|
+
model: z8.string().nullable(),
|
|
3259
3241
|
/** When set, the audit is marked failed with this message instead. */
|
|
3260
|
-
error:
|
|
3242
|
+
error: z8.string().optional()
|
|
3261
3243
|
});
|
|
3262
|
-
var GetTaskAuditsRequestSchema =
|
|
3263
|
-
projectId:
|
|
3264
|
-
limit:
|
|
3244
|
+
var GetTaskAuditsRequestSchema = z8.object({
|
|
3245
|
+
projectId: z8.string(),
|
|
3246
|
+
limit: z8.number().int().positive().max(200).optional().default(50)
|
|
3265
3247
|
});
|
|
3266
|
-
var GetTaskAuditRequestSchema =
|
|
3267
|
-
projectId:
|
|
3268
|
-
auditId:
|
|
3248
|
+
var GetTaskAuditRequestSchema = z8.object({
|
|
3249
|
+
projectId: z8.string(),
|
|
3250
|
+
auditId: z8.string()
|
|
3269
3251
|
});
|
|
3270
|
-
var GetTaskAuditAggregatesRequestSchema =
|
|
3271
|
-
projectId:
|
|
3252
|
+
var GetTaskAuditAggregatesRequestSchema = z8.object({
|
|
3253
|
+
projectId: z8.string()
|
|
3272
3254
|
});
|
|
3273
|
-
var DeleteTaskAuditRequestSchema =
|
|
3274
|
-
projectId:
|
|
3275
|
-
auditId:
|
|
3276
|
-
requestingUserId:
|
|
3255
|
+
var DeleteTaskAuditRequestSchema = z8.object({
|
|
3256
|
+
projectId: z8.string(),
|
|
3257
|
+
auditId: z8.string(),
|
|
3258
|
+
requestingUserId: z8.string().optional()
|
|
3277
3259
|
});
|
|
3278
|
-
var MarkInitialPromptSubmittedRequestSchema =
|
|
3279
|
-
sessionId:
|
|
3260
|
+
var MarkInitialPromptSubmittedRequestSchema = z8.object({
|
|
3261
|
+
sessionId: z8.string()
|
|
3280
3262
|
});
|
|
3281
3263
|
var CRITICAL_AUTOMATED_SOURCES = /* @__PURE__ */ new Set([
|
|
3282
3264
|
"ci_failure",
|
|
@@ -3306,166 +3288,272 @@ var DECISION_DEADLINE_MIN_HOURS = 1;
|
|
|
3306
3288
|
var DECISION_DEADLINE_MAX_DAYS = 30;
|
|
3307
3289
|
var DECISION_DEADLINE_MAX_HOURS = DECISION_DEADLINE_MAX_DAYS * 24;
|
|
3308
3290
|
var DECISION_LIST_MAX_LIMIT = 200;
|
|
3309
|
-
var decisionIdSchema =
|
|
3310
|
-
var optionInputSchema =
|
|
3311
|
-
label:
|
|
3312
|
-
description:
|
|
3313
|
-
kind:
|
|
3291
|
+
var decisionIdSchema = z9.string().cuid("Invalid decision ID");
|
|
3292
|
+
var optionInputSchema = z9.object({
|
|
3293
|
+
label: z9.string().min(1, "Option label is required").max(DECISION_OPTION_LABEL_MAX),
|
|
3294
|
+
description: z9.string().min(1, "Describe the option as GIVEN / WHEN / THEN"),
|
|
3295
|
+
kind: z9.enum(DECISION_OPTION_KINDS).optional()
|
|
3314
3296
|
});
|
|
3315
|
-
var optionsArraySchema =
|
|
3297
|
+
var optionsArraySchema = z9.array(optionInputSchema).min(DECISION_OPTIONS_MIN, `A decision needs at least ${DECISION_OPTIONS_MIN} options`).max(
|
|
3316
3298
|
DECISION_OPTIONS_MAX,
|
|
3317
3299
|
`A decision takes at most ${DECISION_OPTIONS_MAX} options \u2014 more than that means the question is not framed yet`
|
|
3318
3300
|
);
|
|
3319
|
-
var CreateDecisionRequestSchema =
|
|
3320
|
-
projectId:
|
|
3301
|
+
var CreateDecisionRequestSchema = z9.object({
|
|
3302
|
+
projectId: z9.string().cuid("Invalid project ID"),
|
|
3321
3303
|
/** The question, as one plain sentence. */
|
|
3322
|
-
title:
|
|
3323
|
-
description:
|
|
3324
|
-
context:
|
|
3304
|
+
title: z9.string().min(1, "A decision needs a question").max(DECISION_QUESTION_MAX),
|
|
3305
|
+
description: z9.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
3306
|
+
context: z9.string().min(1, "Context is required \u2014 say why this is being asked now"),
|
|
3325
3307
|
options: optionsArraySchema,
|
|
3326
3308
|
/** 1-based position of the option that wins on silence. */
|
|
3327
|
-
defaultOptionOrdinal:
|
|
3328
|
-
deadlineHours:
|
|
3309
|
+
defaultOptionOrdinal: z9.number().int().min(1).max(DECISION_OPTIONS_MAX),
|
|
3310
|
+
deadlineHours: z9.number().min(DECISION_DEADLINE_MIN_HOURS).max(DECISION_DEADLINE_MAX_HOURS).optional(),
|
|
3329
3311
|
/** Cards this decision blocks, by cuid or slug. */
|
|
3330
|
-
impactedCardRefs:
|
|
3331
|
-
tagNames:
|
|
3332
|
-
raisedByTaskId:
|
|
3333
|
-
raisedByPrNumber:
|
|
3312
|
+
impactedCardRefs: z9.array(z9.string().min(1)).max(50).optional(),
|
|
3313
|
+
tagNames: z9.array(z9.string().min(1)).max(10).optional(),
|
|
3314
|
+
raisedByTaskId: z9.string().min(1).optional(),
|
|
3315
|
+
raisedByPrNumber: z9.number().int().positive().optional()
|
|
3334
3316
|
});
|
|
3335
|
-
var VoteDecisionRequestSchema =
|
|
3317
|
+
var VoteDecisionRequestSchema = z9.object({
|
|
3336
3318
|
decisionId: decisionIdSchema,
|
|
3337
|
-
optionId:
|
|
3338
|
-
reason:
|
|
3339
|
-
source:
|
|
3319
|
+
optionId: z9.string().cuid("Invalid option ID"),
|
|
3320
|
+
reason: z9.string().max(DECISION_VOTE_REASON_MAX).optional(),
|
|
3321
|
+
source: z9.enum(DECISION_VOTE_SOURCES).optional()
|
|
3340
3322
|
});
|
|
3341
|
-
var RemoveDecisionVoteRequestSchema =
|
|
3323
|
+
var RemoveDecisionVoteRequestSchema = z9.object({
|
|
3342
3324
|
decisionId: decisionIdSchema
|
|
3343
3325
|
});
|
|
3344
|
-
var ResolveDecisionRequestSchema =
|
|
3326
|
+
var ResolveDecisionRequestSchema = z9.object({
|
|
3345
3327
|
decisionId: decisionIdSchema,
|
|
3346
|
-
chosenOptionId:
|
|
3347
|
-
resolution:
|
|
3348
|
-
resolutionNotes:
|
|
3328
|
+
chosenOptionId: z9.string().cuid("Invalid option ID"),
|
|
3329
|
+
resolution: z9.string().min(1, "A resolution is required \u2014 say what was decided").max(DECISION_RESOLUTION_MAX),
|
|
3330
|
+
resolutionNotes: z9.string().optional()
|
|
3349
3331
|
});
|
|
3350
|
-
var CancelDecisionRequestSchema =
|
|
3332
|
+
var CancelDecisionRequestSchema = z9.object({
|
|
3351
3333
|
decisionId: decisionIdSchema,
|
|
3352
3334
|
/** Why it is being dropped. Posted to the decision thread. */
|
|
3353
|
-
reason:
|
|
3335
|
+
reason: z9.string().max(DECISION_RESOLUTION_MAX).optional()
|
|
3354
3336
|
});
|
|
3355
|
-
var BulkDecisionIdsRequestSchema =
|
|
3356
|
-
projectId:
|
|
3357
|
-
decisionIds:
|
|
3337
|
+
var BulkDecisionIdsRequestSchema = z9.object({
|
|
3338
|
+
projectId: z9.string().cuid("Invalid project ID"),
|
|
3339
|
+
decisionIds: z9.array(z9.string().cuid()).min(1).max(200)
|
|
3358
3340
|
});
|
|
3359
|
-
var ReopenDecisionRequestSchema =
|
|
3341
|
+
var ReopenDecisionRequestSchema = z9.object({
|
|
3360
3342
|
decisionId: decisionIdSchema,
|
|
3361
|
-
deadlineHours:
|
|
3343
|
+
deadlineHours: z9.number().min(DECISION_DEADLINE_MIN_HOURS).max(DECISION_DEADLINE_MAX_HOURS).optional()
|
|
3362
3344
|
});
|
|
3363
|
-
var UpdateDecisionRequestSchema =
|
|
3345
|
+
var UpdateDecisionRequestSchema = z9.object({
|
|
3364
3346
|
decisionId: decisionIdSchema,
|
|
3365
|
-
title:
|
|
3366
|
-
description:
|
|
3367
|
-
context:
|
|
3368
|
-
deadlineAt:
|
|
3347
|
+
title: z9.string().min(1).max(200).optional(),
|
|
3348
|
+
description: z9.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
3349
|
+
context: z9.string().min(1).optional(),
|
|
3350
|
+
deadlineAt: z9.string().datetime().optional(),
|
|
3369
3351
|
/** Only accepted while the decision has zero votes. */
|
|
3370
3352
|
options: optionsArraySchema.optional(),
|
|
3371
|
-
defaultOptionOrdinal:
|
|
3372
|
-
addImpactedCardRefs:
|
|
3373
|
-
removeImpactedCardIds:
|
|
3353
|
+
defaultOptionOrdinal: z9.number().int().min(1).max(DECISION_OPTIONS_MAX).optional(),
|
|
3354
|
+
addImpactedCardRefs: z9.array(z9.string().min(1)).max(50).optional(),
|
|
3355
|
+
removeImpactedCardIds: z9.array(z9.string().min(1)).max(50).optional()
|
|
3374
3356
|
});
|
|
3375
|
-
var GetDecisionRequestSchema =
|
|
3357
|
+
var GetDecisionRequestSchema = z9.object({
|
|
3376
3358
|
/** cuid or slug. A slug needs `projectId` to resolve unambiguously. */
|
|
3377
|
-
decisionId:
|
|
3378
|
-
projectId:
|
|
3359
|
+
decisionId: z9.string().min(1),
|
|
3360
|
+
projectId: z9.string().cuid().optional()
|
|
3379
3361
|
});
|
|
3380
|
-
var ListDecisionsRequestSchema =
|
|
3381
|
-
projectId:
|
|
3382
|
-
status:
|
|
3362
|
+
var ListDecisionsRequestSchema = z9.object({
|
|
3363
|
+
projectId: z9.string().cuid("Invalid project ID"),
|
|
3364
|
+
status: z9.enum(DECISION_STATUS_LABELS).optional(),
|
|
3383
3365
|
/** Tag name, not id — an agent knows the tag it is working under. */
|
|
3384
|
-
tag:
|
|
3366
|
+
tag: z9.string().min(1).optional(),
|
|
3385
3367
|
/** Decisions that this card is blocked by (cuid or slug). */
|
|
3386
|
-
cardId:
|
|
3387
|
-
query:
|
|
3388
|
-
limit:
|
|
3368
|
+
cardId: z9.string().min(1).optional(),
|
|
3369
|
+
query: z9.string().min(1).optional(),
|
|
3370
|
+
limit: z9.number().int().min(1).max(DECISION_LIST_MAX_LIMIT).optional()
|
|
3389
3371
|
});
|
|
3390
|
-
var optionInput =
|
|
3391
|
-
label:
|
|
3392
|
-
description:
|
|
3393
|
-
kind:
|
|
3372
|
+
var optionInput = z10.object({
|
|
3373
|
+
label: z10.string().min(1).max(DECISION_OPTION_LABEL_MAX),
|
|
3374
|
+
description: z10.string().min(1),
|
|
3375
|
+
kind: z10.enum(DECISION_OPTION_KINDS).optional()
|
|
3394
3376
|
});
|
|
3395
|
-
var optionsInput =
|
|
3396
|
-
var deadlineHours =
|
|
3397
|
-
var CreateProjectDecisionRequestSchema =
|
|
3398
|
-
projectId:
|
|
3399
|
-
question:
|
|
3400
|
-
summary:
|
|
3401
|
-
context:
|
|
3377
|
+
var optionsInput = z10.array(optionInput).min(DECISION_OPTIONS_MIN).max(DECISION_OPTIONS_MAX);
|
|
3378
|
+
var deadlineHours = z10.number().min(DECISION_DEADLINE_MIN_HOURS).max(DECISION_DEADLINE_MAX_HOURS).optional();
|
|
3379
|
+
var CreateProjectDecisionRequestSchema = z10.object({
|
|
3380
|
+
projectId: z10.string(),
|
|
3381
|
+
question: z10.string().min(1).max(200),
|
|
3382
|
+
summary: z10.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
3383
|
+
context: z10.string().min(1),
|
|
3402
3384
|
options: optionsInput,
|
|
3403
|
-
defaultOption:
|
|
3385
|
+
defaultOption: z10.number().int().min(1).max(DECISION_OPTIONS_MAX),
|
|
3404
3386
|
deadlineHours,
|
|
3405
|
-
impactedCards:
|
|
3387
|
+
impactedCards: z10.array(z10.string().min(1)).max(50).optional(),
|
|
3406
3388
|
/**
|
|
3407
3389
|
* Pod surface only: also block the card this session is working on. The
|
|
3408
3390
|
* session's task id is resolved SERVER-side from `sessionId` — a
|
|
3409
3391
|
* client-supplied card id would let a pod block any card in the project.
|
|
3410
3392
|
*/
|
|
3411
|
-
includeCurrentCard:
|
|
3412
|
-
sessionId:
|
|
3413
|
-
tagNames:
|
|
3414
|
-
raisedByPr:
|
|
3393
|
+
includeCurrentCard: z10.boolean().optional(),
|
|
3394
|
+
sessionId: z10.string().optional(),
|
|
3395
|
+
tagNames: z10.array(z10.string().min(1)).max(10).optional(),
|
|
3396
|
+
raisedByPr: z10.number().int().positive().optional(),
|
|
3415
3397
|
/** Slug or id of the card that raised the question. A link back, not a block. */
|
|
3416
|
-
raisedByCard:
|
|
3398
|
+
raisedByCard: z10.string().min(1).optional(),
|
|
3417
3399
|
/** Absolute deadline (ISO 8601). Wins over `deadlineHours` when both are sent. */
|
|
3418
|
-
deadlineAt:
|
|
3419
|
-
requestingUserId:
|
|
3400
|
+
deadlineAt: z10.string().datetime({ offset: true }).optional(),
|
|
3401
|
+
requestingUserId: z10.string().optional()
|
|
3420
3402
|
});
|
|
3421
|
-
var ListProjectDecisionsRequestSchema =
|
|
3422
|
-
projectId:
|
|
3423
|
-
status:
|
|
3424
|
-
tag:
|
|
3425
|
-
card:
|
|
3426
|
-
query:
|
|
3427
|
-
limit:
|
|
3428
|
-
requestingUserId:
|
|
3429
|
-
});
|
|
3430
|
-
var GetProjectDecisionRequestSchema = z11.object({
|
|
3431
|
-
projectId: z11.string(),
|
|
3432
|
-
decision: z11.string().min(1),
|
|
3433
|
-
requestingUserId: z11.string().optional()
|
|
3434
|
-
});
|
|
3435
|
-
var VoteProjectDecisionRequestSchema = z11.object({
|
|
3436
|
-
projectId: z11.string(),
|
|
3437
|
-
decision: z11.string().min(1),
|
|
3438
|
-
/** An option id, or its 1-based position. */
|
|
3439
|
-
option: z11.string().min(1),
|
|
3440
|
-
reason: z11.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
3441
|
-
requestingUserId: z11.string().optional()
|
|
3403
|
+
var ListProjectDecisionsRequestSchema = z10.object({
|
|
3404
|
+
projectId: z10.string(),
|
|
3405
|
+
status: z10.enum(DECISION_STATUS_LABELS).optional(),
|
|
3406
|
+
tag: z10.string().min(1).optional(),
|
|
3407
|
+
card: z10.string().min(1).optional(),
|
|
3408
|
+
query: z10.string().min(1).optional(),
|
|
3409
|
+
limit: z10.number().int().min(1).max(DECISION_LIST_MAX_LIMIT).optional(),
|
|
3410
|
+
requestingUserId: z10.string().optional()
|
|
3442
3411
|
});
|
|
3443
|
-
var
|
|
3444
|
-
projectId:
|
|
3445
|
-
decision:
|
|
3446
|
-
|
|
3447
|
-
resolution: z11.string().min(1).max(DECISION_RESOLUTION_MAX),
|
|
3448
|
-
notes: z11.string().optional(),
|
|
3449
|
-
requestingUserId: z11.string().optional()
|
|
3412
|
+
var GetProjectDecisionRequestSchema = z10.object({
|
|
3413
|
+
projectId: z10.string(),
|
|
3414
|
+
decision: z10.string().min(1),
|
|
3415
|
+
requestingUserId: z10.string().optional()
|
|
3450
3416
|
});
|
|
3451
|
-
var
|
|
3452
|
-
projectId:
|
|
3453
|
-
decision:
|
|
3454
|
-
|
|
3455
|
-
|
|
3456
|
-
|
|
3417
|
+
var VoteProjectDecisionRequestSchema = z10.object({
|
|
3418
|
+
projectId: z10.string(),
|
|
3419
|
+
decision: z10.string().min(1),
|
|
3420
|
+
/** An option id, or its 1-based position. */
|
|
3421
|
+
option: z10.string().min(1),
|
|
3422
|
+
reason: z10.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
3423
|
+
requestingUserId: z10.string().optional()
|
|
3424
|
+
});
|
|
3425
|
+
var ResolveProjectDecisionRequestSchema = z10.object({
|
|
3426
|
+
projectId: z10.string(),
|
|
3427
|
+
decision: z10.string().min(1),
|
|
3428
|
+
option: z10.string().min(1),
|
|
3429
|
+
resolution: z10.string().min(1).max(DECISION_RESOLUTION_MAX),
|
|
3430
|
+
notes: z10.string().optional(),
|
|
3431
|
+
requestingUserId: z10.string().optional()
|
|
3432
|
+
});
|
|
3433
|
+
var UpdateProjectDecisionRequestSchema = z10.object({
|
|
3434
|
+
projectId: z10.string(),
|
|
3435
|
+
decision: z10.string().min(1),
|
|
3436
|
+
question: z10.string().min(1).max(200).optional(),
|
|
3437
|
+
summary: z10.string().max(CARD_DESCRIPTION_MAX).optional(),
|
|
3438
|
+
context: z10.string().min(1).optional(),
|
|
3457
3439
|
/** Accepted only while nobody has voted. */
|
|
3458
3440
|
options: optionsInput.optional(),
|
|
3459
|
-
defaultOption:
|
|
3460
|
-
tagNames:
|
|
3441
|
+
defaultOption: z10.number().int().min(1).max(DECISION_OPTIONS_MAX).optional(),
|
|
3442
|
+
tagNames: z10.array(z10.string().min(1)).max(10).optional(),
|
|
3461
3443
|
deadlineHours,
|
|
3462
3444
|
/** Absolute deadline (ISO 8601). Wins over `deadlineHours` when both are sent. */
|
|
3463
|
-
deadlineAt:
|
|
3464
|
-
addImpactedCards:
|
|
3465
|
-
removeImpactedCards:
|
|
3466
|
-
status:
|
|
3467
|
-
requestingUserId:
|
|
3445
|
+
deadlineAt: z10.string().datetime({ offset: true }).optional(),
|
|
3446
|
+
addImpactedCards: z10.array(z10.string().min(1)).max(50).optional(),
|
|
3447
|
+
removeImpactedCards: z10.array(z10.string().min(1)).max(50).optional(),
|
|
3448
|
+
status: z10.enum(["Cancelled", "Open"]).optional(),
|
|
3449
|
+
requestingUserId: z10.string().optional()
|
|
3450
|
+
});
|
|
3451
|
+
function formatModelId(provider, model) {
|
|
3452
|
+
return `${provider}/${model}`;
|
|
3453
|
+
}
|
|
3454
|
+
var JEV_MODEL = "jev-1.13.0";
|
|
3455
|
+
var JEV_MODEL_ID = formatModelId("typesafe", JEV_MODEL);
|
|
3456
|
+
var JEV_INPUT_PRICE_PER_TOKEN = 0.042 / 1e6;
|
|
3457
|
+
var JEV_STATE_MAX_CHARS = 1e5;
|
|
3458
|
+
var EVALUATE_MAX_QUESTIONS = 32;
|
|
3459
|
+
var EVALUATE_MAX_ITEMS = 100;
|
|
3460
|
+
var EVALUATE_ITEM_MAX_CHARS = 8e3;
|
|
3461
|
+
var EVALUATE_REQUEST_MAX_CHARS = 4e5;
|
|
3462
|
+
var TEXT_MAX = 1e3;
|
|
3463
|
+
var QUESTION_KEY = /^[A-Za-z0-9_-]{1,64}$/;
|
|
3464
|
+
var EvaluateQuestionSchema = z11.object({
|
|
3465
|
+
key: z11.string().regex(QUESTION_KEY, "key must be 1-64 letters, digits, _ or -"),
|
|
3466
|
+
type: z11.enum(["noul", "choice", "score"]),
|
|
3467
|
+
instructions: z11.string().min(1).max(4e3),
|
|
3468
|
+
options: z11.array(
|
|
3469
|
+
z11.object({
|
|
3470
|
+
key: z11.string().min(1).max(200),
|
|
3471
|
+
description: z11.string().min(1).max(TEXT_MAX)
|
|
3472
|
+
})
|
|
3473
|
+
).optional(),
|
|
3474
|
+
levels: z11.array(z11.string().min(1).max(TEXT_MAX)).optional()
|
|
3475
|
+
}).superRefine((q, ctx) => {
|
|
3476
|
+
if (q.type === "choice") {
|
|
3477
|
+
const n = q.options?.length ?? 0;
|
|
3478
|
+
if (n < 2 || n > 255) {
|
|
3479
|
+
ctx.addIssue({
|
|
3480
|
+
code: z11.ZodIssueCode.custom,
|
|
3481
|
+
path: ["options"],
|
|
3482
|
+
message: "a choice question needs 2-255 options"
|
|
3483
|
+
});
|
|
3484
|
+
} else if (new Set(q.options?.map((o) => o.key)).size !== n) {
|
|
3485
|
+
ctx.addIssue({
|
|
3486
|
+
code: z11.ZodIssueCode.custom,
|
|
3487
|
+
path: ["options"],
|
|
3488
|
+
message: "option keys must be unique"
|
|
3489
|
+
});
|
|
3490
|
+
}
|
|
3491
|
+
}
|
|
3492
|
+
if (q.type === "score") {
|
|
3493
|
+
const n = q.levels?.length ?? 0;
|
|
3494
|
+
if (n < 2 || n > 10) {
|
|
3495
|
+
ctx.addIssue({
|
|
3496
|
+
code: z11.ZodIssueCode.custom,
|
|
3497
|
+
path: ["levels"],
|
|
3498
|
+
message: "a score question needs 2-10 levels"
|
|
3499
|
+
});
|
|
3500
|
+
}
|
|
3501
|
+
}
|
|
3502
|
+
});
|
|
3503
|
+
var EvaluateQuestionsRequestSchema = z11.object({
|
|
3504
|
+
projectId: z11.string(),
|
|
3505
|
+
state: z11.string().max(JEV_STATE_MAX_CHARS).optional(),
|
|
3506
|
+
items: z11.array(z11.string().max(EVALUATE_ITEM_MAX_CHARS)).max(EVALUATE_MAX_ITEMS).optional(),
|
|
3507
|
+
questions: z11.array(EvaluateQuestionSchema).min(1).max(EVALUATE_MAX_QUESTIONS)
|
|
3508
|
+
}).superRefine((req, ctx) => {
|
|
3509
|
+
if (req.state === void 0 && (!req.items || req.items.length === 0)) {
|
|
3510
|
+
ctx.addIssue({
|
|
3511
|
+
code: z11.ZodIssueCode.custom,
|
|
3512
|
+
path: ["state"],
|
|
3513
|
+
message: "pass state, or a non-empty items array"
|
|
3514
|
+
});
|
|
3515
|
+
}
|
|
3516
|
+
if (JSON.stringify(req).length > EVALUATE_REQUEST_MAX_CHARS) {
|
|
3517
|
+
ctx.addIssue({
|
|
3518
|
+
code: z11.ZodIssueCode.custom,
|
|
3519
|
+
path: [],
|
|
3520
|
+
message: `the request is over ${EVALUATE_REQUEST_MAX_CHARS} characters; split the items across calls`
|
|
3521
|
+
});
|
|
3522
|
+
}
|
|
3523
|
+
if (new Set(req.questions.map((q) => q.key)).size !== req.questions.length) {
|
|
3524
|
+
ctx.addIssue({
|
|
3525
|
+
code: z11.ZodIssueCode.custom,
|
|
3526
|
+
path: ["questions"],
|
|
3527
|
+
message: "question keys must be unique"
|
|
3528
|
+
});
|
|
3529
|
+
}
|
|
3468
3530
|
});
|
|
3531
|
+
var round3 = (n) => Math.round(n * 1e3) / 1e3;
|
|
3532
|
+
function compactAnswer(answer) {
|
|
3533
|
+
switch (answer.type) {
|
|
3534
|
+
case "noul":
|
|
3535
|
+
return round3(answer.noul);
|
|
3536
|
+
case "choice":
|
|
3537
|
+
return {
|
|
3538
|
+
choice: answer.choice,
|
|
3539
|
+
p: round3(answer.probabilities[answer.choice] ?? 0),
|
|
3540
|
+
confidence: round3(answer.confidence)
|
|
3541
|
+
};
|
|
3542
|
+
case "score":
|
|
3543
|
+
return { score: answer.score, confidence: round3(answer.confidence) };
|
|
3544
|
+
}
|
|
3545
|
+
}
|
|
3546
|
+
function formatEvaluateQuestionsResult(res) {
|
|
3547
|
+
const results = res.results.map(
|
|
3548
|
+
(r) => "error" in r ? { index: r.index, error: r.error } : {
|
|
3549
|
+
index: r.index,
|
|
3550
|
+
answers: Object.fromEntries(
|
|
3551
|
+
Object.entries(r.answers).map(([key, a]) => [key, compactAnswer(a)])
|
|
3552
|
+
)
|
|
3553
|
+
}
|
|
3554
|
+
);
|
|
3555
|
+
return JSON.stringify({ model: res.model, results });
|
|
3556
|
+
}
|
|
3469
3557
|
var MEETING_CHECKLIST_TITLE_MAX = 300;
|
|
3470
3558
|
var MEETING_TRANSCRIPT_MAX_CHARS = 2e6;
|
|
3471
3559
|
var MEETING_TITLE_MAX = 200;
|
|
@@ -3603,9 +3691,6 @@ var AGENT_STATUS_REASON_USER_QUESTION = "user_question";
|
|
|
3603
3691
|
var TASK_CHAT_HISTORY_LIMIT = 20;
|
|
3604
3692
|
var PM_CHAT_HISTORY_LIMIT = 40;
|
|
3605
3693
|
var AGENT_CHAT_HISTORY_FETCH_LIMIT = Math.max(TASK_CHAT_HISTORY_LIMIT, PM_CHAT_HISTORY_LIMIT) + 10;
|
|
3606
|
-
function formatModelId(provider, model) {
|
|
3607
|
-
return `${provider}/${model}`;
|
|
3608
|
-
}
|
|
3609
3694
|
function anthropicEntry(model, label, inputPerMillion, outputPerMillion, opts = {}) {
|
|
3610
3695
|
return {
|
|
3611
3696
|
provider: "anthropic",
|
|
@@ -3635,7 +3720,7 @@ function isCodexReasoningEffort(value) {
|
|
|
3635
3720
|
return typeof value === "string" && CODEX_REASONING_EFFORTS.includes(value);
|
|
3636
3721
|
}
|
|
3637
3722
|
var HUMAN_PROSE_WRITING_STYLE = `## Writing style for humans
|
|
3638
|
-
When you write prose a person will read \u2014 chat messages, plan updates, PR titles and bodies,
|
|
3723
|
+
When you write prose a person will read \u2014 chat messages, plan updates, PR titles and bodies, review comments \u2014 follow these rules (based on ASD-STE100 Simplified Technical English):
|
|
3639
3724
|
- Use active voice. Say who does what ("The API rejects the request", not "the request is rejected").
|
|
3640
3725
|
- Use simple tenses ("we received", not "we have received").
|
|
3641
3726
|
- One instruction or fact per sentence. Keep sentences under ~20 words.
|
|
@@ -5098,6 +5183,9 @@ export {
|
|
|
5098
5183
|
encodePtyStreamFrame,
|
|
5099
5184
|
PtyStreamFrameReader,
|
|
5100
5185
|
CARD_DESCRIPTION_FIELD_HINT,
|
|
5186
|
+
MAX_MANUAL_TESTS_PER_TASK,
|
|
5187
|
+
MAX_MANUAL_TEST_TITLE_LENGTH,
|
|
5188
|
+
describeManualTestRejection,
|
|
5101
5189
|
DEFAULT_CI_WAIT_TIMEOUT_MINUTES,
|
|
5102
5190
|
MAX_CI_WAIT_TIMEOUT_MINUTES,
|
|
5103
5191
|
SEVERITY_ENUM,
|
|
@@ -5108,7 +5196,6 @@ export {
|
|
|
5108
5196
|
MAX_FILE_SIZE_BYTES,
|
|
5109
5197
|
isCapabilityServableMime,
|
|
5110
5198
|
RUNNER_MODES,
|
|
5111
|
-
ReviewGuideContentSchema,
|
|
5112
5199
|
CONTEXT_LINK_LOCATOR_MAX,
|
|
5113
5200
|
isPlaceholderLocator,
|
|
5114
5201
|
locatorMatchesContent,
|
|
@@ -5116,6 +5203,7 @@ export {
|
|
|
5116
5203
|
TAG_OVERVIEW_MAX,
|
|
5117
5204
|
TAG_REASON_MAX,
|
|
5118
5205
|
CRITICAL_AUTOMATED_SOURCES,
|
|
5206
|
+
formatEvaluateQuestionsResult,
|
|
5119
5207
|
AGENT_STATUS_REASON_USER_QUESTION,
|
|
5120
5208
|
TASK_CHAT_HISTORY_LIMIT,
|
|
5121
5209
|
PM_CHAT_HISTORY_LIMIT,
|