From 8f97052b082462a3c8836b19712307574ed22cdd Mon Sep 17 00:00:00 2001 From: aaugustin Date: Wed, 25 Jun 2025 13:17:06 +0300 Subject: [PATCH 1/4] check docker client --- third_party/agent_runner/components.json | 12 +- third_party/agent_runner/package.json | 3 +- third_party/agent_runner/src-tauri/Cargo.lock | 2 +- third_party/agent_runner/src-tauri/src/lib.rs | 111 +++++++++++------- .../lib/components/StartDockerDialog.svelte | 18 +++ .../alert-dialog/alert-dialog-action.svelte | 13 ++ .../alert-dialog/alert-dialog-cancel.svelte | 17 +++ .../alert-dialog/alert-dialog-content.svelte | 26 ++++ .../alert-dialog-description.svelte | 16 +++ .../alert-dialog/alert-dialog-footer.svelte | 20 ++++ .../alert-dialog/alert-dialog-header.svelte | 20 ++++ .../alert-dialog/alert-dialog-overlay.svelte | 19 +++ .../ui/alert-dialog/alert-dialog-title.svelte | 18 +++ .../lib/components/ui/alert-dialog/index.ts | 40 +++++++ .../agent_runner/src/routes/+page.svelte | 84 ++++++++----- 15 files changed, 337 insertions(+), 82 deletions(-) create mode 100644 third_party/agent_runner/src/lib/components/StartDockerDialog.svelte create mode 100644 third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte create mode 100644 third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte create mode 100644 third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte create mode 100644 third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte create mode 100644 third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte create mode 100644 third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte create mode 100644 third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte create mode 100644 third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte create mode 100644 third_party/agent_runner/src/lib/components/ui/alert-dialog/index.ts diff --git a/third_party/agent_runner/components.json b/third_party/agent_runner/components.json index 8fb90d2..182ced4 100644 --- a/third_party/agent_runner/components.json +++ b/third_party/agent_runner/components.json @@ -1,14 +1,16 @@ { "$schema": "https://shadcn-svelte.com/schema.json", - "style": "new-york", "tailwind": { - "config": "tailwind.config.ts", "css": "src/app.css", "baseColor": "slate" }, "aliases": { "components": "$lib/components", - "utils": "$lib/utils" + "utils": "$lib/utils", + "ui": "$lib/components/ui", + "hooks": "$lib/hooks", + "lib": "$lib" }, - "typescript": true -} \ No newline at end of file + "typescript": true, + "registry": "https://tw3.shadcn-svelte.com/registry/new-york" +} diff --git a/third_party/agent_runner/package.json b/third_party/agent_runner/package.json index 6427c34..8cb136d 100644 --- a/third_party/agent_runner/package.json +++ b/third_party/agent_runner/package.json @@ -34,7 +34,8 @@ "openapi-typescript": "^7.6.1", "openapi-typescript-codegen": "^0.29.0", "svelte-radix": "^2.0.1", - "viem": "^2.28.1" + "viem": "^2.28.1", + "yarn": "^1.22.22" }, "devDependencies": { "@sveltejs/adapter-static": "^3.0.6", diff --git a/third_party/agent_runner/src-tauri/Cargo.lock b/third_party/agent_runner/src-tauri/Cargo.lock index 410fb81..8433c60 100644 --- a/third_party/agent_runner/src-tauri/Cargo.lock +++ b/third_party/agent_runner/src-tauri/Cargo.lock @@ -19,7 +19,7 @@ checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "agent_runner" -version = "0.1.23" +version = "0.1.24" dependencies = [ "base64 0.22.1", "bollard", diff --git a/third_party/agent_runner/src-tauri/src/lib.rs b/third_party/agent_runner/src-tauri/src/lib.rs index b83df5c..d8fe924 100644 --- a/third_party/agent_runner/src-tauri/src/lib.rs +++ b/third_party/agent_runner/src-tauri/src/lib.rs @@ -38,23 +38,31 @@ use crate::types::{Agent, AgentStatus, UserConfiguration}; const IMAGE_NAME: &str = "8ball030/capitalisation_station:latest"; const REGISTRY: &str = "https://index.docker.io/v1/"; // Adjust for private registries -/// Connect to Docker based on the current platform. -fn get_docker_client() -> Docker { - #[cfg(target_os = "windows")] - { - Docker::connect_with_named_pipe_defaults().unwrap_or_else(|e| { - eprintln!("❌ Failed to connect to Docker via named pipe: {}", e); - process::exit(1); - }) - } +pub async fn get_docker_client() -> Result { + // Initialize the Docker client based on platform + let client = { + #[cfg(target_os = "windows")] + { + Docker::connect_with_named_pipe_defaults() + } - #[cfg(not(target_os = "windows"))] - { - Docker::connect_with_unix_defaults().unwrap_or_else(|e| { - eprintln!("❌ Failed to connect to Docker via unix socket: {}", e); - process::exit(1); - }) + #[cfg(not(target_os = "windows"))] + { + Docker::connect_with_unix_defaults() + } + }; + + let client = match client { + Ok(c) => c, + Err(e) => return Err(format!("❌ Failed to connect to Docker: {}", e)), + }; + + // Ping the Docker daemon to confirm it's alive + if let Err(e) = client.ping().await { + return Err(format!("❌ Docker ping failed: {}", e)); } + + Ok(client) } /// Get the path to Docker's config.json @@ -104,10 +112,10 @@ fn get_credentials_for_registry(registry: &str) -> Option { /// Pull a Docker image, streaming output status. pub async fn fetch_docker_image() -> Result<(), String> { - let docker = get_docker_client(); + let docker = get_docker_client().await; // Check if the image already exists - let images = docker + let images = docker.clone()? .list_images(None::>) .await .unwrap_or_default(); @@ -129,7 +137,7 @@ pub async fn fetch_docker_image() -> Result<(), String> { let credentials = get_credentials_for_registry(REGISTRY); - let mut stream = docker.create_image(pull_options, None, credentials); + let mut stream = docker?.create_image(pull_options, None, credentials); println!("🚀 Pulling image: {}", IMAGE_NAME); @@ -227,14 +235,14 @@ fn generate_agent_name() -> String { } async fn get_container_status() -> Vec { - let docker = get_docker_client(); + let docker = get_docker_client().await; let container_options: ListContainersOptions = ListContainersOptions { all: true, ..Default::default() }; - let containers: Vec = docker + let containers: Vec = docker.expect("Failed to connect to Docker") .list_containers(Some(container_options)) .await .expect("Failed to list containers"); @@ -264,13 +272,13 @@ async fn get_container_status() -> Vec { } async fn container_exists(id: &str) -> bool { - let docker = get_docker_client(); + let docker = get_docker_client().await; let container_options: ListContainersOptions = ListContainersOptions { all: true, ..Default::default() }; - let containers = docker + let containers = docker.expect("Failed to connect to Docker") .list_containers(Some(container_options)) .await .unwrap_or_default(); @@ -291,13 +299,13 @@ fn list_agents() -> Vec { #[tauri::command] async fn stop_container_command(id: String) -> Result { - let docker = get_docker_client(); + let docker = get_docker_client().await; if !container_exists(&id).await { return Err("Container not found.".into()); } - docker + docker? .stop_container(&id, None) .await .map(|_| format!("Stopped container: {}", id)) @@ -306,13 +314,13 @@ async fn stop_container_command(id: String) -> Result { #[tauri::command] async fn pause_container_command(id: String) -> Result { - let docker = get_docker_client(); + let docker = get_docker_client().await; if !container_exists(&id).await { return Err("Container not found.".into()); } - docker + docker? .pause_container(&id) .await .map(|_| format!("Paused container: {}", id)) @@ -321,13 +329,13 @@ async fn pause_container_command(id: String) -> Result { #[tauri::command] async fn unpause_container_command(id: String) -> Result { - let docker = get_docker_client(); + let docker = get_docker_client().await; if !container_exists(&id).await { return Err("Container not found.".into()); } - docker + docker? .unpause_container(&id) .await .map(|_| format!("Unpaused container: {}", id)) @@ -336,13 +344,13 @@ async fn unpause_container_command(id: String) -> Result { #[tauri::command] async fn delete_container_command(id: &str) -> Result<(), String> { - let docker = get_docker_client(); + let docker = get_docker_client().await; if !container_exists(id).await { return Err("Container not found.".into()); } - docker + docker? .remove_container( id, Some(RemoveContainerOptions { @@ -359,14 +367,14 @@ use futures::TryStreamExt; #[tauri::command] async fn get_container_logs(id: String) -> Result { - let docker = get_docker_client(); + let docker = get_docker_client().await; - let container_status = docker + let container_status = docker.clone()? .inspect_container(&id, None) .await .map_err(|e| format!("Error inspecting container: {}", e))?; if container_status.state.unwrap().running.unwrap() { - let mut logs = docker.logs( + let mut logs = docker?.logs( &id, Some(LogsOptions:: { stdout: true, @@ -392,7 +400,7 @@ async fn get_container_logs(id: String) -> Result { Ok(output) } else { println!("Container is not running."); - let mut logs = docker + let mut logs = docker? .logs( &id, Some(LogsOptions:: { @@ -427,7 +435,7 @@ fn start_docker_container(config: UserConfiguration) -> Result { let rt = Runtime::new().map_err(|e| format!("Failed to create Tokio runtime: {}", e))?; rt.block_on(async { - let docker = get_docker_client(); + let docker = get_docker_client().await; if let Err(e) = fetch_docker_image().await { eprintln!("❌ Error pulling image: {}", e); return Err(format!("Failed to pull image {}: {}", IMAGE_NAME, e)); @@ -462,12 +470,12 @@ fn start_docker_container(config: UserConfiguration) -> Result { platform: None, }; - let container = docker + let container = docker.clone()? .create_container(Some(create_options), container_config) .await .map_err(|e| format!("❌ Error creating container: {}", e))?; - docker + docker? .start_container(&container.id, None::>) .await .map_err(|e| format!("❌ Error starting container: {}", e))?; @@ -495,8 +503,8 @@ async fn get_agent_state(id: String) -> StateResponse { // we make a request to the port 8889 of the container // We use the bollard client to temporarily forward the port // and then we make a request to the container - let docker = get_docker_client(); - let container_info = docker.inspect_container(&id, None).await.unwrap(); + let docker = get_docker_client().await; + let container_info = docker.expect("DOCKER IS NOT CONNECTED").inspect_container(&id, None).await.unwrap(); let ip = container_info.network_settings.unwrap().ip_address.unwrap(); let url = format!("http://{}:8889/state", ip); let client = reqwest::Client::new(); @@ -561,7 +569,7 @@ async fn generate_key_file(app: AppHandle, key_name: &str, key_file: &str) -> Re } // Initialize Docker client - let docker = get_docker_client(); + let docker = get_docker_client().await; if let Err(e) = fetch_docker_image().await { eprintln!("❌ Error pulling image: {}", e); @@ -581,7 +589,7 @@ async fn generate_key_file(app: AppHandle, key_name: &str, key_file: &str) -> Re }; - let container = docker + let container = docker.clone()? .create_container(Some(CreateContainerOptions { name: "test-container" , platform: None}), container_config) .await .expect("Failed to create container"); @@ -589,14 +597,14 @@ async fn generate_key_file(app: AppHandle, key_name: &str, key_file: &str) -> Re println!("Created container: {}", container.id); println!("Starting container with ID: {}", container.id); - docker + docker.clone()? .start_container(&container.id, None::>) .await .map_err(|e| format!("Failed to start container: {}", e))?; // Wait for the container to finish println!("Waiting for container to finish running: {}", container.id); - while docker + while docker.clone()? .inspect_container(&container.id, None) .await .map_err(|e| format!("Failed to inspect container: {}", e))? @@ -610,7 +618,7 @@ async fn generate_key_file(app: AppHandle, key_name: &str, key_file: &str) -> Re println!("Container finished running: {}", container.id); // Remove the container - docker + docker? .remove_container( &container.id, Some(RemoveContainerOptions { @@ -631,6 +639,20 @@ async fn generate_key_file(app: AppHandle, key_name: &str, key_file: &str) -> Re } } +#[tauri::command] +async fn connect_to_docker() -> bool { + match get_docker_client().await { + Ok(_client) => { + return true + } + Err(e) => { + eprintln!("❌ Failed to connect to Docker: {}", e); + } + } + false +} + + #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { tauri::Builder::default() @@ -650,6 +672,7 @@ pub fn run() { get_container_status_command, generate_key_file, save_logs_to_file, + connect_to_docker, ]) .run(tauri::generate_context!()) .expect("error while running tauri application"); diff --git a/third_party/agent_runner/src/lib/components/StartDockerDialog.svelte b/third_party/agent_runner/src/lib/components/StartDockerDialog.svelte new file mode 100644 index 0000000..c6a2579 --- /dev/null +++ b/third_party/agent_runner/src/lib/components/StartDockerDialog.svelte @@ -0,0 +1,18 @@ + + + + + Docker is not Running + + You need to start Docker to manage your agents. + + + + + isDockerAlive()}>Try Again + + + diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte new file mode 100644 index 0000000..715a24f --- /dev/null +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte @@ -0,0 +1,13 @@ + + + diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte new file mode 100644 index 0000000..e0226fd --- /dev/null +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte @@ -0,0 +1,17 @@ + + + diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte new file mode 100644 index 0000000..858b8bc --- /dev/null +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte @@ -0,0 +1,26 @@ + + + + + + diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte new file mode 100644 index 0000000..600ef8c --- /dev/null +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte @@ -0,0 +1,16 @@ + + + diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte new file mode 100644 index 0000000..91ecaba --- /dev/null +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte @@ -0,0 +1,20 @@ + + +
+ {@render children?.()} +
diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte new file mode 100644 index 0000000..44a7b08 --- /dev/null +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte @@ -0,0 +1,20 @@ + + +
+ {@render children?.()} +
diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte new file mode 100644 index 0000000..62acab8 --- /dev/null +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte @@ -0,0 +1,19 @@ + + + diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte new file mode 100644 index 0000000..76949d2 --- /dev/null +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte @@ -0,0 +1,18 @@ + + + diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/index.ts b/third_party/agent_runner/src/lib/components/ui/alert-dialog/index.ts new file mode 100644 index 0000000..dd20f99 --- /dev/null +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/index.ts @@ -0,0 +1,40 @@ +import { AlertDialog as AlertDialogPrimitive } from "bits-ui"; + +import Title from "./alert-dialog-title.svelte"; +import Action from "./alert-dialog-action.svelte"; +import Cancel from "./alert-dialog-cancel.svelte"; +import Footer from "./alert-dialog-footer.svelte"; +import Header from "./alert-dialog-header.svelte"; +import Overlay from "./alert-dialog-overlay.svelte"; +import Content from "./alert-dialog-content.svelte"; +import Description from "./alert-dialog-description.svelte"; + +const Root = AlertDialogPrimitive.Root; +const Trigger = AlertDialogPrimitive.Trigger; +const Portal = AlertDialogPrimitive.Portal; + +export { + Root, + Title, + Action, + Cancel, + Portal, + Footer, + Header, + Trigger, + Overlay, + Content, + Description, + // + Root as AlertDialog, + Title as AlertDialogTitle, + Action as AlertDialogAction, + Cancel as AlertDialogCancel, + Portal as AlertDialogPortal, + Footer as AlertDialogFooter, + Header as AlertDialogHeader, + Trigger as AlertDialogTrigger, + Overlay as AlertDialogOverlay, + Content as AlertDialogContent, + Description as AlertDialogDescription, +}; diff --git a/third_party/agent_runner/src/routes/+page.svelte b/third_party/agent_runner/src/routes/+page.svelte index 6b24927..07bd7dc 100644 --- a/third_party/agent_runner/src/routes/+page.svelte +++ b/third_party/agent_runner/src/routes/+page.svelte @@ -1,13 +1,18 @@ - - Derolas
- - {#if isRunningInTauri} - - - - - - Deloras - - Manage your agents and their configurations. - - - - - - -
- - - - - -
+ {#if isLoading} +

Loading...

+ {:else if isRunningInTauri} + {#if !isDockerRunning} + + {:else} - + + + Deloras + + Manage your agents and their configurations. + + + + + + +
+ + + + + +
+ + + + +
-
-
+ {/if} {:else} - + {/if} +
From c2472950ac3da655dad22e1392b26957c308fb1f Mon Sep 17 00:00:00 2001 From: aaugustin Date: Wed, 25 Jun 2025 16:42:24 +0300 Subject: [PATCH 2/4] added version badge to Tauri version --- .../components/ApplicationVersionBadge.svelte | 6 ++++ .../agent_runner/src/routes/+page.svelte | 33 ++++++++++++------- 2 files changed, 28 insertions(+), 11 deletions(-) create mode 100644 third_party/agent_runner/src/lib/components/ApplicationVersionBadge.svelte diff --git a/third_party/agent_runner/src/lib/components/ApplicationVersionBadge.svelte b/third_party/agent_runner/src/lib/components/ApplicationVersionBadge.svelte new file mode 100644 index 0000000..a995806 --- /dev/null +++ b/third_party/agent_runner/src/lib/components/ApplicationVersionBadge.svelte @@ -0,0 +1,6 @@ + + +v{appVersion ? appVersion : "unknown"} diff --git a/third_party/agent_runner/src/routes/+page.svelte b/third_party/agent_runner/src/routes/+page.svelte index 07bd7dc..25162f6 100644 --- a/third_party/agent_runner/src/routes/+page.svelte +++ b/third_party/agent_runner/src/routes/+page.svelte @@ -1,25 +1,35 @@ - + Docker is not Running You need to start Docker to manage your agents. - + isDockerAlive()}>Try Again - + diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte index 715a24f..57d643b 100644 --- a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte @@ -3,11 +3,19 @@ import { buttonVariants } from "$lib/components/ui/button/index.js"; import { cn } from "$lib/utils.js"; - let { - class: className, - ref = $bindable(null), - ...restProps - }: AlertDialogPrimitive.ActionProps = $props(); + type $$Props = AlertDialogPrimitive.ActionProps; + type $$Events = AlertDialogPrimitive.ActionEvents; + + let className: $$Props["class"] = undefined; + export { className as class }; - + + + diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte index e0226fd..ef0a953 100644 --- a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte @@ -3,15 +3,19 @@ import { buttonVariants } from "$lib/components/ui/button/index.js"; import { cn } from "$lib/utils.js"; - let { - class: className, - ref = $bindable(null), - ...restProps - }: AlertDialogPrimitive.CancelProps = $props(); + type $$Props = AlertDialogPrimitive.CancelProps; + type $$Events = AlertDialogPrimitive.CancelEvents; + + let className: $$Props["class"] = undefined; + export { className as class }; + {...$$restProps} + on:click + on:keydown + let:builder +> + + diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte index 858b8bc..062b241 100644 --- a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte @@ -1,26 +1,27 @@ - - + + - + {...$$restProps} + > + + + diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte index 600ef8c..f35ac20 100644 --- a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte @@ -2,15 +2,15 @@ import { AlertDialog as AlertDialogPrimitive } from "bits-ui"; import { cn } from "$lib/utils.js"; - let { - class: className, - ref = $bindable(null), - ...restProps - }: AlertDialogPrimitive.DescriptionProps = $props(); + type $$Props = AlertDialogPrimitive.DescriptionProps; + + let className: $$Props["class"] = undefined; + export { className as class }; + {...$$restProps} +> + + diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte index 91ecaba..a235d1f 100644 --- a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte @@ -1,20 +1,16 @@
- {@render children?.()} +
diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte index 44a7b08..2650ef9 100644 --- a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte @@ -1,20 +1,13 @@ -
- {@render children?.()} +
+
diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte index 62acab8..1489be4 100644 --- a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte @@ -1,19 +1,21 @@ diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-portal.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-portal.svelte new file mode 100644 index 0000000..e227219 --- /dev/null +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-portal.svelte @@ -0,0 +1,9 @@ + + + + + diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte index 76949d2..51ef27b 100644 --- a/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte @@ -2,17 +2,13 @@ import { AlertDialog as AlertDialogPrimitive } from "bits-ui"; import { cn } from "$lib/utils.js"; - let { - class: className, - level = 3, - ref = $bindable(null), - ...restProps - }: AlertDialogPrimitive.TitleProps = $props(); + type $$Props = AlertDialogPrimitive.TitleProps; + + let className: $$Props["class"] = undefined; + export let level: $$Props["level"] = "h3"; + export { className as class }; - + + + diff --git a/third_party/agent_runner/src/lib/components/ui/alert-dialog/index.ts b/third_party/agent_runner/src/lib/components/ui/alert-dialog/index.ts index dd20f99..be56dd7 100644 --- a/third_party/agent_runner/src/lib/components/ui/alert-dialog/index.ts +++ b/third_party/agent_runner/src/lib/components/ui/alert-dialog/index.ts @@ -3,6 +3,7 @@ import { AlertDialog as AlertDialogPrimitive } from "bits-ui"; import Title from "./alert-dialog-title.svelte"; import Action from "./alert-dialog-action.svelte"; import Cancel from "./alert-dialog-cancel.svelte"; +import Portal from "./alert-dialog-portal.svelte"; import Footer from "./alert-dialog-footer.svelte"; import Header from "./alert-dialog-header.svelte"; import Overlay from "./alert-dialog-overlay.svelte"; @@ -11,7 +12,6 @@ import Description from "./alert-dialog-description.svelte"; const Root = AlertDialogPrimitive.Root; const Trigger = AlertDialogPrimitive.Trigger; -const Portal = AlertDialogPrimitive.Portal; export { Root, diff --git a/third_party/agent_runner/yarn.lock b/third_party/agent_runner/yarn.lock index 4d677e7..5ae9f51 100644 --- a/third_party/agent_runner/yarn.lock +++ b/third_party/agent_runner/yarn.lock @@ -71,6 +71,14 @@ dependencies: regenerator-runtime "^0.14.0" +"@clack/core@^0.3.4": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@clack/core/-/core-0.3.5.tgz#3e1454c83a329353cc3a6ff8491e4284d49565bb" + integrity sha512-5cfhQNH+1VQ2xLQlmzXMqUoiaH0lRBq9/CLW9lTyMbuKLC3+xEK01tHVvyut++mLOn5urSHmkm6I0Lg9MaJSTQ== + dependencies: + picocolors "^1.0.0" + sisteransi "^1.0.5" + "@coinbase/wallet-sdk@4.3.0": version "4.3.0" resolved "https://registry.yarnpkg.com/@coinbase/wallet-sdk/-/wallet-sdk-4.3.0.tgz#03b8fce92ac2b3b7cf132f64d6008ac081569b4e" @@ -286,19 +294,19 @@ ethereum-cryptography "^2.0.0" micro-ftch "^0.3.1" -"@floating-ui/core@^1.3.1", "@floating-ui/core@^1.6.0": - version "1.6.9" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.9.tgz#64d1da251433019dafa091de9b2886ff35ec14e6" - integrity sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw== +"@floating-ui/core@^1.3.1", "@floating-ui/core@^1.7.1": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.7.1.tgz#1abc6b157d4a936174f9dbd078278c3a81c8bc6b" + integrity sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw== dependencies: "@floating-ui/utils" "^0.2.9" "@floating-ui/dom@^1.4.5": - version "1.6.13" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.13.tgz#a8a938532aea27a95121ec16e667a7cbe8c59e34" - integrity sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w== + version "1.7.1" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.7.1.tgz#76a4e3cbf7a08edf40c34711cf64e0cc8053d912" + integrity sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ== dependencies: - "@floating-ui/core" "^1.6.0" + "@floating-ui/core" "^1.7.1" "@floating-ui/utils" "^0.2.9" "@floating-ui/utils@^0.2.9": @@ -307,9 +315,9 @@ integrity sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg== "@internationalized/date@^3.5.0", "@internationalized/date@^3.5.1": - version "3.8.0" - resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.8.0.tgz#24fb301029224351381aa87cba853ca1093af094" - integrity sha512-J51AJ0fEL68hE4CwGPa6E0PO6JDaVLd8aln48xFCSy7CZkZc96dGEGmLs2OEEbBxcsVZtfrqkXJwI2/MSG8yKw== + version "3.8.2" + resolved "https://registry.yarnpkg.com/@internationalized/date/-/date-3.8.2.tgz#977620c1407cc6830fd44cb505679d23c599e119" + integrity sha512-/wENk7CbvLbkUvX1tu0mwq49CVkkWpkXubGel6birjRPyo6uQ4nQpnq5xZu823zRCwwn82zgHrvgF1vZyvmVgA== dependencies: "@swc/helpers" "^0.5.0" @@ -2848,6 +2856,11 @@ chalk@4.1.2, chalk@^4.1.0, chalk@^4.1.1: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" + integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== + chalk@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" @@ -2972,6 +2985,11 @@ commander@8.3.0: resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== +commander@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + commander@^12.0.0: version "12.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" @@ -3054,7 +3072,7 @@ cross-fetch@^4.0.0: dependencies: node-fetch "^2.7.0" -cross-spawn@^7.0.6: +cross-spawn@^7.0.3, cross-spawn@^7.0.6: version "7.0.6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== @@ -3529,6 +3547,21 @@ events@3.3.0, events@^3.3.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== +execa@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" + integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^4.3.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + expect-type@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.2.1.tgz#af76d8b357cf5fa76c41c09dafb79c549e75f71f" @@ -3632,9 +3665,9 @@ flatted@^3.3.3: integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== focus-trap@^7.5.2: - version "7.6.4" - resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.6.4.tgz#455ec5c51fee5ae99604ca15142409ffbbf84db9" - integrity sha512-xx560wGBk7seZ6y933idtjJQc1l+ck+pI3sKvhKozdBV1dRZoKhkW5xoCaFv9tQiX5RH1xfSxjuNu6g+lmN/gw== + version "7.6.5" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.6.5.tgz#56f0814286d43c1a2688e9bc4f31f17ae047fb76" + integrity sha512-7Ke1jyybbbPZyZXFxEftUtxFGLMpE2n6A+z//m4CRDlj0hW+o3iYSmh8nFlYMurOiJVDmJRilUQtJr08KfIxlg== dependencies: tabbable "^6.2.0" @@ -3731,6 +3764,11 @@ get-proto@^1.0.0, get-proto@^1.0.1: dunder-proto "^1.0.1" es-object-atoms "^1.0.0" +get-stream@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + get-uri@^6.0.1: version "6.0.4" resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.4.tgz#6daaee9e12f9759e19e55ba313956883ef50e0a7" @@ -3872,6 +3910,11 @@ https-proxy-agent@^7.0.5, https-proxy-agent@^7.0.6: agent-base "^7.1.2" debug "4" +human-signals@^4.3.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" + integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== + iconv-lite@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" @@ -4046,6 +4089,11 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + is-typed-array@^1.1.3: version "1.1.15" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" @@ -4063,6 +4111,11 @@ is-unicode-supported@^0.1.0: resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-unicode-supported@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz#09f0ab0de6d3744d48d265ebb98f65d11f2a9b3a" + integrity sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -4355,6 +4408,11 @@ math-intrinsics@^1.1.0: resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" @@ -4390,6 +4448,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + min-indent@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" @@ -4557,6 +4620,13 @@ normalize-range@^0.1.2: resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== +npm-run-path@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f" + integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== + dependencies: + path-key "^4.0.0" + nwsapi@^2.2.16: version "2.2.20" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.20.tgz#22e53253c61e7b0e7e93cef42c891154bcca11ef" @@ -4609,6 +4679,13 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + openapi-typescript-codegen@^0.29.0: version "0.29.0" resolved "https://registry.yarnpkg.com/openapi-typescript-codegen/-/openapi-typescript-codegen-0.29.0.tgz#e98a1daa223ccdeb1cc51b2e2dc11bafae6fe746" @@ -4750,6 +4827,11 @@ path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -5332,6 +5414,18 @@ sha.js@^2.4.11: inherits "^2.0.1" safe-buffer "^5.0.1" +shadcn-svelte@0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/shadcn-svelte/-/shadcn-svelte-0.14.3.tgz#f0a9daf6aea48ab70072928f6bbdc4c1b6051dfa" + integrity sha512-imvzRaSe00lRwywM7UyACGmSnCQzzSrUwN6MU0NfI+lQbzO645BilHYgOvSzXapYYnUc8fcqUICmkw0DZ4FbEw== + dependencies: + "@clack/core" "^0.3.4" + chalk "5.2.0" + commander "^10.0.1" + execa "^7.2.0" + is-unicode-supported "^2.0.0" + node-fetch-native "^1.6.4" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -5349,7 +5443,7 @@ siginfo@^2.0.0: resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== -signal-exit@^3.0.2: +signal-exit@^3.0.2, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -5368,6 +5462,11 @@ sirv@^3.0.0, sirv@^3.0.1: mrmime "^2.0.0" totalist "^3.0.0" +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" @@ -5527,6 +5626,11 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + strip-indent@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001"