diff --git a/docs/api-reference/fabro-api.yaml b/docs/api-reference/fabro-api.yaml index b12643369..3c02e1da1 100644 --- a/docs/api-reference/fabro-api.yaml +++ b/docs/api-reference/fabro-api.yaml @@ -867,36 +867,6 @@ paths: schema: $ref: "#/components/schemas/ErrorResponse" - /api/v1/runs/{id}/steer: - post: - operationId: steerRun - tags: [Human-in-the-Loop] - summary: Steer Run - description: Sends inline guidance to a running agent, targeting a specific file and line. The guidance is delivered asynchronously. - parameters: - - $ref: "#/components/parameters/RunId" - requestBody: - required: true - content: - application/json: - schema: - $ref: "#/components/schemas/SteerRequest" - responses: - "202": - description: Steering accepted for processing - "404": - description: Run not found - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - "409": - description: Run is not in a steerable state - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - /api/v1/runs/{id}/preview: post: operationId: generatePreviewUrl @@ -1072,71 +1042,6 @@ paths: schema: $ref: "#/components/schemas/ErrorResponse" - # ── Workflows ───────────────────────────────────────────────────────── - - /api/v1/workflows: - get: - operationId: listWorkflows - tags: [Workflows] - summary: List Workflows - description: Returns a paginated list of workflow definitions available for execution. - parameters: - - $ref: "#/components/parameters/PageLimit" - - $ref: "#/components/parameters/PageOffset" - responses: - "200": - description: Paginated list of workflows - content: - application/json: - schema: - $ref: "#/components/schemas/PaginatedWorkflowList" - - /api/v1/workflows/{name}: - get: - operationId: retrieveWorkflow - tags: [Workflows] - summary: Retrieve Workflow - description: Returns the full detail of a workflow including its Graphviz graph, resolved settings, and description. - parameters: - - $ref: "#/components/parameters/WorkflowName" - responses: - "200": - description: Workflow detail - content: - application/json: - schema: - $ref: "#/components/schemas/WorkflowDetail" - "404": - description: Workflow not found - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - - /api/v1/workflows/{name}/runs: - get: - operationId: listWorkflowRuns - tags: [Workflows] - summary: List Workflow Runs - description: Returns a paginated list of runs filtered to a specific workflow. - parameters: - - $ref: "#/components/parameters/WorkflowName" - - $ref: "#/components/parameters/PageLimit" - - $ref: "#/components/parameters/PageOffset" - responses: - "200": - description: Paginated list of runs - content: - application/json: - schema: - $ref: "#/components/schemas/PaginatedRunList" - "404": - description: Workflow not found - content: - application/json: - schema: - $ref: "#/components/schemas/ErrorResponse" - # ── Insights ────────────────────────────────────────────────────────── /api/v1/insights/queries: @@ -1686,15 +1591,6 @@ components: type: string example: q-001 - WorkflowName: - name: name - in: path - required: true - description: URL-safe slug identifying a workflow definition. - schema: - type: string - example: fix_build - InsightQueryId: name: id in: path @@ -1791,20 +1687,6 @@ components: meta: $ref: "#/components/schemas/PaginationMeta" - PaginatedWorkflowList: - description: Paginated list of workflows. - type: object - required: - - data - - meta - properties: - data: - type: array - items: - $ref: "#/components/schemas/WorkflowListItem" - meta: - $ref: "#/components/schemas/PaginationMeta" - PaginatedModelList: description: Paginated list of models. type: object @@ -3329,34 +3211,6 @@ components: description: Total runtime in seconds. example: 3501.0 - WorkflowSchedule: - description: Schedule configuration for a workflow. - type: object - required: - - expression - properties: - expression: - type: string - description: Cron-like schedule expression. - example: "0 */6 * * *" - next_run: - type: string - format: date-time - description: ISO 8601 timestamp of the next scheduled run. - example: "2025-09-15T18:00:00Z" - - WorkflowLastRun: - description: Information about a workflow's most recent run. - type: object - required: - - ran_at - properties: - ran_at: - type: string - format: date-time - description: ISO 8601 timestamp of the most recent run. - example: "2025-09-15T12:00:00Z" - UsageStageRef: description: Reference to a usage stage. type: object @@ -3777,19 +3631,6 @@ components: items: $ref: "#/components/schemas/UsageByModel" - SteerRequest: - description: Request body for sending inline steering guidance to a running agent. - type: object - required: - - guidance - properties: - location: - $ref: "#/components/schemas/CodeLocation" - guidance: - type: string - description: Guidance text for the agent. - example: Use a sliding window algorithm instead of fixed window. - PreviewUrlRequest: description: Request body for generating a preview URL from a sandbox port. type: object @@ -3880,67 +3721,6 @@ components: items: $ref: "#/components/schemas/SandboxFileEntry" - # ── Workflow Schemas ───────────────────────────────────────────────── - - WorkflowListItem: - description: Summary of a workflow shown in list views. - type: object - required: - - name - - slug - - filename - properties: - name: - type: string - description: Human-readable workflow name. - example: Fix Build - slug: - type: string - description: URL-safe slug used in API paths. - example: fix_build - filename: - type: string - description: Graphviz graph filename. - example: fix_build.fabro - last_run: - $ref: "#/components/schemas/WorkflowLastRun" - schedule: - $ref: "#/components/schemas/WorkflowSchedule" - - WorkflowDetail: - description: Full detail of a workflow definition including graph and resolved settings. - type: object - required: - - name - - slug - - filename - - description - - settings - - graph - properties: - name: - type: string - description: Human-readable workflow name. - example: Fix Build - slug: - type: string - description: URL-safe slug used in API paths. - example: fix_build - filename: - type: string - description: Graphviz graph filename. - example: fix_build.fabro - description: - type: string - description: Prose description of what the workflow does. - example: Automatically diagnoses and fixes CI build failures. - settings: - $ref: "#/components/schemas/RunSettings" - graph: - type: string - description: Graphviz DOT language source defining the workflow graph. - example: "digraph fix_build { rankdir=LR; start -> diagnose -> fix -> validate }" - # ── Insights Schemas ───────────────────────────────────────────────── SavedQuery: diff --git a/docs/docs.json b/docs/docs.json index be1e63cda..fb1d74a40 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -199,7 +199,6 @@ "pages": [ "GET /api/v1/runs/{id}/questions", "POST /api/v1/runs/{id}/questions/{qid}/answer", - "POST /api/v1/runs/{id}/steer", "POST /api/v1/runs/{id}/preview" ] }, @@ -221,15 +220,6 @@ } ] }, - { - "group": "Workflows", - "icon": "diagram-project", - "pages": [ - "GET /api/v1/workflows", - "GET /api/v1/workflows/{name}", - "GET /api/v1/workflows/{name}/runs" - ] - }, { "group": "More", "icon": "ellipsis", diff --git a/docs/human-tools/steering.mdx b/docs/human-tools/steering.mdx index 77e163cde..e834889e2 100644 --- a/docs/human-tools/steering.mdx +++ b/docs/human-tools/steering.mdx @@ -11,14 +11,12 @@ A steering message is injected into the agent's conversation as a user-role mess The delivery flow: -1. You send a `POST /api/v1/runs/{id}/steer` request with your guidance text +1. You send a steering request with your guidance text 2. The message is queued on the agent session's steering queue 3. Before the next LLM call, Fabro drains the queue and injects each message as a `Steering` turn in the conversation history 4. The LLM sees the guidance alongside its existing context and adjusts accordingly -Steering is **asynchronous** — the API returns `202 Accepted` immediately. The agent picks up the message at its next natural pause point (between tool calls), not mid-execution. - -See the [Steer Run API reference](/api-reference/human-in-the-loop/steer-run) for the full request and response schema. +Steering is **asynchronous** — the agent picks up the message at its next natural pause point (between tool calls), not mid-execution. ## When steering is delivered diff --git a/lib/crates/fabro-server/src/demo/mod.rs b/lib/crates/fabro-server/src/demo/mod.rs index bb68a284c..c0cfeaf2a 100644 --- a/lib/crates/fabro-server/src/demo/mod.rs +++ b/lib/crates/fabro-server/src/demo/mod.rs @@ -113,14 +113,6 @@ pub(crate) async fn get_run_settings( (StatusCode::OK, Json(runs::settings())).into_response() } -pub(crate) async fn steer_run_stub( - _auth: AuthenticatedService, - State(_state): State>, - Path(_id): Path, -) -> Response { - StatusCode::ACCEPTED.into_response() -} - pub(crate) async fn generate_preview_url_stub( _auth: AuthenticatedService, State(_state): State>, @@ -275,40 +267,6 @@ pub(crate) async fn get_run_graph( crate::server::render_graph_bytes(dot_source, fabro_graphviz::render::GraphFormat::Svg).await } -// ── Workflows ────────────────────────────────────────────────────────── - -pub(crate) async fn list_workflows( - _auth: AuthenticatedService, - State(_state): State>, - Query(pagination): Query, -) -> Response { - paginated_response(workflows::list_items(), &pagination) -} - -pub(crate) async fn get_workflow( - _auth: AuthenticatedService, - State(_state): State>, - Path(name): Path, -) -> Response { - match workflows::detail(&name) { - Some(detail) => (StatusCode::OK, Json(detail)).into_response(), - None => ApiError::not_found("Workflow not found.").into_response(), - } -} - -pub(crate) async fn list_workflow_runs( - _auth: AuthenticatedService, - State(_state): State>, - Path(name): Path, - Query(pagination): Query, -) -> Response { - let items: Vec<_> = runs::list_items() - .into_iter() - .filter(|r| r.workflow.slug == name) - .collect(); - paginated_response(items, &pagination) -} - pub(crate) async fn list_secrets( _auth: AuthenticatedService, State(_state): State>, @@ -1396,378 +1354,6 @@ mod usage { } } -mod workflows { - use super::ts; - use fabro_api::types::*; - - pub(super) fn list_items() -> Vec { - vec![ - WorkflowListItem { - name: "Fix Build".into(), - slug: "fix_build".into(), - filename: "fix_build.fabro".into(), - last_run: Some(WorkflowLastRun { - ran_at: ts("2025-09-15T12:00:00Z"), - }), - schedule: None, - }, - WorkflowListItem { - name: "Implement Feature".into(), - slug: "implement".into(), - filename: "implement.fabro".into(), - last_run: Some(WorkflowLastRun { - ran_at: ts("2025-09-11T10:00:00Z"), - }), - schedule: None, - }, - WorkflowListItem { - name: "Sync Drift".into(), - slug: "sync_drift".into(), - filename: "sync_drift.fabro".into(), - last_run: Some(WorkflowLastRun { - ran_at: ts("2025-09-14T14:00:00Z"), - }), - schedule: None, - }, - WorkflowListItem { - name: "Expand Product".into(), - slug: "expand".into(), - filename: "expand.fabro".into(), - last_run: Some(WorkflowLastRun { - ran_at: ts("2025-09-01T08:00:00Z"), - }), - schedule: None, - }, - ] - } - - fn run_settings_to_api(cfg: fabro_types::Settings) -> RunSettings { - fn strip_nulls(val: serde_json::Value) -> serde_json::Value { - match val { - serde_json::Value::Object(map) => serde_json::Value::Object( - map.into_iter() - .filter(|(_, v)| !v.is_null()) - .map(|(k, v)| (k, strip_nulls(v))) - .collect(), - ), - serde_json::Value::Array(arr) => { - serde_json::Value::Array(arr.into_iter().map(strip_nulls).collect()) - } - other => other, - } - } - let val = strip_nulls(serde_json::to_value(cfg).unwrap()); - serde_json::from_value(val).unwrap() - } - - pub(super) fn detail(name: &str) -> Option { - let items = [ - WorkflowDetail { - name: "Fix Build".into(), slug: "fix_build".into(), filename: "fix_build.fabro".into(), - description: "Automatically diagnoses and fixes CI build failures by analyzing error logs, identifying root causes, and applying targeted code changes.".into(), - settings: run_settings_to_api(fabro_types::Settings { - version: Some(1), - goal: Some("Diagnose and fix CI build failures".into()), - graph: Some("fix_build.fabro".into()), - work_dir: None, - llm: Some(fabro_config::run::LlmSettings { - model: Some("claude-sonnet".into()), - provider: None, - fallbacks: None, - }), - setup: None, - sandbox: Some(fabro_config::sandbox::SandboxSettings { - provider: Some("daytona".into()), - preserve: None, - devcontainer: None, - local: None, - daytona: Some(fabro_sandbox::daytona::DaytonaConfig { - auto_stop_interval: Some(60), - labels: Some(std::collections::HashMap::from([ - ("project".into(), "fix-build".into()), - ])), - snapshot: Some(fabro_sandbox::daytona::DaytonaSnapshotConfig { - name: "fix-build-dev".into(), - cpu: Some(4), - memory: Some(8), - disk: Some(10), - dockerfile: None, - }), - network: None, - skip_clone: false, - }), - env: None, - }), - vars: Some(std::collections::HashMap::from([ - ("repo_url".into(), "https://github.com/org/service".into()), - ("branch".into(), "main".into()), - ])), - hooks: vec![], - checkpoint: Default::default(), - pull_request: None, - artifacts: None, - mcp_servers: Default::default(), - github: None, - ..Default::default() - }), - graph: r#"digraph fix_build { - graph [ - goal="Diagnose and fix CI build failures", - label="Fix Build" - ] - rankdir=LR - - start [shape=Mdiamond, label="Start"] - exit [shape=Msquare, label="Exit"] - - diagnose [label="Diagnose Failure", prompt="@prompts/fix_build/diagnose.md", reasoning_effort="high"] - fix [label="Apply Fix", prompt="@prompts/fix_build/fix.md"] - validate [label="Run Build", prompt="@prompts/fix_build/validate.md", goal_gate=true] - gate [shape=diamond, label="Build passing?"] - - start -> diagnose -> fix -> validate -> gate - gate -> exit [label="Yes", condition="outcome=success"] - gate -> diagnose [label="No", condition="outcome!=success", max_visits=3] -} -"#.into(), - }, - WorkflowDetail { - name: "Implement Feature".into(), slug: "implement".into(), filename: "implement.fabro".into(), - description: "Generates production-ready code from a technical blueprint, including tests, documentation, and a pull request ready for review.".into(), - settings: run_settings_to_api(fabro_types::Settings { - version: Some(1), - goal: Some("Implement feature from technical blueprint".into()), - graph: Some("implement.fabro".into()), - work_dir: None, - llm: Some(fabro_config::run::LlmSettings { - model: Some("claude-sonnet".into()), - provider: None, - fallbacks: None, - }), - setup: Some(fabro_config::run::SetupSettings { - commands: vec!["bun install".into(), "bun run typecheck".into()], - timeout_ms: Some(120_000), - }), - sandbox: Some(fabro_config::sandbox::SandboxSettings { - provider: Some("daytona".into()), - preserve: None, - devcontainer: None, - local: None, - daytona: Some(fabro_sandbox::daytona::DaytonaConfig { - auto_stop_interval: Some(120), - labels: Some(std::collections::HashMap::from([ - ("project".into(), "implement".into()), - ("team".into(), "engineering".into()), - ])), - snapshot: Some(fabro_sandbox::daytona::DaytonaSnapshotConfig { - name: "implement-dev".into(), - cpu: Some(4), - memory: Some(8), - disk: Some(20), - dockerfile: None, - }), - network: None, - skip_clone: false, - }), - env: None, - }), - vars: Some(std::collections::HashMap::from([ - ("spec_path".into(), "specs/feature.md".into()), - ("test_framework".into(), "vitest".into()), - ])), - hooks: vec![], - checkpoint: Default::default(), - pull_request: None, - artifacts: None, - mcp_servers: Default::default(), - github: None, - ..Default::default() - }), - graph: r#"digraph implement { - graph [ - goal="", - label="Implement" - ] - rankdir=LR - - start [shape=Mdiamond, label="Start"] - exit [shape=Msquare, label="Exit"] - - strategy [shape=hexagon, label="Choose decomposition strategy:"] - - subgraph cluster_impl { - label="Implementation Loop" - node [fidelity="full", thread_id="impl"] - - plan [label="Plan Implementation", prompt="@prompts/implement/plan.md", reasoning_effort="high"] - implement [label="Implement", prompt="@prompts/implement/implement.md"] - review [label="Review", prompt="@prompts/implement/review.md"] - validate [label="Validate", prompt="@prompts/implement/validate.md", goal_gate=true] - fix [label="Fix Failures", prompt="@prompts/implement/fix.md", max_visits=3] - } - - start -> strategy - strategy -> plan [label="[L] Layer-by-layer"] - strategy -> plan [label="[F] Feature slice"] - strategy -> plan [label="[P] Embarrassingly parallel"] - strategy -> plan [label="[S] Sequential / linear"] - plan -> implement -> review -> validate - validate -> exit [condition="outcome=success"] - validate -> fix [condition="outcome!=success", label="Fix"] - fix -> validate -} -"#.into(), - }, - WorkflowDetail { - name: "Sync Drift".into(), slug: "sync_drift".into(), filename: "sync_drift.fabro".into(), - description: "Detects configuration and code drift between environments, then generates reconciliation patches to bring everything back in sync.".into(), - settings: run_settings_to_api(fabro_types::Settings { - version: Some(1), - goal: Some("Detect and reconcile configuration drift across environments".into()), - graph: Some("sync_drift.fabro".into()), - work_dir: None, - llm: Some(fabro_config::run::LlmSettings { - model: Some("claude-sonnet".into()), - provider: None, - fallbacks: None, - }), - setup: None, - sandbox: Some(fabro_config::sandbox::SandboxSettings { - provider: Some("daytona".into()), - preserve: None, - devcontainer: None, - local: None, - daytona: Some(fabro_sandbox::daytona::DaytonaConfig { - auto_stop_interval: Some(120), - labels: Some(std::collections::HashMap::from([ - ("project".into(), "sync-drift".into()), - ("team".into(), "platform".into()), - ])), - snapshot: Some(fabro_sandbox::daytona::DaytonaSnapshotConfig { - name: "sync-drift-dev".into(), - cpu: Some(2), - memory: Some(4), - disk: Some(10), - dockerfile: None, - }), - network: None, - skip_clone: false, - }), - env: None, - }), - vars: Some(std::collections::HashMap::from([ - ("source_env".into(), "production".into()), - ("target_env".into(), "staging".into()), - ("drift_threshold".into(), "warn".into()), - ])), - hooks: vec![], - checkpoint: Default::default(), - pull_request: None, - artifacts: None, - mcp_servers: Default::default(), - github: None, - ..Default::default() - }), - graph: r#"digraph sync { - graph [ - goal="Detect and resolve drift between product docs, architecture docs, and code", - label="Sync" - ] - rankdir=LR - - start [shape=Mdiamond, label="Start"] - exit [shape=Msquare, label="Exit"] - - detect [label="Detect Drift", prompt="@prompts/sync/detect.md", reasoning_effort="high"] - propose [label="Propose Changes", prompt="@prompts/sync/propose.md"] - review [shape=hexagon, label="Review Changes"] - apply [label="Apply Changes", prompt="@prompts/sync/apply.md"] - - start -> detect - detect -> exit [condition="context.drift_found=false", label="No drift"] - detect -> propose [condition="context.drift_found=true", label="Drift found"] - propose -> review - review -> apply [label="[A] Accept"] - review -> propose [label="[R] Revise"] - apply -> exit -} -"#.into(), - }, - WorkflowDetail { - name: "Expand Product".into(), slug: "expand".into(), filename: "expand.fabro".into(), - description: "Evolves the product by analyzing usage patterns and specifications to propose and implement incremental improvements.".into(), - settings: run_settings_to_api(fabro_types::Settings { - version: Some(1), - goal: Some("Propose and implement incremental product improvements".into()), - graph: Some("expand.fabro".into()), - work_dir: None, - llm: Some(fabro_config::run::LlmSettings { - model: Some("claude-sonnet".into()), - provider: None, - fallbacks: None, - }), - setup: None, - sandbox: Some(fabro_config::sandbox::SandboxSettings { - provider: Some("daytona".into()), - preserve: None, - devcontainer: None, - local: None, - daytona: Some(fabro_sandbox::daytona::DaytonaConfig { - auto_stop_interval: Some(180), - labels: Some(std::collections::HashMap::from([ - ("project".into(), "expand".into()), - ("team".into(), "product".into()), - ])), - snapshot: Some(fabro_sandbox::daytona::DaytonaSnapshotConfig { - name: "expand-dev".into(), - cpu: Some(2), - memory: Some(4), - disk: Some(10), - dockerfile: None, - }), - network: None, - skip_clone: false, - }), - env: None, - }), - vars: Some(std::collections::HashMap::from([ - ("analytics_window".into(), "30d".into()), - ("min_confidence".into(), "0.8".into()), - ])), - hooks: vec![], - checkpoint: Default::default(), - pull_request: None, - artifacts: None, - mcp_servers: Default::default(), - github: None, - ..Default::default() - }), - graph: r#"digraph expand { - graph [ - goal="", - label="Expand" - ] - rankdir=LR - - start [shape=Mdiamond, label="Start"] - exit [shape=Msquare, label="Exit"] - - propose [label="Propose Changes", prompt="@prompts/expand/propose.md", reasoning_effort="high"] - approve [shape=hexagon, label="Approve Changes"] - execute [label="Execute Changes", prompt="@prompts/expand/execute.md"] - - start -> propose -> approve - approve -> execute [label="[A] Accept"] - approve -> propose [label="[R] Revise"] - execute -> exit -} -"#.into(), - }, - ]; - items.into_iter().find(|w| w.slug == name) - } -} - mod insights { use super::ts; use fabro_api::types::*; diff --git a/lib/crates/fabro-server/src/server.rs b/lib/crates/fabro-server/src/server.rs index 3985947f9..826d82f36 100644 --- a/lib/crates/fabro-server/src/server.rs +++ b/lib/crates/fabro-server/src/server.rs @@ -439,7 +439,6 @@ fn demo_routes() -> Router> { ) .route("/runs/{id}/usage", get(demo::get_run_usage)) .route("/runs/{id}/settings", get(demo::get_run_settings)) - .route("/runs/{id}/steer", post(demo::steer_run_stub)) .route("/runs/{id}/preview", post(demo::generate_preview_url_stub)) .route("/runs/{id}/ssh", post(demo::create_ssh_access_stub)) .route( @@ -450,9 +449,6 @@ fn demo_routes() -> Router> { "/runs/{id}/sandbox/file", get(demo::get_sandbox_file_stub).put(demo::put_sandbox_file_stub), ) - .route("/workflows", get(demo::list_workflows)) - .route("/workflows/{name}", get(demo::get_workflow)) - .route("/workflows/{name}/runs", get(demo::list_workflow_runs)) .route( "/insights/queries", get(demo::list_saved_queries).post(demo::save_query_stub), diff --git a/lib/crates/fabro-server/tests/it/pagination.rs b/lib/crates/fabro-server/tests/it/pagination.rs index 84cf42785..9ffc6d57e 100644 --- a/lib/crates/fabro-server/tests/it/pagination.rs +++ b/lib/crates/fabro-server/tests/it/pagination.rs @@ -45,14 +45,6 @@ struct PaginatedEndpoint { } const ENDPOINTS: &[PaginatedEndpoint] = &[ - PaginatedEndpoint { - path: "/api/v1/workflows", - name: "listWorkflows", - }, - PaginatedEndpoint { - path: "/api/v1/workflows/implement/runs", - name: "listWorkflowRuns", - }, PaginatedEndpoint { path: "/api/v1/insights/queries", name: "listSavedQueries", diff --git a/lib/packages/fabro-api-client/src/.openapi-generator/FILES b/lib/packages/fabro-api-client/src/.openapi-generator/FILES index e14472c81..84ae6b764 100644 --- a/lib/packages/fabro-api-client/src/.openapi-generator/FILES +++ b/lib/packages/fabro-api-client/src/.openapi-generator/FILES @@ -12,7 +12,6 @@ api/secrets-api.ts api/settings-api.ts api/system-api.ts api/usage-api.ts -api/workflows-api.ts base.ts common.ts configuration.ts @@ -102,7 +101,6 @@ models/paginated-run-list.ts models/paginated-run-stage-list.ts models/paginated-saved-query-list.ts models/paginated-stage-turn-list.ts -models/paginated-workflow-list.ts models/pagination-meta.ts models/preflight-check-detail.ts models/preflight-check-report.ts @@ -167,7 +165,6 @@ models/stage-status.ts models/stage-turn.ts models/start-run-request.ts models/status-reason.ts -models/steer-request.ts models/store-run-summary.ts models/submit-answer-request.ts models/system-info-response.ts @@ -184,10 +181,6 @@ models/usage-totals.ts models/user-response.ts models/web-settings.ts models/webhook-settings.ts -models/workflow-detail.ts models/workflow-diagnostic.ts -models/workflow-last-run.ts -models/workflow-list-item.ts models/workflow-reference.ts -models/workflow-schedule.ts models/write-blob-response.ts diff --git a/lib/packages/fabro-api-client/src/api.ts b/lib/packages/fabro-api-client/src/api.ts index 6aeaf8d36..a4d7f61ba 100644 --- a/lib/packages/fabro-api-client/src/api.ts +++ b/lib/packages/fabro-api-client/src/api.ts @@ -27,5 +27,4 @@ export * from './api/secrets-api'; export * from './api/settings-api'; export * from './api/system-api'; export * from './api/usage-api'; -export * from './api/workflows-api'; diff --git a/lib/packages/fabro-api-client/src/api/human-in-the-loop-api.ts b/lib/packages/fabro-api-client/src/api/human-in-the-loop-api.ts index ee83b0459..9dd157077 100644 --- a/lib/packages/fabro-api-client/src/api/human-in-the-loop-api.ts +++ b/lib/packages/fabro-api-client/src/api/human-in-the-loop-api.ts @@ -36,8 +36,6 @@ import type { SshAccessRequest } from '../models'; // @ts-ignore import type { SshAccessResponse } from '../models'; // @ts-ignore -import type { SteerRequest } from '../models'; -// @ts-ignore import type { SubmitAnswerRequest } from '../models'; /** * HumanInTheLoopApi - axios parameter creator @@ -341,52 +339,6 @@ export const HumanInTheLoopApiAxiosParamCreator = function (configuration?: Conf options: localVarRequestOptions, }; }, - /** - * Sends inline guidance to a running agent, targeting a specific file and line. The guidance is delivered asynchronously. - * @summary Steer Run - * @param {string} id Unique run identifier (ULID). - * @param {SteerRequest} steerRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - steerRun: async (id: string, steerRequest: SteerRequest, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'id' is not null or undefined - assertParamExists('steerRun', 'id', id) - // verify required parameter 'steerRequest' is not null or undefined - assertParamExists('steerRun', 'steerRequest', steerRequest) - const localVarPath = `/api/v1/runs/{id}/steer` - .replace(`{${"id"}}`, encodeURIComponent(String(id))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication mTLS required - await setApiKeyToObject(localVarHeaderParameter, "X-mTLS-Client-CN", configuration) - - // authentication BearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - localVarHeaderParameter['Content-Type'] = 'application/json'; - localVarHeaderParameter['Accept'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - localVarRequestOptions.data = serializeDataIfNeeded(steerRequest, localVarRequestOptions, configuration) - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, /** * Submits an answer to a pending question. The answer can be freeform text or a selected option key, depending on the question type. * @summary Submit Run Answer @@ -533,20 +485,6 @@ export const HumanInTheLoopApiFp = function(configuration?: Configuration) { const localVarOperationServerBasePath = operationServerMap['HumanInTheLoopApi.putSandboxFile']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); }, - /** - * Sends inline guidance to a running agent, targeting a specific file and line. The guidance is delivered asynchronously. - * @summary Steer Run - * @param {string} id Unique run identifier (ULID). - * @param {SteerRequest} steerRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async steerRun(id: string, steerRequest: SteerRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.steerRun(id, steerRequest, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['HumanInTheLoopApi.steerRun']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, /** * Submits an answer to a pending question. The answer can be freeform text or a selected option key, depending on the question type. * @summary Submit Run Answer @@ -640,17 +578,6 @@ export const HumanInTheLoopApiFactory = function (configuration?: Configuration, putSandboxFile(id: string, path: string, body: File, options?: RawAxiosRequestConfig): AxiosPromise { return localVarFp.putSandboxFile(id, path, body, options).then((request) => request(axios, basePath)); }, - /** - * Sends inline guidance to a running agent, targeting a specific file and line. The guidance is delivered asynchronously. - * @summary Steer Run - * @param {string} id Unique run identifier (ULID). - * @param {SteerRequest} steerRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - steerRun(id: string, steerRequest: SteerRequest, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.steerRun(id, steerRequest, options).then((request) => request(axios, basePath)); - }, /** * Submits an answer to a pending question. The answer can be freeform text or a selected option key, depending on the question type. * @summary Submit Run Answer @@ -745,18 +672,6 @@ export class HumanInTheLoopApi extends BaseAPI { return HumanInTheLoopApiFp(this.configuration).putSandboxFile(id, path, body, options).then((request) => request(this.axios, this.basePath)); } - /** - * Sends inline guidance to a running agent, targeting a specific file and line. The guidance is delivered asynchronously. - * @summary Steer Run - * @param {string} id Unique run identifier (ULID). - * @param {SteerRequest} steerRequest - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public steerRun(id: string, steerRequest: SteerRequest, options?: RawAxiosRequestConfig) { - return HumanInTheLoopApiFp(this.configuration).steerRun(id, steerRequest, options).then((request) => request(this.axios, this.basePath)); - } - /** * Submits an answer to a pending question. The answer can be freeform text or a selected option key, depending on the question type. * @summary Submit Run Answer diff --git a/lib/packages/fabro-api-client/src/api/workflows-api.ts b/lib/packages/fabro-api-client/src/api/workflows-api.ts deleted file mode 100644 index 2529630ca..000000000 --- a/lib/packages/fabro-api-client/src/api/workflows-api.ts +++ /dev/null @@ -1,312 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Fabro Run API - * HTTP API for managing Fabro workflow run executions. - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -import type { Configuration } from '../configuration'; -import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios'; -import globalAxios from 'axios'; -// Some imports not used depending on template conditions -// @ts-ignore -import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction, replaceWithSerializableTypeIfNeeded } from '../common'; -// @ts-ignore -import { BASE_PATH, COLLECTION_FORMATS, type RequestArgs, BaseAPI, RequiredError, operationServerMap } from '../base'; -// @ts-ignore -import type { ErrorResponse } from '../models'; -// @ts-ignore -import type { PaginatedRunList } from '../models'; -// @ts-ignore -import type { PaginatedWorkflowList } from '../models'; -// @ts-ignore -import type { WorkflowDetail } from '../models'; -/** - * WorkflowsApi - axios parameter creator - */ -export const WorkflowsApiAxiosParamCreator = function (configuration?: Configuration) { - return { - /** - * Returns a paginated list of runs filtered to a specific workflow. - * @summary List Workflow Runs - * @param {string} name URL-safe slug identifying a workflow definition. - * @param {number} [pageLimit] Maximum number of items to return per page. - * @param {number} [pageOffset] Number of items to skip before returning results. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listWorkflowRuns: async (name: string, pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'name' is not null or undefined - assertParamExists('listWorkflowRuns', 'name', name) - const localVarPath = `/api/v1/workflows/{name}/runs` - .replace(`{${"name"}}`, encodeURIComponent(String(name))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication mTLS required - await setApiKeyToObject(localVarHeaderParameter, "X-mTLS-Client-CN", configuration) - - // authentication BearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - if (pageLimit !== undefined) { - localVarQueryParameter['page[limit]'] = pageLimit; - } - - if (pageOffset !== undefined) { - localVarQueryParameter['page[offset]'] = pageOffset; - } - - localVarHeaderParameter['Accept'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * Returns a paginated list of workflow definitions available for execution. - * @summary List Workflows - * @param {number} [pageLimit] Maximum number of items to return per page. - * @param {number} [pageOffset] Number of items to skip before returning results. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listWorkflows: async (pageLimit?: number, pageOffset?: number, options: RawAxiosRequestConfig = {}): Promise => { - const localVarPath = `/api/v1/workflows`; - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication mTLS required - await setApiKeyToObject(localVarHeaderParameter, "X-mTLS-Client-CN", configuration) - - // authentication BearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - if (pageLimit !== undefined) { - localVarQueryParameter['page[limit]'] = pageLimit; - } - - if (pageOffset !== undefined) { - localVarQueryParameter['page[offset]'] = pageOffset; - } - - localVarHeaderParameter['Accept'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - /** - * Returns the full detail of a workflow including its Graphviz graph, resolved settings, and description. - * @summary Retrieve Workflow - * @param {string} name URL-safe slug identifying a workflow definition. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - retrieveWorkflow: async (name: string, options: RawAxiosRequestConfig = {}): Promise => { - // verify required parameter 'name' is not null or undefined - assertParamExists('retrieveWorkflow', 'name', name) - const localVarPath = `/api/v1/workflows/{name}` - .replace(`{${"name"}}`, encodeURIComponent(String(name))); - // use dummy base URL string because the URL constructor only accepts absolute URLs. - const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); - let baseOptions; - if (configuration) { - baseOptions = configuration.baseOptions; - } - - const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options}; - const localVarHeaderParameter = {} as any; - const localVarQueryParameter = {} as any; - - // authentication mTLS required - await setApiKeyToObject(localVarHeaderParameter, "X-mTLS-Client-CN", configuration) - - // authentication BearerAuth required - // http bearer authentication required - await setBearerAuthToObject(localVarHeaderParameter, configuration) - - localVarHeaderParameter['Accept'] = 'application/json'; - - setSearchParams(localVarUrlObj, localVarQueryParameter); - let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; - localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; - - return { - url: toPathString(localVarUrlObj), - options: localVarRequestOptions, - }; - }, - } -}; - -/** - * WorkflowsApi - functional programming interface - */ -export const WorkflowsApiFp = function(configuration?: Configuration) { - const localVarAxiosParamCreator = WorkflowsApiAxiosParamCreator(configuration) - return { - /** - * Returns a paginated list of runs filtered to a specific workflow. - * @summary List Workflow Runs - * @param {string} name URL-safe slug identifying a workflow definition. - * @param {number} [pageLimit] Maximum number of items to return per page. - * @param {number} [pageOffset] Number of items to skip before returning results. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async listWorkflowRuns(name: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listWorkflowRuns(name, pageLimit, pageOffset, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['WorkflowsApi.listWorkflowRuns']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * Returns a paginated list of workflow definitions available for execution. - * @summary List Workflows - * @param {number} [pageLimit] Maximum number of items to return per page. - * @param {number} [pageOffset] Number of items to skip before returning results. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async listWorkflows(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listWorkflows(pageLimit, pageOffset, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['WorkflowsApi.listWorkflows']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - /** - * Returns the full detail of a workflow including its Graphviz graph, resolved settings, and description. - * @summary Retrieve Workflow - * @param {string} name URL-safe slug identifying a workflow definition. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - async retrieveWorkflow(name: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.retrieveWorkflow(name, options); - const localVarOperationServerIndex = configuration?.serverIndex ?? 0; - const localVarOperationServerBasePath = operationServerMap['WorkflowsApi.retrieveWorkflow']?.[localVarOperationServerIndex]?.url; - return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); - }, - } -}; - -/** - * WorkflowsApi - factory interface - */ -export const WorkflowsApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { - const localVarFp = WorkflowsApiFp(configuration) - return { - /** - * Returns a paginated list of runs filtered to a specific workflow. - * @summary List Workflow Runs - * @param {string} name URL-safe slug identifying a workflow definition. - * @param {number} [pageLimit] Maximum number of items to return per page. - * @param {number} [pageOffset] Number of items to skip before returning results. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listWorkflowRuns(name: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.listWorkflowRuns(name, pageLimit, pageOffset, options).then((request) => request(axios, basePath)); - }, - /** - * Returns a paginated list of workflow definitions available for execution. - * @summary List Workflows - * @param {number} [pageLimit] Maximum number of items to return per page. - * @param {number} [pageOffset] Number of items to skip before returning results. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - listWorkflows(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.listWorkflows(pageLimit, pageOffset, options).then((request) => request(axios, basePath)); - }, - /** - * Returns the full detail of a workflow including its Graphviz graph, resolved settings, and description. - * @summary Retrieve Workflow - * @param {string} name URL-safe slug identifying a workflow definition. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - retrieveWorkflow(name: string, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.retrieveWorkflow(name, options).then((request) => request(axios, basePath)); - }, - }; -}; - -/** - * WorkflowsApi - object-oriented interface - */ -export class WorkflowsApi extends BaseAPI { - /** - * Returns a paginated list of runs filtered to a specific workflow. - * @summary List Workflow Runs - * @param {string} name URL-safe slug identifying a workflow definition. - * @param {number} [pageLimit] Maximum number of items to return per page. - * @param {number} [pageOffset] Number of items to skip before returning results. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public listWorkflowRuns(name: string, pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig) { - return WorkflowsApiFp(this.configuration).listWorkflowRuns(name, pageLimit, pageOffset, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * Returns a paginated list of workflow definitions available for execution. - * @summary List Workflows - * @param {number} [pageLimit] Maximum number of items to return per page. - * @param {number} [pageOffset] Number of items to skip before returning results. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public listWorkflows(pageLimit?: number, pageOffset?: number, options?: RawAxiosRequestConfig) { - return WorkflowsApiFp(this.configuration).listWorkflows(pageLimit, pageOffset, options).then((request) => request(this.axios, this.basePath)); - } - - /** - * Returns the full detail of a workflow including its Graphviz graph, resolved settings, and description. - * @summary Retrieve Workflow - * @param {string} name URL-safe slug identifying a workflow definition. - * @param {*} [options] Override http request option. - * @throws {RequiredError} - */ - public retrieveWorkflow(name: string, options?: RawAxiosRequestConfig) { - return WorkflowsApiFp(this.configuration).retrieveWorkflow(name, options).then((request) => request(this.axios, this.basePath)); - } -} - diff --git a/lib/packages/fabro-api-client/src/models/index.ts b/lib/packages/fabro-api-client/src/models/index.ts index 848793395..7b066fee8 100644 --- a/lib/packages/fabro-api-client/src/models/index.ts +++ b/lib/packages/fabro-api-client/src/models/index.ts @@ -82,7 +82,6 @@ export * from './paginated-run-list'; export * from './paginated-run-stage-list'; export * from './paginated-saved-query-list'; export * from './paginated-stage-turn-list'; -export * from './paginated-workflow-list'; export * from './pagination-meta'; export * from './preflight-check-detail'; export * from './preflight-check-report'; @@ -147,7 +146,6 @@ export * from './stage-status'; export * from './stage-turn'; export * from './start-run-request'; export * from './status-reason'; -export * from './steer-request'; export * from './store-run-summary'; export * from './submit-answer-request'; export * from './system-info-response'; @@ -164,10 +162,6 @@ export * from './usage-totals'; export * from './user-response'; export * from './web-settings'; export * from './webhook-settings'; -export * from './workflow-detail'; export * from './workflow-diagnostic'; -export * from './workflow-last-run'; -export * from './workflow-list-item'; export * from './workflow-reference'; -export * from './workflow-schedule'; export * from './write-blob-response'; diff --git a/lib/packages/fabro-api-client/src/models/paginated-workflow-list.ts b/lib/packages/fabro-api-client/src/models/paginated-workflow-list.ts deleted file mode 100644 index 19983ab35..000000000 --- a/lib/packages/fabro-api-client/src/models/paginated-workflow-list.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Fabro Run API - * HTTP API for managing Fabro workflow run executions. - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -// May contain unused imports in some cases -// @ts-ignore -import type { PaginationMeta } from './pagination-meta'; -// May contain unused imports in some cases -// @ts-ignore -import type { WorkflowListItem } from './workflow-list-item'; - -/** - * Paginated list of workflows. - */ -export interface PaginatedWorkflowList { - 'data': Array; - 'meta': PaginationMeta; -} - diff --git a/lib/packages/fabro-api-client/src/models/steer-request.ts b/lib/packages/fabro-api-client/src/models/steer-request.ts deleted file mode 100644 index 376bf0329..000000000 --- a/lib/packages/fabro-api-client/src/models/steer-request.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Fabro Run API - * HTTP API for managing Fabro workflow run executions. - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -// May contain unused imports in some cases -// @ts-ignore -import type { CodeLocation } from './code-location'; - -/** - * Request body for sending inline steering guidance to a running agent. - */ -export interface SteerRequest { - 'location'?: CodeLocation; - /** - * Guidance text for the agent. - */ - 'guidance': string; -} - diff --git a/lib/packages/fabro-api-client/src/models/workflow-detail.ts b/lib/packages/fabro-api-client/src/models/workflow-detail.ts deleted file mode 100644 index 09e91419a..000000000 --- a/lib/packages/fabro-api-client/src/models/workflow-detail.ts +++ /dev/null @@ -1,46 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Fabro Run API - * HTTP API for managing Fabro workflow run executions. - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -// May contain unused imports in some cases -// @ts-ignore -import type { RunSettings } from './run-settings'; - -/** - * Full detail of a workflow definition including graph and resolved settings. - */ -export interface WorkflowDetail { - /** - * Human-readable workflow name. - */ - 'name': string; - /** - * URL-safe slug used in API paths. - */ - 'slug': string; - /** - * Graphviz graph filename. - */ - 'filename': string; - /** - * Prose description of what the workflow does. - */ - 'description': string; - 'settings': RunSettings; - /** - * Graphviz DOT language source defining the workflow graph. - */ - 'graph': string; -} - diff --git a/lib/packages/fabro-api-client/src/models/workflow-last-run.ts b/lib/packages/fabro-api-client/src/models/workflow-last-run.ts deleted file mode 100644 index 2f0f782ae..000000000 --- a/lib/packages/fabro-api-client/src/models/workflow-last-run.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Fabro Run API - * HTTP API for managing Fabro workflow run executions. - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - - -/** - * Information about a workflow\'s most recent run. - */ -export interface WorkflowLastRun { - /** - * ISO 8601 timestamp of the most recent run. - */ - 'ran_at': string; -} - diff --git a/lib/packages/fabro-api-client/src/models/workflow-list-item.ts b/lib/packages/fabro-api-client/src/models/workflow-list-item.ts deleted file mode 100644 index c2db19e62..000000000 --- a/lib/packages/fabro-api-client/src/models/workflow-list-item.ts +++ /dev/null @@ -1,42 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Fabro Run API - * HTTP API for managing Fabro workflow run executions. - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - -// May contain unused imports in some cases -// @ts-ignore -import type { WorkflowLastRun } from './workflow-last-run'; -// May contain unused imports in some cases -// @ts-ignore -import type { WorkflowSchedule } from './workflow-schedule'; - -/** - * Summary of a workflow shown in list views. - */ -export interface WorkflowListItem { - /** - * Human-readable workflow name. - */ - 'name': string; - /** - * URL-safe slug used in API paths. - */ - 'slug': string; - /** - * Graphviz graph filename. - */ - 'filename': string; - 'last_run'?: WorkflowLastRun; - 'schedule'?: WorkflowSchedule; -} - diff --git a/lib/packages/fabro-api-client/src/models/workflow-schedule.ts b/lib/packages/fabro-api-client/src/models/workflow-schedule.ts deleted file mode 100644 index 096347c0e..000000000 --- a/lib/packages/fabro-api-client/src/models/workflow-schedule.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * Fabro Run API - * HTTP API for managing Fabro workflow run executions. - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - - - -/** - * Schedule configuration for a workflow. - */ -export interface WorkflowSchedule { - /** - * Cron-like schedule expression. - */ - 'expression': string; - /** - * ISO 8601 timestamp of the next scheduled run. - */ - 'next_run'?: string; -} -