@rallycry/conveyor-mcp 5.0.10 → 5.0.12

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/cli.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-5KU3QS6A.js";
5
5
  import {
6
6
  ConveyorConnection
7
- } from "./chunk-UPLS63HM.js";
7
+ } from "./chunk-UOLE5JY2.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,7 +70,7 @@ 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
75
  // ../shared/dist/chunk-3D2OVVIS.js
76
76
  import { z as z2 } from "zod";
@@ -322,14 +322,14 @@ var f = {
322
322
  return { kind: "nullable", inner };
323
323
  }
324
324
  };
325
- function compileString(z14, spec) {
326
- let schema = z14.string();
325
+ function compileString(z15, spec) {
326
+ let schema = z15.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(z14, spec) {
332
- let schema = z14.number();
331
+ function compileNumber(z15, spec) {
332
+ let schema = z15.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(z14, spec) {
341
- let schema = z14.array(compileField(z14, spec.item));
340
+ function compileArray(z15, spec) {
341
+ let schema = z15.array(compileField(z15, 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(z14, spec) {
346
+ function compileBase(z15, spec) {
347
347
  switch (spec.kind) {
348
348
  case "string":
349
- return compileString(z14, spec);
349
+ return compileString(z15, spec);
350
350
  case "number":
351
- return compileNumber(z14, spec);
351
+ return compileNumber(z15, spec);
352
352
  case "boolean":
353
- return z14.boolean();
353
+ return z15.boolean();
354
354
  case "enum":
355
- return z14.enum([...spec.values]);
355
+ return z15.enum([...spec.values]);
356
356
  case "array":
357
- return compileArray(z14, spec);
357
+ return compileArray(z15, spec);
358
358
  case "object":
359
- return z14.object(compileShape(z14, spec.fields));
359
+ return z15.object(compileShape(z15, 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(z14, spec) {
366
+ function compileUndescribed(z15, spec) {
367
367
  if (spec.kind === "optional") {
368
- return compileUndescribed(z14, spec.inner).optional();
368
+ return compileUndescribed(z15, spec.inner).optional();
369
369
  }
370
370
  if (spec.kind === "nullable") {
371
- return compileUndescribed(z14, spec.inner).nullable();
371
+ return compileUndescribed(z15, spec.inner).nullable();
372
372
  }
373
- return compileBase(z14, spec);
373
+ return compileBase(z15, spec);
374
374
  }
375
- function compileField(z14, spec) {
376
- const schema = compileUndescribed(z14, spec);
375
+ function compileField(z15, spec) {
376
+ const schema = compileUndescribed(z15, spec);
377
377
  const desc = descriptionOf(spec);
378
378
  return desc === void 0 ? schema : schema.describe(desc);
379
379
  }
380
- function compileShape(z14, fields) {
380
+ function compileShape(z15, fields) {
381
381
  const shape = {};
382
382
  for (const [key, spec] of Object.entries(fields)) {
383
- shape[key] = compileField(z14, spec);
383
+ shape[key] = compileField(z15, spec);
384
384
  }
385
385
  return shape;
386
386
  }
@@ -2140,6 +2140,88 @@ var logsContracts = [
2140
2140
  queryGcpLogsContract,
2141
2141
  queryGrafanaLogsContract
2142
2142
  ];
2143
+ var DETECTORS = ["partner", "player", "internal", "monitor", "agent", "unknown"];
2144
+ var LINK_KINDS = ["deployment", "origin", "fix"];
2145
+ var ATTRIBUTIONS = ["suspected", "confirmed"];
2146
+ var TIMESTAMP_HINT = "ISO 8601 timestamp; pass an empty string to clear it back to unknown. Never substitute card creation or closure time.";
2147
+ var DESCRIPTION = "Record an incident's outcome and attribution: impact, environment, who detected it, when the failure started, when it was detected, and when service was actually restored (alert clearance alone is not recovery). Optionally link a deployment, the origin task whose change caused it, or a fix task; attribution is 'suspected' until confirmed. remove_link_id soft-removes a wrong link (reason required). Every change is audited. Read the current record with get_task (field `incident`).";
2148
+ var updateIncidentContract = defineToolContract({
2149
+ name: "update_incident",
2150
+ agent: {
2151
+ description: DESCRIPTION,
2152
+ fields: {
2153
+ incident_slug_or_id: f.optional(
2154
+ f.string({
2155
+ desc: "Incident card slug or ID. Omit when this session's card is the incident."
2156
+ })
2157
+ ),
2158
+ impact: f.optional(f.string({ desc: "Who/what was affected and how badly" })),
2159
+ environment: f.optional(f.string({ desc: "Affected environment, e.g. prod, staging, test" })),
2160
+ detected_by: f.optional(f.enum(DETECTORS, { desc: "Who first noticed the failure" })),
2161
+ failure_started_at: f.optional(
2162
+ f.string({ desc: `When the failure began. ${TIMESTAMP_HINT}` })
2163
+ ),
2164
+ detected_at: f.optional(f.string({ desc: `When it was first detected. ${TIMESTAMP_HINT}` })),
2165
+ service_restored_at: f.optional(
2166
+ f.string({ desc: `When service was observed restored. ${TIMESTAMP_HINT}` })
2167
+ ),
2168
+ synthetic: f.optional(
2169
+ f.boolean({ desc: "True for probe/acceptance incidents (excluded from delivery metrics)" })
2170
+ ),
2171
+ link_kind: f.optional(f.enum(LINK_KINDS, { desc: "Add or update a link of this kind" })),
2172
+ link_task_slug_or_id: f.optional(
2173
+ f.string({ desc: "Origin or fix task slug/ID (link_kind origin|fix)" })
2174
+ ),
2175
+ link_deployment_id: f.optional(f.string({ desc: "Deployment ID (link_kind deployment)" })),
2176
+ attribution: f.optional(
2177
+ f.enum(ATTRIBUTIONS, { desc: "Deployment/origin attribution; defaults to suspected" })
2178
+ ),
2179
+ required_immediate_intervention: f.optional(
2180
+ f.boolean({
2181
+ desc: "Deployment links: did the failure need a rollback, hotfix, or fix-forward?"
2182
+ })
2183
+ ),
2184
+ link_note: f.optional(f.string({ desc: "Short evidence note for the link" })),
2185
+ remove_link_id: f.optional(f.string({ desc: "ID of an existing link to remove" })),
2186
+ reason: f.optional(f.string({ desc: "Why this changed (kept in the audit history)" }))
2187
+ }
2188
+ },
2189
+ mcp: {
2190
+ description: `${DESCRIPTION} Pass projectId to target a specific project; otherwise the configured default project is used.`,
2191
+ fields: {
2192
+ projectId: mcpProjectId,
2193
+ taskId: f.string({ desc: "The incident card ID or slug" }),
2194
+ impact: f.optional(f.string({ desc: "Who/what was affected and how badly" })),
2195
+ environment: f.optional(f.string({ desc: "Affected environment, e.g. prod, staging, test" })),
2196
+ detectedBy: f.optional(f.enum(DETECTORS, { desc: "Who first noticed the failure" })),
2197
+ failureStartedAt: f.optional(f.string({ desc: `When the failure began. ${TIMESTAMP_HINT}` })),
2198
+ detectedAt: f.optional(f.string({ desc: `When it was first detected. ${TIMESTAMP_HINT}` })),
2199
+ serviceRestoredAt: f.optional(
2200
+ f.string({ desc: `When service was observed restored. ${TIMESTAMP_HINT}` })
2201
+ ),
2202
+ synthetic: f.optional(
2203
+ f.boolean({ desc: "True for probe/acceptance incidents (excluded from delivery metrics)" })
2204
+ ),
2205
+ linkKind: f.optional(f.enum(LINK_KINDS, { desc: "Add or update a link of this kind" })),
2206
+ linkTaskSlugOrId: f.optional(
2207
+ f.string({ desc: "Origin or fix task slug/ID (linkKind origin|fix)" })
2208
+ ),
2209
+ linkDeploymentId: f.optional(f.string({ desc: "Deployment ID (linkKind deployment)" })),
2210
+ attribution: f.optional(
2211
+ f.enum(ATTRIBUTIONS, { desc: "Deployment/origin attribution; defaults to suspected" })
2212
+ ),
2213
+ requiredImmediateIntervention: f.optional(
2214
+ f.boolean({
2215
+ desc: "Deployment links: did the failure need a rollback, hotfix, or fix-forward?"
2216
+ })
2217
+ ),
2218
+ linkNote: f.optional(f.string({ desc: "Short evidence note for the link" })),
2219
+ removeLinkId: f.optional(f.string({ desc: "ID of an existing link to remove" })),
2220
+ reason: f.optional(f.string({ desc: "Why this changed (kept in the audit history)" }))
2221
+ }
2222
+ }
2223
+ });
2224
+ var incidentsContracts = [updateIncidentContract];
2143
2225
  var SHA = f.optional(
2144
2226
  f.string({
2145
2227
  desc: "Commit sha to watch, full or abbreviated. Defaults to the head of prNumber, else this card's PR, else the tip of this card's branch.",
@@ -2184,7 +2266,7 @@ var waitForChecksContract = defineToolContract({
2184
2266
  }
2185
2267
  });
2186
2268
  var ciWaitContracts = [waitForChecksContract];
2187
- var DESCRIPTION = [
2269
+ var DESCRIPTION2 = [
2188
2270
  "Ask typed questions about text and get probabilities back, never text: yes/no (noul \u2192 probability of yes), pick-one (choice \u2192 the chosen option, per-option probabilities, and a confidence), or a graded scale (score \u2192 the level, per-level probabilities, and a confidence).",
2189
2271
  "Requires Jev to be switched on under Project Settings \u2192 AI Provider Keys (a TypeSafe key, or an OpenCode Zen key); without it the tool returns an error saying so.",
2190
2272
  "The state is data, not a guardrail: adversarial text inside it can move the answers, so never use a result to authorize an action.",
@@ -2231,7 +2313,7 @@ var questionsDesc = "1-32 questions, all answered independently against the same
2231
2313
  var evaluateQuestionsContract = defineToolContract({
2232
2314
  name: "evaluate_questions",
2233
2315
  agent: {
2234
- description: DESCRIPTION,
2316
+ description: DESCRIPTION2,
2235
2317
  fields: {
2236
2318
  state: f.optional(f.string({ desc: stateDesc })),
2237
2319
  questions: f.array(question, { min: 1, desc: questionsDesc }),
@@ -2239,7 +2321,7 @@ var evaluateQuestionsContract = defineToolContract({
2239
2321
  }
2240
2322
  },
2241
2323
  mcp: {
2242
- description: `${DESCRIPTION} Pass projectId to target a specific project; otherwise the configured default project is used.`,
2324
+ description: `${DESCRIPTION2} Pass projectId to target a specific project; otherwise the configured default project is used.`,
2243
2325
  fields: {
2244
2326
  projectId: mcpProjectId,
2245
2327
  state: f.optional(f.string({ desc: stateDesc })),
@@ -2266,12 +2348,13 @@ var TOOL_CONTRACTS = Object.fromEntries(
2266
2348
  ...meetingsContracts,
2267
2349
  ...logsContracts,
2268
2350
  ...ciWaitContracts,
2269
- ...evaluateContracts
2351
+ ...evaluateContracts,
2352
+ ...incidentsContracts
2270
2353
  ].map((contract) => [contract.name, contract])
2271
2354
  );
2272
2355
 
2273
2356
  // src/tools/contract-tool.ts
2274
- import { z as z3 } from "zod";
2357
+ import { z as z3 } from "zod/v3";
2275
2358
  function mcpShape(surface) {
2276
2359
  return compileShape(z3, surface.fields);
2277
2360
  }
@@ -2340,7 +2423,7 @@ function registerConnectionTools(server2, conn2) {
2340
2423
  }
2341
2424
 
2342
2425
  // src/tools/project-config.ts
2343
- import { z as z5 } from "zod";
2426
+ import { z as z5 } from "zod/v3";
2344
2427
  var CONTEXT_LINK_LOCATOR_MAX = 300;
2345
2428
  function jsonResult(data) {
2346
2429
  return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
@@ -2575,7 +2658,7 @@ function registerProjectConfigTools(server2, conn2) {
2575
2658
  }
2576
2659
 
2577
2660
  // src/tools/tasks.ts
2578
- import { z as z6 } from "zod";
2661
+ import { z as z6 } from "zod/v3";
2579
2662
 
2580
2663
  // src/tools/tasks-format.ts
2581
2664
  function formatCompletedMeta(data) {
@@ -3022,7 +3105,7 @@ function registerTaskTools(server2, conn2) {
3022
3105
  }
3023
3106
 
3024
3107
  // src/tools/builds.ts
3025
- import { z as z7 } from "zod";
3108
+ import { z as z7 } from "zod/v3";
3026
3109
  function textResult2(result) {
3027
3110
  return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
3028
3111
  }
@@ -3121,7 +3204,7 @@ function registerBuildTools(server2, conn2) {
3121
3204
  // src/tools/attachments.ts
3122
3205
  import { readFile, stat } from "fs/promises";
3123
3206
  import { basename, extname } from "path";
3124
- import { z as z8 } from "zod";
3207
+ import { z as z8 } from "zod/v3";
3125
3208
  var MAX_FILE_SIZE_BYTES = 25 * 1024 * 1024;
3126
3209
  var MAX_FILE_TAGS = 5;
3127
3210
  var MIME_BY_EXT = {
@@ -3413,6 +3496,14 @@ function registerDependencyTools(server2, conn2) {
3413
3496
  registerRemoveDependency(server2, conn2);
3414
3497
  }
3415
3498
 
3499
+ // src/tools/incidents.ts
3500
+ function registerIncidentTools(server2, conn2) {
3501
+ registerContractTool(server2, updateIncidentContract, async (params) => {
3502
+ const record = await conn2.updateIncident(params);
3503
+ return { content: [{ type: "text", text: JSON.stringify(record, null, 2) }] };
3504
+ });
3505
+ }
3506
+
3416
3507
  // src/tools/suggestions.ts
3417
3508
  function registerSuggestionTools(server2, conn2) {
3418
3509
  registerContractTool(server2, createSuggestionContract, async (params) => {
@@ -3425,8 +3516,8 @@ function registerSuggestionTools(server2, conn2) {
3425
3516
  // ../shared/dist/index.js
3426
3517
  import { z as z9 } from "zod";
3427
3518
  import { z as z23 } from "zod";
3428
- import { z as z32 } from "zod";
3429
3519
  import { z as z42 } from "zod";
3520
+ import { z as z32 } from "zod";
3430
3521
  import { z as z52 } from "zod";
3431
3522
  import { z as z62 } from "zod";
3432
3523
  import { z as z72 } from "zod";
@@ -3435,6 +3526,7 @@ import { z as z92 } from "zod";
3435
3526
  import { z as z10 } from "zod";
3436
3527
  import { z as z11 } from "zod";
3437
3528
  import { z as z12 } from "zod";
3529
+ import { z as z13 } from "zod";
3438
3530
  var ACHIEVEMENT_RARITIES = [
3439
3531
  {
3440
3532
  key: "common",
@@ -3693,29 +3785,120 @@ var AgentEventSchema = z23.union([
3693
3785
  KnownAgentEventSchema,
3694
3786
  z23.object({ type: z23.string().min(1) }).catchall(z23.unknown())
3695
3787
  ]);
3696
- var cardDescription = z32.string().max(CARD_DESCRIPTION_MAX, CARD_DESCRIPTION_LIMIT_MESSAGE).optional();
3697
- var AgentHeartbeatSchema = z32.object({
3698
- sessionId: z32.string().optional(),
3699
- timestamp: z32.string(),
3700
- status: z32.enum(["active", "idle", "building"]),
3701
- currentAction: z32.string().optional(),
3788
+ var PtyChatAtSchema = z32.string().max(40).optional();
3789
+ var PtyChatTurnUsageSchema = z32.object({
3790
+ input: z32.number().int().nonnegative(),
3791
+ output: z32.number().int().nonnegative(),
3792
+ cacheRead: z32.number().int().nonnegative(),
3793
+ cacheWrite: z32.number().int().nonnegative()
3794
+ });
3795
+ var PtyChatTurnFileSchema = z32.object({
3796
+ path: z32.string().max(500),
3797
+ added: z32.number().int(),
3798
+ removed: z32.number().int()
3799
+ });
3800
+ var PTY_CHAT_TURN_FILES_MAX = 50;
3801
+ var PtyChatEventPayloadSchema = z32.discriminatedUnion("kind", [
3802
+ z32.object({
3803
+ kind: z32.literal("init"),
3804
+ at: PtyChatAtSchema,
3805
+ model: z32.string().max(200),
3806
+ claudeSessionId: z32.string().max(100).optional()
3807
+ }),
3808
+ z32.object({
3809
+ kind: z32.literal("user_text"),
3810
+ at: PtyChatAtSchema,
3811
+ text: z32.string().max(16384),
3812
+ // Set by the SERVER (never the agent) when this prompt was injected by
3813
+ // Conveyor rather than typed by a human — the routed message's `source`
3814
+ // (`ci_success`, `review_trigger`, `automated_feedback`, …). The agent
3815
+ // pastes automated messages into the TUI exactly like human prompts, so the
3816
+ // CLI records both as plain transcript `user` records; without this the
3817
+ // builder chat renders "All CI checks passed on your PR." as the human's
3818
+ // own bubble. Absent ⇒ a genuine human prompt. Exception: the AGENT sets
3819
+ // `model_switch` on the notice it emits after a live model/effort switch.
3820
+ source: z32.string().max(60).optional()
3821
+ }),
3822
+ z32.object({
3823
+ kind: z32.literal("assistant_text"),
3824
+ at: PtyChatAtSchema,
3825
+ text: z32.string().max(16384),
3826
+ model: z32.string().max(200).optional()
3827
+ }),
3828
+ z32.object({
3829
+ kind: z32.literal("tool_use"),
3830
+ at: PtyChatAtSchema,
3831
+ name: z32.string().max(200),
3832
+ // Compact preview: JSON.stringify(input) truncated agent-side. The cap
3833
+ // matches the text events because AskUserQuestion payloads ride this field
3834
+ // and the web lifts them into an interactive card — a tight cap forced
3835
+ // option descriptions down to 80 chars, making them unreadable. Every
3836
+ // other tool keeps a far smaller agent-side budget (`TOOL_INPUT_MAX` in
3837
+ // `chat-record-mapper.ts`), so the ring does not grow for normal calls.
3838
+ input: z32.string().max(16384),
3839
+ // Transcript tool_use block id — lets the client pair the tool_result.
3840
+ id: z32.string().max(100).optional()
3841
+ }),
3842
+ z32.object({
3843
+ kind: z32.literal("tool_result"),
3844
+ at: PtyChatAtSchema,
3845
+ // tool_use block id this result answers (absent on malformed records).
3846
+ toolUseId: z32.string().max(100).optional(),
3847
+ // Compact output preview, truncated agent-side.
3848
+ output: z32.string().max(2e3),
3849
+ isError: z32.boolean().optional()
3850
+ }),
3851
+ z32.object({
3852
+ kind: z32.literal("turn_end"),
3853
+ at: PtyChatAtSchema,
3854
+ // Wall-clock turn length as the CLI measured it ("Worked for 23s").
3855
+ durationMs: z32.number().int().nonnegative().optional(),
3856
+ // Last model that answered in this turn.
3857
+ model: z32.string().max(200).optional(),
3858
+ // Token usage summed over the turn's API responses.
3859
+ usage: PtyChatTurnUsageSchema.optional(),
3860
+ // Files the turn edited, with line counts. Absent when nothing was edited.
3861
+ files: z32.array(PtyChatTurnFileSchema).max(PTY_CHAT_TURN_FILES_MAX).optional()
3862
+ })
3863
+ ]);
3864
+ var PtyChatEventRequestSchema = z32.object({
3865
+ sessionId: z32.string(),
3866
+ event: PtyChatEventPayloadSchema
3867
+ });
3868
+ var PtyChatAttachRequestSchema = z32.object({
3869
+ sessionId: z32.string()
3870
+ });
3871
+ var PTY_EFFORT_LEVELS = ["low", "medium", "high", "xhigh", "max"];
3872
+ var SetPtyModelEffortRequestSchema = z32.object({
3873
+ sessionId: z32.string(),
3874
+ model: z32.string().min(1).max(200).optional(),
3875
+ effort: z32.enum(PTY_EFFORT_LEVELS).optional()
3876
+ }).refine((p) => p.model !== void 0 || p.effort !== void 0, {
3877
+ message: "model or effort is required"
3878
+ });
3879
+ var cardDescription = z42.string().max(CARD_DESCRIPTION_MAX, CARD_DESCRIPTION_LIMIT_MESSAGE).optional();
3880
+ var AgentHeartbeatSchema = z42.object({
3881
+ sessionId: z42.string().optional(),
3882
+ timestamp: z42.string(),
3883
+ status: z42.enum(["active", "idle", "building"]),
3884
+ currentAction: z42.string().optional(),
3702
3885
  /** Sender-observed main event-loop lag (ms) — see AgentHeartbeat.loopLagMs. */
3703
- loopLagMs: z32.number().nonnegative().optional()
3886
+ loopLagMs: z42.number().nonnegative().optional()
3704
3887
  });
3705
- var CreatePRInputSchema = z32.object({
3706
- title: z32.string().min(1),
3707
- body: z32.string(),
3708
- head: z32.string().optional(),
3709
- base: z32.string().optional()
3888
+ var CreatePRInputSchema = z42.object({
3889
+ title: z42.string().min(1),
3890
+ body: z42.string(),
3891
+ head: z42.string().optional(),
3892
+ base: z42.string().optional()
3710
3893
  });
3711
- var PostToChatInputSchema = z32.object({
3712
- message: z32.string().min(1),
3713
- type: z32.enum(["message", "question", "update"]).optional().default("message"),
3714
- milestone: z32.enum(["plan_ready", "implementation_complete", "blocked"]).optional()
3894
+ var PostToChatInputSchema = z42.object({
3895
+ message: z42.string().min(1),
3896
+ type: z42.enum(["message", "question", "update"]).optional().default("message"),
3897
+ milestone: z42.enum(["plan_ready", "implementation_complete", "blocked"]).optional()
3715
3898
  });
3716
- var GetTaskContextRequestSchema = z32.object({
3717
- sessionId: z32.string(),
3718
- includeHistory: z32.boolean().optional().default(false),
3899
+ var GetTaskContextRequestSchema = z42.object({
3900
+ sessionId: z42.string(),
3901
+ includeHistory: z42.boolean().optional().default(false),
3719
3902
  /**
3720
3903
  * Read the plan-revised marker WITHOUT consuming it. Bookkeeping fetches
3721
3904
  * (the session-identity check, the branch refresh) pass true so they cannot
@@ -3723,283 +3906,283 @@ var GetTaskContextRequestSchema = z32.object({
3723
3906
  * Defaults to false — consuming — so a pod running an older agent build still
3724
3907
  * clears the marker instead of showing the notice on every boot forever.
3725
3908
  */
3726
- peekPlanRevision: z32.boolean().optional().default(false)
3909
+ peekPlanRevision: z42.boolean().optional().default(false)
3727
3910
  });
3728
- var GetChatMessagesRequestSchema = z32.object({
3729
- sessionId: z32.string(),
3730
- limit: z32.number().int().positive().optional().default(50),
3731
- offset: z32.number().int().nonnegative().optional().default(0),
3911
+ var GetChatMessagesRequestSchema = z42.object({
3912
+ sessionId: z42.string(),
3913
+ limit: z42.number().int().positive().optional().default(50),
3914
+ offset: z42.number().int().nonnegative().optional().default(0),
3732
3915
  /** Task id or slug to read chat from. Omit for the session's own task. Only
3733
3916
  * the session's own task or one of its children resolves — anything else is
3734
3917
  * an error, never a silent fallback to the caller's own chat. */
3735
- taskId: z32.string().optional()
3918
+ taskId: z42.string().optional()
3736
3919
  });
3737
- var GetTaskFilesRequestSchema = z32.object({
3738
- sessionId: z32.string(),
3739
- taskId: z32.string().optional()
3920
+ var GetTaskFilesRequestSchema = z42.object({
3921
+ sessionId: z42.string(),
3922
+ taskId: z42.string().optional()
3740
3923
  });
3741
- var GetTaskFileRequestSchema = z32.object({
3742
- sessionId: z32.string(),
3743
- fileId: z32.string(),
3744
- taskId: z32.string().optional()
3924
+ var GetTaskFileRequestSchema = z42.object({
3925
+ sessionId: z42.string(),
3926
+ fileId: z42.string(),
3927
+ taskId: z42.string().optional()
3745
3928
  });
3746
- var DeleteTaskFileRequestSchema = z32.object({
3747
- sessionId: z32.string(),
3748
- fileId: z32.string()
3929
+ var DeleteTaskFileRequestSchema = z42.object({
3930
+ sessionId: z42.string(),
3931
+ fileId: z42.string()
3749
3932
  });
3750
- var GetTaskRequestSchema = z32.object({
3751
- sessionId: z32.string(),
3752
- taskSlugOrId: z32.string()
3933
+ var GetTaskRequestSchema = z42.object({
3934
+ sessionId: z42.string(),
3935
+ taskSlugOrId: z42.string()
3753
3936
  });
3754
- var GetCliHistoryRequestSchema = z32.object({
3755
- sessionId: z32.string(),
3756
- limit: z32.number().int().positive().optional().default(100),
3757
- source: z32.enum(["agent", "application"]).optional(),
3937
+ var GetCliHistoryRequestSchema = z42.object({
3938
+ sessionId: z42.string(),
3939
+ limit: z42.number().int().positive().optional().default(100),
3940
+ source: z42.enum(["agent", "application"]).optional(),
3758
3941
  /** Task id or slug to read logs from. Omit for the session's own task. Only
3759
3942
  * the session's own task or one of its children resolves — anything else is
3760
3943
  * an error, never a silent fallback to the caller's own logs. */
3761
- taskId: z32.string().optional()
3944
+ taskId: z42.string().optional()
3762
3945
  });
3763
- var ListSubtasksRequestSchema = z32.object({
3764
- sessionId: z32.string(),
3946
+ var ListSubtasksRequestSchema = z42.object({
3947
+ sessionId: z42.string(),
3765
3948
  /** "compact" returns the slim orchestration view (ListSubtasksCompactResponse:
3766
3949
  * per-child status, agent, story points, PR state, dependencies); "full" (default — wire-compat with older
3767
3950
  * agents) returns the verbose SubtaskSummaryDTO[] including description/plan. */
3768
- view: z32.enum(["compact", "full"]).optional()
3951
+ view: z42.enum(["compact", "full"]).optional()
3769
3952
  });
3770
- var GetDependenciesRequestSchema = z32.object({
3771
- sessionId: z32.string()
3953
+ var GetDependenciesRequestSchema = z42.object({
3954
+ sessionId: z42.string()
3772
3955
  });
3773
- var GetSuggestionsRequestSchema = z32.object({
3774
- sessionId: z32.string(),
3775
- status: z32.string().optional(),
3776
- limit: z32.number().int().min(1).max(100).optional()
3956
+ var GetSuggestionsRequestSchema = z42.object({
3957
+ sessionId: z42.string(),
3958
+ status: z42.string().optional(),
3959
+ limit: z42.number().int().min(1).max(100).optional()
3777
3960
  });
3778
- var ListManualTestsRequestSchema = z32.object({
3779
- sessionId: z32.string()
3961
+ var ListManualTestsRequestSchema = z42.object({
3962
+ sessionId: z42.string()
3780
3963
  });
3781
- var QueryManualTestsRequestSchema = z32.object({
3782
- sessionId: z32.string(),
3783
- cardStatuses: z32.array(z32.string()).optional(),
3784
- testStatuses: z32.array(z32.enum(["open", "approved", "rejected"])).optional()
3964
+ var QueryManualTestsRequestSchema = z42.object({
3965
+ sessionId: z42.string(),
3966
+ cardStatuses: z42.array(z42.string()).optional(),
3967
+ testStatuses: z42.array(z42.enum(["open", "approved", "rejected"])).optional()
3785
3968
  });
3786
- var CreatePullRequestRequestSchema = CreatePRInputSchema.extend({ sessionId: z32.string() });
3787
- var RequestFileUploadRequestSchema = z32.object({
3788
- sessionId: z32.string(),
3789
- fileName: z32.string().min(1).max(255),
3790
- mimeType: z32.string().min(1).max(128),
3791
- fileSize: z32.number().int().positive().max(MAX_FILE_SIZE_BYTES2)
3969
+ var CreatePullRequestRequestSchema = CreatePRInputSchema.extend({ sessionId: z42.string() });
3970
+ var RequestFileUploadRequestSchema = z42.object({
3971
+ sessionId: z42.string(),
3972
+ fileName: z42.string().min(1).max(255),
3973
+ mimeType: z42.string().min(1).max(128),
3974
+ fileSize: z42.number().int().positive().max(MAX_FILE_SIZE_BYTES2)
3792
3975
  });
3793
- var ConfirmFileUploadRequestSchema = z32.object({
3794
- sessionId: z32.string(),
3795
- fileId: z32.string(),
3796
- title: z32.string().max(500).optional(),
3976
+ var ConfirmFileUploadRequestSchema = z42.object({
3977
+ sessionId: z42.string(),
3978
+ fileId: z42.string(),
3979
+ title: z42.string().max(500).optional(),
3797
3980
  /** Glossary tag names (or ids) this file is an example of. */
3798
- tags: z32.array(z32.string().min(1).max(MAX_FILE_TAG_LENGTH)).max(MAX_FILE_TAGS2).optional()
3981
+ tags: z42.array(z42.string().min(1).max(MAX_FILE_TAG_LENGTH)).max(MAX_FILE_TAGS2).optional()
3799
3982
  });
3800
- var UpdateTaskStatusRequestSchema = z32.object({
3801
- sessionId: z32.string(),
3802
- status: z32.string(),
3803
- force: z32.boolean().optional().default(false)
3983
+ var UpdateTaskStatusRequestSchema = z42.object({
3984
+ sessionId: z42.string(),
3985
+ status: z42.string(),
3986
+ force: z42.boolean().optional().default(false)
3804
3987
  });
3805
- var StoreSessionIdRequestSchema = z32.object({
3806
- sessionId: z32.string(),
3807
- sdkSessionId: z32.string()
3988
+ var StoreSessionIdRequestSchema = z42.object({
3989
+ sessionId: z42.string(),
3990
+ sdkSessionId: z42.string()
3808
3991
  });
3809
- var SetManualTestsRequestSchema = z32.object({
3810
- sessionId: z32.string(),
3992
+ var SetManualTestsRequestSchema = z42.object({
3993
+ sessionId: z42.string(),
3811
3994
  items: ManualTestItemsSchema
3812
3995
  });
3813
- var EditManualTestRequestSchema = z32.object({
3814
- sessionId: z32.string(),
3815
- title: z32.string().min(1),
3816
- newTitle: z32.string().min(1)
3996
+ var EditManualTestRequestSchema = z42.object({
3997
+ sessionId: z42.string(),
3998
+ title: z42.string().min(1),
3999
+ newTitle: z42.string().min(1)
3817
4000
  });
3818
- var RemoveManualTestRequestSchema = z32.object({
3819
- sessionId: z32.string(),
3820
- title: z32.string().min(1)
4001
+ var RemoveManualTestRequestSchema = z42.object({
4002
+ sessionId: z42.string(),
4003
+ title: z42.string().min(1)
3821
4004
  });
3822
- var ApproveManualTestRequestSchema = z32.object({
3823
- sessionId: z32.string(),
3824
- title: z32.string().min(1)
4005
+ var ApproveManualTestRequestSchema = z42.object({
4006
+ sessionId: z42.string(),
4007
+ title: z42.string().min(1)
3825
4008
  });
3826
- var RejectManualTestRequestSchema = z32.object({
3827
- sessionId: z32.string(),
3828
- title: z32.string().min(1),
3829
- reason: z32.string().min(1).max(2e3)
4009
+ var RejectManualTestRequestSchema = z42.object({
4010
+ sessionId: z42.string(),
4011
+ title: z42.string().min(1),
4012
+ reason: z42.string().min(1).max(2e3)
3830
4013
  });
3831
- var SessionStartRequestSchema = z32.object({
3832
- sessionId: z32.string(),
3833
- agentVersion: z32.string(),
3834
- capabilities: z32.array(z32.string())
4014
+ var SessionStartRequestSchema = z42.object({
4015
+ sessionId: z42.string(),
4016
+ agentVersion: z42.string(),
4017
+ capabilities: z42.array(z42.string())
3835
4018
  });
3836
- var SessionStopRequestSchema = z32.object({
3837
- sessionId: z32.string(),
3838
- reason: z32.string().optional()
4019
+ var SessionStopRequestSchema = z42.object({
4020
+ sessionId: z42.string(),
4021
+ reason: z42.string().optional()
3839
4022
  });
3840
- var EndReviewSessionRequestSchema = z32.object({
3841
- sessionId: z32.string(),
3842
- reason: z32.enum(["approved", "changes_requested", "finished"]).optional()
4023
+ var EndReviewSessionRequestSchema = z42.object({
4024
+ sessionId: z42.string(),
4025
+ reason: z42.enum(["approved", "changes_requested", "finished"]).optional()
3843
4026
  });
3844
- var ConnectAgentRequestSchema = z32.object({
3845
- sessionId: z32.string()
4027
+ var ConnectAgentRequestSchema = z42.object({
4028
+ sessionId: z42.string()
3846
4029
  });
3847
- var ReportAgentStatusRequestSchema = z32.object({
3848
- sessionId: z32.string(),
3849
- status: z32.string(),
4030
+ var ReportAgentStatusRequestSchema = z42.object({
4031
+ sessionId: z42.string(),
4032
+ status: z42.string(),
3850
4033
  /** Why the agent reports this status (e.g. "user_question" while an AskUserQuestion questionnaire is pending in the TUI). */
3851
- reason: z32.string().optional(),
4034
+ reason: z42.string().optional(),
3852
4035
  /**
3853
4036
  * The pending question text, sent only alongside `reason: "user_question"`
3854
4037
  * so the server can surface it in the user-question notification body (and
3855
4038
  * thus the Attention feed) instead of a generic string. Optional: older
3856
4039
  * agents omit it and the server falls back to the generic wording.
3857
4040
  */
3858
- questionText: z32.string().optional()
4041
+ questionText: z42.string().optional()
3859
4042
  });
3860
- var NotifyAgentVersionRequestSchema = z32.object({
3861
- sessionId: z32.string(),
3862
- agentVersion: z32.string()
4043
+ var NotifyAgentVersionRequestSchema = z42.object({
4044
+ sessionId: z42.string(),
4045
+ agentVersion: z42.string()
3863
4046
  });
3864
- var DiscoveredPortSchema = z32.object({
3865
- port: z32.number().int().min(1).max(65535),
3866
- label: z32.string().min(1).max(64).optional(),
3867
- protocol: z32.enum(["http", "tcp"]).optional(),
3868
- detectedAt: z32.string()
4047
+ var DiscoveredPortSchema = z42.object({
4048
+ port: z42.number().int().min(1).max(65535),
4049
+ label: z42.string().min(1).max(64).optional(),
4050
+ protocol: z42.enum(["http", "tcp"]).optional(),
4051
+ detectedAt: z42.string()
3869
4052
  });
3870
- var ReportDiscoveredPortsRequestSchema = z32.object({
3871
- sessionId: z32.string(),
3872
- ports: z32.array(DiscoveredPortSchema).max(64)
4053
+ var ReportDiscoveredPortsRequestSchema = z42.object({
4054
+ sessionId: z42.string(),
4055
+ ports: z42.array(DiscoveredPortSchema).max(64)
3873
4056
  });
3874
- var ReportBootMilestoneRequestSchema = z32.object({
3875
- sessionId: z32.string(),
3876
- key: z32.string().max(64)
4057
+ var ReportBootMilestoneRequestSchema = z42.object({
4058
+ sessionId: z42.string(),
4059
+ key: z42.string().max(64)
3877
4060
  });
3878
- var CreateSubtaskRequestSchema = z32.object({
3879
- sessionId: z32.string(),
3880
- title: z32.string().min(1),
4061
+ var CreateSubtaskRequestSchema = z42.object({
4062
+ sessionId: z42.string(),
4063
+ title: z42.string().min(1),
3881
4064
  description: cardDescription,
3882
- plan: z32.string().optional(),
3883
- storyPointValue: z32.number().int().positive().optional(),
3884
- ordinal: z32.number().int().nonnegative().optional(),
3885
- followParentStatus: z32.boolean().optional(),
4065
+ plan: z42.string().optional(),
4066
+ storyPointValue: z42.number().int().positive().optional(),
4067
+ ordinal: z42.number().int().nonnegative().optional(),
4068
+ followParentStatus: z42.boolean().optional(),
3886
4069
  /** Sibling subtask ids or slugs this subtask blocks on (explicit dependency
3887
4070
  * metadata — preferred over encoding order in plan text / ordinal). */
3888
- dependsOn: z32.array(z32.string().min(1)).max(32).optional(),
4071
+ dependsOn: z42.array(z42.string().min(1)).max(32).optional(),
3889
4072
  /** Glossary tag names to assign to the child. Unmatched names come back in
3890
4073
  * the response rather than failing the create. */
3891
- tags: z32.array(z32.string().min(1)).max(10).optional()
4074
+ tags: z42.array(z42.string().min(1)).max(10).optional()
3892
4075
  });
3893
- var UpdateSubtaskRequestSchema = z32.object({
3894
- sessionId: z32.string(),
3895
- subtaskId: z32.string(),
3896
- title: z32.string().min(1).optional(),
4076
+ var UpdateSubtaskRequestSchema = z42.object({
4077
+ sessionId: z42.string(),
4078
+ subtaskId: z42.string(),
4079
+ title: z42.string().min(1).optional(),
3897
4080
  description: cardDescription,
3898
- plan: z32.string().optional(),
4081
+ plan: z42.string().optional(),
3899
4082
  /** Orchestration statuses only ("Planning" | "Open") — the pack parent's
3900
4083
  * sanctioned promotion path. Execution statuses stay with the build
3901
4084
  * pipeline / force_update_task_status. Enforced server-side. */
3902
- status: z32.string().optional(),
4085
+ status: z42.string().optional(),
3903
4086
  /** Assign a project agent to the child — accepts the agent's id or exact
3904
4087
  * name; resolved against the parent task's project server-side. */
3905
- agentIdOrName: z32.string().min(1).optional(),
3906
- storyPointValue: z32.number().int().positive().optional(),
3907
- followParentStatus: z32.boolean().optional(),
4088
+ agentIdOrName: z42.string().min(1).optional(),
4089
+ storyPointValue: z42.number().int().positive().optional(),
4090
+ followParentStatus: z42.boolean().optional(),
3908
4091
  /** Replace this subtask's dependency edges with these sibling ids/slugs.
3909
4092
  * Empty array clears all. Omit to leave dependencies unchanged. */
3910
- dependsOn: z32.array(z32.string().min(1)).max(32).optional()
4093
+ dependsOn: z42.array(z42.string().min(1)).max(32).optional()
3911
4094
  });
3912
- var DeleteSubtaskRequestSchema = z32.object({
3913
- sessionId: z32.string(),
3914
- subtaskId: z32.string()
4095
+ var DeleteSubtaskRequestSchema = z42.object({
4096
+ sessionId: z42.string(),
4097
+ subtaskId: z42.string()
3915
4098
  });
3916
- var SetSubtaskParentRequestSchema = z32.object({
3917
- sessionId: z32.string(),
3918
- taskId: z32.string().min(1),
3919
- detach: z32.boolean().optional(),
3920
- ordinal: z32.number().int().nonnegative().optional(),
3921
- followParentStatus: z32.boolean().optional()
4099
+ var SetSubtaskParentRequestSchema = z42.object({
4100
+ sessionId: z42.string(),
4101
+ taskId: z42.string().min(1),
4102
+ detach: z42.boolean().optional(),
4103
+ ordinal: z42.number().int().nonnegative().optional(),
4104
+ followParentStatus: z42.boolean().optional()
3922
4105
  });
3923
- var GetTaskPropertiesRequestSchema = z32.object({
3924
- sessionId: z32.string()
4106
+ var GetTaskPropertiesRequestSchema = z42.object({
4107
+ sessionId: z42.string()
3925
4108
  });
3926
- var UpdateTaskFieldsRequestSchema = z32.object({
3927
- sessionId: z32.string(),
3928
- plan: z32.string().optional(),
4109
+ var UpdateTaskFieldsRequestSchema = z42.object({
4110
+ sessionId: z42.string(),
4111
+ plan: z42.string().optional(),
3929
4112
  description: cardDescription
3930
4113
  });
3931
- var UpdateTaskPropertiesRequestSchema = z32.object({
3932
- sessionId: z32.string(),
3933
- title: z32.string().optional(),
3934
- storyPointValue: z32.number().int().positive().optional(),
3935
- tagIds: z32.array(z32.string()).optional(),
3936
- tagNames: z32.array(z32.string()).optional(),
3937
- githubPRUrl: z32.string().url().optional(),
3938
- githubBranch: z32.string().optional(),
4114
+ var UpdateTaskPropertiesRequestSchema = z42.object({
4115
+ sessionId: z42.string(),
4116
+ title: z42.string().optional(),
4117
+ storyPointValue: z42.number().int().positive().optional(),
4118
+ tagIds: z42.array(z42.string()).optional(),
4119
+ tagNames: z42.array(z42.string()).optional(),
4120
+ githubPRUrl: z42.string().url().optional(),
4121
+ githubBranch: z42.string().optional(),
3939
4122
  // Canonical risk level, or null to clear — same semantics as the headless
3940
4123
  // update_task boundary (resolved to the project's Risk row in the handler).
3941
4124
  risk: riskLevelSchema.nullable().optional()
3942
4125
  });
3943
- var ListIconsRequestSchema = z32.object({
3944
- sessionId: z32.string()
4126
+ var ListIconsRequestSchema = z42.object({
4127
+ sessionId: z42.string()
3945
4128
  });
3946
- var GenerateTaskIconRequestSchema = z32.object({
3947
- sessionId: z32.string(),
3948
- prompt: z32.string().min(1),
3949
- aspectRatio: z32.string().optional()
4129
+ var GenerateTaskIconRequestSchema = z42.object({
4130
+ sessionId: z42.string(),
4131
+ prompt: z42.string().min(1),
4132
+ aspectRatio: z42.string().optional()
3950
4133
  });
3951
- var SearchFaIconsRequestSchema = z32.object({
3952
- sessionId: z32.string(),
3953
- query: z32.string().min(1),
3954
- first: z32.number().int().positive().optional()
4134
+ var SearchFaIconsRequestSchema = z42.object({
4135
+ sessionId: z42.string(),
4136
+ query: z42.string().min(1),
4137
+ first: z42.number().int().positive().optional()
3955
4138
  });
3956
- var PickFaIconRequestSchema = z32.object({
3957
- sessionId: z32.string(),
3958
- fontAwesomeId: z32.string().min(1),
3959
- fontAwesomeStyle: z32.string().optional()
4139
+ var PickFaIconRequestSchema = z42.object({
4140
+ sessionId: z42.string(),
4141
+ fontAwesomeId: z42.string().min(1),
4142
+ fontAwesomeStyle: z42.string().optional()
3960
4143
  });
3961
- var CreateFollowUpTaskRequestSchema = z32.object({
3962
- sessionId: z32.string(),
3963
- title: z32.string().min(1),
4144
+ var CreateFollowUpTaskRequestSchema = z42.object({
4145
+ sessionId: z42.string(),
4146
+ title: z42.string().min(1),
3964
4147
  description: cardDescription,
3965
- plan: z32.string().optional(),
3966
- storyPointValue: z32.number().int().positive().optional()
4148
+ plan: z42.string().optional(),
4149
+ storyPointValue: z42.number().int().positive().optional()
3967
4150
  });
3968
- var AddDependencyRequestSchema = z32.object({
3969
- sessionId: z32.string(),
3970
- dependsOnSlugOrId: z32.string()
4151
+ var AddDependencyRequestSchema = z42.object({
4152
+ sessionId: z42.string(),
4153
+ dependsOnSlugOrId: z42.string()
3971
4154
  });
3972
- var RemoveDependencyRequestSchema = z32.object({
3973
- sessionId: z32.string(),
3974
- dependsOnSlugOrId: z32.string()
4155
+ var RemoveDependencyRequestSchema = z42.object({
4156
+ sessionId: z42.string(),
4157
+ dependsOnSlugOrId: z42.string()
3975
4158
  });
3976
- var CreateSuggestionRequestSchema = z32.object({
3977
- sessionId: z32.string(),
3978
- title: z32.string().min(1),
4159
+ var CreateSuggestionRequestSchema = z42.object({
4160
+ sessionId: z42.string(),
4161
+ title: z42.string().min(1),
3979
4162
  description: cardDescription,
3980
- tagNames: z32.array(z32.string()).optional()
4163
+ tagNames: z42.array(z42.string()).optional()
3981
4164
  });
3982
- var VoteSuggestionRequestSchema = z32.object({
3983
- sessionId: z32.string(),
3984
- suggestionId: z32.string(),
3985
- value: z32.union([z32.literal(1), z32.literal(-1)])
4165
+ var VoteSuggestionRequestSchema = z42.object({
4166
+ sessionId: z42.string(),
4167
+ suggestionId: z42.string(),
4168
+ value: z42.union([z42.literal(1), z42.literal(-1)])
3986
4169
  });
3987
- var TriggerIdentificationRequestSchema = z32.object({
3988
- sessionId: z32.string()
4170
+ var TriggerIdentificationRequestSchema = z42.object({
4171
+ sessionId: z42.string()
3989
4172
  });
3990
- var HandoffToImplementerRequestSchema = z32.object({
3991
- sessionId: z32.string(),
4173
+ var HandoffToImplementerRequestSchema = z42.object({
4174
+ sessionId: z42.string(),
3992
4175
  // Optional difficulty sizing — sets the task's story points before resolving
3993
4176
  // the matched implementer agent. Omit to hand off using the task's current
3994
4177
  // story points (or the project's default task agent when unsized).
3995
- storyPoints: z32.number().int().positive().optional(),
4178
+ storyPoints: z42.number().int().positive().optional(),
3996
4179
  // Optional kickoff note posted to the task chat alongside the handoff notice.
3997
- message: z32.string().optional()
4180
+ message: z42.string().optional()
3998
4181
  });
3999
- var SubmitCodeReviewResultRequestSchema = z32.object({
4000
- sessionId: z32.string(),
4001
- approved: z32.boolean(),
4002
- content: z32.string(),
4182
+ var SubmitCodeReviewResultRequestSchema = z42.object({
4183
+ sessionId: z42.string(),
4184
+ approved: z42.boolean(),
4185
+ content: z42.string(),
4003
4186
  // Canonical risk level the reviewer assigned to this change. Required on every
4004
4187
  // verdict — the reviewer must judge it. Applied authoritatively server-side
4005
4188
  // (may raise OR lower an already-set value; the reviewer has that authority).
@@ -4007,244 +4190,195 @@ var SubmitCodeReviewResultRequestSchema = z32.object({
4007
4190
  // The commit SHA the reviewer actually reviewed. When present, the verdict is
4008
4191
  // rejected unless the task is still at this SHA (guards against a late
4009
4192
  // old-SHA verdict overwriting a newer review cycle).
4010
- reviewedSha: z32.string().optional()
4193
+ reviewedSha: z42.string().optional()
4011
4194
  });
4012
- var CycleCodingAgentKeyRequestSchema = z32.object({
4013
- sessionId: z32.string(),
4014
- rateLimitType: z32.string(),
4015
- resetsAt: z32.string().optional()
4195
+ var CycleCodingAgentKeyRequestSchema = z42.object({
4196
+ sessionId: z42.string(),
4197
+ rateLimitType: z42.string(),
4198
+ resetsAt: z42.string().optional()
4016
4199
  });
4017
- var PostChildChatMessageRequestSchema = z32.object({
4018
- sessionId: z32.string(),
4019
- childTaskId: z32.string(),
4020
- message: z32.string().min(1)
4200
+ var PostChildChatMessageRequestSchema = z42.object({
4201
+ sessionId: z42.string(),
4202
+ childTaskId: z42.string(),
4203
+ message: z42.string().min(1)
4021
4204
  });
4022
- var UpdateChildStatusRequestSchema = z32.object({
4023
- sessionId: z32.string(),
4024
- childTaskId: z32.string(),
4025
- status: z32.string()
4205
+ var UpdateChildStatusRequestSchema = z42.object({
4206
+ sessionId: z42.string(),
4207
+ childTaskId: z42.string(),
4208
+ status: z42.string()
4026
4209
  });
4027
- var GetAgentStatusRequestSchema = z32.object({
4028
- taskId: z32.string()
4210
+ var GetAgentStatusRequestSchema = z42.object({
4211
+ taskId: z42.string()
4029
4212
  });
4030
- var GetUiCliHistoryRequestSchema = z32.object({
4031
- taskId: z32.string()
4213
+ var GetUiCliHistoryRequestSchema = z42.object({
4214
+ taskId: z42.string()
4032
4215
  });
4033
- var GetActivePtySessionRequestSchema = z32.object({
4034
- taskId: z32.string()
4216
+ var GetActivePtySessionRequestSchema = z42.object({
4217
+ taskId: z42.string()
4035
4218
  });
4036
- var ListActivePtySessionsRequestSchema = z32.object({
4037
- taskId: z32.string()
4219
+ var ListActivePtySessionsRequestSchema = z42.object({
4220
+ taskId: z42.string()
4038
4221
  });
4039
- var SendSoftStopRequestSchema = z32.object({
4040
- taskId: z32.string()
4222
+ var SendSoftStopRequestSchema = z42.object({
4223
+ taskId: z42.string()
4041
4224
  });
4042
- var StopTaskSessionRequestSchema = z32.object({
4043
- taskId: z32.string(),
4044
- sessionId: z32.string()
4225
+ var StopTaskSessionRequestSchema = z42.object({
4226
+ taskId: z42.string(),
4227
+ sessionId: z42.string()
4045
4228
  });
4046
- var FlushTaskQueueRequestSchema = z32.object({
4047
- taskId: z32.string(),
4048
- softStop: z32.boolean().optional()
4229
+ var FlushTaskQueueRequestSchema = z42.object({
4230
+ taskId: z42.string(),
4231
+ softStop: z42.boolean().optional()
4049
4232
  });
4050
- var CancelTaskQueuedMessageRequestSchema = z32.object({
4051
- taskId: z32.string(),
4052
- messageId: z32.string()
4233
+ var CancelTaskQueuedMessageRequestSchema = z42.object({
4234
+ taskId: z42.string(),
4235
+ messageId: z42.string()
4053
4236
  });
4054
- var FlushSingleQueuedMessageRequestSchema = z32.object({
4055
- taskId: z32.string(),
4056
- messageId: z32.string(),
4057
- softStop: z32.boolean().optional()
4237
+ var FlushSingleQueuedMessageRequestSchema = z42.object({
4238
+ taskId: z42.string(),
4239
+ messageId: z42.string(),
4240
+ softStop: z42.boolean().optional()
4058
4241
  });
4059
- var AnswerAgentQuestionRequestSchema = z32.object({
4060
- taskId: z32.string(),
4061
- requestId: z32.string(),
4062
- answers: z32.record(z32.string(), z32.string())
4242
+ var AnswerAgentQuestionRequestSchema = z42.object({
4243
+ taskId: z42.string(),
4244
+ requestId: z42.string(),
4245
+ answers: z42.record(z42.string(), z42.string())
4063
4246
  });
4064
- var ClearAgentTodosRequestSchema = z32.object({
4065
- taskId: z32.string()
4247
+ var ClearAgentTodosRequestSchema = z42.object({
4248
+ taskId: z42.string()
4066
4249
  });
4067
- var AgentQuestionOptionSchema = z32.object({
4068
- label: z32.string(),
4069
- description: z32.string(),
4070
- preview: z32.string().optional()
4250
+ var AgentQuestionOptionSchema = z42.object({
4251
+ label: z42.string(),
4252
+ description: z42.string(),
4253
+ preview: z42.string().optional()
4071
4254
  });
4072
- var AgentQuestionSchema = z32.object({
4073
- question: z32.string(),
4074
- header: z32.string(),
4075
- options: z32.array(AgentQuestionOptionSchema),
4076
- multiSelect: z32.boolean().optional()
4255
+ var AgentQuestionSchema = z42.object({
4256
+ question: z42.string(),
4257
+ header: z42.string(),
4258
+ options: z42.array(AgentQuestionOptionSchema),
4259
+ multiSelect: z42.boolean().optional()
4077
4260
  });
4078
- var AskUserQuestionRequestSchema = z32.object({
4079
- sessionId: z32.string(),
4080
- question: z32.string().min(1),
4081
- requestId: z32.string().min(1),
4082
- questions: z32.array(AgentQuestionSchema).min(1)
4261
+ var AskUserQuestionRequestSchema = z42.object({
4262
+ sessionId: z42.string(),
4263
+ question: z42.string().min(1),
4264
+ requestId: z42.string().min(1),
4265
+ questions: z42.array(AgentQuestionSchema).min(1)
4083
4266
  });
4084
- var PostAgentMessageRequestSchema = z32.object({
4085
- sessionId: z32.string().min(1),
4086
- content: z32.string(),
4087
- milestone: z32.enum(["plan_ready", "implementation_complete", "blocked"]).optional()
4267
+ var PostAgentMessageRequestSchema = z42.object({
4268
+ sessionId: z42.string().min(1),
4269
+ content: z42.string(),
4270
+ milestone: z42.enum(["plan_ready", "implementation_complete", "blocked"]).optional()
4088
4271
  });
4089
- var EmitAgentEventRequestSchema = z32.object({
4090
- sessionId: z32.string(),
4091
- events: z32.array(AgentEventSchema).max(500)
4272
+ var EmitAgentEventRequestSchema = z42.object({
4273
+ sessionId: z42.string(),
4274
+ events: z42.array(AgentEventSchema).max(500)
4092
4275
  });
4093
- var RefreshGithubTokenRequestSchema = z32.object({
4094
- sessionId: z32.string(),
4095
- forceFresh: z32.boolean().optional()
4276
+ var RefreshGithubTokenRequestSchema = z42.object({
4277
+ sessionId: z42.string(),
4278
+ forceFresh: z42.boolean().optional()
4096
4279
  });
4097
- var ReportCredentialFailureRequestSchema = z32.object({
4098
- sessionId: z32.string(),
4099
- error: z32.string().max(2e3).optional(),
4100
- tokenShape: z32.string().max(500).optional(),
4101
- healed: z32.boolean().optional()
4280
+ var ReportCredentialFailureRequestSchema = z42.object({
4281
+ sessionId: z42.string(),
4282
+ error: z42.string().max(2e3).optional(),
4283
+ tokenShape: z42.string().max(500).optional(),
4284
+ healed: z42.boolean().optional()
4102
4285
  });
4103
- var ReportReviewSpawnFailureRequestSchema = z32.object({
4104
- sessionId: z32.string(),
4105
- reviewSessionId: z32.string(),
4106
- error: z32.string().max(2e3).optional()
4286
+ var ReportReviewSpawnFailureRequestSchema = z42.object({
4287
+ sessionId: z42.string(),
4288
+ reviewSessionId: z42.string(),
4289
+ error: z42.string().max(2e3).optional()
4107
4290
  });
4108
4291
  var ReportBuilderSpawnFailureRequestSchema = ReportReviewSpawnFailureRequestSchema.omit({
4109
4292
  reviewSessionId: true
4110
- }).extend({ buildSessionId: z32.string() });
4111
- var SpawnTaskSessionRequestSchema = z32.object({
4112
- taskId: z32.string(),
4113
- kind: z32.enum(["tui", "shell"])
4293
+ }).extend({ buildSessionId: z42.string() });
4294
+ var SpawnTaskSessionRequestSchema = z42.object({
4295
+ taskId: z42.string(),
4296
+ kind: z42.enum(["tui", "shell"])
4114
4297
  });
4115
- var StartCodeReviewRequestSchema = z32.object({
4116
- taskId: z32.string(),
4117
- force: z32.boolean().optional()
4298
+ var StartCodeReviewRequestSchema = z42.object({
4299
+ taskId: z42.string(),
4300
+ force: z42.boolean().optional()
4118
4301
  });
4119
- var StopCodeReviewRequestSchema = z32.object({
4120
- taskId: z32.string()
4302
+ var StopCodeReviewRequestSchema = z42.object({
4303
+ taskId: z42.string()
4121
4304
  });
4122
- var ReportSessionSpawnFailureRequestSchema = z32.object({
4123
- sessionId: z32.string(),
4124
- spawnedSessionId: z32.string(),
4125
- error: z32.string().max(2e3).optional()
4305
+ var ReportSessionSpawnFailureRequestSchema = z42.object({
4306
+ sessionId: z42.string(),
4307
+ spawnedSessionId: z42.string(),
4308
+ error: z42.string().max(2e3).optional()
4126
4309
  });
4127
- var RefreshGithubTokenResponseSchema = z32.object({
4128
- token: z32.string()
4310
+ var RefreshGithubTokenResponseSchema = z42.object({
4311
+ token: z42.string()
4129
4312
  });
4130
4313
  var PTY_FRAME_MAX_CHARS = 256 * 1024;
4131
4314
  var PTY_MAX_DIMENSION = 1e3;
4132
- var PtyOutputRequestSchema = z32.object({
4133
- sessionId: z32.string(),
4134
- data: z32.string().max(PTY_FRAME_MAX_CHARS),
4135
- cols: z32.number().int().positive().max(PTY_MAX_DIMENSION).optional(),
4136
- rows: z32.number().int().positive().max(PTY_MAX_DIMENSION).optional()
4137
- });
4138
- var PtyEndedRequestSchema = z32.object({
4139
- sessionId: z32.string()
4140
- });
4141
- var PtyInputRequestSchema = z32.object({
4142
- sessionId: z32.string(),
4143
- data: z32.string().max(PTY_FRAME_MAX_CHARS)
4315
+ var PtyOutputRequestSchema = z42.object({
4316
+ sessionId: z42.string(),
4317
+ data: z42.string().max(PTY_FRAME_MAX_CHARS),
4318
+ cols: z42.number().int().positive().max(PTY_MAX_DIMENSION).optional(),
4319
+ rows: z42.number().int().positive().max(PTY_MAX_DIMENSION).optional()
4144
4320
  });
4145
- var PtyResizeRequestSchema = z32.object({
4146
- sessionId: z32.string(),
4147
- cols: z32.number().int().positive().max(PTY_MAX_DIMENSION),
4148
- rows: z32.number().int().positive().max(PTY_MAX_DIMENSION)
4321
+ var PtyEndedRequestSchema = z42.object({
4322
+ sessionId: z42.string()
4149
4323
  });
4150
- var PtyAttachRequestSchema = z32.object({
4151
- sessionId: z32.string()
4324
+ var PtyInputRequestSchema = z42.object({
4325
+ sessionId: z42.string(),
4326
+ data: z42.string().max(PTY_FRAME_MAX_CHARS)
4152
4327
  });
4153
- var ReportPtyStreamRequestSchema = z32.object({
4154
- sessionId: z32.string(),
4155
- port: z32.number().int().positive().max(65535).nullable()
4328
+ var PtyResizeRequestSchema = z42.object({
4329
+ sessionId: z42.string(),
4330
+ cols: z42.number().int().positive().max(PTY_MAX_DIMENSION),
4331
+ rows: z42.number().int().positive().max(PTY_MAX_DIMENSION)
4156
4332
  });
4157
- var ReportPtyInputRequestSchema = z32.object({
4158
- sessionId: z32.string()
4333
+ var PtyAttachRequestSchema = z42.object({
4334
+ sessionId: z42.string()
4159
4335
  });
4160
- var GetPtyStreamEndpointRequestSchema = z32.object({
4161
- sessionId: z32.string()
4336
+ var ReportPtyStreamRequestSchema = z42.object({
4337
+ sessionId: z42.string(),
4338
+ port: z42.number().int().positive().max(65535).nullable()
4162
4339
  });
4163
- var PtyChatEventPayloadSchema = z32.discriminatedUnion("kind", [
4164
- z32.object({
4165
- kind: z32.literal("init"),
4166
- model: z32.string().max(200),
4167
- claudeSessionId: z32.string().max(100).optional()
4168
- }),
4169
- z32.object({
4170
- kind: z32.literal("user_text"),
4171
- text: z32.string().max(16384),
4172
- // Set by the SERVER (never the agent) when this prompt was injected by
4173
- // Conveyor rather than typed by a human — the routed message's `source`
4174
- // (`ci_success`, `review_trigger`, `automated_feedback`, …). The agent
4175
- // pastes automated messages into the TUI exactly like human prompts, so the
4176
- // CLI records both as plain transcript `user` records; without this the
4177
- // builder chat renders "All CI checks passed on your PR." as the human's
4178
- // own bubble. Absent ⇒ a genuine human prompt.
4179
- source: z32.string().max(60).optional()
4180
- }),
4181
- z32.object({ kind: z32.literal("assistant_text"), text: z32.string().max(16384) }),
4182
- z32.object({
4183
- kind: z32.literal("tool_use"),
4184
- name: z32.string().max(200),
4185
- // Compact preview: JSON.stringify(input) truncated agent-side. The cap
4186
- // matches the text events because AskUserQuestion payloads ride this field
4187
- // and the web lifts them into an interactive card — a tight cap forced
4188
- // option descriptions down to 80 chars, making them unreadable. Every
4189
- // other tool keeps a far smaller agent-side budget (`TOOL_INPUT_MAX` in
4190
- // `chat-record-mapper.ts`), so the ring does not grow for normal calls.
4191
- input: z32.string().max(16384),
4192
- // Transcript tool_use block id — lets the client pair the tool_result.
4193
- id: z32.string().max(100).optional()
4194
- }),
4195
- z32.object({
4196
- kind: z32.literal("tool_result"),
4197
- // tool_use block id this result answers (absent on malformed records).
4198
- toolUseId: z32.string().max(100).optional(),
4199
- // Compact output preview, truncated agent-side.
4200
- output: z32.string().max(2e3),
4201
- isError: z32.boolean().optional()
4202
- }),
4203
- z32.object({ kind: z32.literal("turn_end") })
4204
- ]);
4205
- var PtyChatEventRequestSchema = z32.object({
4206
- sessionId: z32.string(),
4207
- event: PtyChatEventPayloadSchema
4340
+ var ReportPtyInputRequestSchema = z42.object({
4341
+ sessionId: z42.string()
4208
4342
  });
4209
- var PtyChatAttachRequestSchema = z32.object({
4210
- sessionId: z32.string()
4343
+ var GetPtyStreamEndpointRequestSchema = z42.object({
4344
+ sessionId: z42.string()
4211
4345
  });
4212
- var CreatePRResponseSchema = z32.object({
4213
- prNumber: z32.number().int().positive(),
4214
- prUrl: z32.string().url(),
4346
+ var CreatePRResponseSchema = z42.object({
4347
+ prNumber: z42.number().int().positive(),
4348
+ prUrl: z42.string().url(),
4215
4349
  /** Advisory glossary-upkeep note derived from the PR's changed files matched
4216
4350
  * against tag contextPaths — rendered into the tool result, never stored. */
4217
- glossaryNote: z32.string().optional()
4351
+ glossaryNote: z42.string().optional()
4218
4352
  });
4219
- var PostToChatResponseSchema = z32.object({
4220
- messageId: z32.string()
4353
+ var PostToChatResponseSchema = z42.object({
4354
+ messageId: z42.string()
4221
4355
  });
4222
- var UpdateTaskStatusResponseSchema = z32.object({
4223
- taskId: z32.string(),
4224
- status: z32.string()
4356
+ var UpdateTaskStatusResponseSchema = z42.object({
4357
+ taskId: z42.string(),
4358
+ status: z42.string()
4225
4359
  });
4226
- var StoreSessionIdResponseSchema = z32.object({
4227
- success: z32.boolean()
4360
+ var StoreSessionIdResponseSchema = z42.object({
4361
+ success: z42.boolean()
4228
4362
  });
4229
- var HeartbeatResponseSchema = z32.object({
4230
- acknowledged: z32.boolean()
4363
+ var HeartbeatResponseSchema = z42.object({
4364
+ acknowledged: z42.boolean()
4231
4365
  });
4232
- var SessionStartResponseSchema = z32.object({
4233
- sessionId: z32.string(),
4234
- startedAt: z32.string()
4366
+ var SessionStartResponseSchema = z42.object({
4367
+ sessionId: z42.string(),
4368
+ startedAt: z42.string()
4235
4369
  });
4236
- var SessionStopResponseSchema = z32.object({
4237
- sessionId: z32.string(),
4238
- stoppedAt: z32.string()
4370
+ var SessionStopResponseSchema = z42.object({
4371
+ sessionId: z42.string(),
4372
+ stoppedAt: z42.string()
4239
4373
  });
4240
- var DeleteSubtaskResponseSchema = z32.object({
4241
- deleted: z32.boolean()
4374
+ var DeleteSubtaskResponseSchema = z42.object({
4375
+ deleted: z42.boolean()
4242
4376
  });
4243
- var ParkOnCheckResultRequestSchema = z42.object({
4244
- sessionId: z42.string(),
4245
- sha: z42.string().regex(/^[0-9a-f]{7,40}$/i).optional(),
4246
- prNumber: z42.number().int().positive().optional(),
4247
- timeoutMinutes: z42.number().int().min(1).max(MAX_CI_WAIT_TIMEOUT_MINUTES).optional()
4377
+ var ParkOnCheckResultRequestSchema = z52.object({
4378
+ sessionId: z52.string(),
4379
+ sha: z52.string().regex(/^[0-9a-f]{7,40}$/i).optional(),
4380
+ prNumber: z52.number().int().positive().optional(),
4381
+ timeoutMinutes: z52.number().int().min(1).max(MAX_CI_WAIT_TIMEOUT_MINUTES).optional()
4248
4382
  });
4249
4383
  var GIT_BRANCH_NAME_MAX = 255;
4250
4384
  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'";
@@ -4258,97 +4392,97 @@ function isValidGitBranchName(name) {
4258
4392
  if (name.endsWith(".") || name.endsWith(".lock")) return false;
4259
4393
  return true;
4260
4394
  }
4261
- var cardDescription2 = z52.string().max(CARD_DESCRIPTION_MAX, CARD_DESCRIPTION_LIMIT_MESSAGE).optional();
4262
- var ListAccessibleProjectsRequestSchema = z52.object({
4263
- pageSize: z52.number().int().positive().max(100).optional().default(100)
4395
+ var cardDescription2 = z62.string().max(CARD_DESCRIPTION_MAX, CARD_DESCRIPTION_LIMIT_MESSAGE).optional();
4396
+ var ListAccessibleProjectsRequestSchema = z62.object({
4397
+ pageSize: z62.number().int().positive().max(100).optional().default(100)
4264
4398
  });
4265
- var ListProjectTasksRequestSchema = z52.object({
4266
- projectId: z52.string(),
4267
- status: z52.string().optional(),
4399
+ var ListProjectTasksRequestSchema = z62.object({
4400
+ projectId: z62.string(),
4401
+ status: z62.string().optional(),
4268
4402
  // Card types to include. Omitted/empty → defaults to ["task"] in the handler
4269
4403
  // (mirrors searchProjectTasks) so listing doesn't surface incidents/suggestions
4270
4404
  // unless asked. Enum validation lives at the MCP tool layer.
4271
- typeFilters: z52.array(z52.string()).optional(),
4272
- assigneeId: z52.string().optional(),
4273
- unassigned: z52.boolean().optional(),
4405
+ typeFilters: z62.array(z62.string()).optional(),
4406
+ assigneeId: z62.string().optional(),
4407
+ unassigned: z62.boolean().optional(),
4274
4408
  // Scope to a sub-project board when provided. Unlike the board layer's `?? null`
4275
4409
  // semantics, agents default to seeing the whole project when omitted.
4276
- subProjectId: z52.string().nullable().optional(),
4410
+ subProjectId: z62.string().nullable().optional(),
4277
4411
  // Plain equality on the on-hold flag: true = only parked cards, false =
4278
4412
  // exclude them, omitted = both. Deliberately NOT the board's
4279
4413
  // includeOnHold/surfaceActiveWork bucketing — an agent sweeping a backlog
4280
4414
  // needs the raw column, not a column projection.
4281
- onHold: z52.boolean().optional(),
4282
- limit: z52.number().int().positive().optional().default(50)
4415
+ onHold: z62.boolean().optional(),
4416
+ limit: z62.number().int().positive().optional().default(50)
4283
4417
  }).refine((p) => !(p.unassigned && p.assigneeId), {
4284
4418
  message: "Pass either assigneeId or unassigned, not both"
4285
4419
  });
4286
- var GetProjectTaskRequestSchema = z52.object({
4287
- projectId: z52.string(),
4288
- taskId: z52.string()
4420
+ var GetProjectTaskRequestSchema = z62.object({
4421
+ projectId: z62.string(),
4422
+ taskId: z62.string()
4289
4423
  });
4290
- var SearchProjectTasksRequestSchema = z52.object({
4291
- projectId: z52.string(),
4424
+ var SearchProjectTasksRequestSchema = z62.object({
4425
+ projectId: z62.string(),
4292
4426
  // Tag names, matched case-insensitively against the project glossary.
4293
- tagNames: z52.array(z52.string()).optional(),
4427
+ tagNames: z62.array(z62.string()).optional(),
4294
4428
  // How to combine tagNames: "any" (default) = carries at least one,
4295
4429
  // "all" = carries every one.
4296
- tagMatch: z52.enum(["any", "all"]).optional(),
4430
+ tagMatch: z62.enum(["any", "all"]).optional(),
4297
4431
  // Expand each named tag to its descendants in the tag DAG before matching,
4298
4432
  // so a parent tag sweeps its whole area. Default false.
4299
- includeChildTags: z52.boolean().optional(),
4300
- searchQuery: z52.string().optional(),
4301
- statusFilters: z52.array(z52.string()).optional(),
4433
+ includeChildTags: z62.boolean().optional(),
4434
+ searchQuery: z62.string().optional(),
4435
+ statusFilters: z62.array(z62.string()).optional(),
4302
4436
  // Card types to include. Omitted/empty → defaults to ["task"] in the handler so
4303
4437
  // search doesn't surface incidents/suggestions unless asked. Enum validation lives
4304
4438
  // at the MCP tool layer (mirrors statusFilters).
4305
- typeFilters: z52.array(z52.string()).optional(),
4306
- assigneeId: z52.string().optional(),
4307
- unassigned: z52.boolean().optional(),
4439
+ typeFilters: z62.array(z62.string()).optional(),
4440
+ assigneeId: z62.string().optional(),
4441
+ unassigned: z62.boolean().optional(),
4308
4442
  // Scope to a sub-project board when provided. Unlike the board layer's `?? null`
4309
4443
  // semantics, agents default to seeing the whole project when omitted.
4310
- subProjectId: z52.string().nullable().optional(),
4311
- limit: z52.number().int().positive().optional().default(20)
4444
+ subProjectId: z62.string().nullable().optional(),
4445
+ limit: z62.number().int().positive().optional().default(20)
4312
4446
  }).refine((p) => !(p.unassigned && p.assigneeId), {
4313
4447
  message: "Pass either assigneeId or unassigned, not both"
4314
4448
  });
4315
- var ListProjectTagsRequestSchema = z52.object({
4316
- projectId: z52.string(),
4449
+ var ListProjectTagsRequestSchema = z62.object({
4450
+ projectId: z62.string(),
4317
4451
  /** "summary" (default) omits inline context links; "full" includes them. */
4318
- detail: z52.enum(["summary", "full"]).optional()
4452
+ detail: z62.enum(["summary", "full"]).optional()
4319
4453
  });
4320
- var GetProjectTagRequestSchema = z52.object({
4321
- projectId: z52.string(),
4454
+ var GetProjectTagRequestSchema = z62.object({
4455
+ projectId: z62.string(),
4322
4456
  /** Tag id or exact (case-insensitive) tag name. */
4323
- tag: z52.string().min(1).max(100)
4457
+ tag: z62.string().min(1).max(100)
4324
4458
  });
4325
- var ListProjectTagAttachmentsRequestSchema = z52.object({
4326
- projectId: z52.string(),
4459
+ var ListProjectTagAttachmentsRequestSchema = z62.object({
4460
+ projectId: z62.string(),
4327
4461
  /** Tag id or exact (case-insensitive) tag name. */
4328
- tag: z52.string().min(1).max(100),
4329
- limit: z52.number().int().min(1).max(60).optional(),
4330
- offset: z52.number().int().min(0).optional()
4462
+ tag: z62.string().min(1).max(100),
4463
+ limit: z62.number().int().min(1).max(60).optional(),
4464
+ offset: z62.number().int().min(0).optional()
4331
4465
  });
4332
- var SetProjectFileTagsRequestSchema = z52.object({
4333
- projectId: z52.string(),
4334
- taskId: z52.string(),
4335
- fileId: z52.string(),
4336
- tags: z52.array(z52.string().min(1).max(MAX_FILE_TAG_LENGTH)).max(MAX_FILE_TAGS2),
4337
- requestingUserId: z52.string().optional()
4466
+ var SetProjectFileTagsRequestSchema = z62.object({
4467
+ projectId: z62.string(),
4468
+ taskId: z62.string(),
4469
+ fileId: z62.string(),
4470
+ tags: z62.array(z62.string().min(1).max(MAX_FILE_TAG_LENGTH)).max(MAX_FILE_TAGS2),
4471
+ requestingUserId: z62.string().optional()
4338
4472
  });
4339
- var GetProjectSummaryRequestSchema = z52.object({
4340
- projectId: z52.string()
4473
+ var GetProjectSummaryRequestSchema = z62.object({
4474
+ projectId: z62.string()
4341
4475
  });
4342
- var GetProjectOnboardingStatusRequestSchema = z52.object({
4343
- projectId: z52.string()
4476
+ var GetProjectOnboardingStatusRequestSchema = z62.object({
4477
+ projectId: z62.string()
4344
4478
  });
4345
- var GetProjectOnboardingStepRequestSchema = z52.object({
4346
- projectId: z52.string()
4479
+ var GetProjectOnboardingStepRequestSchema = z62.object({
4480
+ projectId: z62.string()
4347
4481
  });
4348
- var GetProjectConnectUrlsRequestSchema = z52.object({
4349
- projectId: z52.string()
4482
+ var GetProjectConnectUrlsRequestSchema = z62.object({
4483
+ projectId: z62.string()
4350
4484
  });
4351
- var conveyorCapabilitySchema = z52.enum([
4485
+ var conveyorCapabilitySchema = z62.enum([
4352
4486
  "read",
4353
4487
  "create",
4354
4488
  "update",
@@ -4356,604 +4490,604 @@ var conveyorCapabilitySchema = z52.enum([
4356
4490
  "files",
4357
4491
  "build"
4358
4492
  ]);
4359
- var GetConnectionContextRequestSchema = z52.object({
4360
- projectId: z52.string(),
4493
+ var GetConnectionContextRequestSchema = z62.object({
4494
+ projectId: z62.string(),
4361
4495
  // Optional board scope (CONVEYOR_SUBPROJECT_ID). Validated to belong to the
4362
4496
  // project in the handler; an invalid/foreign id is reported, not silently
4363
4497
  // dropped, so a mis-scoped connection is never presented as board-specific.
4364
- subProjectId: z52.string().nullable().optional()
4498
+ subProjectId: z62.string().nullable().optional()
4365
4499
  });
4366
- var VerifyConnectionRequestSchema = z52.object({
4367
- projectId: z52.string(),
4368
- subProjectId: z52.string().nullable().optional(),
4369
- intendedActions: z52.array(conveyorCapabilitySchema).optional()
4500
+ var VerifyConnectionRequestSchema = z62.object({
4501
+ projectId: z62.string(),
4502
+ subProjectId: z62.string().nullable().optional(),
4503
+ intendedActions: z62.array(conveyorCapabilitySchema).optional()
4370
4504
  });
4371
- var ListAccessibleSubprojectsRequestSchema = z52.object({
4372
- projectId: z52.string()
4505
+ var ListAccessibleSubprojectsRequestSchema = z62.object({
4506
+ projectId: z62.string()
4373
4507
  });
4374
- var CreateProjectTaskRequestSchema = z52.object({
4375
- projectId: z52.string(),
4376
- title: z52.string().min(1),
4508
+ var CreateProjectTaskRequestSchema = z62.object({
4509
+ projectId: z62.string(),
4510
+ title: z62.string().min(1),
4377
4511
  description: cardDescription2,
4378
- plan: z52.string().optional(),
4379
- status: z52.string().optional(),
4512
+ plan: z62.string().optional(),
4513
+ status: z62.string().optional(),
4380
4514
  // Assign to a sub-project board. Validated to belong to `projectId` in the handler.
4381
- subProjectId: z52.string().nullable().optional(),
4382
- requestingUserId: z52.string().optional()
4515
+ subProjectId: z62.string().nullable().optional(),
4516
+ requestingUserId: z62.string().optional()
4383
4517
  });
4384
- var SetProjectTaskParentRequestSchema = z52.object({
4385
- projectId: z52.string(),
4518
+ var SetProjectTaskParentRequestSchema = z62.object({
4519
+ projectId: z62.string(),
4386
4520
  /** Card to move — id or slug. */
4387
- taskId: z52.string().min(1),
4521
+ taskId: z62.string().min(1),
4388
4522
  /** New parent (id or slug), or null to detach. */
4389
- parentTaskId: z52.string().min(1).nullable(),
4390
- ordinal: z52.number().int().nonnegative().optional(),
4391
- followParentStatus: z52.boolean().optional(),
4392
- requestingUserId: z52.string().optional()
4523
+ parentTaskId: z62.string().min(1).nullable(),
4524
+ ordinal: z62.number().int().nonnegative().optional(),
4525
+ followParentStatus: z62.boolean().optional(),
4526
+ requestingUserId: z62.string().optional()
4393
4527
  }).strict();
4394
- var UpdateProjectTaskRequestSchema = z52.object({
4395
- projectId: z52.string(),
4396
- taskId: z52.string(),
4397
- title: z52.string().optional(),
4528
+ var UpdateProjectTaskRequestSchema = z62.object({
4529
+ projectId: z62.string(),
4530
+ taskId: z62.string(),
4531
+ title: z62.string().optional(),
4398
4532
  description: cardDescription2,
4399
- plan: z52.string().optional(),
4533
+ plan: z62.string().optional(),
4400
4534
  // Enum validation lives at the MCP tool layer (mirrors createProjectTask);
4401
4535
  // the handler routes through the shared updateStatus core (InProgress
4402
4536
  // dependency check + cleanup/board/Slack side effects), not the stricter
4403
4537
  // card-type-validating path the Socket.IO updateTaskStatus mutation uses.
4404
- status: z52.string().optional(),
4538
+ status: z62.string().optional(),
4405
4539
  // Canonical risk level, or null to clear. Resolved to the project's
4406
4540
  // configured Risk row (by rank) in the handler.
4407
4541
  risk: riskLevelSchema.nullable().optional(),
4408
4542
  // Story-point value, or null to clear. Resolved to the project's configured
4409
4543
  // StoryPoint row in the handler, which rejects an unconfigured value.
4410
- storyPointValue: z52.number().int().positive().nullable().optional(),
4411
- assignedUserId: z52.string().nullish(),
4544
+ storyPointValue: z62.number().int().positive().nullable().optional(),
4545
+ assignedUserId: z62.string().nullish(),
4412
4546
  // Move to a different sub-project board, or null to move to the parent board.
4413
4547
  // Validated to belong to `projectId` in the handler.
4414
- subProjectId: z52.string().nullable().optional(),
4548
+ subProjectId: z62.string().nullable().optional(),
4415
4549
  // Record the task's ACTUAL working branch (e.g. a locally-driven pack's
4416
4550
  // branch, so identification never mints a competing name and pack-child
4417
4551
  // merge handling matches reality), or null to detach. Guarded in the
4418
4552
  // handler: the ref must exist on origin and no live workspace may be bound
4419
4553
  // to a different branch.
4420
- githubBranch: z52.string().min(1).max(GIT_BRANCH_NAME_MAX).refine(isValidGitBranchName, { message: GIT_BRANCH_NAME_MESSAGE }).nullable().optional(),
4554
+ githubBranch: z62.string().min(1).max(GIT_BRANCH_NAME_MAX).refine(isValidGitBranchName, { message: GIT_BRANCH_NAME_MESSAGE }).nullable().optional(),
4421
4555
  // Park the card on hold (true) or return it to the active board (false).
4422
4556
  // The handler mirrors the web path's two side effects: a board re-bucket
4423
4557
  // event, and demotion to Open when an active-work card is parked.
4424
- onHold: z52.boolean().optional(),
4425
- requestingUserId: z52.string().optional()
4558
+ onHold: z62.boolean().optional(),
4559
+ requestingUserId: z62.string().optional()
4426
4560
  }).strict().refine(
4427
4561
  (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,
4428
4562
  {
4429
4563
  message: "update_task requires at least one field to change (title, description, plan, status, risk, storyPointValue, assignedUserId, subProjectId, githubBranch, or onHold)"
4430
4564
  }
4431
4565
  );
4432
- var TransitionProjectTaskStatusRequestSchema = z52.object({
4433
- projectId: z52.string(),
4434
- taskId: z52.string(),
4435
- toStatus: z52.string(),
4436
- expectedFromStatus: z52.string().optional(),
4566
+ var TransitionProjectTaskStatusRequestSchema = z62.object({
4567
+ projectId: z62.string(),
4568
+ taskId: z62.string(),
4569
+ toStatus: z62.string(),
4570
+ expectedFromStatus: z62.string().optional(),
4437
4571
  // Optional raise-only risk to attempt alongside the transition
4438
4572
  // (approve → low, request_changes → medium by default).
4439
4573
  risk: riskLevelSchema.optional(),
4440
- requestingUserId: z52.string().optional()
4441
- });
4442
- var MoveProjectCardRequestSchema = z52.object({
4443
- projectId: z52.string(),
4444
- taskId: z52.string(),
4445
- destinationProjectId: z52.string(),
4446
- requestingUserId: z52.string().optional()
4447
- });
4448
- var PostToProjectTaskChatRequestSchema = z52.object({
4449
- projectId: z52.string(),
4450
- taskId: z52.string(),
4451
- content: z52.string(),
4452
- requestingUserId: z52.string().optional()
4453
- });
4454
- var GetProjectTaskCliRequestSchema = z52.object({
4455
- projectId: z52.string(),
4456
- taskId: z52.string(),
4457
- limit: z52.number().int().positive().optional().default(50),
4458
- source: z52.string().optional()
4459
- });
4460
- var GetProjectTaskSessionsRequestSchema = z52.object({
4461
- projectId: z52.string(),
4462
- taskId: z52.string()
4463
- });
4464
- var QueryProjectGcpLogsRequestSchema = z52.object({
4465
- projectId: z52.string(),
4466
- env: z52.enum(["prod", "dev", "claudespace"]).optional(),
4467
- severity: z52.enum(["DEBUG", "INFO", "NOTICE", "WARNING", "ERROR", "CRITICAL", "ALERT", "EMERGENCY"]).optional(),
4468
- services: z52.array(z52.string().min(1).max(200)).max(25).optional(),
4469
- sqlInstances: z52.array(z52.string().min(1).max(200)).max(25).optional(),
4470
- allServices: z52.boolean().optional(),
4471
- search: z52.string().max(256).optional(),
4472
- filter: z52.string().max(1e3).optional(),
4473
- startTime: z52.string().optional(),
4474
- endTime: z52.string().optional(),
4475
- limit: z52.number().int().min(1).max(200).optional().default(50),
4476
- pageToken: z52.string().max(4096).optional()
4477
- });
4478
- var QueryProjectGrafanaLogsRequestSchema = z52.object({
4479
- projectId: z52.string(),
4480
- env: z52.enum(["prod", "dev"]).optional(),
4481
- services: z52.array(z52.string().min(1).max(200)).max(25).optional(),
4482
- level: z52.enum(["debug", "info", "warn", "error", "fatal"]).optional(),
4483
- search: z52.string().max(256).optional(),
4484
- logql: z52.string().max(2e3).optional(),
4485
- startTime: z52.string().optional(),
4486
- endTime: z52.string().optional(),
4487
- limit: z52.number().int().min(1).max(200).optional().default(50)
4488
- });
4489
- var driveFileNameSchema = z52.string().min(1).max(255).regex(/^[^/\\\r\n]+$/, "File names cannot contain slashes or line breaks");
4574
+ requestingUserId: z62.string().optional()
4575
+ });
4576
+ var MoveProjectCardRequestSchema = z62.object({
4577
+ projectId: z62.string(),
4578
+ taskId: z62.string(),
4579
+ destinationProjectId: z62.string(),
4580
+ requestingUserId: z62.string().optional()
4581
+ });
4582
+ var PostToProjectTaskChatRequestSchema = z62.object({
4583
+ projectId: z62.string(),
4584
+ taskId: z62.string(),
4585
+ content: z62.string(),
4586
+ requestingUserId: z62.string().optional()
4587
+ });
4588
+ var GetProjectTaskCliRequestSchema = z62.object({
4589
+ projectId: z62.string(),
4590
+ taskId: z62.string(),
4591
+ limit: z62.number().int().positive().optional().default(50),
4592
+ source: z62.string().optional()
4593
+ });
4594
+ var GetProjectTaskSessionsRequestSchema = z62.object({
4595
+ projectId: z62.string(),
4596
+ taskId: z62.string()
4597
+ });
4598
+ var QueryProjectGcpLogsRequestSchema = z62.object({
4599
+ projectId: z62.string(),
4600
+ env: z62.enum(["prod", "dev", "claudespace"]).optional(),
4601
+ severity: z62.enum(["DEBUG", "INFO", "NOTICE", "WARNING", "ERROR", "CRITICAL", "ALERT", "EMERGENCY"]).optional(),
4602
+ services: z62.array(z62.string().min(1).max(200)).max(25).optional(),
4603
+ sqlInstances: z62.array(z62.string().min(1).max(200)).max(25).optional(),
4604
+ allServices: z62.boolean().optional(),
4605
+ search: z62.string().max(256).optional(),
4606
+ filter: z62.string().max(1e3).optional(),
4607
+ startTime: z62.string().optional(),
4608
+ endTime: z62.string().optional(),
4609
+ limit: z62.number().int().min(1).max(200).optional().default(50),
4610
+ pageToken: z62.string().max(4096).optional()
4611
+ });
4612
+ var QueryProjectGrafanaLogsRequestSchema = z62.object({
4613
+ projectId: z62.string(),
4614
+ env: z62.enum(["prod", "dev"]).optional(),
4615
+ services: z62.array(z62.string().min(1).max(200)).max(25).optional(),
4616
+ level: z62.enum(["debug", "info", "warn", "error", "fatal"]).optional(),
4617
+ search: z62.string().max(256).optional(),
4618
+ logql: z62.string().max(2e3).optional(),
4619
+ startTime: z62.string().optional(),
4620
+ endTime: z62.string().optional(),
4621
+ limit: z62.number().int().min(1).max(200).optional().default(50)
4622
+ });
4623
+ var driveFileNameSchema = z62.string().min(1).max(255).regex(/^[^/\\\r\n]+$/, "File names cannot contain slashes or line breaks");
4490
4624
  var DRIVE_MAX_CONTENT_CHARS = 1e6;
4491
- var ListProjectDriveFilesRequestSchema = z52.object({
4492
- projectId: z52.string(),
4493
- folderId: z52.string().max(200).optional(),
4494
- search: z52.string().max(200).optional(),
4495
- limit: z52.number().int().min(1).max(200).optional()
4496
- });
4497
- var ReadProjectDriveFileRequestSchema = z52.object({
4498
- projectId: z52.string(),
4499
- fileId: z52.string().min(1).max(200)
4500
- });
4501
- var CreateProjectDriveFileRequestSchema = z52.object({
4502
- projectId: z52.string(),
4625
+ var ListProjectDriveFilesRequestSchema = z62.object({
4626
+ projectId: z62.string(),
4627
+ folderId: z62.string().max(200).optional(),
4628
+ search: z62.string().max(200).optional(),
4629
+ limit: z62.number().int().min(1).max(200).optional()
4630
+ });
4631
+ var ReadProjectDriveFileRequestSchema = z62.object({
4632
+ projectId: z62.string(),
4633
+ fileId: z62.string().min(1).max(200)
4634
+ });
4635
+ var CreateProjectDriveFileRequestSchema = z62.object({
4636
+ projectId: z62.string(),
4503
4637
  name: driveFileNameSchema,
4504
- content: z52.string().max(DRIVE_MAX_CONTENT_CHARS),
4505
- mimeType: z52.string().max(200).optional(),
4506
- folderId: z52.string().max(200).optional()
4507
- });
4508
- var UpdateProjectDriveFileRequestSchema = z52.object({
4509
- projectId: z52.string(),
4510
- fileId: z52.string().min(1).max(200),
4511
- content: z52.string().max(DRIVE_MAX_CONTENT_CHARS),
4512
- mimeType: z52.string().max(200).optional()
4513
- });
4514
- var DeleteProjectDriveFileRequestSchema = z52.object({
4515
- projectId: z52.string(),
4516
- fileId: z52.string().min(1).max(200)
4517
- });
4518
- var CreateProjectDriveFolderRequestSchema = z52.object({
4519
- projectId: z52.string(),
4638
+ content: z62.string().max(DRIVE_MAX_CONTENT_CHARS),
4639
+ mimeType: z62.string().max(200).optional(),
4640
+ folderId: z62.string().max(200).optional()
4641
+ });
4642
+ var UpdateProjectDriveFileRequestSchema = z62.object({
4643
+ projectId: z62.string(),
4644
+ fileId: z62.string().min(1).max(200),
4645
+ content: z62.string().max(DRIVE_MAX_CONTENT_CHARS),
4646
+ mimeType: z62.string().max(200).optional()
4647
+ });
4648
+ var DeleteProjectDriveFileRequestSchema = z62.object({
4649
+ projectId: z62.string(),
4650
+ fileId: z62.string().min(1).max(200)
4651
+ });
4652
+ var CreateProjectDriveFolderRequestSchema = z62.object({
4653
+ projectId: z62.string(),
4520
4654
  name: driveFileNameSchema,
4521
- folderId: z52.string().max(200).optional()
4655
+ folderId: z62.string().max(200).optional()
4522
4656
  });
4523
- var StartProjectBuildRequestSchema = z52.object({
4524
- projectId: z52.string(),
4525
- taskId: z52.string(),
4526
- requestingUserId: z52.string().optional()
4657
+ var StartProjectBuildRequestSchema = z62.object({
4658
+ projectId: z62.string(),
4659
+ taskId: z62.string(),
4660
+ requestingUserId: z62.string().optional()
4527
4661
  });
4528
- var StopProjectBuildRequestSchema = z52.object({
4529
- projectId: z52.string(),
4530
- taskId: z52.string(),
4531
- requestingUserId: z52.string().optional()
4662
+ var StopProjectBuildRequestSchema = z62.object({
4663
+ projectId: z62.string(),
4664
+ taskId: z62.string(),
4665
+ requestingUserId: z62.string().optional()
4532
4666
  });
4533
- var StartProjectWorkspaceRequestSchema = z52.object({
4534
- projectId: z52.string(),
4535
- requestingUserId: z52.string().optional()
4667
+ var StartProjectWorkspaceRequestSchema = z62.object({
4668
+ projectId: z62.string(),
4669
+ requestingUserId: z62.string().optional()
4536
4670
  });
4537
- var StopProjectWorkspaceRequestSchema = z52.object({
4538
- projectId: z52.string(),
4539
- destroy: z52.boolean().optional(),
4540
- requestingUserId: z52.string().optional()
4671
+ var StopProjectWorkspaceRequestSchema = z62.object({
4672
+ projectId: z62.string(),
4673
+ destroy: z62.boolean().optional(),
4674
+ requestingUserId: z62.string().optional()
4541
4675
  });
4542
- var ListMyLiveSessionsRequestSchema = z52.object({
4543
- projectId: z52.string(),
4676
+ var ListMyLiveSessionsRequestSchema = z62.object({
4677
+ projectId: z62.string(),
4544
4678
  /** Admin-only: list another member's sessions instead of the caller's. */
4545
- targetUserId: z52.string().optional()
4679
+ targetUserId: z62.string().optional()
4546
4680
  });
4547
- var ListProjectSessionGroupsRequestSchema = z52.object({
4548
- projectId: z52.string()
4681
+ var ListProjectSessionGroupsRequestSchema = z62.object({
4682
+ projectId: z62.string()
4549
4683
  });
4550
- var ListMyLiveSessionsAcrossProjectsRequestSchema = z52.object({});
4551
- var ListSessionGroupsAcrossProjectsRequestSchema = z52.object({});
4552
- var GetProjectAvailableTuisRequestSchema = z52.object({
4553
- projectId: z52.string()
4684
+ var ListMyLiveSessionsAcrossProjectsRequestSchema = z62.object({});
4685
+ var ListSessionGroupsAcrossProjectsRequestSchema = z62.object({});
4686
+ var GetProjectAvailableTuisRequestSchema = z62.object({
4687
+ projectId: z62.string()
4554
4688
  });
4555
- var StartAdhocSessionRequestSchema = z52.object({
4556
- projectId: z52.string(),
4557
- label: z52.string().max(200).optional(),
4689
+ var StartAdhocSessionRequestSchema = z62.object({
4690
+ projectId: z62.string(),
4691
+ label: z62.string().max(200).optional(),
4558
4692
  /** Coding-agent key to launch under — validated pick-time (ownership + TUI availability) in the handler. */
4559
- codingAgentKeyId: z52.string().optional(),
4693
+ codingAgentKeyId: z62.string().optional(),
4560
4694
  /** Model override (Claude model id) — overrides the launch key's own model. */
4561
- model: z52.string().max(200).optional(),
4695
+ model: z62.string().max(200).optional(),
4562
4696
  /**
4563
4697
  * Session role. Constrained: other task-less modes fall through to the pm
4564
4698
  * runner in the pod entrypoint, and "review" would crash without a task.
4565
4699
  */
4566
- mode: z52.enum(["adhoc", "pm"]).optional(),
4700
+ mode: z62.enum(["adhoc", "pm"]).optional(),
4567
4701
  /** Base branch to check out (defaults to the project's dev branch). */
4568
- branch: z52.string().max(300).optional(),
4702
+ branch: z62.string().max(300).optional(),
4569
4703
  /**
4570
4704
  * Server-assembled instructions the pod's TUI auto-submits once on first boot
4571
4705
  * (headless kickoff). Used by the onboarding "Set it up for me" flow to seed a
4572
4706
  * setup-driver prompt; the session stays watchable/interactive in the Sessions
4573
4707
  * view. `ensureAdhocWorkspace` persists it and clears it after first submit.
4574
4708
  */
4575
- initialPrompt: z52.string().max(2e4).optional(),
4576
- requestingUserId: z52.string().optional()
4577
- });
4578
- var StopAdhocSessionRequestSchema = z52.object({
4579
- projectId: z52.string(),
4580
- workspaceId: z52.string(),
4581
- destroy: z52.boolean().optional(),
4582
- requestingUserId: z52.string().optional()
4583
- });
4584
- var ResumeAdhocSessionRequestSchema = z52.object({
4585
- projectId: z52.string(),
4586
- workspaceId: z52.string(),
4587
- requestingUserId: z52.string().optional()
4588
- });
4589
- var RefreshCodingAgentKeyUsageRequestSchema = z52.object({
4590
- projectId: z52.string(),
4591
- keyId: z52.string().optional(),
4592
- requestingUserId: z52.string().optional()
4593
- });
4594
- var ListKeysToProbeRequestSchema = z52.object({
4595
- sessionId: z52.string()
4596
- });
4597
- var CreateProjectReleaseRequestSchema = z52.object({
4598
- projectId: z52.string(),
4599
- taskIds: z52.array(z52.string()).optional(),
4600
- requestingUserId: z52.string().optional()
4601
- });
4602
- var AddTasksToProjectReleaseRequestSchema = z52.object({
4603
- projectId: z52.string(),
4604
- taskIds: z52.array(z52.string()).min(1),
4605
- requestingUserId: z52.string().optional()
4606
- });
4607
- var ApproveProjectMergePRRequestSchema = z52.object({
4608
- projectId: z52.string(),
4609
- childTaskId: z52.string(),
4610
- requestingUserId: z52.string().optional()
4611
- });
4612
- var ListProjectSubtasksRequestSchema = z52.object({
4613
- projectId: z52.string(),
4614
- taskId: z52.string()
4615
- });
4616
- var CreateProjectSubtaskRequestSchema = z52.object({
4617
- projectId: z52.string(),
4618
- parentTaskId: z52.string(),
4619
- title: z52.string().min(1),
4709
+ initialPrompt: z62.string().max(2e4).optional(),
4710
+ requestingUserId: z62.string().optional()
4711
+ });
4712
+ var StopAdhocSessionRequestSchema = z62.object({
4713
+ projectId: z62.string(),
4714
+ workspaceId: z62.string(),
4715
+ destroy: z62.boolean().optional(),
4716
+ requestingUserId: z62.string().optional()
4717
+ });
4718
+ var ResumeAdhocSessionRequestSchema = z62.object({
4719
+ projectId: z62.string(),
4720
+ workspaceId: z62.string(),
4721
+ requestingUserId: z62.string().optional()
4722
+ });
4723
+ var RefreshCodingAgentKeyUsageRequestSchema = z62.object({
4724
+ projectId: z62.string(),
4725
+ keyId: z62.string().optional(),
4726
+ requestingUserId: z62.string().optional()
4727
+ });
4728
+ var ListKeysToProbeRequestSchema = z62.object({
4729
+ sessionId: z62.string()
4730
+ });
4731
+ var CreateProjectReleaseRequestSchema = z62.object({
4732
+ projectId: z62.string(),
4733
+ taskIds: z62.array(z62.string()).optional(),
4734
+ requestingUserId: z62.string().optional()
4735
+ });
4736
+ var AddTasksToProjectReleaseRequestSchema = z62.object({
4737
+ projectId: z62.string(),
4738
+ taskIds: z62.array(z62.string()).min(1),
4739
+ requestingUserId: z62.string().optional()
4740
+ });
4741
+ var ApproveProjectMergePRRequestSchema = z62.object({
4742
+ projectId: z62.string(),
4743
+ childTaskId: z62.string(),
4744
+ requestingUserId: z62.string().optional()
4745
+ });
4746
+ var ListProjectSubtasksRequestSchema = z62.object({
4747
+ projectId: z62.string(),
4748
+ taskId: z62.string()
4749
+ });
4750
+ var CreateProjectSubtaskRequestSchema = z62.object({
4751
+ projectId: z62.string(),
4752
+ parentTaskId: z62.string(),
4753
+ title: z62.string().min(1),
4620
4754
  description: cardDescription2,
4621
- plan: z52.string().optional(),
4622
- ordinal: z52.number().int().nonnegative().optional(),
4623
- storyPointValue: z52.number().int().positive().optional(),
4624
- followParentStatus: z52.boolean().optional(),
4755
+ plan: z62.string().optional(),
4756
+ ordinal: z62.number().int().nonnegative().optional(),
4757
+ storyPointValue: z62.number().int().positive().optional(),
4758
+ followParentStatus: z62.boolean().optional(),
4625
4759
  /** Sibling subtask ids or slugs this subtask blocks on (explicit dependency
4626
4760
  * metadata — preferred over encoding order in plan text / ordinal). */
4627
- dependsOn: z52.array(z52.string().min(1)).max(32).optional(),
4628
- requestingUserId: z52.string().optional()
4761
+ dependsOn: z62.array(z62.string().min(1)).max(32).optional(),
4762
+ requestingUserId: z62.string().optional()
4629
4763
  });
4630
- var UpdateProjectSubtaskRequestSchema = z52.object({
4631
- projectId: z52.string(),
4632
- subtaskId: z52.string(),
4633
- title: z52.string().optional(),
4764
+ var UpdateProjectSubtaskRequestSchema = z62.object({
4765
+ projectId: z62.string(),
4766
+ subtaskId: z62.string(),
4767
+ title: z62.string().optional(),
4634
4768
  description: cardDescription2,
4635
- plan: z52.string().optional(),
4636
- status: z52.string().optional(),
4637
- ordinal: z52.number().int().nonnegative().optional(),
4638
- storyPointValue: z52.number().int().positive().optional(),
4639
- followParentStatus: z52.boolean().optional(),
4769
+ plan: z62.string().optional(),
4770
+ status: z62.string().optional(),
4771
+ ordinal: z62.number().int().nonnegative().optional(),
4772
+ storyPointValue: z62.number().int().positive().optional(),
4773
+ followParentStatus: z62.boolean().optional(),
4640
4774
  /** Replace-set of sibling subtask ids/slugs this subtask blocks on ([] clears).
4641
4775
  * Mirrors the in-pod updateSubtask semantics. */
4642
- dependsOn: z52.array(z52.string().min(1)).max(32).optional(),
4643
- requestingUserId: z52.string().optional()
4644
- });
4645
- var DeleteProjectSubtaskRequestSchema = z52.object({
4646
- projectId: z52.string(),
4647
- subtaskId: z52.string(),
4648
- requestingUserId: z52.string().optional()
4649
- });
4650
- var GetProjectTaskChatRequestSchema = z52.object({
4651
- projectId: z52.string(),
4652
- taskId: z52.string(),
4653
- limit: z52.number().int().positive().optional().default(20)
4654
- });
4655
- var AddProjectTaskDependencyRequestSchema = z52.object({
4656
- projectId: z52.string(),
4657
- taskId: z52.string(),
4658
- dependsOnSlugOrId: z52.string(),
4659
- requestingUserId: z52.string().optional()
4660
- });
4661
- var RemoveProjectTaskDependencyRequestSchema = z52.object({
4662
- projectId: z52.string(),
4663
- taskId: z52.string(),
4664
- dependsOnSlugOrId: z52.string(),
4665
- requestingUserId: z52.string().optional()
4666
- });
4667
- var VoteProjectSuggestionRequestSchema = z52.object({
4668
- projectId: z52.string(),
4669
- suggestionId: z52.string(),
4670
- value: z52.union([z52.literal(1), z52.literal(-1)]),
4671
- requestingUserId: z52.string().optional()
4672
- });
4673
- var GetProjectTaskDependenciesRequestSchema = z52.object({
4674
- projectId: z52.string(),
4675
- taskId: z52.string()
4676
- });
4677
- var ListProjectTaskFilesRequestSchema = z52.object({
4678
- projectId: z52.string(),
4679
- taskId: z52.string()
4680
- });
4681
- var GetProjectAttachmentRequestSchema = z52.object({
4682
- projectId: z52.string(),
4683
- taskId: z52.string(),
4684
- fileId: z52.string(),
4776
+ dependsOn: z62.array(z62.string().min(1)).max(32).optional(),
4777
+ requestingUserId: z62.string().optional()
4778
+ });
4779
+ var DeleteProjectSubtaskRequestSchema = z62.object({
4780
+ projectId: z62.string(),
4781
+ subtaskId: z62.string(),
4782
+ requestingUserId: z62.string().optional()
4783
+ });
4784
+ var GetProjectTaskChatRequestSchema = z62.object({
4785
+ projectId: z62.string(),
4786
+ taskId: z62.string(),
4787
+ limit: z62.number().int().positive().optional().default(20)
4788
+ });
4789
+ var AddProjectTaskDependencyRequestSchema = z62.object({
4790
+ projectId: z62.string(),
4791
+ taskId: z62.string(),
4792
+ dependsOnSlugOrId: z62.string(),
4793
+ requestingUserId: z62.string().optional()
4794
+ });
4795
+ var RemoveProjectTaskDependencyRequestSchema = z62.object({
4796
+ projectId: z62.string(),
4797
+ taskId: z62.string(),
4798
+ dependsOnSlugOrId: z62.string(),
4799
+ requestingUserId: z62.string().optional()
4800
+ });
4801
+ var VoteProjectSuggestionRequestSchema = z62.object({
4802
+ projectId: z62.string(),
4803
+ suggestionId: z62.string(),
4804
+ value: z62.union([z62.literal(1), z62.literal(-1)]),
4805
+ requestingUserId: z62.string().optional()
4806
+ });
4807
+ var GetProjectTaskDependenciesRequestSchema = z62.object({
4808
+ projectId: z62.string(),
4809
+ taskId: z62.string()
4810
+ });
4811
+ var ListProjectTaskFilesRequestSchema = z62.object({
4812
+ projectId: z62.string(),
4813
+ taskId: z62.string()
4814
+ });
4815
+ var GetProjectAttachmentRequestSchema = z62.object({
4816
+ projectId: z62.string(),
4817
+ taskId: z62.string(),
4818
+ fileId: z62.string(),
4685
4819
  /** Byte offset into text content (paging large logs/JSON). Default 0. */
4686
- offset: z52.number().int().nonnegative().optional(),
4820
+ offset: z62.number().int().nonnegative().optional(),
4687
4821
  /** Max bytes of text content to return from `offset`. Server default applies. */
4688
- maxBytes: z52.number().int().positive().optional()
4689
- });
4690
- var DeleteProjectTaskFileRequestSchema = z52.object({
4691
- projectId: z52.string(),
4692
- taskId: z52.string(),
4693
- fileId: z52.string(),
4694
- requestingUserId: z52.string().optional()
4695
- });
4696
- var RequestProjectFileUploadRequestSchema = z52.object({
4697
- projectId: z52.string(),
4698
- taskId: z52.string(),
4699
- fileName: z52.string().min(1).max(255),
4700
- mimeType: z52.string().min(1).max(128),
4701
- fileSize: z52.number().int().positive().max(MAX_FILE_SIZE_BYTES2),
4702
- requestingUserId: z52.string().optional()
4703
- });
4704
- var ConfirmProjectFileUploadRequestSchema = z52.object({
4705
- projectId: z52.string(),
4706
- taskId: z52.string(),
4707
- fileId: z52.string(),
4822
+ maxBytes: z62.number().int().positive().optional()
4823
+ });
4824
+ var DeleteProjectTaskFileRequestSchema = z62.object({
4825
+ projectId: z62.string(),
4826
+ taskId: z62.string(),
4827
+ fileId: z62.string(),
4828
+ requestingUserId: z62.string().optional()
4829
+ });
4830
+ var RequestProjectFileUploadRequestSchema = z62.object({
4831
+ projectId: z62.string(),
4832
+ taskId: z62.string(),
4833
+ fileName: z62.string().min(1).max(255),
4834
+ mimeType: z62.string().min(1).max(128),
4835
+ fileSize: z62.number().int().positive().max(MAX_FILE_SIZE_BYTES2),
4836
+ requestingUserId: z62.string().optional()
4837
+ });
4838
+ var ConfirmProjectFileUploadRequestSchema = z62.object({
4839
+ projectId: z62.string(),
4840
+ taskId: z62.string(),
4841
+ fileId: z62.string(),
4708
4842
  /** When set, the attachment is also posted to the task chat with this text. */
4709
- comment: z52.string().max(2e3).optional(),
4843
+ comment: z62.string().max(2e3).optional(),
4710
4844
  /** Glossary tag names (or ids) this file is an example of. */
4711
- tags: z52.array(z52.string().min(1).max(MAX_FILE_TAG_LENGTH)).max(MAX_FILE_TAGS2).optional(),
4712
- requestingUserId: z52.string().optional()
4713
- });
4714
- var CreateProjectPullRequestRequestSchema = z52.object({
4715
- projectId: z52.string(),
4716
- taskId: z52.string(),
4717
- title: z52.string().min(1),
4718
- body: z52.string(),
4719
- head: z52.string().optional(),
4720
- base: z52.string().optional(),
4721
- requestingUserId: z52.string().optional()
4722
- });
4723
- var ListProjectMembersRequestSchema = z52.object({
4724
- projectId: z52.string()
4725
- });
4726
- var AddProjectTaskReviewerRequestSchema = z52.object({
4727
- projectId: z52.string(),
4728
- taskId: z52.string(),
4729
- userId: z52.string(),
4730
- requestingUserId: z52.string().optional()
4731
- });
4732
- var RemoveProjectTaskReviewerRequestSchema = z52.object({
4733
- projectId: z52.string(),
4734
- taskId: z52.string(),
4735
- userId: z52.string(),
4736
- requestingUserId: z52.string().optional()
4737
- });
4738
- var ListProjectManualTestsRequestSchema = z52.object({
4739
- projectId: z52.string(),
4740
- taskId: z52.string()
4741
- });
4742
- var QueryProjectManualTestsRequestSchema = z52.object({
4743
- projectId: z52.string(),
4744
- cardStatuses: z52.array(z52.string()).optional(),
4745
- testStatuses: z52.array(z52.enum(["open", "approved", "rejected"])).optional()
4746
- });
4747
- var SetProjectManualTestsRequestSchema = z52.object({
4748
- projectId: z52.string(),
4749
- taskId: z52.string(),
4845
+ tags: z62.array(z62.string().min(1).max(MAX_FILE_TAG_LENGTH)).max(MAX_FILE_TAGS2).optional(),
4846
+ requestingUserId: z62.string().optional()
4847
+ });
4848
+ var CreateProjectPullRequestRequestSchema = z62.object({
4849
+ projectId: z62.string(),
4850
+ taskId: z62.string(),
4851
+ title: z62.string().min(1),
4852
+ body: z62.string(),
4853
+ head: z62.string().optional(),
4854
+ base: z62.string().optional(),
4855
+ requestingUserId: z62.string().optional()
4856
+ });
4857
+ var ListProjectMembersRequestSchema = z62.object({
4858
+ projectId: z62.string()
4859
+ });
4860
+ var AddProjectTaskReviewerRequestSchema = z62.object({
4861
+ projectId: z62.string(),
4862
+ taskId: z62.string(),
4863
+ userId: z62.string(),
4864
+ requestingUserId: z62.string().optional()
4865
+ });
4866
+ var RemoveProjectTaskReviewerRequestSchema = z62.object({
4867
+ projectId: z62.string(),
4868
+ taskId: z62.string(),
4869
+ userId: z62.string(),
4870
+ requestingUserId: z62.string().optional()
4871
+ });
4872
+ var ListProjectManualTestsRequestSchema = z62.object({
4873
+ projectId: z62.string(),
4874
+ taskId: z62.string()
4875
+ });
4876
+ var QueryProjectManualTestsRequestSchema = z62.object({
4877
+ projectId: z62.string(),
4878
+ cardStatuses: z62.array(z62.string()).optional(),
4879
+ testStatuses: z62.array(z62.enum(["open", "approved", "rejected"])).optional()
4880
+ });
4881
+ var SetProjectManualTestsRequestSchema = z62.object({
4882
+ projectId: z62.string(),
4883
+ taskId: z62.string(),
4750
4884
  items: ManualTestItemsSchema,
4751
- requestingUserId: z52.string().optional()
4752
- });
4753
- var EditProjectManualTestRequestSchema = z52.object({
4754
- projectId: z52.string(),
4755
- taskId: z52.string(),
4756
- title: z52.string().min(1),
4757
- newTitle: z52.string().min(1),
4758
- requestingUserId: z52.string().optional()
4759
- });
4760
- var RemoveProjectManualTestRequestSchema = z52.object({
4761
- projectId: z52.string(),
4762
- taskId: z52.string(),
4763
- title: z52.string().min(1),
4764
- requestingUserId: z52.string().optional()
4765
- });
4766
- var ApproveProjectManualTestRequestSchema = z52.object({
4767
- projectId: z52.string(),
4768
- taskId: z52.string(),
4769
- title: z52.string().min(1),
4770
- requestingUserId: z52.string().optional()
4771
- });
4772
- var RejectProjectManualTestRequestSchema = z52.object({
4773
- projectId: z52.string(),
4774
- taskId: z52.string(),
4775
- title: z52.string().min(1),
4776
- reason: z52.string().min(1).max(2e3),
4777
- requestingUserId: z52.string().optional()
4778
- });
4779
- var CreateProjectSuggestionRequestSchema = z52.object({
4780
- projectId: z52.string(),
4781
- title: z52.string().min(1),
4885
+ requestingUserId: z62.string().optional()
4886
+ });
4887
+ var EditProjectManualTestRequestSchema = z62.object({
4888
+ projectId: z62.string(),
4889
+ taskId: z62.string(),
4890
+ title: z62.string().min(1),
4891
+ newTitle: z62.string().min(1),
4892
+ requestingUserId: z62.string().optional()
4893
+ });
4894
+ var RemoveProjectManualTestRequestSchema = z62.object({
4895
+ projectId: z62.string(),
4896
+ taskId: z62.string(),
4897
+ title: z62.string().min(1),
4898
+ requestingUserId: z62.string().optional()
4899
+ });
4900
+ var ApproveProjectManualTestRequestSchema = z62.object({
4901
+ projectId: z62.string(),
4902
+ taskId: z62.string(),
4903
+ title: z62.string().min(1),
4904
+ requestingUserId: z62.string().optional()
4905
+ });
4906
+ var RejectProjectManualTestRequestSchema = z62.object({
4907
+ projectId: z62.string(),
4908
+ taskId: z62.string(),
4909
+ title: z62.string().min(1),
4910
+ reason: z62.string().min(1).max(2e3),
4911
+ requestingUserId: z62.string().optional()
4912
+ });
4913
+ var CreateProjectSuggestionRequestSchema = z62.object({
4914
+ projectId: z62.string(),
4915
+ title: z62.string().min(1),
4782
4916
  description: cardDescription2,
4783
- tagNames: z52.array(z52.string()).optional(),
4784
- requestingUserId: z52.string().optional()
4917
+ tagNames: z62.array(z62.string()).optional(),
4918
+ requestingUserId: z62.string().optional()
4785
4919
  });
4786
- var ListProjectChannelsRequestSchema = z62.object({
4787
- projectId: z62.string()
4920
+ var ListProjectChannelsRequestSchema = z72.object({
4921
+ projectId: z72.string()
4788
4922
  });
4789
4923
  var READ_CHANNEL_MESSAGES_MAX_LIMIT = 50;
4790
- var ReadChannelMessagesRequestSchema = z62.object({
4791
- projectId: z62.string(),
4792
- channelId: z62.string().min(1).max(200),
4793
- limit: z62.number().int().min(1).max(READ_CHANNEL_MESSAGES_MAX_LIMIT).optional(),
4924
+ var ReadChannelMessagesRequestSchema = z72.object({
4925
+ projectId: z72.string(),
4926
+ channelId: z72.string().min(1).max(200),
4927
+ limit: z72.number().int().min(1).max(READ_CHANNEL_MESSAGES_MAX_LIMIT).optional(),
4794
4928
  /** Provider-native cursor: return messages OLDER than this one. */
4795
- before: z62.string().max(100).optional(),
4929
+ before: z72.string().max(100).optional(),
4796
4930
  /** Provider-native cursor: return messages NEWER than this one. */
4797
- after: z62.string().max(100).optional(),
4931
+ after: z72.string().max(100).optional(),
4798
4932
  /**
4799
4933
  * Read one thread instead of the channel surface. Slack calls this a
4800
4934
  * `thread_ts`; on Discord it is the thread channel's id. One field for both,
4801
4935
  * because a caller holding a `threadTs` from a previous read should not have
4802
4936
  * to know which provider produced it.
4803
4937
  */
4804
- threadTs: z62.string().max(100).optional()
4938
+ threadTs: z72.string().max(100).optional()
4805
4939
  });
4806
4940
  var POST_CHANNEL_MESSAGE_MAX_CHARS = 1800;
4807
- var PostChannelMessageRequestSchema = z62.object({
4808
- projectId: z62.string(),
4809
- channelId: z62.string().min(1).max(200),
4810
- text: z62.string().min(1).max(POST_CHANNEL_MESSAGE_MAX_CHARS),
4941
+ var PostChannelMessageRequestSchema = z72.object({
4942
+ projectId: z72.string(),
4943
+ channelId: z72.string().min(1).max(200),
4944
+ text: z72.string().min(1).max(POST_CHANNEL_MESSAGE_MAX_CHARS),
4811
4945
  /** Reply inside a thread rather than to the channel. */
4812
- threadTs: z62.string().max(100).optional()
4946
+ threadTs: z72.string().max(100).optional()
4813
4947
  });
4814
4948
  var GET_ANALYTICS_SUMMARY_MAX_RANGE_DAYS = 90;
4815
- var GetProjectAnalyticsSummaryRequestSchema = z62.object({
4816
- projectId: z62.string(),
4817
- rangeDays: z62.number().int().min(1).max(GET_ANALYTICS_SUMMARY_MAX_RANGE_DAYS).optional(),
4818
- campaign: z62.string().max(200).optional()
4949
+ var GetProjectAnalyticsSummaryRequestSchema = z72.object({
4950
+ projectId: z72.string(),
4951
+ rangeDays: z72.number().int().min(1).max(GET_ANALYTICS_SUMMARY_MAX_RANGE_DAYS).optional(),
4952
+ campaign: z72.string().max(200).optional()
4819
4953
  });
4820
- var RequestWorkspaceRecycleRequestSchema = z72.object({
4821
- sessionId: z72.string(),
4822
- reason: z72.string().max(2e3)
4954
+ var RequestWorkspaceRecycleRequestSchema = z82.object({
4955
+ sessionId: z82.string(),
4956
+ reason: z82.string().max(2e3)
4823
4957
  });
4824
- var ReportApiOutageRequestSchema = z72.object({
4825
- sessionId: z72.string(),
4826
- detail: z72.string().max(2e3),
4827
- attempts: z72.number().int().min(0).max(100)
4958
+ var ReportApiOutageRequestSchema = z82.object({
4959
+ sessionId: z82.string(),
4960
+ detail: z82.string().max(2e3),
4961
+ attempts: z82.number().int().min(0).max(100)
4828
4962
  });
4829
4963
  var CONTEXT_LINK_LOCATOR_MAX2 = 300;
4830
4964
  var TAG_DESCRIPTION_MAX = CARD_DESCRIPTION_MAX;
4831
4965
  var TAG_OVERVIEW_MAX = 32e3;
4832
4966
  var TAG_REASON_MAX = 500;
4833
- var ProjectTagContextPathSchema = z82.object({
4834
- type: z82.enum(["rule", "doc", "file", "folder"]),
4835
- path: z82.string().min(1).max(500),
4836
- label: z82.string().max(100).optional(),
4967
+ var ProjectTagContextPathSchema = z92.object({
4968
+ type: z92.enum(["rule", "doc", "file", "folder"]),
4969
+ path: z92.string().min(1).max(500),
4970
+ label: z92.string().max(100).optional(),
4837
4971
  /** Verified-link tether — text that must keep existing in the file. */
4838
- locator: z82.string().min(1).max(CONTEXT_LINK_LOCATOR_MAX2).regex(/^[^\r\n]*$/, "Locator cannot contain line breaks").optional(),
4972
+ locator: z92.string().min(1).max(CONTEXT_LINK_LOCATOR_MAX2).regex(/^[^\r\n]*$/, "Locator cannot contain line breaks").optional(),
4839
4973
  /** test = must appear in a real test/describe title; code = any substring. */
4840
- locatorType: z82.enum(["test", "code"]).optional()
4974
+ locatorType: z92.enum(["test", "code"]).optional()
4841
4975
  }).refine((link) => link.locator === void 0 === (link.locatorType === void 0), {
4842
4976
  message: "locator and locatorType must be provided together"
4843
4977
  }).refine((link) => link.locator === void 0 || link.type !== "folder", {
4844
4978
  message: "folder links cannot carry a locator"
4845
4979
  });
4846
- var hexColor = z82.string().regex(/^#[0-9a-fA-F]{6}$/, "Expected #RRGGBB hex color");
4847
- var overviewPathSchema = z82.string().min(1).max(500).regex(/^[^\r\n]*$/, "Overview path cannot contain line breaks");
4848
- var CreateProjectTagRequestSchema = z82.object({
4849
- projectId: z82.string(),
4850
- name: z82.string().min(1).max(50),
4980
+ var hexColor = z92.string().regex(/^#[0-9a-fA-F]{6}$/, "Expected #RRGGBB hex color");
4981
+ var overviewPathSchema = z92.string().min(1).max(500).regex(/^[^\r\n]*$/, "Overview path cannot contain line breaks");
4982
+ var CreateProjectTagRequestSchema = z92.object({
4983
+ projectId: z92.string(),
4984
+ name: z92.string().min(1).max(50),
4851
4985
  color: hexColor.optional(),
4852
- description: z82.string().max(TAG_DESCRIPTION_MAX).optional(),
4853
- overview: z82.string().max(TAG_OVERVIEW_MAX).optional(),
4986
+ description: z92.string().max(TAG_DESCRIPTION_MAX).optional(),
4987
+ overview: z92.string().max(TAG_OVERVIEW_MAX).optional(),
4854
4988
  /** Source the overview from this repo file (stored overview stays as the pending fallback). */
4855
4989
  overviewPath: overviewPathSchema.optional(),
4856
- contextPaths: z82.array(ProjectTagContextPathSchema).max(20).optional(),
4990
+ contextPaths: z92.array(ProjectTagContextPathSchema).max(20).optional(),
4857
4991
  /** Parents to link at create time (multi-parent DAG). */
4858
- parentTagIds: z82.array(z82.string()).max(25).optional(),
4859
- requestingUserId: z82.string().optional()
4992
+ parentTagIds: z92.array(z92.string()).max(25).optional(),
4993
+ requestingUserId: z92.string().optional()
4860
4994
  });
4861
- var UpdateProjectTagRequestSchema = z82.object({
4862
- projectId: z82.string(),
4863
- tagId: z82.string(),
4864
- name: z82.string().min(1).max(50).optional(),
4995
+ var UpdateProjectTagRequestSchema = z92.object({
4996
+ projectId: z92.string(),
4997
+ tagId: z92.string(),
4998
+ name: z92.string().min(1).max(50).optional(),
4865
4999
  color: hexColor.optional(),
4866
- description: z82.string().max(TAG_DESCRIPTION_MAX).optional(),
5000
+ description: z92.string().max(TAG_DESCRIPTION_MAX).optional(),
4867
5001
  /** Full markdown glossary body; null clears it. Rejected while overviewPath is set. */
4868
- overview: z82.string().max(TAG_OVERVIEW_MAX).nullable().optional(),
5002
+ overview: z92.string().max(TAG_OVERVIEW_MAX).nullable().optional(),
4869
5003
  /** Repo file to source the overview from; null clears back to the stored overview. */
4870
5004
  overviewPath: overviewPathSchema.nullable().optional(),
4871
5005
  /** Full replacement of the tag's context links when provided. */
4872
- contextPaths: z82.array(ProjectTagContextPathSchema).max(20).optional(),
5006
+ contextPaths: z92.array(ProjectTagContextPathSchema).max(20).optional(),
4873
5007
  /** Full-set replacement of the tag's parent tags (multi-parent DAG). */
4874
- parentTagIds: z82.array(z82.string()).max(25).optional(),
5008
+ parentTagIds: z92.array(z92.string()).max(25).optional(),
4875
5009
  /** One-line revision provenance, recorded in the tag's history. */
4876
- reason: z82.string().max(TAG_REASON_MAX).optional(),
5010
+ reason: z92.string().max(TAG_REASON_MAX).optional(),
4877
5011
  /** Card the caller was working in — stamped into the revision history. */
4878
- taskId: z82.string().optional(),
4879
- requestingUserId: z82.string().optional()
5012
+ taskId: z92.string().optional(),
5013
+ requestingUserId: z92.string().optional()
4880
5014
  });
4881
- var PostToProjectChatRequestSchema = z82.object({
4882
- projectId: z82.string(),
4883
- content: z82.string().min(1).max(2e4),
4884
- requestingUserId: z82.string().optional(),
5015
+ var PostToProjectChatRequestSchema = z92.object({
5016
+ projectId: z92.string(),
5017
+ content: z92.string().min(1).max(2e4),
5018
+ requestingUserId: z92.string().optional(),
4885
5019
  /** Marks the post so the server can persist it beyond chat (tag-audit summaries land in tag history). */
4886
- kind: z82.enum(["tag_audit_summary"]).optional()
4887
- });
4888
- var StartTagAuditRequestSchema = z82.object({
4889
- projectId: z82.string(),
4890
- requestingUserId: z82.string().optional()
4891
- });
4892
- var StartTaskAuditRequestSchema = z82.object({
4893
- projectId: z82.string(),
4894
- taskIds: z82.array(z82.string()).min(1).max(20),
4895
- requestingUserId: z82.string().optional()
4896
- });
4897
- var GetActiveAuditSessionsRequestSchema = z82.object({
4898
- projectId: z82.string()
4899
- });
4900
- var ReportTaskAuditResultRequestSchema = z82.object({
4901
- projectId: z82.string(),
4902
- taskId: z82.string(),
4903
- summary: z82.string(),
4904
- turnGrades: z82.array(
4905
- z82.object({
4906
- turnIndex: z82.number(),
4907
- phase: z82.enum(["planning", "building", "human"]),
4908
- grade: z82.enum(["correct", "neutral", "blunder"]),
4909
- reasoning: z82.string(),
4910
- eventType: z82.string(),
4911
- eventSummary: z82.string()
5020
+ kind: z92.enum(["tag_audit_summary"]).optional()
5021
+ });
5022
+ var StartTagAuditRequestSchema = z92.object({
5023
+ projectId: z92.string(),
5024
+ requestingUserId: z92.string().optional()
5025
+ });
5026
+ var StartTaskAuditRequestSchema = z92.object({
5027
+ projectId: z92.string(),
5028
+ taskIds: z92.array(z92.string()).min(1).max(20),
5029
+ requestingUserId: z92.string().optional()
5030
+ });
5031
+ var GetActiveAuditSessionsRequestSchema = z92.object({
5032
+ projectId: z92.string()
5033
+ });
5034
+ var ReportTaskAuditResultRequestSchema = z92.object({
5035
+ projectId: z92.string(),
5036
+ taskId: z92.string(),
5037
+ summary: z92.string(),
5038
+ turnGrades: z92.array(
5039
+ z92.object({
5040
+ turnIndex: z92.number(),
5041
+ phase: z92.enum(["planning", "building", "human"]),
5042
+ grade: z92.enum(["correct", "neutral", "blunder"]),
5043
+ reasoning: z92.string(),
5044
+ eventType: z92.string(),
5045
+ eventSummary: z92.string()
4912
5046
  })
4913
5047
  ),
4914
- planningAccuracy: z82.number().nullable(),
4915
- buildingAccuracy: z82.number().nullable(),
4916
- humanAccuracy: z82.number().nullable(),
4917
- planningCorrect: z82.number(),
4918
- planningNeutral: z82.number(),
4919
- planningBlunder: z82.number(),
4920
- buildingCorrect: z82.number(),
4921
- buildingNeutral: z82.number(),
4922
- buildingBlunder: z82.number(),
4923
- humanCorrect: z82.number(),
4924
- humanNeutral: z82.number(),
4925
- humanBlunder: z82.number(),
4926
- humanEvaluations: z82.array(
4927
- z82.object({
4928
- messageIndex: z82.number(),
4929
- rating: z82.union([z82.literal(-1), z82.literal(0), z82.literal(1)]),
4930
- reasoning: z82.string()
5048
+ planningAccuracy: z92.number().nullable(),
5049
+ buildingAccuracy: z92.number().nullable(),
5050
+ humanAccuracy: z92.number().nullable(),
5051
+ planningCorrect: z92.number(),
5052
+ planningNeutral: z92.number(),
5053
+ planningBlunder: z92.number(),
5054
+ buildingCorrect: z92.number(),
5055
+ buildingNeutral: z92.number(),
5056
+ buildingBlunder: z92.number(),
5057
+ humanCorrect: z92.number(),
5058
+ humanNeutral: z92.number(),
5059
+ humanBlunder: z92.number(),
5060
+ humanEvaluations: z92.array(
5061
+ z92.object({
5062
+ messageIndex: z92.number(),
5063
+ rating: z92.union([z92.literal(-1), z92.literal(0), z92.literal(1)]),
5064
+ reasoning: z92.string()
4931
5065
  })
4932
5066
  ).optional(),
4933
- suggestionIds: z82.array(z82.string()),
4934
- auditCostUsd: z82.number().nullable(),
4935
- model: z82.string().nullable(),
5067
+ suggestionIds: z92.array(z92.string()),
5068
+ auditCostUsd: z92.number().nullable(),
5069
+ model: z92.string().nullable(),
4936
5070
  /** When set, the audit is marked failed with this message instead. */
4937
- error: z82.string().optional()
5071
+ error: z92.string().optional()
4938
5072
  });
4939
- var GetTaskAuditsRequestSchema = z82.object({
4940
- projectId: z82.string(),
4941
- limit: z82.number().int().positive().max(200).optional().default(50)
5073
+ var GetTaskAuditsRequestSchema = z92.object({
5074
+ projectId: z92.string(),
5075
+ limit: z92.number().int().positive().max(200).optional().default(50)
4942
5076
  });
4943
- var GetTaskAuditRequestSchema = z82.object({
4944
- projectId: z82.string(),
4945
- auditId: z82.string()
5077
+ var GetTaskAuditRequestSchema = z92.object({
5078
+ projectId: z92.string(),
5079
+ auditId: z92.string()
4946
5080
  });
4947
- var GetTaskAuditAggregatesRequestSchema = z82.object({
4948
- projectId: z82.string()
5081
+ var GetTaskAuditAggregatesRequestSchema = z92.object({
5082
+ projectId: z92.string()
4949
5083
  });
4950
- var DeleteTaskAuditRequestSchema = z82.object({
4951
- projectId: z82.string(),
4952
- auditId: z82.string(),
4953
- requestingUserId: z82.string().optional()
5084
+ var DeleteTaskAuditRequestSchema = z92.object({
5085
+ projectId: z92.string(),
5086
+ auditId: z92.string(),
5087
+ requestingUserId: z92.string().optional()
4954
5088
  });
4955
- var MarkInitialPromptSubmittedRequestSchema = z82.object({
4956
- sessionId: z82.string()
5089
+ var MarkInitialPromptSubmittedRequestSchema = z92.object({
5090
+ sessionId: z92.string()
4957
5091
  });
4958
5092
  var DECISION_STATUS_LABELS = ["Open", "Decided", "Cancelled"];
4959
5093
  var DECISION_OPTION_KINDS = ["current", "planned", "proposed"];
@@ -4968,165 +5102,165 @@ var DECISION_DEADLINE_MIN_HOURS = 1;
4968
5102
  var DECISION_DEADLINE_MAX_DAYS = 30;
4969
5103
  var DECISION_DEADLINE_MAX_HOURS = DECISION_DEADLINE_MAX_DAYS * 24;
4970
5104
  var DECISION_LIST_MAX_LIMIT = 200;
4971
- var decisionIdSchema = z92.string().cuid("Invalid decision ID");
4972
- var optionInputSchema = z92.object({
4973
- label: z92.string().min(1, "Option label is required").max(DECISION_OPTION_LABEL_MAX),
4974
- description: z92.string().min(1, "Describe the option as GIVEN / WHEN / THEN"),
4975
- kind: z92.enum(DECISION_OPTION_KINDS).optional()
5105
+ var decisionIdSchema = z10.string().cuid("Invalid decision ID");
5106
+ var optionInputSchema = z10.object({
5107
+ label: z10.string().min(1, "Option label is required").max(DECISION_OPTION_LABEL_MAX),
5108
+ description: z10.string().min(1, "Describe the option as GIVEN / WHEN / THEN"),
5109
+ kind: z10.enum(DECISION_OPTION_KINDS).optional()
4976
5110
  });
4977
- var optionsArraySchema = z92.array(optionInputSchema).min(DECISION_OPTIONS_MIN, `A decision needs at least ${DECISION_OPTIONS_MIN} options`).max(
5111
+ var optionsArraySchema = z10.array(optionInputSchema).min(DECISION_OPTIONS_MIN, `A decision needs at least ${DECISION_OPTIONS_MIN} options`).max(
4978
5112
  DECISION_OPTIONS_MAX,
4979
5113
  `A decision takes at most ${DECISION_OPTIONS_MAX} options \u2014 more than that means the question is not framed yet`
4980
5114
  );
4981
- var CreateDecisionRequestSchema = z92.object({
4982
- projectId: z92.string().cuid("Invalid project ID"),
5115
+ var CreateDecisionRequestSchema = z10.object({
5116
+ projectId: z10.string().cuid("Invalid project ID"),
4983
5117
  /** The question, as one plain sentence. */
4984
- title: z92.string().min(1, "A decision needs a question").max(DECISION_QUESTION_MAX),
4985
- description: z92.string().max(CARD_DESCRIPTION_MAX).optional(),
4986
- context: z92.string().min(1, "Context is required \u2014 say why this is being asked now"),
5118
+ title: z10.string().min(1, "A decision needs a question").max(DECISION_QUESTION_MAX),
5119
+ description: z10.string().max(CARD_DESCRIPTION_MAX).optional(),
5120
+ context: z10.string().min(1, "Context is required \u2014 say why this is being asked now"),
4987
5121
  options: optionsArraySchema,
4988
5122
  /** 1-based position of the option that wins on silence. */
4989
- defaultOptionOrdinal: z92.number().int().min(1).max(DECISION_OPTIONS_MAX),
4990
- deadlineHours: z92.number().min(DECISION_DEADLINE_MIN_HOURS).max(DECISION_DEADLINE_MAX_HOURS).optional(),
5123
+ defaultOptionOrdinal: z10.number().int().min(1).max(DECISION_OPTIONS_MAX),
5124
+ deadlineHours: z10.number().min(DECISION_DEADLINE_MIN_HOURS).max(DECISION_DEADLINE_MAX_HOURS).optional(),
4991
5125
  /** Cards this decision blocks, by cuid or slug. */
4992
- impactedCardRefs: z92.array(z92.string().min(1)).max(50).optional(),
4993
- tagNames: z92.array(z92.string().min(1)).max(10).optional(),
4994
- raisedByTaskId: z92.string().min(1).optional(),
4995
- raisedByPrNumber: z92.number().int().positive().optional()
5126
+ impactedCardRefs: z10.array(z10.string().min(1)).max(50).optional(),
5127
+ tagNames: z10.array(z10.string().min(1)).max(10).optional(),
5128
+ raisedByTaskId: z10.string().min(1).optional(),
5129
+ raisedByPrNumber: z10.number().int().positive().optional()
4996
5130
  });
4997
- var VoteDecisionRequestSchema = z92.object({
5131
+ var VoteDecisionRequestSchema = z10.object({
4998
5132
  decisionId: decisionIdSchema,
4999
- optionId: z92.string().cuid("Invalid option ID"),
5000
- reason: z92.string().max(DECISION_VOTE_REASON_MAX).optional(),
5001
- source: z92.enum(DECISION_VOTE_SOURCES).optional()
5133
+ optionId: z10.string().cuid("Invalid option ID"),
5134
+ reason: z10.string().max(DECISION_VOTE_REASON_MAX).optional(),
5135
+ source: z10.enum(DECISION_VOTE_SOURCES).optional()
5002
5136
  });
5003
- var RemoveDecisionVoteRequestSchema = z92.object({
5137
+ var RemoveDecisionVoteRequestSchema = z10.object({
5004
5138
  decisionId: decisionIdSchema
5005
5139
  });
5006
- var ResolveDecisionRequestSchema = z92.object({
5140
+ var ResolveDecisionRequestSchema = z10.object({
5007
5141
  decisionId: decisionIdSchema,
5008
- chosenOptionId: z92.string().cuid("Invalid option ID"),
5009
- resolution: z92.string().min(1, "A resolution is required \u2014 say what was decided").max(DECISION_RESOLUTION_MAX),
5010
- resolutionNotes: z92.string().optional()
5142
+ chosenOptionId: z10.string().cuid("Invalid option ID"),
5143
+ resolution: z10.string().min(1, "A resolution is required \u2014 say what was decided").max(DECISION_RESOLUTION_MAX),
5144
+ resolutionNotes: z10.string().optional()
5011
5145
  });
5012
- var CancelDecisionRequestSchema = z92.object({
5146
+ var CancelDecisionRequestSchema = z10.object({
5013
5147
  decisionId: decisionIdSchema,
5014
5148
  /** Why it is being dropped. Posted to the decision thread. */
5015
- reason: z92.string().max(DECISION_RESOLUTION_MAX).optional()
5149
+ reason: z10.string().max(DECISION_RESOLUTION_MAX).optional()
5016
5150
  });
5017
- var BulkDecisionIdsRequestSchema = z92.object({
5018
- projectId: z92.string().cuid("Invalid project ID"),
5019
- decisionIds: z92.array(z92.string().cuid()).min(1).max(200)
5151
+ var BulkDecisionIdsRequestSchema = z10.object({
5152
+ projectId: z10.string().cuid("Invalid project ID"),
5153
+ decisionIds: z10.array(z10.string().cuid()).min(1).max(200)
5020
5154
  });
5021
- var ReopenDecisionRequestSchema = z92.object({
5155
+ var ReopenDecisionRequestSchema = z10.object({
5022
5156
  decisionId: decisionIdSchema,
5023
- deadlineHours: z92.number().min(DECISION_DEADLINE_MIN_HOURS).max(DECISION_DEADLINE_MAX_HOURS).optional()
5157
+ deadlineHours: z10.number().min(DECISION_DEADLINE_MIN_HOURS).max(DECISION_DEADLINE_MAX_HOURS).optional()
5024
5158
  });
5025
- var UpdateDecisionRequestSchema = z92.object({
5159
+ var UpdateDecisionRequestSchema = z10.object({
5026
5160
  decisionId: decisionIdSchema,
5027
- title: z92.string().min(1).max(200).optional(),
5028
- description: z92.string().max(CARD_DESCRIPTION_MAX).optional(),
5029
- context: z92.string().min(1).optional(),
5030
- deadlineAt: z92.string().datetime().optional(),
5161
+ title: z10.string().min(1).max(200).optional(),
5162
+ description: z10.string().max(CARD_DESCRIPTION_MAX).optional(),
5163
+ context: z10.string().min(1).optional(),
5164
+ deadlineAt: z10.string().datetime().optional(),
5031
5165
  /** Only accepted while the decision has zero votes. */
5032
5166
  options: optionsArraySchema.optional(),
5033
- defaultOptionOrdinal: z92.number().int().min(1).max(DECISION_OPTIONS_MAX).optional(),
5034
- addImpactedCardRefs: z92.array(z92.string().min(1)).max(50).optional(),
5035
- removeImpactedCardIds: z92.array(z92.string().min(1)).max(50).optional()
5167
+ defaultOptionOrdinal: z10.number().int().min(1).max(DECISION_OPTIONS_MAX).optional(),
5168
+ addImpactedCardRefs: z10.array(z10.string().min(1)).max(50).optional(),
5169
+ removeImpactedCardIds: z10.array(z10.string().min(1)).max(50).optional()
5036
5170
  });
5037
- var GetDecisionRequestSchema = z92.object({
5171
+ var GetDecisionRequestSchema = z10.object({
5038
5172
  /** cuid or slug. A slug needs `projectId` to resolve unambiguously. */
5039
- decisionId: z92.string().min(1),
5040
- projectId: z92.string().cuid().optional()
5173
+ decisionId: z10.string().min(1),
5174
+ projectId: z10.string().cuid().optional()
5041
5175
  });
5042
- var ListDecisionsRequestSchema = z92.object({
5043
- projectId: z92.string().cuid("Invalid project ID"),
5044
- status: z92.enum(DECISION_STATUS_LABELS).optional(),
5176
+ var ListDecisionsRequestSchema = z10.object({
5177
+ projectId: z10.string().cuid("Invalid project ID"),
5178
+ status: z10.enum(DECISION_STATUS_LABELS).optional(),
5045
5179
  /** Tag name, not id — an agent knows the tag it is working under. */
5046
- tag: z92.string().min(1).optional(),
5180
+ tag: z10.string().min(1).optional(),
5047
5181
  /** Decisions that this card is blocked by (cuid or slug). */
5048
- cardId: z92.string().min(1).optional(),
5049
- query: z92.string().min(1).optional(),
5050
- limit: z92.number().int().min(1).max(DECISION_LIST_MAX_LIMIT).optional()
5182
+ cardId: z10.string().min(1).optional(),
5183
+ query: z10.string().min(1).optional(),
5184
+ limit: z10.number().int().min(1).max(DECISION_LIST_MAX_LIMIT).optional()
5051
5185
  });
5052
- var optionInput = z10.object({
5053
- label: z10.string().min(1).max(DECISION_OPTION_LABEL_MAX),
5054
- description: z10.string().min(1),
5055
- kind: z10.enum(DECISION_OPTION_KINDS).optional()
5186
+ var optionInput = z11.object({
5187
+ label: z11.string().min(1).max(DECISION_OPTION_LABEL_MAX),
5188
+ description: z11.string().min(1),
5189
+ kind: z11.enum(DECISION_OPTION_KINDS).optional()
5056
5190
  });
5057
- var optionsInput = z10.array(optionInput).min(DECISION_OPTIONS_MIN).max(DECISION_OPTIONS_MAX);
5058
- var deadlineHours = z10.number().min(DECISION_DEADLINE_MIN_HOURS).max(DECISION_DEADLINE_MAX_HOURS).optional();
5059
- var CreateProjectDecisionRequestSchema = z10.object({
5060
- projectId: z10.string(),
5061
- question: z10.string().min(1).max(200),
5062
- summary: z10.string().max(CARD_DESCRIPTION_MAX).optional(),
5063
- context: z10.string().min(1),
5191
+ var optionsInput = z11.array(optionInput).min(DECISION_OPTIONS_MIN).max(DECISION_OPTIONS_MAX);
5192
+ var deadlineHours = z11.number().min(DECISION_DEADLINE_MIN_HOURS).max(DECISION_DEADLINE_MAX_HOURS).optional();
5193
+ var CreateProjectDecisionRequestSchema = z11.object({
5194
+ projectId: z11.string(),
5195
+ question: z11.string().min(1).max(200),
5196
+ summary: z11.string().max(CARD_DESCRIPTION_MAX).optional(),
5197
+ context: z11.string().min(1),
5064
5198
  options: optionsInput,
5065
- defaultOption: z10.number().int().min(1).max(DECISION_OPTIONS_MAX),
5199
+ defaultOption: z11.number().int().min(1).max(DECISION_OPTIONS_MAX),
5066
5200
  deadlineHours,
5067
- impactedCards: z10.array(z10.string().min(1)).max(50).optional(),
5201
+ impactedCards: z11.array(z11.string().min(1)).max(50).optional(),
5068
5202
  /**
5069
5203
  * Pod surface only: also block the card this session is working on. The
5070
5204
  * session's task id is resolved SERVER-side from `sessionId` — a
5071
5205
  * client-supplied card id would let a pod block any card in the project.
5072
5206
  */
5073
- includeCurrentCard: z10.boolean().optional(),
5074
- sessionId: z10.string().optional(),
5075
- tagNames: z10.array(z10.string().min(1)).max(10).optional(),
5076
- raisedByPr: z10.number().int().positive().optional(),
5207
+ includeCurrentCard: z11.boolean().optional(),
5208
+ sessionId: z11.string().optional(),
5209
+ tagNames: z11.array(z11.string().min(1)).max(10).optional(),
5210
+ raisedByPr: z11.number().int().positive().optional(),
5077
5211
  /** Slug or id of the card that raised the question. A link back, not a block. */
5078
- raisedByCard: z10.string().min(1).optional(),
5212
+ raisedByCard: z11.string().min(1).optional(),
5079
5213
  /** Absolute deadline (ISO 8601). Wins over `deadlineHours` when both are sent. */
5080
- deadlineAt: z10.string().datetime({ offset: true }).optional(),
5081
- requestingUserId: z10.string().optional()
5214
+ deadlineAt: z11.string().datetime({ offset: true }).optional(),
5215
+ requestingUserId: z11.string().optional()
5082
5216
  });
5083
- var ListProjectDecisionsRequestSchema = z10.object({
5084
- projectId: z10.string(),
5085
- status: z10.enum(DECISION_STATUS_LABELS).optional(),
5086
- tag: z10.string().min(1).optional(),
5087
- card: z10.string().min(1).optional(),
5088
- query: z10.string().min(1).optional(),
5089
- limit: z10.number().int().min(1).max(DECISION_LIST_MAX_LIMIT).optional(),
5090
- requestingUserId: z10.string().optional()
5091
- });
5092
- var GetProjectDecisionRequestSchema = z10.object({
5093
- projectId: z10.string(),
5094
- decision: z10.string().min(1),
5095
- requestingUserId: z10.string().optional()
5217
+ var ListProjectDecisionsRequestSchema = z11.object({
5218
+ projectId: z11.string(),
5219
+ status: z11.enum(DECISION_STATUS_LABELS).optional(),
5220
+ tag: z11.string().min(1).optional(),
5221
+ card: z11.string().min(1).optional(),
5222
+ query: z11.string().min(1).optional(),
5223
+ limit: z11.number().int().min(1).max(DECISION_LIST_MAX_LIMIT).optional(),
5224
+ requestingUserId: z11.string().optional()
5225
+ });
5226
+ var GetProjectDecisionRequestSchema = z11.object({
5227
+ projectId: z11.string(),
5228
+ decision: z11.string().min(1),
5229
+ requestingUserId: z11.string().optional()
5096
5230
  });
5097
- var VoteProjectDecisionRequestSchema = z10.object({
5098
- projectId: z10.string(),
5099
- decision: z10.string().min(1),
5231
+ var VoteProjectDecisionRequestSchema = z11.object({
5232
+ projectId: z11.string(),
5233
+ decision: z11.string().min(1),
5100
5234
  /** An option id, or its 1-based position. */
5101
- option: z10.string().min(1),
5102
- reason: z10.string().max(CARD_DESCRIPTION_MAX).optional(),
5103
- requestingUserId: z10.string().optional()
5104
- });
5105
- var ResolveProjectDecisionRequestSchema = z10.object({
5106
- projectId: z10.string(),
5107
- decision: z10.string().min(1),
5108
- option: z10.string().min(1),
5109
- resolution: z10.string().min(1).max(DECISION_RESOLUTION_MAX),
5110
- notes: z10.string().optional(),
5111
- requestingUserId: z10.string().optional()
5112
- });
5113
- var UpdateProjectDecisionRequestSchema = z10.object({
5114
- projectId: z10.string(),
5115
- decision: z10.string().min(1),
5116
- question: z10.string().min(1).max(200).optional(),
5117
- summary: z10.string().max(CARD_DESCRIPTION_MAX).optional(),
5118
- context: z10.string().min(1).optional(),
5235
+ option: z11.string().min(1),
5236
+ reason: z11.string().max(CARD_DESCRIPTION_MAX).optional(),
5237
+ requestingUserId: z11.string().optional()
5238
+ });
5239
+ var ResolveProjectDecisionRequestSchema = z11.object({
5240
+ projectId: z11.string(),
5241
+ decision: z11.string().min(1),
5242
+ option: z11.string().min(1),
5243
+ resolution: z11.string().min(1).max(DECISION_RESOLUTION_MAX),
5244
+ notes: z11.string().optional(),
5245
+ requestingUserId: z11.string().optional()
5246
+ });
5247
+ var UpdateProjectDecisionRequestSchema = z11.object({
5248
+ projectId: z11.string(),
5249
+ decision: z11.string().min(1),
5250
+ question: z11.string().min(1).max(200).optional(),
5251
+ summary: z11.string().max(CARD_DESCRIPTION_MAX).optional(),
5252
+ context: z11.string().min(1).optional(),
5119
5253
  /** Accepted only while nobody has voted. */
5120
5254
  options: optionsInput.optional(),
5121
- defaultOption: z10.number().int().min(1).max(DECISION_OPTIONS_MAX).optional(),
5122
- tagNames: z10.array(z10.string().min(1)).max(10).optional(),
5255
+ defaultOption: z11.number().int().min(1).max(DECISION_OPTIONS_MAX).optional(),
5256
+ tagNames: z11.array(z11.string().min(1)).max(10).optional(),
5123
5257
  deadlineHours,
5124
5258
  /** Absolute deadline (ISO 8601). Wins over `deadlineHours` when both are sent. */
5125
- deadlineAt: z10.string().datetime({ offset: true }).optional(),
5126
- addImpactedCards: z10.array(z10.string().min(1)).max(50).optional(),
5127
- removeImpactedCards: z10.array(z10.string().min(1)).max(50).optional(),
5128
- status: z10.enum(["Cancelled", "Open"]).optional(),
5129
- requestingUserId: z10.string().optional()
5259
+ deadlineAt: z11.string().datetime({ offset: true }).optional(),
5260
+ addImpactedCards: z11.array(z11.string().min(1)).max(50).optional(),
5261
+ removeImpactedCards: z11.array(z11.string().min(1)).max(50).optional(),
5262
+ status: z11.enum(["Cancelled", "Open"]).optional(),
5263
+ requestingUserId: z11.string().optional()
5130
5264
  });
5131
5265
  var EVALUATE_MAX_QUESTIONS = 32;
5132
5266
  var EVALUATE_MAX_ITEMS = 100;
@@ -5134,29 +5268,29 @@ var EVALUATE_ITEM_MAX_CHARS = 8e3;
5134
5268
  var EVALUATE_REQUEST_MAX_CHARS = 4e5;
5135
5269
  var TEXT_MAX = 1e3;
5136
5270
  var QUESTION_KEY = /^[A-Za-z0-9_-]{1,64}$/;
5137
- var EvaluateQuestionSchema = z11.object({
5138
- key: z11.string().regex(QUESTION_KEY, "key must be 1-64 letters, digits, _ or -"),
5139
- type: z11.enum(["noul", "choice", "score"]),
5140
- instructions: z11.string().min(1).max(4e3),
5141
- options: z11.array(
5142
- z11.object({
5143
- key: z11.string().min(1).max(200),
5144
- description: z11.string().min(1).max(TEXT_MAX)
5271
+ var EvaluateQuestionSchema = z12.object({
5272
+ key: z12.string().regex(QUESTION_KEY, "key must be 1-64 letters, digits, _ or -"),
5273
+ type: z12.enum(["noul", "choice", "score"]),
5274
+ instructions: z12.string().min(1).max(4e3),
5275
+ options: z12.array(
5276
+ z12.object({
5277
+ key: z12.string().min(1).max(200),
5278
+ description: z12.string().min(1).max(TEXT_MAX)
5145
5279
  })
5146
5280
  ).optional(),
5147
- levels: z11.array(z11.string().min(1).max(TEXT_MAX)).optional()
5281
+ levels: z12.array(z12.string().min(1).max(TEXT_MAX)).optional()
5148
5282
  }).superRefine((q, ctx) => {
5149
5283
  if (q.type === "choice") {
5150
5284
  const n = q.options?.length ?? 0;
5151
5285
  if (n < 2 || n > 255) {
5152
5286
  ctx.addIssue({
5153
- code: z11.ZodIssueCode.custom,
5287
+ code: z12.ZodIssueCode.custom,
5154
5288
  path: ["options"],
5155
5289
  message: "a choice question needs 2-255 options"
5156
5290
  });
5157
5291
  } else if (new Set(q.options?.map((o) => o.key)).size !== n) {
5158
5292
  ctx.addIssue({
5159
- code: z11.ZodIssueCode.custom,
5293
+ code: z12.ZodIssueCode.custom,
5160
5294
  path: ["options"],
5161
5295
  message: "option keys must be unique"
5162
5296
  });
@@ -5166,36 +5300,36 @@ var EvaluateQuestionSchema = z11.object({
5166
5300
  const n = q.levels?.length ?? 0;
5167
5301
  if (n < 2 || n > 10) {
5168
5302
  ctx.addIssue({
5169
- code: z11.ZodIssueCode.custom,
5303
+ code: z12.ZodIssueCode.custom,
5170
5304
  path: ["levels"],
5171
5305
  message: "a score question needs 2-10 levels"
5172
5306
  });
5173
5307
  }
5174
5308
  }
5175
5309
  });
5176
- var EvaluateQuestionsRequestSchema = z11.object({
5177
- projectId: z11.string(),
5178
- state: z11.string().max(JEV_STATE_MAX_CHARS).optional(),
5179
- items: z11.array(z11.string().max(EVALUATE_ITEM_MAX_CHARS)).max(EVALUATE_MAX_ITEMS).optional(),
5180
- questions: z11.array(EvaluateQuestionSchema).min(1).max(EVALUATE_MAX_QUESTIONS)
5310
+ var EvaluateQuestionsRequestSchema = z12.object({
5311
+ projectId: z12.string(),
5312
+ state: z12.string().max(JEV_STATE_MAX_CHARS).optional(),
5313
+ items: z12.array(z12.string().max(EVALUATE_ITEM_MAX_CHARS)).max(EVALUATE_MAX_ITEMS).optional(),
5314
+ questions: z12.array(EvaluateQuestionSchema).min(1).max(EVALUATE_MAX_QUESTIONS)
5181
5315
  }).superRefine((req, ctx) => {
5182
5316
  if (req.state === void 0 && (!req.items || req.items.length === 0)) {
5183
5317
  ctx.addIssue({
5184
- code: z11.ZodIssueCode.custom,
5318
+ code: z12.ZodIssueCode.custom,
5185
5319
  path: ["state"],
5186
5320
  message: "pass state, or a non-empty items array"
5187
5321
  });
5188
5322
  }
5189
5323
  if (JSON.stringify(req).length > EVALUATE_REQUEST_MAX_CHARS) {
5190
5324
  ctx.addIssue({
5191
- code: z11.ZodIssueCode.custom,
5325
+ code: z12.ZodIssueCode.custom,
5192
5326
  path: [],
5193
5327
  message: `the request is over ${EVALUATE_REQUEST_MAX_CHARS} characters; split the items across calls`
5194
5328
  });
5195
5329
  }
5196
5330
  if (new Set(req.questions.map((q) => q.key)).size !== req.questions.length) {
5197
5331
  ctx.addIssue({
5198
- code: z11.ZodIssueCode.custom,
5332
+ code: z12.ZodIssueCode.custom,
5199
5333
  path: ["questions"],
5200
5334
  message: "question keys must be unique"
5201
5335
  });
@@ -5233,129 +5367,129 @@ var MEETING_TITLE_MAX = 200;
5233
5367
  var MEETING_OCCURRED_AT_MIN_YEAR = 2e3;
5234
5368
  var MEETING_OCCURRED_AT_MAX_FUTURE_MS = 48 * 60 * 60 * 1e3;
5235
5369
  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.`;
5236
- var MeetingOccurredAtSchema = z12.string().datetime().refine((value) => {
5370
+ var MeetingOccurredAtSchema = z13.string().datetime().refine((value) => {
5237
5371
  const ms = Date.parse(value);
5238
5372
  if (Number.isNaN(ms)) return false;
5239
5373
  if (ms > Date.now() + MEETING_OCCURRED_AT_MAX_FUTURE_MS) return false;
5240
5374
  return new Date(ms).getUTCFullYear() >= MEETING_OCCURRED_AT_MIN_YEAR;
5241
5375
  }, OCCURRED_AT_RANGE_MESSAGE);
5242
- var CreateMeetingFromTranscriptRequestSchema = z12.object({
5243
- projectId: z12.string().cuid(),
5244
- rawText: z12.string().min(1).max(MEETING_TRANSCRIPT_MAX_CHARS),
5245
- title: z12.string().min(1).max(MEETING_TITLE_MAX).optional(),
5376
+ var CreateMeetingFromTranscriptRequestSchema = z13.object({
5377
+ projectId: z13.string().cuid(),
5378
+ rawText: z13.string().min(1).max(MEETING_TRANSCRIPT_MAX_CHARS),
5379
+ title: z13.string().min(1).max(MEETING_TITLE_MAX).optional(),
5246
5380
  /** ISO 8601. Defaults to now when the source carries no date. */
5247
5381
  occurredAt: MeetingOccurredAtSchema.optional(),
5248
5382
  /** Override auto-detection. Rarely needed; detection handles the three formats. */
5249
- format: z12.enum(["text", "vtt", "srt"]).optional(),
5250
- source: z12.enum(["manual", "slack"]).optional()
5383
+ format: z13.enum(["text", "vtt", "srt"]).optional(),
5384
+ source: z13.enum(["manual", "slack"]).optional()
5251
5385
  });
5252
- var GetMeetingRequestSchema = z12.object({
5253
- projectId: z12.string().cuid(),
5254
- meetingId: z12.string().cuid()
5386
+ var GetMeetingRequestSchema = z13.object({
5387
+ projectId: z13.string().cuid(),
5388
+ meetingId: z13.string().cuid()
5255
5389
  });
5256
- var UpdateMeetingRequestSchema = z12.object({
5257
- projectId: z12.string().cuid(),
5258
- meetingId: z12.string().cuid(),
5259
- title: z12.string().min(1).max(MEETING_TITLE_MAX).optional(),
5390
+ var UpdateMeetingRequestSchema = z13.object({
5391
+ projectId: z13.string().cuid(),
5392
+ meetingId: z13.string().cuid(),
5393
+ title: z13.string().min(1).max(MEETING_TITLE_MAX).optional(),
5260
5394
  occurredAt: MeetingOccurredAtSchema.optional()
5261
5395
  });
5262
- var RegenerateMeetingSummaryRequestSchema = z12.object({
5263
- projectId: z12.string().cuid(),
5264
- meetingId: z12.string().cuid()
5396
+ var RegenerateMeetingSummaryRequestSchema = z13.object({
5397
+ projectId: z13.string().cuid(),
5398
+ meetingId: z13.string().cuid()
5265
5399
  });
5266
- var DeleteMeetingRequestSchema = z12.object({
5267
- projectId: z12.string().cuid(),
5268
- meetingId: z12.string().cuid()
5400
+ var DeleteMeetingRequestSchema = z13.object({
5401
+ projectId: z13.string().cuid(),
5402
+ meetingId: z13.string().cuid()
5269
5403
  });
5270
- var checklistTitle = z12.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX);
5271
- var ListMeetingChecklistRequestSchema = z12.object({
5272
- projectId: z12.string().cuid(),
5273
- meetingId: z12.string().cuid()
5404
+ var checklistTitle = z13.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX);
5405
+ var ListMeetingChecklistRequestSchema = z13.object({
5406
+ projectId: z13.string().cuid(),
5407
+ meetingId: z13.string().cuid()
5274
5408
  });
5275
- var AddMeetingChecklistItemsRequestSchema = z12.object({
5276
- projectId: z12.string().cuid(),
5277
- meetingId: z12.string().cuid(),
5278
- items: z12.array(z12.object({ title: checklistTitle })).min(1).max(50)
5409
+ var AddMeetingChecklistItemsRequestSchema = z13.object({
5410
+ projectId: z13.string().cuid(),
5411
+ meetingId: z13.string().cuid(),
5412
+ items: z13.array(z13.object({ title: checklistTitle })).min(1).max(50)
5279
5413
  });
5280
- var UpdateMeetingChecklistItemRequestSchema = z12.object({
5281
- projectId: z12.string().cuid(),
5282
- meetingId: z12.string().cuid(),
5283
- itemId: z12.string().cuid(),
5414
+ var UpdateMeetingChecklistItemRequestSchema = z13.object({
5415
+ projectId: z13.string().cuid(),
5416
+ meetingId: z13.string().cuid(),
5417
+ itemId: z13.string().cuid(),
5284
5418
  title: checklistTitle.optional(),
5285
- ordinal: z12.number().int().min(0).optional(),
5419
+ ordinal: z13.number().int().min(0).optional(),
5286
5420
  /** Explicit null clears the link; undefined leaves it alone. */
5287
- linkedTaskId: z12.string().cuid().nullable().optional()
5421
+ linkedTaskId: z13.string().cuid().nullable().optional()
5288
5422
  }).refine(
5289
5423
  (v) => v.title !== void 0 || v.ordinal !== void 0 || v.linkedTaskId !== void 0,
5290
5424
  "Pass at least one of title, ordinal, or linkedTaskId."
5291
5425
  );
5292
- var DeleteMeetingChecklistItemRequestSchema = z12.object({
5293
- projectId: z12.string().cuid(),
5294
- meetingId: z12.string().cuid(),
5295
- itemId: z12.string().cuid()
5296
- });
5297
- var SetMeetingChecklistItemCheckedRequestSchema = z12.object({
5298
- projectId: z12.string().cuid(),
5299
- meetingId: z12.string().cuid(),
5300
- itemId: z12.string().cuid(),
5301
- checked: z12.boolean(),
5426
+ var DeleteMeetingChecklistItemRequestSchema = z13.object({
5427
+ projectId: z13.string().cuid(),
5428
+ meetingId: z13.string().cuid(),
5429
+ itemId: z13.string().cuid()
5430
+ });
5431
+ var SetMeetingChecklistItemCheckedRequestSchema = z13.object({
5432
+ projectId: z13.string().cuid(),
5433
+ meetingId: z13.string().cuid(),
5434
+ itemId: z13.string().cuid(),
5435
+ checked: z13.boolean(),
5302
5436
  /** Attach the card in the same call that ticks the item. */
5303
- linkedTaskId: z12.string().cuid().nullable().optional()
5437
+ linkedTaskId: z13.string().cuid().nullable().optional()
5304
5438
  });
5305
- var ListMeetingsRequestSchema = z12.object({
5306
- projectId: z12.string().cuid(),
5307
- limit: z12.number().int().min(1).max(50).optional(),
5308
- search: z12.string().max(200).optional()
5439
+ var ListMeetingsRequestSchema = z13.object({
5440
+ projectId: z13.string().cuid(),
5441
+ limit: z13.number().int().min(1).max(50).optional(),
5442
+ search: z13.string().max(200).optional()
5309
5443
  });
5310
- var ReadMeetingTranscriptRequestSchema = z12.object({
5311
- projectId: z12.string().cuid(),
5312
- meetingId: z12.string().cuid(),
5313
- offset: z12.number().int().min(0).optional(),
5314
- limit: z12.number().int().min(1).max(500).optional()
5444
+ var ReadMeetingTranscriptRequestSchema = z13.object({
5445
+ projectId: z13.string().cuid(),
5446
+ meetingId: z13.string().cuid(),
5447
+ offset: z13.number().int().min(0).optional(),
5448
+ limit: z13.number().int().min(1).max(500).optional()
5315
5449
  });
5316
5450
  var MEETING_SUMMARY_MAX_CHARS = 5e4;
5317
- var AddProjectMeetingChecklistItemsRequestSchema = z12.object({
5318
- projectId: z12.string().cuid(),
5319
- meetingId: z12.string().cuid(),
5320
- items: z12.array(z12.object({ title: z12.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX) })).min(1).max(50),
5321
- requestingUserId: z12.string().optional()
5322
- });
5323
- var CheckProjectMeetingChecklistItemRequestSchema = z12.object({
5324
- projectId: z12.string().cuid(),
5325
- meetingId: z12.string().cuid(),
5326
- title: z12.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
5327
- checked: z12.boolean(),
5451
+ var AddProjectMeetingChecklistItemsRequestSchema = z13.object({
5452
+ projectId: z13.string().cuid(),
5453
+ meetingId: z13.string().cuid(),
5454
+ items: z13.array(z13.object({ title: z13.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX) })).min(1).max(50),
5455
+ requestingUserId: z13.string().optional()
5456
+ });
5457
+ var CheckProjectMeetingChecklistItemRequestSchema = z13.object({
5458
+ projectId: z13.string().cuid(),
5459
+ meetingId: z13.string().cuid(),
5460
+ title: z13.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
5461
+ checked: z13.boolean(),
5328
5462
  /** Card id or slug. Resolved server-side and required to be in the project. */
5329
- linkedTask: z12.string().min(1).optional(),
5330
- requestingUserId: z12.string().optional()
5331
- });
5332
- var EditProjectMeetingChecklistItemRequestSchema = z12.object({
5333
- projectId: z12.string().cuid(),
5334
- meetingId: z12.string().cuid(),
5335
- title: z12.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
5336
- newTitle: z12.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
5337
- requestingUserId: z12.string().optional()
5338
- });
5339
- var RemoveProjectMeetingChecklistItemRequestSchema = z12.object({
5340
- projectId: z12.string().cuid(),
5341
- meetingId: z12.string().cuid(),
5342
- title: z12.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
5343
- requestingUserId: z12.string().optional()
5344
- });
5345
- var CreateProjectMeetingRequestSchema = z12.object({
5346
- projectId: z12.string().cuid(),
5347
- rawText: z12.string().min(1).max(MEETING_TRANSCRIPT_MAX_CHARS),
5348
- title: z12.string().min(1).max(MEETING_TITLE_MAX).optional(),
5463
+ linkedTask: z13.string().min(1).optional(),
5464
+ requestingUserId: z13.string().optional()
5465
+ });
5466
+ var EditProjectMeetingChecklistItemRequestSchema = z13.object({
5467
+ projectId: z13.string().cuid(),
5468
+ meetingId: z13.string().cuid(),
5469
+ title: z13.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
5470
+ newTitle: z13.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
5471
+ requestingUserId: z13.string().optional()
5472
+ });
5473
+ var RemoveProjectMeetingChecklistItemRequestSchema = z13.object({
5474
+ projectId: z13.string().cuid(),
5475
+ meetingId: z13.string().cuid(),
5476
+ title: z13.string().min(1).max(MEETING_CHECKLIST_TITLE_MAX),
5477
+ requestingUserId: z13.string().optional()
5478
+ });
5479
+ var CreateProjectMeetingRequestSchema = z13.object({
5480
+ projectId: z13.string().cuid(),
5481
+ rawText: z13.string().min(1).max(MEETING_TRANSCRIPT_MAX_CHARS),
5482
+ title: z13.string().min(1).max(MEETING_TITLE_MAX).optional(),
5349
5483
  occurredAt: MeetingOccurredAtSchema.optional(),
5350
- requestingUserId: z12.string().optional()
5484
+ requestingUserId: z13.string().optional()
5351
5485
  });
5352
- var UpdateProjectMeetingRequestSchema = z12.object({
5353
- projectId: z12.string().cuid(),
5354
- meetingId: z12.string().cuid(),
5355
- title: z12.string().min(1).max(MEETING_TITLE_MAX).optional(),
5486
+ var UpdateProjectMeetingRequestSchema = z13.object({
5487
+ projectId: z13.string().cuid(),
5488
+ meetingId: z13.string().cuid(),
5489
+ title: z13.string().min(1).max(MEETING_TITLE_MAX).optional(),
5356
5490
  occurredAt: MeetingOccurredAtSchema.optional(),
5357
- summary: z12.string().min(1).max(MEETING_SUMMARY_MAX_CHARS).optional(),
5358
- requestingUserId: z12.string().optional()
5491
+ summary: z13.string().min(1).max(MEETING_SUMMARY_MAX_CHARS).optional(),
5492
+ requestingUserId: z13.string().optional()
5359
5493
  }).refine(
5360
5494
  (v) => v.title !== void 0 || v.occurredAt !== void 0 || v.summary !== void 0,
5361
5495
  "Pass at least one of title, occurredAt, or summary."
@@ -5569,14 +5703,19 @@ var CATALOG = {
5569
5703
  lgtm: {
5570
5704
  name: "lgtm",
5571
5705
  image: "grafana/otel-lgtm:0.11.6",
5572
- // The otel-lgtm image's own CMD is ["/otel-lgtm/run-all.sh"] (WORKDIR
5573
- // /otel-lgtm). Declaring it explicitly makes lgtm a command-based service so
5574
- // the lazy start-file gate wraps it like the others — otherwise it launches
5575
- // via image CMD at boot and can't be parked (which is why warm-booting it at
5576
- // a minimal request OOMKilled it). getSidecarSpecs strips this command for a
5577
- // baked lgtm image, so it only applies to the stock image whose launcher is
5578
- // exactly this path.
5579
- command: ["/otel-lgtm/run-all.sh"],
5706
+ // Runs the image's own launcher (/otel-lgtm/run-all.sh) after capping
5707
+ // Tempo's retention. The image ships Tempo with the 14-day default, and its
5708
+ // blocks live on the container's writable layer, which counts against the
5709
+ // 1Gi ephemeral-storage limit below; overrunning it evicts the whole pod.
5710
+ // At 100% sampling a busy dev stack writes up to ~2 GB of traces a day, so
5711
+ // keep 3h (plus 10m before a retired block leaves disk). The grep keeps it
5712
+ // idempotent, and a failed append still starts the stack. lgtm has no bake,
5713
+ // so no baked image ever strips this command.
5714
+ command: [
5715
+ "sh",
5716
+ "-c",
5717
+ "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"
5718
+ ],
5580
5719
  ports: [
5581
5720
  // OTLP gRPC + HTTP — agents and user code emit telemetry here.
5582
5721
  4317,
@@ -5802,7 +5941,7 @@ function registerChecklistTools(server2, conn2) {
5802
5941
  }
5803
5942
 
5804
5943
  // src/tools/workspace.ts
5805
- import { z as z13 } from "zod";
5944
+ import { z as z14 } from "zod/v3";
5806
5945
 
5807
5946
  // src/workspace-ssh-tunnel.ts
5808
5947
  import net from "net";
@@ -5922,8 +6061,8 @@ function registerAttachInfoTool(server2, conn2) {
5922
6061
  "workspace_attach_info",
5923
6062
  "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.",
5924
6063
  {
5925
- taskId: z13.string().describe("The task ID"),
5926
- sshPublicKey: z13.string().optional().describe("Optional OpenSSH public key to install into the workspace")
6064
+ taskId: z14.string().describe("The task ID"),
6065
+ sshPublicKey: z14.string().optional().describe("Optional OpenSSH public key to install into the workspace")
5927
6066
  },
5928
6067
  async ({ taskId, sshPublicKey }) => {
5929
6068
  const info = await conn2.getWorkspaceAttachInfo(taskId, sshPublicKey);
@@ -5936,7 +6075,7 @@ function registerPreviewUrlsTool(server2, conn2) {
5936
6075
  "workspace_preview_urls",
5937
6076
  "Return the hosted preview URLs and preview ports for a running task Claudespace. This mirrors the web UI preview link metadata.",
5938
6077
  {
5939
- taskId: z13.string().describe("The task ID")
6078
+ taskId: z14.string().describe("The task ID")
5940
6079
  },
5941
6080
  async ({ taskId }) => {
5942
6081
  const info = await conn2.getWorkspaceAttachInfo(taskId);
@@ -5966,10 +6105,10 @@ function registerStartTunnelTool(server2, conn2, startTunnel) {
5966
6105
  "workspace_start_tunnel",
5967
6106
  "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.",
5968
6107
  {
5969
- taskId: z13.string().describe("The task ID"),
5970
- port: z13.number().optional().describe("Remote Claudespace port. Defaults to SSH port 2222."),
5971
- preferredLocalPort: z13.number().optional().describe("Preferred local loopback port. If omitted, the OS chooses one."),
5972
- sshPublicKey: z13.string().optional().describe("Optional OpenSSH public key to install before opening the tunnel")
6108
+ taskId: z14.string().describe("The task ID"),
6109
+ port: z14.number().optional().describe("Remote Claudespace port. Defaults to SSH port 2222."),
6110
+ preferredLocalPort: z14.number().optional().describe("Preferred local loopback port. If omitted, the OS chooses one."),
6111
+ sshPublicKey: z14.string().optional().describe("Optional OpenSSH public key to install before opening the tunnel")
5973
6112
  },
5974
6113
  async ({ taskId, port, preferredLocalPort, sshPublicKey }) => {
5975
6114
  const info = await conn2.getWorkspaceAttachInfo(taskId, sshPublicKey);
@@ -6029,7 +6168,7 @@ function registerStopTunnelTool(server2) {
6029
6168
  "workspace_stop_tunnel",
6030
6169
  "Stop a local workspace tunnel previously opened by workspace_start_tunnel.",
6031
6170
  {
6032
- tunnelId: z13.string().describe("Tunnel id returned by workspace_start_tunnel")
6171
+ tunnelId: z14.string().describe("Tunnel id returned by workspace_start_tunnel")
6033
6172
  },
6034
6173
  async ({ tunnelId }) => {
6035
6174
  const tunnel = activeTunnels.get(tunnelId);
@@ -6317,6 +6456,7 @@ function registerAllTools(server2, conn2) {
6317
6456
  registerPullRequestTools(server2, conn2);
6318
6457
  registerSubtaskTools(server2, conn2);
6319
6458
  registerDependencyTools(server2, conn2);
6459
+ registerIncidentTools(server2, conn2);
6320
6460
  registerSuggestionTools(server2, conn2);
6321
6461
  registerChecklistTools(server2, conn2);
6322
6462
  registerWorkspaceTools(server2, conn2);