From 56d2df03528bc17a63434f997471ec0c2656912a Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Sun, 5 Jul 2026 14:06:09 -0700 Subject: [PATCH 1/2] feat(sidecar): add provided_commands wire request for per-package command listing --- crates/sidecar-browser/src/wire_dispatch.rs | 11 + crates/sidecar-core/src/frames.rs | 33 +- crates/sidecar-core/src/lib.rs | 14 +- crates/sidecar-core/src/router.rs | 8 +- .../protocol/secure_exec_sidecar_v1.bare | 17 +- crates/sidecar-protocol/src/protocol.rs | 29 +- crates/sidecar/src/service.rs | 3 + crates/sidecar/src/state.rs | 3 + crates/sidecar/src/vm.rs | 67 +++- packages/core/src/generated-protocol.ts | 287 +++++++++++------- packages/core/src/request-payloads.ts | 8 + packages/core/src/response-payloads.ts | 17 ++ packages/core/src/sidecar-process.ts | 31 ++ 13 files changed, 384 insertions(+), 144 deletions(-) diff --git a/crates/sidecar-browser/src/wire_dispatch.rs b/crates/sidecar-browser/src/wire_dispatch.rs index 72a95e3d8..4cd8e79d2 100644 --- a/crates/sidecar-browser/src/wire_dispatch.rs +++ b/crates/sidecar-browser/src/wire_dispatch.rs @@ -199,6 +199,17 @@ where "link_package is not available in the converged browser runtime", ) } + RequestRoute::ProvidedCommands(payload) => { + // Provided command metadata is retained by the native sidecar's + // host-backed package projection, which the converged browser + // runtime does not provide. + let _ = payload; + rejected( + &request, + "unsupported", + "provided_commands is not available in the converged browser runtime", + ) + } RequestRoute::UnsupportedHostCallbackDirection => { unsupported_host_callback_direction_dispatch(&request) } diff --git a/crates/sidecar-core/src/frames.rs b/crates/sidecar-core/src/frames.rs index b1fa295d9..6d21cc83d 100644 --- a/crates/sidecar-core/src/frames.rs +++ b/crates/sidecar-core/src/frames.rs @@ -1,15 +1,16 @@ use secure_exec_sidecar_protocol::protocol::{ AuthenticateRequest, AuthenticatedResponse, BoundUdpSnapshotResponse, EventFrame, EventPayload, LayerCreatedResponse, LayerSealedResponse, ListenerSnapshotResponse, OverlayCreatedResponse, - OwnershipScope, PackageLinkedResponse, ProcessExitedEvent, ProcessKilledResponse, - ProcessOutputEvent, ProcessSnapshotEntry, ProcessSnapshotResponse, ProcessStartedResponse, - ProjectedCommand, ProtocolSchema, RejectedResponse, RequestFrame, RequestId, ResponseFrame, - ResponsePayload, RootFilesystemBootstrappedResponse, RootFilesystemEntry, - RootFilesystemSnapshotResponse, SessionOpenedResponse, SignalHandlerRegistration, - SignalStateResponse, SnapshotExportedResponse, SnapshotImportedResponse, SocketStateEntry, - StdinClosedResponse, StdinWrittenResponse, StreamChannel, StructuredEvent, - VmConfiguredResponse, VmCreatedResponse, VmDisposedResponse, VmLifecycleEvent, - VmLifecycleState, ZombieTimerCountResponse, PROTOCOL_VERSION, + OwnershipScope, PackageCommands, PackageLinkedResponse, ProcessExitedEvent, + ProcessKilledResponse, ProcessOutputEvent, ProcessSnapshotEntry, ProcessSnapshotResponse, + ProcessStartedResponse, ProjectedCommand, ProtocolSchema, ProvidedCommandsResponse, + RejectedResponse, RequestFrame, RequestId, ResponseFrame, ResponsePayload, + RootFilesystemBootstrappedResponse, RootFilesystemEntry, RootFilesystemSnapshotResponse, + SessionOpenedResponse, SignalHandlerRegistration, SignalStateResponse, + SnapshotExportedResponse, SnapshotImportedResponse, SocketStateEntry, StdinClosedResponse, + StdinWrittenResponse, StreamChannel, StructuredEvent, VmConfiguredResponse, VmCreatedResponse, + VmDisposedResponse, VmLifecycleEvent, VmLifecycleState, ZombieTimerCountResponse, + PROTOCOL_VERSION, }; use std::collections::HashMap; @@ -172,9 +173,17 @@ pub fn package_linked_response( ) -> ResponseFrame { respond( request, - ResponsePayload::PackageLinked(PackageLinkedResponse { - projected_commands, - }), + ResponsePayload::PackageLinked(PackageLinkedResponse { projected_commands }), + ) +} + +pub fn provided_commands_response( + request: &RequestFrame, + packages: Vec, +) -> ResponseFrame { + respond( + request, + ResponsePayload::ProvidedCommands(ProvidedCommandsResponse { packages }), ) } diff --git a/crates/sidecar-core/src/lib.rs b/crates/sidecar-core/src/lib.rs index c4347328e..929a33e18 100644 --- a/crates/sidecar-core/src/lib.rs +++ b/crates/sidecar-core/src/lib.rs @@ -31,13 +31,13 @@ pub use frames::{ authenticated_response, bound_udp_snapshot_response, event, layer_created_response, layer_sealed_response, listener_snapshot_response, overlay_created_response, package_linked_response, process_exited_event, process_killed_response, process_output_event, - process_snapshot_response, process_started_response, reject, respond, response_with_ownership, - root_filesystem_bootstrapped_response, root_filesystem_snapshot_response, - session_opened_response, signal_state_response, snapshot_exported_response, - snapshot_imported_response, stdin_closed_response, stdin_written_response, - unsupported_guest_kernel_call_detail, unsupported_guest_kernel_call_event, - validate_authenticate_versions, vm_configured_response, vm_created_response, - vm_disposed_response, vm_lifecycle_event, zombie_timer_count_response, + process_snapshot_response, process_started_response, provided_commands_response, reject, + respond, response_with_ownership, root_filesystem_bootstrapped_response, + root_filesystem_snapshot_response, session_opened_response, signal_state_response, + snapshot_exported_response, snapshot_imported_response, stdin_closed_response, + stdin_written_response, unsupported_guest_kernel_call_detail, + unsupported_guest_kernel_call_event, validate_authenticate_versions, vm_configured_response, + vm_created_response, vm_disposed_response, vm_lifecycle_event, zombie_timer_count_response, AuthenticateVersionError, DispatchResult, UNSUPPORTED_GUEST_KERNEL_CALL_EVENT, }; pub use guest_fs::{ diff --git a/crates/sidecar-core/src/router.rs b/crates/sidecar-core/src/router.rs index a60435ef7..f167fc77a 100644 --- a/crates/sidecar-core/src/router.rs +++ b/crates/sidecar-core/src/router.rs @@ -6,8 +6,9 @@ use secure_exec_sidecar_protocol::protocol::{ GetProcessSnapshotRequest, GetResourceSnapshotRequest, GetSignalStateRequest, GetZombieTimerCountRequest, GuestFilesystemCallRequest, GuestKernelCallRequest, ImportSnapshotRequest, KillProcessRequest, LinkPackageRequest, OpenSessionRequest, - OwnershipScope, RegisterHostCallbacksRequest, RequestFrame, RequestPayload, ResizePtyRequest, - SealLayerRequest, SnapshotRootFilesystemRequest, VmFetchRequest, WriteStdinRequest, + OwnershipScope, ProvidedCommandsRequest, RegisterHostCallbacksRequest, RequestFrame, + RequestPayload, ResizePtyRequest, SealLayerRequest, SnapshotRootFilesystemRequest, + VmFetchRequest, WriteStdinRequest, }; use secure_exec_sidecar_protocol::wire as generated_wire; @@ -54,6 +55,7 @@ pub enum RequestRoute { GetSignalState(GetSignalStateRequest), GetZombieTimerCount(GetZombieTimerCountRequest), LinkPackage(LinkPackageRequest), + ProvidedCommands(ProvidedCommandsRequest), Ext(ExtEnvelope), UnsupportedHostCallbackDirection, } @@ -100,6 +102,7 @@ pub fn route_request_payload(request: &RequestFrame) -> RequestRoute { RequestPayload::GetSignalState(payload) => RequestRoute::GetSignalState(payload), RequestPayload::GetZombieTimerCount(payload) => RequestRoute::GetZombieTimerCount(payload), RequestPayload::LinkPackage(payload) => RequestRoute::LinkPackage(payload), + RequestPayload::ProvidedCommands(payload) => RequestRoute::ProvidedCommands(payload), RequestPayload::HostFilesystemCall(_) | RequestPayload::PersistenceLoad(_) | RequestPayload::PersistenceFlush(_) => RequestRoute::UnsupportedHostCallbackDirection, @@ -162,6 +165,7 @@ pub fn request_dispatch_mode(request: &RequestFrame) -> RequestDispatchMode { | RequestPayload::GetSignalState(_) | RequestPayload::GetZombieTimerCount(_) | RequestPayload::LinkPackage(_) + | RequestPayload::ProvidedCommands(_) | RequestPayload::HostFilesystemCall(_) | RequestPayload::PersistenceLoad(_) | RequestPayload::PersistenceFlush(_) => RequestDispatchMode::Immediate, diff --git a/crates/sidecar-protocol/protocol/secure_exec_sidecar_v1.bare b/crates/sidecar-protocol/protocol/secure_exec_sidecar_v1.bare index 6755dfbf9..33667b0d4 100644 --- a/crates/sidecar-protocol/protocol/secure_exec_sidecar_v1.bare +++ b/crates/sidecar-protocol/protocol/secure_exec_sidecar_v1.bare @@ -221,6 +221,17 @@ type LinkPackageRequest struct { package: PackageDescriptor } +type PackageCommands struct { + packageName: str + commands: list +} + +type ProvidedCommandsRequest void + +type ProvidedCommandsResponse struct { + packages: list +} + type ProjectedCommand struct { name: str guestPath: str @@ -456,7 +467,8 @@ type RequestPayload union { GuestKernelCallRequest | ResizePtyRequest | GetResourceSnapshotRequest | - LinkPackageRequest + LinkPackageRequest | + ProvidedCommandsRequest } type RequestFrame struct { @@ -742,7 +754,8 @@ type ResponsePayload union { GuestKernelResultResponse | PtyResizedResponse | ResourceSnapshotResponse | - PackageLinkedResponse + PackageLinkedResponse | + ProvidedCommandsResponse } type ResponseFrame struct { diff --git a/crates/sidecar-protocol/src/protocol.rs b/crates/sidecar-protocol/src/protocol.rs index 8ffe32142..d903a8656 100644 --- a/crates/sidecar-protocol/src/protocol.rs +++ b/crates/sidecar-protocol/src/protocol.rs @@ -497,6 +497,9 @@ fn to_generated_request_payload( RequestPayload::LinkPackage(inner) => { generated_protocol::RequestPayload::LinkPackageRequest(inner.clone()) } + RequestPayload::ProvidedCommands(_) => { + generated_protocol::RequestPayload::ProvidedCommandsRequest + } }) } @@ -602,6 +605,9 @@ fn from_generated_request_payload( generated_protocol::RequestPayload::LinkPackageRequest(inner) => { RequestPayload::LinkPackage(inner) } + generated_protocol::RequestPayload::ProvidedCommandsRequest => { + RequestPayload::ProvidedCommands(ProvidedCommandsRequest {}) + } }) } @@ -753,6 +759,9 @@ fn to_generated_response_payload( ResponsePayload::PackageLinked(inner) => { generated_protocol::ResponsePayload::PackageLinkedResponse(inner.clone()) } + ResponsePayload::ProvidedCommands(inner) => { + generated_protocol::ResponsePayload::ProvidedCommandsResponse(inner.clone()) + } }) } @@ -891,6 +900,9 @@ fn from_generated_response_payload( generated_protocol::ResponsePayload::PackageLinkedResponse(inner) => { ResponsePayload::PackageLinked(inner) } + generated_protocol::ResponsePayload::ProvidedCommandsResponse(inner) => { + ResponsePayload::ProvidedCommands(inner) + } }) } @@ -1257,6 +1269,7 @@ pub enum RequestPayload { ResizePty(ResizePtyRequest), GetResourceSnapshot(GetResourceSnapshotRequest), LinkPackage(LinkPackageRequest), + ProvidedCommands(ProvidedCommandsRequest), } #[derive(Debug, Clone, PartialEq, Eq)] @@ -1295,6 +1308,7 @@ pub enum ResponsePayload { PtyResized(PtyResizedResponse), ResourceSnapshot(ResourceSnapshotResponse), PackageLinked(PackageLinkedResponse), + ProvidedCommands(ProvidedCommandsResponse), } #[derive(Debug, Clone, PartialEq, Eq)] @@ -1399,12 +1413,17 @@ pub type GuestFilesystemCallRequest = crate::wire::GuestFilesystemCallRequest; pub type GuestKernelCallRequest = crate::wire::GuestKernelCallRequest; pub type ResizePtyRequest = crate::wire::ResizePtyRequest; pub type PackageDescriptor = crate::wire::PackageDescriptor; +pub type PackageCommands = crate::wire::PackageCommands; pub type ProjectedCommand = crate::wire::ProjectedCommand; pub type LinkPackageRequest = crate::wire::LinkPackageRequest; +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] +pub struct ProvidedCommandsRequest {} + pub type GuestKernelResultResponse = crate::wire::GuestKernelResultResponse; pub type PtyResizedResponse = crate::wire::PtyResizedResponse; pub type PackageLinkedResponse = crate::wire::PackageLinkedResponse; +pub type ProvidedCommandsResponse = crate::wire::ProvidedCommandsResponse; #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] pub struct SnapshotRootFilesystemRequest {} @@ -1598,6 +1617,7 @@ impl_bare_newtype_union_enum!( ResizePty(ResizePtyRequest) = 29, GetResourceSnapshot(GetResourceSnapshotRequest) = 30, LinkPackage(LinkPackageRequest) = 31, + ProvidedCommands(ProvidedCommandsRequest) = 32, } ); @@ -1640,6 +1660,7 @@ impl_bare_newtype_union_enum!( PtyResized(PtyResizedResponse) = 31, ResourceSnapshot(ResourceSnapshotResponse) = 32, PackageLinked(PackageLinkedResponse) = 33, + ProvidedCommands(ProvidedCommandsResponse) = 34, } ); @@ -2220,6 +2241,7 @@ enum ExpectedResponseKind { GuestKernelResult, PtyResized, PackageLinked, + ProvidedCommands, } #[derive(Debug, Clone, Copy, PartialEq, Eq)] @@ -2265,6 +2287,7 @@ impl ExpectedResponseKind { Self::GuestKernelResult => "guest_kernel_result", Self::PtyResized => "pty_resized", Self::PackageLinked => "package_linked", + Self::ProvidedCommands => "provided_commands_response", } } @@ -2322,6 +2345,7 @@ impl RequestPayload { | Self::GuestKernelCall(_) | Self::ResizePty(_) | Self::LinkPackage(_) + | Self::ProvidedCommands(_) | Self::HostFilesystemCall(_) => OwnershipRequirement::Vm, Self::Ext(_) => OwnershipRequirement::Any, } @@ -2361,6 +2385,7 @@ impl RequestPayload { Self::GuestKernelCall(_) => ExpectedResponseKind::GuestKernelResult, Self::ResizePty(_) => ExpectedResponseKind::PtyResized, Self::LinkPackage(_) => ExpectedResponseKind::PackageLinked, + Self::ProvidedCommands(_) => ExpectedResponseKind::ProvidedCommands, } } } @@ -2413,7 +2438,8 @@ impl ResponsePayload { | Self::PermissionDecision(_) | Self::GuestKernelResult(_) | Self::PtyResized(_) - | Self::PackageLinked(_) => OwnershipRequirement::Vm, + | Self::PackageLinked(_) + | Self::ProvidedCommands(_) => OwnershipRequirement::Vm, Self::ExtResult(_) => OwnershipRequirement::Any, } } @@ -2454,6 +2480,7 @@ impl ResponsePayload { Self::GuestKernelResult(_) => "guest_kernel_result", Self::PtyResized(_) => "pty_resized", Self::PackageLinked(_) => "package_linked", + Self::ProvidedCommands(_) => "provided_commands_response", } } } diff --git a/crates/sidecar/src/service.rs b/crates/sidecar/src/service.rs index 6b38e7f61..62ec2aa6d 100644 --- a/crates/sidecar/src/service.rs +++ b/crates/sidecar/src/service.rs @@ -1214,6 +1214,9 @@ where self.get_zombie_timer_count(&request, payload).await } RequestRoute::LinkPackage(payload) => self.link_package(&request, payload).await, + RequestRoute::ProvidedCommands(payload) => { + self.provided_commands(&request, payload).await + } RequestRoute::UnsupportedHostCallbackDirection => { Ok(unsupported_host_callback_direction_dispatch(&request)) } diff --git a/crates/sidecar/src/state.rs b/crates/sidecar/src/state.rs index 5b98ffb55..599538880 100644 --- a/crates/sidecar/src/state.rs +++ b/crates/sidecar/src/state.rs @@ -290,6 +290,7 @@ pub(crate) struct VmConfiguration { pub(crate) instructions: Vec, pub(crate) projected_modules: Vec, pub(crate) command_permissions: BTreeMap, + pub(crate) provided_commands: BTreeMap>, /// Guest JavaScript host-environment config (platform / module resolution / /// builtin allow-list). Set at `create_vm` from `CreateVmConfig.jsRuntime` /// and preserved across `configure_vm`. `None` => full Node.js emulation. @@ -310,6 +311,7 @@ impl Default for VmConfiguration { instructions: Vec::new(), projected_modules: Vec::new(), command_permissions: BTreeMap::new(), + provided_commands: BTreeMap::new(), js_runtime: None, snapshot_userland_code: None, loopback_exempt_ports: Vec::new(), @@ -339,6 +341,7 @@ pub(crate) struct VmState { pub(crate) configuration: VmConfiguration, pub(crate) layers: VmLayerStore, pub(crate) command_guest_paths: BTreeMap, + pub(crate) provided_commands: BTreeMap>, pub(crate) command_permissions: BTreeMap, pub(crate) toolkits: BTreeMap, pub(crate) active_processes: BTreeMap, diff --git a/crates/sidecar/src/vm.rs b/crates/sidecar/src/vm.rs index ecadeeeb1..a5f2829b9 100644 --- a/crates/sidecar/src/vm.rs +++ b/crates/sidecar/src/vm.rs @@ -11,9 +11,10 @@ use crate::bridge::{bridge_permissions, MountPluginContext}; use crate::protocol::{ ConfigureVmRequest, CreateLayerRequest, CreateOverlayRequest, DisposeReason, EventFrame, ExportSnapshotRequest, ImportSnapshotRequest, LinkPackageRequest, MountDescriptor, - MountPluginDescriptor, ProjectedCommand, RootFilesystemDescriptor, RootFilesystemEntry, - RootFilesystemEntryEncoding, RootFilesystemLowerDescriptor, SealLayerRequest, - SnapshotRootFilesystemRequest, VmLifecycleState, + MountPluginDescriptor, PackageCommands, ProjectedCommand, ProvidedCommandsRequest, + RootFilesystemDescriptor, RootFilesystemEntry, RootFilesystemEntryEncoding, + RootFilesystemLowerDescriptor, SealLayerRequest, SnapshotRootFilesystemRequest, + VmLifecycleState, }; use crate::service::{ audit_fields, dirname, emit_security_audit_event, emit_structured_event, kernel_error, @@ -46,10 +47,10 @@ use secure_exec_kernel::socket_table::{SocketReadiness, SocketReadinessKind}; use secure_exec_sidecar_core::permissions::{allow_all_policy, deny_all_policy}; use secure_exec_sidecar_core::{ layer_created_response, layer_sealed_response, overlay_created_response, - package_linked_response, protocol_root_filesystem_mode, root_filesystem_bootstrapped_response, - root_filesystem_protocol_descriptor_from_config, root_filesystem_snapshot_response, - snapshot_exported_response, snapshot_imported_response, vm_configured_response, - vm_created_response, vm_disposed_response, VmLayerStore, + package_linked_response, protocol_root_filesystem_mode, provided_commands_response, + root_filesystem_bootstrapped_response, root_filesystem_protocol_descriptor_from_config, + root_filesystem_snapshot_response, snapshot_exported_response, snapshot_imported_response, + vm_configured_response, vm_created_response, vm_disposed_response, VmLayerStore, }; use secure_exec_vm_config as vm_config; use std::collections::{BTreeMap, BTreeSet, VecDeque}; @@ -348,6 +349,7 @@ where }, layers: VmLayerStore::default(), command_guest_paths, + provided_commands: BTreeMap::new(), command_permissions: BTreeMap::new(), toolkits: BTreeMap::new(), active_processes: BTreeMap::new(), @@ -445,6 +447,13 @@ where let _ = fs::remove_dir_all(&old); } let package_descriptors = package_descriptors_from_wire(&payload.packages)?; + let mut provided_commands = BTreeMap::new(); + for descriptor in &package_descriptors { + provided_commands.insert( + descriptor.name.clone(), + crate::package_projection::derive_commands(&descriptor.dir)?, + ); + } let snapshot_userland_code = resolve_agent_snapshot_bundle(&package_descriptors)?; let (packages_staging_root, packages_mount) = build_packages_projection(&vm_id, &package_descriptors, &payload.packages_mount_at)?; @@ -475,11 +484,13 @@ where // command by name -> its `/opt/agentos/bin/` entrypoint so both the // kernel command table (via `execution_commands` below) and the sidecar // entrypoint resolver (`resolve_guest_command_entrypoint`) can find it. - for descriptor in &package_descriptors { - for command in crate::package_projection::derive_commands(&descriptor.dir)? { + for commands in provided_commands.values() { + for command in commands { let entrypoint = format!("{}/{command}", crate::package_projection::OPT_AGENTOS_BIN); - vm.command_guest_paths.entry(command).or_insert(entrypoint); + vm.command_guest_paths + .entry(command.clone()) + .or_insert(entrypoint); } } refresh_guest_command_path_env(&mut vm.guest_env, &vm.command_guest_paths); @@ -506,11 +517,13 @@ where instructions: payload.instructions.clone(), projected_modules: payload.projected_modules.clone(), command_permissions: payload.command_permissions.clone().into_iter().collect(), + provided_commands: provided_commands.clone(), // jsRuntime is create-time only; preserve what create_vm stored. js_runtime: vm.configuration.js_runtime.clone(), snapshot_userland_code: snapshot_userland_code.clone(), loopback_exempt_ports: payload.loopback_exempt_ports.clone(), }; + vm.provided_commands = provided_commands; Ok(()) }); match reconfigure_result { @@ -588,6 +601,12 @@ where })?; let descriptor = crate::package_projection::read_package_manifest(&payload.package.dir)?; let commands = crate::package_projection::link_package(&descriptor, &staging_root)?; + let package_commands = crate::package_projection::derive_commands(&descriptor.dir)?; + vm.provided_commands + .insert(descriptor.name.clone(), package_commands.clone()); + vm.configuration + .provided_commands + .insert(descriptor.name.clone(), package_commands); for command in &commands { let entrypoint = projected_command_guest_path(command); vm.command_guest_paths @@ -618,6 +637,34 @@ where }) } + pub(crate) async fn provided_commands( + &mut self, + request: &crate::protocol::RequestFrame, + _payload: ProvidedCommandsRequest, + ) -> Result { + let (connection_id, session_id, vm_id) = self.vm_scope_for(&request.ownership)?; + self.require_owned_vm(&connection_id, &session_id, &vm_id)?; + + let packages = self + .vms + .get(&vm_id) + .map(|vm| { + vm.provided_commands + .iter() + .map(|(package_name, commands)| PackageCommands { + package_name: package_name.clone(), + commands: commands.clone(), + }) + .collect() + }) + .unwrap_or_default(); + + Ok(DispatchResult { + response: provided_commands_response(request, packages), + events: Vec::new(), + }) + } + pub(crate) async fn create_layer( &mut self, request: &crate::protocol::RequestFrame, diff --git a/packages/core/src/generated-protocol.ts b/packages/core/src/generated-protocol.ts index 05b951188..cfba83225 100644 --- a/packages/core/src/generated-protocol.ts +++ b/packages/core/src/generated-protocol.ts @@ -1166,6 +1166,58 @@ export function writeLinkPackageRequest(bc: bare.ByteCursor, x: LinkPackageReque writePackageDescriptor(bc, x.package) } +export type PackageCommands = { + readonly packageName: string + readonly commands: readonly string[] +} + +export function readPackageCommands(bc: bare.ByteCursor): PackageCommands { + return { + packageName: bare.readString(bc), + commands: read6(bc), + } +} + +export function writePackageCommands(bc: bare.ByteCursor, x: PackageCommands): void { + bare.writeString(bc, x.packageName) + write6(bc, x.commands) +} + +export type ProvidedCommandsRequest = null + +function read12(bc: bare.ByteCursor): readonly PackageCommands[] { + const len = bare.readUintSafe(bc) + if (len === 0) { + return [] + } + const result = [readPackageCommands(bc)] + for (let i = 1; i < len; i++) { + result[i] = readPackageCommands(bc) + } + return result +} + +function write12(bc: bare.ByteCursor, x: readonly PackageCommands[]): void { + bare.writeUintSafe(bc, x.length) + for (let i = 0; i < x.length; i++) { + writePackageCommands(bc, x[i]) + } +} + +export type ProvidedCommandsResponse = { + readonly packages: readonly PackageCommands[] +} + +export function readProvidedCommandsResponse(bc: bare.ByteCursor): ProvidedCommandsResponse { + return { + packages: read12(bc), + } +} + +export function writeProvidedCommandsResponse(bc: bare.ByteCursor, x: ProvidedCommandsResponse): void { + write12(bc, x.packages) +} + export type ProjectedCommand = { readonly name: string readonly guestPath: string @@ -1183,7 +1235,7 @@ export function writeProjectedCommand(bc: bare.ByteCursor, x: ProjectedCommand): bare.writeString(bc, x.guestPath) } -function read12(bc: bare.ByteCursor): readonly ProjectedCommand[] { +function read13(bc: bare.ByteCursor): readonly ProjectedCommand[] { const len = bare.readUintSafe(bc) if (len === 0) { return [] @@ -1195,7 +1247,7 @@ function read12(bc: bare.ByteCursor): readonly ProjectedCommand[] { return result } -function write12(bc: bare.ByteCursor, x: readonly ProjectedCommand[]): void { +function write13(bc: bare.ByteCursor, x: readonly ProjectedCommand[]): void { bare.writeUintSafe(bc, x.length) for (let i = 0; i < x.length; i++) { writeProjectedCommand(bc, x[i]) @@ -1208,15 +1260,15 @@ export type PackageLinkedResponse = { export function readPackageLinkedResponse(bc: bare.ByteCursor): PackageLinkedResponse { return { - projectedCommands: read12(bc), + projectedCommands: read13(bc), } } export function writePackageLinkedResponse(bc: bare.ByteCursor, x: PackageLinkedResponse): void { - write12(bc, x.projectedCommands) + write13(bc, x.projectedCommands) } -function read13(bc: bare.ByteCursor): readonly MountDescriptor[] { +function read14(bc: bare.ByteCursor): readonly MountDescriptor[] { const len = bare.readUintSafe(bc) if (len === 0) { return [] @@ -1228,14 +1280,14 @@ function read13(bc: bare.ByteCursor): readonly MountDescriptor[] { return result } -function write13(bc: bare.ByteCursor, x: readonly MountDescriptor[]): void { +function write14(bc: bare.ByteCursor, x: readonly MountDescriptor[]): void { bare.writeUintSafe(bc, x.length) for (let i = 0; i < x.length; i++) { writeMountDescriptor(bc, x[i]) } } -function read14(bc: bare.ByteCursor): readonly SoftwareDescriptor[] { +function read15(bc: bare.ByteCursor): readonly SoftwareDescriptor[] { const len = bare.readUintSafe(bc) if (len === 0) { return [] @@ -1247,25 +1299,25 @@ function read14(bc: bare.ByteCursor): readonly SoftwareDescriptor[] { return result } -function write14(bc: bare.ByteCursor, x: readonly SoftwareDescriptor[]): void { +function write15(bc: bare.ByteCursor, x: readonly SoftwareDescriptor[]): void { bare.writeUintSafe(bc, x.length) for (let i = 0; i < x.length; i++) { writeSoftwareDescriptor(bc, x[i]) } } -function read15(bc: bare.ByteCursor): PermissionsPolicy | null { +function read16(bc: bare.ByteCursor): PermissionsPolicy | null { return bare.readBool(bc) ? readPermissionsPolicy(bc) : null } -function write15(bc: bare.ByteCursor, x: PermissionsPolicy | null): void { +function write16(bc: bare.ByteCursor, x: PermissionsPolicy | null): void { bare.writeBool(bc, x != null) if (x != null) { writePermissionsPolicy(bc, x) } } -function read16(bc: bare.ByteCursor): readonly ProjectedModuleDescriptor[] { +function read17(bc: bare.ByteCursor): readonly ProjectedModuleDescriptor[] { const len = bare.readUintSafe(bc) if (len === 0) { return [] @@ -1277,14 +1329,14 @@ function read16(bc: bare.ByteCursor): readonly ProjectedModuleDescriptor[] { return result } -function write16(bc: bare.ByteCursor, x: readonly ProjectedModuleDescriptor[]): void { +function write17(bc: bare.ByteCursor, x: readonly ProjectedModuleDescriptor[]): void { bare.writeUintSafe(bc, x.length) for (let i = 0; i < x.length; i++) { writeProjectedModuleDescriptor(bc, x[i]) } } -function read17(bc: bare.ByteCursor): ReadonlyMap { +function read18(bc: bare.ByteCursor): ReadonlyMap { const len = bare.readUintSafe(bc) const result = new Map() for (let i = 0; i < len; i++) { @@ -1299,7 +1351,7 @@ function read17(bc: bare.ByteCursor): ReadonlyMap { return result } -function write17(bc: bare.ByteCursor, x: ReadonlyMap): void { +function write18(bc: bare.ByteCursor, x: ReadonlyMap): void { bare.writeUintSafe(bc, x.size) for (const kv of x) { bare.writeString(bc, kv[0]) @@ -1307,7 +1359,7 @@ function write17(bc: bare.ByteCursor, x: ReadonlyMap } } -function read18(bc: bare.ByteCursor): readonly PackageDescriptor[] { +function read19(bc: bare.ByteCursor): readonly PackageDescriptor[] { const len = bare.readUintSafe(bc) if (len === 0) { return [] @@ -1319,7 +1371,7 @@ function read18(bc: bare.ByteCursor): readonly PackageDescriptor[] { return result } -function write18(bc: bare.ByteCursor, x: readonly PackageDescriptor[]): void { +function write19(bc: bare.ByteCursor, x: readonly PackageDescriptor[]): void { bare.writeUintSafe(bc, x.length) for (let i = 0; i < x.length; i++) { writePackageDescriptor(bc, x[i]) @@ -1343,15 +1395,15 @@ export type ConfigureVmRequest = { export function readConfigureVmRequest(bc: bare.ByteCursor): ConfigureVmRequest { return { - mounts: read13(bc), - software: read14(bc), - permissions: read15(bc), + mounts: read14(bc), + software: read15(bc), + permissions: read16(bc), moduleAccessCwd: read0(bc), instructions: read6(bc), - projectedModules: read16(bc), - commandPermissions: read17(bc), + projectedModules: read17(bc), + commandPermissions: read18(bc), loopbackExemptPorts: bare.readU16Array(bc), - packages: read18(bc), + packages: read19(bc), packagesMountAt: bare.readString(bc), bootstrapCommands: read6(bc), toolShimCommands: read6(bc), @@ -1359,15 +1411,15 @@ export function readConfigureVmRequest(bc: bare.ByteCursor): ConfigureVmRequest } export function writeConfigureVmRequest(bc: bare.ByteCursor, x: ConfigureVmRequest): void { - write13(bc, x.mounts) - write14(bc, x.software) - write15(bc, x.permissions) + write14(bc, x.mounts) + write15(bc, x.software) + write16(bc, x.permissions) write0(bc, x.moduleAccessCwd) write6(bc, x.instructions) - write16(bc, x.projectedModules) - write17(bc, x.commandPermissions) + write17(bc, x.projectedModules) + write18(bc, x.commandPermissions) bare.writeU16Array(bc, x.loopbackExemptPorts) - write18(bc, x.packages) + write19(bc, x.packages) bare.writeString(bc, x.packagesMountAt) write6(bc, x.bootstrapCommands) write6(bc, x.toolShimCommands) @@ -1390,18 +1442,18 @@ export function writeRegisteredHostCallbackExample(bc: bare.ByteCursor, x: Regis writeJsonUtf8(bc, x.input) } -function read19(bc: bare.ByteCursor): u64 | null { +function read20(bc: bare.ByteCursor): u64 | null { return bare.readBool(bc) ? bare.readU64(bc) : null } -function write19(bc: bare.ByteCursor, x: u64 | null): void { +function write20(bc: bare.ByteCursor, x: u64 | null): void { bare.writeBool(bc, x != null) if (x != null) { bare.writeU64(bc, x) } } -function read20(bc: bare.ByteCursor): readonly RegisteredHostCallbackExample[] { +function read21(bc: bare.ByteCursor): readonly RegisteredHostCallbackExample[] { const len = bare.readUintSafe(bc) if (len === 0) { return [] @@ -1413,7 +1465,7 @@ function read20(bc: bare.ByteCursor): readonly RegisteredHostCallbackExample[] { return result } -function write20(bc: bare.ByteCursor, x: readonly RegisteredHostCallbackExample[]): void { +function write21(bc: bare.ByteCursor, x: readonly RegisteredHostCallbackExample[]): void { bare.writeUintSafe(bc, x.length) for (let i = 0; i < x.length; i++) { writeRegisteredHostCallbackExample(bc, x[i]) @@ -1431,19 +1483,19 @@ export function readRegisteredHostCallbackDefinition(bc: bare.ByteCursor): Regis return { description: bare.readString(bc), inputSchema: readJsonUtf8(bc), - timeoutMs: read19(bc), - examples: read20(bc), + timeoutMs: read20(bc), + examples: read21(bc), } } export function writeRegisteredHostCallbackDefinition(bc: bare.ByteCursor, x: RegisteredHostCallbackDefinition): void { bare.writeString(bc, x.description) writeJsonUtf8(bc, x.inputSchema) - write19(bc, x.timeoutMs) - write20(bc, x.examples) + write20(bc, x.timeoutMs) + write21(bc, x.examples) } -function read21(bc: bare.ByteCursor): ReadonlyMap { +function read22(bc: bare.ByteCursor): ReadonlyMap { const len = bare.readUintSafe(bc) const result = new Map() for (let i = 0; i < len; i++) { @@ -1458,7 +1510,7 @@ function read21(bc: bare.ByteCursor): ReadonlyMap): void { +function write22(bc: bare.ByteCursor, x: ReadonlyMap): void { bare.writeUintSafe(bc, x.size) for (const kv of x) { bare.writeString(bc, kv[0]) @@ -1480,7 +1532,7 @@ export function readRegisterHostCallbacksRequest(bc: bare.ByteCursor): RegisterH description: bare.readString(bc), commandAliases: read6(bc), registryCommandAliases: read6(bc), - callbacks: read21(bc), + callbacks: read22(bc), } } @@ -1489,7 +1541,7 @@ export function writeRegisterHostCallbacksRequest(bc: bare.ByteCursor, x: Regist bare.writeString(bc, x.description) write6(bc, x.commandAliases) write6(bc, x.registryCommandAliases) - write21(bc, x.callbacks) + write22(bc, x.callbacks) } export type CreateLayerRequest = null @@ -1781,10 +1833,10 @@ export function readGuestFilesystemCallRequest(bc: bare.ByteCursor): GuestFilesy mode: read2(bc), uid: read2(bc), gid: read2(bc), - atimeMs: read19(bc), - mtimeMs: read19(bc), - len: read19(bc), - offset: read19(bc), + atimeMs: read20(bc), + mtimeMs: read20(bc), + len: read20(bc), + offset: read20(bc), } } @@ -1800,10 +1852,10 @@ export function writeGuestFilesystemCallRequest(bc: bare.ByteCursor, x: GuestFil write2(bc, x.mode) write2(bc, x.uid) write2(bc, x.gid) - write19(bc, x.atimeMs) - write19(bc, x.mtimeMs) - write19(bc, x.len) - write19(bc, x.offset) + write20(bc, x.atimeMs) + write20(bc, x.mtimeMs) + write20(bc, x.len) + write20(bc, x.offset) } export type GuestKernelCallRequest = { @@ -1828,22 +1880,22 @@ export function writeGuestKernelCallRequest(bc: bare.ByteCursor, x: GuestKernelC export type SnapshotRootFilesystemRequest = null -function read22(bc: bare.ByteCursor): GuestRuntimeKind | null { +function read23(bc: bare.ByteCursor): GuestRuntimeKind | null { return bare.readBool(bc) ? readGuestRuntimeKind(bc) : null } -function write22(bc: bare.ByteCursor, x: GuestRuntimeKind | null): void { +function write23(bc: bare.ByteCursor, x: GuestRuntimeKind | null): void { bare.writeBool(bc, x != null) if (x != null) { writeGuestRuntimeKind(bc, x) } } -function read23(bc: bare.ByteCursor): WasmPermissionTier | null { +function read24(bc: bare.ByteCursor): WasmPermissionTier | null { return bare.readBool(bc) ? readWasmPermissionTier(bc) : null } -function write23(bc: bare.ByteCursor, x: WasmPermissionTier | null): void { +function write24(bc: bare.ByteCursor, x: WasmPermissionTier | null): void { bare.writeBool(bc, x != null) if (x != null) { writeWasmPermissionTier(bc, x) @@ -1865,24 +1917,24 @@ export function readExecuteRequest(bc: bare.ByteCursor): ExecuteRequest { return { processId: bare.readString(bc), command: read0(bc), - runtime: read22(bc), + runtime: read23(bc), entrypoint: read0(bc), args: read6(bc), env: read1(bc), cwd: read0(bc), - wasmPermissionTier: read23(bc), + wasmPermissionTier: read24(bc), } } export function writeExecuteRequest(bc: bare.ByteCursor, x: ExecuteRequest): void { bare.writeString(bc, x.processId) write0(bc, x.command) - write22(bc, x.runtime) + write23(bc, x.runtime) write0(bc, x.entrypoint) write6(bc, x.args) write1(bc, x.env) write0(bc, x.cwd) - write23(bc, x.wasmPermissionTier) + write24(bc, x.wasmPermissionTier) } export type WriteStdinRequest = { @@ -1957,11 +2009,11 @@ export type GetProcessSnapshotRequest = null export type GetResourceSnapshotRequest = null -function read24(bc: bare.ByteCursor): u16 | null { +function read25(bc: bare.ByteCursor): u16 | null { return bare.readBool(bc) ? bare.readU16(bc) : null } -function write24(bc: bare.ByteCursor, x: u16 | null): void { +function write25(bc: bare.ByteCursor, x: u16 | null): void { bare.writeBool(bc, x != null) if (x != null) { bare.writeU16(bc, x) @@ -1977,14 +2029,14 @@ export type FindListenerRequest = { export function readFindListenerRequest(bc: bare.ByteCursor): FindListenerRequest { return { host: read0(bc), - port: read24(bc), + port: read25(bc), path: read0(bc), } } export function writeFindListenerRequest(bc: bare.ByteCursor, x: FindListenerRequest): void { write0(bc, x.host) - write24(bc, x.port) + write25(bc, x.port) write0(bc, x.path) } @@ -1996,13 +2048,13 @@ export type FindBoundUdpRequest = { export function readFindBoundUdpRequest(bc: bare.ByteCursor): FindBoundUdpRequest { return { host: read0(bc), - port: read24(bc), + port: read25(bc), } } export function writeFindBoundUdpRequest(bc: bare.ByteCursor, x: FindBoundUdpRequest): void { write0(bc, x.host) - write24(bc, x.port) + write25(bc, x.port) } export type GetSignalStateRequest = { @@ -2199,6 +2251,7 @@ export type RequestPayload = | { readonly tag: "ResizePtyRequest"; readonly val: ResizePtyRequest } | { readonly tag: "GetResourceSnapshotRequest"; readonly val: GetResourceSnapshotRequest } | { readonly tag: "LinkPackageRequest"; readonly val: LinkPackageRequest } + | { readonly tag: "ProvidedCommandsRequest"; readonly val: ProvidedCommandsRequest } export function readRequestPayload(bc: bare.ByteCursor): RequestPayload { const offset = bc.offset @@ -2268,6 +2321,8 @@ export function readRequestPayload(bc: bare.ByteCursor): RequestPayload { return { tag: "GetResourceSnapshotRequest", val: null } case 31: return { tag: "LinkPackageRequest", val: readLinkPackageRequest(bc) } + case 32: + return { tag: "ProvidedCommandsRequest", val: null } default: { bc.offset = offset throw new bare.BareError(offset, "invalid tag") @@ -2432,6 +2487,10 @@ export function writeRequestPayload(bc: bare.ByteCursor, x: RequestPayload): voi writeLinkPackageRequest(bc, x.val) break } + case "ProvidedCommandsRequest": { + bare.writeU8(bc, 32) + break + } } } @@ -2547,14 +2606,14 @@ export function readVmConfiguredResponse(bc: bare.ByteCursor): VmConfiguredRespo return { appliedMounts: bare.readU32(bc), appliedSoftware: bare.readU32(bc), - projectedCommands: read12(bc), + projectedCommands: read13(bc), } } export function writeVmConfiguredResponse(bc: bare.ByteCursor, x: VmConfiguredResponse): void { bare.writeU32(bc, x.appliedMounts) bare.writeU32(bc, x.appliedSoftware) - write12(bc, x.projectedCommands) + write13(bc, x.projectedCommands) } export type HostCallbacksRegisteredResponse = { @@ -2729,7 +2788,7 @@ export function writeGuestDirEntry(bc: bare.ByteCursor, x: GuestDirEntry): void bare.writeU64(bc, x.size) } -function read25(bc: bare.ByteCursor): readonly GuestDirEntry[] { +function read26(bc: bare.ByteCursor): readonly GuestDirEntry[] { const len = bare.readUintSafe(bc) if (len === 0) { return [] @@ -2741,40 +2800,40 @@ function read25(bc: bare.ByteCursor): readonly GuestDirEntry[] { return result } -function write25(bc: bare.ByteCursor, x: readonly GuestDirEntry[]): void { +function write26(bc: bare.ByteCursor, x: readonly GuestDirEntry[]): void { bare.writeUintSafe(bc, x.length) for (let i = 0; i < x.length; i++) { writeGuestDirEntry(bc, x[i]) } } -function read26(bc: bare.ByteCursor): readonly GuestDirEntry[] | null { - return bare.readBool(bc) ? read25(bc) : null +function read27(bc: bare.ByteCursor): readonly GuestDirEntry[] | null { + return bare.readBool(bc) ? read26(bc) : null } -function write26(bc: bare.ByteCursor, x: readonly GuestDirEntry[] | null): void { +function write27(bc: bare.ByteCursor, x: readonly GuestDirEntry[] | null): void { bare.writeBool(bc, x != null) if (x != null) { - write25(bc, x) + write26(bc, x) } } -function read27(bc: bare.ByteCursor): GuestFilesystemStat | null { +function read28(bc: bare.ByteCursor): GuestFilesystemStat | null { return bare.readBool(bc) ? readGuestFilesystemStat(bc) : null } -function write27(bc: bare.ByteCursor, x: GuestFilesystemStat | null): void { +function write28(bc: bare.ByteCursor, x: GuestFilesystemStat | null): void { bare.writeBool(bc, x != null) if (x != null) { writeGuestFilesystemStat(bc, x) } } -function read28(bc: bare.ByteCursor): boolean | null { +function read29(bc: bare.ByteCursor): boolean | null { return bare.readBool(bc) ? bare.readBool(bc) : null } -function write28(bc: bare.ByteCursor, x: boolean | null): void { +function write29(bc: bare.ByteCursor, x: boolean | null): void { bare.writeBool(bc, x != null) if (x != null) { bare.writeBool(bc, x) @@ -2798,9 +2857,9 @@ export function readGuestFilesystemResultResponse(bc: bare.ByteCursor): GuestFil path: bare.readString(bc), content: read0(bc), encoding: read3(bc), - entries: read26(bc), - stat: read27(bc), - exists: read28(bc), + entries: read27(bc), + stat: read28(bc), + exists: read29(bc), target: read0(bc), } } @@ -2810,9 +2869,9 @@ export function writeGuestFilesystemResultResponse(bc: bare.ByteCursor, x: Guest bare.writeString(bc, x.path) write0(bc, x.content) write3(bc, x.encoding) - write26(bc, x.entries) - write27(bc, x.stat) - write28(bc, x.exists) + write27(bc, x.entries) + write28(bc, x.stat) + write29(bc, x.exists) write0(bc, x.target) } @@ -2966,11 +3025,11 @@ export function writeProcessSnapshotStatus(bc: bare.ByteCursor, x: ProcessSnapsh } } -function read29(bc: bare.ByteCursor): i32 | null { +function read30(bc: bare.ByteCursor): i32 | null { return bare.readBool(bc) ? bare.readI32(bc) : null } -function write29(bc: bare.ByteCursor, x: i32 | null): void { +function write30(bc: bare.ByteCursor, x: i32 | null): void { bare.writeBool(bc, x != null) if (x != null) { bare.writeI32(bc, x) @@ -3003,7 +3062,7 @@ export function readProcessSnapshotEntry(bc: bare.ByteCursor): ProcessSnapshotEn args: read6(bc), cwd: bare.readString(bc), status: readProcessSnapshotStatus(bc), - exitCode: read29(bc), + exitCode: read30(bc), } } @@ -3018,10 +3077,10 @@ export function writeProcessSnapshotEntry(bc: bare.ByteCursor, x: ProcessSnapsho write6(bc, x.args) bare.writeString(bc, x.cwd) writeProcessSnapshotStatus(bc, x.status) - write29(bc, x.exitCode) + write30(bc, x.exitCode) } -function read30(bc: bare.ByteCursor): readonly ProcessSnapshotEntry[] { +function read31(bc: bare.ByteCursor): readonly ProcessSnapshotEntry[] { const len = bare.readUintSafe(bc) if (len === 0) { return [] @@ -3033,7 +3092,7 @@ function read30(bc: bare.ByteCursor): readonly ProcessSnapshotEntry[] { return result } -function write30(bc: bare.ByteCursor, x: readonly ProcessSnapshotEntry[]): void { +function write31(bc: bare.ByteCursor, x: readonly ProcessSnapshotEntry[]): void { bare.writeUintSafe(bc, x.length) for (let i = 0; i < x.length; i++) { writeProcessSnapshotEntry(bc, x[i]) @@ -3046,12 +3105,12 @@ export type ProcessSnapshotResponse = { export function readProcessSnapshotResponse(bc: bare.ByteCursor): ProcessSnapshotResponse { return { - processes: read30(bc), + processes: read31(bc), } } export function writeProcessSnapshotResponse(bc: bare.ByteCursor, x: ProcessSnapshotResponse): void { - write30(bc, x.processes) + write31(bc, x.processes) } export type QueueSnapshotEntry = { @@ -3083,7 +3142,7 @@ export function writeQueueSnapshotEntry(bc: bare.ByteCursor, x: QueueSnapshotEnt bare.writeU64(bc, x.fillPercent) } -function read31(bc: bare.ByteCursor): readonly QueueSnapshotEntry[] { +function read32(bc: bare.ByteCursor): readonly QueueSnapshotEntry[] { const len = bare.readUintSafe(bc) if (len === 0) { return [] @@ -3095,7 +3154,7 @@ function read31(bc: bare.ByteCursor): readonly QueueSnapshotEntry[] { return result } -function write31(bc: bare.ByteCursor, x: readonly QueueSnapshotEntry[]): void { +function write32(bc: bare.ByteCursor, x: readonly QueueSnapshotEntry[]): void { bare.writeUintSafe(bc, x.length) for (let i = 0; i < x.length; i++) { writeQueueSnapshotEntry(bc, x[i]) @@ -3136,7 +3195,7 @@ export function readResourceSnapshotResponse(bc: bare.ByteCursor): ResourceSnaps socketConnections: bare.readU64(bc), socketBufferedBytes: bare.readU64(bc), socketDatagramQueueLen: bare.readU64(bc), - queueSnapshots: read31(bc), + queueSnapshots: read32(bc), } } @@ -3155,7 +3214,7 @@ export function writeResourceSnapshotResponse(bc: bare.ByteCursor, x: ResourceSn bare.writeU64(bc, x.socketConnections) bare.writeU64(bc, x.socketBufferedBytes) bare.writeU64(bc, x.socketDatagramQueueLen) - write31(bc, x.queueSnapshots) + write32(bc, x.queueSnapshots) } export type SocketStateEntry = { @@ -3169,7 +3228,7 @@ export function readSocketStateEntry(bc: bare.ByteCursor): SocketStateEntry { return { processId: bare.readString(bc), host: read0(bc), - port: read24(bc), + port: read25(bc), path: read0(bc), } } @@ -3177,15 +3236,15 @@ export function readSocketStateEntry(bc: bare.ByteCursor): SocketStateEntry { export function writeSocketStateEntry(bc: bare.ByteCursor, x: SocketStateEntry): void { bare.writeString(bc, x.processId) write0(bc, x.host) - write24(bc, x.port) + write25(bc, x.port) write0(bc, x.path) } -function read32(bc: bare.ByteCursor): SocketStateEntry | null { +function read33(bc: bare.ByteCursor): SocketStateEntry | null { return bare.readBool(bc) ? readSocketStateEntry(bc) : null } -function write32(bc: bare.ByteCursor, x: SocketStateEntry | null): void { +function write33(bc: bare.ByteCursor, x: SocketStateEntry | null): void { bare.writeBool(bc, x != null) if (x != null) { writeSocketStateEntry(bc, x) @@ -3198,12 +3257,12 @@ export type ListenerSnapshotResponse = { export function readListenerSnapshotResponse(bc: bare.ByteCursor): ListenerSnapshotResponse { return { - listener: read32(bc), + listener: read33(bc), } } export function writeListenerSnapshotResponse(bc: bare.ByteCursor, x: ListenerSnapshotResponse): void { - write32(bc, x.listener) + write33(bc, x.listener) } export type BoundUdpSnapshotResponse = { @@ -3212,12 +3271,12 @@ export type BoundUdpSnapshotResponse = { export function readBoundUdpSnapshotResponse(bc: bare.ByteCursor): BoundUdpSnapshotResponse { return { - socket: read32(bc), + socket: read33(bc), } } export function writeBoundUdpSnapshotResponse(bc: bare.ByteCursor, x: BoundUdpSnapshotResponse): void { - write32(bc, x.socket) + write33(bc, x.socket) } export enum SignalDispositionAction { @@ -3280,7 +3339,7 @@ export function writeSignalHandlerRegistration(bc: bare.ByteCursor, x: SignalHan bare.writeU32(bc, x.flags) } -function read33(bc: bare.ByteCursor): ReadonlyMap { +function read34(bc: bare.ByteCursor): ReadonlyMap { const len = bare.readUintSafe(bc) const result = new Map() for (let i = 0; i < len; i++) { @@ -3295,7 +3354,7 @@ function read33(bc: bare.ByteCursor): ReadonlyMap): void { +function write34(bc: bare.ByteCursor, x: ReadonlyMap): void { bare.writeUintSafe(bc, x.size) for (const kv of x) { bare.writeU32(bc, kv[0]) @@ -3311,13 +3370,13 @@ export type SignalStateResponse = { export function readSignalStateResponse(bc: bare.ByteCursor): SignalStateResponse { return { processId: bare.readString(bc), - handlers: read33(bc), + handlers: read34(bc), } } export function writeSignalStateResponse(bc: bare.ByteCursor, x: SignalStateResponse): void { bare.writeString(bc, x.processId) - write33(bc, x.handlers) + write34(bc, x.handlers) } export type ZombieTimerCountResponse = { @@ -3474,6 +3533,7 @@ export type ResponsePayload = | { readonly tag: "PtyResizedResponse"; readonly val: PtyResizedResponse } | { readonly tag: "ResourceSnapshotResponse"; readonly val: ResourceSnapshotResponse } | { readonly tag: "PackageLinkedResponse"; readonly val: PackageLinkedResponse } + | { readonly tag: "ProvidedCommandsResponse"; readonly val: ProvidedCommandsResponse } export function readResponsePayload(bc: bare.ByteCursor): ResponsePayload { const offset = bc.offset @@ -3547,6 +3607,8 @@ export function readResponsePayload(bc: bare.ByteCursor): ResponsePayload { return { tag: "ResourceSnapshotResponse", val: readResourceSnapshotResponse(bc) } case 33: return { tag: "PackageLinkedResponse", val: readPackageLinkedResponse(bc) } + case 34: + return { tag: "ProvidedCommandsResponse", val: readProvidedCommandsResponse(bc) } default: { bc.offset = offset throw new bare.BareError(offset, "invalid tag") @@ -3726,6 +3788,11 @@ export function writeResponsePayload(bc: bare.ByteCursor, x: ResponsePayload): v writePackageLinkedResponse(bc, x.val) break } + case "ProvidedCommandsResponse": { + bare.writeU8(bc, 34) + writeProvidedCommandsResponse(bc, x.val) + break + } } } @@ -4096,11 +4163,11 @@ export function writeSidecarRequestFrame(bc: bare.ByteCursor, x: SidecarRequestF writeSidecarRequestPayload(bc, x.payload) } -function read34(bc: bare.ByteCursor): JsonUtf8 | null { +function read35(bc: bare.ByteCursor): JsonUtf8 | null { return bare.readBool(bc) ? readJsonUtf8(bc) : null } -function write34(bc: bare.ByteCursor, x: JsonUtf8 | null): void { +function write35(bc: bare.ByteCursor, x: JsonUtf8 | null): void { bare.writeBool(bc, x != null) if (x != null) { writeJsonUtf8(bc, x) @@ -4116,14 +4183,14 @@ export type HostCallbackResultResponse = { export function readHostCallbackResultResponse(bc: bare.ByteCursor): HostCallbackResultResponse { return { invocationId: bare.readString(bc), - result: read34(bc), + result: read35(bc), error: read0(bc), } } export function writeHostCallbackResultResponse(bc: bare.ByteCursor, x: HostCallbackResultResponse): void { bare.writeString(bc, x.invocationId) - write34(bc, x.result) + write35(bc, x.result) write0(bc, x.error) } @@ -4136,14 +4203,14 @@ export type JsBridgeResultResponse = { export function readJsBridgeResultResponse(bc: bare.ByteCursor): JsBridgeResultResponse { return { callId: bare.readString(bc), - result: read34(bc), + result: read35(bc), error: read0(bc), } } export function writeJsBridgeResultResponse(bc: bare.ByteCursor, x: JsBridgeResultResponse): void { bare.writeString(bc, x.callId) - write34(bc, x.result) + write35(bc, x.result) write0(bc, x.error) } diff --git a/packages/core/src/request-payloads.ts b/packages/core/src/request-payloads.ts index 12a33fb64..ef8d00c8e 100644 --- a/packages/core/src/request-payloads.ts +++ b/packages/core/src/request-payloads.ts @@ -89,6 +89,9 @@ export type LiveRequestPayload = type: "link_package"; package: LivePackageDescriptor; } + | { + type: "provided_commands"; + } | { type: "register_host_callbacks"; name: string; @@ -311,6 +314,11 @@ export function toGeneratedRequestPayload( package: toGeneratedPackageDescriptor(payload.package), }, }; + case "provided_commands": + return { + tag: "ProvidedCommandsRequest", + val: null, + }; case "register_host_callbacks": return { tag: "RegisterHostCallbacksRequest", diff --git a/packages/core/src/response-payloads.ts b/packages/core/src/response-payloads.ts index 7c7445eaf..fe8792068 100644 --- a/packages/core/src/response-payloads.ts +++ b/packages/core/src/response-payloads.ts @@ -71,6 +71,11 @@ export interface LiveProjectedCommand { guest_path: string; } +export interface LivePackageCommands { + package_name: string; + commands: string[]; +} + export type LiveResponsePayload = | { type: "authenticated"; @@ -97,6 +102,10 @@ export type LiveResponsePayload = type: "package_linked"; projected_commands: LiveProjectedCommand[]; } + | { + type: "provided_commands_response"; + packages: LivePackageCommands[]; + } | { type: "host_callbacks_registered"; registration: string; @@ -277,6 +286,14 @@ export function fromGeneratedResponsePayload( }), ), }; + case "ProvidedCommandsResponse": + return { + type: "provided_commands_response", + packages: payload.val.packages.map((pkg) => ({ + package_name: pkg.packageName, + commands: [...pkg.commands], + })), + }; case "HostCallbacksRegisteredResponse": return { type: "host_callbacks_registered", diff --git a/packages/core/src/sidecar-process.ts b/packages/core/src/sidecar-process.ts index 8574f3cc7..8dbb2a7de 100644 --- a/packages/core/src/sidecar-process.ts +++ b/packages/core/src/sidecar-process.ts @@ -299,6 +299,11 @@ export interface SidecarProjectedCommand { guestPath: string; } +export interface SidecarPackageCommands { + packageName: string; + commands: string[]; +} + export interface SidecarVmConfiguredResponse { appliedMounts: number; appliedSoftware: number; @@ -559,6 +564,32 @@ export class SidecarProcess { })); } + async providedCommands( + session: AuthenticatedSession, + vm: CreatedVm, + ): Promise { + const response = await this.sendRequest({ + ownership: { + scope: "vm", + connection_id: session.connectionId, + session_id: session.sessionId, + vm_id: vm.vmId, + }, + payload: { + type: "provided_commands", + }, + }); + if (response.payload.type !== "provided_commands_response") { + throw new Error( + `unexpected provided_commands response: ${response.payload.type}`, + ); + } + return response.payload.packages.map((pkg) => ({ + packageName: pkg.package_name, + commands: [...pkg.commands], + })); + } + async registerHostCallbacks( session: AuthenticatedSession, vm: CreatedVm, From 8be678c578bb9173a49beb3901a5f4ff2397e9c6 Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Sun, 5 Jul 2026 15:06:07 -0700 Subject: [PATCH 2/2] feat(registry): add @agentos-software/browserbase browse CLI package --- pnpm-lock.yaml | 1445 ++++++++++++++++- .../software/browserbase/agentos-package.json | 3 + registry/software/browserbase/package.json | 35 + registry/software/browserbase/src/index.ts | 5 + registry/software/browserbase/tsconfig.json | 8 + 5 files changed, 1438 insertions(+), 58 deletions(-) create mode 100644 registry/software/browserbase/agentos-package.json create mode 100644 registry/software/browserbase/package.json create mode 100644 registry/software/browserbase/src/index.ts create mode 100644 registry/software/browserbase/tsconfig.json diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8c0eeff9c..9c8068805 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -539,10 +539,10 @@ importers: version: 0.16.1(zod@4.3.6) '@mariozechner/pi-ai': specifier: 0.60.0 - version: 0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.21.0)(zod@4.3.6) + version: 0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(ws@8.21.0(bufferutil@4.1.0))(zod@4.3.6) '@mariozechner/pi-coding-agent': specifier: 0.60.0 - version: 0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.21.0)(zod@4.3.6) + version: 0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(ws@8.21.0(bufferutil@4.1.0))(zod@4.3.6) devDependencies: '@agentos-software/manifest': specifier: workspace:* @@ -579,6 +579,25 @@ importers: specifier: ^5.7.2 version: 5.9.3 + registry/software/browserbase: + dependencies: + browse: + specifier: ^0.9.3 + version: 0.9.3(bufferutil@4.1.0)(playwright-core@1.59.1) + devDependencies: + '@agentos-software/manifest': + specifier: workspace:* + version: link:../../../packages/manifest + '@rivet-dev/agentos-toolchain': + specifier: workspace:* + version: link:../../../packages/agentos-toolchain + '@types/node': + specifier: ^22.10.2 + version: 22.19.15 + typescript: + specifier: ^5.7.2 + version: 5.9.3 + registry/software/build-essential: dependencies: '@agentos-software/common': @@ -1137,10 +1156,10 @@ importers: version: 3.7.3 '@astrojs/tailwind': specifier: ^6.0.0 - version: 6.0.2(astro@5.18.2(@types/node@24.13.2)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0))(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0)) + version: 6.0.2(astro@5.18.2(@types/node@24.13.2)(aws4fetch@1.0.20)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0))(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0)) '@rivet-dev/docs-theme': specifier: github:rivet-dev/docs-theme#v0.3.1 - version: https://codeload.github.com/rivet-dev/docs-theme/tar.gz/71c3e482fe43e4cbc4f4327a26c8899b6bd4aaa7(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@babel/template@7.29.7)(@codemirror/language@6.12.4)(@codemirror/search@6.7.1)(@codemirror/theme-one-dark@6.1.3)(@types/node@24.13.2)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(astro@5.18.2(@types/node@24.13.2)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0))(codemirror@6.0.2)(jiti@1.21.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(tsx@4.21.0)(use-sync-external-store@1.6.0(react@19.2.7))(yaml@2.9.0) + version: https://codeload.github.com/rivet-dev/docs-theme/tar.gz/71c3e482fe43e4cbc4f4327a26c8899b6bd4aaa7(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@babel/template@7.29.7)(@codemirror/language@6.12.4)(@codemirror/search@6.7.1)(@codemirror/theme-one-dark@6.1.3)(@types/node@24.13.2)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(astro@5.18.2(@types/node@24.13.2)(aws4fetch@1.0.20)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0))(codemirror@6.0.2)(jiti@1.21.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(tsx@4.21.0)(use-sync-external-store@1.6.0(react@19.2.7))(yaml@2.9.0) '@rivet-gg/components': specifier: github:rivet-dev/docs-theme#v0.3.1&path:vendor/components version: https://codeload.github.com/rivet-dev/docs-theme/tar.gz/71c3e482fe43e4cbc4f4327a26c8899b6bd4aaa7#path:vendor/components(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@babel/template@7.29.7)(@codemirror/language@6.12.4)(@codemirror/search@6.7.1)(@codemirror/theme-one-dark@6.1.3)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(codemirror@6.0.2)(lodash@4.18.1)(posthog-js@1.396.5)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0)) @@ -1149,7 +1168,7 @@ importers: version: https://codeload.github.com/rivet-dev/docs-theme/tar.gz/71c3e482fe43e4cbc4f4327a26c8899b6bd4aaa7#path:vendor/icons(@fortawesome/fontawesome-svg-core@6.7.2)(@fortawesome/free-brands-svg-icons@6.7.2)(@fortawesome/free-solid-svg-icons@6.7.2)(@fortawesome/react-fontawesome@0.2.6(@fortawesome/fontawesome-svg-core@6.7.2)(react@19.2.7))(react-dom@19.2.7(react@19.2.7))(react@19.2.7) astro: specifier: ^5.18.2 - version: 5.18.2(@types/node@24.13.2)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + version: 5.18.2(@types/node@24.13.2)(aws4fetch@1.0.20)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) framer-motion: specifier: ^12.0.0 version: 12.40.0(react-dom@19.2.7(react@19.2.7))(react@19.2.7) @@ -1206,6 +1225,106 @@ packages: peerDependencies: zod: ^3.25.0 || ^4.0.0 + '@ai-sdk/amazon-bedrock@3.0.105': + resolution: {integrity: sha512-zMO80RQhm5r9jm8u01CydTAQFo956LO92NeOZYPuzeNdeS1ZXRz9vWA5X2GeSJBGZBSSRc7o1D8tFQK6n1R91w==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/anthropic@2.0.85': + resolution: {integrity: sha512-ozfPUXb5cnXyFWXyY0hRFi8fudgNDr+FAuP2J1HTRhPjkTHTSFLbPSVRXEXCVoJhfl1IboF+xNDZs35nOHDU7w==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/azure@2.0.114': + resolution: {integrity: sha512-gS4rv2Kd/Q8ek3ztQ8Kc5e0J6n853QcbZ9ISZtTxw9UHn/4Wg9rwUYyyLYJc0CBXGZG2grJBQJk1uqEc91jU8Q==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/cerebras@1.0.47': + resolution: {integrity: sha512-K8Q8TOPuyIbXOi1R9O+5JM2v+NbQRv1uLfgg8QBUI4/tKPC0yu6MUcg5qk/lk4FLacI7T+45lhgcHUCg/FzsYA==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/deepseek@1.0.45': + resolution: {integrity: sha512-DrV5KFfii+LS38Ky6dY3fmfCBybxAQ0/HyImf8fhm2AfNtfZvANSYre5zBVLH5YkZRdESZGUhISGgzjFs6vtVA==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/gateway@2.0.109': + resolution: {integrity: sha512-jvTQnfmcKD/bc8fbp2bbaO8QvqSPaj7lv5rj9kj/GLHUfTGpjQV3pH7GdO4fDi1SX2PdHpPQY0y6rxJ05Xo5cg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/google-vertex@3.0.146': + resolution: {integrity: sha512-/rel0/S71P/iGOMyTlj6flSnRK29DT/7oCVcVSpFfkrfZvhRh14qxJ5E3TDPJH4dD95X5mBj1NYo+SVoddN34A==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/google@2.0.78': + resolution: {integrity: sha512-21AeBlmeXcFVzujaW6I6bWSENYAVpaEYZ767Pv4LJeuSt7F6TR3/SutbLhi6n9XBiT+F5kWOtJnt/VPLHHb7XA==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/groq@2.0.43': + resolution: {integrity: sha512-D2BVVeID0nX4USXApbN2QPJ8yXudDDJuRPfvHubzw0zHP5fjyS8QnDLlBgK9xB2BVaKryg6nxlA7itDnmA7uxA==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/mistral@2.0.36': + resolution: {integrity: sha512-8p1Fa5AwnrdZJMgSaFDhnmwfEeddbR8SXcFAwbL3wTouBx0Q+2nohGoIWleJTPuQqeAW2FaBMMTt+DKpdFqjEw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/openai-compatible@1.0.42': + resolution: {integrity: sha512-zEvULhRonXDacqpjJGgOhADHsQnPwrx3dWj0wOev5ASUlzVlOO8PhUhXE+tr8v70xc4xmXHEkVSAV/MGVqu69w==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/openai@2.0.110': + resolution: {integrity: sha512-PVbq0vXo6LVBCKeIOiDsOfrUIL2IOkMUipWP53SJZppDo594kbu5BFs/NdwnJMAX4q6EM6sGPVv751RN9PrZ9A==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/perplexity@2.0.33': + resolution: {integrity: sha512-gJzzD/Jg4e9tqq/NLI/L+nNDssHOWLZPqSmbbNTIGyEkN70DZvFbeNcBySqH13IbqtUAH0vD8Duf8Yi4jZigyQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider-utils@3.0.28': + resolution: {integrity: sha512-bXlX1WX7E50a2N+AJW+1a/x63m52aPhm+6xYe5THxWrx9vW9NR7E2Ay+1G1ndlCdMdYKo2Fnsd7kBhuyQPaphw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/provider@2.0.3': + resolution: {integrity: sha512-h88OPkavHTiN9tMn2l5awAznGB0lXzjcLhgR1/rvjB2zlLprsNxbM2tt6OJsHUxduLC3klq0/eqaSf6fX5XVww==} + engines: {node: '>=18'} + + '@ai-sdk/togetherai@1.0.45': + resolution: {integrity: sha512-dedlp1iFG37BZlxAvhfvTmGdP5JML7X3w0pxp19Hysi1BaJlS5b2aLB8RKNUThLDKxwoULW20ndNvLMRSANeEQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + + '@ai-sdk/xai@2.0.76': + resolution: {integrity: sha512-OfmSestD/bKeFsv4P1PPsLY8apzLVZfpygLXhHdRqT4p/o4WCfu05m6ZiuALp46tfPwOCdoxcjuQdvfv/9J8Tg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} @@ -1219,6 +1338,9 @@ packages: peerDependencies: zod: ^4.0.0 + '@anthropic-ai/sdk@0.39.0': + resolution: {integrity: sha512-eMyDIPRZbt1CCLErRCi3exlAvNkBtRe+kW5vvJyef93PmNr/clstYgHhtvmkxN82nlKgzyGPCyGxrm0JQ1ZIdg==} + '@anthropic-ai/sdk@0.73.0': resolution: {integrity: sha512-URURVzhxXGJDGUGFunIOtBlSl7KWvZiAAKY/ttTkZAkXT9bTPqdk2eK0b8qqSxXpikh3QKPnPYpiyX98zf5ebw==} hasBin: true @@ -1539,6 +1661,25 @@ packages: '@braintree/sanitize-url@7.1.2': resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==} + '@browserbasehq/sdk@2.15.0': + resolution: {integrity: sha512-yWT7URYwpON1MvYRAA18Vmhg3iIhvj1VMqHC9igdh1CdS740xhYerxlvrm5GxMX5ExnjNbf7tf0k1VOUIvZbbg==} + + '@browserbasehq/stagehand@3.6.0': + resolution: {integrity: sha512-wQ3Mv5b2xy64SntWNUbvgd7liWPbQRvGa8KEb1LorwheTkpUZFkt3BpZE8ovMY/lIleV9DfYjbvqghbeOOla4w==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + patchright-core: ^1.55.2 + playwright-core: ^1.55.1 + puppeteer-core: ^24.43.0 + zod: ^3.25.76 || ^4.2.0 + peerDependenciesMeta: + patchright-core: + optional: true + playwright-core: + optional: true + puppeteer-core: + optional: true + '@capsizecss/unpack@4.0.1': resolution: {integrity: sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==} engines: {node: '>=18'} @@ -2570,6 +2711,14 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@oclif/core@4.11.14': + resolution: {integrity: sha512-cZ5Ktd+rT0PO+o7KBH4vRFTgg+xMLf8F41WK39p8MkXEViZA/Qqe+4lzZT6102zgUxMORET1HtF9t5w8CB3tnQ==} + engines: {node: '>=18.0.0'} + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} @@ -2633,6 +2782,9 @@ packages: cpu: [x64] os: [win32] + '@pinojs/redact@0.4.0': + resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -3511,10 +3663,18 @@ packages: resolution: {integrity: sha512-mLUktFAn+Pa2agl1J7VgtYNFWCX8/b4GMJSK1hCu4YCvtBfM6F8Os3EP4ry+DFFlXOf3wyvlgXhuUdFoy52D3g==} engines: {node: '>=18.0.0'} + '@smithy/core@3.29.1': + resolution: {integrity: sha512-qoiY4nrk5OCu1+eIR1VB8l5DmON/oKiqrd5zZFAhXJXjJlLWQusKEW/SkBDAtGDcPaz86m9kfcE1lngU0GlM6A==} + engines: {node: '>=18.0.0'} + '@smithy/credential-provider-imds@4.4.2': resolution: {integrity: sha512-18UMDMyrAbDcpmL1gLUA7ww0fRTcdCrSjSJOi2Sbld+tVjwD/pW+OAwjlScFLR7vvBnhZrIPQ7kVuTf1mnJLug==} engines: {node: '>=18.0.0'} + '@smithy/eventstream-codec@4.4.6': + resolution: {integrity: sha512-4N/HbPptAjynK/FDrTiSAEXmpEDcQw54SeY7qnKbNMOcbHK0B0nEq+OKDYXrnqyp5YhZGzXFDUJANGkdzz6H5Q==} + engines: {node: '>=18.0.0'} + '@smithy/fetch-http-handler@5.5.2': resolution: {integrity: sha512-Ei/UK/QMhq0rKaMqGPlOAkE2yS9DZeYmZdk1RAKc3vp3zxgleZHZyBLlZv8yLsxljX4svCRuMTD6u3LLIcU4Bg==} engines: {node: '>=18.0.0'} @@ -3535,6 +3695,10 @@ packages: resolution: {integrity: sha512-Z5TAOxygoFvybJV3igo5SloFflSokHx2hu1eFA+DxDTcn+FtKxUSui+rbTRG1pAafMA888Z3MVvCWUuvCrTXjg==} engines: {node: '>=18.0.0'} + '@smithy/types@4.15.1': + resolution: {integrity: sha512-x3L0XSACF6UYzKpa9biqiRMgvH5+wnFFew9Tm/grFYqgaupPwx/+ojDPpPJM8dZON3S9tjz5U+PQYsCBd1Mw5Q==} + engines: {node: '>=18.0.0'} + '@smithy/util-buffer-from@2.2.0': resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} @@ -3543,6 +3707,13 @@ packages: resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} engines: {node: '>=14.0.0'} + '@smithy/util-utf8@4.4.6': + resolution: {integrity: sha512-gncTZwzB/RTzm29VvK1nZhCHdPjBkR8pNaFtUMbQpkG6vFMjPHe/RsnmMXfrYj8Qs5s6QH5f1Mp9CBXFOHxqlQ==} + engines: {node: '>=18.0.0'} + + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@swc/helpers@0.5.23': resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==} @@ -3751,6 +3922,12 @@ packages: '@types/nlcst@2.0.3': resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} + '@types/node-fetch@2.6.13': + resolution: {integrity: sha512-QGpRVpzSaUs30JBSGPjOg4Uveu384erbHBoT1zeONvyCfwQxIkUshLAOqN/k9EjGviPRmWTTe6aH2qySWKTVSw==} + + '@types/node@18.19.130': + resolution: {integrity: sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==} + '@types/node@22.19.15': resolution: {integrity: sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==} @@ -3824,6 +4001,14 @@ packages: '@upsetjs/venn.js@2.0.0': resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==} + '@vercel/detect-agent@1.2.3': + resolution: {integrity: sha512-VYNCgUc0nOmC4WJmWw9GkrKdfr8Zl4/rxhC5SvgacBgxiW9W/9NRttUoHHXV8xdII3MaRgkZZVX8Ikzc/Jmjag==} + engines: {node: '>=14'} + + '@vercel/oidc@3.1.0': + resolution: {integrity: sha512-Fw28YZpRnA3cAHHDlkt7xQHiJ0fcL+NRcIqsocZQUSmbzeIKRpwttJjik5ZGanXP+vlA4SbTg+AbA3bP363l+w==} + engines: {node: '>= 20'} + '@vitejs/plugin-react@4.7.0': resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3859,6 +4044,10 @@ packages: '@vitest/utils@2.1.9': resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + accepts@2.0.0: resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} engines: {node: '>= 0.6'} @@ -3884,6 +4073,16 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + engines: {node: '>= 8.0.0'} + + ai@5.0.210: + resolution: {integrity: sha512-HAYfzP0vMU3/1GzjQkpJT7/x7BqacIYimAMgm6wXZKjZfOHGv1458hLDqYcC7o9BuAr23sFijvL41MSx9KEnEQ==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + ajv-formats@3.0.1: resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} peerDependencies: @@ -3898,6 +4097,10 @@ packages: ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -3914,6 +4117,10 @@ packages: resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} + ansis@3.17.0: + resolution: {integrity: sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==} + engines: {node: '>=14'} + any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} @@ -3921,6 +4128,14 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} + + archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} + arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -3964,9 +4179,16 @@ packages: engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} + autoprefixer@10.5.0: resolution: {integrity: sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==} engines: {node: ^10 || ^12 || >=14} @@ -3978,6 +4200,9 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + aws4fetch@1.0.20: + resolution: {integrity: sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g==} + axios@1.18.1: resolution: {integrity: sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==} @@ -3985,6 +4210,14 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} + b4a@1.8.1: + resolution: {integrity: sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==} + peerDependencies: + react-native-b4a: '*' + peerDependenciesMeta: + react-native-b4a: + optional: true + bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -3995,6 +4228,47 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} + bare-events@2.9.1: + resolution: {integrity: sha512-Z0oHEHAFDZkffN8Qc39zNZjQlMDkPJRyyyZieU1VH7u8c5S+qHZ2S8ixdKIAxEjfHO7FJxXmJWgteOghVanIsg==} + peerDependencies: + bare-abort-controller: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + + bare-fs@4.7.3: + resolution: {integrity: sha512-xRgplks8SvcKkdlv2M6Z2LZmRsmqd+x0nXXGXeMEjwdibj1HSDrlnqBRLeYdMvsgCox7Bq0e+DHwfczOfsn6IA==} + engines: {bare: '>=1.16.0'} + peerDependencies: + bare-buffer: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + + bare-os@3.9.3: + resolution: {integrity: sha512-fF4Q7QsyKVF5Rj0qvI8BgUNjqzC2JvQlpTaPLjVJVxYVUX5Zr9un+y3w1HmA4nNKdFmRBT8z/WmrjvXzXVerKQ==} + engines: {bare: '>=1.14.0'} + + bare-path@3.0.1: + resolution: {integrity: sha512-ghj2DSK/2e99a1anTVPCV4m4YIYtrbXhfM7V3D7XZLOTsybnYyaJloymGqssQc8l/or0UoDyRtNQkmkEF/ysgQ==} + + bare-stream@2.13.3: + resolution: {integrity: sha512-Kc+brLqvEqGkjyfiwJmImAOqLZL7OsoLKuavx+hJjgVV3nLTOjloJyPMFxjUPerGGHrNH0fLU06jjykMLWrERQ==} + peerDependencies: + bare-abort-controller: '*' + bare-buffer: '*' + bare-events: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + bare-buffer: + optional: true + bare-events: + optional: true + + bare-url@2.4.5: + resolution: {integrity: sha512-K+y9xF1tN+CdPu4qWwr0QiK1Al07eFPGYK5M2pDXcmHdMdgC/tT/bpmMe1hrmRHaidKLkXrC+cRNYf3XVDUhSQ==} + base-64@1.0.0: resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} @@ -4057,6 +4331,11 @@ packages: brorand@1.1.0: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + browse@0.9.3: + resolution: {integrity: sha512-J+3MhvMsy7G7B8FoQuCLrZyWhG6gJKGJYObyzD1EuA+1/2EQ2fLogACZtwPe9RReql3J/LZvfIefyJ17G7B5KA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + browser-resolve@2.0.0: resolution: {integrity: sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==} @@ -4088,6 +4367,10 @@ packages: buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} + buffer-equal-constant-time@1.0.1: resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} @@ -4097,6 +4380,13 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + bufferutil@4.1.0: + resolution: {integrity: sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==} + engines: {node: '>=6.14.2'} + buildcheck@0.0.7: resolution: {integrity: sha512-lHblz4ahamxpTmnsk+MNTRWsjYKv965MwOrSJyeD588rR3Jcu7swE+0wN5F+PbL5cjgu/9ObkhfzEPuofEMwLA==} engines: {node: '>=10.0.0'} @@ -4193,6 +4483,11 @@ packages: chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + chrome-launcher@1.2.1: + resolution: {integrity: sha512-qmFR5PLMzHyuNJHwOloHPAHhbaNglkfeV/xDtt5b7xiFFyU1I+AZZX0PYseMuhenJSSirgxELYIbswcoc+5H4A==} + engines: {node: '>=12.13.0'} + hasBin: true + ci-info@4.4.0: resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} @@ -4204,6 +4499,10 @@ packages: class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + clean-stack@3.0.1: + resolution: {integrity: sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==} + engines: {node: '>=10'} + cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -4213,6 +4512,10 @@ packages: engines: {node: '>=8.0.0', npm: '>=5.0.0'} hasBin: true + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -4250,6 +4553,9 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -4280,6 +4586,10 @@ packages: common-ancestor-path@1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} + confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} @@ -4343,6 +4653,15 @@ packages: resolution: {integrity: sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==} engines: {node: '>=10.0.0'} + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} + create-ecdh@4.0.4: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} @@ -4563,6 +4882,9 @@ packages: date-fns@4.4.0: resolution: {integrity: sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==} + dateformat@4.6.3: + resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + dayjs@1.11.21: resolution: {integrity: sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==} @@ -4593,6 +4915,10 @@ packages: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -4646,6 +4972,9 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + devtools-protocol@0.0.1642743: + resolution: {integrity: sha512-vTCGze95hGFayPNUXv2H/3cNt/Kqv3J7XqS519j7U8HYhmtD6+eVEPHp6nRHD64dDXJ022TU4reAYhjYyuxm8Q==} + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} @@ -4690,6 +5019,10 @@ packages: domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} + engines: {node: '>=12'} + dset@3.1.4: resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} @@ -4707,6 +5040,11 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + electron-to-chromium@1.5.375: resolution: {integrity: sha512-ZWP5eB4BVPW/ZYo9252hQZHZ5XavtsTgpbhcmMmRwymavC5AsLWQWBPaKMeNd2LW0KGby5HPXvj7+sr4ta5j/Q==} @@ -4787,6 +5125,10 @@ packages: escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} @@ -4840,12 +5182,19 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} eventemitter3@5.0.4: resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} + events-universal@1.0.1: + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} + events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -4887,6 +5236,9 @@ packages: engines: {node: '>= 10.17.0'} hasBin: true + fast-copy@4.0.3: + resolution: {integrity: sha512-58apWr0GUiDFM8+3afrO6eYwJBn9ZAhDOzG3L+/9llab/haCARS2UIfffmOurYLwbgDRs8n0rfr6qAAPEAuAQw==} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -4894,13 +5246,23 @@ packages: resolution: {integrity: sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==} engines: {node: '>=6.0.0'} + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + fast-uri@3.1.2: resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} @@ -4920,6 +5282,9 @@ packages: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} + fetch-cookie@3.2.0: + resolution: {integrity: sha512-n61pQIxP25C6DRhcJxn7BDzgHP/+S56Urowb5WFxtcRMpU6drqXD90xjyAsVQYsNSNNVbaCcYY1DuHsdkZLuiA==} + fflate@0.4.8: resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==} @@ -4927,6 +5292,9 @@ packages: resolution: {integrity: sha512-Ievi/yy8DS3ygGvT47PjSfdFoX+2isQueoYP1cntFW1JLYAuS4GD7NUPGg4zv2iZfV52uDyk5w5Z0TdpRS6Q1g==} engines: {node: '>=20'} + filelist@1.0.6: + resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -4970,10 +5338,17 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} + form-data-encoder@1.7.2: + resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + form-data@4.0.6: resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} engines: {node: '>= 6'} + formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -5069,6 +5444,10 @@ packages: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + get-port@7.2.0: resolution: {integrity: sha512-afP4W205ONCuMoPBqcR6PSXnzX35KTcJygfJfcp+QY+uwm3p20p1YczWXhlICIzGMCxYBQcySEcOgsJcrkyobg==} engines: {node: '>=16'} @@ -5209,6 +5588,13 @@ packages: hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + help-me@5.0.0: + resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} + highlight.js@10.7.3: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} @@ -5246,6 +5632,9 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} + http-status-codes@2.3.0: + resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==} + https-browserify@1.0.0: resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} @@ -5261,6 +5650,9 @@ packages: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} @@ -5279,6 +5671,10 @@ packages: import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -5337,6 +5733,11 @@ packages: is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -5385,6 +5786,10 @@ packages: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -5393,6 +5798,10 @@ packages: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + is-wsl@3.1.1: resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} engines: {node: '>=16'} @@ -5413,6 +5822,11 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jake@10.9.4: + resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} + engines: {node: '>=10'} + hasBin: true + jiti@1.21.7: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true @@ -5473,6 +5887,9 @@ packages: json-schema-typed@8.0.2: resolution: {integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==} + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -5504,6 +5921,13 @@ packages: layout-base@2.0.1: resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + + lighthouse-logger@2.0.2: + resolution: {integrity: sha512-vWl2+u5jgOQuZR55Z1WM0XDdrJT6mzMP8zHUct7xTlWhuQs+eV0g+QL0RQdFjT54zVmbhLCP8vIVpy1wGn/gCg==} + lilconfig@3.1.3: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} @@ -5605,6 +6029,9 @@ packages: engines: {node: '>= 20'} hasBin: true + marky@1.3.0: + resolution: {integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==} + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -5848,10 +6275,17 @@ packages: resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} engines: {node: 18 || 20 || >=22} + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + engines: {node: '>=10'} + minimatch@9.0.9: resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@7.1.3: resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} @@ -5915,10 +6349,30 @@ packages: node-fetch-native@1.6.7: resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + node-html-markdown@1.3.0: + resolution: {integrity: sha512-OeFi3QwC/cPjvVKZ114tzzu+YoR+v9UXW5RwSXGUqGb0qCl0DvP406tzdL7SFn8pZrMyzXoisfG2zcuF9+zw4g==} + engines: {node: '>=10.0.0'} + + node-html-parser@6.1.13: + resolution: {integrity: sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==} + node-mock-http@1.0.4: resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} @@ -5971,6 +6425,16 @@ packages: ohash@2.0.11: resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + ollama-ai-provider-v2@1.5.5: + resolution: {integrity: sha512-1YwTFdPjhPNHny/DrOHO+s8oVGGIE5Jib61/KnnjPRNWQhVVimrJJdaAX3e6nNRRDXrY5zbb9cfm2+yVvgsrqw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^4.0.16 + + on-exit-leak-free@2.1.2: + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} + engines: {node: '>=14.0.0'} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -5988,6 +6452,18 @@ packages: oniguruma-to-es@4.3.6: resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} + openai@4.104.0: + resolution: {integrity: sha512-p99EFNsA/yX6UhVO93f5kJsDRLAg+CTA2RBqdHK4RtK8u5IJw32Hyb2dTGKbnnFmnuoBv5r7Z2CURI9sGZpSuA==} + hasBin: true + peerDependencies: + ws: ^8.18.0 + zod: ^3.23.8 + peerDependenciesMeta: + ws: + optional: true + zod: + optional: true + openai@6.26.0: resolution: {integrity: sha512-zd23dbWTjiJ6sSAX6s0HrCZi41JwTA1bQVs0wLQPZ2/5o2gxOJA5wh7yOAUgwYybfhDXyhwlpeQf7Mlgx8EOCA==} hasBin: true @@ -6145,6 +6621,23 @@ packages: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} + pino-abstract-transport@2.0.0: + resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} + + pino-abstract-transport@3.0.0: + resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==} + + pino-pretty@13.1.3: + resolution: {integrity: sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg==} + hasBin: true + + pino-std-serializers@7.1.0: + resolution: {integrity: sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==} + + pino@9.14.0: + resolution: {integrity: sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==} + hasBin: true + pirates@4.0.7: resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} @@ -6264,6 +6757,9 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + process-warning@5.0.0: + resolution: {integrity: sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==} + process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} @@ -6331,6 +6827,9 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + radix3@1.1.2: resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} @@ -6454,6 +6953,13 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -6466,6 +6972,10 @@ packages: resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} engines: {node: '>= 20.19.0'} + real-require@0.2.0: + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} + engines: {node: '>= 12.13.0'} + recharts-scale@0.4.5: resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} @@ -6621,6 +7131,10 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -6663,6 +7177,9 @@ packages: scheduler@0.27.0: resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + secure-json-parse@4.1.0: + resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -6672,6 +7189,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} + engines: {node: '>=10'} + hasBin: true + send@1.2.1: resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} engines: {node: '>= 18'} @@ -6680,6 +7202,9 @@ packages: resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} engines: {node: '>= 18'} + set-cookie-parser@2.7.2: + resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==} + set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -6775,6 +7300,9 @@ packages: resolution: {integrity: sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + sonic-boom@4.2.1: + resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==} + sonner@1.7.4: resolution: {integrity: sha512-DIS8z4PfJRbIyfVFDVnK9rO3eYDtse4Omcm6bt0oEr5/jtLgysmjuBl1frJ9E/EQZrFmKx2A8m/s5s9CRXIzhw==} peerDependencies: @@ -6799,6 +7327,10 @@ packages: split-ca@1.0.1: resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==} + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + ssh2@1.17.0: resolution: {integrity: sha512-wPldCk3asibAjQ/kziWQQt1Wh3PgDFpC0XpwclzKcdT1vql6KeYxf5LIt4nlFkUeR8WuphYMKqUA56X4rjbfgQ==} engines: {node: '>=10.16.0'} @@ -6822,6 +7354,9 @@ packages: stream-replace-string@2.0.0: resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} + streamx@2.28.0: + resolution: {integrity: sha512-1Yowhzjf0ivGMrTIkY9hav5TxobO9qIVqUE41fiCGMGgc3CLlf4MY+9AHmZqBWgDTue0fY9zWjYFVyf6Diuobw==} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -6855,6 +7390,10 @@ packages: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} + strip-json-comments@5.0.3: + resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} + engines: {node: '>=14.16'} + strtok3@10.3.5: resolution: {integrity: sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==} engines: {node: '>=18'} @@ -6880,6 +7419,10 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -6912,6 +7455,15 @@ packages: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} + tar-stream@3.2.0: + resolution: {integrity: sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==} + + teex@1.0.1: + resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} + + text-decoder@1.2.7: + resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} + thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -6919,6 +7471,9 @@ packages: thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thread-stream@3.2.0: + resolution: {integrity: sha512-zLBvqpwr4Esa0kRjcrzGU6zL25lePWaCLMx0RQFrmteozIfeNdaMLpG5U7PeHzvlFkAWaRKA9/KVW4F60iB+qw==} + timers-browserify@2.0.12: resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==} engines: {node: '>=0.6.0'} @@ -6943,6 +7498,10 @@ packages: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + tinypool@1.1.1: resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} @@ -6955,6 +7514,13 @@ packages: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} + tldts-core@7.4.6: + resolution: {integrity: sha512-TkQNGJIhlEphpHCjKodMTSe23egUZr/g+flI2qkLgiJ/maAzSgXypSLRTNH3nCmqgayEmtcJBiLcfODSAr1xoA==} + + tldts@7.4.6: + resolution: {integrity: sha512-rbP0Gyx8b3Ae9yO//CU2wbSnQNoQ66m1nJdSbSHmnwKwzkkz/u8mERYU8T2rmlmy+bJvRNn84yNCW8gYqox44Q==} + hasBin: true + tm-themes@1.12.2: resolution: {integrity: sha512-DDcp7Feso0zvb8McGdChR1elzS0kWYcaGjxcz1R3L88xv3hvN9wP3GvOagj5JKexFrPneiGOoU5AZELXTWk4oA==} @@ -6974,6 +7540,13 @@ packages: resolution: {integrity: sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==} engines: {node: '>=14.16'} + tough-cookie@6.0.1: + resolution: {integrity: sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==} + engines: {node: '>=16'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true @@ -7042,6 +7615,10 @@ packages: tweetnacl@0.14.5: resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + type-fest@4.41.0: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} @@ -7094,6 +7671,9 @@ packages: uncrypto@0.1.3: resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} @@ -7270,6 +7850,10 @@ packages: deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true + uuid@11.1.1: + resolution: {integrity: sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==} + hasBin: true + uuid@14.0.1: resolution: {integrity: sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==} hasBin: true @@ -7412,9 +7996,19 @@ packages: resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} engines: {node: '>= 8'} + web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + web-vitals@5.3.0: resolution: {integrity: sha512-q6LWsLatGYZp5VGBIOvbTj6JBV2nOmC8KvWztXBmwJcfFAzhwKwbOxhUH306XY3CcaZDUlSmSuNPBsCn0bFu+g==} + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + which-pm-runs@1.1.0: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} @@ -7433,10 +8027,17 @@ packages: engines: {node: '>=8'} hasBin: true + widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + widest-line@5.0.0: resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} engines: {node: '>=18'} + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -7518,6 +8119,10 @@ packages: resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} engines: {node: '>=18'} + zip-stream@6.0.1: + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + engines: {node: '>= 14'} + zod-to-json-schema@3.25.2: resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} peerDependencies: @@ -7566,6 +8171,137 @@ snapshots: dependencies: zod: 4.3.6 + '@ai-sdk/amazon-bedrock@3.0.105(zod@4.3.6)': + dependencies: + '@ai-sdk/anthropic': 2.0.85(zod@4.3.6) + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + '@smithy/eventstream-codec': 4.4.6 + '@smithy/util-utf8': 4.4.6 + aws4fetch: 1.0.20 + zod: 4.3.6 + optional: true + + '@ai-sdk/anthropic@2.0.85(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + zod: 4.3.6 + optional: true + + '@ai-sdk/azure@2.0.114(zod@4.3.6)': + dependencies: + '@ai-sdk/deepseek': 1.0.45(zod@4.3.6) + '@ai-sdk/openai': 2.0.110(zod@4.3.6) + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + zod: 4.3.6 + optional: true + + '@ai-sdk/cerebras@1.0.47(zod@4.3.6)': + dependencies: + '@ai-sdk/openai-compatible': 1.0.42(zod@4.3.6) + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + zod: 4.3.6 + optional: true + + '@ai-sdk/deepseek@1.0.45(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + zod: 4.3.6 + optional: true + + '@ai-sdk/gateway@2.0.109(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + '@vercel/oidc': 3.1.0 + zod: 4.3.6 + + '@ai-sdk/google-vertex@3.0.146(zod@4.3.6)': + dependencies: + '@ai-sdk/anthropic': 2.0.85(zod@4.3.6) + '@ai-sdk/google': 2.0.78(zod@4.3.6) + '@ai-sdk/openai-compatible': 1.0.42(zod@4.3.6) + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + google-auth-library: 10.9.0 + zod: 4.3.6 + transitivePeerDependencies: + - supports-color + optional: true + + '@ai-sdk/google@2.0.78(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + zod: 4.3.6 + optional: true + + '@ai-sdk/groq@2.0.43(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + zod: 4.3.6 + optional: true + + '@ai-sdk/mistral@2.0.36(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + zod: 4.3.6 + optional: true + + '@ai-sdk/openai-compatible@1.0.42(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + zod: 4.3.6 + optional: true + + '@ai-sdk/openai@2.0.110(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + zod: 4.3.6 + optional: true + + '@ai-sdk/perplexity@2.0.33(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + zod: 4.3.6 + optional: true + + '@ai-sdk/provider-utils@3.0.28(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 2.0.3 + '@standard-schema/spec': 1.1.0 + eventsource-parser: 3.1.0 + zod: 4.3.6 + + '@ai-sdk/provider@2.0.3': + dependencies: + json-schema: 0.4.0 + + '@ai-sdk/togetherai@1.0.45(zod@4.3.6)': + dependencies: + '@ai-sdk/openai-compatible': 1.0.42(zod@4.3.6) + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + zod: 4.3.6 + optional: true + + '@ai-sdk/xai@2.0.76(zod@4.3.6)': + dependencies: + '@ai-sdk/openai-compatible': 1.0.42(zod@4.3.6) + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + zod: 4.3.6 + optional: true + '@alloc/quick-lru@5.2.0': {} '@antfu/install-pkg@1.1.0': @@ -7592,6 +8328,18 @@ snapshots: - '@cfworker/json-schema' - supports-color + '@anthropic-ai/sdk@0.39.0': + dependencies: + '@types/node': 18.19.130 + '@types/node-fetch': 2.6.13 + abort-controller: 3.0.0 + agentkeepalive: 4.6.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + '@anthropic-ai/sdk@0.73.0(zod@3.25.76)': dependencies: json-schema-to-ts: 3.1.1 @@ -7640,12 +8388,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.3.14(astro@5.18.2(@types/node@24.13.2)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0))': + '@astrojs/mdx@4.3.14(astro@5.18.2(@types/node@24.13.2)(aws4fetch@1.0.20)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0))': dependencies: '@astrojs/markdown-remark': 6.3.11 '@mdx-js/mdx': 3.1.1 acorn: 8.17.0 - astro: 5.18.2(@types/node@24.13.2)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + astro: 5.18.2(@types/node@24.13.2)(aws4fetch@1.0.20)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) es-module-lexer: 1.7.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 @@ -7692,9 +8440,9 @@ snapshots: stream-replace-string: 2.0.0 zod: 4.3.6 - '@astrojs/tailwind@6.0.2(astro@5.18.2(@types/node@24.13.2)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0))(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0))': + '@astrojs/tailwind@6.0.2(astro@5.18.2(@types/node@24.13.2)(aws4fetch@1.0.20)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0))(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0))': dependencies: - astro: 5.18.2(@types/node@24.13.2)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + astro: 5.18.2(@types/node@24.13.2)(aws4fetch@1.0.20)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) autoprefixer: 10.5.0(postcss@8.5.8) postcss: 8.5.8 postcss-load-config: 4.0.2(postcss@8.5.8) @@ -7705,7 +8453,7 @@ snapshots: '@astrojs/telemetry@3.3.0': dependencies: ci-info: 4.4.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) dlv: 1.1.3 dset: 3.1.4 is-docker: 3.0.0 @@ -7957,7 +8705,7 @@ snapshots: '@babel/types': 7.29.7 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -8041,7 +8789,7 @@ snapshots: '@babel/parser': 7.29.7 '@babel/template': 7.29.7 '@babel/types': 7.29.7 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -8099,6 +8847,59 @@ snapshots: '@braintree/sanitize-url@7.1.2': {} + '@browserbasehq/sdk@2.15.0': + dependencies: + '@types/node': 18.19.130 + '@types/node-fetch': 2.6.13 + abort-controller: 3.0.0 + agentkeepalive: 4.6.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + '@browserbasehq/stagehand@3.6.0(playwright-core@1.59.1)(zod@4.3.6)': + dependencies: + '@ai-sdk/provider': 2.0.3 + '@anthropic-ai/sdk': 0.39.0 + '@browserbasehq/sdk': 2.15.0 + '@google/genai': 1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0) + '@modelcontextprotocol/sdk': 1.29.0(zod@4.3.6) + ai: 5.0.210(zod@4.3.6) + devtools-protocol: 0.0.1642743 + fetch-cookie: 3.2.0 + openai: 4.104.0(ws@8.21.0(bufferutil@4.1.0))(zod@4.3.6) + pino: 9.14.0 + pino-pretty: 13.1.3 + uuid: 11.1.1 + ws: 8.21.0(bufferutil@4.1.0) + zod: 4.3.6 + zod-to-json-schema: 3.25.2(zod@4.3.6) + optionalDependencies: + '@ai-sdk/amazon-bedrock': 3.0.105(zod@4.3.6) + '@ai-sdk/anthropic': 2.0.85(zod@4.3.6) + '@ai-sdk/azure': 2.0.114(zod@4.3.6) + '@ai-sdk/cerebras': 1.0.47(zod@4.3.6) + '@ai-sdk/deepseek': 1.0.45(zod@4.3.6) + '@ai-sdk/google': 2.0.78(zod@4.3.6) + '@ai-sdk/google-vertex': 3.0.146(zod@4.3.6) + '@ai-sdk/groq': 2.0.43(zod@4.3.6) + '@ai-sdk/mistral': 2.0.36(zod@4.3.6) + '@ai-sdk/openai': 2.0.110(zod@4.3.6) + '@ai-sdk/perplexity': 2.0.33(zod@4.3.6) + '@ai-sdk/togetherai': 1.0.45(zod@4.3.6) + '@ai-sdk/xai': 2.0.76(zod@4.3.6) + bufferutil: 4.1.0 + chrome-launcher: 1.2.1 + ollama-ai-provider-v2: 1.5.5(zod@4.3.6) + playwright-core: 1.59.1 + transitivePeerDependencies: + - '@cfworker/json-schema' + - encoding + - supports-color + - utf-8-validate + '@capsizecss/unpack@4.0.1': dependencies: fontkitten: 1.0.3 @@ -8477,12 +9278,12 @@ snapshots: '@shikijs/types': 3.23.0 '@shikijs/vscode-textmate': 10.0.2 - '@google/genai@1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))': + '@google/genai@1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)': dependencies: google-auth-library: 10.9.0 p-retry: 4.6.2 protobufjs: 7.5.4 - ws: 8.21.0 + ws: 8.21.0(bufferutil@4.1.0) optionalDependencies: '@modelcontextprotocol/sdk': 1.29.0(zod@4.3.6) transitivePeerDependencies: @@ -8826,9 +9627,9 @@ snapshots: std-env: 3.10.0 yoctocolors: 2.1.2 - '@mariozechner/pi-agent-core@0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.21.0)(zod@4.3.6)': + '@mariozechner/pi-agent-core@0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(ws@8.21.0(bufferutil@4.1.0))(zod@4.3.6)': dependencies: - '@mariozechner/pi-ai': 0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.21.0)(zod@4.3.6) + '@mariozechner/pi-ai': 0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(ws@8.21.0(bufferutil@4.1.0))(zod@4.3.6) transitivePeerDependencies: - '@modelcontextprotocol/sdk' - bufferutil @@ -8848,17 +9649,17 @@ snapshots: - ws - zod - '@mariozechner/pi-ai@0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.21.0)(zod@4.3.6)': + '@mariozechner/pi-ai@0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(ws@8.21.0(bufferutil@4.1.0))(zod@4.3.6)': dependencies: '@anthropic-ai/sdk': 0.73.0(zod@4.3.6) '@aws-sdk/client-bedrock-runtime': 3.1075.0 - '@google/genai': 1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6)) - '@mistralai/mistralai': 1.14.1 + '@google/genai': 1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0) + '@mistralai/mistralai': 1.14.1(bufferutil@4.1.0) '@sinclair/typebox': 0.34.49 ajv: 8.20.0 ajv-formats: 3.0.1(ajv@8.20.0) chalk: 5.6.2 - openai: 6.26.0(ws@8.21.0)(zod@4.3.6) + openai: 6.26.0(ws@8.21.0(bufferutil@4.1.0))(zod@4.3.6) partial-json: 0.1.7 proxy-agent: 6.5.0 undici: 7.24.6 @@ -8875,8 +9676,8 @@ snapshots: dependencies: '@anthropic-ai/sdk': 0.73.0(zod@3.25.76) '@aws-sdk/client-bedrock-runtime': 3.1075.0 - '@google/genai': 1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6)) - '@mistralai/mistralai': 1.14.1 + '@google/genai': 1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0) + '@mistralai/mistralai': 1.14.1(bufferutil@4.1.0) '@sinclair/typebox': 0.34.49 ajv: 8.20.0 ajv-formats: 3.0.1(ajv@8.20.0) @@ -8894,11 +9695,11 @@ snapshots: - ws - zod - '@mariozechner/pi-coding-agent@0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.21.0)(zod@4.3.6)': + '@mariozechner/pi-coding-agent@0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(ws@8.21.0(bufferutil@4.1.0))(zod@4.3.6)': dependencies: '@mariozechner/jiti': 2.6.5 - '@mariozechner/pi-agent-core': 0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.21.0)(zod@4.3.6) - '@mariozechner/pi-ai': 0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(ws@8.21.0)(zod@4.3.6) + '@mariozechner/pi-agent-core': 0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(ws@8.21.0(bufferutil@4.1.0))(zod@4.3.6) + '@mariozechner/pi-ai': 0.60.0(@modelcontextprotocol/sdk@1.29.0(zod@4.3.6))(bufferutil@4.1.0)(ws@8.21.0(bufferutil@4.1.0))(zod@4.3.6) '@mariozechner/pi-tui': 0.60.0 '@silvia-odwyer/photon-node': 0.3.4 chalk: 5.6.2 @@ -9000,9 +9801,9 @@ snapshots: dependencies: '@chevrotain/types': 11.1.2 - '@mistralai/mistralai@1.14.1': + '@mistralai/mistralai@1.14.1(bufferutil@4.1.0)': dependencies: - ws: 8.21.0 + ws: 8.21.0(bufferutil@4.1.0) zod: 4.3.6 zod-to-json-schema: 3.25.2(zod@4.3.6) transitivePeerDependencies: @@ -9047,6 +9848,29 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.20.1 + '@oclif/core@4.11.14': + dependencies: + ansi-escapes: 4.3.2 + ansis: 3.17.0 + clean-stack: 3.0.1 + cli-spinners: 2.9.2 + debug: 4.4.3(supports-color@8.1.1) + ejs: 3.1.10 + get-package-type: 0.1.0 + indent-string: 4.0.0 + is-wsl: 2.2.0 + lilconfig: 3.1.3 + minimatch: 10.2.5 + semver: 7.8.5 + string-width: 4.2.3 + supports-color: 8.1.1 + tinyglobby: 0.2.17 + widest-line: 3.1.0 + wordwrap: 1.0.0 + wrap-ansi: 7.0.0 + + '@opentelemetry/api@1.9.0': {} + '@oslojs/encoding@1.1.0': {} '@oven/bun-darwin-aarch64@1.3.11': @@ -9085,6 +9909,8 @@ snapshots: '@oven/bun-windows-x64@1.3.11': optional: true + '@pinojs/redact@0.4.0': {} + '@pkgjs/parseargs@0.11.0': optional: true @@ -9704,9 +10530,9 @@ snapshots: dependencies: react: 19.2.7 - '@rivet-dev/docs-theme@https://codeload.github.com/rivet-dev/docs-theme/tar.gz/71c3e482fe43e4cbc4f4327a26c8899b6bd4aaa7(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@babel/template@7.29.7)(@codemirror/language@6.12.4)(@codemirror/search@6.7.1)(@codemirror/theme-one-dark@6.1.3)(@types/node@24.13.2)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(astro@5.18.2(@types/node@24.13.2)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0))(codemirror@6.0.2)(jiti@1.21.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(tsx@4.21.0)(use-sync-external-store@1.6.0(react@19.2.7))(yaml@2.9.0)': + '@rivet-dev/docs-theme@https://codeload.github.com/rivet-dev/docs-theme/tar.gz/71c3e482fe43e4cbc4f4327a26c8899b6bd4aaa7(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@babel/template@7.29.7)(@codemirror/language@6.12.4)(@codemirror/search@6.7.1)(@codemirror/theme-one-dark@6.1.3)(@types/node@24.13.2)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(astro@5.18.2(@types/node@24.13.2)(aws4fetch@1.0.20)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0))(codemirror@6.0.2)(jiti@1.21.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(tsx@4.21.0)(use-sync-external-store@1.6.0(react@19.2.7))(yaml@2.9.0)': dependencies: - '@astrojs/mdx': 4.3.14(astro@5.18.2(@types/node@24.13.2)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0)) + '@astrojs/mdx': 4.3.14(astro@5.18.2(@types/node@24.13.2)(aws4fetch@1.0.20)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0)) '@astrojs/react': 4.4.2(@types/node@24.13.2)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(jiti@1.21.7)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(tsx@4.21.0)(yaml@2.9.0) '@astrojs/sitemap': 3.7.3 '@fortawesome/fontawesome-svg-core': 7.3.0 @@ -9720,7 +10546,7 @@ snapshots: '@sindresorhus/slugify': 3.0.0 '@tailwindcss/typography': 0.5.20(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.9.0)) acorn: 8.17.0 - astro: 5.18.2(@types/node@24.13.2)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) + astro: 5.18.2(@types/node@24.13.2)(aws4fetch@1.0.20)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0) clsx: 2.1.1 dedent: 1.7.2 esast-util-from-js: 2.0.1 @@ -10085,12 +10911,24 @@ snapshots: '@smithy/types': 4.15.0 tslib: 2.8.1 + '@smithy/core@3.29.1': + dependencies: + '@smithy/types': 4.15.1 + tslib: 2.8.1 + optional: true + '@smithy/credential-provider-imds@4.4.2': dependencies: '@smithy/core': 3.26.0 '@smithy/types': 4.15.0 tslib: 2.8.1 + '@smithy/eventstream-codec@4.4.6': + dependencies: + '@smithy/core': 3.29.1 + tslib: 2.8.1 + optional: true + '@smithy/fetch-http-handler@5.5.2': dependencies: '@smithy/core': 3.26.0 @@ -10117,6 +10955,11 @@ snapshots: dependencies: tslib: 2.8.1 + '@smithy/types@4.15.1': + dependencies: + tslib: 2.8.1 + optional: true + '@smithy/util-buffer-from@2.2.0': dependencies: '@smithy/is-array-buffer': 2.2.0 @@ -10127,6 +10970,14 @@ snapshots: '@smithy/util-buffer-from': 2.2.0 tslib: 2.8.1 + '@smithy/util-utf8@4.4.6': + dependencies: + '@smithy/core': 3.29.1 + tslib: 2.8.1 + optional: true + + '@standard-schema/spec@1.1.0': {} + '@swc/helpers@0.5.23': dependencies: tslib: 2.8.1 @@ -10158,7 +11009,7 @@ snapshots: '@tokenizer/inflate@0.4.1': dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) token-types: 6.1.2 transitivePeerDependencies: - supports-color @@ -10353,6 +11204,15 @@ snapshots: dependencies: '@types/unist': 3.0.3 + '@types/node-fetch@2.6.13': + dependencies: + '@types/node': 22.19.15 + form-data: 4.0.6 + + '@types/node@18.19.130': + dependencies: + undici-types: 5.26.5 + '@types/node@22.19.15': dependencies: undici-types: 6.21.0 @@ -10437,6 +11297,10 @@ snapshots: d3-selection: 3.0.0 d3-transition: 3.0.1(d3-selection@3.0.0) + '@vercel/detect-agent@1.2.3': {} + + '@vercel/oidc@3.1.0': {} + '@vitejs/plugin-react@4.7.0(vite@6.4.3(@types/node@24.13.2)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.9.0))': dependencies: '@babel/core': 7.29.7 @@ -10489,6 +11353,10 @@ snapshots: loupe: 3.2.1 tinyrainbow: 1.2.0 + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + accepts@2.0.0: dependencies: mime-types: 3.0.2 @@ -10508,12 +11376,24 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color agent-base@7.1.4: {} + agentkeepalive@4.6.0: + dependencies: + humanize-ms: 1.2.1 + + ai@5.0.210(zod@4.3.6): + dependencies: + '@ai-sdk/gateway': 2.0.109(zod@4.3.6) + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + '@opentelemetry/api': 1.9.0 + zod: 4.3.6 + ajv-formats@3.0.1(ajv@8.20.0): optionalDependencies: ajv: 8.20.0 @@ -10529,6 +11409,10 @@ snapshots: dependencies: string-width: 4.2.3 + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + ansi-regex@5.0.1: {} ansi-regex@6.2.2: {} @@ -10539,6 +11423,8 @@ snapshots: ansi-styles@6.2.3: {} + ansis@3.17.0: {} + any-promise@1.3.0: {} anymatch@3.1.3: @@ -10546,6 +11432,30 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.2 + archiver-utils@5.0.2: + dependencies: + glob: 10.5.0 + graceful-fs: 4.2.11 + is-stream: 2.0.1 + lazystream: 1.0.1 + lodash: 4.18.1 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + + archiver@7.0.1: + dependencies: + archiver-utils: 5.0.2 + async: 3.2.6 + buffer-crc32: 1.0.0 + readable-stream: 4.7.0 + readdir-glob: 1.1.3 + tar-stream: 3.2.0 + zip-stream: 6.0.1 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + arg@5.0.2: {} argparse@2.0.1: {} @@ -10585,7 +11495,7 @@ snapshots: astring@1.9.0: {} - astro@5.18.2(@types/node@24.13.2)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0): + astro@5.18.2(@types/node@24.13.2)(aws4fetch@1.0.20)(jiti@1.21.7)(rollup@4.60.1)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.9.0): dependencies: '@astrojs/compiler': 2.13.1 '@astrojs/internal-helpers': 0.7.6 @@ -10603,7 +11513,7 @@ snapshots: common-ancestor-path: 1.0.1 cookie: 1.1.1 cssesc: 3.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) deterministic-object-hash: 2.0.2 devalue: 5.8.1 diff: 8.0.4 @@ -10640,7 +11550,7 @@ snapshots: ultrahtml: 1.6.0 unifont: 0.7.4 unist-util-visit: 5.1.0 - unstorage: 1.17.5 + unstorage: 1.17.5(aws4fetch@1.0.20) vfile: 6.0.3 vite: 6.4.3(@types/node@24.13.2)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.9.0) vitefu: 1.1.3(vite@6.4.3(@types/node@24.13.2)(jiti@1.21.7)(tsx@4.21.0)(yaml@2.9.0)) @@ -10687,8 +11597,12 @@ snapshots: - uploadthing - yaml + async@3.2.6: {} + asynckit@0.4.0: {} + atomic-sleep@1.0.0: {} + autoprefixer@10.5.0(postcss@8.5.8): dependencies: browserslist: 4.28.2 @@ -10702,6 +11616,9 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 + aws4fetch@1.0.20: + optional: true + axios@1.18.1: dependencies: follow-redirects: 1.16.0 @@ -10714,12 +11631,47 @@ snapshots: axobject-query@4.1.0: {} + b4a@1.8.1: {} + bail@2.0.2: {} balanced-match@1.0.2: {} balanced-match@4.0.4: {} + bare-events@2.9.1: {} + + bare-fs@4.7.3: + dependencies: + bare-events: 2.9.1 + bare-path: 3.0.1 + bare-stream: 2.13.3(bare-events@2.9.1) + bare-url: 2.4.5 + fast-fifo: 1.3.2 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + bare-os@3.9.3: {} + + bare-path@3.0.1: + dependencies: + bare-os: 3.9.3 + + bare-stream@2.13.3(bare-events@2.9.1): + dependencies: + b4a: 1.8.1 + streamx: 2.28.0 + teex: 1.0.1 + optionalDependencies: + bare-events: 2.9.1 + transitivePeerDependencies: + - react-native-b4a + + bare-url@2.4.5: + dependencies: + bare-path: 3.0.1 + base-64@1.0.0: {} base64-js@1.5.1: {} @@ -10752,7 +11704,7 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 2.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.1 iconv-lite: 0.7.2 on-finished: 2.4.1 @@ -10791,6 +11743,36 @@ snapshots: brorand@1.1.0: {} + browse@0.9.3(bufferutil@4.1.0)(playwright-core@1.59.1): + dependencies: + '@browserbasehq/sdk': 2.15.0 + '@browserbasehq/stagehand': 3.6.0(playwright-core@1.59.1)(zod@4.3.6) + '@oclif/core': 4.11.14 + '@vercel/detect-agent': 1.2.3 + archiver: 7.0.1 + deepmerge: 4.3.1 + dotenv: 16.6.1 + fastest-levenshtein: 1.0.16 + http-status-codes: 2.3.0 + ignore: 7.0.5 + node-html-markdown: 1.3.0 + semver: 7.7.4 + tsx: 4.21.0 + ws: 8.21.0(bufferutil@4.1.0) + zod: 4.3.6 + transitivePeerDependencies: + - '@cfworker/json-schema' + - bare-abort-controller + - bare-buffer + - bufferutil + - encoding + - patchright-core + - playwright-core + - puppeteer-core + - react-native-b4a + - supports-color + - utf-8-validate + browser-resolve@2.0.0: dependencies: resolve: 1.22.11 @@ -10849,6 +11831,8 @@ snapshots: buffer-crc32@0.2.13: {} + buffer-crc32@1.0.0: {} + buffer-equal-constant-time@1.0.1: {} buffer-xor@1.0.3: {} @@ -10858,6 +11842,16 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bufferutil@4.1.0: + dependencies: + node-gyp-build: 4.8.4 + optional: true + buildcheck@0.0.7: optional: true @@ -10960,6 +11954,16 @@ snapshots: chownr@1.1.4: optional: true + chrome-launcher@1.2.1: + dependencies: + '@types/node': 22.19.15 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 2.0.2 + transitivePeerDependencies: + - supports-color + optional: true + ci-info@4.4.0: {} cipher-base@1.0.7: @@ -10972,6 +11976,10 @@ snapshots: dependencies: clsx: 2.1.1 + clean-stack@3.0.1: + dependencies: + escape-string-regexp: 4.0.0 + cli-boxes@3.0.0: {} cli-highlight@2.1.11: @@ -10983,6 +11991,8 @@ snapshots: parse5-htmlparser2-tree-adapter: 6.0.1 yargs: 16.2.2 + cli-spinners@2.9.2: {} + cliui@7.0.4: dependencies: string-width: 4.2.3 @@ -11038,6 +12048,8 @@ snapshots: color-convert: 2.0.1 color-string: 1.9.1 + colorette@2.0.20: {} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -11056,6 +12068,14 @@ snapshots: common-ancestor-path@1.0.1: {} + compress-commons@6.0.2: + dependencies: + crc-32: 1.2.2 + crc32-stream: 6.0.0 + is-stream: 2.0.1 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + confbox@0.1.8: {} consola@3.4.2: {} @@ -11103,6 +12123,13 @@ snapshots: nan: 2.26.2 optional: true + crc-32@1.2.2: {} + + crc32-stream@6.0.0: + dependencies: + crc-32: 1.2.2 + readable-stream: 4.7.0 + create-ecdh@4.0.4: dependencies: bn.js: 4.12.3 @@ -11372,11 +12399,15 @@ snapshots: date-fns@4.4.0: {} + dateformat@4.6.3: {} + dayjs@1.11.21: {} - debug@4.4.3: + debug@4.4.3(supports-color@8.1.1): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 decimal.js-light@2.5.1: {} @@ -11388,6 +12419,8 @@ snapshots: deep-eql@5.0.2: {} + deepmerge@4.3.1: {} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.1 @@ -11439,6 +12472,8 @@ snapshots: dependencies: dequal: 2.0.3 + devtools-protocol@0.0.1642743: {} + didyoumean@1.2.2: {} diff@8.0.4: {} @@ -11453,7 +12488,7 @@ snapshots: docker-modem@5.0.7: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) readable-stream: 3.6.2 split-ca: 1.0.1 ssh2: 1.17.0 @@ -11503,6 +12538,8 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 + dotenv@16.6.1: {} + dset@3.1.4: {} dunder-proto@1.0.1: @@ -11519,6 +12556,10 @@ snapshots: ee-first@1.1.1: {} + ejs@3.1.10: + dependencies: + jake: 10.9.4 + electron-to-chromium@1.5.375: {} elliptic@6.6.1: @@ -11668,6 +12709,8 @@ snapshots: escape-html@1.0.3: {} + escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} escodegen@2.1.0: @@ -11726,10 +12769,18 @@ snapshots: etag@1.8.1: {} + event-target-shim@5.0.1: {} + eventemitter3@4.0.7: {} eventemitter3@5.0.4: {} + events-universal@1.0.1: + dependencies: + bare-events: 2.9.1 + transitivePeerDependencies: + - bare-abort-controller + events@3.3.0: {} eventsource-parser@3.1.0: {} @@ -11770,7 +12821,7 @@ snapshots: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) depd: 2.0.0 encodeurl: 2.0.0 escape-html: 1.0.3 @@ -11799,7 +12850,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -11807,10 +12858,14 @@ snapshots: transitivePeerDependencies: - supports-color + fast-copy@4.0.3: {} + fast-deep-equal@3.1.3: {} fast-equals@5.4.0: {} + fast-fifo@1.3.2: {} + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -11819,8 +12874,12 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 + fast-safe-stringify@2.1.1: {} + fast-uri@3.1.2: {} + fastest-levenshtein@1.0.16: {} + fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -11838,6 +12897,11 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 3.3.3 + fetch-cookie@3.2.0: + dependencies: + set-cookie-parser: 2.7.2 + tough-cookie: 6.0.1 + fflate@0.4.8: {} file-type@21.3.4: @@ -11849,13 +12913,17 @@ snapshots: transitivePeerDependencies: - supports-color + filelist@1.0.6: + dependencies: + minimatch: 5.1.9 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 finalhandler@2.1.1: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -11896,6 +12964,8 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 + form-data-encoder@1.7.2: {} + form-data@4.0.6: dependencies: asynckit: 0.4.0 @@ -11904,6 +12974,11 @@ snapshots: hasown: 2.0.4 mime-types: 2.1.35 + formdata-node@4.4.1: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + formdata-polyfill@4.0.10: dependencies: fetch-blob: 3.2.0 @@ -11984,6 +13059,8 @@ snapshots: get-nonce@1.0.1: {} + get-package-type@0.1.0: {} + get-port@7.2.0: optional: true @@ -12006,7 +13083,7 @@ snapshots: dependencies: basic-ftp: 5.3.1 data-uri-to-buffer: 6.0.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -12244,6 +13321,10 @@ snapshots: property-information: 7.2.0 space-separated-tokens: 2.0.2 + he@1.2.0: {} + + help-me@5.0.0: {} + highlight.js@10.7.3: {} hmac-drbg@1.0.1: @@ -12281,28 +13362,34 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color + http-status-codes@2.3.0: {} + https-browserify@1.0.0: {} https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color human-signals@5.0.0: {} + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 @@ -12317,6 +13404,8 @@ snapshots: import-meta-resolve@4.2.0: {} + indent-string@4.0.0: {} + inherits@2.0.4: {} inline-style-parser@0.2.7: {} @@ -12362,6 +13451,8 @@ snapshots: is-decimal@2.0.1: {} + is-docker@2.2.1: {} + is-docker@3.0.0: {} is-extglob@2.1.1: {} @@ -12404,12 +13495,18 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 + is-stream@2.0.1: {} + is-stream@3.0.0: {} is-typed-array@1.1.15: dependencies: which-typed-array: 1.1.20 + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + is-wsl@3.1.1: dependencies: is-inside-container: 1.0.0 @@ -12428,6 +13525,12 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jake@10.9.4: + dependencies: + async: 3.2.6 + filelist: 1.0.6 + picocolors: 1.1.1 + jiti@1.21.7: {} jose@6.2.3: {} @@ -12466,6 +13569,8 @@ snapshots: json-schema-typed@8.0.2: {} + json-schema@0.4.0: {} + json5@2.2.3: {} jwa@2.0.1: @@ -12494,6 +13599,18 @@ snapshots: layout-base@2.0.1: {} + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + + lighthouse-logger@2.0.2: + dependencies: + debug: 4.4.3(supports-color@8.1.1) + marky: 1.3.0 + transitivePeerDependencies: + - supports-color + optional: true + lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} @@ -12576,6 +13693,9 @@ snapshots: marked@16.4.2: {} + marky@1.3.0: + optional: true + math-intrinsics@1.1.0: {} md5.js@1.3.5: @@ -13050,7 +14170,7 @@ snapshots: micromark@4.0.2: dependencies: '@types/debug': 4.1.13 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) decode-named-character-reference: 1.3.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -13103,10 +14223,16 @@ snapshots: dependencies: brace-expansion: 5.0.6 + minimatch@5.1.9: + dependencies: + brace-expansion: 2.0.3 + minimatch@9.0.9: dependencies: brace-expansion: 2.0.3 + minimist@1.2.8: {} + minipass@7.1.3: {} mkdirp-classic@0.5.3: @@ -13160,12 +14286,28 @@ snapshots: node-fetch-native@1.6.7: {} + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + node-fetch@3.3.2: dependencies: data-uri-to-buffer: 4.0.1 fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 + node-gyp-build@4.8.4: + optional: true + + node-html-markdown@1.3.0: + dependencies: + node-html-parser: 6.1.13 + + node-html-parser@6.1.13: + dependencies: + css-select: 5.2.2 + he: 1.2.0 + node-mock-http@1.0.4: {} node-releases@2.0.47: {} @@ -13240,6 +14382,15 @@ snapshots: ohash@2.0.11: {} + ollama-ai-provider-v2@1.5.5(zod@4.3.6): + dependencies: + '@ai-sdk/provider': 2.0.3 + '@ai-sdk/provider-utils': 3.0.28(zod@4.3.6) + zod: 4.3.6 + optional: true + + on-exit-leak-free@2.1.2: {} + on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -13260,9 +14411,24 @@ snapshots: regex: 6.1.0 regex-recursion: 6.0.2 - openai@6.26.0(ws@8.21.0)(zod@4.3.6): + openai@4.104.0(ws@8.21.0(bufferutil@4.1.0))(zod@4.3.6): + dependencies: + '@types/node': 18.19.130 + '@types/node-fetch': 2.6.13 + abort-controller: 3.0.0 + agentkeepalive: 4.6.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + optionalDependencies: + ws: 8.21.0(bufferutil@4.1.0) + zod: 4.3.6 + transitivePeerDependencies: + - encoding + + openai@6.26.0(ws@8.21.0(bufferutil@4.1.0))(zod@4.3.6): optionalDependencies: - ws: 8.21.0 + ws: 8.21.0(bufferutil@4.1.0) zod: 4.3.6 openai@6.26.0(zod@3.25.76): @@ -13299,7 +14465,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) get-uri: 6.0.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -13418,6 +14584,46 @@ snapshots: pify@2.3.0: {} + pino-abstract-transport@2.0.0: + dependencies: + split2: 4.2.0 + + pino-abstract-transport@3.0.0: + dependencies: + split2: 4.2.0 + + pino-pretty@13.1.3: + dependencies: + colorette: 2.0.20 + dateformat: 4.6.3 + fast-copy: 4.0.3 + fast-safe-stringify: 2.1.1 + help-me: 5.0.0 + joycon: 3.1.1 + minimist: 1.2.8 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 3.0.0 + pump: 3.0.4 + secure-json-parse: 4.1.0 + sonic-boom: 4.2.1 + strip-json-comments: 5.0.3 + + pino-std-serializers@7.1.0: {} + + pino@9.14.0: + dependencies: + '@pinojs/redact': 0.4.0 + atomic-sleep: 1.0.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 2.0.0 + pino-std-serializers: 7.1.0 + process-warning: 5.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 4.2.1 + thread-stream: 3.2.0 + pirates@4.0.7: {} pixelmatch@7.2.0: @@ -13523,6 +14729,8 @@ snapshots: process-nextick-args@2.0.1: {} + process-warning@5.0.0: {} + process@0.11.10: {} prompts@2.4.2: @@ -13567,7 +14775,7 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 @@ -13614,6 +14822,8 @@ snapshots: queue-microtask@1.2.3: {} + quick-format-unescaped@4.0.4: {} + radix3@1.1.2: {} randombytes@2.1.0: @@ -13767,6 +14977,18 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 + readable-stream@4.7.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.9 + readdirp@3.6.0: dependencies: picomatch: 2.3.2 @@ -13775,6 +14997,8 @@ snapshots: readdirp@5.0.0: {} + real-require@0.2.0: {} + recharts-scale@0.4.5: dependencies: decimal.js-light: 2.5.1 @@ -14018,7 +15242,7 @@ snapshots: router@2.2.0: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -14042,6 +15266,8 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 + safe-stable-stringify@2.5.0: {} + safer-buffer@2.1.2: {} sandbox-agent@0.4.2(dockerode@4.0.10)(get-port@7.2.0)(zod@4.3.6): @@ -14059,13 +15285,17 @@ snapshots: scheduler@0.27.0: {} + secure-json-parse@4.1.0: {} + semver@6.3.1: {} semver@7.7.4: {} + semver@7.8.5: {} + send@1.2.1: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -14088,6 +15318,8 @@ snapshots: transitivePeerDependencies: - supports-color + set-cookie-parser@2.7.2: {} + set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -14249,7 +15481,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) socks: 2.8.9 transitivePeerDependencies: - supports-color @@ -14259,6 +15491,10 @@ snapshots: ip-address: 10.2.0 smart-buffer: 4.2.0 + sonic-boom@4.2.1: + dependencies: + atomic-sleep: 1.0.0 + sonner@1.7.4(react-dom@19.2.7(react@19.2.7))(react@19.2.7): dependencies: react: 19.2.7 @@ -14276,6 +15512,8 @@ snapshots: split-ca@1.0.1: optional: true + split2@4.2.0: {} + ssh2@1.17.0: dependencies: asn1: 0.2.6 @@ -14305,6 +15543,15 @@ snapshots: stream-replace-string@2.0.0: {} + streamx@2.28.0: + dependencies: + events-universal: 1.0.1 + fast-fifo: 1.3.2 + text-decoder: 1.2.7 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -14346,6 +15593,8 @@ snapshots: strip-final-newline@3.0.0: {} + strip-json-comments@5.0.3: {} + strtok3@10.3.5: dependencies: '@tokenizer/token': 0.3.0 @@ -14376,6 +15625,10 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + supports-preserve-symlinks-flag@1.0.0: {} svgo@4.0.1: @@ -14441,6 +15694,30 @@ snapshots: readable-stream: 3.6.2 optional: true + tar-stream@3.2.0: + dependencies: + b4a: 1.8.1 + bare-fs: 4.7.3 + fast-fifo: 1.3.2 + streamx: 2.28.0 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + + teex@1.0.1: + dependencies: + streamx: 2.28.0 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + text-decoder@1.2.7: + dependencies: + b4a: 1.8.1 + transitivePeerDependencies: + - react-native-b4a + thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -14449,6 +15726,10 @@ snapshots: dependencies: any-promise: 1.3.0 + thread-stream@3.2.0: + dependencies: + real-require: 0.2.0 + timers-browserify@2.0.12: dependencies: setimmediate: 1.0.5 @@ -14468,12 +15749,23 @@ snapshots: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + tinypool@1.1.1: {} tinyrainbow@1.2.0: {} tinyspy@3.0.2: {} + tldts-core@7.4.6: {} + + tldts@7.4.6: + dependencies: + tldts-core: 7.4.6 + tm-themes@1.12.2: {} to-buffer@1.2.2: @@ -14494,6 +15786,12 @@ snapshots: '@tokenizer/token': 0.3.0 ieee754: 1.2.1 + tough-cookie@6.0.1: + dependencies: + tldts: 7.4.6 + + tr46@0.0.3: {} + tree-kill@1.2.2: {} trim-lines@3.0.1: {} @@ -14518,7 +15816,7 @@ snapshots: cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) esbuild: 0.27.4 fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 @@ -14561,6 +15859,8 @@ snapshots: tweetnacl@0.14.5: optional: true + type-fest@0.21.3: {} + type-fest@4.41.0: {} type-is@2.1.0: @@ -14610,6 +15910,8 @@ snapshots: uncrypto@0.1.3: {} + undici-types@5.26.5: {} + undici-types@6.21.0: {} undici-types@7.18.2: {} @@ -14701,7 +16003,7 @@ snapshots: unpipe@1.0.0: {} - unstorage@1.17.5: + unstorage@1.17.5(aws4fetch@1.0.20): dependencies: anymatch: 3.1.3 chokidar: 5.0.0 @@ -14711,6 +16013,8 @@ snapshots: node-fetch-native: 1.6.7 ofetch: 1.5.1 ufo: 1.6.4 + optionalDependencies: + aws4fetch: 1.0.20 update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: @@ -14760,6 +16064,8 @@ snapshots: uuid@10.0.0: optional: true + uuid@11.1.1: {} + uuid@14.0.1: {} vary@1.1.2: {} @@ -14799,7 +16105,7 @@ snapshots: vite-node@2.1.9(@types/node@22.19.15): dependencies: cac: 6.7.14 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) es-module-lexer: 1.7.0 pathe: 1.1.2 vite: 5.4.21(@types/node@22.19.15) @@ -14852,7 +16158,7 @@ snapshots: '@vitest/spy': 2.1.9 '@vitest/utils': 2.1.9 chai: 5.3.3 - debug: 4.4.3 + debug: 4.4.3(supports-color@8.1.1) expect-type: 1.3.0 magic-string: 0.30.21 pathe: 1.1.2 @@ -14885,8 +16191,17 @@ snapshots: web-streams-polyfill@3.3.3: {} + web-streams-polyfill@4.0.0-beta.3: {} + web-vitals@5.3.0: {} + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + which-pm-runs@1.1.0: {} which-typed-array@1.1.20: @@ -14908,10 +16223,16 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 + widest-line@3.1.0: + dependencies: + string-width: 4.2.3 + widest-line@5.0.0: dependencies: string-width: 7.2.0 + wordwrap@1.0.0: {} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -14932,7 +16253,9 @@ snapshots: wrappy@1.0.2: {} - ws@8.21.0: {} + ws@8.21.0(bufferutil@4.1.0): + optionalDependencies: + bufferutil: 4.1.0 xtend@4.0.2: {} @@ -14984,6 +16307,12 @@ snapshots: yoctocolors@2.1.2: {} + zip-stream@6.0.1: + dependencies: + archiver-utils: 5.0.2 + compress-commons: 6.0.2 + readable-stream: 4.7.0 + zod-to-json-schema@3.25.2(zod@3.25.76): dependencies: zod: 3.25.76 diff --git a/registry/software/browserbase/agentos-package.json b/registry/software/browserbase/agentos-package.json new file mode 100644 index 000000000..8fc668966 --- /dev/null +++ b/registry/software/browserbase/agentos-package.json @@ -0,0 +1,3 @@ +{ + "name": "browserbase" +} diff --git a/registry/software/browserbase/package.json b/registry/software/browserbase/package.json new file mode 100644 index 000000000..b9f33302b --- /dev/null +++ b/registry/software/browserbase/package.json @@ -0,0 +1,35 @@ +{ + "name": "@agentos-software/browserbase", + "version": "0.1.0", + "type": "module", + "license": "Apache-2.0", + "description": "Browserbase browse CLI for secure-exec VMs (cloud browser automation)", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "bin": { + "browse": "./node_modules/browse/bin/run.js" + }, + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "default": "./dist/index.js" + } + }, + "files": [ + "dist" + ], + "scripts": { + "build": "tsc && agentos-toolchain pack . --out dist/package --prune-native", + "check-types": "tsc --noEmit" + }, + "dependencies": { + "browse": "^0.9.3" + }, + "devDependencies": { + "@agentos-software/manifest": "workspace:*", + "@rivet-dev/agentos-toolchain": "workspace:*", + "@types/node": "^22.10.2", + "typescript": "^5.7.2" + } +} diff --git a/registry/software/browserbase/src/index.ts b/registry/software/browserbase/src/index.ts new file mode 100644 index 000000000..eb120d5b3 --- /dev/null +++ b/registry/software/browserbase/src/index.ts @@ -0,0 +1,5 @@ +import type { SoftwarePackageRef } from "@agentos-software/manifest"; + +const packageDir = new URL("./package/", import.meta.url).pathname; + +export default { packageDir } satisfies SoftwarePackageRef; diff --git a/registry/software/browserbase/tsconfig.json b/registry/software/browserbase/tsconfig.json new file mode 100644 index 000000000..8f24167af --- /dev/null +++ b/registry/software/browserbase/tsconfig.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "./dist", + "rootDir": "./src" + }, + "include": ["src/**/*"] +}