- 任务类型改为「执行脚本 / 发起 HTTP 请求 / 运行二进制程序」,脚本类型下新增语言选择(Python / Shell / Node / Lua) - 语言联动表单:Python 才显示虚拟环境、解释器和 uv 状态;Shell/Node/Lua 隐藏这些字段并切换脚本标签、占位符和调用预览 - 切换语言时自动设置解释器与默认脚本,Shell 通过 cmd.exe /C 执行批处理,Node/Lua 使用对应解释器 - TaskAction 新增可选 language,旧任务按解释器推断;补 Shell 执行测试、语言切换单测与 Playwright 用例
1548 lines
44 KiB
TypeScript
1548 lines
44 KiB
TypeScript
/**
|
||
* This file was auto-generated by openapi-typescript.
|
||
* Do not make direct changes to the file.
|
||
*/
|
||
|
||
export interface paths {
|
||
"/api/v1/cron/preview": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
post: operations["preview_cron"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/events": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get: operations["execution_events"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/health": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get: operations["health"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/python/mirrors": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get: operations["list_python_mirrors"];
|
||
put?: never;
|
||
post: operations["create_python_mirror"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/python/mirrors/{id}": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get: operations["get_python_mirror"];
|
||
put: operations["update_python_mirror"];
|
||
post?: never;
|
||
delete: operations["delete_python_mirror"];
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/python/mirrors/{id}/default": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
post: operations["set_default_python_mirror"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/python/venv": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
post: operations["probe_python_venv"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/python/venv/create": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
post: operations["create_python_venv"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/runs/{run_id}": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get: operations["get_run"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/runs/{run_id}/cancel": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
post: operations["cancel_run"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/runs/{run_id}/logs": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get: operations["get_run_logs"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/runs/{run_id}/logs/download": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get: operations["download_run_logs"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/schedule": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get: operations["list_schedule"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/session": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get: operations["session"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/stats": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get: operations["task_stats"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/system/directories": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get: operations["list_directories"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/tasks": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get: operations["list_tasks"];
|
||
put?: never;
|
||
post: operations["create_task"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/tasks/{id}": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get: operations["get_task"];
|
||
put: operations["update_task"];
|
||
post?: never;
|
||
delete: operations["delete_task"];
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/tasks/{id}/disable": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
post: operations["disable_task"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/tasks/{id}/enable": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
post: operations["enable_task"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/tasks/{id}/run": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get?: never;
|
||
put?: never;
|
||
post: operations["run_task"];
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
"/api/v1/tasks/{id}/runs": {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
get: operations["list_task_runs"];
|
||
put?: never;
|
||
post?: never;
|
||
delete?: never;
|
||
options?: never;
|
||
head?: never;
|
||
patch?: never;
|
||
trace?: never;
|
||
};
|
||
}
|
||
export type webhooks = Record<string, never>;
|
||
export interface components {
|
||
schemas: {
|
||
/** @enum {string} */
|
||
ConcurrencyPolicy: "skip";
|
||
CreatePythonMirrorRequest: {
|
||
enabled?: boolean;
|
||
index_url: string;
|
||
name: string;
|
||
trusted_host?: string | null;
|
||
};
|
||
/** @description 用 uv 为项目创建 `.venv`(pyproject 用 uv sync,requirements 用 uv venv + uv pip install)。 */
|
||
CreatePythonVenvRequest: {
|
||
working_dir: string;
|
||
};
|
||
CreateTaskRequest: {
|
||
action: components["schemas"]["TaskAction"];
|
||
concurrency_policy?: components["schemas"]["ConcurrencyPolicy"];
|
||
cron: string;
|
||
enabled?: boolean;
|
||
id: string;
|
||
name: string;
|
||
retry_policy?: components["schemas"]["RetryPolicy"];
|
||
/** Format: int64 */
|
||
timeout_secs?: number;
|
||
timezone?: string;
|
||
};
|
||
CronPreviewRequest: {
|
||
count: number;
|
||
expression: string;
|
||
timezone: string;
|
||
};
|
||
CronPreviewResponse: {
|
||
runs: string[];
|
||
timezone: string;
|
||
};
|
||
DirectoryEntry: {
|
||
/** @description 用于展示的名称 */
|
||
name: string;
|
||
/** @description 绝对路径,选中后回填到表单 */
|
||
path: string;
|
||
};
|
||
DirectoryListingResponse: {
|
||
entries: components["schemas"]["DirectoryEntry"][];
|
||
/** @description 上一级目录;盘符根目录和盘符列表为 null */
|
||
parent?: string | null;
|
||
/** @description 当前目录;为 null 表示正在列出盘符 */
|
||
path?: string | null;
|
||
/** @description 条目超过上限被截断时为 true */
|
||
truncated: boolean;
|
||
};
|
||
ErrorResponse: {
|
||
code: string;
|
||
details: {
|
||
[key: string]: string;
|
||
};
|
||
field?: string | null;
|
||
message: string;
|
||
};
|
||
HealthResponse: {
|
||
/** @description Stable service identifier. */
|
||
service: string;
|
||
/** @description Current service status. */
|
||
status: string;
|
||
/** @description Backend package version. */
|
||
version: string;
|
||
};
|
||
/** @enum {string} */
|
||
HttpMethod: "GET" | "POST";
|
||
/** @enum {string} */
|
||
InterpreterKind: "python" | "node" | "other";
|
||
LogChunkResponse: {
|
||
complete: boolean;
|
||
content: string;
|
||
/** Format: int64 */
|
||
next_offset: number;
|
||
};
|
||
/** @description 一个 Python 包索引镜像(pip / uv)。 */
|
||
PythonMirrorResponse: {
|
||
/** Format: date-time */
|
||
created_at: string;
|
||
enabled: boolean;
|
||
id: string;
|
||
/** @description pip 的 `--index-url`,运行时注入 `PIP_INDEX_URL` */
|
||
index_url: string;
|
||
/** @description 当前默认镜像;同一时间最多一个 */
|
||
is_default: boolean;
|
||
name: string;
|
||
/** @description pip 的 `--trusted-host`;https 源通常为空 */
|
||
trusted_host?: string | null;
|
||
/** Format: date-time */
|
||
updated_at: string;
|
||
};
|
||
RetryPolicy: {
|
||
/** Format: int64 */
|
||
delay_secs?: number;
|
||
/** Format: int32 */
|
||
max_attempts?: number;
|
||
};
|
||
/** @enum {string} */
|
||
RunStatus: "queued" | "running" | "succeeded" | "failed" | "timed_out" | "cancelled" | "skipped";
|
||
/** @enum {string} */
|
||
RunTrigger: "schedule" | "manual" | "retry";
|
||
/** @description 已注册调度的任务及其下次触发时间。 */
|
||
ScheduledTaskResponse: {
|
||
/**
|
||
* Format: date-time
|
||
* @description 下次触发时间;调度正在重建时可能为空
|
||
*/
|
||
next_run_at?: string | null;
|
||
task_id: string;
|
||
};
|
||
/** @enum {string} */
|
||
ScriptLanguage: "python" | "shell" | "node" | "lua";
|
||
SessionResponse: {
|
||
/** @description Random per-process token required for mutating browser requests. */
|
||
token: string;
|
||
};
|
||
TaskAction: {
|
||
args?: string[];
|
||
env?: {
|
||
[key: string]: string;
|
||
};
|
||
interpreter: string;
|
||
language?: components["schemas"]["ScriptLanguage"] | null;
|
||
script: string;
|
||
/** @enum {string} */
|
||
type: "script";
|
||
venv?: string | null;
|
||
working_dir: string;
|
||
} | {
|
||
body?: string | null;
|
||
expected_status?: number[];
|
||
headers?: {
|
||
[key: string]: string;
|
||
};
|
||
method: components["schemas"]["HttpMethod"];
|
||
/** @enum {string} */
|
||
type: "http";
|
||
url: string;
|
||
} | {
|
||
args?: string[];
|
||
env?: {
|
||
[key: string]: string;
|
||
};
|
||
executable: string;
|
||
/** @enum {string} */
|
||
type: "process";
|
||
working_dir?: string | null;
|
||
};
|
||
/** @enum {string} */
|
||
TaskActionType: "script" | "http" | "process";
|
||
TaskListResponse: {
|
||
items: components["schemas"]["TaskResponse"][];
|
||
/** Format: int32 */
|
||
page: number;
|
||
/** Format: int32 */
|
||
page_size: number;
|
||
/** Format: int64 */
|
||
total: number;
|
||
};
|
||
TaskResponse: {
|
||
action: components["schemas"]["TaskAction"];
|
||
concurrency_policy: components["schemas"]["ConcurrencyPolicy"];
|
||
/** Format: date-time */
|
||
created_at: string;
|
||
cron: string;
|
||
enabled: boolean;
|
||
id: string;
|
||
name: string;
|
||
retry_policy: components["schemas"]["RetryPolicy"];
|
||
/** Format: int64 */
|
||
timeout_secs: number;
|
||
timezone: string;
|
||
/** Format: date-time */
|
||
updated_at: string;
|
||
};
|
||
TaskRunListResponse: {
|
||
items: components["schemas"]["TaskRunResponse"][];
|
||
/** Format: int32 */
|
||
page: number;
|
||
/** Format: int32 */
|
||
page_size: number;
|
||
/** Format: int64 */
|
||
total: number;
|
||
};
|
||
TaskRunResponse: {
|
||
/** Format: date-time */
|
||
created_at: string;
|
||
/** Format: int64 */
|
||
duration_ms?: number | null;
|
||
error_message?: string | null;
|
||
/** Format: int32 */
|
||
exit_code?: number | null;
|
||
/** Format: date-time */
|
||
finished_at?: string | null;
|
||
/** Format: int64 */
|
||
id: number;
|
||
/** Format: date-time */
|
||
started_at?: string | null;
|
||
status: components["schemas"]["RunStatus"];
|
||
task_id: string;
|
||
trigger: components["schemas"]["RunTrigger"];
|
||
};
|
||
/** @description 仪表盘指标:一次请求拿到全部计数,避免为每个指标各发一次列表查询。 */
|
||
TaskStatsResponse: {
|
||
/**
|
||
* Format: int64
|
||
* @description 已启用任务数
|
||
*/
|
||
enabled: number;
|
||
/**
|
||
* Format: int64
|
||
* @description HTTP 类任务数
|
||
*/
|
||
http: number;
|
||
/**
|
||
* Format: int64
|
||
* @description 进程类任务数
|
||
*/
|
||
process: number;
|
||
/**
|
||
* Format: int64
|
||
* @description 当前正在执行的任务数
|
||
*/
|
||
running: number;
|
||
/**
|
||
* Format: int64
|
||
* @description 脚本类任务数
|
||
*/
|
||
script: number;
|
||
/**
|
||
* Format: int64
|
||
* @description 任务总数
|
||
*/
|
||
total: number;
|
||
};
|
||
UpdatePythonMirrorRequest: {
|
||
enabled: boolean;
|
||
index_url: string;
|
||
name: string;
|
||
trusted_host?: string | null;
|
||
};
|
||
UpdateTaskRequest: {
|
||
action: components["schemas"]["TaskAction"];
|
||
concurrency_policy?: components["schemas"]["ConcurrencyPolicy"];
|
||
cron: string;
|
||
enabled?: boolean;
|
||
name: string;
|
||
retry_policy?: components["schemas"]["RetryPolicy"];
|
||
/** Format: int64 */
|
||
timeout_secs?: number;
|
||
timezone?: string;
|
||
};
|
||
/** @description 编辑器在用户填写工作目录时发起的探测请求。 */
|
||
VenvProbeRequest: {
|
||
/** @description 解释器或可执行程序,对应 `action.interpreter` */
|
||
interpreter: string;
|
||
/** @description 手动填写的虚拟环境目录,对应 `action.venv` */
|
||
venv?: string | null;
|
||
/** @description 任务工作目录,对应 `action.working_dir` */
|
||
working_dir: string;
|
||
};
|
||
VenvProbeResponse: {
|
||
/** @description 没有虚拟环境时,是否具备用 uv 创建的条件 */
|
||
can_create: boolean;
|
||
/** @description 供界面展示的解释器路径;位于工作目录内时使用相对路径 */
|
||
display_path?: string | null;
|
||
/** @description 工作目录根部是否存在 pyproject.toml */
|
||
has_pyproject: boolean;
|
||
/** @description 工作目录根部是否存在 requirements*.txt */
|
||
has_requirements: boolean;
|
||
interpreter_kind: components["schemas"]["InterpreterKind"];
|
||
message: string;
|
||
/** @description 探测到的 requirements 文件名(仅根目录) */
|
||
requirements_files: string[];
|
||
source?: components["schemas"]["VenvSource"] | null;
|
||
status: components["schemas"]["VenvProbeStatus"];
|
||
/** @description 本机 PATH 中是否能找到 uv */
|
||
uv_available: boolean;
|
||
/** @description 虚拟环境根目录的绝对路径 */
|
||
venv_path?: string | null;
|
||
};
|
||
/** @enum {string} */
|
||
VenvProbeStatus: "linked" | "invalid" | "missing" | "not_applicable" | "incomplete";
|
||
/**
|
||
* @description 虚拟环境的来源,用于在界面上说明"为什么"关联到了这个环境。
|
||
* @enum {string}
|
||
*/
|
||
VenvSource: "configured" | "interpreter" | "working_directory";
|
||
};
|
||
responses: never;
|
||
parameters: never;
|
||
requestBodies: never;
|
||
headers: never;
|
||
pathItems: never;
|
||
}
|
||
export type $defs = Record<string, never>;
|
||
export interface operations {
|
||
preview_cron: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["CronPreviewRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Upcoming cron occurrences */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["CronPreviewResponse"];
|
||
};
|
||
};
|
||
/** @description Invalid cron preview request */
|
||
400: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
execution_events: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Run status and log events */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"text/event-stream": string;
|
||
};
|
||
};
|
||
};
|
||
};
|
||
health: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description TaskPilot API is healthy */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["HealthResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
list_python_mirrors: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Python package mirrors */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["PythonMirrorResponse"][];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
create_python_mirror: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["CreatePythonMirrorRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Mirror created */
|
||
201: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["PythonMirrorResponse"];
|
||
};
|
||
};
|
||
/** @description Validation failed */
|
||
400: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
/** @description Mirror URL already exists */
|
||
409: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
get_python_mirror: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
/** @description Mirror identifier */
|
||
id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Mirror detail */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["PythonMirrorResponse"];
|
||
};
|
||
};
|
||
/** @description Mirror not found */
|
||
404: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
update_python_mirror: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
/** @description Mirror identifier */
|
||
id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["UpdatePythonMirrorRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Mirror updated */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["PythonMirrorResponse"];
|
||
};
|
||
};
|
||
/** @description Validation failed */
|
||
400: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
/** @description Mirror not found */
|
||
404: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
/** @description Mirror URL already exists */
|
||
409: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
delete_python_mirror: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
/** @description Mirror identifier */
|
||
id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Mirror deleted */
|
||
204: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content?: never;
|
||
};
|
||
/** @description Mirror not found */
|
||
404: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
set_default_python_mirror: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
/** @description Mirror identifier */
|
||
id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Default mirror updated */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["PythonMirrorResponse"];
|
||
};
|
||
};
|
||
/** @description Mirror not found */
|
||
404: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
probe_python_venv: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["VenvProbeRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Detected Python virtual environment */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["VenvProbeResponse"];
|
||
};
|
||
};
|
||
/** @description Invalid venv probe request */
|
||
400: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
create_python_venv: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["CreatePythonVenvRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Created or reused project virtual environment */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["VenvProbeResponse"];
|
||
};
|
||
};
|
||
/** @description Project cannot create a virtual environment */
|
||
400: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
get_run: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
/** @description Run identifier */
|
||
run_id: number;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Task run detail */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["TaskRunResponse"];
|
||
};
|
||
};
|
||
/** @description Run not found */
|
||
404: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
cancel_run: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
/** @description Run identifier */
|
||
run_id: number;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Cancellation requested */
|
||
202: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["TaskRunResponse"];
|
||
};
|
||
};
|
||
/** @description Run not found */
|
||
404: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
/** @description Run is not cancellable */
|
||
409: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
get_run_logs: {
|
||
parameters: {
|
||
query?: {
|
||
offset?: number;
|
||
};
|
||
header?: never;
|
||
path: {
|
||
/** @description Run identifier */
|
||
run_id: number;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Incremental task run log */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["LogChunkResponse"];
|
||
};
|
||
};
|
||
/** @description Run not found */
|
||
404: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
download_run_logs: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
/** @description Run identifier */
|
||
run_id: number;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Plain text task log */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"text/plain": string;
|
||
};
|
||
};
|
||
/** @description Run or log not found */
|
||
404: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
list_schedule: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Next trigger time per enabled task */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ScheduledTaskResponse"][];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
session: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Local API session token */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["SessionResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
task_stats: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Dashboard counters */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["TaskStatsResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
list_directories: {
|
||
parameters: {
|
||
query?: {
|
||
/** @description 绝对目录路径;留空表示列出盘符 */
|
||
path?: string;
|
||
};
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Subdirectories of the requested path, or the drive list */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["DirectoryListingResponse"];
|
||
};
|
||
};
|
||
/** @description The path is not an existing absolute directory */
|
||
400: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
list_tasks: {
|
||
parameters: {
|
||
query?: {
|
||
q?: string;
|
||
enabled?: boolean;
|
||
action_type?: components["schemas"]["TaskActionType"];
|
||
page?: number;
|
||
page_size?: number;
|
||
};
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Paginated task list */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["TaskListResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
create_task: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path?: never;
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["CreateTaskRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Task created */
|
||
201: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["TaskResponse"];
|
||
};
|
||
};
|
||
/** @description Validation failed */
|
||
400: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
/** @description Task ID already exists */
|
||
409: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
get_task: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
/** @description Stable task identifier */
|
||
id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Task detail */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["TaskResponse"];
|
||
};
|
||
};
|
||
/** @description Task not found */
|
||
404: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
update_task: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
/** @description Stable task identifier */
|
||
id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody: {
|
||
content: {
|
||
"application/json": components["schemas"]["UpdateTaskRequest"];
|
||
};
|
||
};
|
||
responses: {
|
||
/** @description Task updated */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["TaskResponse"];
|
||
};
|
||
};
|
||
/** @description Validation failed */
|
||
400: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
/** @description Task not found */
|
||
404: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
delete_task: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
/** @description Stable task identifier */
|
||
id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Task deleted */
|
||
204: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content?: never;
|
||
};
|
||
/** @description Task not found */
|
||
404: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
disable_task: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
/** @description Stable task identifier */
|
||
id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Task disabled */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["TaskResponse"];
|
||
};
|
||
};
|
||
/** @description Task not found */
|
||
404: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
enable_task: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
/** @description Stable task identifier */
|
||
id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Task enabled */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["TaskResponse"];
|
||
};
|
||
};
|
||
/** @description Task not found */
|
||
404: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
run_task: {
|
||
parameters: {
|
||
query?: never;
|
||
header?: never;
|
||
path: {
|
||
/** @description Stable task identifier */
|
||
id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Manual run accepted */
|
||
202: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["TaskRunResponse"];
|
||
};
|
||
};
|
||
/** @description Task not found */
|
||
404: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
/** @description Action executor not implemented */
|
||
422: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["ErrorResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
list_task_runs: {
|
||
parameters: {
|
||
query?: {
|
||
page?: number;
|
||
page_size?: number;
|
||
status?: components["schemas"]["RunStatus"];
|
||
trigger?: components["schemas"]["RunTrigger"];
|
||
};
|
||
header?: never;
|
||
path: {
|
||
/** @description Stable task identifier */
|
||
id: string;
|
||
};
|
||
cookie?: never;
|
||
};
|
||
requestBody?: never;
|
||
responses: {
|
||
/** @description Task run history */
|
||
200: {
|
||
headers: {
|
||
[name: string]: unknown;
|
||
};
|
||
content: {
|
||
"application/json": components["schemas"]["TaskRunListResponse"];
|
||
};
|
||
};
|
||
};
|
||
};
|
||
}
|