@doist/automations-mcp 1.7.1 → 1.7.2

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.
@@ -13573,6 +13573,12 @@ var toolUpdateMemoryResultSchema = z59.object({
13573
13573
  });
13574
13574
 
13575
13575
  // ../../packages/sdk/dist/esm/chat-turn/messages.js
13576
+ import { z as z60 } from "zod";
13577
+ var persistedToolPartSchema = z60.object({
13578
+ type: z60.string().trim().min(6).refine((type) => type.startsWith("tool-")),
13579
+ toolCallId: z60.string().trim().min(1),
13580
+ state: z60.enum(["input-streaming", "input-available", "output-available", "output-error"])
13581
+ }).passthrough();
13576
13582
  function createUserMessage(text) {
13577
13583
  return {
13578
13584
  id: globalThis.crypto.randomUUID(),
@@ -13590,9 +13596,32 @@ function toUiMessage(message) {
13590
13596
  return {
13591
13597
  id: message.messageId,
13592
13598
  role: message.role,
13593
- parts: message.parts
13599
+ parts: normalizePersistedMessageParts(message.parts)
13594
13600
  };
13595
13601
  }
13602
+ function normalizePersistedMessageParts(parts) {
13603
+ return parts.filter((part) => isTextPart(part) || isStepStartPart(part) || isReasoningPart(part) || persistedToolPartSchema.safeParse(part).success);
13604
+ }
13605
+ function isTextPart(part) {
13606
+ if (typeof part !== "object" || part === null) {
13607
+ return false;
13608
+ }
13609
+ const candidate = part;
13610
+ return candidate.type === "text" && typeof candidate.text === "string";
13611
+ }
13612
+ function isStepStartPart(part) {
13613
+ if (typeof part !== "object" || part === null) {
13614
+ return false;
13615
+ }
13616
+ return part.type === "step-start";
13617
+ }
13618
+ function isReasoningPart(part) {
13619
+ if (typeof part !== "object" || part === null) {
13620
+ return false;
13621
+ }
13622
+ const candidate = part;
13623
+ return candidate.type === "reasoning" && typeof candidate.text === "string" && (candidate.state === void 0 || candidate.state === "streaming" || candidate.state === "done");
13624
+ }
13596
13625
  function getVisibleText(message) {
13597
13626
  return message.parts.filter((part) => part.type === "text").map((part) => part.text).join("");
13598
13627
  }
@@ -13928,7 +13957,7 @@ import { McpServer } from "@modelcontextprotocol/server";
13928
13957
  // package.json
13929
13958
  var package_default = {
13930
13959
  name: "@doist/automations-mcp",
13931
- version: "1.7.1",
13960
+ version: "1.7.2",
13932
13961
  description: "MCP server and importable AI tools for Todoist Automations",
13933
13962
  type: "module",
13934
13963
  main: "./dist/index.js",
@@ -13964,7 +13993,7 @@ var package_default = {
13964
13993
  build: "node scripts/build.mjs",
13965
13994
  dev: "node scripts/build.mjs --watch",
13966
13995
  "type-check": "tsc -p tsconfig.test.json --noEmit",
13967
- test: "vitest run",
13996
+ test: "vitest run && node --test '../../release/*.test.mjs'",
13968
13997
  check: "oxfmt src scripts --check && oxlint src scripts",
13969
13998
  "check:fix": "oxfmt src scripts && oxlint src scripts --fix",
13970
13999
  tool: "tsx scripts/run-tool.ts",
@@ -13990,7 +14019,6 @@ var package_default = {
13990
14019
  esbuild: "0.28.2",
13991
14020
  "gpt-tokenizer": "4.0.3",
13992
14021
  "semantic-release": "25.0.9",
13993
- "semantic-release-monorepo": "8.0.2",
13994
14022
  tsx: "4.23.15",
13995
14023
  typescript: "6.0.3",
13996
14024
  vitest: "5.0.5"
@@ -14002,7 +14030,7 @@ var package_default = {
14002
14030
  };
14003
14031
 
14004
14032
  // src/mcp-helpers.ts
14005
- import { z as z60 } from "zod";
14033
+ import { z as z61 } from "zod";
14006
14034
 
14007
14035
  // src/tool-error.ts
14008
14036
  import { ZodError } from "zod";
@@ -14105,7 +14133,7 @@ function removeNullFields(value) {
14105
14133
  // src/mcp-helpers.ts
14106
14134
  var TOOL_SCHEMAS = /* @__PURE__ */ new WeakMap();
14107
14135
  function withCachedJsonSchema(schema, io) {
14108
- const jsonSchema = z60.toJSONSchema(schema, { target: "draft-2020-12", io });
14136
+ const jsonSchema = z61.toJSONSchema(schema, { target: "draft-2020-12", io });
14109
14137
  const standard = schema["~standard"];
14110
14138
  return {
14111
14139
  "~standard": {
@@ -14123,8 +14151,8 @@ function getToolSchemas(tool) {
14123
14151
  return cached;
14124
14152
  }
14125
14153
  const schemas = {
14126
- input: withCachedJsonSchema(z60.object(tool.parameters), "input"),
14127
- ...tool.outputSchema ? { output: withCachedJsonSchema(z60.object(tool.outputSchema), "output") } : {}
14154
+ input: withCachedJsonSchema(z61.object(tool.parameters), "input"),
14155
+ ...tool.outputSchema ? { output: withCachedJsonSchema(z61.object(tool.outputSchema), "output") } : {}
14128
14156
  };
14129
14157
  TOOL_SCHEMAS.set(tool, schemas);
14130
14158
  return schemas;
@@ -14219,7 +14247,7 @@ function registerTool({
14219
14247
  }
14220
14248
 
14221
14249
  // src/tools/check-connection.ts
14222
- import { z as z62 } from "zod";
14250
+ import { z as z63 } from "zod";
14223
14251
 
14224
14252
  // src/utils/connections.ts
14225
14253
  function describeSetup(setup) {
@@ -14262,222 +14290,222 @@ function rethrowConnectorNotFound() {
14262
14290
  }
14263
14291
 
14264
14292
  // src/utils/output-schemas.ts
14265
- import { z as z61 } from "zod";
14266
- var triggerSummarySchema = z61.object({
14267
- type: z61.enum(TRIGGER_TYPES),
14268
- schedule: z61.object({
14269
- interval: z61.string().optional().describe('e.g. "45m". Present for interval schedules.'),
14270
- cron: z61.string().optional().describe("Five-part expression. Present for cron schedules."),
14271
- timezone: z61.string().optional().describe("IANA zone. Present for cron schedules.")
14293
+ import { z as z62 } from "zod";
14294
+ var triggerSummarySchema = z62.object({
14295
+ type: z62.enum(TRIGGER_TYPES),
14296
+ schedule: z62.object({
14297
+ interval: z62.string().optional().describe('e.g. "45m". Present for interval schedules.'),
14298
+ cron: z62.string().optional().describe("Five-part expression. Present for cron schedules."),
14299
+ timezone: z62.string().optional().describe("IANA zone. Present for cron schedules.")
14272
14300
  }).optional(),
14273
- event: z61.string().optional().describe("The connector event a webhook trigger listens for.")
14274
- });
14275
- var automationConnectionSummarySchema = z61.object({
14276
- id: z61.string(),
14277
- name: z61.string(),
14278
- connectorId: z61.string(),
14279
- status: z61.enum(CONNECTION_STATUSES).optional()
14280
- });
14281
- var automationSummarySchema = z61.object({
14282
- id: z61.string(),
14283
- name: z61.string(),
14284
- description: z61.string().optional(),
14285
- enabled: z61.boolean(),
14286
- status: z61.enum(AUTOMATION_RUN_STATUSES).describe("Outcome of the most recent run."),
14287
- lastRun: z61.string().optional().describe("ISO 8601."),
14288
- failureReason: z61.string().optional().describe("Present when status is failed."),
14289
- skipReason: z61.string().optional().describe("Present when status is skipped."),
14290
- connectionStatus: z61.enum(AUTOMATION_CONNECTION_STATUSES),
14291
- visibility: z61.enum(AUTOMATION_VISIBILITIES),
14292
- isOwner: z61.boolean(),
14293
- workspaceId: z61.string().optional().describe("Absent for personal automations."),
14294
- createdBy: z61.string().optional().describe(
14301
+ event: z62.string().optional().describe("The connector event a webhook trigger listens for.")
14302
+ });
14303
+ var automationConnectionSummarySchema = z62.object({
14304
+ id: z62.string(),
14305
+ name: z62.string(),
14306
+ connectorId: z62.string(),
14307
+ status: z62.enum(CONNECTION_STATUSES).optional()
14308
+ });
14309
+ var automationSummarySchema = z62.object({
14310
+ id: z62.string(),
14311
+ name: z62.string(),
14312
+ description: z62.string().optional(),
14313
+ enabled: z62.boolean(),
14314
+ status: z62.enum(AUTOMATION_RUN_STATUSES).describe("Outcome of the most recent run."),
14315
+ lastRun: z62.string().optional().describe("ISO 8601."),
14316
+ failureReason: z62.string().optional().describe("Present when status is failed."),
14317
+ skipReason: z62.string().optional().describe("Present when status is skipped."),
14318
+ connectionStatus: z62.enum(AUTOMATION_CONNECTION_STATUSES),
14319
+ visibility: z62.enum(AUTOMATION_VISIBILITIES),
14320
+ isOwner: z62.boolean(),
14321
+ workspaceId: z62.string().optional().describe("Absent for personal automations."),
14322
+ createdBy: z62.string().optional().describe(
14295
14323
  "The Todoist user id of whoever created the automation. It never changes, including when the automation is moved."
14296
14324
  ),
14297
- updatedBy: z61.string().optional().describe(
14325
+ updatedBy: z62.string().optional().describe(
14298
14326
  "The Todoist user id of whoever last changed the automation, which in a workspace can be an admin rather than the creator. Absent until someone has changed it."
14299
14327
  ),
14300
- disabledReason: z61.enum(AUTOMATION_DISABLED_REASONS).optional().describe(
14328
+ disabledReason: z62.enum(AUTOMATION_DISABLED_REASONS).optional().describe(
14301
14329
  "Present when the system, not the user, disabled it; it cannot be enabled until fixed."
14302
14330
  ),
14303
- triggers: z61.array(triggerSummarySchema),
14304
- connections: z61.array(automationConnectionSummarySchema),
14305
- updatedAt: z61.string().describe("ISO 8601.")
14306
- });
14307
- var draftSummarySchema = z61.object({
14308
- id: z61.string(),
14309
- name: z61.string().optional().describe("Absent until the draft has been given a name."),
14310
- description: z61.string().optional(),
14311
- isComplete: z61.boolean().describe("Whether the draft has everything it needs to be published."),
14312
- automationId: z61.string().optional().describe(
14331
+ triggers: z62.array(triggerSummarySchema),
14332
+ connections: z62.array(automationConnectionSummarySchema),
14333
+ updatedAt: z62.string().describe("ISO 8601.")
14334
+ });
14335
+ var draftSummarySchema = z62.object({
14336
+ id: z62.string(),
14337
+ name: z62.string().optional().describe("Absent until the draft has been given a name."),
14338
+ description: z62.string().optional(),
14339
+ isComplete: z62.boolean().describe("Whether the draft has everything it needs to be published."),
14340
+ automationId: z62.string().optional().describe(
14313
14341
  "The published automation this draft is linked to: the one it edits, or the one it became. Absent for a draft that has not been published."
14314
14342
  ),
14315
- conversationId: z61.string().optional().describe("The chat conversation authoring this draft, when there is one."),
14316
- workspaceId: z61.string().optional().describe("Absent for personal drafts."),
14317
- createdAt: z61.string().describe("ISO 8601."),
14318
- updatedAt: z61.string().describe("ISO 8601.")
14343
+ conversationId: z62.string().optional().describe("The chat conversation authoring this draft, when there is one."),
14344
+ workspaceId: z62.string().optional().describe("Absent for personal drafts."),
14345
+ createdAt: z62.string().describe("ISO 8601."),
14346
+ updatedAt: z62.string().describe("ISO 8601.")
14319
14347
  });
14320
14348
  var draftDetailSchema = draftSummarySchema.extend({
14321
- partialManifest: z61.record(z61.string(), z61.unknown()).optional().describe(
14349
+ partialManifest: z62.record(z62.string(), z62.unknown()).optional().describe(
14322
14350
  "The manifest as authored so far; may be missing parts. Absent when nothing has been authored yet."
14323
14351
  ),
14324
- connectors: z61.array(z61.object({ connectorId: z61.string(), name: z61.string() })).optional().describe("The services the manifest uses.")
14352
+ connectors: z62.array(z62.object({ connectorId: z62.string(), name: z62.string() })).optional().describe("The services the manifest uses.")
14325
14353
  });
14326
- var draftValidationSchema = z61.object({
14327
- state: z61.enum(["incomplete", "ready"]).describe('"ready" means the draft can be published as it stands.'),
14328
- issues: z61.array(z61.string()).describe("What stops it being published. Empty when ready."),
14329
- modified: z61.boolean().describe(
14354
+ var draftValidationSchema = z62.object({
14355
+ state: z62.enum(["incomplete", "ready"]).describe('"ready" means the draft can be published as it stands.'),
14356
+ issues: z62.array(z62.string()).describe("What stops it being published. Empty when ready."),
14357
+ modified: z62.boolean().describe(
14330
14358
  "Whether publishing would change anything: false when the draft matches the automation it edits."
14331
14359
  )
14332
14360
  });
14333
- var manifestDiffSchema = z61.object({
14334
- changedProperties: z61.array(z61.string()).describe("Top-level manifest fields that differ, other than steps."),
14335
- steps: z61.object({
14336
- added: z61.array(z61.string()),
14337
- removed: z61.array(z61.string()),
14338
- changed: z61.array(
14339
- z61.object({
14340
- id: z61.string(),
14341
- fields: z61.array(z61.string()).describe("Paths inside the step that differ, such as input.channel.")
14361
+ var manifestDiffSchema = z62.object({
14362
+ changedProperties: z62.array(z62.string()).describe("Top-level manifest fields that differ, other than steps."),
14363
+ steps: z62.object({
14364
+ added: z62.array(z62.string()),
14365
+ removed: z62.array(z62.string()),
14366
+ changed: z62.array(
14367
+ z62.object({
14368
+ id: z62.string(),
14369
+ fields: z62.array(z62.string()).describe("Paths inside the step that differ, such as input.channel.")
14342
14370
  })
14343
14371
  ),
14344
- reordered: z61.boolean().describe("Shared steps run in a different order.")
14372
+ reordered: z62.boolean().describe("Shared steps run in a different order.")
14345
14373
  }).describe("Steps by id."),
14346
- isEmpty: z61.boolean()
14347
- });
14348
- var runSummarySchema = z61.object({
14349
- id: z61.string(),
14350
- automationId: z61.string(),
14351
- status: z61.enum(AUTOMATION_RUN_STATUSES),
14352
- createdAt: z61.string().describe("ISO 8601. When the run started."),
14353
- updatedAt: z61.string().describe("ISO 8601."),
14354
- triggeredBy: z61.string().optional().describe(
14374
+ isEmpty: z62.boolean()
14375
+ });
14376
+ var runSummarySchema = z62.object({
14377
+ id: z62.string(),
14378
+ automationId: z62.string(),
14379
+ status: z62.enum(AUTOMATION_RUN_STATUSES),
14380
+ createdAt: z62.string().describe("ISO 8601. When the run started."),
14381
+ updatedAt: z62.string().describe("ISO 8601."),
14382
+ triggeredBy: z62.string().optional().describe(
14355
14383
  "The Todoist user id of whoever started the run by hand. Absent for scheduled and event runs."
14356
14384
  ),
14357
- failureCategory: z61.enum([...FAILURE_CATEGORIES, ...SKIP_CATEGORIES]).optional().describe("Why it failed or was skipped, as a category. Present when known."),
14358
- failureReason: z61.string().optional().describe("Why it failed or was skipped, in prose. Present when known.")
14359
- });
14360
- var runToolCallSchema = z61.object({
14361
- id: z61.string(),
14362
- name: z61.string().describe("The connector tool that was called."),
14363
- argumentKeys: z61.array(z61.string()).describe("The names of the arguments passed, not their values."),
14364
- hasResult: z61.boolean(),
14365
- hasError: z61.boolean(),
14366
- resultPreview: z61.string().optional().describe("The start of the result, when there is one."),
14367
- errorPreview: z61.string().optional().describe("The start of the error, when there is one."),
14368
- timestamp: z61.string().describe("ISO 8601."),
14369
- outcome: z61.enum(TOOL_CALL_OUTCOMES).optional().describe("Only with `full`."),
14370
- errorCategory: z61.enum(TOOL_CALL_ERROR_CATEGORIES).optional().describe("Only with `full`.")
14371
- });
14372
- var runStepSchema = z61.object({
14373
- stepId: z61.string(),
14374
- type: z61.string(),
14375
- description: z61.string(),
14376
- status: z61.enum(AUTOMATION_RUN_STATUSES),
14377
- startedAt: z61.string().optional().describe("ISO 8601."),
14378
- completedAt: z61.string().optional().describe("ISO 8601."),
14379
- error: z61.string().optional().describe("Present when the step failed."),
14380
- toolCalls: z61.array(runToolCallSchema).optional(),
14381
- result: z61.unknown().optional().describe("The raw step output. Only with `full`."),
14382
- generatedCode: z61.string().optional().describe("The code a code step ran. Only with `full`."),
14383
- debugReason: z61.enum(AUTOMATION_RUN_DEBUG_REASONS).optional().describe("Why the step ended without doing its work. Only with `full`.")
14385
+ failureCategory: z62.enum([...FAILURE_CATEGORIES, ...SKIP_CATEGORIES]).optional().describe("Why it failed or was skipped, as a category. Present when known."),
14386
+ failureReason: z62.string().optional().describe("Why it failed or was skipped, in prose. Present when known.")
14387
+ });
14388
+ var runToolCallSchema = z62.object({
14389
+ id: z62.string(),
14390
+ name: z62.string().describe("The connector tool that was called."),
14391
+ argumentKeys: z62.array(z62.string()).describe("The names of the arguments passed, not their values."),
14392
+ hasResult: z62.boolean(),
14393
+ hasError: z62.boolean(),
14394
+ resultPreview: z62.string().optional().describe("The start of the result, when there is one."),
14395
+ errorPreview: z62.string().optional().describe("The start of the error, when there is one."),
14396
+ timestamp: z62.string().describe("ISO 8601."),
14397
+ outcome: z62.enum(TOOL_CALL_OUTCOMES).optional().describe("Only with `full`."),
14398
+ errorCategory: z62.enum(TOOL_CALL_ERROR_CATEGORIES).optional().describe("Only with `full`.")
14399
+ });
14400
+ var runStepSchema = z62.object({
14401
+ stepId: z62.string(),
14402
+ type: z62.string(),
14403
+ description: z62.string(),
14404
+ status: z62.enum(AUTOMATION_RUN_STATUSES),
14405
+ startedAt: z62.string().optional().describe("ISO 8601."),
14406
+ completedAt: z62.string().optional().describe("ISO 8601."),
14407
+ error: z62.string().optional().describe("Present when the step failed."),
14408
+ toolCalls: z62.array(runToolCallSchema).optional(),
14409
+ result: z62.unknown().optional().describe("The raw step output. Only with `full`."),
14410
+ generatedCode: z62.string().optional().describe("The code a code step ran. Only with `full`."),
14411
+ debugReason: z62.enum(AUTOMATION_RUN_DEBUG_REASONS).optional().describe("Why the step ended without doing its work. Only with `full`.")
14384
14412
  });
14385
14413
  var runDetailSchema = runSummarySchema.extend({
14386
- status: z61.enum([...AUTOMATION_RUN_STATUSES, "data-expired"]).describe("`data-expired` means the run happened but its details have been purged."),
14387
- result: z61.object({ type: z61.literal("markdown"), text: z61.string() }).optional().describe("What the automation produced. Present once a run has a result."),
14388
- steps: z61.array(runStepSchema)
14414
+ status: z62.enum([...AUTOMATION_RUN_STATUSES, "data-expired"]).describe("`data-expired` means the run happened but its details have been purged."),
14415
+ result: z62.object({ type: z62.literal("markdown"), text: z62.string() }).optional().describe("What the automation produced. Present once a run has a result."),
14416
+ steps: z62.array(runStepSchema)
14389
14417
  });
14390
14418
  var draftTestRunSchema = runDetailSchema.omit({ automationId: true, triggeredBy: true }).extend({
14391
- draftId: z61.string(),
14392
- automationId: z61.string().optional().describe("The automation an edit draft updates. Absent for a new automation."),
14393
- connectorCalls: z61.literal("mocked").describe(
14419
+ draftId: z62.string(),
14420
+ automationId: z62.string().optional().describe("The automation an edit draft updates. Absent for a new automation."),
14421
+ connectorCalls: z62.literal("mocked").describe(
14394
14422
  "Every connector call was simulated by a model; nothing reached the user's services."
14395
14423
  ),
14396
- failedStep: z61.object({ stepId: z61.string(), description: z61.string(), error: z61.string().optional() }).optional().describe("The first step that failed and its error. Prefer it to failureReason.")
14397
- });
14398
- var connectorCapabilitySchema = z61.enum(CONNECTOR_CAPABILITIES);
14399
- var connectorSummarySchema = z61.object({
14400
- id: z61.string().describe('A stable slug such as "github".'),
14401
- name: z61.string(),
14402
- description: z61.string(),
14403
- capabilities: z61.array(connectorCapabilitySchema).describe('"mcp": automations can call it; "trigger": its events can start automations.'),
14404
- requiresConnection: z61.boolean().describe("Whether the user must link an account before automations can use it."),
14405
- isSystem: z61.boolean().optional().describe("Present when the connector is a built-in Todoist service."),
14406
- isManaged: z61.boolean().optional().describe("Present when one linked identity covers every capability, as with WhatsApp.")
14407
- });
14408
- var connectorConnectionSummarySchema = z61.object({
14409
- id: z61.string(),
14410
- status: z61.enum(CONNECTION_STATUSES).optional(),
14411
- capabilities: z61.array(connectorCapabilitySchema).describe("What this connection is authorised for."),
14412
- createdAt: z61.string().optional().describe("ISO 8601.")
14424
+ failedStep: z62.object({ stepId: z62.string(), description: z62.string(), error: z62.string().optional() }).optional().describe("The first step that failed and its error. Prefer it to failureReason.")
14425
+ });
14426
+ var connectorCapabilitySchema = z62.enum(CONNECTOR_CAPABILITIES);
14427
+ var connectorSummarySchema = z62.object({
14428
+ id: z62.string().describe('A stable slug such as "github".'),
14429
+ name: z62.string(),
14430
+ description: z62.string(),
14431
+ capabilities: z62.array(connectorCapabilitySchema).describe('"mcp": automations can call it; "trigger": its events can start automations.'),
14432
+ requiresConnection: z62.boolean().describe("Whether the user must link an account before automations can use it."),
14433
+ isSystem: z62.boolean().optional().describe("Present when the connector is a built-in Todoist service."),
14434
+ isManaged: z62.boolean().optional().describe("Present when one linked identity covers every capability, as with WhatsApp.")
14435
+ });
14436
+ var connectorConnectionSummarySchema = z62.object({
14437
+ id: z62.string(),
14438
+ status: z62.enum(CONNECTION_STATUSES).optional(),
14439
+ capabilities: z62.array(connectorCapabilitySchema).describe("What this connection is authorised for."),
14440
+ createdAt: z62.string().optional().describe("ISO 8601.")
14413
14441
  });
14414
14442
  var connectionSummarySchema = connectorConnectionSummarySchema.extend({
14415
- name: z61.string(),
14416
- accountDisplayLabel: z61.string().optional().describe("The account on the service, as the user would recognise it.")
14443
+ name: z62.string(),
14444
+ accountDisplayLabel: z62.string().optional().describe("The account on the service, as the user would recognise it.")
14417
14445
  });
14418
14446
  var connectionDetailSchema = connectionSummarySchema.extend({
14419
- connectorId: z61.string().describe('The connector slug, such as "github".')
14447
+ connectorId: z62.string().describe('The connector slug, such as "github".')
14420
14448
  });
14421
- var connectionSetupSchema = z61.discriminatedUnion("kind", [
14422
- z61.object({
14423
- kind: z61.literal("oauth").describe("The user opens the link and signs in."),
14424
- authorizationUrl: z61.string()
14449
+ var connectionSetupSchema = z62.discriminatedUnion("kind", [
14450
+ z62.object({
14451
+ kind: z62.literal("oauth").describe("The user opens the link and signs in."),
14452
+ authorizationUrl: z62.string()
14425
14453
  }),
14426
- z61.object({
14427
- kind: z61.literal("managed").describe("The user follows the instructions with the code."),
14428
- instructions: z61.string(),
14429
- code: z61.string(),
14430
- deepLinkUrl: z61.string().optional().describe("Opens the service with the code filled in, when it has one."),
14431
- expiresAt: z61.string().describe("ISO 8601. The code stops working after it.")
14454
+ z62.object({
14455
+ kind: z62.literal("managed").describe("The user follows the instructions with the code."),
14456
+ instructions: z62.string(),
14457
+ code: z62.string(),
14458
+ deepLinkUrl: z62.string().optional().describe("Opens the service with the code filled in, when it has one."),
14459
+ expiresAt: z62.string().describe("ISO 8601. The code stops working after it.")
14432
14460
  })
14433
14461
  ]);
14434
- var blockingAutomationSchema = z61.object({
14435
- id: z61.string(),
14436
- name: z61.string()
14462
+ var blockingAutomationSchema = z62.object({
14463
+ id: z62.string(),
14464
+ name: z62.string()
14437
14465
  });
14438
14466
  var affectedAutomationSchema = blockingAutomationSchema.extend({
14439
- enabled: z61.boolean()
14467
+ enabled: z62.boolean()
14440
14468
  });
14441
- var triggerEventSchema = z61.object({
14442
- id: z61.string(),
14443
- name: z61.string(),
14444
- description: z61.string()
14469
+ var triggerEventSchema = z62.object({
14470
+ id: z62.string(),
14471
+ name: z62.string(),
14472
+ description: z62.string()
14445
14473
  });
14446
14474
  var connectorDetailSchema = connectorSummarySchema.extend({
14447
- triggerEvents: z61.array(triggerEventSchema).optional().describe("The events that can start an automation. Present for trigger connectors.")
14448
- });
14449
- var dependentAutomationSchema = z61.object({
14450
- id: z61.string(),
14451
- name: z61.string(),
14452
- description: z61.string().optional(),
14453
- enabled: z61.boolean(),
14454
- connectorStatus: z61.enum(["ready", "attention", "missing"]).describe("Whether the automation has a working connection for this connector."),
14455
- requiredConnectionTypes: z61.array(z61.enum(CONNECTION_TYPES))
14456
- });
14457
- var conversationSummarySchema = z61.object({
14458
- id: z61.string(),
14459
- title: z61.string().optional().describe("Absent until the agent has named the conversation."),
14460
- status: z61.enum(["active", "archived"]).describe("Publishing an automation archives its conversation."),
14461
- archivedAt: z61.string().optional().describe("ISO 8601. Present when archived."),
14462
- workspaceId: z61.string().optional().describe("The workspace the conversation was started in. Absent for personal ones."),
14463
- createdAt: z61.string().describe("ISO 8601."),
14464
- updatedAt: z61.string().describe("ISO 8601.")
14465
- });
14466
- var conversationMessageSchema = z61.object({
14467
- id: z61.string(),
14468
- role: z61.string().describe('"user", "assistant" or "system".'),
14469
- text: z61.string().optional().describe("The visible text. Absent when the message had none."),
14470
- partTypes: z61.array(z61.string()).optional().describe(
14475
+ triggerEvents: z62.array(triggerEventSchema).optional().describe("The events that can start an automation. Present for trigger connectors.")
14476
+ });
14477
+ var dependentAutomationSchema = z62.object({
14478
+ id: z62.string(),
14479
+ name: z62.string(),
14480
+ description: z62.string().optional(),
14481
+ enabled: z62.boolean(),
14482
+ connectorStatus: z62.enum(["ready", "attention", "missing"]).describe("Whether the automation has a working connection for this connector."),
14483
+ requiredConnectionTypes: z62.array(z62.enum(CONNECTION_TYPES))
14484
+ });
14485
+ var conversationSummarySchema = z62.object({
14486
+ id: z62.string(),
14487
+ title: z62.string().optional().describe("Absent until the agent has named the conversation."),
14488
+ status: z62.enum(["active", "archived"]).describe("Publishing an automation archives its conversation."),
14489
+ archivedAt: z62.string().optional().describe("ISO 8601. Present when archived."),
14490
+ workspaceId: z62.string().optional().describe("The workspace the conversation was started in. Absent for personal ones."),
14491
+ createdAt: z62.string().describe("ISO 8601."),
14492
+ updatedAt: z62.string().describe("ISO 8601.")
14493
+ });
14494
+ var conversationMessageSchema = z62.object({
14495
+ id: z62.string(),
14496
+ role: z62.string().describe('"user", "assistant" or "system".'),
14497
+ text: z62.string().optional().describe("The visible text. Absent when the message had none."),
14498
+ partTypes: z62.array(z62.string()).optional().describe(
14471
14499
  'The kinds of content the message held, such as "tool-select-connections". Present only when there is no visible text.'
14472
14500
  )
14473
14501
  });
14474
- var pendingActionSchema = z61.object({
14475
- kind: z61.enum(["select_connections", "enable_push"]).describe(
14502
+ var pendingActionSchema = z62.object({
14503
+ kind: z62.enum(["select_connections", "enable_push"]).describe(
14476
14504
  '"select_connections": the agent needs an account chosen for each service listed. "enable_push": the user must enable push notifications in a Todoist app.'
14477
14505
  ),
14478
- toolCallId: z61.string(),
14479
- draftId: z61.string().optional().describe("The draft the action concerns."),
14480
- connections: z61.array(ConnectionItemSchema).optional().describe("The services needing an account. Present for select_connections.")
14506
+ toolCallId: z62.string(),
14507
+ draftId: z62.string().optional().describe("The draft the action concerns."),
14508
+ connections: z62.array(ConnectionItemSchema).optional().describe("The services needing an account. Present for select_connections.")
14481
14509
  });
14482
14510
  var TURN_OUTCOMES = [
14483
14511
  "awaiting_input",
@@ -14485,12 +14513,12 @@ var TURN_OUTCOMES = [
14485
14513
  "published"
14486
14514
  ];
14487
14515
  var turnRequirementSchema = ConnectionItemSchema.extend({
14488
- availableConnections: z61.array(z61.object({ id: z61.string(), label: z61.string() })).describe(
14516
+ availableConnections: z62.array(z62.object({ id: z62.string(), label: z62.string() })).describe(
14489
14517
  "Authorised connections that could satisfy it. Several: pick one with the user. None: a connection was created, see setup."
14490
14518
  ),
14491
- setup: z61.object({
14492
- connectionId: z61.string(),
14493
- resumed: z61.boolean().describe(
14519
+ setup: z62.object({
14520
+ connectionId: z62.string(),
14521
+ resumed: z62.boolean().describe(
14494
14522
  "True when an existing pending connection was picked up rather than created."
14495
14523
  ),
14496
14524
  setup: connectionSetupSchema.optional().describe(
@@ -14498,30 +14526,30 @@ var turnRequirementSchema = ConnectionItemSchema.extend({
14498
14526
  )
14499
14527
  }).optional().describe("Present when a connection was created for the user to authorise.")
14500
14528
  });
14501
- var turnPendingActionSchema = z61.discriminatedUnion("kind", [
14502
- z61.object({
14503
- kind: z61.literal("select_connections").describe("The agent needs an account chosen or authorised for each requirement."),
14504
- toolCallId: z61.string(),
14505
- draftId: z61.string(),
14506
- requirements: z61.array(turnRequirementSchema)
14529
+ var turnPendingActionSchema = z62.discriminatedUnion("kind", [
14530
+ z62.object({
14531
+ kind: z62.literal("select_connections").describe("The agent needs an account chosen or authorised for each requirement."),
14532
+ toolCallId: z62.string(),
14533
+ draftId: z62.string(),
14534
+ requirements: z62.array(turnRequirementSchema)
14507
14535
  }),
14508
- z61.object({
14509
- kind: z61.literal("enable_push").describe(
14536
+ z62.object({
14537
+ kind: z62.literal("enable_push").describe(
14510
14538
  "The user must enable push notifications in a Todoist app, then the caller continues."
14511
14539
  ),
14512
- toolCallId: z61.string(),
14513
- draftId: z61.string().optional()
14540
+ toolCallId: z62.string(),
14541
+ draftId: z62.string().optional()
14514
14542
  })
14515
14543
  ]);
14516
14544
  var turnResultSchema = {
14517
- conversationId: z61.string(),
14518
- outcome: z61.enum(TURN_OUTCOMES).describe(
14545
+ conversationId: z62.string(),
14546
+ outcome: z62.enum(TURN_OUTCOMES).describe(
14519
14547
  '"awaiting_input": the assistant replied and waits for a message. "action_required": see pendingAction. "published": an automation now exists.'
14520
14548
  ),
14521
- assistantText: z61.string().describe("What the assistant said this turn."),
14522
- automationId: z61.string().optional().describe("Present when published."),
14523
- conversationArchived: z61.boolean().optional().describe("Present when published: whether the conversation was archived afterwards."),
14524
- conversationArchiveError: z61.string().optional().describe("Why archiving failed. The automation was still published."),
14549
+ assistantText: z62.string().describe("What the assistant said this turn."),
14550
+ automationId: z62.string().optional().describe("Present when published."),
14551
+ conversationArchived: z62.boolean().optional().describe("Present when published: whether the conversation was archived afterwards."),
14552
+ conversationArchiveError: z62.string().optional().describe("Why archiving failed. The automation was still published."),
14525
14553
  pendingAction: turnPendingActionSchema.optional().describe("Present when action_required.")
14526
14554
  };
14527
14555
  function summarizeRunOutcome(dto) {
@@ -14837,7 +14865,7 @@ var ToolNames = {
14837
14865
 
14838
14866
  // src/tools/check-connection.ts
14839
14867
  var parameters = {
14840
- connectionId: z62.string().describe(
14868
+ connectionId: z63.string().describe(
14841
14869
  "The id returned by connect-service or repair-connection, or listed by get-connector."
14842
14870
  )
14843
14871
  };
@@ -14876,14 +14904,14 @@ function describeStatus(connection, setup) {
14876
14904
  }
14877
14905
 
14878
14906
  // src/tools/connect-draft.ts
14879
- import { z as z64 } from "zod";
14907
+ import { z as z65 } from "zod";
14880
14908
 
14881
14909
  // src/utils/workspace-scope.ts
14882
- import { z as z63 } from "zod";
14883
- var workspaceIdParameter = z63.string().optional().describe(
14910
+ import { z as z64 } from "zod";
14911
+ var workspaceIdParameter = z64.string().optional().describe(
14884
14912
  "Act on this Todoist workspace. Omit for the personal space. The two are separate: a workspace automation is not found in the personal space, and vice versa."
14885
14913
  );
14886
- var requiredWorkspaceIdParameter = z63.string().describe("The Todoist workspace, as returned by list-workspaces.");
14914
+ var requiredWorkspaceIdParameter = z64.string().describe("The Todoist workspace, as returned by list-workspaces.");
14887
14915
  function describeVisibility(visibility) {
14888
14916
  return visibility === "workspace" ? "visible to the workspace" : "private to its creator";
14889
14917
  }
@@ -14893,36 +14921,36 @@ function describeScope(workspaceId) {
14893
14921
 
14894
14922
  // src/tools/connect-draft.ts
14895
14923
  var parameters2 = {
14896
- draftId: z64.string().describe("The draft to connect, as listed by find-drafts or get-draft."),
14897
- connections: z64.array(
14898
- z64.object({
14899
- connectorId: z64.string().describe("A connector the draft uses, such as slack."),
14924
+ draftId: z65.string().describe("The draft to connect, as listed by find-drafts or get-draft."),
14925
+ connections: z65.array(
14926
+ z65.object({
14927
+ connectorId: z65.string().describe("A connector the draft uses, such as slack."),
14900
14928
  connectionType: connectorCapabilitySchema.optional().describe("Omit to bind every type the draft needs from that connector."),
14901
- connectionId: z64.string().describe(
14929
+ connectionId: z65.string().describe(
14902
14930
  "One of the user's authorised connections, from get-connector or check-connection."
14903
14931
  )
14904
14932
  })
14905
14933
  ).optional().describe("Bind these accounts. Replaces any binding the slot already has."),
14906
- auto: z64.boolean().optional().describe(
14934
+ auto: z65.boolean().optional().describe(
14907
14935
  "Fill each required slot with nothing bound when the user has exactly one authorised connection for it. Never replaces a binding that is expired or unauthorised."
14908
14936
  ),
14909
14937
  workspaceId: workspaceIdParameter
14910
14938
  };
14911
- var slot = { connectorId: z64.string(), connectionType: z64.enum(CONNECTION_TYPES) };
14939
+ var slot = { connectorId: z65.string(), connectionType: z65.enum(CONNECTION_TYPES) };
14912
14940
  var outputSchema2 = {
14913
- bound: z64.array(
14914
- z64.object({ ...slot, connectionId: z64.string(), mode: z64.enum(["explicit", "auto"]) })
14941
+ bound: z65.array(
14942
+ z65.object({ ...slot, connectionId: z65.string(), mode: z65.enum(["explicit", "auto"]) })
14915
14943
  ),
14916
- unresolved: z64.array(
14917
- z64.object({
14944
+ unresolved: z65.array(
14945
+ z65.object({
14918
14946
  ...slot,
14919
- reason: z64.enum(["no_connection", "multiple_connections"]),
14920
- candidateConnectionIds: z64.array(z64.string())
14947
+ reason: z65.enum(["no_connection", "multiple_connections"]),
14948
+ candidateConnectionIds: z65.array(z65.string())
14921
14949
  })
14922
14950
  ).describe(
14923
14951
  "Slots auto could not fill. no_connection: the user must connect-service first. multiple_connections: ask the user which account, then pass it in connections."
14924
14952
  ),
14925
- isValid: z64.boolean().describe("Whether every connection the draft needs is bound and usable."),
14953
+ isValid: z65.boolean().describe("Whether every connection the draft needs is bound and usable."),
14926
14954
  missing: AutomationDraftConnectionValidationSchema.shape.missing.describe(
14927
14955
  "What is still not connected, and why."
14928
14956
  )
@@ -14977,19 +15005,19 @@ function describeUnresolved(slot2) {
14977
15005
  }
14978
15006
 
14979
15007
  // src/tools/connect-service.ts
14980
- import { z as z65 } from "zod";
15008
+ import { z as z66 } from "zod";
14981
15009
  var parameters3 = {
14982
- connectorId: z65.string().describe('The connector slug, such as "github", as listed by find-connectors.'),
15010
+ connectorId: z66.string().describe('The connector slug, such as "github", as listed by find-connectors.'),
14983
15011
  capability: connectorCapabilitySchema.describe(
14984
15012
  '"mcp" lets automations call the service; "trigger" lets its events start automations. get-connector shows which the connector offers.'
14985
15013
  )
14986
15014
  };
14987
15015
  var outputSchema3 = {
14988
- connectionId: z65.string(),
14989
- connectorId: z65.string(),
14990
- serviceName: z65.string(),
15016
+ connectionId: z66.string(),
15017
+ connectorId: z66.string(),
15018
+ serviceName: z66.string(),
14991
15019
  capability: connectorCapabilitySchema,
14992
- status: z65.enum(["pending", "authorized"]).describe(
15020
+ status: z66.enum(["pending", "authorized"]).describe(
14993
15021
  '"pending" until the user completes the setup; "authorized" when nothing was needed.'
14994
15022
  ),
14995
15023
  setup: connectionSetupSchema.optional().describe("What the user must complete. Absent when authorized.")
@@ -15039,7 +15067,7 @@ var connectService = {
15039
15067
  };
15040
15068
 
15041
15069
  // src/tools/continue-conversation.ts
15042
- import { z as z66 } from "zod";
15070
+ import { z as z67 } from "zod";
15043
15071
 
15044
15072
  // src/utils/progress.ts
15045
15073
  var PROGRESS_INTERVAL_MS = 1e4;
@@ -15160,17 +15188,17 @@ function describeNextStep(result) {
15160
15188
  }
15161
15189
 
15162
15190
  // src/tools/continue-conversation.ts
15163
- var connectionSelectionSchema = z66.object({
15164
- connectorId: z66.string().describe("The connector the choice is for, as named in the requirement."),
15191
+ var connectionSelectionSchema = z67.object({
15192
+ connectorId: z67.string().describe("The connector the choice is for, as named in the requirement."),
15165
15193
  connectionType: connectorCapabilitySchema.optional().describe("Needed only when the same connector is required for both types."),
15166
- connectionId: z66.string().describe(
15194
+ connectionId: z67.string().describe(
15167
15195
  "An id from availableConnections, or one check-connection reports as authorized."
15168
15196
  )
15169
15197
  });
15170
15198
  var parameters4 = {
15171
- conversationId: z66.string().describe("From start-conversation or find-conversations."),
15172
- message: z66.string().min(1).optional().describe("The user's reply. Not allowed while the agent is waiting for connections."),
15173
- connections: z66.array(connectionSelectionSchema).optional().describe(
15199
+ conversationId: z67.string().describe("From start-conversation or find-conversations."),
15200
+ message: z67.string().min(1).optional().describe("The user's reply. Not allowed while the agent is waiting for connections."),
15201
+ connections: z67.array(connectionSelectionSchema).optional().describe(
15174
15202
  "Answers a select_connections action: one entry per requirement the user chose an account for. Omit both this and message to let the agent re-check for connections the user has since authorised."
15175
15203
  )
15176
15204
  };
@@ -15201,12 +15229,12 @@ var continueConversation = {
15201
15229
  };
15202
15230
 
15203
15231
  // src/tools/create-draft.ts
15204
- import { z as z67 } from "zod";
15232
+ import { z as z68 } from "zod";
15205
15233
  var parameters5 = {
15206
- manifest: z67.record(z67.string(), z67.unknown()).describe(
15234
+ manifest: z68.record(z68.string(), z68.unknown()).describe(
15207
15235
  "The automation manifest as JSON: manifestVersion, name, description, triggers, steps and the rest. get-automation shows the shape. May be partial; it is stored as written."
15208
15236
  ),
15209
- automationId: z67.string().optional().describe(
15237
+ automationId: z68.string().optional().describe(
15210
15238
  "Edit this published automation instead of creating a new one: publishing the draft then updates it in place. An automation has at most one open draft."
15211
15239
  ),
15212
15240
  workspaceId: workspaceIdParameter
@@ -15237,14 +15265,14 @@ var createDraft2 = {
15237
15265
  };
15238
15266
 
15239
15267
  // src/tools/delete-automation.ts
15240
- import { z as z68 } from "zod";
15268
+ import { z as z69 } from "zod";
15241
15269
  var parameters6 = {
15242
- automationId: z68.string().describe("The automation to delete, as listed by find-automations or get-automation."),
15270
+ automationId: z69.string().describe("The automation to delete, as listed by find-automations or get-automation."),
15243
15271
  workspaceId: workspaceIdParameter
15244
15272
  };
15245
15273
  var outputSchema5 = {
15246
- automationId: z68.string(),
15247
- deleted: z68.boolean()
15274
+ automationId: z69.string(),
15275
+ deleted: z69.boolean()
15248
15276
  };
15249
15277
  var deleteAutomation = {
15250
15278
  name: ToolNames.DELETE_AUTOMATION,
@@ -15267,14 +15295,14 @@ var deleteAutomation = {
15267
15295
  };
15268
15296
 
15269
15297
  // src/tools/delete-draft.ts
15270
- import { z as z69 } from "zod";
15298
+ import { z as z70 } from "zod";
15271
15299
  var parameters7 = {
15272
- draftId: z69.string().describe("The draft to delete, as listed by find-drafts or get-draft."),
15300
+ draftId: z70.string().describe("The draft to delete, as listed by find-drafts or get-draft."),
15273
15301
  workspaceId: workspaceIdParameter
15274
15302
  };
15275
15303
  var outputSchema6 = {
15276
- draftId: z69.string(),
15277
- deleted: z69.boolean()
15304
+ draftId: z70.string(),
15305
+ deleted: z70.boolean()
15278
15306
  };
15279
15307
  var deleteDraft = {
15280
15308
  name: ToolNames.DELETE_DRAFT,
@@ -15297,17 +15325,17 @@ var deleteDraft = {
15297
15325
  };
15298
15326
 
15299
15327
  // src/tools/disconnect-service.ts
15300
- import { z as z70 } from "zod";
15328
+ import { z as z71 } from "zod";
15301
15329
  var parameters8 = {
15302
- connectionId: z70.string().describe("The connection to remove, as listed by get-connector."),
15303
- force: z70.boolean().optional().describe(
15330
+ connectionId: z71.string().describe("The connection to remove, as listed by get-connector."),
15331
+ force: z71.boolean().optional().describe(
15304
15332
  "Disconnect even though enabled automations still use the connection. They stop working until a new connection is linked. Only after the user has agreed."
15305
15333
  )
15306
15334
  };
15307
15335
  var outputSchema7 = {
15308
- connectionId: z70.string(),
15309
- disconnected: z70.boolean(),
15310
- blockingAutomations: z70.array(blockingAutomationSchema).optional().describe(
15336
+ connectionId: z71.string(),
15337
+ disconnected: z71.boolean(),
15338
+ blockingAutomations: z71.array(blockingAutomationSchema).optional().describe(
15311
15339
  "Present when disconnected is false: the enabled automations that still use the connection."
15312
15340
  )
15313
15341
  };
@@ -15339,16 +15367,16 @@ var disconnectService = {
15339
15367
  };
15340
15368
 
15341
15369
  // src/tools/find-automations.ts
15342
- import { z as z72 } from "zod";
15370
+ import { z as z73 } from "zod";
15343
15371
 
15344
15372
  // src/utils/pagination.ts
15345
- import { z as z71 } from "zod";
15373
+ import { z as z72 } from "zod";
15346
15374
  var paginationParameters = {
15347
- cursor: z71.string().optional().describe("Cursor from a previous call to fetch the next page. Omit for the first page."),
15348
- limit: z71.number().int().min(1).max(MAX_PAGINATION_LIMIT).optional().describe(`Page size, at most ${MAX_PAGINATION_LIMIT}. Omit for the default.`)
15375
+ cursor: z72.string().optional().describe("Cursor from a previous call to fetch the next page. Omit for the first page."),
15376
+ limit: z72.number().int().min(1).max(MAX_PAGINATION_LIMIT).optional().describe(`Page size, at most ${MAX_PAGINATION_LIMIT}. Omit for the default.`)
15349
15377
  };
15350
15378
  var paginationOutput = {
15351
- nextCursor: z71.string().optional().describe("Pass as `cursor` to fetch the next page. Absent when this page is the last.")
15379
+ nextCursor: z72.string().optional().describe("Pass as `cursor` to fetch the next page. Absent when this page is the last.")
15352
15380
  };
15353
15381
 
15354
15382
  // src/tools/find-automations.ts
@@ -15357,7 +15385,7 @@ var parameters9 = {
15357
15385
  ...paginationParameters
15358
15386
  };
15359
15387
  var outputSchema8 = {
15360
- automations: z72.array(automationSummarySchema),
15388
+ automations: z73.array(automationSummarySchema),
15361
15389
  ...paginationOutput
15362
15390
  };
15363
15391
  var findAutomations = {
@@ -15386,26 +15414,26 @@ var findAutomations = {
15386
15414
  };
15387
15415
 
15388
15416
  // src/tools/find-connectors.ts
15389
- import { z as z73 } from "zod";
15417
+ import { z as z74 } from "zod";
15390
15418
  var parameters10 = {
15391
- query: z73.string().optional().describe("Text to match against connector names and descriptions. Ids are not searched."),
15419
+ query: z74.string().optional().describe("Text to match against connector names and descriptions. Ids are not searched."),
15392
15420
  capability: connectorCapabilitySchema.optional().describe(
15393
15421
  "Only connectors offering this capability. Does not narrow the connections listed under each."
15394
15422
  ),
15395
- connectionStatus: z73.enum(CONNECTION_STATUSES).optional().describe(
15423
+ connectionStatus: z74.enum(CONNECTION_STATUSES).optional().describe(
15396
15424
  "Only connectors the user has a connection in this state for. With `capability`, the same connection must cover that capability."
15397
15425
  ),
15398
- withoutConnections: z73.boolean().optional().describe(
15426
+ withoutConnections: z74.boolean().optional().describe(
15399
15427
  "Only connectors the user has no connection for. Cannot combine with connectionStatus."
15400
15428
  ),
15401
- includeConnections: z73.boolean().optional().describe(
15429
+ includeConnections: z74.boolean().optional().describe(
15402
15430
  "Whether to list the user's connections under each connector. Defaults to true; false skips the lookup and disables the connection filters."
15403
15431
  )
15404
15432
  };
15405
15433
  var outputSchema9 = {
15406
- connectors: z73.array(
15434
+ connectors: z74.array(
15407
15435
  connectorSummarySchema.extend({
15408
- connections: z73.array(connectorConnectionSummarySchema).optional().describe(
15436
+ connections: z74.array(connectorConnectionSummarySchema).optional().describe(
15409
15437
  "The user's connections for this connector. Absent when includeConnections is false."
15410
15438
  )
15411
15439
  })
@@ -15448,14 +15476,14 @@ var findConnectors = {
15448
15476
  };
15449
15477
 
15450
15478
  // src/tools/find-conversations.ts
15451
- import { z as z74 } from "zod";
15479
+ import { z as z75 } from "zod";
15452
15480
  var parameters11 = {
15453
15481
  status: chatConversationStatusSchema.optional().describe(
15454
15482
  'Defaults to "active". Publishing an automation archives its conversation, so pass "archived" or "all" to find the conversation behind a published automation.'
15455
15483
  ),
15456
- limit: z74.number().int().min(1).max(200).optional().describe("At most this many, newest first. Defaults to 10.")
15484
+ limit: z75.number().int().min(1).max(200).optional().describe("At most this many, newest first. Defaults to 10.")
15457
15485
  };
15458
- var outputSchema10 = { conversations: z74.array(conversationSummarySchema) };
15486
+ var outputSchema10 = { conversations: z75.array(conversationSummarySchema) };
15459
15487
  var findConversations = {
15460
15488
  name: ToolNames.FIND_CONVERSATIONS,
15461
15489
  description: "Lists the user's conversations with the Automations agent, newest first. A conversation is one authoring session: it writes to a draft and ends when the automation is published. Use it to find a session to resume or to read; get-conversation has the messages and whether the agent is waiting on something.",
@@ -15474,13 +15502,13 @@ var findConversations = {
15474
15502
  };
15475
15503
 
15476
15504
  // src/tools/find-drafts.ts
15477
- import { z as z75 } from "zod";
15505
+ import { z as z76 } from "zod";
15478
15506
  var parameters12 = {
15479
15507
  workspaceId: workspaceIdParameter,
15480
15508
  ...paginationParameters
15481
15509
  };
15482
15510
  var outputSchema11 = {
15483
- drafts: z75.array(draftSummarySchema),
15511
+ drafts: z76.array(draftSummarySchema),
15484
15512
  ...paginationOutput
15485
15513
  };
15486
15514
  var findDrafts = {
@@ -15509,11 +15537,11 @@ var findDrafts = {
15509
15537
  };
15510
15538
 
15511
15539
  // src/tools/find-runs.ts
15512
- import { z as z76 } from "zod";
15540
+ import { z as z77 } from "zod";
15513
15541
  var parameters13 = {
15514
- automationId: z76.string().describe("The id of the automation, as returned by find-automations."),
15542
+ automationId: z77.string().describe("The id of the automation, as returned by find-automations."),
15515
15543
  workspaceId: workspaceIdParameter,
15516
- status: z76.enum(AUTOMATION_RUN_STATUSES).optional().describe(
15544
+ status: z77.enum(AUTOMATION_RUN_STATUSES).optional().describe(
15517
15545
  "Only runs with this outcome. A run refused for an empty balance is `skipped`, not `failed`."
15518
15546
  ),
15519
15547
  since: isoDateTimeOrDateQueryParamSchema.optional().describe(
@@ -15524,7 +15552,7 @@ var parameters13 = {
15524
15552
  ),
15525
15553
  ...paginationParameters
15526
15554
  };
15527
- var outputSchema12 = { runs: z76.array(runSummarySchema), ...paginationOutput };
15555
+ var outputSchema12 = { runs: z77.array(runSummarySchema), ...paginationOutput };
15528
15556
  var findRuns = {
15529
15557
  name: ToolNames.FIND_RUNS,
15530
15558
  description: "Lists the runs of one automation, newest first, one page at a time, with the outcome and failure reason of each. Use it to see whether an automation has been running and how it ended; get-run gives the steps of one run. Filters apply to when the run started.",
@@ -15548,15 +15576,15 @@ var findRuns = {
15548
15576
  };
15549
15577
 
15550
15578
  // src/tools/get-automation.ts
15551
- import { z as z77 } from "zod";
15579
+ import { z as z78 } from "zod";
15552
15580
  var parameters14 = {
15553
- automationId: z77.string().describe("The id of the automation, as returned by find-automations."),
15581
+ automationId: z78.string().describe("The id of the automation, as returned by find-automations."),
15554
15582
  workspaceId: workspaceIdParameter
15555
15583
  };
15556
15584
  var outputSchema13 = {
15557
15585
  automation: automationSummarySchema.extend({
15558
- draftId: z77.string().optional().describe("The draft holding unpublished edits to this automation, when there is one."),
15559
- manifest: z77.record(z77.string(), z77.unknown()).optional().describe(
15586
+ draftId: z78.string().optional().describe("The draft holding unpublished edits to this automation, when there is one."),
15587
+ manifest: z78.record(z78.string(), z78.unknown()).optional().describe(
15560
15588
  "The stored manifest: triggers, steps and settings. Absent when there is none."
15561
15589
  )
15562
15590
  })
@@ -15588,17 +15616,17 @@ var getAutomation = {
15588
15616
  };
15589
15617
 
15590
15618
  // src/tools/get-connector.ts
15591
- import { z as z78 } from "zod";
15619
+ import { z as z79 } from "zod";
15592
15620
  var parameters15 = {
15593
- connectorId: z78.string().describe('The connector slug, such as "github", as listed by find-connectors.'),
15594
- includeAutomations: z78.boolean().optional().describe(
15621
+ connectorId: z79.string().describe('The connector slug, such as "github", as listed by find-connectors.'),
15622
+ includeAutomations: z79.boolean().optional().describe(
15595
15623
  "Also list the published automations that use this connector, with whether each has a working connection."
15596
15624
  )
15597
15625
  };
15598
15626
  var outputSchema14 = {
15599
15627
  connector: connectorDetailSchema,
15600
- connections: z78.array(connectionSummarySchema).describe("The user's connections for this connector. Empty when none is linked."),
15601
- automations: z78.array(dependentAutomationSchema).optional().describe("Present when includeAutomations is true.")
15628
+ connections: z79.array(connectionSummarySchema).describe("The user's connections for this connector. Empty when none is linked."),
15629
+ automations: z79.array(dependentAutomationSchema).optional().describe("Present when includeAutomations is true.")
15602
15630
  };
15603
15631
  var getConnector = {
15604
15632
  name: ToolNames.GET_CONNECTOR,
@@ -15633,13 +15661,13 @@ var getConnector = {
15633
15661
  };
15634
15662
 
15635
15663
  // src/tools/get-conversation.ts
15636
- import { z as z79 } from "zod";
15664
+ import { z as z80 } from "zod";
15637
15665
  var parameters16 = {
15638
- conversationId: z79.string().describe("The id of the conversation, as returned by find-conversations.")
15666
+ conversationId: z80.string().describe("The id of the conversation, as returned by find-conversations.")
15639
15667
  };
15640
15668
  var outputSchema15 = {
15641
15669
  conversation: conversationSummarySchema,
15642
- messages: z79.array(conversationMessageSchema).describe("In order, oldest first."),
15670
+ messages: z80.array(conversationMessageSchema).describe("In order, oldest first."),
15643
15671
  pendingAction: pendingActionSchema.optional().describe(
15644
15672
  "What the agent is waiting on before the conversation can continue. Absent when it is waiting on a plain reply, or on nothing."
15645
15673
  )
@@ -15687,26 +15715,26 @@ function describePendingAction(action) {
15687
15715
  }
15688
15716
 
15689
15717
  // src/tools/get-draft.ts
15690
- import { z as z80 } from "zod";
15718
+ import { z as z81 } from "zod";
15691
15719
  var parameters17 = {
15692
- draftId: z80.string().describe("The id of the draft, as returned by find-drafts."),
15693
- publishPreview: z80.boolean().optional().describe(
15720
+ draftId: z81.string().describe("The id of the draft, as returned by find-drafts."),
15721
+ publishPreview: z81.boolean().optional().describe(
15694
15722
  "Also return what publish-draft would do: the target, enabled state, connections, schedule and, for an edit draft, the diff against the published automation."
15695
15723
  ),
15696
15724
  workspaceId: workspaceIdParameter
15697
15725
  };
15698
- var publishPreviewSchema = z80.object({
15699
- automationId: z80.string().optional().describe("The automation an edit draft updates. Absent when publishing creates one."),
15700
- workspaceId: z80.string().optional(),
15701
- visibility: z80.enum(AUTOMATION_VISIBILITIES).optional().describe("What a workspace automation will be once published."),
15702
- enabled: z80.boolean().describe(
15726
+ var publishPreviewSchema = z81.object({
15727
+ automationId: z81.string().optional().describe("The automation an edit draft updates. Absent when publishing creates one."),
15728
+ workspaceId: z81.string().optional(),
15729
+ visibility: z81.enum(AUTOMATION_VISIBILITIES).optional().describe("What a workspace automation will be once published."),
15730
+ enabled: z81.boolean().describe(
15703
15731
  "Whether it runs once published: a new automation starts enabled, an edit keeps its state."
15704
15732
  ),
15705
- connections: z80.object({
15706
- isValid: z80.boolean(),
15733
+ connections: z81.object({
15734
+ isValid: z81.boolean(),
15707
15735
  missing: AutomationDraftConnectionValidationSchema.shape.missing
15708
15736
  }),
15709
- schedule: z80.string().optional().describe("The schedule in words, when it runs on one."),
15737
+ schedule: z81.string().optional().describe("The schedule in words, when it runs on one."),
15710
15738
  diff: manifestDiffSchema.optional().describe("How an edit draft differs from the published automation.")
15711
15739
  });
15712
15740
  var outputSchema16 = {
@@ -15768,12 +15796,12 @@ function describeTarget(name, preview) {
15768
15796
  }
15769
15797
 
15770
15798
  // src/tools/get-run.ts
15771
- import { z as z81 } from "zod";
15799
+ import { z as z82 } from "zod";
15772
15800
  var parameters18 = {
15773
- automationId: z81.string().describe("The id of the automation, as returned by find-automations."),
15774
- runId: z81.string().describe("The id of the run, as returned by find-runs."),
15801
+ automationId: z82.string().describe("The id of the automation, as returned by find-automations."),
15802
+ runId: z82.string().describe("The id of the run, as returned by find-runs."),
15775
15803
  workspaceId: workspaceIdParameter,
15776
- full: z81.boolean().optional().describe(
15804
+ full: z82.boolean().optional().describe(
15777
15805
  "Also return each step's raw result and generated code. The payload can be large; omit it unless the compact diagnostic is not enough."
15778
15806
  )
15779
15807
  };
@@ -15812,12 +15840,12 @@ function describeRun(run) {
15812
15840
  }
15813
15841
 
15814
15842
  // src/tools/get-test-run.ts
15815
- import { z as z82 } from "zod";
15843
+ import { z as z83 } from "zod";
15816
15844
  var parameters19 = {
15817
- draftId: z82.string().describe("The draft the test run belongs to."),
15818
- testRunId: z82.string().describe("The test run's id, from starting the test."),
15845
+ draftId: z83.string().describe("The draft the test run belongs to."),
15846
+ testRunId: z83.string().describe("The test run's id, from starting the test."),
15819
15847
  workspaceId: workspaceIdParameter,
15820
- full: z82.boolean().optional().describe(
15848
+ full: z83.boolean().optional().describe(
15821
15849
  "Also return each step's raw result and generated code. The payload can be large; omit it unless the compact diagnostic is not enough."
15822
15850
  )
15823
15851
  };
@@ -15852,16 +15880,16 @@ function describeTestRun(run) {
15852
15880
  }
15853
15881
 
15854
15882
  // src/tools/list-workspaces.ts
15855
- import { z as z83 } from "zod";
15883
+ import { z as z84 } from "zod";
15856
15884
  var parameters20 = {};
15857
15885
  var outputSchema19 = {
15858
- workspaces: z83.array(
15859
- z83.object({
15860
- id: z83.string(),
15861
- name: z83.string(),
15862
- plan: z83.enum(WORKSPACE_PLANS),
15863
- role: z83.enum(WORKSPACE_ROLES).describe("The user\u2019s role in the workspace."),
15864
- access: z83.enum(WORKSPACE_ACCESS_LEVELS).describe(
15886
+ workspaces: z84.array(
15887
+ z84.object({
15888
+ id: z84.string(),
15889
+ name: z84.string(),
15890
+ plan: z84.enum(WORKSPACE_PLANS),
15891
+ role: z84.enum(WORKSPACE_ROLES).describe("The user\u2019s role in the workspace."),
15892
+ access: z84.enum(WORKSPACE_ACCESS_LEVELS).describe(
15865
15893
  '"locked" means the plan does not cover Automations: the workspace is listed, but its automations cannot run and nothing can be created in it.'
15866
15894
  )
15867
15895
  })
@@ -15888,13 +15916,13 @@ var listWorkspaces = {
15888
15916
  };
15889
15917
 
15890
15918
  // src/tools/move-automation.ts
15891
- import { z as z84 } from "zod";
15919
+ import { z as z85 } from "zod";
15892
15920
  var parameters21 = {
15893
- automationId: z84.string().describe(
15921
+ automationId: z85.string().describe(
15894
15922
  "The id of the automation to move, as returned by find-automations. It may be a personal automation or one in another workspace."
15895
15923
  ),
15896
- workspaceId: z84.string().describe("The workspace to move it into, as returned by list-workspaces."),
15897
- visibility: z84.enum(AUTOMATION_VISIBILITIES).optional().describe(
15924
+ workspaceId: z85.string().describe("The workspace to move it into, as returned by list-workspaces."),
15925
+ visibility: z85.enum(AUTOMATION_VISIBILITIES).optional().describe(
15898
15926
  'How the automation is shared once moved. Defaults to "workspace", visible to every member; "private" keeps it to its creator.'
15899
15927
  )
15900
15928
  };
@@ -15921,19 +15949,19 @@ var moveAutomation = {
15921
15949
  };
15922
15950
 
15923
15951
  // src/tools/publish-draft.ts
15924
- import { z as z85 } from "zod";
15952
+ import { z as z86 } from "zod";
15925
15953
  var parameters22 = {
15926
- draftId: z85.string().describe("The draft to publish, as listed by find-drafts or get-draft."),
15954
+ draftId: z86.string().describe("The draft to publish, as listed by find-drafts or get-draft."),
15927
15955
  // A client holding an older schema still sends it; stripping it would publish a preview.
15928
- preview: z85.boolean().optional().describe("Not supported: true is refused. Preview with get-draft and publishPreview."),
15956
+ preview: z86.boolean().optional().describe("Not supported: true is refused. Preview with get-draft and publishPreview."),
15929
15957
  workspaceId: workspaceIdParameter
15930
15958
  };
15931
15959
  var outputSchema21 = {
15932
- automationId: z85.string().describe("The published automation; get-automation reads it."),
15933
- verification: z85.object({
15934
- status: z85.enum(["matched", "mismatched", "unavailable"]),
15960
+ automationId: z86.string().describe("The published automation; get-automation reads it."),
15961
+ verification: z86.object({
15962
+ status: z86.enum(["matched", "mismatched", "unavailable"]),
15935
15963
  mismatch: manifestDiffSchema.optional(),
15936
- reason: z85.string().optional().describe("Why reading the automation back failed.")
15964
+ reason: z86.string().optional().describe("Why reading the automation back failed.")
15937
15965
  }).describe(
15938
15966
  "The published manifest compared with the draft. Whatever the status, the automation was published."
15939
15967
  )
@@ -15991,27 +16019,27 @@ function describePublished(name, automationId, verification) {
15991
16019
  }
15992
16020
 
15993
16021
  // src/tools/repair-connection.ts
15994
- import { z as z86 } from "zod";
16022
+ import { z as z87 } from "zod";
15995
16023
  var parameters23 = {
15996
- connectionId: z86.string().describe(
16024
+ connectionId: z87.string().describe(
15997
16025
  "The connection to repair, as listed by get-connector or reported by check-connection."
15998
16026
  )
15999
16027
  };
16000
16028
  var outputSchema22 = {
16001
- connectionId: z86.string().describe("The connection to pass to check-connection next."),
16002
- connectorId: z86.string(),
16003
- serviceName: z86.string(),
16004
- resumed: z86.boolean().describe(
16029
+ connectionId: z87.string().describe("The connection to pass to check-connection next."),
16030
+ connectorId: z87.string(),
16031
+ serviceName: z87.string(),
16032
+ resumed: z87.boolean().describe(
16005
16033
  "True when the existing pending setup was returned; false when a replacement was started."
16006
16034
  ),
16007
- replacedConnectionId: z86.string().optional().describe(
16035
+ replacedConnectionId: z87.string().optional().describe(
16008
16036
  "The broken connection the replacement stands in for. Present when resumed is false."
16009
16037
  ),
16010
- status: z86.enum(["pending", "authorized"]).describe(
16038
+ status: z87.enum(["pending", "authorized"]).describe(
16011
16039
  '"pending" until the user completes the setup; "authorized" when nothing was needed.'
16012
16040
  ),
16013
16041
  setup: connectionSetupSchema.optional().describe("What the user must complete. Absent when authorized."),
16014
- automations: z86.array(affectedAutomationSchema).optional().describe(
16042
+ automations: z87.array(affectedAutomationSchema).optional().describe(
16015
16043
  "Personal automations that move to the replacement once it is authorised. Present when resumed is false."
16016
16044
  )
16017
16045
  };
@@ -16074,17 +16102,17 @@ var repairConnection = {
16074
16102
  };
16075
16103
 
16076
16104
  // src/tools/set-automation-schedule.ts
16077
- import { z as z87 } from "zod";
16105
+ import { z as z88 } from "zod";
16078
16106
  var parameters24 = {
16079
- automationId: z87.string().describe("The id of the automation, as returned by find-automations."),
16107
+ automationId: z88.string().describe("The id of the automation, as returned by find-automations."),
16080
16108
  workspaceId: workspaceIdParameter,
16081
- cron: z87.string().optional().describe(
16109
+ cron: z88.string().optional().describe(
16082
16110
  'A five-part cron expression such as "0 9 * * 1-5". Requires timezone. Use this or interval, not both.'
16083
16111
  ),
16084
- timezone: z87.string().optional().describe(
16112
+ timezone: z88.string().optional().describe(
16085
16113
  'The IANA zone the cron expression is read in, such as "Europe/London". Only with cron.'
16086
16114
  ),
16087
- interval: z87.string().optional().describe(
16115
+ interval: z88.string().optional().describe(
16088
16116
  'How often to run, as a number and unit: "45m", "6h", "1d", "1w". Use this or cron, not both.'
16089
16117
  )
16090
16118
  };
@@ -16117,11 +16145,11 @@ var setAutomationSchedule = {
16117
16145
  };
16118
16146
 
16119
16147
  // src/tools/set-automation-visibility.ts
16120
- import { z as z88 } from "zod";
16148
+ import { z as z89 } from "zod";
16121
16149
  var parameters25 = {
16122
- automationId: z88.string().describe("The id of the automation, as returned by find-automations."),
16150
+ automationId: z89.string().describe("The id of the automation, as returned by find-automations."),
16123
16151
  workspaceId: requiredWorkspaceIdParameter,
16124
- visibility: z88.enum(AUTOMATION_VISIBILITIES).describe(
16152
+ visibility: z89.enum(AUTOMATION_VISIBILITIES).describe(
16125
16153
  '"workspace": every member can see and run it. "private": only its creator can see it, workspace admins included.'
16126
16154
  )
16127
16155
  };
@@ -16148,12 +16176,12 @@ var setAutomationVisibility = {
16148
16176
  };
16149
16177
 
16150
16178
  // src/tools/start-conversation.ts
16151
- import { z as z89 } from "zod";
16179
+ import { z as z90 } from "zod";
16152
16180
  var parameters26 = {
16153
16181
  workspaceId: workspaceIdParameter.describe(
16154
16182
  "Author the automation in this Todoist workspace: the conversation, its draft and the published automation all belong there, and continue-conversation follows it automatically. Omit for the personal space."
16155
16183
  ),
16156
- message: z89.string().min(1).describe(
16184
+ message: z90.string().min(1).describe(
16157
16185
  "What the user wants automated, in their words. Say whether the automation should be published or left as a draft; the agent otherwise asks."
16158
16186
  )
16159
16187
  };
@@ -16183,25 +16211,25 @@ var startConversation = {
16183
16211
  };
16184
16212
 
16185
16213
  // src/tools/test-draft.ts
16186
- import { z as z90 } from "zod";
16214
+ import { z as z91 } from "zod";
16187
16215
  var DEFAULT_WAIT_MINUTES = 10;
16188
16216
  var parameters27 = {
16189
- draftId: z90.string().describe("The draft to test, as listed by find-drafts or get-draft."),
16190
- trigger: z90.union([z90.number().int().min(0), z90.string().min(1)]).optional().describe(
16217
+ draftId: z91.string().describe("The draft to test, as listed by find-drafts or get-draft."),
16218
+ trigger: z91.union([z91.number().int().min(0), z91.string().min(1)]).optional().describe(
16191
16219
  "The trigger to test: its position in the manifest's triggers, from 0, or a webhook trigger's event. Omit for the first."
16192
16220
  ),
16193
- payload: z90.record(z90.string(), z90.unknown()).optional().describe(
16221
+ payload: z91.record(z91.string(), z91.unknown()).optional().describe(
16194
16222
  "A real event to test with: what the service sends a webhook trigger, or an API trigger's request body. Omit to use a built-in sample event, whose made-up ids fail a filter on real values."
16195
16223
  ),
16196
- waitMinutes: z90.number().int().min(0).max(30).optional().describe(
16224
+ waitMinutes: z91.number().int().min(0).max(30).optional().describe(
16197
16225
  `How long to wait for the run to end; 0 returns once it starts. Default ${DEFAULT_WAIT_MINUTES}.`
16198
16226
  ),
16199
16227
  workspaceId: workspaceIdParameter
16200
16228
  };
16201
16229
  var outputSchema25 = {
16202
- draftId: z90.string(),
16203
- testRunId: z90.string().describe("get-test-run reads the run with it."),
16204
- outcome: z90.enum(["started", ...DRAFT_TEST_OUTCOMES]).describe(
16230
+ draftId: z91.string(),
16231
+ testRunId: z91.string().describe("get-test-run reads the run with it."),
16232
+ outcome: z91.enum(["started", ...DRAFT_TEST_OUTCOMES]).describe(
16205
16233
  "started: not waited for. timed_out: still going when the wait ended; it keeps running."
16206
16234
  ),
16207
16235
  status: runDetailSchema.shape.status,
@@ -16210,7 +16238,7 @@ var outputSchema25 = {
16210
16238
  ),
16211
16239
  connectorCalls: draftTestRunSchema.shape.connectorCalls,
16212
16240
  failedStep: draftTestRunSchema.shape.failedStep,
16213
- error: z90.string().optional().describe("The failed step's error, else why the run failed or was skipped."),
16241
+ error: z91.string().optional().describe("The failed step's error, else why the run failed or was skipped."),
16214
16242
  result: runDetailSchema.shape.result
16215
16243
  };
16216
16244
  var testDraft = {
@@ -16316,15 +16344,15 @@ function describeFinished(output, waitMinutes) {
16316
16344
  }
16317
16345
 
16318
16346
  // src/tools/trigger-automation.ts
16319
- import { z as z91 } from "zod";
16347
+ import { z as z92 } from "zod";
16320
16348
  var parameters28 = {
16321
- automationId: z91.string().describe("The id of the automation, as returned by find-automations."),
16349
+ automationId: z92.string().describe("The id of the automation, as returned by find-automations."),
16322
16350
  workspaceId: workspaceIdParameter
16323
16351
  };
16324
16352
  var outputSchema26 = {
16325
- automationId: z91.string(),
16326
- name: z91.string(),
16327
- accepted: z91.literal(true).describe("The backend accepted the run. It has not finished.")
16353
+ automationId: z92.string(),
16354
+ name: z92.string(),
16355
+ accepted: z92.literal(true).describe("The backend accepted the run. It has not finished.")
16328
16356
  };
16329
16357
  var triggerAutomation = {
16330
16358
  name: ToolNames.TRIGGER_AUTOMATION,
@@ -16355,13 +16383,13 @@ var triggerAutomation = {
16355
16383
  };
16356
16384
 
16357
16385
  // src/tools/update-automation.ts
16358
- import { z as z92 } from "zod";
16386
+ import { z as z93 } from "zod";
16359
16387
  var parameters29 = {
16360
- automationId: z92.string().describe("The id of the automation, as returned by find-automations."),
16388
+ automationId: z93.string().describe("The id of the automation, as returned by find-automations."),
16361
16389
  workspaceId: workspaceIdParameter,
16362
- name: z92.string().min(1).optional().describe("A new name. Omit to keep the current one."),
16363
- description: z92.string().optional().describe("A new description. Omit to keep the current one."),
16364
- enabled: z92.boolean().optional().describe(
16390
+ name: z93.string().min(1).optional().describe("A new name. Omit to keep the current one."),
16391
+ description: z93.string().optional().describe("A new description. Omit to keep the current one."),
16392
+ enabled: z93.boolean().optional().describe(
16365
16393
  "Turn the automation on or off. Enabling fails while disabledReason is set: the system stopped it and the cause must be fixed first."
16366
16394
  )
16367
16395
  };
@@ -16420,10 +16448,10 @@ async function mergeMetadata(client, name, description) {
16420
16448
  }
16421
16449
 
16422
16450
  // src/tools/update-draft.ts
16423
- import { z as z93 } from "zod";
16451
+ import { z as z94 } from "zod";
16424
16452
  var parameters30 = {
16425
- draftId: z93.string().describe("The draft to change, as listed by find-drafts or get-draft."),
16426
- manifest: z93.record(z93.string(), z93.unknown()).describe(
16453
+ draftId: z94.string().describe("The draft to change, as listed by find-drafts or get-draft."),
16454
+ manifest: z94.record(z94.string(), z94.unknown()).describe(
16427
16455
  "The whole manifest. It replaces the draft's manifest rather than merging into it, so start from get-draft's partialManifest and change what is needed."
16428
16456
  ),
16429
16457
  workspaceId: workspaceIdParameter
@@ -16540,4 +16568,4 @@ export {
16540
16568
  DEFAULT_BASE_URL,
16541
16569
  getMcpServer
16542
16570
  };
16543
- //# sourceMappingURL=chunk-XT4SYBWE.js.map
16571
+ //# sourceMappingURL=chunk-DU2XQUPA.js.map