trigger.dev
Version:
A Command-Line Interface for Trigger.dev projects
144 lines • 6.75 kB
JavaScript
import { ApiDeploymentListParams, MachinePresetName, RunStatus, } from "@trigger.dev/core/v3/schemas";
import { z } from "zod";
export const ProjectRefSchema = z
.string()
.describe("The trigger.dev project ref, starts with proj_. We will attempt to automatically detect the project ref if running inside a directory that includes a trigger.config.ts file, or if you pass the --project-ref option to the MCP server.")
.optional();
export const CreateProjectInOrgInput = z.object({
orgParam: z
.string()
.describe("The organization to create the project in, can either be the organization slug or the ID. Use the list_orgs tool to get a list of organizations and ask the user to select one."),
name: z.string().describe("The name of the project to create."),
});
export const InitializeProjectInput = z.object({
orgParam: z
.string()
.describe("The organization to create the project in, can either be the organization slug or the ID. Use the list_orgs tool to get a list of organizations and ask the user to select one."),
projectRef: ProjectRefSchema,
projectName: z
.string()
.describe("The name of the project to create. If projectRef is not provided, we will use this name to create a new project in the organization you select."),
cwd: z.string().describe("The current working directory of the project").optional(),
});
export const CommonProjectsInput = z.object({
projectRef: ProjectRefSchema,
configPath: z
.string()
.describe("The path to the trigger.config.ts file. Only used when the trigger.config.ts file is not at the root dir (like in a monorepo setup). If not provided, we will try to find the config file in the current working directory")
.optional(),
environment: z
.enum(["dev", "staging", "prod", "preview"])
.describe("The environment to get tasks for")
.default("dev"),
branch: z
.string()
.describe("The branch to get tasks for, only used for preview environments")
.optional(),
});
export const TriggerTaskInput = CommonProjectsInput.extend({
taskId: z
.string()
.describe("The ID/slug of the task to trigger. Use the get_tasks tool to get a list of tasks and ask the user to select one if it's not clear which one to use."),
payload: z
.any()
.describe("The payload to trigger the task with. Should match the task's payload schema. Not a JSON string, but the actual payload object"),
options: z
.object({
queue: z
.object({
name: z
.string()
.describe("The name of the queue to trigger the task in, by default will use the queue configured in the task"),
})
.optional(),
delay: z
.string()
.or(z.coerce.date())
.describe("The delay before the task run is executed")
.optional(),
idempotencyKey: z.string().describe("The idempotency key to use for the task run").optional(),
machine: MachinePresetName.describe("The machine preset to use for the task run").optional(),
maxAttempts: z
.number()
.int()
.describe("The maximum number of attempts to retry the task run")
.optional(),
maxDuration: z
.number()
.describe("The maximum duration in seconds of the task run")
.optional(),
tags: z
.array(z.string())
.describe("Tags to add to the task run. Must be less than 128 characters and cannot have more than 5")
.optional(),
ttl: z
.string()
.or(z.number().nonnegative().int())
.describe("The time to live of the task run. If the run doesn't start executing within this time, it will be automatically cancelled.")
.default("10m"),
})
.optional(),
});
export const CommonRunsInput = CommonProjectsInput.extend({
runId: z.string().describe("The ID of the run to get the details of, starts with run_"),
});
export const GetRunDetailsInput = CommonRunsInput.extend({
maxTraceLines: z
.number()
.int()
.describe("The maximum number of lines to show in the trace. Defaults to 500")
.optional(),
});
export const ListRunsInput = CommonProjectsInput.extend({
cursor: z.string().describe("The cursor to use for pagination, starts with run_").optional(),
limit: z
.number()
.int()
.describe("The number of runs to list in a single page. Up to 100")
.optional(),
status: RunStatus.describe("Filter for runs with this run status").optional(),
taskIdentifier: z.string().describe("Filter for runs that match this task identifier").optional(),
version: z
.string()
.describe("Filter for runs that match this version, e.g. 20250808.3")
.optional(),
tag: z.string().describe("Filter for runs that include this tag").optional(),
from: z.string().describe("Filter for runs created after this ISO 8601 timestamp").optional(),
to: z.string().describe("Filter for runs created before this ISO 8601 timestamp").optional(),
period: z
.string()
.describe("Filter for runs created in the last N time period. e.g. 7d, 30d, 365d")
.optional(),
machine: MachinePresetName.describe("Filter for runs that match this machine preset").optional(),
});
export const CommonDeployInput = CommonProjectsInput.omit({
environment: true,
}).extend({
environment: z
.enum(["staging", "prod", "preview"])
.describe("The environment to trigger the task in")
.default("prod"),
});
export const DeployInput = CommonDeployInput.extend({
skipPromotion: z
.boolean()
.describe("Skip promoting the deployment to the current deployment for the environment")
.optional(),
skipSyncEnvVars: z
.boolean()
.describe("Skip syncing environment variables when using the syncEnvVars extension")
.optional(),
skipUpdateCheck: z
.boolean()
.describe("Skip checking for @trigger.dev package updates")
.optional(),
});
export const ListDeploysInput = CommonDeployInput.extend(ApiDeploymentListParams);
export const ListPreviewBranchesInput = z.object({
projectRef: ProjectRefSchema,
configPath: z
.string()
.describe("The path to the trigger.config.ts file. Only used when the trigger.config.ts file is not at the root dir (like in a monorepo setup). If not provided, we will try to find the config file in the current working directory")
.optional(),
});
//# sourceMappingURL=schemas.js.map